}
static int bus_request_name_kernel(sd_bus *bus, const char *name, uint64_t flags) {
- struct kdbus_cmd_name *n;
+ struct kdbus_cmd *n;
size_t size, l;
int r;
assert(name);
l = strlen(name) + 1;
- size = offsetof(struct kdbus_cmd_name, items) + KDBUS_ITEM_SIZE(l);
+ size = offsetof(struct kdbus_cmd, items) + KDBUS_ITEM_SIZE(l);
n = alloca0_align(size, 8);
n->size = size;
n->flags = request_name_flags_to_kdbus(flags);
}
static int bus_release_name_kernel(sd_bus *bus, const char *name) {
- struct kdbus_cmd_name *n;
+ struct kdbus_cmd *n;
size_t size, l;
int r;
assert(name);
l = strlen(name) + 1;
- size = offsetof(struct kdbus_cmd_name, items) + KDBUS_ITEM_SIZE(l);
+ size = offsetof(struct kdbus_cmd, items) + KDBUS_ITEM_SIZE(l);
n = alloca0_align(size, 8);
n->size = size;
}
static int kernel_get_list(sd_bus *bus, uint64_t flags, char ***x) {
- struct kdbus_cmd_name_list cmd = {};
- struct kdbus_name_list *name_list;
- struct kdbus_name_info *name;
+ struct kdbus_cmd_list cmd = {};
+ struct kdbus_info *name_list, *name;
uint64_t previous_id = 0;
int r;
cmd.size = sizeof(cmd);
cmd.flags = flags;
- r = ioctl(bus->input_fd, KDBUS_CMD_NAME_LIST, &cmd);
+ r = ioctl(bus->input_fd, KDBUS_CMD_LIST, &cmd);
if (r < 0)
return -errno;
- name_list = (struct kdbus_name_list *) ((uint8_t *) bus->kdbus_buffer + cmd.offset);
+ name_list = (struct kdbus_info *) ((uint8_t *) bus->kdbus_buffer + cmd.offset);
- KDBUS_ITEM_FOREACH(name, name_list, names) {
+ KDBUS_FOREACH(name, name_list, cmd.list_size) {
struct kdbus_item *item;
const char *entry_name = NULL;
- if ((flags & KDBUS_NAME_LIST_UNIQUE) && name->owner_id != previous_id) {
+ if ((flags & KDBUS_LIST_UNIQUE) && name->id != previous_id) {
char *n;
- if (asprintf(&n, ":1.%llu", (unsigned long long) name->owner_id) < 0) {
+ if (asprintf(&n, ":1.%llu", (unsigned long long) name->id) < 0) {
r = -ENOMEM;
goto fail;
}
if (r < 0)
goto fail;
- previous_id = name->owner_id;
+ previous_id = name->id;
}
KDBUS_ITEM_FOREACH(item, name, items)
int r;
if (acquired) {
- r = kernel_get_list(bus, KDBUS_NAME_LIST_UNIQUE | KDBUS_NAME_LIST_NAMES, &x);
+ r = kernel_get_list(bus, KDBUS_LIST_UNIQUE | KDBUS_LIST_NAMES, &x);
if (r < 0)
return r;
}
if (activatable) {
- r = kernel_get_list(bus, KDBUS_NAME_LIST_ACTIVATORS, &y);
+ r = kernel_get_list(bus, KDBUS_LIST_ACTIVATORS, &y);
if (r < 0)
return r;
if (c->type - BUS_MATCH_ARG < 3)
name_change_arg[c->type - BUS_MATCH_ARG] = c->value_str;
- snprintf(buf, sizeof(buf), "arg%u", c->type - BUS_MATCH_ARG);
+ xsprintf(buf, "arg%i", c->type - BUS_MATCH_ARG);
bloom_add_pair(bloom, bus->bloom_size, bus->bloom_n_hash, buf, c->value_str);
using_bloom = true;
break;
case BUS_MATCH_ARG_PATH...BUS_MATCH_ARG_PATH_LAST: {
char buf[sizeof("arg")-1 + 2 + sizeof("-slash-prefix")];
- snprintf(buf, sizeof(buf), "arg%u-slash-prefix", c->type - BUS_MATCH_ARG_PATH);
+ xsprintf(buf, "arg%i-slash-prefix", c->type - BUS_MATCH_ARG_PATH);
bloom_add_pair(bloom, bus->bloom_size, bus->bloom_n_hash, buf, c->value_str);
using_bloom = true;
break;
case BUS_MATCH_ARG_NAMESPACE...BUS_MATCH_ARG_NAMESPACE_LAST: {
char buf[sizeof("arg")-1 + 2 + sizeof("-dot-prefix")];
- snprintf(buf, sizeof(buf), "arg%u-dot-prefix", c->type - BUS_MATCH_ARG_NAMESPACE);
+ xsprintf(buf, "arg%i-dot-prefix", c->type - BUS_MATCH_ARG_NAMESPACE);
bloom_add_pair(bloom, bus->bloom_size, bus->bloom_n_hash, buf, c->value_str);
using_bloom = true;
break;
#define internal_match(bus, m) \
((bus)->hello_flags & KDBUS_HELLO_MONITOR \
- ? (isempty(m) ? "eavesdrop='true'" : strappenda((m), ",eavesdrop='true'")) \
+ ? (isempty(m) ? "eavesdrop='true'" : strjoina((m), ",eavesdrop='true'")) \
: (m))
static int bus_add_match_internal_dbus1(