comparison src/http/modules/ngx_http_gzip_filter_module.c @ 5107:4b744a2fb1a6

Gzip: fixed setting of NGX_HTTP_GZIP_BUFFERED. In r2411 setting of NGX_HTTP_GZIP_BUFFERED in c->buffered was moved from ngx_http_gzip_filter_deflate_start() to ngx_http_gzip_filter_buffer() since it was always called first. But in r2543 the "postpone_gzipping" directive was introduced, and if postponed gzipping is disabled (the default setting), ngx_http_gzip_filter_buffer() is not called at all. We must always set NGX_HTTP_GZIP_BUFFERED after the start of compression since there is always a trailer that is buffered. There are no known cases when it leads to any problem with current code. But we already had troubles in upcoming SPDY implementation.
author Valentin Bartenev <vbart@nginx.com>
date Mon, 11 Mar 2013 11:19:58 +0000
parents e2794322ec76
children 84155a389bcc
comparison
equal deleted inserted replaced
5106:afee87b8190a 5107:4b744a2fb1a6
618 ngx_log_error(NGX_LOG_ALERT, r->connection->log, 0, 618 ngx_log_error(NGX_LOG_ALERT, r->connection->log, 0,
619 "deflateInit2() failed: %d", rc); 619 "deflateInit2() failed: %d", rc);
620 return NGX_ERROR; 620 return NGX_ERROR;
621 } 621 }
622 622
623 r->connection->buffered |= NGX_HTTP_GZIP_BUFFERED;
624
623 ctx->last_out = &ctx->out; 625 ctx->last_out = &ctx->out;
624 ctx->crc32 = crc32(0L, Z_NULL, 0); 626 ctx->crc32 = crc32(0L, Z_NULL, 0);
625 ctx->flush = Z_NO_FLUSH; 627 ctx->flush = Z_NO_FLUSH;
626 628
627 return NGX_OK; 629 return NGX_OK;