manoj 99/11/02 13:49:28
Modified: src/lib/apr/network_io/beos sockets.c
src/lib/apr/network_io/unix sockets.c
src/lib/apr/network_io/win32 sockets.c
Log:
Another APR socket bug. We weren't properly setting local_addr. This
also makes vhosts work again.
My previous APR socket commit made restarts work again, BTW.
Revision Changes Path
1.15 +2 -0 apache-2.0/src/lib/apr/network_io/beos/sockets.c
Index: sockets.c
===================================================================
RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/beos/sockets.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -u -r1.14 -r1.15
--- sockets.c 1999/11/02 21:21:51 1.14
+++ sockets.c 1999/11/02 21:49:25 1.15
@@ -148,6 +148,8 @@
(*new)->cntxt = connection_context;
(*new)->local_addr = (struct sockaddr_in *)ap_palloc((*new)->cntxt,
sizeof(struct sockaddr_in));
+ memcpy((*new)->local_addr, sock->local_addr, sizeof(struct sockaddr_in));
+
(*new)->remote_addr = (struct sockaddr_in *)ap_palloc((*new)->cntxt,
sizeof(struct sockaddr_in));
(*new)->addr_len = sizeof(struct sockaddr_in);
1.23 +2 -0 apache-2.0/src/lib/apr/network_io/unix/sockets.c
Index: sockets.c
===================================================================
RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/unix/sockets.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -u -r1.22 -r1.23
--- sockets.c 1999/11/02 21:21:53 1.22
+++ sockets.c 1999/11/02 21:49:26 1.23
@@ -202,6 +202,8 @@
(*new)->cntxt = connection_context;
(*new)->local_addr = (struct sockaddr_in *)ap_palloc((*new)->cntxt,
sizeof(struct sockaddr_in));
+ memcpy((*new)->local_addr, sock->local_addr, sizeof(struct sockaddr_in));
+
(*new)->remote_addr = (struct sockaddr_in *)ap_palloc((*new)->cntxt,
sizeof(struct sockaddr_in));
(*new)->addr_len = sizeof(struct sockaddr_in);
1.15 +2 -0 apache-2.0/src/lib/apr/network_io/win32/sockets.c
Index: sockets.c
===================================================================
RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/win32/sockets.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -u -r1.14 -r1.15
--- sockets.c 1999/11/02 21:21:54 1.14
+++ sockets.c 1999/11/02 21:49:27 1.15
@@ -165,6 +165,8 @@
(*new)->cntxt = connection_context;
(*new)->local_addr = (struct sockaddr_in *)ap_palloc((*new)->cntxt,
sizeof(struct sockaddr_in));
+ memcpy((*new)->local_addr, sock->local_addr, sizeof(struct sockaddr_in));
+
(*new)->addr_len = sizeof(struct sockaddr_in);
(*new)->sock = accept(sock->sock, (struct sockaddr *)(*new)->local_addr,