eliminate GCC warning about initialization order
[reactos.git] / reactos / services / tcpsvcs / discard.c
index 2b2853e..727a937 100644 (file)
@@ -14,6 +14,8 @@
 \r
 #include "tcpsvcs.h"\r
 \r
+extern BOOL bShutDown;\r
+\r
 DWORD WINAPI DiscardHandler(VOID* Sock_)\r
 {\r
     DWORD RetVal = 0;\r
@@ -22,7 +24,7 @@ DWORD WINAPI DiscardHandler(VOID* Sock_)
     if (!RecieveIncomingPackets(Sock))\r
     {\r
         LogEvent(_T("Discard: RecieveIncomingPackets failed\n"), 0, FALSE);\r
-        RetVal = -1;\r
+        RetVal = 1;\r
     }\r
 \r
     LogEvent(_T("Discard: Shutting connection down...\n"), 0, FALSE);\r
@@ -31,7 +33,7 @@ DWORD WINAPI DiscardHandler(VOID* Sock_)
     else\r
     {\r
         LogEvent(_T("Discard: Connection shutdown failed\n"), 0, FALSE);\r
-        RetVal = -1;\r
+        RetVal = 1;\r
     }\r
     \r
     LogEvent(_T("Discard: Terminating thread\n"), 0, FALSE);\r
@@ -43,7 +45,7 @@ DWORD WINAPI DiscardHandler(VOID* Sock_)
 BOOL RecieveIncomingPackets(SOCKET Sock)\r
 {\r
     TCHAR ReadBuffer[BUF];\r
-    TCHAR temp[512]; // temp for holding LogEvent text\r
+    TCHAR buf[256];\r
     INT ReadBytes;\r
 \r
     do\r
@@ -51,17 +53,19 @@ BOOL RecieveIncomingPackets(SOCKET Sock)
         ReadBytes = recv(Sock, ReadBuffer, BUF, 0);\r
         if (ReadBytes > 0)\r
         {\r
-            _stprintf(temp, _T("Received %d bytes from client\n"), ReadBytes);\r
-            LogEvent(temp, 0, FALSE);\r
+            _stprintf(buf, _T("Received %d bytes from client\n"), ReadBytes);\r
+            LogEvent(buf, 0, FALSE);\r
         }\r
         else if (ReadBytes == SOCKET_ERROR)\r
         {\r
-            _stprintf(temp, ("Socket Error: %d\n"), WSAGetLastError());\r
-            LogEvent(temp, 0, TRUE);\r
+            _stprintf(buf, ("Socket Error: %d\n"), WSAGetLastError());\r
+            LogEvent(buf, 0, TRUE);\r
             return FALSE;\r
         }\r
-    } while (ReadBytes > 0);\r
+    } while ((ReadBytes > 0) && (! bShutDown));\r
+\r
+    if (! bShutDown)\r
+        LogEvent(_T("Discard: Connection closed by peer.\n"), 0, FALSE);\r
 \r
-    LogEvent(_T("Discard: Connection closed by peer.\n"), 0, FALSE);\r
     return TRUE;\r
 }\r