diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-04-14 08:41:12 +0200 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-04-14 08:46:29 +0200 |
commit | c0a1fff064910c854ce5b09ae24479749c22ef17 (patch) | |
tree | 2530b234f40c7f12e7e669ffc6d32c8ef7c571b7 /openbsc | |
parent | 77fa4d2386896899e6419b54e18b6593a597e680 (diff) |
bsc_msc_ip.c: Set the signal handler earlier..
We should set this before starting any network operation.
Diffstat (limited to 'openbsc')
-rw-r--r-- | openbsc/src/bsc_msc_ip.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/openbsc/src/bsc_msc_ip.c b/openbsc/src/bsc_msc_ip.c index 33be59439..c44ddaf8f 100644 --- a/openbsc/src/bsc_msc_ip.c +++ b/openbsc/src/bsc_msc_ip.c @@ -974,7 +974,7 @@ static void signal_handler(int signal) talloc_report_full(tall_bsc_ctx, stderr); break; case SIGUSR2: - if (!msc_con->is_connected) + if (!msc_con || !msc_con->is_connected) return; bsc_msc_lost(msc_con); break; @@ -1047,6 +1047,12 @@ int main(int argc, char **argv) /* seed the PRNG */ srand(time(NULL)); + signal(SIGINT, &signal_handler); + signal(SIGABRT, &signal_handler); + signal(SIGUSR1, &signal_handler); + signal(SIGUSR2, &signal_handler); + signal(SIGPIPE, SIG_IGN); + /* attempt to register the local mgcp forward */ if (mgcp_create_port() != 0) { fprintf(stderr, "Failed to bind local MGCP port\n"); @@ -1075,12 +1081,6 @@ int main(int argc, char **argv) bsc_msc_connect(msc_con); - signal(SIGINT, &signal_handler); - signal(SIGABRT, &signal_handler); - signal(SIGUSR1, &signal_handler); - signal(SIGUSR2, &signal_handler); - signal(SIGPIPE, SIG_IGN); - while (1) { bsc_select_main(0); } |