File tree 2 files changed +18
-9
lines changed
2 files changed +18
-9
lines changed Original file line number Diff line number Diff line change @@ -3168,9 +3168,9 @@ ngx_http_lua_req_socket(lua_State *L)
3168
3168
}
3169
3169
3170
3170
if (!r -> header_sent ) {
3171
- lua_pushnil ( L );
3172
- lua_pushliteral ( L , " response header not sent yet" );
3173
- return 2 ;
3171
+ /* prevent other parts of nginx from sending out
3172
+ * the response header */
3173
+ r -> header_sent = 1 ;
3174
3174
}
3175
3175
3176
3176
dd ("ctx acquired raw req socket: %d" , ctx -> acquired_raw_req_socket );
@@ -3212,6 +3212,7 @@ ngx_http_lua_req_socket(lua_State *L)
3212
3212
3213
3213
ctx -> acquired_raw_req_socket = 1 ;
3214
3214
r -> keepalive = 0 ;
3215
+ r -> lingering_close = 1 ;
3215
3216
#endif
3216
3217
3217
3218
} else {
Original file line number Diff line number Diff line change @@ -5,7 +5,7 @@ use t::TestNginxLua;
5
5
6
6
repeat_each(2);
7
7
8
- plan tests => repeat_each() * 26 ;
8
+ plan tests => repeat_each() * 29 ;
9
9
10
10
our $HtmlDir = html_dir;
11
11
@@ -119,18 +119,26 @@ lua raw req socket tcp_nodelay
119
119
ngx.log(ngx.ERR, "server: failed to get raw req socket: ", err)
120
120
return
121
121
end
122
+ local ok, err = sock:send("HTTP/1.1 200 OK\\r\\nContent-Length: 5\\r\\n\\r\\nhello")
123
+ if not ok then
124
+ ngx.log(ngx.ERR, "failed to send: ", err)
125
+ return
126
+ end
122
127
';
123
128
}
124
129
125
130
--- raw_request eval
126
131
"GET /t HTTP/1.0\r
127
132
Host: localhost\r
128
- Upgrade: mysocket \r
133
+ Content-Length: 5 \r
129
134
\r
130
135
hello"
131
- --- ignore_response
132
- --- error_log
133
- server: failed to get raw req socket: response header not sent yet
136
+ --- response_headers
137
+ Content-Length: 5
138
+ --- response_body chop
139
+ hello
140
+ --- no_error_log
141
+ [error]
134
142
135
143
136
144
@@ -144,7 +152,7 @@ server: failed to get raw req socket: response header not sent yet
144
152
local sock, err = ngx.req.socket(true)
145
153
if not sock then
146
154
ngx.log(ngx.ERR, "server: failed to get raw req socket: ", err)
147
- return
155
+ return ngx.exit(500)
148
156
end
149
157
';
150
158
}
You can’t perform that action at this time.
0 commit comments