diff src/http/ngx_http_request.c @ 3214:798a7f1d3b2f

restore discard body handler after ngx_http_set_writer() set it to ngx_http_test_reading(), the bug was introduced in r3050
author Igor Sysoev <igor@sysoev.ru>
date Mon, 19 Oct 2009 16:12:13 +0000
parents 3ea03c1fe050
children 4edf28522d24
line wrap: on
line diff
--- a/src/http/ngx_http_request.c
+++ b/src/http/ngx_http_request.c
@@ -2105,10 +2105,15 @@ ngx_http_finalize_connection(ngx_http_re
 
     if (r->main->count != 1) {
 
-        if (r->discard_body && r->lingering_time == 0) {
-            r->lingering_time = ngx_time()
+        if (r->discard_body) {
+            r->read_event_handler = ngx_http_discarded_request_body_handler;
+            r->write_event_handler = ngx_http_request_empty_handler;
+
+            if (r->lingering_time == 0) {
+                r->lingering_time = ngx_time()
                                       + (time_t) (clcf->lingering_time / 1000);
-            ngx_add_timer(r->connection->read, clcf->lingering_timeout);
+                ngx_add_timer(r->connection->read, clcf->lingering_timeout);
+            }
         }
 
         ngx_http_close_request(r, 0);