summaryrefslogtreecommitdiffhomepage
path: root/src/http/ngx_http_event.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/http/ngx_http_event.c')
-rw-r--r--src/http/ngx_http_event.c25
1 files changed, 18 insertions, 7 deletions
diff --git a/src/http/ngx_http_event.c b/src/http/ngx_http_event.c
index b30050561..679210558 100644
--- a/src/http/ngx_http_event.c
+++ b/src/http/ngx_http_event.c
@@ -241,16 +241,27 @@ static int ngx_http_process_request_header(ngx_event_t *ev)
} 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 (r->header_timeout) {
+ r->header_timeout = 0;
+ ngx_del_timer(ev);
+ ngx_add_timer(ev, ngx_http_client_header_timeout);
+ }
- if (rc == NGX_OK)
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;
+ }
}