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;
  
  
  

Reply via email to