1
0
mirror of https://github.com/apache/httpd.git synced 2025-08-07 04:02:58 +03:00

avoid adding multiple subrequest filters when there are nested subrequests.

Multiple copies of the filter were not stripped properly 
during ap_fast_internal_redirect() which left the EOS buckets
stripped out of the brigade. This results in the end-chunk never
going out on the wire for a chunked response.

observed with mainreq -> directoryindex -> FallbackResource

PR58292



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1698239 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Eric Covener
2015-08-27 22:55:52 +00:00
parent c6170479d3
commit f7a34707da
3 changed files with 24 additions and 4 deletions

View File

@@ -613,8 +613,16 @@ AP_DECLARE(void) ap_internal_fast_redirect(request_rec *rr, request_rec *r)
update_r_in_filters(r->output_filters, rr, r);
if (r->main) {
ap_add_output_filter_handle(ap_subreq_core_filter_handle,
NULL, r, r->connection);
ap_filter_t *next = r->output_filters;
while (next && (next != r->proto_output_filters)) {
if (next->frec == ap_subreq_core_filter_handle) {
break;
}
}
if (!next || next == r->proto_output_filters) {
ap_add_output_filter_handle(ap_subreq_core_filter_handle,
NULL, r, r->connection);
}
}
else {
/*