]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-dhcp6-client: drop domains_count and ntp_fqdn_count
authorYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 24 Sep 2021 05:05:29 +0000 (14:05 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 29 Sep 2021 06:29:40 +0000 (15:29 +0900)
src/libsystemd-network/dhcp6-lease-internal.h
src/libsystemd-network/dhcp6-option.c
src/libsystemd-network/sd-dhcp6-lease.c
src/libsystemd-network/test-dhcp6-client.c
src/systemd/sd-dhcp6-lease.h

index 41b43ba7a4a27d7f8ad449e2539f769ef33c8017..0b83ddfd641cee2aa9695ccd84690c9a4f500bda 100644 (file)
@@ -28,11 +28,9 @@ struct sd_dhcp6_lease {
         struct in6_addr *dns;
         size_t dns_count;
         char **domains;
-        size_t domains_count;
         struct in6_addr *ntp;
         size_t ntp_count;
         char **ntp_fqdn;
-        size_t ntp_fqdn_count;
         char *fqdn;
 };
 
index a868d0cd792ba12099d7c62c4581f03094d6f315..0276ce693cbf6b31f5f83bedbfca421b676591c3 100644 (file)
@@ -832,7 +832,7 @@ int dhcp6_option_parse_domainname(const uint8_t *optval, size_t optlen, char **r
 
 int dhcp6_option_parse_domainname_list(const uint8_t *optval, size_t optlen, char ***ret) {
         _cleanup_strv_free_ char **names = NULL;
-        int r, count = 0;
+        int r;
 
         assert(optval);
         assert(ret);
@@ -854,12 +854,10 @@ int dhcp6_option_parse_domainname_list(const uint8_t *optval, size_t optlen, cha
                 r = strv_consume(&names, TAKE_PTR(name));
                 if (r < 0)
                         return r;
-
-                count++;
         }
 
         *ret = TAKE_PTR(names);
-        return count;
+        return 0;
 }
 
 static sd_dhcp6_option* dhcp6_option_free(sd_dhcp6_option *i) {
index 1188c62ca15f2dc2c38a56f2339b992f2aef43c8..b69f59c84dae3934cfca8b1dab81cb9484501120 100644 (file)
@@ -203,16 +203,15 @@ int dhcp6_lease_set_dns(sd_dhcp6_lease *lease, const uint8_t *optval, size_t opt
         return dhcp6_option_parse_addresses(optval, optlen, &lease->dns, &lease->dns_count);
 }
 
-int sd_dhcp6_lease_get_dns(sd_dhcp6_lease *lease, const struct in6_addr **addrs) {
+int sd_dhcp6_lease_get_dns(sd_dhcp6_lease *lease, const struct in6_addr **ret) {
         assert_return(lease, -EINVAL);
-        assert_return(addrs, -EINVAL);
+        assert_return(ret, -EINVAL);
 
-        if (lease->dns_count) {
-                *addrs = lease->dns;
-                return lease->dns_count;
-        }
+        if (!lease->dns)
+                return -ENOENT;
 
-        return -ENOENT;
+        *ret = lease->dns;
+        return lease->dns_count;
 }
 
 int dhcp6_lease_set_domains(sd_dhcp6_lease *lease, const uint8_t *optval, size_t optlen) {
@@ -230,21 +229,19 @@ int dhcp6_lease_set_domains(sd_dhcp6_lease *lease, const uint8_t *optval, size_t
                 return r;
 
         strv_free_and_replace(lease->domains, domains);
-        lease->domains_count = r;
 
-        return r;
+        return 0;
 }
 
-int sd_dhcp6_lease_get_domains(sd_dhcp6_lease *lease, char ***domains) {
+int sd_dhcp6_lease_get_domains(sd_dhcp6_lease *lease, char ***ret) {
         assert_return(lease, -EINVAL);
-        assert_return(domains, -EINVAL);
+        assert_return(ret, -EINVAL);
 
-        if (lease->domains_count) {
-                *domains = lease->domains;
-                return lease->domains_count;
-        }
+        if (!lease->domains)
+                return -ENOENT;
 
-        return -ENOENT;
+        *ret = lease->domains;
+        return strv_length(lease->domains);
 }
 
 int dhcp6_lease_set_ntp(sd_dhcp6_lease *lease, const uint8_t *optval, size_t optlen) {
@@ -285,7 +282,6 @@ int dhcp6_lease_set_ntp(sd_dhcp6_lease *lease, const uint8_t *optval, size_t opt
                                 return r;
 
                         strv_free_and_replace(lease->ntp_fqdn, servers);
-                        lease->ntp_fqdn_count = r;
 
                         break;
                 }}
@@ -309,29 +305,26 @@ int dhcp6_lease_set_sntp(sd_dhcp6_lease *lease, const uint8_t *optval, size_t op
         return dhcp6_option_parse_addresses(optval, optlen, &lease->ntp, &lease->ntp_count);
 }
 
-int sd_dhcp6_lease_get_ntp_addrs(sd_dhcp6_lease *lease,
-                                 const struct in6_addr **addrs) {
+int sd_dhcp6_lease_get_ntp_addrs(sd_dhcp6_lease *lease, const struct in6_addr **ret) {
         assert_return(lease, -EINVAL);
-        assert_return(addrs, -EINVAL);
+        assert_return(ret, -EINVAL);
 
-        if (lease->ntp_count) {
-                *addrs = lease->ntp;
-                return lease->ntp_count;
-        }
+        if (!lease->ntp)
+                return -ENOENT;
 
-        return -ENOENT;
+        *ret = lease->ntp;
+        return lease->ntp_count;
 }
 
-int sd_dhcp6_lease_get_ntp_fqdn(sd_dhcp6_lease *lease, char ***ntp_fqdn) {
+int sd_dhcp6_lease_get_ntp_fqdn(sd_dhcp6_lease *lease, char ***ret) {
         assert_return(lease, -EINVAL);
-        assert_return(ntp_fqdn, -EINVAL);
+        assert_return(ret, -EINVAL);
 
-        if (lease->ntp_fqdn_count) {
-                *ntp_fqdn = lease->ntp_fqdn;
-                return lease->ntp_fqdn_count;
-        }
+        if (!lease->ntp_fqdn)
+                return -ENOENT;
 
-        return -ENOENT;
+        *ret = lease->ntp_fqdn;
+        return strv_length(lease->ntp_fqdn);
 }
 
 int dhcp6_lease_set_fqdn(sd_dhcp6_lease *lease, const uint8_t *optval, size_t optlen) {
@@ -353,16 +346,15 @@ int dhcp6_lease_set_fqdn(sd_dhcp6_lease *lease, const uint8_t *optval, size_t op
         return free_and_replace(lease->fqdn, fqdn);
 }
 
-int sd_dhcp6_lease_get_fqdn(sd_dhcp6_lease *lease, const char **fqdn) {
+int sd_dhcp6_lease_get_fqdn(sd_dhcp6_lease *lease, const char **ret) {
         assert_return(lease, -EINVAL);
-        assert_return(fqdn, -EINVAL);
+        assert_return(ret, -EINVAL);
 
-        if (lease->fqdn) {
-                *fqdn = lease->fqdn;
-                return 0;
-        }
+        if (!lease->fqdn)
+                return -ENOENT;
 
-        return -ENOENT;
+        *ret = lease->fqdn;
+        return 0;
 }
 
 static sd_dhcp6_lease *dhcp6_lease_free(sd_dhcp6_lease *lease) {
index d77b39b0d7461759352d00da3860b8e0d3c6a88a..e711e1d9f563223df1c7ff01b3c8af8c5d4a4fd7 100644 (file)
@@ -137,7 +137,7 @@ static int test_parse_domain(sd_event *e) {
         data = (uint8_t []) { 7, 'e', 'x', 'a', 'm', 'p', 'l', 'e', 3, 'c', 'o', 'm', 0,
                               6, 'f', 'o', 'o', 'b', 'a', 'r', 0 };
         r = dhcp6_option_parse_domainname_list(data, 21, &list);
-        assert_se(r == 2);
+        assert_se(r == 0);
         assert_se(list);
         assert_se(streq(list[0], "example.com"));
         assert_se(streq(list[1], "foobar"));
index f77b31acf997597b58ac2f3188fbfd04a8e4d33f..a10901e5cb98fb8c30870bdc2bea8df351aaf131 100644 (file)
@@ -39,11 +39,11 @@ int sd_dhcp6_lease_get_pd(sd_dhcp6_lease *lease, struct in6_addr *prefix,
                           uint32_t *lifetime_preferred,
                           uint32_t *lifetime_valid);
 
-int sd_dhcp6_lease_get_dns(sd_dhcp6_lease *lease, const struct in6_addr **addrs);
-int sd_dhcp6_lease_get_domains(sd_dhcp6_lease *lease, char ***domains);
-int sd_dhcp6_lease_get_ntp_addrs(sd_dhcp6_lease *lease, const struct in6_addr **addrs);
-int sd_dhcp6_lease_get_ntp_fqdn(sd_dhcp6_lease *lease, char ***ntp_fqdn);
-int sd_dhcp6_lease_get_fqdn(sd_dhcp6_lease *lease, const char **fqdn);
+int sd_dhcp6_lease_get_dns(sd_dhcp6_lease *lease, const struct in6_addr **ret);
+int sd_dhcp6_lease_get_domains(sd_dhcp6_lease *lease, char ***ret);
+int sd_dhcp6_lease_get_ntp_addrs(sd_dhcp6_lease *lease, const struct in6_addr **ret);
+int sd_dhcp6_lease_get_ntp_fqdn(sd_dhcp6_lease *lease, char ***ret);
+int sd_dhcp6_lease_get_fqdn(sd_dhcp6_lease *lease, const char **ret);
 
 sd_dhcp6_lease *sd_dhcp6_lease_ref(sd_dhcp6_lease *lease);
 sd_dhcp6_lease *sd_dhcp6_lease_unref(sd_dhcp6_lease *lease);