The Samba-Bugzilla – Attachment 8594 Details for
Bug 9666
Broken filtering of link-local addresses
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Updated git-am fix for master.
0001-Fix-bug-9666-Broken-filtering-of-link-local-addresse.patch (text/plain), 2.07 KB, created by
Jeremy Allison
on 2013-02-28 00:48:47 UTC
(
hide
)
Description:
Updated git-am fix for master.
Filename:
MIME Type:
Creator:
Jeremy Allison
Created:
2013-02-28 00:48:47 UTC
Size:
2.07 KB
patch
obsolete
>From eb7efa83d6a910300150f8c3c8bce993e8f014c4 Mon Sep 17 00:00:00 2001 >From: Timur Bakeyev <timur@FreeBSD.org> >Date: Wed, 27 Feb 2013 16:25:07 -0800 >Subject: [PATCH] Fix bug # 9666 - Broken filtering of link-local addresses. > >This patch should address the problem with Link Local addresses >on FreeBSD and Linux. > >Reviewed-by: Jeremy Allison <jra@samba.org> >--- > lib/socket/interfaces.c | 28 +++++++++++++++------------- > 1 file changed, 15 insertions(+), 13 deletions(-) > >diff --git a/lib/socket/interfaces.c b/lib/socket/interfaces.c >index 74c6423..e62da3c 100644 >--- a/lib/socket/interfaces.c >+++ b/lib/socket/interfaces.c >@@ -186,6 +186,21 @@ static int _get_interfaces(TALLOC_CTX *mem_ctx, struct iface_struct **pifaces) > memcpy(&ifaces[total].ip, ifptr->ifa_addr, copy_size); > memcpy(&ifaces[total].netmask, ifptr->ifa_netmask, copy_size); > >+ /* calculate broadcast address */ >+#if defined(HAVE_IPV6) >+ if (ifptr->ifa_addr->sa_family == AF_INET6) { >+ struct sockaddr_in6 *sin6 = >+ (struct sockaddr_in6 *)ifptr->ifa_addr; >+ struct in6_addr *in6 = >+ (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); >+ } else >+#endif > if (ifaces[total].flags & (IFF_BROADCAST|IFF_LOOPBACK)) { > make_bcast(&ifaces[total].bcast, > &ifaces[total].ip, >@@ -195,19 +210,6 @@ 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; > } >-- >1.8.1.3 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
rsharpe
:
review+
Actions:
View
Attachments on
bug 9666
:
8566
|
8567
|
8568
|
8593
| 8594 |
8598