diff options
author | Tom Gundersen <teg@jklm.no> | 2015-11-16 17:43:08 +0100 |
---|---|---|
committer | Tom Gundersen <teg@jklm.no> | 2015-11-17 14:17:41 +0100 |
commit | c601ebf79f0c54be14d3c16f0f484c0335cdeec4 (patch) | |
tree | c13fb6b3eb731d5f885bf0bed63935d84bb6fc02 /src/network/networkd-address.c | |
parent | fb84d8966e5ce49b0c705768bb4da4956c4e529a (diff) |
sd-dhcp6-client: bind to link-local address
This ensures that several DHCPv6 clients can run on separate interfaces
simultaneously.
Diffstat (limited to 'src/network/networkd-address.c')
-rw-r--r-- | src/network/networkd-address.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c index c0562e5788..1ce1f4d8d6 100644 --- a/src/network/networkd-address.c +++ b/src/network/networkd-address.c @@ -347,9 +347,9 @@ int address_update(Address *address, unsigned char flags, unsigned char scope, s link_check_ready(address->link); if (address->family == AF_INET6 && - in_addr_is_link_local(AF_INET6, &address->in_addr) && - !address->link->ipv6ll_address) { - r = link_ipv6ll_gained(address->link); + in_addr_is_link_local(AF_INET6, &address->in_addr) > 0 && + in_addr_is_null(AF_INET6, (const union in_addr_union*) &address->link->ipv6ll_address) > 0) { + r = link_ipv6ll_gained(address->link, &address->in_addr.in6); if (r < 0) return r; } |