libsystemd-bus: copy over kdbus provided 128-bit bus id

kdbus now copies the bus unique id back to userspace in the hello
ioctl(). Use these bytes to set the server id of the sd_bus.
This commit is contained in:
Daniel Mack 2013-11-29 16:24:40 +01:00
parent d21a7bb1a9
commit c58dea190c
2 changed files with 5 additions and 0 deletions

View file

@ -357,6 +357,9 @@ int bus_kernel_take_fd(sd_bus *b) {
b->bus_client = true;
b->can_fds = !!(hello.conn_flags & KDBUS_HELLO_ACCEPT_FD);
/* the kernel told us the UUID of the underlying bus */
memcpy(b->server_id.bytes, hello.id128, sizeof(b->server_id.bytes));
r = bus_start_running(b);
if (r < 0)
return r;

View file

@ -276,6 +276,8 @@ struct kdbus_cmd_hello {
__u64 bloom_size; /* The bloom filter size chosen by the
* bus owner */
__u64 pool_size; /* maximum size of pool buffer */
__u8 id128[16]; /* the unique id of the bus */
struct kdbus_item items[0];
};