]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: adjust nexthops of dynamic routes before requesting
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 16 Jan 2024 04:01:27 +0000 (13:01 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 19 Jan 2024 01:23:14 +0000 (10:23 +0900)
No effective functionality is changed. Preparation for later commits.

src/network/networkd-dhcp-prefix-delegation.c
src/network/networkd-dhcp4.c
src/network/networkd-ndisc.c

index b30527e99fcca89406cb7b2ad0637f7f25ac7fd2..aecdaa5b257f227efa4a31b449a766b5b93c18d0 100644 (file)
@@ -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
index d07b56142cad2c46dde05c055c4ca9437b0ae9ac..2afda41ab5e758edba8df12c35143ba8e27b8529 100644 (file)
@@ -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
index 0b033c70b6e8a11b05359cb8b92d23df56484ae4..74bb549dac8fd2167096a01f457893ebb3e33996 100644 (file)
@@ -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,