Added patch to implement stub for several setsockopt options.

This commit is contained in:
Sebastian Lackner 2017-07-22 05:25:14 +02:00
parent 60870e076f
commit 69e273a07f
2 changed files with 83 additions and 0 deletions

View File

@ -492,6 +492,7 @@ patch_enable_all ()
enable_ws2_32_WSACleanup="$1"
enable_ws2_32_WriteWatches="$1"
enable_ws2_32_getsockopt="$1"
enable_ws2_32_setsockopt="$1"
enable_wtsapi32_EnumerateProcesses="$1"
enable_wtsapi32_WTSQueryUserToken="$1"
enable_wuauserv_Dummy_Service="$1"
@ -1735,6 +1736,9 @@ patch_enable ()
ws2_32-getsockopt)
enable_ws2_32_getsockopt="$2"
;;
ws2_32-setsockopt)
enable_ws2_32_setsockopt="$2"
;;
wtsapi32-EnumerateProcesses)
enable_wtsapi32_EnumerateProcesses="$2"
;;
@ -10063,6 +10067,18 @@ if test "$enable_ws2_32_getsockopt" -eq 1; then
) >> "$patchlist"
fi
# Patchset ws2_32-setsockopt
# |
# | Modified files:
# | * dlls/ws2_32/socket.c, include/winsock.h
# |
if test "$enable_ws2_32_setsockopt" -eq 1; then
patch_apply ws2_32-setsockopt/0001-w2_32-Ignore-setting-several-port-assignment-related.patch
(
printf '%s\n' '+ { "Michael Müller", "w2_32: Ignore setting several port assignment related socket options.", 1 },';
) >> "$patchlist"
fi
# Patchset wtsapi32-EnumerateProcesses
# |
# | This patchset fixes the following Wine bugs:

View File

@ -0,0 +1,67 @@
From 9d196cf502e963e7ce807a1a338f963078a2b6d9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 22 Jul 2017 04:37:50 +0200
Subject: w2_32: Ignore setting several port assignment related socket options.
---
dlls/ws2_32/socket.c | 16 ++++++++++++++++
include/winsock.h | 9 +++++++++
2 files changed, 25 insertions(+)
diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c
index fac47d78527..a34e3b97574 100644
--- a/dlls/ws2_32/socket.c
+++ b/dlls/ws2_32/socket.c
@@ -5957,6 +5957,22 @@ int WINAPI WS_setsockopt(SOCKET s, int level, int optname,
break;
#endif
+ case WS_SO_RANDOMIZE_PORT:
+ FIXME("Ignoring WS_SO_RANDOMIZE_PORT\n");
+ return 0;
+
+ case WS_SO_PORT_SCALABILITY:
+ FIXME("Ignoring WS_SO_PORT_SCALABILITY\n");
+ return 0;
+
+ case WS_SO_REUSE_UNICASTPORT:
+ FIXME("Ignoring WS_SO_REUSE_UNICASTPORT\n");
+ return 0;
+
+ case WS_SO_REUSE_MULTICASTPORT:
+ FIXME("Ignoring WS_SO_REUSE_MULTICASTPORT\n");
+ return 0;
+
default:
TRACE("Unknown SOL_SOCKET optname: 0x%08x\n", optname);
SetLastError(WSAENOPROTOOPT);
diff --git a/include/winsock.h b/include/winsock.h
index 2feb22466e4..fc1bc0c8d5b 100644
--- a/include/winsock.h
+++ b/include/winsock.h
@@ -664,6 +664,10 @@ typedef struct WS(WSAData)
#define SO_TYPE 0x1008
#define SO_BSP_STATE 0x1009
+#define SO_RANDOMIZE_PORT 0x3005
+#define SO_PORT_SCALABILITY 0x3006
+#define SO_REUSE_UNICASTPORT 0x3007
+#define SO_REUSE_MULTICASTPORT 0x3008
#define IOCPARM_MASK 0x7f
#define IOC_VOID 0x20000000
@@ -699,6 +703,11 @@ typedef struct WS(WSAData)
#define WS_SO_TYPE 0x1008
#define WS_SO_BSP_STATE 0x1009
+#define WS_SO_RANDOMIZE_PORT 0x3005
+#define WS_SO_PORT_SCALABILITY 0x3006
+#define WS_SO_REUSE_UNICASTPORT 0x3007
+#define WS_SO_REUSE_MULTICASTPORT 0x3008
+
#define WS_IOCPARM_MASK 0x7f
#define WS_IOC_VOID 0x20000000
#define WS_IOC_OUT 0x40000000
--
2.13.1