X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=reactos%2Fdll%2Fwin32%2Fmsafd%2Fmisc%2Fdllmain.c;h=747299e77f54ded6c9be5bf5c558af9e318ca954;hp=7bd45bf8ee21d3ba9a3165d51f0f1aaf76fa2bfb;hb=fb1a1ab85e8108d2469e88ad11596a6ab6455b7e;hpb=1c9d856e9195498e3c9f824121525409c45daa72 diff --git a/reactos/dll/win32/msafd/misc/dllmain.c b/reactos/dll/win32/msafd/misc/dllmain.c index 7bd45bf8ee2..747299e77f5 100644 --- a/reactos/dll/win32/msafd/misc/dllmain.c +++ b/reactos/dll/win32/msafd/misc/dllmain.c @@ -677,15 +677,16 @@ WSPCloseSocket(IN SOCKET Handle, if (lpErrno) *lpErrno = WSAENOTSOCK; return SOCKET_ERROR; } - /* Set the state to close */ - OldState = Socket->SharedData->State; - Socket->SharedData->State = SocketClosed; /* Decrement reference count on SharedData */ References = InterlockedDecrement(&Socket->SharedData->RefCount); if (References) goto ok; + /* Set the state to close */ + OldState = Socket->SharedData->State; + Socket->SharedData->State = SocketClosed; + /* If SO_LINGER is ON and the Socket is connected, we need to disconnect */ /* FIXME: Should we do this on Datagram Sockets too? */ if ((OldState == SocketConnected) && (Socket->SharedData->LingerData.l_onoff))