From: Yu Watanabe Date: Mon, 7 Feb 2022 14:36:49 +0000 (+0900) Subject: network: do not restart DHCPv6 client when it is already running in managed mode X-Git-Tag: v251-rc1~291^2~8 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8b1cfab96258828ee76e730abc567c8d7e54b899;p=thirdparty%2Fsystemd.git network: do not restart DHCPv6 client when it is already running in managed mode Otherwise, if a network has two router and one provides M flag and the other provides O flag, then the DHCPv6 client switches the running mode repeatedly. That makes the IPv6 network configuration of the host unstable. --- diff --git a/src/network/networkd-dhcp6.c b/src/network/networkd-dhcp6.c index ab51b7377da..1293a4d913e 100644 --- a/src/network/networkd-dhcp6.c +++ b/src/network/networkd-dhcp6.c @@ -432,8 +432,20 @@ int dhcp6_start_on_ra(Link *link, bool information_request) { return r; if (inf_req == information_request) + /* The client is already running in the requested mode. */ return 0; + if (!inf_req) { + log_link_debug(link, + "The DHCPv6 client is already running in the managed mode, " + "refusing to start the client in the information requesting mode."); + return 0; + } + + log_link_debug(link, + "The DHCPv6 client is running in the information requesting mode. " + "Restarting the client in the managed mode."); + r = sd_dhcp6_client_stop(link->dhcp6_client); if (r < 0) return r;