Blob Blame History Raw
# ./pullrev.sh 1782332
http://svn.apache.org/viewvc?view=revision&revision=1782332

--- httpd-2.4.25/modules/proxy/mod_proxy.c
+++ httpd-2.4.25/modules/proxy/mod_proxy.c
@@ -764,6 +764,10 @@
         || !r->uri || r->uri[0] != '/') {
         return DECLINED;
     }
+   
+    if (apr_table_get(r->subprocess_env, "no-proxy")) { 
+        return DECLINED;
+    }
 
     /* XXX: since r->uri has been manipulated already we're not really
      * compliant with RFC1945 at this point.  But this probably isn't
@@ -771,29 +775,18 @@
      */
 
     dconf = ap_get_module_config(r->per_dir_config, &proxy_module);
-    conf = (proxy_server_conf *) ap_get_module_config(r->server->module_config,
-                                                      &proxy_module);
+
     /* short way - this location is reverse proxied? */
     if (dconf->alias) {
         int rv = ap_proxy_trans_match(r, dconf->alias, dconf);
-        if (OK == rv) { 
-            /* Got a hit. Need to make sure it's not explicitly declined */
-            if (conf->aliases->nelts) {
-                ent = (struct proxy_alias *) conf->aliases->elts;
-                for (i = 0; i < conf->aliases->nelts; i++) {
-                    int rv = ap_proxy_trans_match(r, &ent[i], dconf);
-                    if (DECLINED == rv) { 
-                        return DECLINED;
-                    }
-                }
-            }
-            return OK; 
-        }
         if (DONE != rv) {
             return rv;
         }
     }
 
+    conf = (proxy_server_conf *) ap_get_module_config(r->server->module_config,
+                                                      &proxy_module);
+
     /* long way - walk the list of aliases, find a match */
     if (conf->aliases->nelts) {
         ent = (struct proxy_alias *) conf->aliases->elts;