summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2008-12-20 10:17:14 -0500
committerRay Strode <rstrode@redhat.com>2008-12-20 10:17:14 -0500
commit478c4b3137950365646c1e5670687c88993b3743 (patch)
tree089934d14c50ce2c78aacada3f2cd8512998a40a
parent5d8f7f839f06e28e94d02b1e7cbf6257fe3e41e8 (diff)
Send SIGTERM when disconnected from bus
This gives us a chance to potentially shutdown gracefully.
-rw-r--r--dbus.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/dbus.c b/dbus.c
index 57bfe20..bb28045 100644
--- a/dbus.c
+++ b/dbus.c
@@ -1,3 +1,4 @@
+#include <signal.h>
#include <stdbool.h>
#include <stdlib.h>
#include <stdio.h>
@@ -16,7 +17,12 @@ struct wlsc_dbus {
static DBusHandlerResult
wlsc_dbus_filter(DBusConnection *connection, DBusMessage *message, void *data)
{
- printf("dbus filter!\n");
+ if (dbus_message_is_signal (message,
+ DBUS_INTERFACE_LOCAL,
+ "Disconnected")) {
+ raise(SIGTERM);
+ return DBUS_HANDLER_RESULT_HANDLED;
+ }
return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
}