From: Yu Watanabe Date: Mon, 11 Nov 2024 17:06:21 +0000 (+0900) Subject: network/ndisc: several cleanups for ndisc_remove_route() X-Git-Tag: v257-rc2~25^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=42d9660f10e928bfb575712b1a01773bbf8cf86f;p=thirdparty%2Fsystemd.git 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. --- diff --git a/src/network/networkd-ndisc.c b/src/network/networkd-ndisc.c index 3b130ee4ccf..698fdbdb032 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) {