httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From r..@hyperreal.org
Subject cvs commit: apache-2.0/src/lib/apr/network_io/unix sockets.c sockopt.c
Date Sat, 04 Sep 1999 00:21:17 GMT
rbb         99/09/03 17:21:16

  Modified:    src/lib/apr/include apr_errno.h apr_network_io.h
               src/lib/apr/network_io/unix sockets.c sockopt.c
  Log:
  A couple of new features for APR.  And a few doc changes for APR.
  
  Revision  Changes    Path
  1.2       +8 -0      apache-2.0/src/lib/apr/include/apr_errno.h
  
  Index: apr_errno.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/include/apr_errno.h,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- apr_errno.h	1999/08/17 15:59:37	1.1
  +++ apr_errno.h	1999/09/04 00:21:15	1.2
  @@ -413,6 +413,14 @@
   #define APR_BADARG         5013
   #define APR_EOF            5014
   #define APR_NOTFOUND       5015
  +#define APR_EINIT          5016   /* A simple value to be used to initialze a
  +                                   * status variable.
  +                                   */ 
  +#define APR_ENOTIMPL       5017   /* Not implemented either because we haven't
  +                                   * gotten to it yet, or because it is not
  +                                   * possible to do correctly.
  +                                   */
  +
   #ifdef __cplusplus
   }
   #endif
  
  
  
  1.4       +6 -0      apache-2.0/src/lib/apr/include/apr_network_io.h
  
  Index: apr_network_io.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/include/apr_network_io.h,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- apr_network_io.h	1999/09/03 14:20:22	1.3
  +++ apr_network_io.h	1999/09/04 00:21:15	1.4
  @@ -76,6 +76,10 @@
   #define APRMAXHOSTLEN 256
   #endif
   
  +#ifndef APR_ANYADDR
  +#define APR_ANYADDR "ANY_IPADDR"
  +#endif
  +
   /* Socket option definitions */
   #define APR_SO_LINGER        1
   #define APR_SO_KEEPALIVE     2
  @@ -83,6 +87,7 @@
   #define APR_SO_NONBLOCK      8
   #define APR_SO_REUSEADDR     16
   #define APR_SO_TIMEOUT       32
  +#define APR_SO_SNDBUF        64
   
   #define APR_POLLIN    0x001 
   #define APR_POLLPRI   0x002
  @@ -120,6 +125,7 @@
   ap_status_t ap_setport(ap_socket_t *, ap_uint32_t);
   ap_status_t ap_setipaddr(ap_socket_t *, const char *);
   ap_status_t ap_getport(ap_socket_t *, ap_uint32_t *);
  +ap_status_t ap_getipaddr(ap_socket_t *, char **);
   
   ap_status_t ap_setup_poll(ap_context_t *, ap_int32_t, ap_pollfd_t **);
   ap_status_t ap_poll(ap_pollfd_t *, ap_int32_t *, ap_int32_t);
  
  
  
  1.4       +21 -2     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.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- sockets.c	1999/09/03 14:33:11	1.3
  +++ sockets.c	1999/09/04 00:21:16	1.4
  @@ -63,6 +63,7 @@
   #include <sys/socket.h>
   #include <netinet/tcp.h>
   #include <netinet/in.h>
  +#include <arpa/inet.h>
   #include <netdb.h>
   
   ap_status_t socket_cleanup(void *sock)
  @@ -174,18 +175,36 @@
   }
   
   /* ***APRDOC********************************************************
  - * ap_status_t ap_setipaddr(ap_socket_t *, apr_uint32_t addr)
  + * ap_status_t ap_setipaddr(ap_socket_t *, cont char *addr)
    *    Assocaite a socket addr with an apr socket.
    * arg 1) The socket to use 
    * arg 2) The IP address to attach to the socket.
  + *        Use APR_ANYADDR to use any IP addr on the machine.
    * NOTE:  This does not bind the two together, it is just telling apr 
    *        that this socket is going to use this address if possible. 
    */
   ap_status_t ap_setipaddr(struct socket_t *sock, const char *addr)
   {
  -    if (inet_aton(addr, &sock->addr->sin_addr.s_addr) == 0) {
  +    if (!strcmp(addr, APR_ANYADDR)) {
  +        sock->addr->sin_addr.s_addr = htonl(INADDR_ANY);
  +        return APR_SUCCESS;
  +    }
  +    if (inet_aton(addr, &sock->addr->sin_addr) == 0) {
           return errno;
       }
  +    return APR_SUCCESS;
  +}
  +
  +/* ***APRDOC********************************************************
  + * ap_status_t ap_getipaddr(ap_socket_t *, char *addr)
  + *    Return the IP address associated with an apr socket.
  + * arg 1) The socket to use 
  + * arg 2) The IP address associated with the socket.
  + */
  +ap_status_t ap_getipaddr(struct socket_t *sock, char **addr)
  +{
  +    char *temp = inet_ntoa(sock->addr->sin_addr);
  +    strcpy(*addr, temp);
       return APR_SUCCESS;
   }
   
  
  
  
  1.3       +6 -0      apache-2.0/src/lib/apr/network_io/unix/sockopt.c
  
  Index: sockopt.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/unix/sockopt.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- sockopt.c	1999/09/03 14:20:23	1.2
  +++ sockopt.c	1999/09/04 00:21:16	1.3
  @@ -120,6 +120,7 @@
    *                                  supplied to bind should allow reuse
    *                                  of local addresses.
    *            APR_SO_TIMEOUT    --  Set the timeout value in seconds.
  + *            APR_SO_SNDBUF     -- Set the SendBufferSize
    * arg 3) Are we turning the option on or off.
    */
   ap_status_t ap_setsocketopt(struct socket_t *sock, ap_int32_t opt, ap_int32_t on)
  @@ -145,6 +146,11 @@
       }
       if (opt & APR_SO_REUSEADDR) {
           if (setsockopt(sock->socketdes, SOL_SOCKET, SO_REUSEADDR, (void *)&one,
sizeof(int)) == -1) {
  +            return errno;
  +        }
  +    }
  +    if (opt & APR_SO_SNDBUF) {
  +        if (setsockopt(sock->socketdes, SOL_SOCKET, SO_SNDBUF, (void *)&on, sizeof(int))
== -1) {
               return errno;
           }
       }
  
  
  

Mime
View raw message