summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Bannert <aaron@apache.org>2001-12-13 00:56:46 +0100
committerAaron Bannert <aaron@apache.org>2001-12-13 00:56:46 +0100
commitb491e30b1c3b41a3de07979fee75b16582254eb4 (patch)
treea82da5a6452eb5250f1e3b717e6dfb3efdddd94a
parentchange Apache/apr/apr-util to use run-time linking on AIX (diff)
downloadapache2-b491e30b1c3b41a3de07979fee75b16582254eb4.tar.xz
apache2-b491e30b1c3b41a3de07979fee75b16582254eb4.zip
Fix a bug in how we select the IP for the POD to connect to for dummy
connects (dislodging a doomed child from the accept mutex). No longer do we assume that the child is listening to 127.0.0.1, but instead we just pick the first hostname/port from the listen rec. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92437 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--CHANGES8
-rw-r--r--server/mpm_common.c3
2 files changed, 10 insertions, 1 deletions
diff --git a/CHANGES b/CHANGES
index 157b065fe5..e36f07bf35 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,13 @@
Changes with Apache 2.0.30-dev
+ *) The POD no longer assumes the child is listening on 127.0.0.1
+ and now pulls the first hostname in the list of listeners to
+ perform the dummy connect on. This fixes a bug when the user
+ had configured the Listen directive for an IP other than
+ 127.0.0.1. This would result in undead children and error
+ messages such as "Connection refused: connect to listener".
+ [Aaron Bannert]
+
*) The worker MPM now respects the LockFile setting, needed to
avoid locking problems with NFS. [Jeff Trawick]
diff --git a/server/mpm_common.c b/server/mpm_common.c
index 5180ea8bb5..57c3c037ac 100644
--- a/server/mpm_common.c
+++ b/server/mpm_common.c
@@ -372,7 +372,8 @@ AP_DECLARE(apr_status_t) ap_mpm_pod_open(apr_pool_t *p, ap_pod_t **pod)
apr_file_pipe_timeout_set((*pod)->pod_in, 0);
(*pod)->p = p;
- apr_sockaddr_info_get(&(*pod)->sa, "127.0.0.1", APR_UNSPEC, ap_listeners->bind_addr->port, 0, p);
+ apr_sockaddr_info_get(&(*pod)->sa, ap_listeners->bind_addr->hostname,
+ APR_UNSPEC, ap_listeners->bind_addr->port, 0, p);
return APR_SUCCESS;
}