chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
units: set HOME=/root when running shells
[elogind.git]
/
src
/
dbus-job.c
diff --git
a/src/dbus-job.c
b/src/dbus-job.c
index 653e11d18c9ed0e9d2f654ce7c1b07fdf799b93c..0f76c7d8433cb061e3f2e53dfedfc65e55c0cee5 100644
(file)
--- a/
src/dbus-job.c
+++ b/
src/dbus-job.c
@@
-1,4
+1,4
@@
-/*-*- Mode: C; c-basic-offset: 8 -*-*/
+/*-*- Mode: C; c-basic-offset: 8
; indent-tabs-mode: nil
-*-*/
/***
This file is part of systemd.
/***
This file is part of systemd.
@@
-28,7
+28,6
@@
#define BUS_JOB_INTERFACE \
" <interface name=\"org.freedesktop.systemd1.Job\">\n" \
" <method name=\"Cancel\"/>\n" \
#define BUS_JOB_INTERFACE \
" <interface name=\"org.freedesktop.systemd1.Job\">\n" \
" <method name=\"Cancel\"/>\n" \
- " <signal name=\"Changed\"/>\n" \
" <property name=\"Id\" type=\"u\" access=\"read\"/>\n" \
" <property name=\"Unit\" type=\"(so)\" access=\"read\"/>\n" \
" <property name=\"JobType\" type=\"s\" access=\"read\"/>\n" \
" <property name=\"Id\" type=\"u\" access=\"read\"/>\n" \
" <property name=\"Unit\" type=\"(so)\" access=\"read\"/>\n" \
" <property name=\"JobType\" type=\"s\" access=\"read\"/>\n" \
@@
-40,11
+39,16
@@
"<node>\n" \
BUS_JOB_INTERFACE \
BUS_PROPERTIES_INTERFACE \
"<node>\n" \
BUS_JOB_INTERFACE \
BUS_PROPERTIES_INTERFACE \
+ BUS_PEER_INTERFACE \
BUS_INTROSPECTABLE_INTERFACE \
"</node>\n"
const char bus_job_interface[] = BUS_JOB_INTERFACE;
BUS_INTROSPECTABLE_INTERFACE \
"</node>\n"
const char bus_job_interface[] = BUS_JOB_INTERFACE;
+#define INVALIDATING_PROPERTIES \
+ "State\0" \
+ "\0" \
+
static DEFINE_BUS_PROPERTY_APPEND_ENUM(bus_job_append_state, job_state, JobState);
static DEFINE_BUS_PROPERTY_APPEND_ENUM(bus_job_append_type, job_type, JobType);
static DEFINE_BUS_PROPERTY_APPEND_ENUM(bus_job_append_state, job_state, JobState);
static DEFINE_BUS_PROPERTY_APPEND_ENUM(bus_job_append_type, job_type, JobType);
@@
-172,10
+176,11
@@
void bus_job_send_change_signal(Job *j) {
DBusMessage *m = NULL;
assert(j);
DBusMessage *m = NULL;
assert(j);
- assert(j->in_dbus_queue);
- LIST_REMOVE(Job, dbus_queue, j->manager->dbus_job_queue, j);
- j->in_dbus_queue = false;
+ if (j->in_dbus_queue) {
+ LIST_REMOVE(Job, dbus_queue, j->manager->dbus_job_queue, j);
+ j->in_dbus_queue = false;
+ }
if (!bus_has_subscriber(j->manager) && !j->bus_client) {
j->sent_dbus_new_signal = true;
if (!bus_has_subscriber(j->manager) && !j->bus_client) {
j->sent_dbus_new_signal = true;
@@
-186,10
+191,11
@@
void bus_job_send_change_signal(Job *j) {
goto oom;
if (j->sent_dbus_new_signal) {
goto oom;
if (j->sent_dbus_new_signal) {
- /* Send a
change
signal */
+ /* Send a
properties changed
signal */
- if (!(m =
dbus_message_new_signal(p, "org.freedesktop.systemd1.Job", "Changed"
)))
+ if (!(m =
bus_properties_changed_new(p, "org.freedesktop.systemd1.Job", INVALIDATING_PROPERTIES
)))
goto oom;
goto oom;
+
} else {
/* Send a new signal */
} else {
/* Send a new signal */