Exemplo n.º 1
0
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;
}
Exemplo n.º 2
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;
}