network: Serialize ipv6ra DNR

Serialize DNR servers acquired by ipv6ra option, same as the V4/V6 DNR
DHCP options.
This commit is contained in:
Ronan Pigott
2024-10-21 09:10:20 -07:00
parent 9c683c0e1f
commit 65187c46ef
+24
View File
@@ -172,6 +172,24 @@ static int link_put_dns(Link *link, OrderedSet **s) {
}
}
if (link_get_use_dnr(link, NETWORK_CONFIG_SOURCE_NDISC)) {
NDiscDNR *a;
SET_FOREACH(a, link->ndisc_dnr) {
struct in_addr_full **dot_servers = NULL;
size_t n = 0;
CLEANUP_ARRAY(dot_servers, n, in_addr_full_array_free);
r = dns_resolvers_to_dot_addrs(&a->resolver, 1, &dot_servers, &n);
if (r < 0)
return r;
r = ordered_set_put_dns_servers(s, link->ifindex, dot_servers, n);
if (r < 0)
return r;
}
}
return 0;
}
@@ -766,6 +784,12 @@ static int link_save(Link *link) {
link->dhcp6_lease,
link_get_use_dnr(link, NETWORK_CONFIG_SOURCE_DHCP6));
if (link_get_use_dnr(link, NETWORK_CONFIG_SOURCE_NDISC)) {
NDiscDNR *dnr;
SET_FOREACH(dnr, link->ndisc_dnr)
serialize_dnr(f, &dnr->resolver, 1, &space);
}
serialize_addresses(f, NULL, &space,
NULL,
link->dhcp_lease,