[prev in list] [next in list] [prev in thread] [next in thread]
List: wine-patches
Subject: ws2_32: Implement SO_EXCLUSIVEADDRUSE for setsockopt
From: Kai Blin <kai.blin () gmail ! com>
Date: 2006-11-30 12:27:02
Message-ID: 200611301327.03844.kai.blin () gmail ! com
[Download RAW message or body]
---
dlls/ws2_32/socket.c | 9 +++++++++
include/winsock.h | 2 ++
2 files changed, 11 insertions(+), 0 deletions(-)
["1643d3d11cda982e7c10a1bf0ab67f6df842f57d.diff" (text/x-patch)]
diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c
index 0d4af98..80640a6 100644
--- a/dlls/ws2_32/socket.c
+++ b/dlls/ws2_32/socket.c
@@ -2753,6 +2753,15 @@ int WINAPI WS_setsockopt(SOCKET s, int l
return 0;
}
+ /* SO_EXCLUSIVEADDRUSE stops applications from binding to a port that is
+ * already used. This never works on Unix systems, so just ignore this
+ * setting*/
+ if ( level == WS_SOL_SOCKET && optname == WS_SO_EXCLUSIVEADDRUSE )
+ {
+ TRACE("Ignoring SO_EXCLUSIVEADDRUSE\n");
+ return 0;
+ }
+
#ifdef HAVE_IPX
if(level == NSPROTO_IPX)
{
diff --git a/include/winsock.h b/include/winsock.h
index 9d5165b..9769e68 100644
--- a/include/winsock.h
+++ b/include/winsock.h
@@ -663,6 +663,7 @@ #define SOL_SOCKET 0xfff
#define SO_DEBUG 0x0001
#define SO_ACCEPTCONN 0x0002
#define SO_REUSEADDR 0x0004
+#define SO_EXCLUSIVEADDRUSE ((u_int)(~SO_REUSEADDR))
#define SO_KEEPALIVE 0x0008
#define SO_DONTROUTE 0x0010
#define SO_BROADCAST 0x0020
@@ -696,6 +697,7 @@ #define WS_SOL_SOCKET 0xfff
#define WS_SO_DEBUG 0x0001
#define WS_SO_ACCEPTCONN 0x0002
#define WS_SO_REUSEADDR 0x0004
+#define WS_SO_EXCLUSIVEADDRUSE ((u_int)(~WS_SO_REUSEADDR))
#define WS_SO_KEEPALIVE 0x0008
#define WS_SO_DONTROUTE 0x0010
#define WS_SO_BROADCAST 0x0020
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic