From: Yu Watanabe Date: Mon, 8 Nov 2021 21:27:21 +0000 (+0900) Subject: network: ndisc: do not read DNSSL option when UseDomains=no X-Git-Tag: v250-rc1~331^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ad0b2df6355fe9c7eae672107bb6cf9ea9263aba;p=thirdparty%2Fsystemd.git network: ndisc: do not read DNSSL option when UseDomains=no Previously, the following confing did not work: ``` [IPv6AcceptRA] UseDNS=no UseDomains=yes ``` --- 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; } }