diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2022-08-02 03:33:21 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2022-08-02 03:35:00 +0900 |
commit | bd7e0a3f1cd28fd00d7c21bea766bffb42917c36 (patch) | |
tree | abb0f2528a03cf0d6182d490c0a30685ed9c1858 /src/network/networkd-ipv6ll.c | |
parent | 5fb5fae933132431d7ca5dd2865f42e1907e6fae (diff) | |
download | systemd-bd7e0a3f1cd28fd00d7c21bea766bffb42917c36.tar.gz |
network: make link_may_have_ipv6ll() optionally check Multicast= setting
Fixes the IPv6LL issue in #23197.
Diffstat (limited to 'src/network/networkd-ipv6ll.c')
-rw-r--r-- | src/network/networkd-ipv6ll.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/network/networkd-ipv6ll.c b/src/network/networkd-ipv6ll.c index 9b85989701..32229a3fc7 100644 --- a/src/network/networkd-ipv6ll.c +++ b/src/network/networkd-ipv6ll.c @@ -38,7 +38,7 @@ bool link_ipv6ll_enabled(Link *link) { return link->network->link_local & ADDRESS_FAMILY_IPV6; } -bool link_may_have_ipv6ll(Link *link) { +bool link_may_have_ipv6ll(Link *link, bool check_multicast) { assert(link); /* @@ -62,6 +62,9 @@ bool link_may_have_ipv6ll(Link *link) { if (!link->network) return false; + if (check_multicast && !FLAGS_SET(link->flags, IFF_MULTICAST) && link->network->multicast <= 0) + return false; + ORDERED_HASHMAP_FOREACH(a, link->network->addresses_by_section) { if (a->family != AF_INET6) continue; |