//#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