Changes with Apache 2.3.0
[ When backported to 2.2.x, remove entry from this file ]
+ *) mod_proxy_http: Fix processing of chunked responses if
+ Connection: Transfer-Encoding is set in the response of the proxied
+ system. PR 44311 [Ruediger Pluem]
+
*) ProxyPassReverse is now balancer aware. [Jim Jagielski]
*) rotatelogs: Don't leak memory when reopening the logfile.
static const char *hop_by_hop_hdrs[] =
{"Keep-Alive", "Proxy-Authenticate", "TE", "Trailer", "Upgrade", NULL};
int i;
+ const char *te = NULL;
bb = apr_brigade_create(p, c->bucket_alloc);
backend->close += 1;
}
+ /*
+ * Save a possible Transfer-Encoding header as we need it later for
+ * ap_http_filter to know where to end.
+ */
+ te = apr_table_get(r->headers_out, "Transfer-Encoding");
/* strip connection listed hop-by-hop headers from response */
backend->close += ap_proxy_liststr(apr_table_get(r->headers_out,
"Connection"),
* ap_http_filter to know where to end.
*/
rp->headers_in = apr_table_copy(r->pool, r->headers_out);
+ /*
+ * Restore Transfer-Encoding header from response if we saved
+ * one before and there is none left. We need it for the
+ * ap_http_filter. See below.
+ */
+ if (te && !apr_table_get(rp->headers_in, "Transfer-Encoding")) {
+ apr_table_add(rp->headers_in, "Transfer-Encoding", te);
+ }
apr_table_unset(r->headers_out,"Transfer-Encoding");