OSDN Git Service

Change behavior of checking closed sockets for some Windows 2000 environments.
[ffftp/ffftp.git] / remote.c
index 1b617be..a61b119 100644 (file)
--- a/remote.c
+++ b/remote.c
@@ -389,12 +389,15 @@ int DoCHMOD(char *Path, char *Mode)
 *              サイズが選られない時は Size = -1 を返す\r
 *----------------------------------------------------------------------------*/\r
 \r
-int DoSIZE(char *Path, LONGLONG *Size)\r
+// 同時接続対応\r
+//int DoSIZE(char *Path, LONGLONG *Size)\r
+int DoSIZE(SOCKET cSkt, char *Path, LONGLONG *Size)\r
 {\r
        int Sts;\r
        char Tmp[1024];\r
 \r
-       Sts = CommandProcTrn(Tmp, "SIZE %s", Path);\r
+//     Sts = CommandProcTrn(Tmp, "SIZE %s", Path);\r
+       Sts = CommandProcTrn(cSkt, Tmp, "SIZE %s", Path);\r
 \r
        *Size = -1;\r
        if((Sts/100 == FTP_COMPLETE) && (strlen(Tmp) > 4) && IsDigit(Tmp[4]))\r
@@ -418,7 +421,9 @@ int DoSIZE(char *Path, LONGLONG *Size)
 *              日付が選られない時は Time = 0 を返す\r
 *----------------------------------------------------------------------------*/\r
 \r
-int DoMDTM(char *Path, FILETIME *Time)\r
+// 同時接続対応\r
+//int DoMDTM(char *Path, FILETIME *Time)\r
+int DoMDTM(SOCKET cSkt, char *Path, FILETIME *Time)\r
 {\r
        int Sts;\r
        char Tmp[1024];\r
@@ -427,7 +432,8 @@ int DoMDTM(char *Path, FILETIME *Time)
     Time->dwLowDateTime = 0;\r
     Time->dwHighDateTime = 0;\r
 \r
-       Sts = CommandProcTrn(Tmp, "MDTM %s", Path);\r
+//     Sts = CommandProcTrn(Tmp, "MDTM %s", Path);\r
+       Sts = CommandProcTrn(cSkt, Tmp, "MDTM %s", Path);\r
        if(Sts/100 == FTP_COMPLETE)\r
        {\r
                sTime.wMilliseconds = 0;\r
@@ -587,7 +593,12 @@ static int DoDirList(HWND hWnd, SOCKET cSkt, char *AddOpt, char *Path, int Num,
        }\r
        else\r
        {\r
-               strcpy(MainTransPkt.Cmd, "LIST");\r
+               // MLSD対応\r
+//             strcpy(MainTransPkt.Cmd, "LIST");\r
+               if(AskUseMLSD() && (AskHostFeature() & FEATURE_MLSD))\r
+                       strcpy(MainTransPkt.Cmd, "MLSD");\r
+               else\r
+                       strcpy(MainTransPkt.Cmd, "LIST");\r
                if(strlen(AddOpt) > 0)\r
                {\r
                        strcat(MainTransPkt.Cmd, " -");\r
@@ -675,7 +686,9 @@ int CommandProcCmd(char *Reply, char *fmt, ...)
 *              転送コントロールソケットを使う\r
 *----------------------------------------------------------------------------*/\r
 \r
-int CommandProcTrn(char *Reply, char *fmt, ...)\r
+// 同時接続対応\r
+//int CommandProcTrn(char *Reply, char *fmt, ...)\r
+int CommandProcTrn(SOCKET cSkt, char *Reply, char *fmt, ...)\r
 {\r
        va_list Args;\r
        char Cmd[1024];\r
@@ -691,7 +704,8 @@ int CommandProcTrn(char *Reply, char *fmt, ...)
 //     if((Sts = command(AskTrnCtrlSkt(), Reply, "%s", Cmd)) == 429)\r
 //     {\r
 //             if(ReConnectTrnSkt() == FFFTP_SUCCESS)\r
-                       Sts = command(AskTrnCtrlSkt(), Reply, &CheckCancelFlg, "%s", Cmd);\r
+//                     Sts = command(AskTrnCtrlSkt(), Reply, &CheckCancelFlg, "%s", Cmd);\r
+                       Sts = command(cSkt, Reply, &CheckCancelFlg, "%s", Cmd);\r
 //     }\r
        return(Sts);\r
 }\r
@@ -1030,7 +1044,7 @@ static int ReadOneLine(SOCKET cSkt, char *Buf, int Max, int *CancelCheckWork)
 //                             DisconnectSet();\r
                        {\r
                                if(SizeOnce == -1)\r
-                                       ReConnectCmdSkt();\r
+                                       ReConnectTrnSkt(&cSkt);\r
                                else\r
                                        DisconnectSet();\r
                        }\r