OSDN Git Service

Change to specify explicitly code pages.
[ffftp/ffftp.git] / remote.c
index 4f76f5d..58a9510 100644 (file)
--- a/remote.c
+++ b/remote.c
@@ -451,7 +451,8 @@ int DoMDTM(SOCKET cSkt, char *Path, FILETIME *Time, int *CancelCheckWork)
                        &sTime.wHour, &sTime.wMinute, &sTime.wSecond) == 6)\r
                {\r
                        SystemTimeToFileTime(&sTime, Time);\r
-                       SpecificLocalFileTime2FileTime(Time, AskHostTimeZone());\r
+                       // 時刻はGMT\r
+//                     SpecificLocalFileTime2FileTime(Time, AskHostTimeZone());\r
 \r
                }\r
        }\r
@@ -459,6 +460,20 @@ int DoMDTM(SOCKET cSkt, char *Path, FILETIME *Time, int *CancelCheckWork)
 }\r
 \r
 \r
+// ホスト側の日時設定\r
+int DoMFMT(SOCKET cSkt, char *Path, FILETIME *Time, int *CancelCheckWork)\r
+{\r
+       int Sts;\r
+       char Tmp[1024];\r
+       SYSTEMTIME sTime;\r
+\r
+       FileTimeToSystemTime(Time, &sTime);\r
+\r
+       Sts = CommandProcTrn(cSkt, Tmp, CancelCheckWork, "MFMT %04d%02d%02d%02d%02d%02d %s", sTime.wYear, sTime.wMonth, sTime.wDay, sTime.wHour, sTime.wMinute, sTime.wSecond, Path);\r
+       return(Sts/100);\r
+}\r
+\r
+\r
 /*----- リモート側のコマンドを実行 --------------------------------------------\r
 *\r
 *      Parameter\r
@@ -470,12 +485,12 @@ int DoMDTM(SOCKET cSkt, char *Path, FILETIME *Time, int *CancelCheckWork)
 \r
 // 同時接続対応\r
 //int DoQUOTE(char *CmdStr)\r
-int DoQUOTE(SOCKET cSkt, char *CmdStr)\r
+int DoQUOTE(SOCKET cSkt, char *CmdStr, int *CancelCheckWork)\r
 {\r
-       int Sts, CancelCheckWork;\r
+       int Sts;\r
 \r
-       CancelCheckWork = NO;\r
-       Sts = CommandProcTrn(cSkt, NULL, &CancelCheckWork, "%s", CmdStr);\r
+//     Sts = CommandProcCmd(NULL, "%s", CmdStr);\r
+       Sts = CommandProcTrn(cSkt, NULL, CancelCheckWork, "%s", CmdStr);\r
 \r
        if(Sts/100 >= FTP_CONTINUE)\r
                SoundPlay(SND_ERROR);\r
@@ -522,7 +537,9 @@ SOCKET DoClose(SOCKET Sock)
 *              int 応答コードの1桁目\r
 *----------------------------------------------------------------------------*/\r
 \r
-int DoQUIT(SOCKET ctrl_skt)\r
+// 同時接続対応\r
+//int DoQUIT(SOCKET ctrl_skt)\r
+int DoQUIT(SOCKET ctrl_skt, int *CancelCheckWork)\r
 {\r
        int Ret;\r
 \r
@@ -530,7 +547,7 @@ int DoQUIT(SOCKET ctrl_skt)
        if(SendQuit == YES)\r
                // 同時接続対応\r
 //             Ret = command(ctrl_skt, NULL, &CheckCancelFlg, "QUIT") / 100;\r
-               Ret = command(ctrl_skt, NULL, &CancelFlg, "QUIT") / 100;\r
+               Ret = command(ctrl_skt, NULL, CancelCheckWork, "QUIT") / 100;\r
 \r
        return(Ret);\r
 }\r
@@ -636,7 +653,7 @@ static int DoDirList(HWND hWnd, SOCKET cSkt, char *AddOpt, char *Path, int Num,
        MainTransPkt.hWndTrans = hWnd;\r
        MainTransPkt.Next = NULL;\r
 \r
-       Sts = DoDownLoad(cSkt, &MainTransPkt, YES, CancelCheckWork);\r
+       Sts = DoDownload(cSkt, &MainTransPkt, YES, CancelCheckWork);\r
 \r
 //#pragma aaa\r
 //DoPrintf("===== DoDirList Done.");\r
@@ -704,10 +721,10 @@ void SwitchOSSProc(void)
 \r
        /* DoPWD でノード名の \ を保存するために OSSフラグも変更する */\r
        if(AskOSS() == YES) {\r
-               DoQUOTE(AskCmdCtrlSkt(), "GUARDIAN");\r
+               DoQUOTE(AskCmdCtrlSkt(), "GUARDIAN", &CancelFlg);\r
                SetOSS(NO);\r
        } else {\r
-               DoQUOTE(AskCmdCtrlSkt(), "OSS");\r
+               DoQUOTE(AskCmdCtrlSkt(), "OSS", &CancelFlg);\r
                SetOSS(YES);\r
        }\r
        /* Current Dir 再取得 */\r