Esempio n. 1
0
void FTP::execute(string message){

  vector<string> params = StringUtils::splitByDelimiter(message, ' ');
  string command = params[0];
  transform(command.begin(), command.end(), command.begin(), ::toupper);

  if ( command.compare("PWD") == 0 ){
    cout << this->pi.commandPrintWorkingDirectory();
  } else if ( command.compare("DELE") == 0 ){
    cout << this->pi.commandDeleteFile(params[1]);
  } else if ( command.compare("RMD") == 0 ){
    cout << this->pi.commandDeleteDir(params[1]);
  } else if ( command.compare("MKD") == 0 ){
    cout << this->pi.commandMakeDir(params[1]);
  } else if ( command.compare("HELP") == 0 ){
    cout << this->pi.commandHelp();
  } else if ( command.compare("CWD") == 0 ){
    cout << this->pi.commandChangeWorkingDir(params[1]);
  } else if ( command.compare("REST") == 0 ){
    cout << this->pi.commandRestart();
  } else if ( command.compare("NOOP") == 0 ){
    cout << this->pi.commandNoop();
  } else if ( command.compare("LIST") == 0 ){
    DTP dtp;
    enterPassiveMode(&dtp);
    cout << this->pi.commandList();
    cout << dtp.receiveList();
  } else if ( command.compare("RETR") == 0 ){
    DTP dtp;
    enterPassiveMode(&dtp);
    cout << this->pi.commandRetrieve(params[1]);
    dtp.receiveFile("shared/" + params[1]);
  } else if ( command.compare("STOR") == 0 ){
    DTP dtp;
    enterPassiveMode(&dtp);
    this->pi.commandStore(params[1]);
    dtp.storeFile("shared/" + params[1]);
    cout << pi.receiveMessage();
    cout << pi.receiveMessage();
  } else if ( command.compare("LS") == 0 ){
    cout << "              Shared directory content:" << endl;
    system("ls shared/ -l");
    cout << endl;
  }
}
Esempio n. 2
0
int main(int argc, char *argv[]){

	if(argc==2) {
		int correctSyntax=checkSyntax(argv[1]);
		if(correctSyntax){
			printf("Sintaxe correcta\n");

			char *user,*password,*host,*urlpath,*ip;
			int ret,sock1fd,pasvPort,sock2fd;

			user=ALLOCSTRING;
			password=ALLOCSTRING;
			host=ALLOCSTRING;
			urlpath=ALLOCSTRING;
			ip=ALLOCSTRING;

			ret = parseParams(argv[1],user,password,host,urlpath);
			getIP(host,ip);

			sock1fd=createSocket(ip,FTPPORT);
			if(ret == 0)
				loginUserPass(sock1fd,user,password);
			else if(ret == 1)
				loginUser(sock1fd,user);
			else if(ret == 2)
				loginUserPass(sock1fd,"anonymous","foo");
			pasvPort = enterPassiveMode(sock1fd);
			sock2fd = createSocket(ip,pasvPort);
			download(sock1fd,sock2fd,urlpath);
			close(sock1fd);
			close(sock2fd);
		}
		else printf("Sintaxe errada!\n");

	}
	else return -1;
	return 0;
}