summaryrefslogtreecommitdiff
path: root/tests/server
diff options
context:
space:
mode:
authorMarc Hoersken <info@marc-hoersken.de>2021-05-02 20:42:11 +0200
committerMarc Hoersken <info@marc-hoersken.de>2021-05-05 22:30:12 +0200
commitb9239e0f9ce64479b7e77472196c958aa388ae7e (patch)
treed371e77bf54205893d031cec448a3ff6c6a3fd14 /tests/server
parent5a1ec19fda3978d20f46df53c44cf659846004ac (diff)
downloadcurl-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.c3
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;