chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vconsole: set keyboard mapping and font settings on Arch
[elogind.git]
/
src
/
dbus-job.c
diff --git
a/src/dbus-job.c
b/src/dbus-job.c
index 0956dcff6f4c6cdb1d78d6b6ae51de63dcbd2e03..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);
@@
-123,11
+127,6
@@
static DBusHandlerResult bus_job_message_handler(DBusConnection *connection, DBu
assert(message);
assert(m);
assert(message);
assert(m);
- log_debug("Got D-Bus request: %s.%s() on %s",
- dbus_message_get_interface(message),
- dbus_message_get_member(message),
- dbus_message_get_path(message));
-
if ((r = manager_get_job_from_dbus_path(m, dbus_message_get_path(message), &j)) < 0) {
if (r == -ENOMEM)
if ((r = manager_get_job_from_dbus_path(m, dbus_message_get_path(message), &j)) < 0) {
if (r == -ENOMEM)
@@
-177,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;
@@
-191,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 */