From: Ronan Pigott Date: Mon, 22 Jan 2024 21:37:42 +0000 (-0700) Subject: network: Serialize ipv6ra DNR X-Git-Tag: v257-rc1~171^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=65187c46ef6d43df40f84d0a1bbcf5a61f7c1556;p=thirdparty%2Fsystemd.git network: Serialize ipv6ra DNR Serialize DNR servers acquired by ipv6ra option, same as the V4/V6 DNR DHCP options. --- diff --git a/src/network/networkd-state-file.c b/src/network/networkd-state-file.c index e6c4ec64c01..4cbf6ec92ff 100644 --- a/src/network/networkd-state-file.c +++ b/src/network/networkd-state-file.c @@ -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,