summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2017-01-17 20:47:16 +0000
committerSimon McVittie <smcv@collabora.com>2017-04-07 12:07:43 +0100
commit053c48c035ea58a2d602c1be91032319acbfa1d0 (patch)
tree66be675d99bb2901a95c9bac53574d3ce69ae57c
parent67c3ad422cffdd59a8e1706bcc7f875c54f03314 (diff)
dbus-launch: clarify signal handler
We only register signal_handler() for the three signals that we want to handle as "kill dbus-daemon and exit", so there's no point in the switch. Silence -Wswitch-default by removing it altogether. The variable name got_fatal_signal and the verbose message are both misleading, because actually this is a handler for multiple signals, not just SIGHUP. Rename them to be generic. Based on part of a patch from Thomas Zimmermann. Signed-off-by: Simon McVittie <smcv@collabora.com> Reviewed-by: Philip Withnall <withnall@endlessm.com> Bug: https://bugs.freedesktop.org/show_bug.cgi?id=98191
-rw-r--r--tools/dbus-launch.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/tools/dbus-launch.c b/tools/dbus-launch.c
index 75f39cf0..910628c6 100644
--- a/tools/dbus-launch.c
+++ b/tools/dbus-launch.c
@@ -459,19 +459,12 @@ print_variables (const char *bus_address, pid_t bus_pid, long bus_wid,
}
}
-static int got_sighup = FALSE;
+static int got_fatal_signal = 0;
static void
signal_handler (int sig)
{
- switch (sig)
- {
- case SIGHUP:
- case SIGINT:
- case SIGTERM:
- got_sighup = TRUE;
- break;
- }
+ got_fatal_signal = sig;
}
static void kill_bus_when_session_ends (void) _DBUS_GNUC_NORETURN;
@@ -487,7 +480,7 @@ kill_bus_when_session_ends (void)
sigset_t empty_mask;
/* install SIGHUP handler */
- got_sighup = FALSE;
+ got_fatal_signal = 0;
sigemptyset (&empty_mask);
act.sa_handler = signal_handler;
act.sa_mask = empty_mask;
@@ -564,9 +557,10 @@ kill_bus_when_session_ends (void)
select (MAX (tty_fd, x_fd) + 1,
&read_set, NULL, &err_set, NULL);
- if (got_sighup)
+ if (got_fatal_signal)
{
- verbose ("Got SIGHUP, exiting\n");
+ verbose ("Got fatal signal %d, killing dbus-daemon\n",
+ got_fatal_signal);
kill_bus_and_exit (0);
}