fix client install comunication

This commit is contained in:
Guillermo Roche 2020-05-16 20:52:50 +02:00
parent 9f7dbd6cf7
commit 5f772f4db8
7 changed files with 23 additions and 7 deletions

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject> <!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.8.2, 2020-05-11T02:55:05. --> <!-- Written by QtCreator 4.8.2, 2020-05-16T01:41:19. -->
<qtcreator> <qtcreator>
<data> <data>
<variable>EnvironmentId</variable> <variable>EnvironmentId</variable>

View File

@ -75,7 +75,7 @@ void conexion_client(int client){
}else{ }else{
session_manager* session = new session_manager(client); session_manager* session = new session_manager(client);
while(session->validate_pass()); while(session->validate_pass());
session->execute(); session->start_dialog();
delete (session); delete (session);
close(client); close(client);
} }

View File

@ -122,7 +122,7 @@ void conexion_client(SSL_CTX *ctx,int client){
else { else {
session_manager* session = new session_manager_ssl(ssl); session_manager* session = new session_manager_ssl(ssl);
while(!session->validate_pass()); while(!session->validate_pass());
session->execute(); session->start_dialog();
//SSL_write(ssl,std::to_string(la->execute()).data() , sizeof (int)); //SSL_write(ssl,std::to_string(la->execute()).data() , sizeof (int));
delete (session); delete (session);
} }

View File

@ -12,6 +12,7 @@ public:
virtual std::list<std::string> get_pinfo()=0; virtual std::list<std::string> get_pinfo()=0;
virtual void write_install(std::string package, std::string user)=0; virtual void write_install(std::string package, std::string user)=0;
virtual void write_remove(std::string)=0; virtual void write_remove(std::string)=0;
virtual bool get_package_exists(std::string package)=0;
}; };
#endif // DATA_ACCES_H #endif // DATA_ACCES_H

View File

@ -52,3 +52,14 @@ void msql_acces::write_remove(std::string package){
pstmt->setString(1,package); pstmt->setString(1,package);
pstmt->executeUpdate(); pstmt->executeUpdate();
} }
bool msql_acces::get_package_exists(std::string package){
sql::PreparedStatement *pstmt = con->prepareStatement("select count(id) from packages where name=?");
pstmt->setString(1,package);
sql::ResultSet *res = pstmt->executeQuery();
int ret=0;
while(res->next())
ret = res->getInt(1);
return ret>0;
}

View File

@ -16,6 +16,7 @@ public:
std::list<std::string> get_pinfo(); std::list<std::string> get_pinfo();
void write_install(std::string package, std::string user); void write_install(std::string package, std::string user);
void write_remove(std::string); void write_remove(std::string);
bool get_package_exists(std::string package);
private: private:
sql::Connection *con; sql::Connection *con;
sql::Driver *driver; sql::Driver *driver;

View File

@ -45,8 +45,9 @@ void session_manager::start_dialog(){
} }
int session_manager::execute(){ int session_manager::execute(){
char* n_package = new char[256]; char* n_package = new char[250];
this->read_data(n_package, 256); this->read_data(n_package, 5);
this->read_data(n_package, 250);
char* use_conf=new char[256]; char* use_conf=new char[256];
this->read_data(use_conf,2); this->read_data(use_conf,2);
if(strcmp(use_conf,"y")==0){ if(strcmp(use_conf,"y")==0){
@ -62,7 +63,9 @@ int session_manager::execute(){
if(result=="err"){ if(result=="err"){
return -1; return -1;
}else{ }else{
this->data->write_install(n_package, user); if(!this->data->get_package_exists(result)){
this->data->write_install(result, user);
}
return 1; return 1;
} }
} }
@ -74,7 +77,7 @@ int session_manager::remove(){
if(result=="err"){ if(result=="err"){
return -1; return -1;
}else{ }else{
this->data->write_remove(n_package); this->data->write_remove(result);
return 1; return 1;
} }
} }