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