diff options
author | Marc Hoersken <info@marc-hoersken.de> | 2021-05-02 20:42:11 +0200 |
---|---|---|
committer | Marc Hoersken <info@marc-hoersken.de> | 2021-05-05 22:30:12 +0200 |
commit | b9239e0f9ce64479b7e77472196c958aa388ae7e (patch) | |
tree | d371e77bf54205893d031cec448a3ff6c6a3fd14 /tests/server | |
parent | 5a1ec19fda3978d20f46df53c44cf659846004ac (diff) | |
download | curl-b9239e0f9ce64479b7e77472196c958aa388ae7e.tar.gz |
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
Diffstat (limited to 'tests/server')
-rw-r--r-- | tests/server/sockfilt.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/tests/server/sockfilt.c b/tests/server/sockfilt.c index e29e11871..7009b2585 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; |