Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/ws2_32/socket.c | 5 ++++- dlls/ws2_32/tests/sock.c | 3 +-- 2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c index fb0dbd2..2d755cc 100644 --- a/dlls/ws2_32/socket.c +++ b/dlls/ws2_32/socket.c @@ -7220,7 +7220,10 @@ int WINAPI WSAEnumNetworkEvents(SOCKET s, WSAEVENT hEvent, LPWSANETWORKEVENTS lp if (!ret) { for (i = 0; i < FD_MAX_EVENTS; i++) - lpEvent->iErrorCode[i] = NtStatusToWSAError(errors[i]); + { + if (lpEvent->lNetworkEvents & (1 << i)) + lpEvent->iErrorCode[i] = NtStatusToWSAError(errors[i]); + } return 0; } SetLastError(WSAEINVAL); diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c index 2b209d4..1ad6dba 100644 --- a/dlls/ws2_32/tests/sock.c +++ b/dlls/ws2_32/tests/sock.c @@ -2996,7 +2996,7 @@ static void test_WSAEnumNetworkEvents(void) } for (k = 0; k < FD_MAX_EVENTS; k++) { - if (i >= 1 && j == 0 && k == 1) /* first UDP and connected TCP test, FD_WRITE bit no error*/ + if (net_events.lNetworkEvents & (1 << k)) { ok (net_events.iErrorCode[k] == 0x0, "Test[%d][%d]: expected 0x0, got 0x%x\n", i, k, net_events.iErrorCode[k]); @@ -3004,7 +3004,6 @@ static void test_WSAEnumNetworkEvents(void) else { /* Bits that are not set in lNetworkEvents MUST not be changed */ - todo_wine ok (net_events.iErrorCode[k] == 0xABABABAB, "Test[%d][%d]: expected 0xABABABAB, got 0x%x\n", i, k, net_events.iErrorCode[k]); }