X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fdbus-job.c;h=2a33039bdb23a95eb50b65ce5e0e022a96d3603c;hb=c826cda421f0272275342173e16250adcdf6fbd4;hp=667eb04a69907ff2b2bfc1f004a9617b869e3eb1;hpb=2cccbca4fdf1cc6b46da105f6588a6bbdcbbb4df;p=elogind.git diff --git a/src/dbus-job.c b/src/dbus-job.c index 667eb04a6..2a33039bd 100644 --- a/src/dbus-job.c +++ b/src/dbus-job.c @@ -43,7 +43,7 @@ BUS_INTROSPECTABLE_INTERFACE \ "\n" -const char bus_job_interface[] = BUS_JOB_INTERFACE; +const char bus_job_interface[] _introspect_("Job") = BUS_JOB_INTERFACE; #define INVALIDATING_PROPERTIES \ "State\0" \ @@ -97,7 +97,7 @@ static DBusHandlerResult bus_job_message_dispatch(Job *j, DBusConnection *connec if (!(reply = dbus_message_new_method_return(message))) goto oom; - job_free(j); + job_finish_and_invalidate(j, JOB_CANCELED); } else return bus_default_message_handler(j->manager, connection, message, INTROSPECTION, properties); @@ -295,10 +295,10 @@ oom: log_error("Failed to allocate job change signal."); } -void bus_job_send_removed_signal(Job *j, bool success) { +void bus_job_send_removed_signal(Job *j) { char *p = NULL; DBusMessage *m = NULL; - dbus_bool_t b = success; + const char *r; assert(j); @@ -314,10 +314,12 @@ void bus_job_send_removed_signal(Job *j, bool success) { if (!(m = dbus_message_new_signal("/org/freedesktop/systemd1", "org.freedesktop.systemd1.Manager", "JobRemoved"))) goto oom; + r = job_result_to_string(j->result); + if (!dbus_message_append_args(m, DBUS_TYPE_UINT32, &j->id, DBUS_TYPE_OBJECT_PATH, &p, - DBUS_TYPE_BOOLEAN, &b, + DBUS_TYPE_STRING, &r, DBUS_TYPE_INVALID)) goto oom;