/[projects]/smsdaemon/daemon.cpp
ViewVC logotype

Diff of /smsdaemon/daemon.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 146 by torben, Sun Dec 7 20:06:12 2008 UTC revision 157 by torben, Mon Dec 8 21:28:40 2008 UTC
# Line 1  Line 1 
1  #include <iostream>  #include <iostream>
2    #include <sstream>
3  #include <signal.h>  #include <signal.h>
4  #include <fcntl.h>  #include <fcntl.h>
5  #include <stdlib.h>  #include <stdlib.h>
# Line 10  Line 10 
10  #include <grp.h>  #include <grp.h>
11    
12    
13    #include "ConfigFile.h"
14  #include "daemon.h"  #include "daemon.h"
15  #include "common.h"  #include "common.h"
16    #include "Logger.h"
17    
18    
19    
# Line 23  void signal_handler(int sig) Line 25  void signal_handler(int sig)
25          switch (sig)          switch (sig)
26          {          {
27          case SIGHUP:          case SIGHUP:
28                  Common::instance()->logMessage("hangup signal catched");                  Logger::logMessage("hangup signal catched");
29                  break;                  break;
30    
31          case SIGTERM:          case SIGTERM:
32                  Common::instance()->logMessage("terminate signal catched...exiting");                  Logger::logMessage("terminate signal catched...exiting");
33                  Common::instance()->mainContinue = false;                  Common::instance()->mainContinue = false;
34                  break;                  break;
35            default:
36                    std::stringstream ss;
37                    ss << "Received unknown signal: " << sig;
38                    Logger::logMessage(ss.str());
39                    break;
40          }          }
41  }  }
42    
# Line 37  void lookup_uid_values() Line 44  void lookup_uid_values()
44  {  {
45          Common* cmn = Common::instance();          Common* cmn = Common::instance();
46    
47          passwd* pass = getpwnam("smsdaemon");          std::string userstr = cmn->GetConfigfile()->GetValue("smsdaemon","user");
48            std::string groupstr = cmn->GetConfigfile()->GetValue("smsdaemon","group");
49    
50            passwd* pass = getpwnam(userstr.c_str());
51          if (pass != 0)          if (pass != 0)
52          {          {
53                  cmn->uid = pass->pw_uid;                  cmn->uid = pass->pw_uid;
54          }          }
55          else          else
56          {          {
57                  cmn->logMessage("could not lookup userid: smsdaemon");                  Logger::logMessage( string("could not lookup userid: ") + userstr );
58                  exit(1);                  exit(1);
59          }          }
60    
61          group* grp = getgrnam("smsdaemon");  
62            group* grp = getgrnam(groupstr.c_str() );
63          if (grp != 0)          if (grp != 0)
64          {          {
65                  cmn->gid = grp->gr_gid;                  cmn->gid = grp->gr_gid;
66          }          }
67          else          else
68          {          {
69                  cmn->logMessage("could not lookup groupid: smsdaemon");                  Logger::logMessage( string("could not lookup groupid: ") + groupstr );
70                  exit(1);                  exit(1);
71          }          }
72  }  }
# Line 119  void daemonize() Line 130  void daemonize()
130          signal(SIGTTIN, SIG_IGN);          signal(SIGTTIN, SIG_IGN);
131          signal(SIGHUP, signal_handler); /* catch hangup signal */          signal(SIGHUP, signal_handler); /* catch hangup signal */
132          signal(SIGTERM, signal_handler); /* catch kill signal */          signal(SIGTERM, signal_handler); /* catch kill signal */
133            signal(SIGINT, signal_handler); /* keyboard interrupt */
134            signal(SIGQUIT, signal_handler); /* QUIT */
135    
136          /*this program is now a daemon*/          /*this program is now a daemon*/
137          setegid( cmn->gid );          setegid( cmn->gid );

Legend:
Removed from v.146  
changed lines
  Added in v.157

  ViewVC Help
Powered by ViewVC 1.1.20