>Number: 558 >Category: mod_proxy >Synopsis: except internal servers from ProxyRemote * http://myfirewall >Confidential: no >Severity: non-critical >Priority: medium >Responsible: apache (Apache HTTP Project) >State: open >Class: change-request >Submitter-Id: apache >Arrival-Date: Wed May 7 20:00:02 1997 >Originator: [EMAIL PROTECTED] >Organization: apache >Release: 1.2b10 >Environment: solaris 2.5.1 gcc 2.7.2 >Description: My users seem to be incapable of correctly using the "no proxy" browser setting. I need an internal proxy that forwards most requests out the firewall, and sends direct requests to internal servers. My internet firewall proxy can't forward to internal servers. This works for most of the internal servers:
ProxyRemote http://www.internal-dept1.mydomain http://www.internal-dept1.mydomain ProxyRemote http://www.internal-dept2.mydomain http://www.internal-dept2.mydomain ProxyRemote * http://myfirewall.mydomain The internal servers receive "GET http://www.internal-dept1.mydomain/path", recognize their own hostname, and strip it off. Unfortunately, I have an application (Concord Nethealth) with an integral web server that's too stupid to do that. I need the proxy to send to it in direct mode. >How-To-Repeat: >Fix: Change the ProxyRemote parser to accept "direct" as the remote proxy. ProxyRemote http://www.internal-dept1.mydomain direct ProxyRemote http://www.internal-dept2.mydomain direct ProxyRemote * http://myfirewall.mydomain --- mod_proxy.c_orig Wed May 7 22:12:41 1997 +++ mod_proxy.c Wed May 7 22:16:15 1997 @@ -224,6 +224,8 @@ if (strcmp(ents[i].protocol, "http") == 0) rc = proxy_http_handler(r, cr, url, ents[i].hostname, ents[i].port); + else if (strcmp(ents[i].protocol, "direct") == 0) + break; else rc = DECLINED; /* an error or success */ @@ -282,6 +284,16 @@ struct proxy_remote *new; char *p, *q; int port; + + if (! strcmp(r, "direct")) + { + new = push_array (conf->proxies); + new->scheme = f; + new->protocol = r; + new->hostname = r; + new->port = 0; + return NULL; + } p = strchr(r, ':'); if (p == NULL || p[1] != '/' || p[2] != '/' || p[3] == '\0') %0 >Audit-Trail: >Unformatted:
