From 1bbe92e79b77d7eeb13afe506512ae018db37095 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ri=C4=8Dardas=20Barkauskas?= Date: Wed, 28 Dec 2011 01:25:20 +0200 Subject: [PATCH] ws2_32: Don't post completion packet if sending fails with error immediately. --- dlls/ws2_32/socket.c | 2 -- dlls/ws2_32/tests/sock.c | 8 ++++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c index 0e9524e531..d3a45905f1 100644 --- a/dlls/ws2_32/socket.c +++ b/dlls/ws2_32/socket.c @@ -3885,9 +3885,7 @@ static int WS2_sendto( SOCKET s, LPWSABUF lpBuffers, DWORD dwBufferCount, } if (n == -1 && errno != EAGAIN) { - int loc_errno = errno; err = wsaErrno(); - if (cvalue) WS_AddCompletion( s, cvalue, sock_get_ntstatus(loc_errno), 0 ); goto error; } diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c index 7016dfb4ad..5677a2c295 100644 --- a/dlls/ws2_32/tests/sock.c +++ b/dlls/ws2_32/tests/sock.c @@ -5321,10 +5321,10 @@ static void test_completion_port(void) bret = GetQueuedCompletionStatus( io_port, &num_bytes, &key, &olp, 200 ); ok(bret == FALSE, "GetQueuedCompletionStatus returned %u\n", bret ); - todo_wine ok(GetLastError() == WAIT_TIMEOUT, "Last error was %d\n", GetLastError()); - todo_wine ok(key == 0xdeadbeef, "Key is %lu\n", key); - todo_wine ok(num_bytes == 0xdeadbeef, "Number of bytes transfered is %u\n", num_bytes); - todo_wine ok(!olp, "Overlaped structure is at %p\n", olp); + ok(GetLastError() == WAIT_TIMEOUT, "Last error was %d\n", GetLastError()); + ok(key == 0xdeadbeef, "Key is %lu\n", key); + ok(num_bytes == 0xdeadbeef, "Number of bytes transfered is %u\n", num_bytes); + ok(!olp, "Overlaped structure is at %p\n", olp); if (dest != INVALID_SOCKET) closesocket(dest); -- 2.32.0.93.g670b81a890