From 1e7e440f5a5555b286e9b6265e9e481d11123fcd Mon Sep 17 00:00:00 2001 From: Renato Westphal Date: Sat, 25 Mar 2017 21:28:13 -0300 Subject: [PATCH] ldpd: ignore the SIGHUP signal in the child processes Only the parent process should handle the SIGHUP signal, but we need to make sure that this signal is ignored in the child processes so a command like "killall -SIGHUP ldpd" won't kill ldpd. Signed-off-by: Renato Westphal --- ldpd/lde.c | 4 ++++ ldpd/ldpe.c | 4 ++++ lib/sigevent.c | 3 ++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ldpd/lde.c b/ldpd/lde.c index 3247c8c1cc..e927e45367 100644 --- a/ldpd/lde.c +++ b/ldpd/lde.c @@ -105,6 +105,10 @@ sigint(void) static struct quagga_signal_t lde_signals[] = { + { + .signal = SIGHUP, + /* ignore */ + }, { .signal = SIGINT, .handler = &sigint, diff --git a/ldpd/ldpe.c b/ldpd/ldpe.c index 6c542c5e34..ada732d6fc 100644 --- a/ldpd/ldpe.c +++ b/ldpd/ldpe.c @@ -87,6 +87,10 @@ sigint(void) static struct quagga_signal_t ldpe_signals[] = { + { + .signal = SIGHUP, + /* ignore */ + }, { .signal = SIGINT, .handler = &sigint, diff --git a/lib/sigevent.c b/lib/sigevent.c index a120028d81..09f07180ce 100644 --- a/lib/sigevent.c +++ b/lib/sigevent.c @@ -108,7 +108,8 @@ quagga_sigevent_process (void) if (sig->caught > 0) { sig->caught = 0; - sig->handler (); + if (sig->handler) + sig->handler (); } } }