aboutsummaryrefslogtreecommitdiffstats
path: root/ggsn
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2017-08-20 12:44:21 +0200
committerHarald Welte <laforge@gnumonks.org>2017-09-06 09:17:15 +0200
commite80494726c5b36caef58a5999251613453d9e2f0 (patch)
tree6782d70a6b1b58a690baac4c0acc1b499d558677 /ggsn
parent3591437e0f868d597782fbed64de0eac18340028 (diff)
ggsn: Handle SIGTERM like SIGINT and terminate
Diffstat (limited to 'ggsn')
-rw-r--r--ggsn/ggsn.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/ggsn/ggsn.c b/ggsn/ggsn.c
index 2bf3d7e..ee64cb9 100644
--- a/ggsn/ggsn.c
+++ b/ggsn/ggsn.c
@@ -657,6 +657,7 @@ static void signal_handler(int s)
LOGP(DGGSN, LOGL_NOTICE, "signal %d received\n", s);
switch (s) {
case SIGINT:
+ case SIGTERM:
LOGP(DGGSN, LOGL_NOTICE, "SIGINT received, shutting down\n");
end = 1;
break;
@@ -803,11 +804,12 @@ int main(int argc, char **argv)
struct ggsn_ctx *ggsn;
int rc;
- /* Handle keyboard interrupt SIGINT */
tall_ggsn_ctx = talloc_named_const(NULL, 0, "openggsn");
msgb_talloc_ctx_init(tall_ggsn_ctx, 0);
+ /* Handle keyboard interrupt SIGINT */
signal(SIGINT, &signal_handler);
+ signal(SIGTERM, &signal_handler);
signal(SIGABRT, &signal_handler);
signal(SIGUSR1, &signal_handler);
signal(SIGUSR2, &signal_handler);