httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mt...@apache.org
Subject svn commit: r123811 - /httpd/httpd/trunk/modules/proxy/proxy_util.c
Date Fri, 31 Dec 2004 17:26:00 GMT
Author: mturk
Date: Fri Dec 31 09:25:58 2004
New Revision: 123811

URL: http://svn.apache.org/viewcvs?view=rev&rev=123811
Log:
Simplify connection address and port resolving for non-cachable workers (gereric forward and
reverse proxy).
Modified:
   httpd/httpd/trunk/modules/proxy/proxy_util.c

Modified: httpd/httpd/trunk/modules/proxy/proxy_util.c
Url: http://svn.apache.org/viewcvs/httpd/httpd/trunk/modules/proxy/proxy_util.c?view=diff&rev=123811&p1=httpd/httpd/trunk/modules/proxy/proxy_util.c&r1=123810&p2=httpd/httpd/trunk/modules/proxy/proxy_util.c&r2=123811
==============================================================================
--- httpd/httpd/trunk/modules/proxy/proxy_util.c	(original)
+++ httpd/httpd/trunk/modules/proxy/proxy_util.c	Fri Dec 31 09:25:58 2004
@@ -1610,8 +1610,6 @@
 {
     int server_port;
     apr_status_t err = APR_SUCCESS;
-    const char   *hostname;
-    apr_port_t   port;
     
     /*
      * Break up the URL to determine the host to connect to
@@ -1642,34 +1640,30 @@
                            uri->fragment ? "#" : "",
                            uri->fragment ? uri->fragment : "", NULL);
     }
-    if (!conn->hostname) {
+    if (!worker->is_address_reusable) {
         if (proxyname) {
-            conn->hostname = apr_pstrdup(conn->pool, proxyname);
+            conn->hostname = proxyname;
             conn->port = proxyport;
         } else {
-            conn->hostname = apr_pstrdup(conn->pool, uri->hostname);
+            conn->hostname = uri->hostname;
             conn->port = uri->port;
         }
     }
-    if (!worker->is_address_reusable) {
+    else if (!conn->hostname) {
         if (proxyname) {
-            hostname = proxyname;
-            port = proxyport;
+            conn->hostname = apr_pstrdup(conn->pool, proxyname);
+            conn->port = proxyport;
         } else {
-            hostname = uri->hostname;
-            port = uri->port;
+            conn->hostname = apr_pstrdup(conn->pool, uri->hostname);
+            conn->port = uri->port;
         }
     }
-    else {
-        hostname = conn->hostname;
-        port = conn->port;
-    }
     /* TODO: add address cache for forward proxies */
     if (r->proxyreq == PROXYREQ_PROXY || r->proxyreq == PROXYREQ_REVERSE ||
         !worker->is_address_reusable) {
         err = apr_sockaddr_info_get(&(conn->addr),
-                                    hostname, APR_UNSPEC,
-                                    port, 0,
+                                    conn->hostname, APR_UNSPEC,
+                                    conn->port, 0,
                                     conn->pool);
     }
     else if (!worker->cp->addr) {
@@ -1685,8 +1679,8 @@
         * inside dynamic config to force the lookup.
         */
         err = apr_sockaddr_info_get(&(worker->cp->addr),
-                                    hostname, APR_UNSPEC,
-                                    port, 0,
+                                    conn->hostname, APR_UNSPEC,
+                                    conn->port, 0,
                                     worker->cp->pool);
         conn->addr = worker->cp->addr;
         PROXY_THREAD_UNLOCK(worker);
@@ -1694,7 +1688,7 @@
     if (err != APR_SUCCESS) {
         return ap_proxyerror(r, HTTP_BAD_GATEWAY,
                              apr_pstrcat(p, "DNS lookup failure for: ",
-                                         hostname, NULL));
+                                         conn->hostname, NULL));
     }
 
     /* Get the server port for the Via headers */
@@ -1712,6 +1706,9 @@
         return ap_proxyerror(r, HTTP_FORBIDDEN,
                              "Connect to remote machine blocked");
     }
+    ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server,
+                 "proxy: connected %s to %s:%d", *url, conn->hostname,
+                 conn->port);
     return OK;
 }
 

Mime
View raw message