diff src/http/ngx_http_request.c @ 286:5bef04fc3fd5 NGINX_0_5_13

nginx 0.5.13 *) Feature: the COPY and MOVE methods. *) Bugfix: the ngx_http_realip_module set garbage for requests passed via keep-alive connection. *) Bugfix: nginx did not work on big-endian 64-bit Linux. Thanks to Andrei Nigmatulin. *) Bugfix: now when IMAP/POP3 proxy receives too long command it closes the connection right away, but not after timeout. *) Bugfix: if the "epoll" method was used and a client closed a connection prematurely, then nginx closed the connection after a send timeout only. *) Bugfix: nginx could not be built on platforms different from i386, amd64, sparc and ppc; bug appeared in 0.5.8.
author Igor Sysoev <http://sysoev.ru>
date Mon, 19 Feb 2007 00:00:00 +0300
parents 675a39fd14cd
children f745bf973510
line wrap: on
line diff
--- a/src/http/ngx_http_request.c
+++ b/src/http/ngx_http_request.c
@@ -1285,14 +1285,16 @@ ngx_http_process_request_header(ngx_http
 
     if (r->headers_in.connection) {
         if (r->headers_in.connection->value.len == 5
-            && ngx_strcasecmp(r->headers_in.connection->value.data, "close")
+            && ngx_strcasecmp(r->headers_in.connection->value.data,
+                              (u_char *) "close")
                == 0)
         {
             r->headers_in.connection_type = NGX_HTTP_CONNECTION_CLOSE;
 
         } else if (r->headers_in.connection->value.len == 10
                    && ngx_strcasecmp(r->headers_in.connection->value.data,
-                                     "keep-alive") == 0)
+                                     (u_char *) "keep-alive")
+                      == 0)
         {
             r->headers_in.connection_type = NGX_HTTP_CONNECTION_KEEP_ALIVE;
 
@@ -1651,6 +1653,7 @@ ngx_http_set_write_handler(ngx_http_requ
 
     r->http_state = NGX_HTTP_WRITING_REQUEST_STATE;
 
+    r->read_event_handler = ngx_http_block_read;
     r->write_event_handler = ngx_http_writer;
 
     wev = r->connection->write;
@@ -1831,9 +1834,7 @@ closed:
     ngx_log_error(NGX_LOG_INFO, c->log, err,
                   "client closed prematurely connection");
 
-    ngx_http_close_request(r, 0);
-
-    return;
+    ngx_http_finalize_request(r, 0);
 }