+
+ } else if (dbus_message_is_signal(message, "org.freedesktop.systemd1.Manager", "JobRemoved")) {
+ uint32_t id;
+ const char *path, *result, *unit;
+
+ if (!dbus_message_get_args(message, &error,
+ DBUS_TYPE_UINT32, &id,
+ DBUS_TYPE_OBJECT_PATH, &path,
+ DBUS_TYPE_STRING, &unit,
+ DBUS_TYPE_STRING, &result,
+ DBUS_TYPE_INVALID))
+ log_error("Failed to parse JobRemoved message: %s", bus_error_message(&error));
+ else if (m->action_job && streq(m->action_job, path)) {
+ log_info("Action is complete, result is '%s'.", result);
+ free(m->action_job);
+ m->action_job = NULL;
+
+ if (m->send_resumed_after_action_job) {
+ _cleanup_dbus_message_unref_ DBusMessage *s = NULL;
+
+ s = dbus_message_new_signal("/org/freedesktop/login1", "org.freedesktop.login1.Manager", "Resumed");
+ if (s)
+ dbus_connection_send(m->bus, s, NULL);
+ }
+ }