diff src/http/ngx_http_event.c @ 52:9f2728644651

nginx-0.0.1-2003-01-24-19:09:40 import
author Igor Sysoev <igor@sysoev.ru>
date Fri, 24 Jan 2003 16:09:40 +0000
parents b288069a8696
children d1e42f1b8fd4
line wrap: on
line diff
--- a/src/http/ngx_http_event.c
+++ b/src/http/ngx_http_event.c
@@ -241,16 +241,27 @@ static int ngx_http_process_request_head
 
     } 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);
+        }
+
+        return ngx_http_event_request_handler(r);
+
+    } else {
+
+        if (r->header_timeout) {
+            r->header_timeout = 0;
+            ngx_del_timer(ev);
+            ngx_add_timer(ev, ngx_http_client_header_timeout);
+        }
+
+        return rc;
     }
-
-    if (rc == NGX_OK)
-        return ngx_http_event_request_handler(r);
-    else
-        return rc;
 }