Mercurial > hg > nginx-vendor-1-0
diff src/http/ngx_http_request.c @ 632:65fd8be45530 NGINX_1_0_6
nginx 1.0.6
*) Feature: cache loader run time decrease.
*) Feature: loading time decrease of configuration with large number of
HTTPS sites.
*) Feature: now nginx supports ECDHE key exchange ciphers.
Thanks to Adrian Kotelba.
*) Feature: the "lingering_close" directive.
*) Feature: now shared zones and caches use POSIX semaphores on Solaris.
Thanks to Den Ivanov.
*) Bugfix: nginx could not be built on Linux 3.0.
*) Bugfix: a segmentation fault might occur in a worker process if
"fastcgi/scgi/uwsgi_param" directives were used with values starting
with "HTTP_"; the bug had appeared in 0.8.40.
*) Bugfix: in closing connection for pipelined requests.
*) Bugfix: nginx did not disable gzipping if client sent "gzip;q=0" in
"Accept-Encoding" request header line.
*) Bugfix: in timeout in unbuffered proxied mode.
*) Bugfix: memory leaks when a "proxy_pass" directive contains variables
and proxies to an HTTPS backend.
*) Bugfix: in parameter validaiton of a "proxy_pass" directive with
variables.
Thanks to Lanshun Zhou.
*) Bugfix: SSL did not work on QNX.
*) Bugfix: SSL modules could not be built by gcc 4.6 without
--with-debug option.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Fri, 29 Jul 2011 00:00:00 +0400 |
parents | b9763778e212 |
children | 0d6525917227 |
line wrap: on
line diff
--- a/src/http/ngx_http_request.c +++ b/src/http/ngx_http_request.c @@ -1439,8 +1439,6 @@ ngx_http_process_user_agent(ngx_http_req switch (msie[5]) { case '4': - r->headers_in.msie4 = 1; - /* fall through */ case '5': r->headers_in.msie6 = 1; break; @@ -1463,7 +1461,6 @@ ngx_http_process_user_agent(ngx_http_req if (ngx_strstrn(user_agent, "Opera", 5 - 1)) { r->headers_in.opera = 1; r->headers_in.msie = 0; - r->headers_in.msie4 = 0; r->headers_in.msie6 = 0; } @@ -2145,8 +2142,14 @@ ngx_http_finalize_connection(ngx_http_re { ngx_http_set_keepalive(r); return; - - } else if (r->lingering_close && clcf->lingering_timeout > 0) { + } + + if (clcf->lingering_close == NGX_HTTP_LINGERING_ALWAYS + || (clcf->lingering_close == NGX_HTTP_LINGERING_ON + && (r->lingering_close + || r->header_in->pos < r->header_in->last + || r->connection->read->ready))) + { ngx_http_set_lingering_close(r); return; } @@ -2772,7 +2775,6 @@ ngx_http_lingering_close_handler(ngx_eve "http lingering close handler"); if (rev->timedout) { - c->timedout = 1; ngx_http_close_request(r, 0); return; }