OSDN Git Service

Change behavior of checking closed sockets for some Windows 2000 environments.
authors_kawamoto <s_kawamoto@users.sourceforge.jp>
Fri, 28 Oct 2011 10:33:57 +0000 (19:33 +0900)
committers_kawamoto <s_kawamoto@users.sourceforge.jp>
Fri, 28 Oct 2011 10:33:57 +0000 (19:33 +0900)
FFFTP_Eng_Release/FFFTP.exe
Release/FFFTP.exe
socket.c

index d4daca4..6598780 100644 (file)
Binary files a/FFFTP_Eng_Release/FFFTP.exe and b/FFFTP_Eng_Release/FFFTP.exe differ
index ebd7383..82c59a3 100644 (file)
Binary files a/Release/FFFTP.exe and b/Release/FFFTP.exe differ
index 1b5379d..fb04a0f 100644 (file)
--- a/socket.c
+++ b/socket.c
@@ -992,7 +992,7 @@ int do_recv(SOCKET s, char *buf, int len, int flags, int *TimeOutErr, int *Cance
                        if(Ret != SOCKET_ERROR)\r
                                break;\r
                        // 何故か一部のホストとWindows 2000の組み合わせで通信できないバグに暫定対応\r
-                       if(AskAsyncDone(s, &Error, FD_CLOSE_BIT) == YES)\r
+                       if(AskAsyncDone(s, &Error, FD_CLOSE_BIT) == YES && recvS(s, buf, len, MSG_PEEK) <= 0)\r
                                break;\r
                        Error = WSAGetLastError();\r
                        Sleep(1);\r