summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorColm MacCarthaigh <colm@apache.org>2005-09-27 11:52:14 +0000
committerColm MacCarthaigh <colm@apache.org>2005-09-27 11:52:14 +0000
commitf2bcdddae08ca32c79f502d40ef87ed07e5e81ae (patch)
tree329a4beece8f8ec3ffeb1127c31f8607341cc984 /server
parent86751a71e47502c39965333fb94fdc48cd9a4d62 (diff)
downloadhttpd-f2bcdddae08ca32c79f502d40ef87ed07e5e81ae.tar.gz
When doing a subrequest lookup, do not lookup using the quickhandler if
next_filter is NULL, since this implies that the subrequest will be internal_fast_redirect'ed or will never be called. See line request.c:1513 onwards (in make_sub_request) also. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@291914 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'server')
-rw-r--r--server/request.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/server/request.c b/server/request.c
index 056ccb04bb..99db3b3263 100644
--- a/server/request.c
+++ b/server/request.c
@@ -1609,10 +1609,18 @@ AP_DECLARE(request_rec *) ap_sub_req_method_uri(const char *method,
/* lookup_uri
* If the content can be served by the quick_handler, we can
* safely bypass request_internal processing.
+ *
+ * If next_filter is NULL we are expecting to be
+ * internal_fast_redirect'ed to the subrequest, or the subrequest will
+ * never be invoked. We need to make sure that the quickhandler is not
+ * invoked by any lookups. Since an internal_fast_redirect will always
+ * occur too late for the quickhandler to handle the request.
*/
- res = ap_run_quick_handler(rnew, 1);
+ if (next_filter) {
+ res = ap_run_quick_handler(rnew, 1);
+ }
- if (res != OK) {
+ if (next_filter == NULL || res != OK) {
if ((res = ap_process_request_internal(rnew))) {
rnew->status = res;
}