From e599ba01f564161966b3b8c93cc229daf847e807 Mon Sep 17 00:00:00 2001 From: Kay Sievers Date: Wed, 11 Dec 2013 05:30:46 +0100 Subject: [PATCH] bus: kdbus - skip only STARTER and IN_QUEUE names for NameOwnerChanged --- src/libsystemd-bus/bus-kernel.c | 2 +- src/libsystemd-bus/kdbus.h | 15 +++++++-------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/libsystemd-bus/bus-kernel.c b/src/libsystemd-bus/bus-kernel.c index f66cf04..92acbee 100644 --- a/src/libsystemd-bus/bus-kernel.c +++ b/src/libsystemd-bus/bus-kernel.c @@ -514,7 +514,7 @@ static int translate_name_change(sd_bus *bus, struct kdbus_msg *k, struct kdbus_ assert(k); assert(d); - if (d->name_change.flags != 0) + if (d->name_change.flags & (KDBUS_NAME_IN_QUEUE|KDBUS_NAME_STARTER)) return 0; if (d->type == KDBUS_ITEM_NAME_ADD) diff --git a/src/libsystemd-bus/kdbus.h b/src/libsystemd-bus/kdbus.h index d53c269..ccc65cb 100644 --- a/src/libsystemd-bus/kdbus.h +++ b/src/libsystemd-bus/kdbus.h @@ -527,18 +527,17 @@ struct kdbus_cmd_ns_make { /** * enum kdbus_name_flags - properties of a well-known name * @KDBUS_NAME_REPLACE_EXISTING: Try to replace name of other connections - * @KDBUS_NAME_QUEUE: Name should be queued if busy * @KDBUS_NAME_ALLOW_REPLACEMENT: Allow the replacement of the name + * @KDBUS_NAME_QUEUE: Name should be queued if busy * @KDBUS_NAME_IN_QUEUE: Name is queued + * @KDBUS_NAME_STARTER: Name is owned by a starter connection */ enum kdbus_name_flags { - /* userspace → kernel */ KDBUS_NAME_REPLACE_EXISTING = 1 << 0, - KDBUS_NAME_QUEUE = 1 << 1, - KDBUS_NAME_ALLOW_REPLACEMENT = 1 << 2, - - /* kernel → userspace */ - KDBUS_NAME_IN_QUEUE = 1 << 16, + KDBUS_NAME_ALLOW_REPLACEMENT = 1 << 1, + KDBUS_NAME_QUEUE = 1 << 2, + KDBUS_NAME_IN_QUEUE = 1 << 3, + KDBUS_NAME_STARTER = 1 << 4, }; /** @@ -609,7 +608,7 @@ struct kdbus_name_list { * @name is required. kdbus will look up the name to determine * the ID in this case. * @offset: Returned offset in the caller's pool buffer where the - * kdbus_name_info struct result is stored. The user must + * kdbus_conn_info struct result is stored. The user must * use KDBUS_CMD_FREE to free the allocated memory. * @name: The optional well-known name to look up. Only needed in * case @id is zero. -- 2.7.4