X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fdbus-unit.c;h=c9ccac1472f9937a18a376c5f744460092b823cc;hb=6e98720f14dc25ee1d43f951d5c4d79b04ad7506;hp=bb2541800a5c511db5b309e538114f5259eb63ca;hpb=8fe914ec81d9f57bcc083036f528b00119ed2e3b;p=elogind.git diff --git a/src/dbus-unit.c b/src/dbus-unit.c index bb2541800..c9ccac147 100644 --- a/src/dbus-unit.c +++ b/src/dbus-unit.c @@ -48,7 +48,7 @@ int bus_unit_append_names(Manager *m, DBusMessageIter *i, const char *property, } int bus_unit_append_following(Manager *m, DBusMessageIter *i, const char *property, void *data) { - Unit *u = data; + Unit *u = data, *f; const char *d; assert(m); @@ -56,7 +56,8 @@ int bus_unit_append_following(Manager *m, DBusMessageIter *i, const char *proper assert(property); assert(u); - d = u->meta.following ? u->meta.following->meta.id : ""; + f = unit_following(u); + d = f ? f->meta.id : ""; if (!dbus_message_iter_append_basic(i, DBUS_TYPE_STRING, &d)) return -ENOMEM; @@ -433,6 +434,9 @@ void bus_unit_send_change_signal(Unit *u) { u->meta.in_dbus_queue = false; } + if (!u->meta.id) + return; + if (!bus_has_subscriber(u->meta.manager)) { u->meta.sent_dbus_new_signal = true; return; @@ -490,6 +494,9 @@ void bus_unit_send_removed_signal(Unit *u) { if (!u->meta.sent_dbus_new_signal) bus_unit_send_change_signal(u); + if (!u->meta.id) + return; + if (!(p = unit_dbus_path(u))) goto oom;