int main(int argc, char** argv){ if(argc != 2){ printUsage(); return 1; } int val = validateURL(argv[1], sizeof(argv[1])); int anon = 1; char user[MAX_STRING_SIZE]; char password[MAX_STRING_SIZE]; char host[MAX_STRING_SIZE]; char path[MAX_STRING_SIZE]; switch(val){ case 0: anon = 0; case 1: parseURL(argv[1], sizeof(argv[1]), host, user, password, path, anon); break; case 2: printUsage(); return 1; default: return 1; } ftp_t* ftp = ftp_init(host, user, password, path); if(ftp == NULL) return 1; if(ftp_connect(ftp) < 0) return 1; if(ftp_login_host(ftp) < 0) return 1; if(ftp_set_passive_mode(ftp) < 0) return 1; if(ftp_retr_file(ftp) < 0) return 1; if(ftp_download_file(ftp) < 0) return 1; if(ftp_disconnect(ftp) < 0) return 1; ftp_delete(ftp); return 0; }
int main() { static char cmd [20]; static char banner [] = "220-RU-Zilla FTP server version 0.1 beta\n" "220-written by some drunk\n" "220 only cool files and flags allowed\n"; write(STDOUT_FILENO, banner, strlen(banner)); if(!ftp_login()) { exit(0); } write(STDOUT_FILENO, "cmd:", strlen("cmd:")); while(read(STDIN_FILENO, cmd, 20)) { if (!memcmp(cmd, "put", strlen("put"))) { ftp_upload_file(); write(STDOUT_FILENO, "cmd:", strlen("cmd:")); continue; } if (!memcmp(cmd, "get", strlen("get"))) { ftp_download_file(); write(STDOUT_FILENO, "cmd:", strlen("cmd:")); continue; } if (!memcmp(cmd, "quit", strlen("quit"))) { ftp_quit(); } if (!memcmp(cmd, "binary", strlen("binary"))) { ftp_set_binary(); write(STDOUT_FILENO, "cmd:", strlen("cmd:")); continue; } write(STDOUT_FILENO, "unrecognized command\n", strlen("unrecognized command\n")); write(STDOUT_FILENO, "cmd:", strlen("cmd:")); } return 0; }