[Remove entries to the current 2.0 section below, when backported]
+ *) mod_deflate: Don't attempt to hold all of the response until we're
+ done. [Justin Erenkrantz]
+
*) mod_include: Fix a trio of bugs that would cause various unusual
sequences of parsed bytes to omit portions of the output stream.
PR 21095. [Ron Park <ronald.park@cnet.com>, André Malo, Cliff Woolley]
if (APR_BUCKET_IS_FLUSH(e)) {
apr_bucket *bkt;
+ apr_status_t rv;
+
zRC = deflate(&(ctx->stream), Z_SYNC_FLUSH);
if (zRC != Z_OK) {
return APR_EGENERAL;
bkt = apr_bucket_flush_create(f->c->bucket_alloc);
APR_BRIGADE_INSERT_TAIL(ctx->bb, bkt);
- ap_pass_brigade(f->next, ctx->bb);
+ rv = ap_pass_brigade(f->next, ctx->bb);
+ if (rv != APR_SUCCESS) {
+ return rv;
+ }
continue;
}
while (ctx->stream.avail_in != 0) {
if (ctx->stream.avail_out == 0) {
+ apr_status_t rv;
+
ctx->stream.next_out = ctx->buffer;
len = c->bufferSize - ctx->stream.avail_out;
NULL, f->c->bucket_alloc);
APR_BRIGADE_INSERT_TAIL(ctx->bb, b);
ctx->stream.avail_out = c->bufferSize;
+ /* Send what we have right now to the next filter. */
+ rv = ap_pass_brigade(f->next, ctx->bb);
+ if (rv != APR_SUCCESS) {
+ return rv;
+ }
}
zRC = deflate(&(ctx->stream), Z_NO_FLUSH);