Zebediah Figura : ws2_32: Reimplement getsockopt(SO_TYPE) on top of ws_protocol_info().
Alexandre Julliard
julliard at winehq.org
Thu Jul 1 15:53:48 CDT 2021
Module: wine
Branch: master
Commit: b58ca92fa53088a87c4c33a1e31c0d4ec1a43a1c
URL: https://source.winehq.org/git/wine.git/?a=commit;h=b58ca92fa53088a87c4c33a1e31c0d4ec1a43a1c
Author: Zebediah Figura <z.figura12 at gmail.com>
Date: Wed Jun 30 20:24:35 2021 -0500
ws2_32: Reimplement getsockopt(SO_TYPE) on top of ws_protocol_info().
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ws2_32/socket.c | 21 ++++++++-------------
1 file changed, 8 insertions(+), 13 deletions(-)
diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c
index ce71e25d63d..9f32e7eaf96 100644
--- a/dlls/ws2_32/socket.c
+++ b/dlls/ws2_32/socket.c
@@ -2259,27 +2259,22 @@ INT WINAPI WS_getsockopt(SOCKET s, INT level,
case WS_SO_TYPE:
{
- int sock_type;
+ WSAPROTOCOL_INFOW info;
+ int size;
+
if (!optlen || *optlen < sizeof(int) || !optval)
{
SetLastError(WSAEFAULT);
return SOCKET_ERROR;
}
- if ( (fd = get_sock_fd( s, 0, NULL )) == -1)
- return SOCKET_ERROR;
- sock_type = _get_fd_type(fd);
- if (sock_type == -1)
- {
- SetLastError(wsaErrno());
- ret = SOCKET_ERROR;
- }
- else
- (*(int *)optval) = convert_socktype_u2w(sock_type);
+ if (!ws_protocol_info( s, TRUE, &info, &size ))
+ return -1;
- release_sock_fd( s, fd );
- return ret;
+ *(int *)optval = info.iSocketType;
+ return 0;
}
+
default:
TRACE("Unknown SOL_SOCKET optname: 0x%08x\n", optname);
SetLastError(WSAENOPROTOOPT);
More information about the wine-cvs
mailing list