]> granicus.if.org Git - apache/commit
If a subreq added a filter (say INCLUDES) and the subreq was promoted via
authorJustin Erenkrantz <jerenkrantz@apache.org>
Sun, 28 Apr 2002 06:41:35 +0000 (06:41 +0000)
committerJustin Erenkrantz <jerenkrantz@apache.org>
Sun, 28 Apr 2002 06:41:35 +0000 (06:41 +0000)
commitd8b443e424bffcd2abdb89f52d65459aface918f
tree13a76b25a17a86001739bd08ebb218ad1ad1eea5
parentf8ead96f43927a74e2424911f0e9ed6989cd3aae
If a subreq added a filter (say INCLUDES) and the subreq was promoted via
fast_redirect, the filter would still point at the subreq - rather than
the original r.  So, we must update any filters pointing at rr to be r.

This would cause lots of problems with mod_include with mod_dir requests
such as seen in PR 7966.  mod_include would be unsetting the headers_out
of rr instead of r.  But, we disassociate rr->headers_out and r->headers_out.
Therefore, the C-L header in r->headers_out would remain - even though it
bears no relation to what we will be outputting - causing problems.

This also now permits chunked-encoding of mod_dir/mod_include requests
which could never happen before and fixes the content-length problem
seen in PR 7966.

As hinted at in PR 7966, there is a race condition - if for some reason
the server stalls reading an included file (or even better, placing a
sleep in the cgi-bin script!), the invalid C-L may get propogated to the
client.

(Note that internal_internal_redirect has this same code fragment.)

PR: 7966

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@94832 13f79535-47bb-0310-9956-ffa450edef68
CHANGES
modules/http/http_request.c