Module: wine Branch: master Commit: 80677440cf42ee9eb461321ac290f74a38c69c18 URL: https://source.winehq.org/git/wine.git/?a=commit;h=80677440cf42ee9eb461321ac...
Author: Zebediah Figura z.figura12@gmail.com Date: Mon Feb 19 16:10:39 2018 -0600
ws2_32: Only set error codes for triggered events in WSAEnumNetworkEvents().
Signed-off-by: Zebediah Figura z.figura12@gmail.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
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 79b9333..e39901d 100644 --- a/dlls/ws2_32/socket.c +++ b/dlls/ws2_32/socket.c @@ -7218,7 +7218,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 17b59a4..7c55c21 100644 --- a/dlls/ws2_32/tests/sock.c +++ b/dlls/ws2_32/tests/sock.c @@ -2995,7 +2995,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]); @@ -3003,7 +3003,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]); }