summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2024-09-06 01:58:18 +0200
committerYu Watanabe <watanabe.yu+github@gmail.com>2024-09-06 09:07:25 +0200
commit195bb6f97ebc5cd5e9932c62aa80df5427c30d67 (patch)
treee78bc059a0adc1e99964cc353f4ab6129d82c667 /src
parentMerge pull request #34278 from yuwata/timesync-log (diff)
downloadsystemd-195bb6f97ebc5cd5e9932c62aa80df5427c30d67.tar.xz
systemd-195bb6f97ebc5cd5e9932c62aa80df5427c30d67.zip
network/route: ignore EEXIST reply when the corresponding request is already detached
Follow-ups for db8dc7c1dd7f4620e14fbc4c1560a68a1fc9b85b. Fixes #34275.
Diffstat (limited to 'src')
-rw-r--r--src/network/networkd-route.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/network/networkd-route.c b/src/network/networkd-route.c
index 23adefc66a..4ed2c53888 100644
--- a/src/network/networkd-route.c
+++ b/src/network/networkd-route.c
@@ -719,6 +719,13 @@ static int route_update_on_existing(Request *req) {
Route *rt = ASSERT_PTR(ASSERT_PTR(req)->userdata);
int r;
+ if (!req->manager)
+ /* Already detached? At least there are two posibilities then.
+ * 1) The interface is removed, and all queued requests for the interface are cancelled.
+ * 2) networkd is now stopping, hence all queued requests are cancelled.
+ * Anyway, we can ignore the request, and there is nothing we can do. */
+ return 0;
+
if (rt->family == AF_INET || ordered_set_isempty(rt->nexthops))
return route_update_on_existing_one(req, rt);