Module: wine Branch: master Commit: ab1eee505bebe93a7d35254a967d2831d1ff4761 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ab1eee505bebe93a7d35254a96...
Author: Bruno Jesus 00cpxxx@gmail.com Date: Sun Jan 11 20:20:28 2015 -0200
ws2_32: Ensure recv functions set last error to zero when they succeed.
---
dlls/ws2_32/socket.c | 1 + dlls/ws2_32/tests/sock.c | 8 -------- 2 files changed, 1 insertion(+), 8 deletions(-)
diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c index e1b2a05..b4dcd76 100644 --- a/dlls/ws2_32/socket.c +++ b/dlls/ws2_32/socket.c @@ -6776,6 +6776,7 @@ static int WS2_recv_base( SOCKET s, LPWSABUF lpBuffers, DWORD dwBufferCount, if (wsa != &localwsa) HeapFree( GetProcessHeap(), 0, wsa ); release_sock_fd( s, fd ); _enable_event(SOCKET2HANDLE(s), FD_READ, 0, 0); + SetLastError(ERROR_SUCCESS);
return 0;
diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c index ce47712..78ae609 100644 --- a/dlls/ws2_32/tests/sock.c +++ b/dlls/ws2_32/tests/sock.c @@ -5136,14 +5136,12 @@ static void test_events(int useMessages) SetLastError(0xdeadbeef); ret = recv(src, buffer, 1, MSG_PEEK); ok(ret == 1, "Failed to peek at recv buffer %d err %d\n", ret, GetLastError()); -todo_wine ok(GetLastError() == ERROR_SUCCESS, "Expected 0, got %d\n", GetLastError()); ok_event_seq(src, hEvent, read_seq, NULL, 0);
SetLastError(0xdeadbeef); ret = recv(src, buffer, 50, 0); ok(ret == 50, "Failed to recv buffer %d err %d\n", ret, GetLastError()); -todo_wine ok(GetLastError() == ERROR_SUCCESS, "Expected 0, got %d\n", GetLastError()); ok_event_seq(src, hEvent, read_seq, NULL, 0);
@@ -5171,7 +5169,6 @@ todo_wine SetLastError(0xdeadbeef); ret = recv(src, buffer, 1, 0); ok(ret == 1, "Failed to recv buffer %d err %d\n", ret, GetLastError()); -todo_wine ok(GetLastError() == ERROR_SUCCESS, "Expected 0, got %d\n", GetLastError()); ok_event_seq(src, hEvent, empty_seq, NULL, 0);
@@ -5603,7 +5600,6 @@ static void test_WSASendMsg(void) ret = recvfrom(dst, buffer, sizeof(buffer), 0, (struct sockaddr *) &sockaddr, &addrlen); ok(ret == bytesSent, "got %d, expected %d\n", ret, bytesSent); -todo_wine ok(GetLastError() == ERROR_SUCCESS, "Expected 0, got %d\n", GetLastError());
/* A successful call to WSASendMsg must have bound the socket */ @@ -5634,7 +5630,6 @@ todo_wine ret = recvfrom(dst, buffer, sizeof(buffer), 0, (struct sockaddr *) &sockaddr, &addrlen); ok(ret == bytesSent, "got %d, expected %d\n", ret, bytesSent); -todo_wine ok(GetLastError() == ERROR_SUCCESS, "Expected 0, got %d\n", GetLastError());
closesocket(sock); @@ -5770,14 +5765,12 @@ static void test_WSARecv(void) iret = WSARecv(dest, &bufs, 1, &bytesReturned, &flags, NULL, NULL); ok(!iret, "Expected 0, got %d\n", iret); ok(bytesReturned, "Expected 2, got %d\n", bytesReturned); -todo_wine ok(GetLastError() == ERROR_SUCCESS, "Expected 0, got %d\n", GetLastError()); SetLastError(0xdeadbeef); bytesReturned = 0xdeadbeef; iret = WSARecv(dest, &bufs, 1, &bytesReturned, &flags, NULL, NULL); ok(!iret, "Expected 0, got %d\n", iret); ok(bytesReturned, "Expected 2, got %d\n", bytesReturned); -todo_wine ok(GetLastError() == ERROR_SUCCESS, "Expected 0, got %d\n", GetLastError());
bufs.len = 4; @@ -5790,7 +5783,6 @@ todo_wine iret = WSARecv(dest, &bufs, 1, &bytesReturned, &flags, NULL, NULL); ok(!iret, "Expected 0, got %d\n", iret); ok(bytesReturned, "Expected 4, got %d\n", bytesReturned); -todo_wine ok(GetLastError() == ERROR_SUCCESS, "Expected 0, got %d\n", GetLastError());
bufs.len = sizeof(buf);