diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2021-12-18 09:50:08 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2021-12-18 10:09:07 +0900 |
commit | 42e7ce69e46aa50cf3615af0a5a1346ce0c51327 (patch) | |
tree | 8fa2853eb84dc122b7b9f435c815507c769194bf /src | |
parent | d0f17cfda6e6df7748de1e49721ab4c0a064bf27 (diff) | |
download | systemd-42e7ce69e46aa50cf3615af0a5a1346ce0c51327.tar.gz |
network: route: update expiration timer in link_request_route()
Diffstat (limited to 'src')
-rw-r--r-- | src/network/networkd-route.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/network/networkd-route.c b/src/network/networkd-route.c index d7fb9094fa..ee7a535075 100644 --- a/src/network/networkd-route.c +++ b/src/network/networkd-route.c @@ -1346,6 +1346,16 @@ int link_request_route( existing->lifetime_usec = route->lifetime_usec; if (consume_object) route_free(route); + + if (existing->expire) { + /* When re-configuring an existing route, kernel does not send RTM_NEWROUTE + * message, so we need to update the timer here. */ + r = route_setup_timer(existing, NULL); + if (r < 0) + log_link_warning_errno(link, r, "Failed to update expiration timer for route, ignoring: %m"); + if (r > 0) + log_route_debug(existing, "Updated expiration timer for", link, link->manager); + } } log_route_debug(existing, "Requesting", link, link->manager); |