summaryrefslogtreecommitdiff
path: root/src/network/networkd-link.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2016-10-25 12:08:43 +0200
committerLennart Poettering <lennart@poettering.net>2016-11-02 11:39:49 -0600
commitc69305ff4fe5a182cd58b66077f3db7bc7c222e1 (patch)
treeab1908c8af91fd13a87ee728338d29d8cc8c64a2 /src/network/networkd-link.c
parent02affb4e6a16fbec9d6d28265c220ca95479bbd0 (diff)
networkd: flush DNSSL/RDNSS lists when we lose carrier
Fixes: #3870
Diffstat (limited to 'src/network/networkd-link.c')
-rw-r--r--src/network/networkd-link.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
index d9e060b6cf..aefe7335b9 100644
--- a/src/network/networkd-link.c
+++ b/src/network/networkd-link.c
@@ -514,13 +514,12 @@ static void link_free(Link *link) {
sd_lldp_unref(link->lldp);
free(link->lldp_file);
+ ndisc_flush(link);
+
sd_ipv4ll_unref(link->ipv4ll);
sd_dhcp6_client_unref(link->dhcp6_client);
sd_ndisc_unref(link->ndisc);
- set_free_free(link->ndisc_rdnss);
- set_free_free(link->ndisc_dnssl);
-
if (link->manager)
hashmap_remove(link->manager->links, INT_TO_PTR(link->ifindex));
@@ -2427,6 +2426,8 @@ static int link_drop_config(Link *link) {
return r;
}
+ ndisc_flush(link);
+
return 0;
}