-*- coding: utf-8 -*-
Changes with Apache 2.5.1
+ *) mod_xml2enc: Fix forwarding of error metadata/responses. PR 62180.
+ [Micha Lenk <micha lenk.info>, Yann Ylavic]
+
*) mod_proxy_http: Add new worker parameter 'responsefieldsize' to
allow maximum HTTP response header size to be increased past 8192
bytes. PR62199. [Hank Ibell <hwibell gmail.com>]
apr_bucket* b;
apr_bucket* bstart;
apr_size_t insz = 0;
+ int pending_meta = 0;
char *ctype;
char *p;
ctx->bytes = 0;
if (APR_BUCKET_IS_METADATA(b)) {
APR_BUCKET_REMOVE(b);
+ APR_BRIGADE_INSERT_TAIL(ctx->bbnext, b);
+ /* This resource filter is over on EOS */
if (APR_BUCKET_IS_EOS(b)) {
- /* send remaining data */
- APR_BRIGADE_INSERT_TAIL(ctx->bbnext, b);
- return ap_fflush(f->next, ctx->bbnext);
- } else if (APR_BUCKET_IS_FLUSH(b)) {
- ap_fflush(f->next, ctx->bbnext);
+ ap_remove_output_filter(f);
+ APR_BRIGADE_CONCAT(ctx->bbnext, bb);
+ rv = ap_pass_brigade(f->next, ctx->bbnext);
+ apr_brigade_cleanup(ctx->bbnext);
+ return rv;
+ }
+ /* Besides FLUSH, aggregate meta buckets to send
+ * them at once below.
+ */
+ pending_meta = 1;
+ if (!APR_BUCKET_IS_FLUSH(b)) {
+ continue;
+ }
+ }
+ if (pending_meta) {
+ pending_meta = 0;
+ /* passing meta bucket down the chain */
+ rv = ap_pass_brigade(f->next, ctx->bbnext);
+ apr_brigade_cleanup(ctx->bbnext);
+ if (rv != APR_SUCCESS) {
+ return rv;
}
- apr_bucket_destroy(b);
+ continue;
}
- else { /* data bucket */
+ /* data bucket */
+ {
char* buf;
apr_size_t bytes = 0;
char fixbuf[BUFLEN];
if (rv != APR_SUCCESS)
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, rv, f->r, APLOGNO(01446)
"ap_fflush failed");
- else
- rv = ap_pass_brigade(f->next, ctx->bbnext);
+ apr_brigade_cleanup(ctx->bbnext);
}
}
} else {