+++ /dev/null
---- apr-httpd-2.0.49/network_io/unix/sockets.c.orig 2004-02-13 10:33:51.000000000 +0100
-+++ apr-httpd-2.0.49/network_io/unix/sockets.c 2004-04-18 22:49:53.089901496 +0200
-@@ -372,7 +372,36 @@
- set_socket_vars(*sock, APR_INET, SOCK_STREAM, 0);
- (*sock)->timeout = -1;
- }
-- (*sock)->local_port_unknown = (*sock)->local_interface_unknown = 1;
-+/* (*sock)->local_port_unknown = (*sock)->local_interface_unknown = 1; */
-+ if (1)
-+ {
-+ /* fixup socket's peer information.
-+ we need it for the muxmpm. enrico weigelt, metux ITS
-+ <weigelt@metux.de>
-+ */
-+ /* XXX next line looks bogus w.r.t. AF_INET6 support */
-+
-+ /* adjust remote address */
-+ (*sock)->remote_addr->salen = sizeof((*sock)->remote_addr->sa);
-+ getpeername(
-+ *thesock,
-+ (struct sockaddr*)&((*sock)->remote_addr->sa),
-+ &((*sock)->remote_addr->salen)
-+ );
-+ (*sock)->remote_addr->port = ntohs((*sock)->remote_addr->sa.sin.sin_port);
-+
-+ /* XXX assumes sin_port and sin6_port at same offset */
-+
-+ /* adjust local address */
-+ getsockname(
-+ *thesock,
-+ (struct sockaddr*)&((*sock)->local_addr->sa),
-+ &((*sock)->local_addr->salen)
-+ );
-+ (*sock)->local_addr->port = ntohs((*sock)->local_addr->sa.sin.sin_port);
-+ (*sock)->local_port_unknown = (*sock)->local_interface_unknown = 0;
-+ }
-+
- (*sock)->remote_addr_unknown = 1;
- (*sock)->socketdes = *thesock;
- return APR_SUCCESS;