From 6427b81842aea67417d64832c13fe2b0413ddc77 Mon Sep 17 00:00:00 2001 From: Igor Sysoev Date: Mon, 26 Oct 2009 17:34:43 +0000 Subject: merge r3055, r3136: gzip related fixes: *) do not disable gzip for MSIE 6.0 SV1 in "gzip_disable msie6" *) nginx always sent "Vary: Accept-Encoding", if both gzip_static and gzip_vary were on --- src/http/modules/ngx_http_gzip_static_module.c | 11 ++++++++--- src/http/ngx_http_request.c | 7 ++++++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/http/modules/ngx_http_gzip_static_module.c b/src/http/modules/ngx_http_gzip_static_module.c index 19e412841..8080d9cb0 100644 --- a/src/http/modules/ngx_http_gzip_static_module.c +++ b/src/http/modules/ngx_http_gzip_static_module.c @@ -95,7 +95,13 @@ ngx_http_gzip_static_handler(ngx_http_request_t *r) gzcf = ngx_http_get_module_loc_conf(r, ngx_http_gzip_static_module); - if (!gzcf->enable || ngx_http_gzip_ok(r) != NGX_OK) { + if (!gzcf->enable) { + return NGX_DECLINED; + } + + clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); + + if (clcf->gzip_vary && ngx_http_gzip_ok(r) != NGX_OK) { return NGX_DECLINED; } @@ -116,8 +122,6 @@ ngx_http_gzip_static_handler(ngx_http_request_t *r) ngx_log_debug1(NGX_LOG_DEBUG_HTTP, log, 0, "http filename: \"%s\"", path.data); - clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); - ngx_memzero(&of, sizeof(ngx_open_file_info_t)); of.directio = clcf->directio; @@ -138,6 +142,7 @@ ngx_http_gzip_static_handler(ngx_http_request_t *r) case NGX_ENOTDIR: case NGX_ENAMETOOLONG: + r->gzip = 0; return NGX_DECLINED; case NGX_EACCES: diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c index d1733d66c..13b069226 100644 --- a/src/http/ngx_http_request.c +++ b/src/http/ngx_http_request.c @@ -1378,8 +1378,13 @@ ngx_http_process_user_agent(ngx_http_request_t *r, ngx_table_elt_t *h, r->headers_in.msie4 = 1; /* fall through */ case '5': - case '6': r->headers_in.msie6 = 1; + break; + case '6': + if (ngx_strstrn(msie + 8, "SV1", 3 - 1) == NULL) { + r->headers_in.msie6 = 1; + } + break; } } -- cgit