OSDN Git Service

Add support for simultaneous connection for file transfer (sometimes freezes).
[ffftp/ffftp.git] / socket.c
index b930424..c823465 100644 (file)
--- a/socket.c
+++ b/socket.c
@@ -457,7 +457,9 @@ static int RegistAsyncTable(SOCKET s)
        {\r
                if(Signal[Pos].Socket == s)\r
                {\r
-                       MessageBox(GetMainHwnd(), "Async socket already registerd.", "FFFTP inner error", MB_OK);\r
+                       // 強制的に閉じられたソケットがあると重複する可能性あり\r
+//                     MessageBox(GetMainHwnd(), "Async socket already registerd.", "FFFTP inner error", MB_OK);\r
+                       Signal[Pos].Socket = INVALID_SOCKET;\r
                        break;\r
                }\r
        }\r
@@ -521,7 +523,9 @@ static int RegistAsyncTableDbase(HANDLE Async)
        {\r
                if(SignalDbase[Pos].Async == Async)\r
                {\r
-                       MessageBox(GetMainHwnd(), "Async handle already registerd.", "FFFTP inner error", MB_OK);\r
+                       // 強制的に閉じられたハンドルがあると重複する可能性あり\r
+//                     MessageBox(GetMainHwnd(), "Async handle already registerd.", "FFFTP inner error", MB_OK);\r
+                       SignalDbase[Pos].Async = 0;\r
                        break;\r
                }\r
        }\r
@@ -714,7 +718,7 @@ int do_closesocket(SOCKET s)
        if(AskCryptMode() == CRYPT_FTPES || AskCryptMode() == CRYPT_FTPIS)\r
                Ret = closesocketS(s);\r
        else\r
-               Ret = closesocket(s);\r
+               Ret = closesocketS(s);\r
        if(Ret == SOCKET_ERROR)\r
        {\r
                Error = 0;\r