]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network/route-nexthop: drop unnecessary link arguments
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 13 Jan 2024 07:02:44 +0000 (16:02 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 19 Jan 2024 10:20:29 +0000 (19:20 +0900)
These arguments are unused now.

src/network/networkd-route-nexthop.c
src/network/networkd-route-nexthop.h
src/network/networkd-route.c

index eb90e79f9de8939f9a5d436b1eef10864a2ff42e..1524b23188d007dedd6a4fcbbb45fcf47a6ffa35 100644 (file)
@@ -341,7 +341,7 @@ int route_adjust_nexthops(Route *route, Link *link) {
         return true; /* updated */
 }
 
-int route_nexthop_get_link(Manager *manager, Link *link, const RouteNextHop *nh, Link **ret) {
+int route_nexthop_get_link(Manager *manager, const RouteNextHop *nh, Link **ret) {
         assert(manager);
         assert(nh);
 
@@ -350,20 +350,16 @@ int route_nexthop_get_link(Manager *manager, Link *link, const RouteNextHop *nh,
         if (nh->ifname)
                 return link_get_by_name(manager, nh->ifname, ret);
 
-        if (link) {
-                if (ret)
-                        *ret = link;
-                return 0;
-        }
-
         return -ENOENT;
 }
 
-static bool route_nexthop_is_ready_to_configure(const RouteNextHop *nh, Link *link, bool onlink) {
+static bool route_nexthop_is_ready_to_configure(const RouteNextHop *nh, Manager *manager, bool onlink) {
+        Link *link;
+
         assert(nh);
-        assert(link);
+        assert(manager);
 
-        if (route_nexthop_get_link(link->manager, link, nh, &link))
+        if (route_nexthop_get_link(manager, nh, &link) < 0)
                 return false;
 
         if (!link_is_ready_to_configure(link, /* allow_unmanaged = */ true))
@@ -377,13 +373,11 @@ static bool route_nexthop_is_ready_to_configure(const RouteNextHop *nh, Link *li
         return gateway_is_ready(link, onlink, nh->family, &nh->gw);
 }
 
-int route_nexthops_is_ready_to_configure(const Route *route, Link *link) {
+int route_nexthops_is_ready_to_configure(const Route *route, Manager *manager) {
         int r;
 
         assert(route);
-        assert(link);
-
-        Manager *manager = ASSERT_PTR(link->manager);
+        assert(manager);
 
         if (route->nexthop_id != 0) {
                 struct nexthop_grp *nhg;
@@ -406,11 +400,11 @@ int route_nexthops_is_ready_to_configure(const Route *route, Link *link) {
                 return true;
 
         if (ordered_set_isempty(route->nexthops))
-                return route_nexthop_is_ready_to_configure(&route->nexthop, link, FLAGS_SET(route->flags, RTNH_F_ONLINK));
+                return route_nexthop_is_ready_to_configure(&route->nexthop, manager, FLAGS_SET(route->flags, RTNH_F_ONLINK));
 
         RouteNextHop *nh;
         ORDERED_SET_FOREACH(nh, route->nexthops)
-                if (!route_nexthop_is_ready_to_configure(nh, link, FLAGS_SET(route->flags, RTNH_F_ONLINK)))
+                if (!route_nexthop_is_ready_to_configure(nh, manager, FLAGS_SET(route->flags, RTNH_F_ONLINK)))
                         return false;
 
         return true;
@@ -481,7 +475,7 @@ int route_nexthops_to_string(const Route *route, char **ret) {
         return 0;
 }
 
-static int append_nexthop_one(Link *link, const Route *route, const RouteNextHop *nh, struct rtattr **rta, size_t offset) {
+static int append_nexthop_one(const Route *route, const RouteNextHop *nh, struct rtattr **rta, size_t offset) {
         struct rtnexthop *rtnh;
         struct rtattr *new_rta;
         int r;
@@ -492,15 +486,6 @@ static int append_nexthop_one(Link *link, const Route *route, const RouteNextHop
         assert(rta);
         assert(*rta);
 
-        if (nh->ifindex <= 0) {
-                assert(link);
-                assert(link->manager);
-
-                r = route_nexthop_get_link(link->manager, link, nh, &link);
-                if (r < 0)
-                        return r;
-        }
-
         new_rta = realloc(*rta, RTA_ALIGN((*rta)->rta_len) + RTA_SPACE(sizeof(struct rtnexthop)));
         if (!new_rta)
                 return -ENOMEM;
@@ -509,7 +494,7 @@ static int append_nexthop_one(Link *link, const Route *route, const RouteNextHop
         rtnh = (struct rtnexthop *)((uint8_t *) *rta + offset);
         *rtnh = (struct rtnexthop) {
                 .rtnh_len = sizeof(*rtnh),
-                .rtnh_ifindex = nh->ifindex > 0 ? nh->ifindex : link->ifindex,
+                .rtnh_ifindex = nh->ifindex,
                 .rtnh_hops = nh->weight,
         };
 
@@ -547,7 +532,7 @@ clear:
         return r;
 }
 
-static int netlink_message_append_multipath_route(Link *link, const Route *route, sd_netlink_message *message) {
+static int netlink_message_append_multipath_route(const Route *route, sd_netlink_message *message) {
         _cleanup_free_ struct rtattr *rta = NULL;
         size_t offset;
         int r;
@@ -566,7 +551,7 @@ static int netlink_message_append_multipath_route(Link *link, const Route *route
         offset = (uint8_t *) RTA_DATA(rta) - (uint8_t *) rta;
 
         if (ordered_set_isempty(route->nexthops)) {
-                r = append_nexthop_one(link, route, &route->nexthop, &rta, offset);
+                r = append_nexthop_one(route, &route->nexthop, &rta, offset);
                 if (r < 0)
                         return r;
 
@@ -575,7 +560,7 @@ static int netlink_message_append_multipath_route(Link *link, const Route *route
                 ORDERED_SET_FOREACH(nh, route->nexthops) {
                         struct rtnexthop *rtnh;
 
-                        r = append_nexthop_one(link, route, nh, &rta, offset);
+                        r = append_nexthop_one(route, nh, &rta, offset);
                         if (r < 0)
                                 return r;
 
@@ -587,7 +572,7 @@ static int netlink_message_append_multipath_route(Link *link, const Route *route
         return sd_netlink_message_append_data(message, RTA_MULTIPATH, RTA_DATA(rta), RTA_PAYLOAD(rta));
 }
 
-int route_nexthops_set_netlink_message(Link *link, const Route *route, sd_netlink_message *message) {
+int route_nexthops_set_netlink_message(const Route *route, sd_netlink_message *message) {
         int r;
 
         assert(route);
@@ -619,10 +604,11 @@ int route_nexthops_set_netlink_message(Link *link, const Route *route, sd_netlin
                                 return r;
                 }
 
-                return sd_netlink_message_append_u32(message, RTA_OIF, route->nexthop.ifindex > 0 ? route->nexthop.ifindex : ASSERT_PTR(link)->ifindex);
+                assert(route->nexthop.ifindex > 0);
+                return sd_netlink_message_append_u32(message, RTA_OIF, route->nexthop.ifindex);
         }
 
-        return netlink_message_append_multipath_route(link, route, message);
+        return netlink_message_append_multipath_route(route, message);
 }
 
 static int route_parse_nexthops(Route *route, const struct rtnexthop *rtnh, size_t size) {
index a63409c9e288e98e065b79d0c178e9753eafc629..5e4602d3cd369d3808b68f2cb6a524192a651b61 100644 (file)
@@ -38,12 +38,12 @@ int route_nexthops_copy(const Route *src, const RouteNextHop *nh, Route *dest);
 bool route_nexthops_needs_adjust(const Route *route);
 int route_adjust_nexthops(Route *route, Link *link);
 
-int route_nexthop_get_link(Manager *manager, Link *link, const RouteNextHop *nh, Link **ret);
-int route_nexthops_is_ready_to_configure(const Route *route, Link *link);
+int route_nexthop_get_link(Manager *manager, const RouteNextHop *nh, Link **ret);
+int route_nexthops_is_ready_to_configure(const Route *route, Manager *manager);
 
 int route_nexthops_to_string(const Route *route, char **ret);
 
-int route_nexthops_set_netlink_message(Link *link, const Route *route, sd_netlink_message *message);
+int route_nexthops_set_netlink_message(const Route *route, sd_netlink_message *message);
 int route_nexthops_read_netlink_message(Route *route, sd_netlink_message *message);
 
 int route_section_verify_nexthops(Route *route);
index c3a0d30cca4cfc865423103b50f75c51bf990701..a142719fb7405ef0671bc1ff45502b491e7d9ddd 100644 (file)
@@ -271,7 +271,7 @@ static int route_add(Manager *manager, Route *route) {
         assert(!route->wireguard);
 
         Link *link;
-        if (route_nexthop_get_link(manager, NULL, &route->nexthop, &link) >= 0) {
+        if (route_nexthop_get_link(manager, &route->nexthop, &link) >= 0) {
                 r = set_ensure_put(&link->routes, &route_hash_ops, route);
                 if (r < 0)
                         return r;
@@ -299,7 +299,7 @@ int route_get(Manager *manager, Link *link, const Route *route, Route **ret) {
                 manager = ASSERT_PTR(ASSERT_PTR(link)->manager);
         assert(route);
 
-        if (route_nexthop_get_link(manager, NULL, &route->nexthop, &link) >= 0)
+        if (route_nexthop_get_link(manager, &route->nexthop, &link) >= 0)
                 existing = set_get(link->routes, route);
         else
                 existing = set_get(manager->routes, route);
@@ -328,7 +328,7 @@ static int route_get_link(Manager *manager, const Route *route, Link **ret) {
                 return link_get_by_index(manager, nh->ifindex, ret);
         }
 
-        return route_nexthop_get_link(manager, NULL, &route->nexthop, ret);
+        return route_nexthop_get_link(manager, &route->nexthop, ret);
 }
 
 static int route_get_request(Manager *manager, const Route *route, Request **ret) {
@@ -440,14 +440,12 @@ static void log_route_debug(const Route *route, const char *str, Manager *manage
                        strna(proto), strna(scope), strna(route_type_to_string(route->type)), strna(flags));
 }
 
-static int route_set_netlink_message(const Route *route, sd_netlink_message *m, Link *link) {
+static int route_set_netlink_message(const Route *route, sd_netlink_message *m) {
         int r;
 
         assert(route);
         assert(m);
 
-        /* link may be NULL */
-
         /* rtmsg header (and relevant attributes) */
         if (route->dst_prefixlen > 0) {
                 r = netlink_message_append_in_addr_union(m, RTA_DST, route->family, &route->dst);
@@ -516,7 +514,7 @@ static int route_set_netlink_message(const Route *route, sd_netlink_message *m,
                 return r;
 
         /* nexthops */
-        r = route_nexthops_set_netlink_message(link, route, m);
+        r = route_nexthops_set_netlink_message(route, m);
         if (r < 0)
                 return r;
 
@@ -563,7 +561,7 @@ int route_remove(Route *route) {
         if (r < 0)
                 return log_link_warning_errno(link, r, "Could not create netlink message: %m");
 
-        r = route_set_netlink_message(route, m, link);
+        r = route_set_netlink_message(route, m);
         if (r < 0)
                 return log_link_warning_errno(link, r, "Could not fill netlink message: %m");
 
@@ -902,7 +900,7 @@ static int route_configure(const Route *route, uint32_t lifetime_sec, Link *link
         if (r < 0)
                 return r;
 
-        r = route_set_netlink_message(route, m, link);
+        r = route_set_netlink_message(route, m);
         if (r < 0)
                 return r;
 
@@ -991,7 +989,7 @@ static int route_is_ready_to_configure(const Route *route, Link *link) {
                         return r;
         }
 
-        return route_nexthops_is_ready_to_configure(route, link);
+        return route_nexthops_is_ready_to_configure(route, link->manager);
 }
 
 static int route_process_request(Request *req, Link *link, Route *route) {