From: Yu Watanabe Date: Wed, 3 Feb 2021 16:00:42 +0000 (+0900) Subject: network: ndisc: change link state into "configuring" only when a new address or route... X-Git-Tag: v248-rc1~147^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=24b445c2cea4d4e883b74ce501068dbbb81a3b51;p=thirdparty%2Fsystemd.git network: ndisc: change link state into "configuring" only when a new address or route will be assigned --- diff --git a/src/network/networkd-ndisc.c b/src/network/networkd-ndisc.c index 47b35bd543e..4b9485b6b27 100644 --- a/src/network/networkd-ndisc.c +++ b/src/network/networkd-ndisc.c @@ -343,6 +343,8 @@ static int ndisc_route_configure(Route *route, Link *link, sd_ndisc_router *rt) r = route_configure(route, link, ndisc_route_handler, &ret); if (r < 0) return log_link_error_errno(link, r, "Failed to set NDisc route: %m"); + if (r > 0) + link->ndisc_routes_configured = false; link->ndisc_routes_messages++; @@ -437,6 +439,8 @@ static int ndisc_address_configure(Address *address, Link *link, sd_ndisc_router r = address_configure(address, link, ndisc_address_handler, &ret); if (r < 0) return log_link_error_errno(link, r, "Failed to set NDisc SLAAC address: %m"); + if (r > 0) + link->ndisc_addresses_configured = false; link->ndisc_addresses_messages++; @@ -1213,9 +1217,6 @@ static int ndisc_router_handler(Link *link, sd_ndisc_router *rt) { return 0; } - link->ndisc_addresses_configured = false; - link->ndisc_routes_configured = false; - SET_FOREACH(na, link->ndisc_addresses) if (IN6_ARE_ADDR_EQUAL(&na->router, &router.in6)) na->marked = true;