Jeff Latimer : include: Bring in6_addr into line with the MS definition.

Alexandre Julliard julliard at winehq.org
Wed Apr 22 10:18:52 CDT 2009


Module: wine
Branch: master
Commit: b485ed2346b07afe7d3212f065610d8f20beb678
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=b485ed2346b07afe7d3212f065610d8f20beb678

Author: Jeff Latimer <lats at yless4u.com.au>
Date:   Wed Apr 22 23:09:14 2009 +1000

include: Bring in6_addr into line with the MS definition.

---

 include/Makefile.in |    1 +
 include/in6addr.h   |   52 +++++++++++++++++++++++++++++++++++++++++++++++++++
 include/ws2ipdef.h  |   29 +++++++++------------------
 include/ws2tcpip.h  |    3 --
 4 files changed, 63 insertions(+), 22 deletions(-)

diff --git a/include/Makefile.in b/include/Makefile.in
index 795e55c..5f7aacc 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -244,6 +244,7 @@ SRCDIR_INCLUDES = \
 	idispids.h \
 	imagehlp.h \
 	imm.h \
+	in6addr.h \
 	initguid.h \
 	intshcut.h \
 	ipexport.h \
diff --git a/include/in6addr.h b/include/in6addr.h
new file mode 100644
index 0000000..042e8d2
--- /dev/null
+++ b/include/in6addr.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2009 Jeff Latimer
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __IN6ADDR__
+#define __IN6ADDR__
+
+#ifdef USE_WS_PREFIX
+#define WS(x)    WS_##x
+#else
+#define WS(x)    x
+#endif
+
+typedef struct WS(in6_addr) {
+    union {
+        WS(u_char)  Byte[16];
+        WS(u_short) Word[8];
+    } u;
+} IN6_ADDR, *PIN6_ADDR, *LPIN6_ADDR;
+
+#define in_addr6    WS(in6_addr)
+
+#ifdef USE_WS_PREFIX
+#define WS__S6_un   u
+#define WS__S6_u8   Byte
+#define WS_s6_addr  WS__S6_un.WS__S6_u8
+#else
+#define _S6_un      u
+#define _S6_u8      Byte
+#define s6_addr     _S6_un._S6_u8
+#endif
+
+#define s6_bytes    u.Byte
+#define s6_words    u.Word
+
+#undef WS
+
+#endif /* __IN6ADDR__ */
diff --git a/include/ws2ipdef.h b/include/ws2ipdef.h
index c9c0970..ff2b201 100644
--- a/include/ws2ipdef.h
+++ b/include/ws2ipdef.h
@@ -19,7 +19,7 @@
 #ifndef __WS2IPDEF__
 #define __WS2IPDEF__
 
-/* FIXME: #include <in6addr.h> */
+#include <in6addr.h>
 
 #ifdef USE_WS_PREFIX
 #define WS(x)    WS_##x
@@ -27,21 +27,12 @@
 #define WS(x)    x
 #endif
 
-/* FIXME: This gets defined by some Unix (Linux) header and messes things */
-#undef s6_addr
-
-/* FIXME: should be in in6addr.h */
-typedef struct WS(in_addr6)
-{
-   WS(u_char) s6_addr[16]; /* IPv6 address */
-} IN6_ADDR, *PIN6_ADDR, *LPIN6_ADDR;
-
 typedef struct WS(sockaddr_in6_old)
 {
-   short   sin6_family;            /* AF_INET6 */
-   WS(u_short) sin6_port;              /* Transport level port number */
-   WS(u_long) sin6_flowinfo;          /* IPv6 flow information */
-   struct  WS(in_addr6) sin6_addr; /* IPv6 address */
+   SHORT    sin6_family;
+   USHORT   sin6_port;
+   ULONG    sin6_flowinfo;
+   IN6_ADDR sin6_addr;
 } SOCKADDR_IN6_OLD,*PSOCKADDR_IN6_OLD, *LPSOCKADDR_IN6_OLD;
 
 typedef union sockaddr_gen
@@ -131,11 +122,11 @@ typedef struct _INTERFACE_INFO
 
 typedef struct WS(sockaddr_in6)
 {
-   short   sin6_family;            /* AF_INET6 */
-   WS(u_short) sin6_port;          /* Transport level port number */
-   WS(u_long) sin6_flowinfo;       /* IPv6 flow information */
-   struct  WS(in_addr6) sin6_addr; /* IPv6 address */
-   WS(u_long) sin6_scope_id;       /* IPv6 scope id */
+   SHORT    sin6_family;
+   USHORT   sin6_port;
+   ULONG    sin6_flowinfo;
+   IN6_ADDR sin6_addr;
+   ULONG    sin6_scope_id;
 } SOCKADDR_IN6,*PSOCKADDR_IN6, *LPSOCKADDR_IN6;
 
 /*
diff --git a/include/ws2tcpip.h b/include/ws2tcpip.h
index fc9f258..6f1293f 100644
--- a/include/ws2tcpip.h
+++ b/include/ws2tcpip.h
@@ -29,9 +29,6 @@
 #define WS(x)    x
 #endif
 
-/* FIXME: This gets defined by some Unix (Linux) header and messes things */
-#undef s6_addr
-
 /* for addrinfo calls */
 typedef struct WS(addrinfo)
 {




More information about the wine-cvs mailing list