X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fbus-proxyd%2Fdriver.c;h=bc2c0c86f33b5c22d7a2d098aed826b4ea5018aa;hb=93a1e66efd4b0f4cda29c467d20d0f7510c0b3a8;hp=6a72d181fe833398848a4f156bdd14b2f175cedd;hpb=fed6df828d86c053a96d5b50af75c53eb8dd4666;p=elogind.git diff --git a/src/bus-proxyd/driver.c b/src/bus-proxyd/driver.c index 6a72d181f..bc2c0c86f 100644 --- a/src/bus-proxyd/driver.c +++ b/src/bus-proxyd/driver.c @@ -305,7 +305,7 @@ int bus_proxy_process_driver(sd_bus *a, sd_bus *b, sd_bus_message *m, SharedPoli /* Let's sort the names list to make it stable */ strv_sort(names); - return synthetic_reply_return_strv(m, names); + return synthetic_reply_method_return_strv(m, names); } else if (sd_bus_message_is_method_call(m, "org.freedesktop.DBus", "ListNames")) { _cleanup_strv_free_ char **names = NULL; @@ -324,12 +324,14 @@ int bus_proxy_process_driver(sd_bus *a, sd_bus *b, sd_bus_message *m, SharedPoli /* Let's sort the names list to make it stable */ strv_sort(names); - return synthetic_reply_return_strv(m, names); + return synthetic_reply_method_return_strv(m, names); } else if (sd_bus_message_is_method_call(m, "org.freedesktop.DBus", "ListQueuedOwners")) { - struct kdbus_cmd_name_list cmd = {}; - struct kdbus_name_list *name_list; - struct kdbus_name_info *name; + struct kdbus_cmd_list cmd = { + .flags = KDBUS_LIST_QUEUED, + .size = sizeof(cmd), + }; + struct kdbus_info *name_list, *name; _cleanup_strv_free_ char **owners = NULL; _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; char *arg0; @@ -350,14 +352,13 @@ int bus_proxy_process_driver(sd_bus *a, sd_bus *b, sd_bus_message *m, SharedPoli if (r < 0) return synthetic_reply_method_errno(m, r, NULL); - cmd.flags = KDBUS_NAME_LIST_QUEUED; - r = ioctl(a->input_fd, KDBUS_CMD_NAME_LIST, &cmd); + r = ioctl(a->input_fd, KDBUS_CMD_LIST, &cmd); if (r < 0) return synthetic_reply_method_errno(m, -errno, NULL); - name_list = (struct kdbus_name_list *) ((uint8_t *) a->kdbus_buffer + cmd.offset); + name_list = (struct kdbus_info *) ((uint8_t *) a->kdbus_buffer + cmd.offset); - KDBUS_ITEM_FOREACH(name, name_list, names) { + KDBUS_FOREACH(name, name_list, cmd.list_size) { const char *entry_name = NULL; struct kdbus_item *item; char *n; @@ -369,7 +370,7 @@ int bus_proxy_process_driver(sd_bus *a, sd_bus *b, sd_bus_message *m, SharedPoli if (!streq_ptr(entry_name, arg0)) continue; - if (asprintf(&n, ":1.%llu", (unsigned long long) name->owner_id) < 0) { + if (asprintf(&n, ":1.%llu", (unsigned long long) name->id) < 0) { err = -ENOMEM; break; } @@ -388,7 +389,7 @@ int bus_proxy_process_driver(sd_bus *a, sd_bus *b, sd_bus_message *m, SharedPoli if (err < 0) return synthetic_reply_method_errno(m, err, NULL); - return synthetic_reply_return_strv(m, owners); + return synthetic_reply_method_return_strv(m, owners); } else if (sd_bus_message_is_method_call(m, "org.freedesktop.DBus", "NameHasOwner")) { const char *name;