You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by mt...@apache.org on 2005/01/02 09:00:29 UTC

svn commit: r123884 - /httpd/httpd/trunk/modules/proxy/proxy_util.c

Author: mturk
Date: Sun Jan  2 00:00:26 2005
New Revision: 123884

URL: http://svn.apache.org/viewcvs?view=rev&rev=123884
Log:
Kill the pool cleanup when closing non cachable connection.
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=123884&p1=httpd/httpd/trunk/modules/proxy/proxy_util.c&r1=123883&p2=httpd/httpd/trunk/modules/proxy/proxy_util.c&r2=123884
==============================================================================
--- httpd/httpd/trunk/modules/proxy/proxy_util.c	(original)
+++ httpd/httpd/trunk/modules/proxy/proxy_util.c	Sun Jan  2 00:00:26 2005
@@ -1664,10 +1664,14 @@
     if (r->proxyreq == PROXYREQ_PROXY || r->proxyreq == PROXYREQ_REVERSE ||
         !worker->is_address_reusable) {
         /* TODO: Check if the connection can be reused
-         */
-        if (conn->sock) {
-            apr_socket_close(conn->sock);
-            conn->sock = NULL;
+         */            
+        if (conn->connection) {      
+            if (conn->sock) {
+                apr_socket_close(conn->sock);
+                conn->sock = NULL;
+            }
+            apr_pool_cleanup_kill(conn->connection->pool, conn, connection_cleanup);
+            conn->connection = NULL;
         }
         err = apr_sockaddr_info_get(&(conn->addr),
                                     conn->hostname, APR_UNSPEC,
@@ -1693,6 +1697,9 @@
         conn->addr = worker->cp->addr;
         PROXY_THREAD_UNLOCK(worker);
     }
+    else
+        conn->addr = worker->cp->addr;
+
     if (err != APR_SUCCESS) {
         return ap_proxyerror(r, HTTP_BAD_GATEWAY,
                              apr_pstrcat(p, "DNS lookup failure for: ",