mirror of
https://github.com/samba-team/samba.git
synced 2025-02-26 21:57:41 +03:00
Fix bug with Samba not recognising an 6to4 IPv6 interface.
"The 6to4 interface has the flags IFF_POINTTOPOINT interface but no ifa_dstaddr as it's not at the IPv6 level a point to point interface (at least from my understanding), as we don't have a IFF_BROADCAST flag set (I have the impression that this flag is only set on a interface that has also an IPv4 address) the first test is not valid also, which result in a skipped interface."
This commit is contained in:
parent
acc28706b5
commit
abe5afc580
@ -195,6 +195,19 @@ static int _get_interfaces(TALLOC_CTX *mem_ctx, struct iface_struct **pifaces)
|
||||
memcpy(&ifaces[total].bcast,
|
||||
ifptr->ifa_dstaddr,
|
||||
copy_size);
|
||||
#if defined(HAVE_IPV6)
|
||||
} else if (ifptr->ifa_addr->sa_family == AF_INET6) {
|
||||
const struct sockaddr_in6 *sin6 =
|
||||
(const struct sockaddr_in6 *)ifptr->ifa_addr;
|
||||
const struct in6_addr *in6 =
|
||||
(const struct in6_addr *)&sin6->sin6_addr;
|
||||
|
||||
if (IN6_IS_ADDR_LINKLOCAL(in6) || IN6_IS_ADDR_V4COMPAT(in6)) {
|
||||
continue;
|
||||
}
|
||||
/* IPv6 does not have broadcast it uses multicast. */
|
||||
memset(&ifaces[total].bcast, '\0', copy_size);
|
||||
#endif
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user