static GMainLoop *main_loop;
static gboolean restart = FALSE;
+static struct sigaction rm_term_old_action;
+static struct sigaction rm_int_old_action;
+static struct sigaction rm_quit_old_action;
+static struct sigaction rm_hup_old_action;
int notify_fd[2];
static gboolean remove_ready_file(void);
static gboolean remove_daemon_setup_file(void);
static int set_signal_handlers(void);
-static void terminate_handler(int signum);
-static void reload_conf_handler(int signum);
+static void terminate_handler(int signo);
+static void reload_conf_handler(int signo);
static void quit_main_loop(void);
sigemptyset(&sa_ignore.sa_mask);
sa_ignore.sa_flags = 0;
- return sigaction(SIGTERM, &sa_term, NULL) != -1 &&
- sigaction(SIGINT, &sa_ignore, NULL) != -1 &&
- sigaction(SIGQUIT, &sa_ignore, NULL) != -1 &&
- sigaction(SIGHUP, &sa_reload_conf, NULL) != -1;
+ return sigaction(SIGTERM, &sa_term, &rm_term_old_action) != -1
+ && sigaction(SIGINT, &sa_ignore, &rm_int_old_action) != -1
+ && sigaction(SIGQUIT, &sa_ignore, &rm_quit_old_action) != -1
+ && sigaction(SIGHUP, &sa_reload_conf, &rm_hup_old_action) != -1;
}
-static void terminate_handler(int signum)
+static void terminate_handler(int signo)
{
MM_RM_DEBUG("SIGTERM is received");
quit_main_loop();
}
-static void reload_conf_handler(int signum)
+static void reload_conf_handler(int signo)
{
MM_RM_DEBUG("SIGHUP is received");
restart = TRUE;