Add signal handler for client process
[platform/core/multimedia/mm-resource-manager.git] / src / daemon / mm_resource_manager_daemon.c
index 8153e07..d2416ce 100644 (file)
@@ -37,6 +37,10 @@ typedef enum {
 
 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];
 
 
@@ -48,8 +52,8 @@ static gboolean remove_pid_file(void);
 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);
 
 
@@ -195,19 +199,19 @@ static int set_signal_handlers(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;