www-apache-bugdb mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Doke Scott <d...@delmarva.com>
Subject mod_proxy/558: except internal servers from ProxyRemote * http://myfirewall
Date Thu, 08 May 1997 03:00:02 GMT

>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:     doke@delmarva.com
>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:



Mime
View raw message