PATCH: dlls/winsock/socket.c portability

Gerald Pfeifer pfeifer at dbai.tuwien.ac.at
Wed Jan 22 06:08:15 CST 2003


This mostly fixes compilation on FreeBSD.

 - The two #defines account for slightly different structure (where
   FreeBSD has an additional nesting level).

 - The two other changes (#ifdef IPX_FRAME_NONE and using memset instead
   of assignment are improve portability in general, and current GCCs will
   optimize the memset anyway).

Gerald


ChangeLog:
  Improve portability wrt. struct sockaddr_ipx.

Index: socket.c
===================================================================
RCS file: /home/wine/wine/dlls/winsock/socket.c,v
retrieving revision 1.116
diff -u -3 -p -r1.116 socket.c
--- socket.c	6 Dec 2002 23:19:21 -0000	1.116
+++ socket.c	22 Jan 2003 12:04:15 -0000
@@ -120,6 +120,10 @@
 #include "wine/server.h"
 #include "wine/debug.h"

+#ifdef __FreeBSD__
+# define sipx_network    sipx_addr.x_net
+# define sipx_node       sipx_addr.x_host
+#endif  /* __FreeBSD__ */

 WINE_DEFAULT_DEBUG_CHANNEL(winsock);

@@ -878,8 +882,10 @@ static const struct sockaddr* ws_sockadd
              * in one go
              */
             memcpy(&uipx->sipx_network,wsipx->sa_netnum,sizeof(uipx->sipx_network)+sizeof(uipx->sipx_node));
+#ifdef IPX_FRAME_NONE
             uipx->sipx_type=IPX_FRAME_NONE;
-            uipx->sipx_zero=0;
+#endif
+            memset(&uipx->sipx_zero,0,sizeof uipx->sipx_zero);
             return (const struct sockaddr*)uipx;
         }
 #endif



More information about the wine-patches mailing list