# ./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;