FFFTPのソースコードです。
リビジョン | 367043eb137db380b04e855175a33a480afb9007 (tree) |
---|---|
日時 | 2011-10-28 19:12:16 |
作者 | s_kawamoto <s_kawamoto@user...> |
コミッター | s_kawamoto |
Change behavior of checking closed sockets for some Windows 2000 environments.
@@ -991,13 +991,13 @@ int do_recv(SOCKET s, char *buf, int len, int flags, int *TimeOutErr, int *Cance | ||
991 | 991 | Ret = recvS(s, buf, len, flags); |
992 | 992 | if(Ret != SOCKET_ERROR) |
993 | 993 | break; |
994 | + // 何故か一部のホストとWindows 2000の組み合わせで通信できないバグに暫定対応 | |
995 | + if(AskAsyncDone(s, &Error, FD_CLOSE_BIT) == YES) | |
996 | + break; | |
994 | 997 | Error = WSAGetLastError(); |
995 | 998 | Sleep(1); |
996 | 999 | if(BackgrndMessageProc() == YES) |
997 | 1000 | break; |
998 | - // 何故か一部のホストとWindows 2000の組み合わせで通信できないバグに暫定対応 | |
999 | - if(AskAsyncDone(s, &Error, FD_CLOSE_BIT) == YES) | |
1000 | - break; | |
1001 | 1001 | // FTPS対応 |
1002 | 1002 | // 受信確認をバイパスしたためここでタイムアウトの確認 |
1003 | 1003 | if(BackgrndMessageProc() == YES) |
@@ -1104,13 +1104,13 @@ int do_send(SOCKET s, const char *buf, int len, int flags, int *TimeOutErr, int | ||
1104 | 1104 | #endif |
1105 | 1105 | break; |
1106 | 1106 | } |
1107 | + // 何故か一部のホストとWindows 2000の組み合わせで通信できないバグに暫定対応 | |
1108 | + if(AskAsyncDone(s, &Error, FD_CLOSE_BIT) == YES) | |
1109 | + break; | |
1107 | 1110 | Error = WSAGetLastError(); |
1108 | 1111 | Sleep(1); |
1109 | 1112 | if(BackgrndMessageProc() == YES) |
1110 | 1113 | break; |
1111 | - // 何故か一部のホストとWindows 2000の組み合わせで通信できないバグに暫定対応 | |
1112 | - if(AskAsyncDone(s, &Error, FD_CLOSE_BIT) == YES) | |
1113 | - break; | |
1114 | 1114 | // FTPS対応 |
1115 | 1115 | // 送信バッファ確認をバイパスしたためここでタイムアウトの確認 |
1116 | 1116 | if(BackgrndMessageProc() == YES) |