network: Serialize ipv6ra DNR
Serialize DNR servers acquired by ipv6ra option, same as the V4/V6 DNR DHCP options.
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user