X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fdbus.c;h=a4e350c33b75cbec45a49fd6e008381674e5a528;hp=7e6d65e2c8b5bce680ce86b5e8d5dd9ab9ba37e3;hb=eb22ac37f3e07b9c49a3f8fdc8cc02631faabcb4;hpb=46018844bca3abf16ac38bdf0af8e48ee95d03f2 diff --git a/src/dbus.c b/src/dbus.c index 7e6d65e2c..a4e350c33 100644 --- 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)); } -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; @@ -397,6 +397,8 @@ static DBusHandlerResult api_bus_message_filter(DBusConnection *connection, DBu 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; @@ -436,7 +438,7 @@ oom: 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; @@ -455,7 +457,7 @@ static DBusHandlerResult system_bus_message_filter(DBusConnection *connection, 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, @@ -731,6 +733,7 @@ int bus_init_system(Manager *m) { dbus_bus_add_match(m->system_bus, "type='signal'," "interface='org.freedesktop.systemd1.Agent'," + "member='Released'," "path='/org/freedesktop/systemd1/agent'", &error); @@ -796,6 +799,7 @@ int bus_init_api(Manager *m) { "type='signal'," "sender='"DBUS_SERVICE_DBUS"'," "interface='"DBUS_INTERFACE_DBUS"'," + "member='NameOwnerChanged'," "path='"DBUS_PATH_DBUS"'", &error); @@ -811,6 +815,7 @@ int bus_init_api(Manager *m) { "type='signal'," "sender='"DBUS_SERVICE_DBUS"'," "interface='org.freedesktop.systemd1.Activator'," + "member='ActivationRequest'," "path='"DBUS_PATH_DBUS"'", &error);