mirror of
https://github.com/nginx/nginx.git
synced 2025-01-05 21:53:01 -06:00
do not pass gzheader separately as due to the previous commit
we do not use ctx->busy as flush condition
This commit is contained in:
parent
4f79acbdd8
commit
e4c10b25d4
@ -265,7 +265,7 @@ ngx_http_gzip_body_filter(ngx_http_request_t *r, ngx_chain_t *in)
|
|||||||
int rc, wbits, memlevel;
|
int rc, wbits, memlevel;
|
||||||
struct gztrailer *trailer;
|
struct gztrailer *trailer;
|
||||||
ngx_buf_t *b;
|
ngx_buf_t *b;
|
||||||
ngx_chain_t *cl, out;
|
ngx_chain_t *cl;
|
||||||
ngx_http_gzip_ctx_t *ctx;
|
ngx_http_gzip_ctx_t *ctx;
|
||||||
ngx_http_gzip_conf_t *conf;
|
ngx_http_gzip_conf_t *conf;
|
||||||
|
|
||||||
@ -336,24 +336,18 @@ ngx_http_gzip_body_filter(ngx_http_request_t *r, ngx_chain_t *in)
|
|||||||
b->pos = gzheader;
|
b->pos = gzheader;
|
||||||
b->last = b->pos + 10;
|
b->last = b->pos + 10;
|
||||||
|
|
||||||
out.buf = b;
|
cl = ngx_alloc_chain_link(r->pool);
|
||||||
out.next = NULL;
|
if (cl == NULL) {
|
||||||
|
|
||||||
/*
|
|
||||||
* We pass the gzheader to the next filter now to avoid its linking
|
|
||||||
* to the ctx->busy chain. zlib does not usually output the compressed
|
|
||||||
* data in the initial iterations, so the gzheader that was linked
|
|
||||||
* to the ctx->busy chain would be flushed by ngx_http_write_filter().
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (ngx_http_next_body_filter(r, &out) == NGX_ERROR) {
|
|
||||||
ngx_http_gzip_error(ctx);
|
ngx_http_gzip_error(ctx);
|
||||||
return NGX_ERROR;
|
return NGX_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
r->connection->buffered |= NGX_HTTP_GZIP_BUFFERED;
|
cl->buf = b;
|
||||||
|
cl->next = NULL;
|
||||||
|
ctx->out = cl;
|
||||||
|
ctx->last_out = &cl->next;
|
||||||
|
|
||||||
ctx->last_out = &ctx->out;
|
r->connection->buffered |= NGX_HTTP_GZIP_BUFFERED;
|
||||||
|
|
||||||
ctx->crc32 = crc32(0L, Z_NULL, 0);
|
ctx->crc32 = crc32(0L, Z_NULL, 0);
|
||||||
ctx->flush = Z_NO_FLUSH;
|
ctx->flush = Z_NO_FLUSH;
|
||||||
|
Loading…
Reference in New Issue
Block a user