summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2021-09-24 14:05:29 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2021-09-29 15:29:40 +0900
commitedeee50b3dfccc716ffee23cfc2f2a221ed09339 (patch)
tree1aa3143a40e9ebb891691389d2b01ad7067a5cac /src
parent548c33d7124d7357802122ef29a293a1ffb25a04 (diff)
downloadsystemd-edeee50b3dfccc716ffee23cfc2f2a221ed09339.tar.gz
sd-dhcp6-client: drop domains_count and ntp_fqdn_count
Diffstat (limited to 'src')
-rw-r--r--src/libsystemd-network/dhcp6-lease-internal.h2
-rw-r--r--src/libsystemd-network/dhcp6-option.c6
-rw-r--r--src/libsystemd-network/sd-dhcp6-lease.c70
-rw-r--r--src/libsystemd-network/test-dhcp6-client.c2
-rw-r--r--src/systemd/sd-dhcp6-lease.h10
5 files changed, 39 insertions, 51 deletions
diff --git a/src/libsystemd-network/dhcp6-lease-internal.h b/src/libsystemd-network/dhcp6-lease-internal.h
index 41b43ba7a4..0b83ddfd64 100644
--- a/src/libsystemd-network/dhcp6-lease-internal.h
+++ b/src/libsystemd-network/dhcp6-lease-internal.h
@@ -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;
};
diff --git a/src/libsystemd-network/dhcp6-option.c b/src/libsystemd-network/dhcp6-option.c
index a868d0cd79..0276ce693c 100644
--- a/src/libsystemd-network/dhcp6-option.c
+++ b/src/libsystemd-network/dhcp6-option.c
@@ -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) {
diff --git a/src/libsystemd-network/sd-dhcp6-lease.c b/src/libsystemd-network/sd-dhcp6-lease.c
index 1188c62ca1..b69f59c84d 100644
--- a/src/libsystemd-network/sd-dhcp6-lease.c
+++ b/src/libsystemd-network/sd-dhcp6-lease.c
@@ -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) {
diff --git a/src/libsystemd-network/test-dhcp6-client.c b/src/libsystemd-network/test-dhcp6-client.c
index d77b39b0d7..e711e1d9f5 100644
--- a/src/libsystemd-network/test-dhcp6-client.c
+++ b/src/libsystemd-network/test-dhcp6-client.c
@@ -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"));
diff --git a/src/systemd/sd-dhcp6-lease.h b/src/systemd/sd-dhcp6-lease.h
index f77b31acf9..a10901e5cb 100644
--- a/src/systemd/sd-dhcp6-lease.h
+++ b/src/systemd/sd-dhcp6-lease.h
@@ -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);