76 lines
2.3 KiB
Diff
76 lines
2.3 KiB
Diff
From 03c0db9ff51dedeb98f42c715a70a1bd10c7f595 Mon Sep 17 00:00:00 2001
|
|
From: Simon McVittie <smcv@collabora.com>
|
|
Date: Mon, 15 Jan 2018 15:31:55 +0000
|
|
Subject: [PATCH] bus: Also tell systemd before we shut down
|
|
|
|
Signed-off-by: Simon McVittie <smcv@collabora.com>
|
|
Reviewed-by: Philip Withnall <withnall@endlessm.com>
|
|
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=104641
|
|
---
|
|
bus/main.c | 1 +
|
|
dbus/dbus-sysdeps-util-unix.c | 12 ++++++++++++
|
|
dbus/dbus-sysdeps-util-win.c | 5 +++++
|
|
dbus/dbus-sysdeps.h | 1 +
|
|
4 files changed, 19 insertions(+)
|
|
|
|
diff --git a/bus/main.c b/bus/main.c
|
|
index 578aa989..28223899 100644
|
|
--- a/bus/main.c
|
|
+++ b/bus/main.c
|
|
@@ -320,6 +320,7 @@ handle_reload_watch (DBusWatch *watch,
|
|
loop = bus_context_get_loop (context);
|
|
if (loop != NULL)
|
|
{
|
|
+ _dbus_daemon_report_stopping ();
|
|
_dbus_loop_quit (loop);
|
|
}
|
|
}
|
|
diff --git a/dbus/dbus-sysdeps-util-unix.c b/dbus/dbus-sysdeps-util-unix.c
|
|
index 8a7c9278..24eba4e3 100644
|
|
--- a/dbus/dbus-sysdeps-util-unix.c
|
|
+++ b/dbus/dbus-sysdeps-util-unix.c
|
|
@@ -1556,3 +1556,15 @@ _dbus_daemon_report_reloaded (void)
|
|
_dbus_daemon_report_ready ();
|
|
#endif
|
|
}
|
|
+
|
|
+/**
|
|
+ * Report to a service manager that the daemon calling this function is
|
|
+ * shutting down. This is currently only implemented for systemd.
|
|
+ */
|
|
+void
|
|
+_dbus_daemon_report_stopping (void)
|
|
+{
|
|
+#ifdef HAVE_SYSTEMD
|
|
+ sd_notify (0, "STOPPING=1");
|
|
+#endif
|
|
+}
|
|
diff --git a/dbus/dbus-sysdeps-util-win.c b/dbus/dbus-sysdeps-util-win.c
|
|
index 917dd05e..a5c3bba6 100644
|
|
--- a/dbus/dbus-sysdeps-util-win.c
|
|
+++ b/dbus/dbus-sysdeps-util-win.c
|
|
@@ -1669,3 +1669,8 @@ void
|
|
_dbus_daemon_report_reloaded (void)
|
|
{
|
|
}
|
|
+
|
|
+void
|
|
+_dbus_daemon_report_stopping (void)
|
|
+{
|
|
+}
|
|
diff --git a/dbus/dbus-sysdeps.h b/dbus/dbus-sysdeps.h
|
|
index d8e69589..0d1ff7c4 100644
|
|
--- a/dbus/dbus-sysdeps.h
|
|
+++ b/dbus/dbus-sysdeps.h
|
|
@@ -690,6 +690,7 @@ void _dbus_rlimit_free (DBusRLimit *lim);
|
|
void _dbus_daemon_report_ready (void);
|
|
void _dbus_daemon_report_reloading (void);
|
|
void _dbus_daemon_report_reloaded (void);
|
|
+void _dbus_daemon_report_stopping (void);
|
|
|
|
/** @} */
|
|
|
|
--
|
|
2.27.0
|
|
|