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:12:16 +0000 (19:12 +0900)
committers_kawamoto <s_kawamoto@users.sourceforge.jp>
Fri, 28 Oct 2011 10:12:16 +0000 (19:12 +0900)
FFFTP_Eng_Release/FFFTP.exe
Release/FFFTP.exe
socket.c

index 4d0ded3..d4daca4 100644 (file)
Binary files a/FFFTP_Eng_Release/FFFTP.exe and b/FFFTP_Eng_Release/FFFTP.exe differ
index 41fabe1..ebd7383 100644 (file)
Binary files a/Release/FFFTP.exe and b/Release/FFFTP.exe differ
index f2b63f6..1b5379d 100644 (file)
--- a/socket.c
+++ b/socket.c
@@ -991,13 +991,13 @@ int do_recv(SOCKET s, char *buf, int len, int flags, int *TimeOutErr, int *Cance
                        Ret = recvS(s, buf, len, flags);\r
                        if(Ret != SOCKET_ERROR)\r
                                break;\r
+                       // 何故か一部のホストとWindows 2000の組み合わせで通信できないバグに暫定対応\r
+                       if(AskAsyncDone(s, &Error, FD_CLOSE_BIT) == YES)\r
+                               break;\r
                        Error = WSAGetLastError();\r
                        Sleep(1);\r
                        if(BackgrndMessageProc() == YES)\r
                                break;\r
-                       // 何故か一部のホストとWindows 2000の組み合わせで通信できないバグに暫定対応\r
-                       if(AskAsyncDone(s, &Error, FD_CLOSE_BIT) == YES)\r
-                               break;\r
                        // FTPS対応\r
                        // 受信確認をバイパスしたためここでタイムアウトの確認\r
                        if(BackgrndMessageProc() == YES)\r
@@ -1104,13 +1104,13 @@ int do_send(SOCKET s, const char *buf, int len, int flags, int *TimeOutErr, int
 #endif\r
                                break;\r
                        }\r
+                       // 何故か一部のホストとWindows 2000の組み合わせで通信できないバグに暫定対応\r
+                       if(AskAsyncDone(s, &Error, FD_CLOSE_BIT) == YES)\r
+                               break;\r
                        Error = WSAGetLastError();\r
                        Sleep(1);\r
                        if(BackgrndMessageProc() == YES)\r
                                break;\r
-                       // 何故か一部のホストとWindows 2000の組み合わせで通信できないバグに暫定対応\r
-                       if(AskAsyncDone(s, &Error, FD_CLOSE_BIT) == YES)\r
-                               break;\r
                        // FTPS対応\r
                        // 送信バッファ確認をバイパスしたためここでタイムアウトの確認\r
                        if(BackgrndMessageProc() == YES)\r