102 lines
2.4 KiB
C++
102 lines
2.4 KiB
C++
#include "eyd.hh"
|
|
|
|
using namespace std;
|
|
|
|
|
|
|
|
int main(int argc, char **argv){
|
|
/*
|
|
std::string *servermsgold, *usermsg, *userparam;
|
|
int ret;
|
|
char * tmp_c_string;
|
|
ftp_cmd_t ftp_cmd;
|
|
|
|
ftp_connection_state_t cnx_state;
|
|
FtpConfig * client_conf = NULL;
|
|
|
|
servermsgold = NULL;
|
|
usermsg = NULL;
|
|
userparam = NULL;
|
|
cnx_state = FTP_STATE_DISCONNECTED;
|
|
|
|
client_conf = new FtpConfig();
|
|
ret = miniftp_args(client_conf, argc, argv);
|
|
if (ret < 0) { return EXIT_FAILURE; }
|
|
|
|
printf("Connecting to %s:%d\n... ",
|
|
client_conf->server_conf->host->c_str(),
|
|
client_conf->server_conf->port);
|
|
fflush(stdout);
|
|
|
|
XionFS::XSock *cmdXSock; // *dataXSock;
|
|
|
|
cmdXSock = new XionFS::XSock(XionFS::CLIENT,XionFS::TCP);
|
|
cmdXSock->port(client_conf->server_conf->port);
|
|
cmdXSock->dns(client_conf->server_conf->host->c_str());
|
|
|
|
cmdXSock->launch();
|
|
printf(" fait\n");
|
|
client_conf->cmd_xsocket = cmdXSock;
|
|
|
|
// init sequence
|
|
MiniFtp::ServerMsg * servermsg;
|
|
// ("220 hophop");
|
|
servermsg = ftp_cmd_recv(client_conf);
|
|
|
|
if ((servermsg->getStatus()/10) == 22){
|
|
cnx_state = FTP_STATE_CONNECTED;
|
|
} else {
|
|
cout << "ERROR\n";
|
|
return EXIT_FAILURE; // event system
|
|
}
|
|
delete(servermsg);
|
|
// init
|
|
|
|
cout <<"Auth...\n";
|
|
while(cnx_state == FTP_STATE_CONNECTED){
|
|
|
|
tmp_c_string = readline("Login...: ");
|
|
usermsg = new std::string(tmp_c_string);
|
|
ftp_cmd_send(client_conf, FTP_CMD_USER, (char*)usermsg->c_str());
|
|
free(tmp_c_string);
|
|
delete(usermsg);
|
|
|
|
servermsg = ftp_cmd_recv(client_conf);
|
|
if (servermsg->getStatus() != 331){
|
|
continue;
|
|
}
|
|
delete(servermsg);
|
|
|
|
tmp_c_string = readline("Password: ");
|
|
usermsg = new std::string(tmp_c_string);
|
|
ftp_cmd_send(client_conf, FTP_CMD_PASS, (char*)usermsg->c_str());
|
|
delete(usermsg);
|
|
|
|
servermsg = ftp_cmd_recv(client_conf);
|
|
if ((servermsg->getStatus() / 10) == 23){
|
|
cnx_state = FTP_STATE_LOGGED_IN;
|
|
}
|
|
delete(usermsg);
|
|
|
|
}
|
|
while(cnx_state == FTP_STATE_LOGGED_IN){
|
|
tmp_c_string = readline("ftp> ");
|
|
usermsg = new std::string(tmp_c_string);
|
|
//userparam = (char *) malloc(sizeof(char) * CLIENTQUERY_MAX_LENGTH);
|
|
ftp_cmd = ftp_cmd_parse(usermsg, &userparam);
|
|
//Think to keep FTP filesystem tree somewhere
|
|
ftp_cmd_send(client_conf, ftp_cmd, userparam);
|
|
if (ftp_cmd == FTP_CMD_QUIT){
|
|
printf("Disconnecting...\n");
|
|
cnx_state = FTP_STATE_DISCONNECTED;
|
|
}
|
|
free(userparam);
|
|
delete(usermsg);
|
|
free(tmp_c_string);
|
|
}
|
|
|
|
// on le garde dans un coin au chaud en attendant
|
|
// dataXSock->launch();
|
|
*/
|
|
return 0;
|
|
}
|