aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2010-04-14 08:41:12 +0200
committerHolger Hans Peter Freyther <zecke@selfish.org>2010-04-14 08:46:29 +0200
commitc0a1fff064910c854ce5b09ae24479749c22ef17 (patch)
tree2530b234f40c7f12e7e669ffc6d32c8ef7c571b7
parent77fa4d2386896899e6419b54e18b6593a597e680 (diff)
bsc_msc_ip.c: Set the signal handler earlier..
We should set this before starting any network operation.
-rw-r--r--openbsc/src/bsc_msc_ip.c14
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);
}