--- smsdaemon/daemon.cpp 2008/12/08 17:14:21 155 +++ smsdaemon/daemon.cpp 2008/12/22 22:22:42 214 @@ -12,7 +12,8 @@ #include "ConfigFile.h" #include "daemon.h" -#include "common.h" +#include "Common.h" +#include "Logger.h" @@ -24,17 +25,19 @@ switch (sig) { case SIGHUP: - Common::instance()->logMessage("hangup signal catched"); + Logger::logMessage("Reload config"); + Common::instance()->reloadConfig = true; + break; case SIGTERM: - Common::instance()->logMessage("terminate signal catched...exiting"); + Logger::logMessage("terminate signal catched...exiting"); Common::instance()->mainContinue = false; break; default: std::stringstream ss; ss << "Received unknown signal: " << sig; - Common::instance()->logMessage(ss.str()); + Logger::logMessage(ss.str()); break; } } @@ -43,8 +46,8 @@ { Common* cmn = Common::instance(); - std::string userstr = cmn->GetConfigfile()->GetValue("smsdaemon","user"); - std::string groupstr = cmn->GetConfigfile()->GetValue("smsdaemon","group"); + std::string userstr = cmn->GetConfigfile()->GetValue("smsdaemon","user",""); + std::string groupstr = cmn->GetConfigfile()->GetValue("smsdaemon","group",""); passwd* pass = getpwnam(userstr.c_str()); if (pass != 0) @@ -53,7 +56,7 @@ } else { - cmn->logMessage( string("could not lookup userid: ") + userstr ); + Logger::logMessage( string("could not lookup userid: ") + userstr ); exit(1); } @@ -65,7 +68,7 @@ } else { - cmn->logMessage( string("could not lookup groupid: ") + groupstr ); + Logger::logMessage( string("could not lookup groupid: ") + groupstr ); exit(1); } } @@ -73,7 +76,13 @@ void daemonCleanup() { - unlink( Common::instance()->pidfile.c_str() ); + Common* cmn = Common::instance(); + Logger::logMessage("Cleaning up daemon"); + + seteuid(0); + setegid(0); + unlink( cmn->pidfile.c_str() ); + } void daemonize()