+ // TODO:\r
+ // テストコード\r
+ // ログイン成功を確認\r
+#define strrcmp(_Str1, _Str2) (strcmp(strstr(_Str1, _Str2) ? strstr(_Str1, _Str2) : "", _Str2))\r
+ size_t r;\r
+ ContSock = SFTP_socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);\r
+ SFTP_SetTimeoutCallback(ContSock, SSLTimeoutCallback);\r
+ while(1)\r
+ {\r
+ r = SFTP_recv(ContSock, Reply, 1024, 0);\r
+ if(r == SOCKET_ERROR)\r
+ break;\r
+ if(r <= 0)\r
+ continue;\r
+ Reply[r] = '\0';\r
+ SetTaskMsg("%s", Reply);\r
+ if(strrcmp(Reply, "psftp> ") == 0)\r
+ break;\r
+ }\r
+ r = SFTP_send(ContSock, "open \"", strlen("open \""), 0);\r
+ r = SFTP_send(ContSock, Host, strlen(Host), 0);\r
+ r = SFTP_send(ContSock, "\"\r\n", strlen("\"\r\n"), 0);\r
+ while(1)\r
+ {\r
+ r = SFTP_recv(ContSock, Reply, 1024, 0);\r
+ if(r == SOCKET_ERROR)\r
+ break;\r
+ if(r <= 0)\r
+ continue;\r
+ Reply[r] = '\0';\r
+ SetTaskMsg("%s", Reply);\r
+ if(strrcmp(Reply, "Store key in cache? (y/n) ") == 0)\r
+ {\r
+ r = SFTP_send(ContSock, "n\r\n", strlen("n\r\n"), 0);\r
+ }\r
+ if(strrcmp(Reply, "Update cached key? (y/n, Return cancels connection) ") == 0)\r
+ {\r
+ r = SFTP_send(ContSock, "\r\n", strlen("\r\n"), 0);\r
+ }\r
+ if(strrcmp(Reply, "login as: ") == 0)\r
+ {\r
+ r = SFTP_send(ContSock, User, strlen(User), 0);\r
+ r = SFTP_send(ContSock, "\r\n", strlen("\r\n"), 0);\r
+ }\r
+ if(strrcmp(Reply, "password: ") == 0)\r
+ {\r
+ r = SFTP_send(ContSock, Pass, strlen(Pass), 0);\r
+ r = SFTP_send(ContSock, "\r\n", strlen("\r\n"), 0);\r
+ }\r
+ if(strrcmp(Reply, "psftp> ") == 0)\r
+ break;\r
+ Sleep(1);\r
+ }\r
+ SFTP_closesocket(ContSock);\r
+ ContSock = INVALID_SOCKET;\r