mirror of
https://github.com/nginx/nginx.git
synced 2024-12-01 03:17:17 +08:00
Upstream: setting u->header_sent before ngx_http_upstream_upgrade().
Without u->header_sent set a special response might be generated following an upgraded connection. The problem appeared in 1ccdda1f37f3 (1.5.3). Catched by "header already sent" alerts in 1.5.4 after upstream timeouts.
This commit is contained in:
parent
6d7ec5009a
commit
9f46a9df86
@ -2105,6 +2105,8 @@ ngx_http_upstream_send_response(ngx_http_request_t *r, ngx_http_upstream_t *u)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u->header_sent = 1;
|
||||||
|
|
||||||
if (u->upgrade) {
|
if (u->upgrade) {
|
||||||
ngx_http_upstream_upgrade(r, u);
|
ngx_http_upstream_upgrade(r, u);
|
||||||
return;
|
return;
|
||||||
@ -2131,8 +2133,6 @@ ngx_http_upstream_send_response(ngx_http_request_t *r, ngx_http_upstream_t *u)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
u->header_sent = 1;
|
|
||||||
|
|
||||||
if (r->request_body && r->request_body->temp_file) {
|
if (r->request_body && r->request_body->temp_file) {
|
||||||
ngx_pool_run_cleanup_file(r->pool, r->request_body->temp_file->file.fd);
|
ngx_pool_run_cleanup_file(r->pool, r->request_body->temp_file->file.fd);
|
||||||
r->request_body->temp_file->file.fd = NGX_INVALID_FILE;
|
r->request_body->temp_file->file.fd = NGX_INVALID_FILE;
|
||||||
|
Loading…
Reference in New Issue
Block a user