summaryrefslogtreecommitdiffstats
path: root/src/network
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2024-11-11 18:06:21 +0100
committerYu Watanabe <watanabe.yu+github@gmail.com>2024-11-12 10:08:25 +0100
commit42d9660f10e928bfb575712b1a01773bbf8cf86f (patch)
tree81e7eac3e0c6149440257381af49acc7b1595e19 /src/network
parentnetwork/ndisc: introduce route_is_bound_to_link() helper function and use it ... (diff)
downloadsystemd-42d9660f10e928bfb575712b1a01773bbf8cf86f.tar.xz
systemd-42d9660f10e928bfb575712b1a01773bbf8cf86f.zip
network/ndisc: several cleanups for ndisc_remove_route()
- drop unnecessary call of ndisc_set_route_priority() at the beginning, as it is called later in the loop below, - use RET_GATHER() and remove all possible routes even if failed.
Diffstat (limited to 'src/network')
-rw-r--r--src/network/networkd-ndisc.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/network/networkd-ndisc.c b/src/network/networkd-ndisc.c
index 3b130ee4cc..698fdbdb03 100644
--- a/src/network/networkd-ndisc.c
+++ b/src/network/networkd-ndisc.c
@@ -292,14 +292,12 @@ static int ndisc_request_router_route(Route *route, Link *link, sd_ndisc_router
}
static int ndisc_remove_route(Route *route, Link *link) {
- int r;
+ int r, ret = 0;
assert(route);
assert(link);
assert(link->manager);
- ndisc_set_route_priority(link, route);
-
if (!route->table_set)
route->table = link_get_ndisc_route_table(link);
@@ -331,9 +329,7 @@ static int ndisc_remove_route(Route *route, Link *link) {
if (existing->source == NETWORK_CONFIG_SOURCE_STATIC)
continue;
- r = route_remove_and_cancel(existing, link->manager);
- if (r < 0)
- return r;
+ RET_GATHER(ret, route_remove_and_cancel(existing, link->manager));
}
/* Then, check if the route exists. */
@@ -341,13 +337,11 @@ static int ndisc_remove_route(Route *route, Link *link) {
if (existing->source == NETWORK_CONFIG_SOURCE_STATIC)
continue;
- r = route_remove_and_cancel(existing, link->manager);
- if (r < 0)
- return r;
+ RET_GATHER(ret, route_remove_and_cancel(existing, link->manager));
}
}
- return 0;
+ return ret;
}
static int ndisc_address_handler(sd_netlink *rtnl, sd_netlink_message *m, Request *req, Link *link, Address *address) {