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.
This commit is contained in:
Yu Watanabe
2022-02-14 15:02:33 +09:00
parent dd73db7850
commit 8b1cfab962
+12
View File
@@ -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;