--- smsdaemon/daemon.cpp 2008/12/07 20:06:12 146 +++ smsdaemon/daemon.cpp 2008/12/08 21:49:49 158 @@ -1,5 +1,5 @@ #include - +#include #include #include #include @@ -10,8 +10,10 @@ #include +#include "ConfigFile.h" #include "daemon.h" -#include "common.h" +#include "Common.h" +#include "Logger.h" @@ -23,13 +25,18 @@ switch (sig) { case SIGHUP: - Common::instance()->logMessage("hangup signal catched"); + Logger::logMessage("hangup signal catched"); 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; + Logger::logMessage(ss.str()); + break; } } @@ -37,25 +44,29 @@ { Common* cmn = Common::instance(); - passwd* pass = getpwnam("smsdaemon"); + 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) { cmn->uid = pass->pw_uid; } else { - cmn->logMessage("could not lookup userid: smsdaemon"); + Logger::logMessage( string("could not lookup userid: ") + userstr ); exit(1); } - group* grp = getgrnam("smsdaemon"); + + group* grp = getgrnam(groupstr.c_str() ); if (grp != 0) { cmn->gid = grp->gr_gid; } else { - cmn->logMessage("could not lookup groupid: smsdaemon"); + Logger::logMessage( string("could not lookup groupid: ") + groupstr ); exit(1); } } @@ -119,6 +130,8 @@ signal(SIGTTIN, SIG_IGN); signal(SIGHUP, signal_handler); /* catch hangup signal */ signal(SIGTERM, signal_handler); /* catch kill signal */ + signal(SIGINT, signal_handler); /* keyboard interrupt */ + signal(SIGQUIT, signal_handler); /* QUIT */ /*this program is now a daemon*/ setegid( cmn->gid );