You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apr.apache.org by Jeff Trawick <tr...@attglobal.net> on 2002/03/28 19:29:48 UTC

[PATCH] a little network_io cleanup for OS/2

not tested, not even compiled

Index: network_io/os2/sockets.c
===================================================================
RCS file: /home/cvspublic/apr/network_io/os2/sockets.c,v
retrieving revision 1.51
diff -u -r1.51 sockets.c
--- network_io/os2/sockets.c	13 Mar 2002 20:39:24 -0000	1.51
+++ network_io/os2/sockets.c	28 Mar 2002 18:29:59 -0000
@@ -87,35 +87,8 @@
 static void set_socket_vars(apr_socket_t *sock, int family, int type)
 {
     sock->type = type;
-    sock->local_addr->family = family;
-    sock->local_addr->sa.sin.sin_family = family;
-    sock->remote_addr->family = family;
-    sock->remote_addr->sa.sin.sin_family = family;
-
-    if (family == AF_INET) {
-        sock->local_addr->salen = sizeof(struct sockaddr_in);
-        sock->local_addr->addr_str_len = 16;
-        sock->local_addr->ipaddr_ptr = &(sock->local_addr->sa.sin.sin_addr);
-        sock->local_addr->ipaddr_len = sizeof(struct in_addr);
-
-        sock->remote_addr->salen = sizeof(struct sockaddr_in);
-        sock->remote_addr->addr_str_len = 16;
-        sock->remote_addr->ipaddr_ptr = &(sock->remote_addr->sa.sin.sin_addr);
-        sock->remote_addr->ipaddr_len = sizeof(struct in_addr);
-    }
-#if APR_HAVE_IPV6
-    else if (family == AF_INET6) {
-        sock->local_addr->salen = sizeof(struct sockaddr_in6);
-        sock->local_addr->addr_str_len = 46;
-        sock->local_addr->ipaddr_ptr = &(sock->local_addr->sa.sin6.sin6_addr);
-        sock->local_addr->ipaddr_len = sizeof(struct in6_addr);
-
-        sock->remote_addr->salen = sizeof(struct sockaddr_in6);
-        sock->remote_addr->addr_str_len = 46;
-        sock->remote_addr->ipaddr_ptr = &(sock->remote_addr->sa.sin6.sin6_addr);
-        sock->remote_addr->ipaddr_len = sizeof(struct in6_addr);
-    }
-#endif
+    apr_set_sockaddr_vars(sock->local_addr, family, 0);
+    apr_set_sockaddr_vars(sock->remote_addr, family, 0);
 }
 
 static void alloc_socket(apr_socket_t **new, apr_pool_t *p)
@@ -223,6 +196,8 @@
     if ((*new)->socketdes < 0) {
         return APR_OS2_STATUS(sock_errno());
     }
+    /* XXX fix up any pointers which are no longer valid (or just call
+     *     apr_set_socket_vars() to do it */
     (*new)->remote_addr->port = ntohs((*new)->remote_addr->sa.sin.sin_port);
     apr_pool_cleanup_register((*new)->cntxt, (void *)(*new), 
                         socket_cleanup, apr_pool_cleanup_null);

-- 
Jeff Trawick | trawick@attglobal.net
Born in Roswell... married an alien...