assert(reply);
assert(rr);
- r = sd_bus_message_open_container(reply, 'r', "yayi");
+ r = sd_bus_message_open_container(reply, 'r', "iayi");
if (r < 0)
return r;
if (rr->key.type == DNS_TYPE_A) {
- r = sd_bus_message_append(reply, "y", AF_INET);
+ r = sd_bus_message_append(reply, "i", AF_INET);
if (r < 0)
return r;
r = sd_bus_message_append_array(reply, 'y', &rr->a.in_addr, sizeof(struct in_addr));
} else {
- r = sd_bus_message_append(reply, "y", AF_INET6);
+ r = sd_bus_message_append(reply, "i", AF_INET6);
if (r < 0)
return r;
}
n = dns_query_get_rrs(q, &rrs);
- if (n < 0) {
- r = n;
+ if (n < 0)
goto parse_fail;
- }
r = sd_bus_message_new_method_return(q->request, &reply);
if (r < 0)
goto finish;
- r = sd_bus_message_open_container(reply, 'a', "(yayi)");
+ r = sd_bus_message_open_container(reply, 'a', "(iayi)");
if (r < 0)
goto finish;
static int bus_method_resolve_hostname(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) {
Manager *m = userdata;
const char *hostname;
- uint8_t family;
+ int family;
DnsResourceKey keys[2];
DnsQuery *q;
unsigned n = 0;
assert(message);
assert(m);
- r = sd_bus_message_read(message, "sy", &hostname, &family);
+ r = sd_bus_message_read(message, "si", &hostname, &family);
if (r < 0)
return r;
if (!IN_SET(family, AF_INET, AF_INET6, AF_UNSPEC))
- return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unknown address family %u", family);
+ return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unknown address family %i", family);
if (!hostname_is_valid(hostname))
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid hostname '%s'", hostname);
}
n = dns_query_get_rrs(q, &rrs);
- if (n < 0) {
- r = n;
+ if (n < 0)
goto parse_fail;
- }
r = sd_bus_message_new_method_return(q->request, &reply);
if (r < 0)
static int bus_method_resolve_address(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) {
_cleanup_(dns_resource_key_free) DnsResourceKey key = {};
Manager *m = userdata;
- uint8_t family;
+ int family;
const void *d;
int ifindex;
DnsQuery *q;
assert(message);
assert(m);
- r = sd_bus_message_read(message, "y", &family);
+ r = sd_bus_message_read(message, "i", &family);
if (r < 0)
return r;
if (!IN_SET(family, AF_INET, AF_INET6))
- return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unknown address family %u", family);
+ return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unknown address family %i", family);
r = sd_bus_message_read_array(message, 'y', &d, &sz);
if (r < 0)
return r;
- if ((family == AF_INET && sz != sizeof(struct in_addr)) ||
- (family == AF_INET6 && sz != sizeof(struct in6_addr)))
+ if (sz != FAMILY_ADDRESS_SIZE(family))
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid address size");
r = sd_bus_message_read(message, "i", &ifindex);
static const sd_bus_vtable resolve_vtable[] = {
SD_BUS_VTABLE_START(0),
- SD_BUS_METHOD("ResolveHostname", "sy", "a(yayi)s", bus_method_resolve_hostname, SD_BUS_VTABLE_UNPRIVILEGED),
- SD_BUS_METHOD("ResolveAddress", "yayi", "as", bus_method_resolve_address, SD_BUS_VTABLE_UNPRIVILEGED),
+ SD_BUS_METHOD("ResolveHostname", "si", "a(iayi)s", bus_method_resolve_hostname, SD_BUS_VTABLE_UNPRIVILEGED),
+ SD_BUS_METHOD("ResolveAddress", "iayi", "as", bus_method_resolve_address, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_VTABLE_END,
};