diff src/http/ngx_http_request.c @ 1135:03f1133f24e8

close keep-alive connections in the shuting down processes
author Igor Sysoev <igor@sysoev.ru>
date Mon, 19 Mar 2007 13:20:15 +0000
parents f07a5f4017d9
children b1ebd03de948
line wrap: on
line diff
--- a/src/http/ngx_http_request.c
+++ b/src/http/ngx_http_request.c
@@ -2032,6 +2032,8 @@ ngx_http_set_keepalive(ngx_http_request_
     r->http_state = NGX_HTTP_KEEPALIVE_STATE;
 #endif
 
+    c->idle = 1;
+
     if (rev->ready) {
         ngx_http_keepalive_handler(rev);
     }
@@ -2050,7 +2052,7 @@ ngx_http_keepalive_handler(ngx_event_t *
 
     ngx_log_debug0(NGX_LOG_DEBUG_HTTP, c->log, 0, "http keepalive handler");
 
-    if (rev->timedout) {
+    if (rev->timedout || c->close) {
         ngx_http_close_connection(c);
         return;
     }
@@ -2139,6 +2141,8 @@ ngx_http_keepalive_handler(ngx_event_t *
     c->log->handler = ngx_http_log_error;
     c->log->action = "reading client request line";
 
+    c->idle = 0;
+
     ngx_http_init_request(rev);
 }