From 7b73d59733cb01edb462e85e7921b79de3af7f34 Mon Sep 17 00:00:00 2001 From: hater <7element@mail.bg> Date: Wed, 4 Nov 2015 11:39:22 +0200 Subject: [PATCH] Fix all WSAStartup tests. Disable debug messages --- reactos/dll/win32/ws2_32_new/src/startup.c | 34 +++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/reactos/dll/win32/ws2_32_new/src/startup.c b/reactos/dll/win32/ws2_32_new/src/startup.c index a46cfd0..6349a2e 100644 --- a/reactos/dll/win32/ws2_32_new/src/startup.c +++ b/reactos/dll/win32/ws2_32_new/src/startup.c @@ -10,7 +10,7 @@ #include -//#define NDEBUG +#define NDEBUG #include /* DATA **********************************************************************/ @@ -85,6 +85,9 @@ WSACleanup(VOID) /* Return success */ ErrorCode = ERROR_SUCCESS; + + /* Clear last error */ + SetLastError(ERROR_SUCCESS); } else { @@ -111,7 +114,7 @@ WSAStartup(IN WORD wVersionRequested, WORD VersionReturned = 0; DWORD ErrorCode = ERROR_SUCCESS; PWSPROCESS CurrentProcess; - DPRINT("WSAStartup: %wx\n", wVersionRequested); + DPRINT("WSAStartup: %wx %d.%d\n", wVersionRequested, LOBYTE(wVersionRequested), HIBYTE(wVersionRequested)); /* Make sure that we went through DLL Init */ if (!WsDllHandle) return WSASYSNOTREADY; @@ -123,14 +126,15 @@ WSAStartup(IN WORD wVersionRequested, /* We don't support this unknown version */ ErrorCode = WSAVERNOTSUPPORTED; + VersionReturned = MAKEWORD(2, 2); break; case 1: /* We support only 1.0 and 1.1 */ - if (HIBYTE(wVersionRequested) == 0) + if (HIBYTE(wVersionRequested) <= 1) { /* Caller wants 1.0, return it */ - VersionReturned = wVersionRequested; + VersionReturned = MAKEWORD(1, HIBYTE(wVersionRequested)); } else { @@ -156,10 +160,16 @@ WSAStartup(IN WORD wVersionRequested, default: /* Return 2.2 */ - VersionReturned = MAKEWORD(2, 2);; + VersionReturned = MAKEWORD(2, 2); break; } + if (lpWSAData == NULL) + { + SetLastError(WSANOTINITIALISED); + return ErrorCode == ERROR_SUCCESS ? WSAEFAULT : ErrorCode; + } + /* Return the Version Requested, unless error */ lpWSAData->wVersion = VersionReturned; @@ -182,6 +192,13 @@ WSAStartup(IN WORD wVersionRequested, lpWSAData->iMaxSockets = 0; lpWSAData->iMaxUdpDg = 0; } + + /* Requested invalid version (0) */ + if (ErrorCode != ERROR_SUCCESS) + { + SetLastError(WSANOTINITIALISED); + return ErrorCode; + } /* Enter the startup synchronization lock */ WsStartupLock(); @@ -223,6 +240,13 @@ WSAStartup(IN WORD wVersionRequested, /* Increase the reference count */ InterlockedIncrement(&CurrentProcess->RefCount); + + /* Clear last error */ + SetLastError(ERROR_SUCCESS); + } + else + { + SetLastError(WSANOTINITIALISED); } /* Leave the startup lock */ -- 1.9.5.msysgit.0