manoj 99/11/06 23:35:43
Modified: src/lib/apr/network_io/unix sockets.c
Log:
ap_put_os_sock needs to do a lot of preparation of an ap_socket_t for it
to be usable. This patch adds it.
Revision Changes Path
1.24 +14 -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.23
retrieving revision 1.24
diff -u -d -u -r1.23 -r1.24
--- sockets.c 1999/11/02 21:49:26 1.23
+++ sockets.c 1999/11/07 07:35:42 1.24
@@ -335,6 +335,20 @@
if ((*sock) == NULL) {
(*sock) = (struct socket_t *)ap_palloc(cont, sizeof(struct
socket_t));
(*sock)->cntxt = cont;
+ (*sock)->local_addr = (struct sockaddr_in *)ap_palloc((*sock)->cntxt,
+ sizeof(struct sockaddr_in));
+ (*sock)->remote_addr = (struct sockaddr_in
*)ap_palloc((*sock)->cntxt,
+ sizeof(struct sockaddr_in));
+
+ if ((*sock)->local_addr == NULL || (*sock)->remote_addr == NULL) {
+ return APR_ENOMEM;
+ }
+
+ (*sock)->addr_len = sizeof(*(*sock)->local_addr);
+ (*sock)->timeout = -1;
+ if (getsockname(*thesock, (*sock)->local_addr, &((*sock)->addr_len))
< 0) {
+ return errno;
+ }
}
(*sock)->socketdes = *thesock;
return APR_SUCCESS;