From ad0b2df6355fe9c7eae672107bb6cf9ea9263aba Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Tue, 9 Nov 2021 06:27:21 +0900 Subject: [PATCH] network: ndisc: do not read DNSSL option when UseDomains=no Previously, the following confing did not work: ``` [IPv6AcceptRA] UseDNS=no UseDomains=yes ``` --- src/network/networkd-ndisc.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/network/networkd-ndisc.c b/src/network/networkd-ndisc.c index 25322bb7aa3..21b5d0a0c06 100644 --- a/src/network/networkd-ndisc.c +++ b/src/network/networkd-ndisc.c @@ -677,8 +677,12 @@ static int ndisc_router_process_rdnss(Link *link, sd_ndisc_router *rt) { int n, r; assert(link); + assert(link->network); assert(rt); + if (!link->network->ipv6_accept_ra_use_dns) + return 0; + r = sd_ndisc_router_get_address(rt, &router); if (r < 0) return log_link_error_errno(link, r, "Failed to get router address from RA: %m"); @@ -768,8 +772,12 @@ static int ndisc_router_process_dnssl(Link *link, sd_ndisc_router *rt) { int r; assert(link); + assert(link->network); assert(rt); + if (link->network->ipv6_accept_ra_use_domains == DHCP_USE_DOMAINS_NO) + return 0; + r = sd_ndisc_router_get_address(rt, &router); if (r < 0) return log_link_error_errno(link, r, "Failed to get router address from RA: %m"); @@ -866,19 +874,15 @@ static int ndisc_router_process_options(Link *link, sd_ndisc_router *rt) { break; case SD_NDISC_OPTION_RDNSS: - if (link->network->ipv6_accept_ra_use_dns) { - r = ndisc_router_process_rdnss(link, rt); - if (r < 0) - return r; - } + r = ndisc_router_process_rdnss(link, rt); + if (r < 0) + return r; break; case SD_NDISC_OPTION_DNSSL: - if (link->network->ipv6_accept_ra_use_dns) { - r = ndisc_router_process_dnssl(link, rt); - if (r < 0) - return r; - } + r = ndisc_router_process_dnssl(link, rt); + if (r < 0) + return r; break; } } -- 2.47.3