summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);
}