network/ndisc: remove routes if lifetime is zero

Fixes #31979.
This commit is contained in:
Yu Watanabe
2024-03-28 13:28:58 +09:00
parent c98c0ba4c5
commit b3ea82afbe
+9 -3
View File
@@ -920,9 +920,15 @@ static int ndisc_router_process_route(Link *link, sd_ndisc_router *rt) {
route->dst_prefixlen = prefixlen;
route->lifetime_usec = lifetime_usec;
r = ndisc_request_route(route, link, rt);
if (r < 0)
return log_link_warning_errno(link, r, "Could not request additional route: %m");
if (lifetime_usec != 0) {
r = ndisc_request_route(route, link, rt);
if (r < 0)
return log_link_warning_errno(link, r, "Could not request additional route: %m");
} else {
r = ndisc_remove_route(route, link);
if (r < 0)
return log_link_warning_errno(link, r, "Could not remove additional route with zero lifetime: %m");
}
return 0;
}