initial commit
This commit is contained in:
88
third_party/libhv/unittest/ftp_test.c
vendored
Executable file
88
third_party/libhv/unittest/ftp_test.c
vendored
Executable file
@@ -0,0 +1,88 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "ftp.h"
|
||||
|
||||
void print_help() {
|
||||
printf("Usage:\n\
|
||||
help\n\
|
||||
login <username> <password>\n\
|
||||
download <remote_filepath> <local_filepath>\n\
|
||||
upload <local_filepath> <remote_filepath>\n\
|
||||
quit\n");
|
||||
}
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
if (argc < 2) {
|
||||
printf("Usage: ftp host [port]\n");
|
||||
return 0;
|
||||
}
|
||||
const char* host = argv[1];
|
||||
int port = FTP_COMMAND_PORT;
|
||||
if (argc >= 3) {
|
||||
port = atoi(argv[2]);
|
||||
}
|
||||
int ret = 0;
|
||||
ftp_handle_t hftp;
|
||||
ret = ftp_connect(&hftp, host, port);
|
||||
if (ret != 0) {
|
||||
printf("ftp connect failed!\n");
|
||||
return ret;
|
||||
}
|
||||
print_help();
|
||||
|
||||
char cmd[256] = {0};
|
||||
char param1[256] = {0};
|
||||
char param2[256] = {0};
|
||||
while (1) {
|
||||
printf("> ");
|
||||
scanf("%s", cmd);
|
||||
if (strncmp(cmd, "help", 4) == 0) {
|
||||
print_help();
|
||||
}
|
||||
else if (strncmp(cmd, "login", 5) == 0) {
|
||||
scanf("%s", param1);
|
||||
scanf("%s", param2);
|
||||
//printf("cmd=%s param1=%s param2=%s\n", cmd, param1, param2);
|
||||
const char* username = param1;
|
||||
const char* password = param2;
|
||||
ret = ftp_login(&hftp, username, password);
|
||||
printf("%s", hftp.recvbuf);
|
||||
if (ret != 0) break;
|
||||
}
|
||||
else if (strncmp(cmd, "upload", 6) == 0) {
|
||||
scanf("%s", param1);
|
||||
scanf("%s", param2);
|
||||
//printf("cmd=%s param1=%s param2=%s\n", cmd, param1, param2);
|
||||
const char* localfile = param1;
|
||||
const char* remotefile = param2;
|
||||
ret = ftp_upload(&hftp, localfile, remotefile);
|
||||
printf("%s", hftp.recvbuf);
|
||||
if (ret != 0) break;
|
||||
}
|
||||
else if (strncmp(cmd, "download", 8) == 0) {
|
||||
scanf("%s", param1);
|
||||
scanf("%s", param2);
|
||||
//printf("cmd=%s param1=%s param2=%s\n", cmd, param1, param2);
|
||||
const char* remotefile = param1;
|
||||
const char* localfile = param2;
|
||||
ret = ftp_download(&hftp, remotefile, localfile);
|
||||
printf("%s", hftp.recvbuf);
|
||||
if (ret != 0) break;
|
||||
}
|
||||
else if (strncmp(cmd, "quit", 4) == 0) {
|
||||
break;
|
||||
}
|
||||
else {
|
||||
scanf("%s", param1);
|
||||
//printf("cmd=%s param=%s\n", cmd, param1);
|
||||
ret = ftp_exec(&hftp, cmd, param1);
|
||||
printf("%s", hftp.recvbuf);
|
||||
}
|
||||
}
|
||||
printf("QUIT\n");
|
||||
ftp_quit(&hftp);
|
||||
printf("%s", hftp.recvbuf);
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user