chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
systemctl: warn users via wall that the system goes down
[elogind.git]
/
src
/
dbus.c
diff --git
a/src/dbus.c
b/src/dbus.c
index 81ff5de231cbf72657231d196beb571726ba1f05..a4e350c33b75cbec45a49fd6e008381674e5a528 100644
(file)
--- a/
src/dbus.c
+++ b/
src/dbus.c
@@
-332,7
+332,7
@@
static void bus_toggle_timeout(DBusTimeout *timeout, void *data) {
log_error("Failed to rearm timer: %s", strerror(-r));
}
log_error("Failed to rearm timer: %s", strerror(-r));
}
-static DBusHandlerResult api_bus_message_filter(DBusConnection
*connection, DBusMessage
*message, void *data) {
+static DBusHandlerResult api_bus_message_filter(DBusConnection
*connection, DBusMessage
*message, void *data) {
Manager *m = data;
DBusError error;
DBusMessage *reply = NULL;
Manager *m = data;
DBusError error;
DBusMessage *reply = NULL;
@@
-384,6
+384,8
@@
static DBusHandlerResult api_bus_message_filter(DBusConnection *connection, DBu
int r;
Unit *u;
int r;
Unit *u;
+ log_debug("Got D-Bus activation request for %s", name);
+
r = manager_load_unit(m, name, NULL, &u);
if (r >= 0 && u->meta.only_by_dependency)
r = manager_load_unit(m, name, NULL, &u);
if (r >= 0 && u->meta.only_by_dependency)
@@
-395,6
+397,8
@@
static DBusHandlerResult api_bus_message_filter(DBusConnection *connection, DBu
if (r < 0) {
const char *id, *text;
if (r < 0) {
const char *id, *text;
+ log_warning("D-Bus activation failed for %s: %s", name, strerror(-r));
+
if (!(reply = dbus_message_new_signal("/org/freedesktop/systemd1", "org.freedesktop.systemd1.Activator", "ActivationFailure")))
goto oom;
if (!(reply = dbus_message_new_signal("/org/freedesktop/systemd1", "org.freedesktop.systemd1.Activator", "ActivationFailure")))
goto oom;
@@
-434,7
+438,7
@@
oom:
return DBUS_HANDLER_RESULT_NEED_MEMORY;
}
return DBUS_HANDLER_RESULT_NEED_MEMORY;
}
-static DBusHandlerResult system_bus_message_filter(DBusConnection
*connection, DBusMessage
*message, void *data) {
+static DBusHandlerResult system_bus_message_filter(DBusConnection
*connection, DBusMessage
*message, void *data) {
Manager *m = data;
DBusError error;
Manager *m = data;
DBusError error;
@@
-453,7
+457,7
@@
static DBusHandlerResult system_bus_message_filter(DBusConnection *connection,
log_error("Warning! System D-Bus connection terminated.");
bus_done_system(m);
log_error("Warning! System D-Bus connection terminated.");
bus_done_system(m);
- } if (dbus_message_is_signal(message, "org.freedesktop.systemd1.Agent", "Released")) {
+ }
else
if (dbus_message_is_signal(message, "org.freedesktop.systemd1.Agent", "Released")) {
const char *cgroup;
if (!dbus_message_get_args(message, &error,
const char *cgroup;
if (!dbus_message_get_args(message, &error,
@@
-729,6
+733,7
@@
int bus_init_system(Manager *m) {
dbus_bus_add_match(m->system_bus,
"type='signal',"
"interface='org.freedesktop.systemd1.Agent',"
dbus_bus_add_match(m->system_bus,
"type='signal',"
"interface='org.freedesktop.systemd1.Agent',"
+ "member='Released',"
"path='/org/freedesktop/systemd1/agent'",
&error);
"path='/org/freedesktop/systemd1/agent'",
&error);
@@
-794,6
+799,7
@@
int bus_init_api(Manager *m) {
"type='signal',"
"sender='"DBUS_SERVICE_DBUS"',"
"interface='"DBUS_INTERFACE_DBUS"',"
"type='signal',"
"sender='"DBUS_SERVICE_DBUS"',"
"interface='"DBUS_INTERFACE_DBUS"',"
+ "member='NameOwnerChanged',"
"path='"DBUS_PATH_DBUS"'",
&error);
"path='"DBUS_PATH_DBUS"'",
&error);
@@
-809,6
+815,7
@@
int bus_init_api(Manager *m) {
"type='signal',"
"sender='"DBUS_SERVICE_DBUS"',"
"interface='org.freedesktop.systemd1.Activator',"
"type='signal',"
"sender='"DBUS_SERVICE_DBUS"',"
"interface='org.freedesktop.systemd1.Activator',"
+ "member='ActivationRequest',"
"path='"DBUS_PATH_DBUS"'",
&error);
"path='"DBUS_PATH_DBUS"'",
&error);