aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Gundersen <teg@jklm.no>2016-05-20 18:54:49 +0200
committerTom Gundersen <teg@jklm.no>2016-05-20 18:54:49 +0200
commite506f43666e80a931e0ed6a66dd6f3bf76fbfaf2 (patch)
treeb85fbf484e283ba34e7477886de5c9fe3f193f75
parentMerge pull request #3290 from htejun/cgroup2-io-compat (diff)
parentnetworkd: Drop IPv6LL address when link is down (diff)
downloadsystemd-e506f43666e80a931e0ed6a66dd6f3bf76fbfaf2.tar.gz
systemd-e506f43666e80a931e0ed6a66dd6f3bf76fbfaf2.tar.bz2
systemd-e506f43666e80a931e0ed6a66dd6f3bf76fbfaf2.zip
Merge pull request #3276 from ssahani/issue-3264
networkd: Drop IPv6LL address when link is down.
-rw-r--r--src/network/networkd-address.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c
index 976f333f7..367c340e0 100644
--- a/src/network/networkd-address.c
+++ b/src/network/networkd-address.c
@@ -98,6 +98,9 @@ void address_free(Address *address) {
if (address->link) {
set_remove(address->link->addresses, address);
set_remove(address->link->addresses_foreign, address);
+
+ if (in_addr_equal(AF_INET6, &address->in_addr, (const union in_addr_union *) &address->link->ipv6ll_address))
+ memzero(&address->link->ipv6ll_address, sizeof(struct in6_addr));
}
free(address);