Time->dwHighDateTime = 0;\r
\r
// 同時接続対応\r
+ // ホスト側の日時取得\r
// Sts = CommandProcTrn(Tmp, "MDTM %s", Path);\r
- Sts = CommandProcTrn(cSkt, Tmp, CancelCheckWork, "MDTM %s", Path);\r
+ Sts = 500;\r
+ if(AskHostFeature() & FEATURE_MDTM)\r
+ Sts = CommandProcTrn(cSkt, Tmp, CancelCheckWork, "MDTM %s", Path);\r
if(Sts/100 == FTP_COMPLETE)\r
{\r
sTime.wMilliseconds = 0;\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
+ Sts = 500;\r
+ if(AskHostFeature() & FEATURE_MFMT)\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
//#pragma aaa\r
//static int cntcnt = 0;\r
\r
-// SFTP対応\r
-int ConvertFTPCommandToPuTTYSFTP(SOCKET cSkt, char *Reply, int *CancelCheckWork, char *Cmd)\r
-{\r
- // TODO:\r
- // 未実装\r
- int Sts;\r
- char NewCmd[FMAX_PATH*2];\r
- static char RenameFrom[FMAX_PATH+1];\r
- Sts = 429;\r
- Reply[0] = '\0';\r
- if(strcmp(Cmd, "QUIT") == 0)\r
- {\r
- sprintf(NewCmd, "ls\r\n");\r
- SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
- }\r
- if(strcmp(Cmd, "LIST") == 0)\r
- {\r
- sprintf(NewCmd, "ls\r\n");\r
- SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
- }\r
- else if(strncmp(Cmd, "REST ", 5) == 0)\r
- {\r
- SFTP_SetFilePosition(cSkt, (LONGLONG)_strtoi64(&Cmd[5], NULL, 10));\r
- }\r
- else if(strncmp(Cmd, "RETR ", 5) == 0)\r
- {\r
- sprintf(NewCmd, "get \"%s\"\r\n", &Cmd[5]);\r
- SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
- }\r
- else if(strncmp(Cmd, "STOR ", 5) == 0)\r
- {\r
- sprintf(NewCmd, "put \"%s\"\r\n", &Cmd[5]);\r
- SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
- }\r
- else if(strncmp(Cmd, "APPE ", 5) == 0)\r
- {\r
- sprintf(NewCmd, "reput \"%s\"\r\n", &Cmd[5]);\r
- SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
- }\r
- else if(strncmp(Cmd, "DELE ", 5) == 0)\r
- {\r
- sprintf(NewCmd, "rm \"%s\"\r\n", &Cmd[5]);\r
- SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
- }\r
- else if(strncmp(Cmd, "CWD ", 4) == 0)\r
- {\r
- sprintf(NewCmd, "cd \"%s\"\r\n", &Cmd[4]);\r
- SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
- }\r
- else if(strcmp(Cmd, "PWD") == 0)\r
- {\r
- sprintf(NewCmd, "pwd\r\n");\r
- SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
- }\r
- else if(strcmp(Cmd, "XPWD") == 0)\r
- {\r
- sprintf(NewCmd, "pwd\r\n");\r
- SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
- }\r
- else if(strncmp(Cmd, "MKD ", 4) == 0)\r
- {\r
- sprintf(NewCmd, "mkdir \"%s\"\r\n", &Cmd[4]);\r
- SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
- }\r
- else if(strncmp(Cmd, "RMD ", 4) == 0)\r
- {\r
- sprintf(NewCmd, "rmdir \"%s\"\r\n", &Cmd[4]);\r
- SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
- }\r
- else if(strncmp(Cmd, "RNFR ", 5) == 0)\r
- {\r
- strcpy(RenameFrom, &Cmd[5]);\r
- }\r
- else if(strncmp(Cmd, "RNTO ", 5) == 0)\r
- {\r
- sprintf(NewCmd, "mv \"%s\" \"%s\"\r\n", RenameFrom, &Cmd[5]);\r
- SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
- }\r
- else if(strncmp(Cmd, "SITE CHMOD ", 11) == 0)\r
- {\r
- Cmd[14] = '\0';\r
- sprintf(NewCmd, "chmod %s \"%s\"\r\n", &Cmd[11], &Cmd[15]);\r
- SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
- }\r
- return Sts;\r
-}\r
-\r
int command(SOCKET cSkt, char *Reply, int *CancelCheckWork, char *fmt, ...)\r
{\r
va_list Args;\r
wvsprintf(Cmd, fmt, Args);\r
va_end(Args);\r
\r
- // SFTP対応\r
- if(IsSFTPAttached(cSkt))\r
- return ConvertFTPCommandToPuTTYSFTP(cSkt, Reply, CancelCheckWork, Cmd);\r
-\r
if(strncmp(Cmd, "PASS ", 5) == 0)\r
SetTaskMsg(">PASS [xxxxxx]");\r
else if((strncmp(Cmd, "USER ", 5) == 0) ||\r