X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=src%2Fnetwork%2Fnetworkd-link.c;h=9296a594dbaa60e6cadbf64ee390c7129011b0b1;hb=1873a3d344042e818d2a5762c0ebfc3823c8f84d;hp=5ab7aa7d19f7000b2329d5cbba8497581d37694e;hpb=4138fb2c7936758da709eaed3f6b4f3df1d04eff;p=elogind.git diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index 5ab7aa7d1..9296a594d 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -124,8 +124,8 @@ static void link_free(Link *link) { free(link->lease_file); sd_ipv4ll_unref(link->ipv4ll); - sd_dhcp6_client_unref(link->dhcp6_client); + sd_icmp6_nd_unref(link->icmp6_router_discovery); hashmap_remove(link->manager->links, &link->ifindex); @@ -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; } } @@ -871,7 +879,7 @@ static int link_set_mtu(Link *link, uint32_t mtu) { return r; } - link_unref(link); + link_ref(link); return 0; }