Use libevent to handle HUP signal.
[tinc] / src / process.c
index 0ea65b3..a7542a7 100644 (file)
@@ -1,7 +1,7 @@
 /*
     process.c -- process management functions
-    Copyright (C) 1999-2004 Ivo Timmermans <ivo@tinc-vpn.org>,
-                  2000-2004 Guus Sliepen <guus@tinc-vpn.org>
+    Copyright (C) 1999-2005 Ivo Timmermans,
+                  2000-2006 Guus Sliepen <guus@tinc-vpn.org>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -36,7 +36,6 @@
 
 /* If zero, don't detach from the terminal. */
 bool do_detach = true;
-bool sighup = false;
 bool sigalrm = false;
 
 extern char *identname;
@@ -379,8 +378,10 @@ bool execute_script(const char *name, char **envp)
 
        /* First check if there is a script */
 
-       if(stat(scriptname + 1, &s))
+       if(stat(scriptname + 1, &s)) {
+               free(scriptname);
                return true;
+       }
 
        ifdebug(STATUS) logger(LOG_INFO, _("Executing script %s"), name);
 
@@ -489,12 +490,6 @@ static RETSIGTYPE fatal_signal_handler(int a)
        }
 }
 
-static RETSIGTYPE sighup_handler(int a)
-{
-       logger(LOG_NOTICE, _("Got %s signal"), "HUP");
-       sighup = true;
-}
-
 static RETSIGTYPE sigint_handler(int a)
 {
        logger(LOG_NOTICE, _("Got %s signal"), "INT");
@@ -552,7 +547,6 @@ static struct {
        int signal;
        void (*handler)(int);
 } sighandlers[] = {
-       {SIGHUP, sighup_handler},
        {SIGTERM, sigterm_handler},
        {SIGQUIT, sigquit_handler},
        {SIGSEGV, fatal_signal_handler},
@@ -592,7 +586,7 @@ void setup_signals(void)
 
        /* If we didn't detach, allow coredumps */
        if(!do_detach)
-               sighandlers[3].handler = SIG_DFL;
+               sighandlers[2].handler = SIG_DFL;
 
        /* Then, for each known signal that we want to catch, assign a
           handler to the signal, with error checking this time. */