ws2_32: Use IOCTL_AFD_WINE_DEFER.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zebediah Figura 2021-06-17 20:58:23 -05:00 committed by Alexandre Julliard
parent 4d30a0e15c
commit 5a20e0878e
1 changed files with 10 additions and 12 deletions

View File

@ -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 );