]> granicus.if.org Git - apache/commitdiff
No need to allocate hostname on each request for
authorMladen Turk <mturk@apache.org>
Mon, 13 Sep 2004 11:30:22 +0000 (11:30 +0000)
committerMladen Turk <mturk@apache.org>
Mon, 13 Sep 2004 11:30:22 +0000 (11:30 +0000)
persistent connections.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@105109 13f79535-47bb-0310-9956-ffa450edef68

modules/proxy/proxy_util.c

index 397d9225c7f4331a4271859e26d0bf0404b35a30..eddc08384cc627d58bd03a6eff317b867d3f099d 100644 (file)
@@ -1569,17 +1569,20 @@ ap_proxy_determine_connection(apr_pool_t *p, request_rec *r,
      */
     /* are we connecting directly, or via a proxy? */
     if (proxyname) {
-        conn->hostname = apr_pstrdup(conn->pool, proxyname);
-        conn->port = proxyport;
-    } else {
-        conn->hostname = apr_pstrdup(conn->pool, uri->hostname);
-        conn->port = uri->port;
         *url = apr_pstrcat(p, uri->path, uri->query ? "?" : "",
                            uri->query ? uri->query : "",
                            uri->fragment ? "#" : "",
                            uri->fragment ? uri->fragment : "", NULL);
     }
-    
+    if (!conn->hostname) {
+        if (proxyname) {
+            conn->hostname = apr_pstrdup(conn->pool, proxyname);
+            conn->port = proxyport;
+        } else {
+            conn->hostname = apr_pstrdup(conn->pool, uri->hostname);
+            conn->port = uri->port;
+        }
+    }
     /* TODO: add address cache for forward proxies */
     conn->addr = worker->cp->addr;
     if (r->proxyreq == PROXYREQ_PROXY) {