ChangeSet ID: 21552 CVSROOT: /opt/cvs-commit Module name: wine Changes by: julliard@winehq.org 2005/11/29 10:41:50
Modified files: dlls/winsock : socket.c dlls/winsock/tests: sock.c
Log message: Rein Klazes wijn@wanadoo.nl Clear the reference counter in WSACleanup, with regression test.
Patch: http://cvs.winehq.org/patch.py?id=21552
Old revision New revision Changes Path 1.199 1.200 +3 -1 wine/dlls/winsock/socket.c 1.29 1.30 +8 -1 wine/dlls/winsock/tests/sock.c
Index: wine/dlls/winsock/socket.c diff -u -p wine/dlls/winsock/socket.c:1.199 wine/dlls/winsock/socket.c:1.200 --- wine/dlls/winsock/socket.c:1.199 29 Nov 2005 16:41:50 -0000 +++ wine/dlls/winsock/socket.c 29 Nov 2005 16:41:50 -0000 @@ -831,8 +831,10 @@ int WINAPI WSAStartup(WORD wVersionReque */ INT WINAPI WSACleanup(void) { - if (num_startup) + if (num_startup) { + num_startup--; return 0; + } SetLastError(WSANOTINITIALISED); return SOCKET_ERROR; } Index: wine/dlls/winsock/tests/sock.c diff -u -p wine/dlls/winsock/tests/sock.c:1.29 wine/dlls/winsock/tests/sock.c:1.30 --- wine/dlls/winsock/tests/sock.c:1.29 29 Nov 2005 16:41:50 -0000 +++ wine/dlls/winsock/tests/sock.c 29 Nov 2005 16:41:50 -0000 @@ -709,8 +709,15 @@ static void Init (void)
static void Exit (void) { + INT ret, err; TlsFree ( tls ); - ok ( WSACleanup() == 0, "WSACleanup failed\n" ); + ret = WSACleanup(); + err = WSAGetLastError(); + ok ( ret == 0, "WSACleanup failed ret = %d GetLastError is %d\n", ret, err); + ret = WSACleanup(); + err = WSAGetLastError(); + ok ( ret == SOCKET_ERROR && err == WSANOTINITIALISED, + "WSACleanup returned %d GetLastError is %d\n", ret, err); }
static void StartServer (LPTHREAD_START_ROUTINE routine,