add suport env variable

This commit is contained in:
Guillermo Roche 2020-06-02 15:22:47 +02:00
parent c85cb24277
commit 8a50e7c476
3 changed files with 16 additions and 23 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-06-01T12:35:56. --> <!-- Written by QtCreator 4.8.2, 2020-06-02T15:21:19. -->
<qtcreator> <qtcreator>
<data> <data>
<variable>EnvironmentId</variable> <variable>EnvironmentId</variable>

View File

@ -20,7 +20,6 @@ bool session_manager::validate_pass(){
std::string user=buffer; std::string user=buffer;
this->read_data(buffer, 256); this->read_data(buffer, 256);
std::string pass=std::string(data_acces::get_hash(buffer)); std::string pass=std::string(data_acces::get_hash(buffer));
delete[] (buffer);
if(this->data->get_passwd(user)==pass){ if(this->data->get_passwd(user)==pass){
this->write_data("pass"); this->write_data("pass");
if(this->data->get_admin(user)){ if(this->data->get_admin(user)){
@ -30,7 +29,15 @@ bool session_manager::validate_pass(){
this->write_data("norma"); this->write_data("norma");
this->admin=false; this->admin=false;
} }
this->read_data(buffer, 256);
std::string env=std::string(buffer);
if(env=="no"){
this->env="";
}else{
this->env=env+"-";
}
this->user=user; this->user=user;
delete[] (buffer);
return true; return true;
}else{ }else{
this->write_data("fail"); this->write_data("fail");
@ -103,12 +110,13 @@ int session_manager::remove(){
} }
std::string session_manager::appli_command(char comand[], char* n_package){ std::string session_manager::appli_command(char comand[], char* n_package){
char** args=new char*[5]; char** args=new char*[6];
args[0]="sudo"; args[0]="sudo";
args[1]="emerge"; args[1]=strcat(&this->env[0],"emerge");
args[2]=comand; args[2]="--buildpkg";
args[3]=n_package; args[3]=comand;
args[4]=nullptr; args[4]=n_package;
args[5]=nullptr;
int pid = fork(); int pid = fork();
int status=-2; int status=-2;
std::string ret; std::string ret;

View File

@ -79,26 +79,11 @@ public:
* @return Number of bytes writed * @return Number of bytes writed
*/ */
virtual int write_data(std::string output); virtual int write_data(std::string output);
/**
* @brief fd
* Socket file desccriptor
*/
int fd; int fd;
/**
* @brief data
* Object that contain media used to store and read information
*/
data_acces* data; data_acces* data;
/**
* @brief user
* Name of the session owner
*/
std::string user; std::string user;
/**
* @brief admin
* Privileges abut the user
*/
bool admin; bool admin;
std::string env;
}; };
#endif // LAUNCHER_H #endif // LAUNCHER_H