From: David Herrmann Date: Mon, 24 Aug 2015 11:41:03 +0000 (+0200) Subject: sd-bus: don't list activators as proper peers X-Git-Tag: v226.4~1^2~125 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=4907657af95c2d65ffa1d54cda2b7fbcb4741c55;p=elogind.git sd-bus: don't list activators as proper peers If a connection passed KDBUS_HELLO_ACTIVATOR, it cannot do I/O on the bus. Hence, we should not treat it as proper peer. To actually query it, you have to explicitly ask for activators. This makes kdbus in-line with what dbus-daemon does. --- diff --git a/src/libelogind/sd-bus/bus-control.c b/src/libelogind/sd-bus/bus-control.c index 3cdce6600..feed51cd9 100644 --- a/src/libelogind/sd-bus/bus-control.c +++ b/src/libelogind/sd-bus/bus-control.c @@ -258,7 +258,7 @@ static int kernel_get_list(sd_bus *bus, uint64_t flags, char ***x) { KDBUS_FOREACH(name, name_list, cmd.list_size) { struct kdbus_item *item; - if ((flags & KDBUS_LIST_UNIQUE) && name->id != previous_id) { + if ((flags & KDBUS_LIST_UNIQUE) && name->id != previous_id && !(name->flags & KDBUS_HELLO_ACTIVATOR)) { char *n; if (asprintf(&n, ":1.%llu", (unsigned long long) name->id) < 0) {