[PATCH 0/1] MR9111: ws2_32: Implement SIO_BSP_HANDLE_SELECT.
My understanding is that, in the absence of layered service providers, `SIO_BSP_HANDLE_SELECT` should behave like `SIO_BASE_HANDLE` (this is relied upon by https://github.com/python-trio/trio). Should I add tests to verify this? If so, should they basically just be the same as the existing `SIO_BASE_HANDLE` tests? -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9111
From: Josh Steffen <josh(a)joshsteffen.com> Wine does not support layered service providers, so just fall through to SIO_BASE_HANDLE. --- dlls/ws2_32/socket.c | 1 + include/mswsock.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c index d4223e93bd1..a267f65ab91 100644 --- a/dlls/ws2_32/socket.c +++ b/dlls/ws2_32/socket.c @@ -2701,6 +2701,7 @@ INT WINAPI WSAIoctl(SOCKET s, DWORD code, LPVOID in_buff, DWORD in_size, LPVOID return ret ? -1 : 0; } + case SIO_BSP_HANDLE_SELECT: case SIO_BASE_HANDLE: { NTSTATUS status; diff --git a/include/mswsock.h b/include/mswsock.h index fa97d5bf04d..754b8ec3dd0 100644 --- a/include/mswsock.h +++ b/include/mswsock.h @@ -85,10 +85,12 @@ extern "C" { #ifndef USE_WS_PREFIX #define SIO_UDP_CONNRESET _WSAIOW(IOC_VENDOR, 12) #define SIO_SET_COMPATIBILITY_MODE _WSAIOW(IOC_VENDOR, 300) +#define SIO_BSP_HANDLE_SELECT _WSAIOR(IOC_WS2, 28) #define SIO_BASE_HANDLE _WSAIOR(IOC_WS2, 34) #else #define WS_SIO_UDP_CONNRESET _WSAIOW(WS_IOC_VENDOR, 12) #define WS_SIO_SET_COMPATIBILITY_MODE _WSAIOW(WS_IOC_VENDOR, 300) +#define WS_SIO_BSP_HANDLE_SELECT _WSAIOR(WS_IOC_WS2, 28) #define WS_SIO_BASE_HANDLE _WSAIOR(WS_IOC_WS2, 34) #endif -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9111
Should I add tests to verify this? If so, should they basically just be the same as the existing `SIO_BASE_HANDLE` tests?
Yes, please. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9111#note_117712
participants (3)
-
Elizabeth Figura (@zfigura) -
Josh Steffen -
Josh Steffen (@joshsteffen)