nginx-0.0.1-2003-01-24-19:09:40 import
diff --git a/src/http/ngx_http_event.c b/src/http/ngx_http_event.c index b300505..6792105 100644 --- a/src/http/ngx_http_event.c +++ b/src/http/ngx_http_event.c
@@ -241,16 +241,27 @@ } while (rc == NGX_AGAIN && r->header_in->pos.mem < r->header_in->last.mem); - if (r->header_timeout) { - r->header_timeout = 0; - ngx_del_timer(ev); - ngx_add_timer(ev, ngx_http_client_header_timeout); - } + if (rc == NGX_OK) { + /* HTTP header done */ - if (rc == NGX_OK) + if (r->header_timeout) { + r->header_timeout = 0; + ngx_del_timer(ev); + ngx_add_timer(ev, ngx_http_client_header_timeout); + } + return ngx_http_event_request_handler(r); - else + + } else { + + if (r->header_timeout) { + r->header_timeout = 0; + ngx_del_timer(ev); + ngx_add_timer(ev, ngx_http_client_header_timeout); + } + return rc; + } }