# HG changeset patch # User Igor Sysoev # Date 1254483176 0 # Node ID 36f6407817dc13a3052b48d8e8ae8b4f71dabadb # Parent 0e420f3f8e186e9450f5251edf1872f57bef61e2 clear r->lingering_close to disable preventively calling ngx_http_set_lingering_close() while request cleanup diff --git a/src/http/ngx_http_request_body.c b/src/http/ngx_http_request_body.c --- a/src/http/ngx_http_request_body.c +++ b/src/http/ngx_http_request_body.c @@ -475,7 +475,10 @@ ngx_http_discard_request_body(ngx_http_r return NGX_HTTP_INTERNAL_SERVER_ERROR; } - if (ngx_http_read_discarded_request_body(r) != NGX_OK) { + if (ngx_http_read_discarded_request_body(r) == NGX_OK) { + r->lingering_close = 0; + + } else { r->count++; r->discard_body = 1; } @@ -508,6 +511,7 @@ ngx_http_read_discarded_request_body_han if (timer <= 0) { r->discard_body = 0; + r->lingering_close = 0; ngx_http_finalize_request(r, 0); return; } @@ -521,6 +525,7 @@ ngx_http_read_discarded_request_body_han if (rc == NGX_OK) { r->discard_body = 0; + r->lingering_close = 0; if (r->done) { ngx_http_finalize_request(r, 0);