diff --git a/DDV_Controller/main.cpp b/DDV_Controller/main.cpp index 801a731a..8caea2a0 100644 --- a/DDV_Controller/main.cpp +++ b/DDV_Controller/main.cpp @@ -522,6 +522,7 @@ int main(int argc, char ** argv){ Response["log"] = Storage["log"]; Response["statistics"] = Storage["statistics"]; Response["authorize"]["username"] = TOSTRING(COMPILED_USERNAME); + Log("UPLK", "Responding to login challenge: " + Request["authorize"]["challenge"].asString()); Response["authorize"]["password"] = md5(TOSTRING(COMPILED_PASSWORD) + Request["authorize"]["challenge"].asString()); it->H.Clean(); it->H.SetBody("command="+HTTP::Parser::urlencode(Response.toStyledString())); diff --git a/util/util.cpp b/util/util.cpp index d599c0d0..773248f7 100644 --- a/util/util.cpp +++ b/util/util.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -147,11 +148,14 @@ pid_t Util::Procs::Start(std::string name, std::string cmd, std::string cmd2){ return 0; } + int devnull = open("/dev/null", O_RDWR); pid_t ret = fork(); if (ret == 0){ close(pfildes[0]); - dup2(pfildes[1],1); + dup2(pfildes[1],STDOUT_FILENO); close(pfildes[1]); + dup2(devnull, STDIN_FILENO); + dup2(devnull, STDERR_FILENO); runCmd(cmd); }else{ if (ret > 0){ @@ -165,12 +169,14 @@ pid_t Util::Procs::Start(std::string name, std::string cmd, std::string cmd2){ return 0; } } - + pid_t ret2 = fork(); if (ret2 == 0){ close(pfildes[1]); - dup2(pfildes[0],0); + dup2(pfildes[0],STDIN_FILENO); close(pfildes[0]); + dup2(devnull, STDOUT_FILENO); + dup2(devnull, STDERR_FILENO); runCmd(cmd2); }else{ if (ret2 > 0){