Mercurial > hg > nginx
diff src/http/ngx_http_core_module.c @ 3573:5d9ff79eab6f stable-0.7
merge r3316, r3317, r3420, r3421, r3453:
browsers related fixes:
*) add MSIE padding for Chrome too
*) disable keepalive for Safari:
https://bugs.webkit.org/show_bug.cgi?id=5760
*) do not disable keepalive after POST requests for MSIE 7+
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Fri, 04 Jun 2010 17:47:04 +0000 |
parents | b0fbe6ab9ebe |
children | 28ee756697b1 |
line wrap: on
line diff
--- a/src/http/ngx_http_core_module.c Fri Jun 04 17:38:59 2010 +0000 +++ b/src/http/ngx_http_core_module.c Fri Jun 04 17:47:04 2010 +0000 @@ -744,14 +744,24 @@ break; } - if (r->keepalive && r->headers_in.msie && r->method == NGX_HTTP_POST) { - - /* - * MSIE may wait for some time if an response for - * a POST request was sent over a keepalive connection - */ - - r->keepalive = 0; + if (r->keepalive) { + + if (r->headers_in.msie6) { + if (r->method == NGX_HTTP_POST) { + /* + * MSIE may wait for some time if an response for + * a POST request was sent over a keepalive connection + */ + r->keepalive = 0; + } + + } else if (r->headers_in.safari) { + /* + * Safari may send a POST request to a closed keepalive + * connection and stalls for some time + */ + r->keepalive = 0; + } } if (r->headers_in.content_length_n > 0) {