Fix the worst case kill process pid < 0
authorNeutron Soutmun <neo.neutron@gmail.com>
Wed, 3 Dec 2008 10:33:24 +0000 (17:33 +0700)
committerNeutron Soutmun <neo.neutron@gmail.com>
Wed, 3 Dec 2008 10:33:24 +0000 (17:33 +0700)
2008-12-03  Neutron Soutmun <neo.neutron@gmail.com>

* src/rahunasd.c: Fix the worst case that the pid < 0 (fail) is parsed into
  the rh_sighandler() which the program must ignore this trigger.

ChangeLog
src/rahunasd.c

index 69f3df4..448bb2b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2008-12-03  Neutron Soutmun <neo.neutron@gmail.com>
 
+       * src/rahunasd.c: Fix the worst case that the pid < 0 (fail) is parsed into 
+         the rh_sighandler() which the program must ignore this trigger.
+
+2008-12-03  Neutron Soutmun <neo.neutron@gmail.com>
+
        * src/rahunasd.{c,h}, src/rh-config.h, src/rh-ipset.{c,h}, 
          src/rh-task-ipset.c, src/rh-task-memset.c, src/rh-task.h, 
          src/rh-xmlrpc-cmd.c, src/rh-xmlrpc-server.{c,h}:
index bda0ca5..742633d 100644 (file)
@@ -152,17 +152,17 @@ int logmsg(int priority, const char *msg, ...)
 void rh_sighandler(int sig)
 {
   switch (sig) {
-    case SIGINT:
     case SIGTERM:
     case SIGKILL:
       if (pid == 0) {
         rh_exit();
+        syslog(LOG_NOTICE, "Exit Gracefully", pid);
         exit(EXIT_SUCCESS);
       }
 
-      if (pid != 0) {
+      if (pid > 0) {
         syslog(LOG_NOTICE, "Kill Child PID %d", pid);
-        kill(pid, SIGTERM);
+        kill(pid, SIGKILL);
       }
       break;
   }