From 8069615e371fb15a7a517b22c1c41fa130be5aca Mon Sep 17 00:00:00 2001 From: "taesub.kim" Date: Mon, 2 Dec 2013 10:39:23 +0900 Subject: [PATCH] Add SIGTERM signal handling Change-Id: Id9c235cf5f9718a05467e4286d0dd37a05d703ae Signed-off-by: Taesub Kim --- packaging/net-config.spec | 2 +- src/main.c | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/packaging/net-config.spec b/packaging/net-config.spec index c19d099..c927ae3 100644 --- a/packaging/net-config.spec +++ b/packaging/net-config.spec @@ -1,6 +1,6 @@ Name: net-config Summary: TIZEN Network Configuration Module -Version: 0.1.90_27 +Version: 0.1.90_28 Release: 1 Group: System/Network License: Apache License Version 2.0 diff --git a/src/main.c b/src/main.c index 1f9fcfc..ccdc669 100644 --- a/src/main.c +++ b/src/main.c @@ -38,6 +38,29 @@ static GMainLoop *main_loop = NULL; static int no_fork = FALSE; +void netconfig_signal_handler_SIGTERM(int signum) +{ + g_main_loop_quit(main_loop); +} + +int netconfig_register_signal_handler_SIGTERM(void) +{ + struct sigaction sigset; + + sigemptyset(&sigset.sa_mask); + sigaddset( &sigset.sa_mask, SIGTERM ); + sigset.sa_flags = 0; + sigset.sa_handler = netconfig_signal_handler_SIGTERM; + + if (sigaction( SIGTERM, &sigset, NULL) < 0) { + ERR("Sigaction for SIGTERM failed [%s]", strerror( errno )); + return -1; + } + + INFO( "Handler for SIGTERM ok" ); + return 0; +} + int netconfig_test_input_parameters(int argc, char* argv[]) { struct option tab[] = { @@ -95,6 +118,10 @@ int main(int argc, char* argv[]) if (netconfig_network_statistics_create_and_init(connection) == NULL) return -1; + /* Register SIGCHLD signal handler function */ + if (netconfig_register_signal_handler_SIGTERM() != 0) + return -1; + /* If its environment uses Emulator, network configuration is set by emulator default */ netconfig_emulator_test_and_start(); -- 2.7.4