svn commit: r220773 - stable/8/sys/netinet6
Bjoern A. Zeeb
bz at FreeBSD.org
Mon Apr 18 12:18:28 UTC 2011
Author: bz
Date: Mon Apr 18 12:18:27 2011
New Revision: 220773
URL: http://svn.freebsd.org/changeset/base/220773
Log:
MFC r220743:
Fix IPv6 ND. After r219562 we in nd6_ns_input() were erroneously always
passing the cached proxydl reference (sockaddr_dl initialized or not) to
nd6_na_output(). nd6_na_output() will thus assume a proxy NA. Revert to
conditionally passing either &proxydl or NULL if no proxy case desired.
Tested by: ipv6gw and ref9-i386
Tested by: Pete French (petefrench ingresso.co.uk on stable)
Reported by: Pete French (petefrench ingresso.co.uk on stable)
Reported by: bz, simon on Y! cluster
Reported by: kib
PR: kern/151908
X-Early-MFC: yes
Modified:
stable/8/sys/netinet6/nd6_nbr.c
Directory Properties:
stable/8/sys/ (props changed)
stable/8/sys/amd64/include/xen/ (props changed)
stable/8/sys/cddl/contrib/opensolaris/ (props changed)
stable/8/sys/contrib/dev/acpica/ (props changed)
stable/8/sys/contrib/pf/ (props changed)
Modified: stable/8/sys/netinet6/nd6_nbr.c
==============================================================================
--- stable/8/sys/netinet6/nd6_nbr.c Mon Apr 18 12:15:43 2011 (r220772)
+++ stable/8/sys/netinet6/nd6_nbr.c Mon Apr 18 12:18:27 2011 (r220773)
@@ -339,7 +339,7 @@ nd6_ns_input(struct mbuf *m, int off, in
nd6_na_output(ifp, &in6_all, &taddr6,
((anycast || proxy || !tlladdr) ? 0 : ND_NA_FLAG_OVERRIDE) |
(V_ip6_forwarding ? ND_NA_FLAG_ROUTER : 0),
- tlladdr, (struct sockaddr *)&proxydl);
+ tlladdr, proxy ? (struct sockaddr *)&proxydl : NULL);
goto freeit;
}
@@ -349,7 +349,7 @@ nd6_ns_input(struct mbuf *m, int off, in
nd6_na_output(ifp, &saddr6, &taddr6,
((anycast || proxy || !tlladdr) ? 0 : ND_NA_FLAG_OVERRIDE) |
(V_ip6_forwarding ? ND_NA_FLAG_ROUTER : 0) | ND_NA_FLAG_SOLICITED,
- tlladdr, (struct sockaddr *)&proxydl);
+ tlladdr, proxy ? (struct sockaddr *)&proxydl : NULL);
freeit:
if (ifa != NULL)
ifa_free(ifa);
More information about the svn-src-stable
mailing list