summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2019-09-16 06:07:38 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2019-09-17 09:45:22 +0900
commit5539fc0f73402add1f60298e75c91a454aa3a05c (patch)
tree87b81fb713b027465add6e92c5518e00fdbc51d5 /src
parent61cda4d7964ff00dfa6260f84219720d9b97671a (diff)
downloadsystemd-5539fc0f73402add1f60298e75c91a454aa3a05c.tar.gz
network: drop IPv6LL address when LinkLocalAddressing=no|ipv4
C.f. disscussion in #13533. Hopefully fixes #12886.
Diffstat (limited to 'src')
-rw-r--r--src/network/networkd-link.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
index a05971c8d4..f1aeb7287e 100644
--- a/src/network/networkd-link.c
+++ b/src/network/networkd-link.c
@@ -2389,7 +2389,7 @@ static int link_drop_foreign_config(Link *link) {
SET_FOREACH(address, link->addresses_foreign, i) {
/* we consider IPv6LL addresses to be managed by the kernel */
- if (address->family == AF_INET6 && in_addr_is_link_local(AF_INET6, &address->in_addr) == 1)
+ if (address->family == AF_INET6 && in_addr_is_link_local(AF_INET6, &address->in_addr) == 1 && link_ipv6ll_enabled(link))
continue;
if (link_address_is_dynamic(link, address)) {
@@ -2466,7 +2466,7 @@ static int link_drop_config(Link *link) {
SET_FOREACH(address, link->addresses, i) {
/* we consider IPv6LL addresses to be managed by the kernel */
- if (address->family == AF_INET6 && in_addr_is_link_local(AF_INET6, &address->in_addr) == 1)
+ if (address->family == AF_INET6 && in_addr_is_link_local(AF_INET6, &address->in_addr) == 1 && link_ipv6ll_enabled(link))
continue;
r = address_remove(address, link, NULL);