From b9239e0f9ce64479b7e77472196c958aa388ae7e Mon Sep 17 00:00:00 2001 From: Marc Hoersken Date: Sun, 2 May 2021 20:42:11 +0200 Subject: [PATCH] sockfilt: avoid getting stuck waiting for writable socket Reset FD_WRITE event using the same approach as in multi.c Follow up to b36442b24305f3cda7c13cc64b46838995a4985b Closes #6992 --- tests/server/sockfilt.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/server/sockfilt.c b/tests/server/sockfilt.c index e29e118714..7009b2585b 100644 --- a/tests/server/sockfilt.c +++ b/tests/server/sockfilt.c @@ -741,6 +741,9 @@ static int select_ws(int nfds, fd_set *readfds, fd_set *writefds, else { wsaevent = WSACreateEvent(); if(wsaevent != WSA_INVALID_EVENT) { + if(wsaevents.lNetworkEvents & FD_WRITE) { + send(wsasock, NULL, 0, 0); /* reset FD_WRITE */ + } error = WSAEventSelect(wsasock, wsaevent, wsaevents.lNetworkEvents); if(error != SOCKET_ERROR) { handles[nfd] = (HANDLE)wsaevent;