From: Ian Holsman Date: Wed, 16 Jan 2002 04:29:10 +0000 (+0000) Subject: quick handler now runs on subrequests as well X-Git-Tag: 2.0.31~187 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6dcd25894c2021ba7384bba6be8f262ca62ace44;p=apache quick handler now runs on subrequests as well PR: Obtained from: Submitted by: Reviewed by: git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92862 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 51624f68e3..b93c0c43a6 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,5 @@ Changes with Apache 2.0.31-dev + *) allow quick_handler to be run on subrequests. [Ian Holsman] *) mod_dav now asks its provider to place content directly into the filter stack when handling a GET request. The mod_dav/provider diff --git a/modules/http/http_request.c b/modules/http/http_request.c index 5a9a4c1555..f61ac031ad 100644 --- a/modules/http/http_request.c +++ b/modules/http/http_request.c @@ -285,16 +285,13 @@ void ap_process_request(request_rec *r) * to enable the quick handler to make decisions based on config * directives in Location blocks. */ - access_status = ap_run_quick_handler(r); - if (access_status == DECLINED) { - access_status = ap_process_request_internal(r); - if (access_status == OK) { - access_status = ap_invoke_handler(r); - } - else if (access_status == DONE) { - /* e.g., something not in storage like TRACE */ - access_status = OK; - } + access_status = ap_process_request_internal(r); + if (access_status == OK) { + access_status = ap_invoke_handler(r); + } + else if (access_status == DONE) { + /* e.g., something not in storage like TRACE */ + access_status = OK; } if (access_status == OK) { diff --git a/server/request.c b/server/request.c index 75735d85dd..79330ce368 100644 --- a/server/request.c +++ b/server/request.c @@ -143,6 +143,19 @@ AP_DECLARE(int) ap_process_request_internal(request_rec *r) int file_req = (r->main && r->filename); int access_status; + access_status = ap_run_quick_handler(r); + if (access_status != DECLINED) { + if ( access_status == OK ) { + if (!r->main) + return DONE; + else + return OK; + } + else { + return access_status; + } + } + /* Ignore embedded %2F's in path for proxy requests */ if (!r->proxyreq && r->parsed_uri.path) { access_status = ap_unescape_url(r->parsed_uri.path);