]> granicus.if.org Git - apache/commitdiff
quick handler now runs on subrequests as well
authorIan Holsman <ianh@apache.org>
Wed, 16 Jan 2002 04:29:10 +0000 (04:29 +0000)
committerIan Holsman <ianh@apache.org>
Wed, 16 Jan 2002 04:29:10 +0000 (04:29 +0000)
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

CHANGES
modules/http/http_request.c
server/request.c

diff --git a/CHANGES b/CHANGES
index 51624f68e30f3febf432f4c9fce3fd491fadd8d6..b93c0c43a65239f8888006558e7b0e218308d213 100644 (file)
--- 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
index 5a9a4c1555c5d15024f81016e7eba65f82f35560..f61ac031ad8da1dbb1b9c065650ca46828ed5213 100644 (file)
@@ -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) {
index 75735d85ddd13db8f1168b6ae5869d11db33c94e..79330ce36868f322cbf12134942af040500e3173 100644 (file)
@@ -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);