network: move link_radv_enabled()

This commit is contained in:
Yu Watanabe 2020-10-02 16:39:45 +09:00
parent 5ae0fb7fb7
commit 086b8853d1
2 changed files with 16 additions and 15 deletions

View file

@ -135,15 +135,6 @@ static bool link_ipv6_enabled(Link *link) {
return false; return false;
} }
static bool link_radv_enabled(Link *link) {
assert(link);
if (!link_ipv6ll_enabled(link))
return false;
return link->network->router_prefix_delegation != RADV_PREFIX_DELEGATION_NONE;
}
bool link_ip_forward_enabled(Link *link, int family) { bool link_ip_forward_enabled(Link *link, int family) {
assert(link); assert(link);
assert(IN_SET(family, AF_INET, AF_INET6)); assert(IN_SET(family, AF_INET, AF_INET6));
@ -1185,7 +1176,7 @@ static int link_acquire_ipv6_conf(Link *link) {
return log_link_warning_errno(link, r, "Could not start IPv6 Router Discovery: %m"); return log_link_warning_errno(link, r, "Could not start IPv6 Router Discovery: %m");
} }
if (link_radv_enabled(link)) { if (link->radv) {
assert(link->radv); assert(link->radv);
assert(in_addr_is_link_local(AF_INET6, (const union in_addr_union*)&link->ipv6ll_address) > 0); assert(in_addr_is_link_local(AF_INET6, (const union in_addr_union*)&link->ipv6ll_address) > 0);
@ -2406,11 +2397,9 @@ static int link_configure(Link *link) {
return r; return r;
} }
if (link_radv_enabled(link)) { r = radv_configure(link);
r = radv_configure(link); if (r < 0)
if (r < 0) return r;
return r;
}
if (link_lldp_rx_enabled(link)) { if (link_lldp_rx_enabled(link)) {
r = link_lldp_rx_configure(link); r = link_lldp_rx_configure(link);

View file

@ -602,12 +602,24 @@ int radv_emit_dns(Link *link) {
return 0; return 0;
} }
static bool link_radv_enabled(Link *link) {
assert(link);
if (!link_ipv6ll_enabled(link))
return false;
return link->network->router_prefix_delegation != RADV_PREFIX_DELEGATION_NONE;
}
int radv_configure(Link *link) { int radv_configure(Link *link) {
int r; int r;
assert(link); assert(link);
assert(link->network); assert(link->network);
if (!link_radv_enabled(link))
return 0;
r = sd_radv_new(&link->radv); r = sd_radv_new(&link->radv);
if (r < 0) if (r < 0)
return r; return r;