From: Zebediah Figura Subject: [PATCH 4/5] ws2_32: Use IOCTL_AFD_WINE_DEFER. Message-Id: <20210618015824.185630-4-z.figura12@gmail.com> Date: Thu, 17 Jun 2021 20:58:23 -0500 In-Reply-To: <20210618015824.185630-1-z.figura12@gmail.com> References: <20210618015824.185630-1-z.figura12@gmail.com> Signed-off-by: Zebediah Figura --- dlls/ws2_32/socket.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c index 3c3eef72f51..bfc4bb6c09d 100644 --- a/dlls/ws2_32/socket.c +++ b/dlls/ws2_32/socket.c @@ -4564,18 +4564,16 @@ SOCKET WINAPI WSAAccept( SOCKET s, struct WS_sockaddr *addr, int *addrlen, return cs; case CF_DEFER: - SERVER_START_REQ( set_socket_deferred ) - { - req->handle = wine_server_obj_handle( SOCKET2HANDLE(s) ); - req->deferred = wine_server_obj_handle( SOCKET2HANDLE(cs) ); - if ( !wine_server_call_err ( req ) ) - { - SetLastError( WSATRY_AGAIN ); - WS_closesocket( cs ); - } - } - SERVER_END_REQ; - return SOCKET_ERROR; + { + obj_handle_t server_handle = cs; + IO_STATUS_BLOCK io; + NTSTATUS status; + + status = NtDeviceIoControlFile( (HANDLE)s, NULL, NULL, NULL, &io, IOCTL_AFD_WINE_DEFER, + &server_handle, sizeof(server_handle), NULL, 0 ); + SetLastError( status ? RtlNtStatusToDosError( status ) : WSATRY_AGAIN ); + return -1; + } case CF_REJECT: WS_closesocket( cs ); -- 2.30.2