From 683d46a2cdf08d999f07d13e048ac6bca98b46fa Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Tue, 3 May 2022 17:56:27 -0500 Subject: [PATCH] server: Clear only returned events in IOCTL_AFD_GET_EVENTS. Signed-off-by: Zebediah Figura Signed-off-by: Alexandre Julliard --- dlls/ws2_32/tests/sock.c | 6 +++--- server/sock.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c index c88016c5404..7bc2b2474ca 100644 --- a/dlls/ws2_32/tests/sock.c +++ b/dlls/ws2_32/tests/sock.c @@ -5659,7 +5659,7 @@ static void test_connect_events(struct event_test_ctx *ctx) if (ctx->is_message) check_events(ctx, FD_WRITE, 0, 200); else - check_events_todo(ctx, FD_CONNECT, 0, 200); + check_events(ctx, FD_CONNECT, 0, 200); closesocket(client); closesocket(server); @@ -5896,7 +5896,7 @@ static void test_read_events(struct event_test_ctx *ctx) check_events(ctx, 0, 0, 0); select_events(ctx, server, FD_ACCEPT | FD_CONNECT | FD_OOB | FD_READ | FD_WRITE); - check_events_todo_event(ctx, FD_READ, FD_WRITE, 200); + check_events(ctx, FD_READ, FD_WRITE, 200); check_events(ctx, 0, 0, 0); ret = sync_recv(server, buffer, 5, 0); @@ -6111,7 +6111,7 @@ static void test_close_events(struct event_test_ctx *ctx) check_events(ctx, 0, 0, 200); select_events(ctx, server, FD_ACCEPT | FD_CLOSE | FD_CONNECT | FD_OOB | FD_READ); - check_events_todo_event(ctx, FD_CLOSE, 0, 200); + check_events(ctx, FD_CLOSE, 0, 200); closesocket(server); } diff --git a/server/sock.c b/server/sock.c index 9f9b9bdfcd9..29dd1ca7fa8 100644 --- a/server/sock.c +++ b/server/sock.c @@ -2516,7 +2516,7 @@ static void sock_ioctl( struct fd *fd, ioctl_code_t code, struct async *async ) for (i = 0; i < ARRAY_SIZE( params.status ); ++i) params.status[i] = sock_get_ntstatus( sock->errors[i] ); - sock->pending_events = 0; + sock->pending_events &= ~sock->mask; sock_reselect( sock ); set_reply_data( ¶ms, sizeof(params) );