summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKay Sievers <kay@vrfy.org>2013-12-11 05:30:46 +0100
committerKay Sievers <kay@vrfy.org>2013-12-11 05:38:25 +0100
commite599ba01f564161966b3b8c93cc229daf847e807 (patch)
treee743d21feeebb2d1018f045a6e2509f6e578de98
parentc099716487df4a4f5394e57e7ca14da1d358166a (diff)
bus: kdbus - skip only STARTER and IN_QUEUE names for NameOwnerChanged
-rw-r--r--src/libsystemd-bus/bus-kernel.c2
-rw-r--r--src/libsystemd-bus/kdbus.h15
2 files changed, 8 insertions, 9 deletions
diff --git a/src/libsystemd-bus/bus-kernel.c b/src/libsystemd-bus/bus-kernel.c
index f66cf04e16..92acbeec5e 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 d53c269573..ccc65cb15a 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.