From 4e2ef9d9d1affd08c9a6deeec7f268a7a3a8ebbd Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Tue, 16 Jul 2019 13:02:38 +0900 Subject: [PATCH] network: do not configure routes when dropping addresses Follow-up for 4ff296b02411bb4f0dc38f48cbab06f8645d2a08. --- src/network/networkd-dhcp4.c | 5 +++++ src/network/networkd-link.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/src/network/networkd-dhcp4.c b/src/network/networkd-dhcp4.c index 8a987e84a3..1bb1df32e9 100644 --- a/src/network/networkd-dhcp4.c +++ b/src/network/networkd-dhcp4.c @@ -103,6 +103,11 @@ static int link_set_dhcp_routes(Link *link) { if (!link->network->dhcp_use_routes) return 0; + if (!link_has_carrier(link) && !link->network->configure_without_carrier) + /* During configuring addresses, the link lost its carrier. As networkd is dropping + * the addresses now, let's not configure the routes either. */ + return 0; + table = link_get_dhcp_route_table(link); r = sd_dhcp_lease_get_address(link->dhcp_lease, &address); diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index 66fbeac79d..46830290c6 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -934,6 +934,11 @@ int link_request_set_routes(Link *link) { link->static_routes_configured = false; + if (!link_has_carrier(link) && !link->network->configure_without_carrier) + /* During configuring addresses, the link lost its carrier. As networkd is dropping + * the addresses now, let's not configure the routes either. */ + return 0; + r = link_request_set_routing_policy_rule(link); if (r < 0) return r;