comparison src/http/modules/ngx_http_gzip_filter_module.c @ 694:88a1b4797f2e NGINX_1_3_10

nginx 1.3.10 *) Change: domain names specified in configuration file are now resolved to IPv6 addresses as well as IPv4 ones. *) Change: now if the "include" directive with mask is used on Unix systems, included files are sorted in alphabetical order. *) Change: the "add_header" directive adds headers to 201 responses. *) Feature: the "geo" directive now supports IPv6 addresses in CIDR notation. *) Feature: the "flush" and "gzip" parameters of the "access_log" directive. *) Feature: variables support in the "auth_basic" directive. *) Bugfix: nginx could not be built with the ngx_http_perl_module in some cases. *) Bugfix: a segmentation fault might occur in a worker process if the ngx_http_xslt_module was used. *) Bugfix: nginx could not be built on MacOSX in some cases. Thanks to Piotr Sikora. *) Bugfix: the "limit_rate" directive with high rates might result in truncated responses on 32-bit platforms. Thanks to Alexey Antropov. *) Bugfix: a segmentation fault might occur in a worker process if the "if" directive was used. Thanks to Piotr Sikora. *) Bugfix: a "100 Continue" response was issued with "413 Request Entity Too Large" responses. *) Bugfix: the "image_filter", "image_filter_jpeg_quality" and "image_filter_sharpen" directives might be inherited incorrectly. Thanks to Ian Babrou. *) Bugfix: "crypt_r() failed" errors might appear if the "auth_basic" directive was used on Linux. *) Bugfix: in backup servers handling. Thanks to Thomas Chen. *) Bugfix: proxied HEAD requests might return incorrect response if the "gzip" directive was used.
author Igor Sysoev <http://sysoev.ru>
date Tue, 25 Dec 2012 00:00:00 +0400
parents 597573166f34
children
comparison
equal deleted inserted replaced
693:cfd4279acc6e 694:88a1b4797f2e
319 ngx_chain_t *cl; 319 ngx_chain_t *cl;
320 ngx_http_gzip_ctx_t *ctx; 320 ngx_http_gzip_ctx_t *ctx;
321 321
322 ctx = ngx_http_get_module_ctx(r, ngx_http_gzip_filter_module); 322 ctx = ngx_http_get_module_ctx(r, ngx_http_gzip_filter_module);
323 323
324 if (ctx == NULL || ctx->done) { 324 if (ctx == NULL || ctx->done || r->header_only) {
325 return ngx_http_next_body_filter(r, in); 325 return ngx_http_next_body_filter(r, in);
326 } 326 }
327 327
328 ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, 328 ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
329 "http gzip filter"); 329 "http gzip filter");
495 /* the actual zlib window size is smaller by 262 bytes */ 495 /* the actual zlib window size is smaller by 262 bytes */
496 496
497 while (r->headers_out.content_length_n < ((1 << (wbits - 1)) - 262)) { 497 while (r->headers_out.content_length_n < ((1 << (wbits - 1)) - 262)) {
498 wbits--; 498 wbits--;
499 memlevel--; 499 memlevel--;
500 }
501
502 if (memlevel < 1) {
503 memlevel = 1;
500 } 504 }
501 } 505 }
502 506
503 ctx->wbits = wbits; 507 ctx->wbits = wbits;
504 ctx->memlevel = memlevel; 508 ctx->memlevel = memlevel;