From: Yu Watanabe Date: Tue, 16 Jan 2024 04:01:27 +0000 (+0900) Subject: network: adjust nexthops of dynamic routes before requesting X-Git-Tag: v256-rc1~1108^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2f542fc3d40b511f78b9610ba96eb973d6e6f72c;p=thirdparty%2Fsystemd.git network: adjust nexthops of dynamic routes before requesting No effective functionality is changed. Preparation for later commits. --- diff --git a/src/network/networkd-dhcp-prefix-delegation.c b/src/network/networkd-dhcp-prefix-delegation.c index b30527e99fc..aecdaa5b257 100644 --- a/src/network/networkd-dhcp-prefix-delegation.c +++ b/src/network/networkd-dhcp-prefix-delegation.c @@ -300,6 +300,10 @@ static int dhcp_pd_request_route(Link *link, const struct in6_addr *prefix, usec route->priority = link->network->dhcp_pd_route_metric; route->lifetime_usec = lifetime_usec; + r = route_adjust_nexthops(route, link); + if (r < 0) + return r; + if (route_get(NULL, link, route, &existing) < 0) link->dhcp_pd_configured = false; else @@ -695,6 +699,10 @@ static int dhcp_request_unreachable_route( route->priority = IP6_RT_PRIO_USER; route->lifetime_usec = lifetime_usec; + r = route_adjust_nexthops(route, link); + if (r < 0) + return r; + if (route_get(link->manager, NULL, route, &existing) < 0) *configured = false; else @@ -789,6 +797,10 @@ static int dhcp4_pd_request_default_gateway_on_6rd_tunnel(Link *link, const stru route->priority = IP6_RT_PRIO_USER; route->lifetime_usec = lifetime_usec; + r = route_adjust_nexthops(route, link); + if (r < 0) + return r; + if (route_get(NULL, link, route, &existing) < 0) /* This is a new route. */ link->dhcp_pd_configured = false; else diff --git a/src/network/networkd-dhcp4.c b/src/network/networkd-dhcp4.c index d07b56142ca..2afda41ab5e 100644 --- a/src/network/networkd-dhcp4.c +++ b/src/network/networkd-dhcp4.c @@ -390,6 +390,10 @@ static int dhcp4_request_route(Route *in, Link *link) { if (r < 0) return r; + r = route_adjust_nexthops(route, link); + if (r < 0) + return r; + if (route_get(NULL, link, route, &existing) < 0) /* This is a new route. */ link->dhcp4_configured = false; else diff --git a/src/network/networkd-ndisc.c b/src/network/networkd-ndisc.c index 0b033c70b6e..74bb549dac8 100644 --- a/src/network/networkd-ndisc.c +++ b/src/network/networkd-ndisc.c @@ -218,6 +218,10 @@ static int ndisc_request_route(Route *in, Link *link, sd_ndisc_router *rt) { if (r < 0) return r; + r = route_adjust_nexthops(route, link); + if (r < 0) + return r; + is_new = route_get(NULL, link, route, NULL) < 0; r = link_request_route(link, TAKE_PTR(route), true, &link->ndisc_messages,