networkd: Properly stop router solicitation and DHCPv6 client
When a link fails or looses carrier, always stop ongoing router solicitation and any DHCPv6 client that may be running.
This commit is contained in:
parent
836cf0905c
commit
1873a3d344
|
@ -236,11 +236,19 @@ static int link_stop_clients(Link *link) {
|
|||
}
|
||||
|
||||
if (link->network->dhcp6) {
|
||||
assert(link->dhcp6_client);
|
||||
assert(link->icmp6_router_discovery);
|
||||
|
||||
k = sd_dhcp6_client_stop(link->dhcp6_client);
|
||||
if (link->dhcp6_client) {
|
||||
k = sd_dhcp6_client_stop(link->dhcp6_client);
|
||||
if (k < 0) {
|
||||
log_warning_link(link, "Could not stop DHCPv6 client: %s", strerror(-r));
|
||||
r = k;
|
||||
}
|
||||
}
|
||||
|
||||
k = sd_icmp6_nd_stop(link->icmp6_router_discovery);
|
||||
if (k < 0) {
|
||||
log_warning_link(link, "Could not stop DHCPv6 client: %s", strerror(-r));
|
||||
log_warning_link(link, "Could not stop ICMPv6 router discovery: %s", strerror(-r));
|
||||
r = k;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue