network: route bound to a link requires the link is up

We checked if the link is up only when configuring (explicit) nexthop,
but we did not checked that when configuring route which has (implicit)
nexthop.

Let's move the checks from nexthop_is_ready_to_configure() to
gateway_is_ready(), which is called for both implicit and explict
nexthops.

Fixes #40106.
This commit is contained in:
Yu Watanabe
2026-03-09 11:46:14 +09:00
parent 43989de642
commit ed54648b47
2 changed files with 6 additions and 5 deletions
-5
View File
@@ -784,11 +784,6 @@ static bool nexthop_is_ready_to_configure(Link *link, const NextHop *nexthop) {
if (nexthop_bound_to_link(nexthop)) {
assert(nexthop->ifindex == link->ifindex);
if (link->set_flags_messages > 0)
return false;
if (!link_is_up(link))
return false;
return gateway_is_ready(link, FLAGS_SET(nexthop->flags, RTNH_F_ONLINK), nexthop->family, &nexthop->gw.address);
}
+6
View File
@@ -139,6 +139,12 @@ bool gateway_is_ready(Link *link, bool onlink, int family, const union in_addr_u
assert(link);
assert(link->manager);
if (link->set_flags_messages > 0)
return false;
if (!link_is_up(link))
return false;
if (onlink)
return true;