1
0
mirror of https://github.com/systemd/systemd.git synced 2025-02-11 21:57:53 +03:00

network: ndisc: do not read DNSSL option when UseDomains=no

Previously, the following confing did not work:
```
[IPv6AcceptRA]
UseDNS=no
UseDomains=yes
```
This commit is contained in:
Yu Watanabe 2021-11-09 06:27:21 +09:00
parent fbdda4bb53
commit ad0b2df635

View File

@ -677,8 +677,12 @@ static int ndisc_router_process_rdnss(Link *link, sd_ndisc_router *rt) {
int n, r; int n, r;
assert(link); assert(link);
assert(link->network);
assert(rt); assert(rt);
if (!link->network->ipv6_accept_ra_use_dns)
return 0;
r = sd_ndisc_router_get_address(rt, &router); r = sd_ndisc_router_get_address(rt, &router);
if (r < 0) if (r < 0)
return log_link_error_errno(link, r, "Failed to get router address from RA: %m"); 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; int r;
assert(link); assert(link);
assert(link->network);
assert(rt); assert(rt);
if (link->network->ipv6_accept_ra_use_domains == DHCP_USE_DOMAINS_NO)
return 0;
r = sd_ndisc_router_get_address(rt, &router); r = sd_ndisc_router_get_address(rt, &router);
if (r < 0) if (r < 0)
return log_link_error_errno(link, r, "Failed to get router address from RA: %m"); 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; break;
case SD_NDISC_OPTION_RDNSS: case SD_NDISC_OPTION_RDNSS:
if (link->network->ipv6_accept_ra_use_dns) { r = ndisc_router_process_rdnss(link, rt);
r = ndisc_router_process_rdnss(link, rt); if (r < 0)
if (r < 0) return r;
return r;
}
break; break;
case SD_NDISC_OPTION_DNSSL: case SD_NDISC_OPTION_DNSSL:
if (link->network->ipv6_accept_ra_use_dns) { r = ndisc_router_process_dnssl(link, rt);
r = ndisc_router_process_dnssl(link, rt); if (r < 0)
if (r < 0) return r;
return r;
}
break; break;
} }
} }