chiark / gitweb /
systemctl: add /dev/initctl fallback
[elogind.git] / src / dbus.c
index 81ff5de231cbf72657231d196beb571726ba1f05..a4e350c33b75cbec45a49fd6e008381674e5a528 100644 (file)
@@ -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;
@@ -384,6 +384,8 @@ static DBusHandlerResult api_bus_message_filter(DBusConnection  *connection, DBu
                         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)
@@ -395,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;
 
@@ -434,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;
 
@@ -453,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,
@@ -729,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);
 
@@ -794,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);
 
@@ -809,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);