int dhcp6_lease_get_pd_iaid(sd_dhcp6_lease *lease, be32_t *iaid);
int dhcp6_lease_set_dns(sd_dhcp6_lease *lease, const uint8_t *optval, size_t optlen);
-int dhcp6_lease_set_domains(sd_dhcp6_lease *lease, const uint8_t *optval, size_t optlen);
+int dhcp6_lease_add_domains(sd_dhcp6_lease *lease, const uint8_t *optval, size_t optlen);
int dhcp6_lease_set_ntp(sd_dhcp6_lease *lease, const uint8_t *optval, size_t optlen);
int dhcp6_lease_set_sntp(sd_dhcp6_lease *lease, const uint8_t *optval, size_t optlen) ;
int dhcp6_lease_set_fqdn(sd_dhcp6_lease *lease, const uint8_t *optval, size_t optlen);
break;
case SD_DHCP6_OPTION_DOMAIN_LIST:
- r = dhcp6_lease_set_domains(lease, optval, optlen);
+ r = dhcp6_lease_add_domains(lease, optval, optlen);
if (r < 0)
return r;
return lease->dns_count;
}
-int dhcp6_lease_set_domains(sd_dhcp6_lease *lease, const uint8_t *optval, size_t optlen) {
+int dhcp6_lease_add_domains(sd_dhcp6_lease *lease, const uint8_t *optval, size_t optlen) {
+ _cleanup_strv_free_ char **domains = NULL;
int r;
- char **domains;
assert_return(lease, -EINVAL);
assert_return(optval, -EINVAL);
if (r < 0)
return r;
- strv_free_and_replace(lease->domains, domains);
-
- return 0;
+ return strv_extend_strv(&lease->domains, domains, true);
}
int sd_dhcp6_lease_get_domains(sd_dhcp6_lease *lease, char ***ret) {
case SD_DHCP6_OPTION_DOMAIN_LIST:
assert_se(optlen == 11);
- assert_se(dhcp6_lease_set_domains(lease, optval,
- optlen) >= 0);
+ assert_se(dhcp6_lease_add_domains(lease, optval, optlen) >= 0);
break;
case SD_DHCP6_OPTION_SNTP_SERVERS: