diff --git a/src/network/networkd-ndisc.c b/src/network/networkd-ndisc.c index 25322bb7aa..21b5d0a0c0 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; } }