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

Diff of /smsdaemon/daemon.cpp

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

revision 152 by torben, Mon Dec 8 11:30:07 2008 UTC revision 196 by torben, Thu Dec 18 06:53:29 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 12  Line 12 
12    
13  #include "ConfigFile.h"  #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 24  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 48  void lookup_uid_values() Line 54  void lookup_uid_values()
54          }          }
55          else          else
56          {          {
57                  cmn->logMessage( string("could not lookup userid: ") + userstr );                  Logger::logMessage( string("could not lookup userid: ") + userstr );
58                  exit(1);                  exit(1);
59          }          }
60    
61    
62          group* grp = getgrnam(groupstr.c_str() );          group* grp = getgrnam(groupstr.c_str() );
63          if (grp != 0)          if (grp != 0)
64          {          {
# Line 59  void lookup_uid_values() Line 66  void lookup_uid_values()
66          }          }
67          else          else
68          {          {
69                  cmn->logMessage( string("could not lookup groupid: ") + groupstr );                  Logger::logMessage( string("could not lookup groupid: ") + groupstr );
70                  exit(1);                  exit(1);
71          }          }
72  }  }
# Line 67  void lookup_uid_values() Line 74  void lookup_uid_values()
74    
75  void daemonCleanup()  void daemonCleanup()
76  {  {
77          unlink( Common::instance()->pidfile.c_str() );          Common* cmn = Common::instance();
78            Logger::logMessage("Cleaning up daemon");
79    
80            seteuid(0);
81            setegid(0);
82            unlink( cmn->pidfile.c_str() );
83    
84  }  }
85    
86  void daemonize()  void daemonize()
# Line 123  void daemonize() Line 136  void daemonize()
136          signal(SIGTTIN, SIG_IGN);          signal(SIGTTIN, SIG_IGN);
137          signal(SIGHUP, signal_handler); /* catch hangup signal */          signal(SIGHUP, signal_handler); /* catch hangup signal */
138          signal(SIGTERM, signal_handler); /* catch kill signal */          signal(SIGTERM, signal_handler); /* catch kill signal */
139            signal(SIGINT, signal_handler); /* keyboard interrupt */
140            signal(SIGQUIT, signal_handler); /* QUIT */
141    
142          /*this program is now a daemon*/          /*this program is now a daemon*/
143          setegid( cmn->gid );          setegid( cmn->gid );

Legend:
Removed from v.152  
changed lines
  Added in v.196

  ViewVC Help
Powered by ViewVC 1.1.20