Rob Shearman : include: Add declaration of sockaddr_storage to ws2def.h.

Alexandre Julliard julliard at winehq.org
Tue Apr 7 09:04:39 CDT 2009


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

Author: Rob Shearman <robertshearman at gmail.com>
Date:   Tue Apr  7 12:29:35 2009 +0100

include: Add declaration of sockaddr_storage to ws2def.h.

Move other declarations that belong in ws2def.h from winsock2.h.

---

 include/Makefile.in |    1 +
 include/winsock2.h  |   23 +----------------
 include/ws2def.h    |   71 +++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 73 insertions(+), 22 deletions(-)

diff --git a/include/Makefile.in b/include/Makefile.in
index 6c1878a..795e55c 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -473,6 +473,7 @@ SRCDIR_INCLUDES = \
 	wmistr.h \
 	wnaspi32.h \
 	wownt32.h \
+	ws2def.h \
 	ws2ipdef.h \
 	ws2spi.h \
 	ws2tcpip.h \
diff --git a/include/winsock2.h b/include/winsock2.h
index b73fde3..d54e8a8 100644
--- a/include/winsock2.h
+++ b/include/winsock2.h
@@ -47,6 +47,7 @@
 #include <winsock.h>
 #undef  __WINE_WINSOCK2__
 
+#include <ws2def.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -421,28 +422,6 @@ typedef struct _BLOB {
 } BLOB, *LPBLOB;
 #endif
 
-#ifndef __CSADDR_DEFINED__
-#define __CSADDR_DEFINED__
-
-typedef struct _SOCKET_ADDRESS {
-        LPSOCKADDR      lpSockaddr;
-        INT             iSockaddrLength;
-} SOCKET_ADDRESS, *PSOCKET_ADDRESS, *LPSOCKET_ADDRESS;
-
-typedef struct _CSADDR_INFO {
-        SOCKET_ADDRESS  LocalAddr;
-        SOCKET_ADDRESS  RemoteAddr;
-        INT             iSocketType;
-        INT             iProtocol;
-} CSADDR_INFO, *PCSADDR_INFO, *LPCSADDR_INFO;
-#endif
-
-/*socket address list */
-typedef struct _SOCKET_ADDRESS_LIST {
-        INT             iAddressCount;
-        SOCKET_ADDRESS  Address[1];
-} SOCKET_ADDRESS_LIST, *LPSOCKET_ADDRESS_LIST;
-
 /*   addressfamily protocol pairs */
 typedef struct _AFPROTOCOLS {
         INT     iAddressFamily;
diff --git a/include/ws2def.h b/include/ws2def.h
new file mode 100644
index 0000000..f2f7223
--- /dev/null
+++ b/include/ws2def.h
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2009 Robert Shearman
+ *
+ * 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 _WS2DEF_
+#define _WS2DEF_
+
+/* FIXME: #include <inaddr.h> */
+
+#ifdef USE_WS_PREFIX
+#define WS(x)    WS_##x
+#else
+#define WS(x)    x
+#endif
+
+#ifndef __CSADDR_DEFINED__
+#define __CSADDR_DEFINED__
+
+typedef struct _SOCKET_ADDRESS {
+        LPSOCKADDR      lpSockaddr;
+        INT             iSockaddrLength;
+} SOCKET_ADDRESS, *PSOCKET_ADDRESS, *LPSOCKET_ADDRESS;
+
+typedef struct _CSADDR_INFO {
+        SOCKET_ADDRESS  LocalAddr;
+        SOCKET_ADDRESS  RemoteAddr;
+        INT             iSocketType;
+        INT             iProtocol;
+} CSADDR_INFO, *PCSADDR_INFO, *LPCSADDR_INFO;
+#endif
+
+#ifdef USE_WS_PREFIX
+#define WS__SS_MAXSIZE 128
+#define WS__SS_ALIGNSIZE (sizeof(__int64))
+#define WS__SS_PAD1SIZE (WS__SS_ALIGNSIZE - sizeof(short))
+#define WS__SS_PAD2SIZE (WS__SS_MAXSIZE - 2 * WS__SS_ALIGNSIZE)
+#else
+#define _SS_MAXSIZE 128
+#define _SS_ALIGNSIZE (sizeof(__int64))
+#define _SS_PAD1SIZE (_SS_ALIGNSIZE - sizeof(short))
+#define _SS_PAD2SIZE (_SS_MAXSIZE - 2 * _SS_ALIGNSIZE)
+#endif
+
+typedef struct WS(sockaddr_storage) {
+        short ss_family;
+        char __ss_pad1[WS(_SS_PAD1SIZE)];
+        __int64 __ss_align;
+        char __ss_pad2[WS(_SS_PAD2SIZE)];
+} SOCKADDR_STORAGE, *PSOCKADDR_STORAGE, *LPSOCKADDR_STORAGE;
+
+/*socket address list */
+typedef struct _SOCKET_ADDRESS_LIST {
+        INT             iAddressCount;
+        SOCKET_ADDRESS  Address[1];
+} SOCKET_ADDRESS_LIST, *LPSOCKET_ADDRESS_LIST;
+
+#endif /* _WS2DEF_ */




More information about the wine-cvs mailing list