chiark / gitweb /
sd-network: drop get_ifindices
[elogind.git] / src / resolve / resolved-bus.c
index c5e298d21e13834fde0dc3b9e63b7c6b77d38202..5222cc81f17cfab0ba91f9f0cecedb528a6c5dc0 100644 (file)
@@ -98,18 +98,18 @@ static int append_address(sd_bus_message *reply, DnsResourceRecord *rr, int ifin
         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;
 
@@ -145,16 +145,14 @@ static void bus_method_resolve_hostname_complete(DnsQuery *q) {
         }
 
         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;
 
@@ -267,7 +265,7 @@ 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;
@@ -277,12 +275,12 @@ static int bus_method_resolve_hostname(sd_bus *bus, sd_bus_message *message, voi
         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);
@@ -337,10 +335,8 @@ static void bus_method_resolve_address_complete(DnsQuery *q) {
         }
 
         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)
@@ -393,7 +389,7 @@ finish:
 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;
@@ -404,19 +400,18 @@ static int bus_method_resolve_address(sd_bus *bus, sd_bus_message *message, void
         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);
@@ -451,8 +446,8 @@ static int bus_method_resolve_address(sd_bus *bus, sd_bus_message *message, void
 
 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,
 };