]> granicus.if.org Git - apache/commitdiff
Kill the pool cleanup when closing non cachable connection.
authorMladen Turk <mturk@apache.org>
Sun, 2 Jan 2005 08:00:26 +0000 (08:00 +0000)
committerMladen Turk <mturk@apache.org>
Sun, 2 Jan 2005 08:00:26 +0000 (08:00 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@123884 13f79535-47bb-0310-9956-ffa450edef68

modules/proxy/proxy_util.c

index fda9ccd459daa5df3df87dd7f3c0c6554d091f91..5defd0c7ded2f0fdae424fb031155f7c6fc49c09 100644 (file)
@@ -1664,10 +1664,14 @@ ap_proxy_determine_connection(apr_pool_t *p, request_rec *r,
     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 @@ ap_proxy_determine_connection(apr_pool_t *p, request_rec *r,
         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: ",