diff options
author | Alexander Bluhm <bluhm@cvs.openbsd.org> | 2011-08-08 13:04:36 +0000 |
---|---|---|
committer | Alexander Bluhm <bluhm@cvs.openbsd.org> | 2011-08-08 13:04:36 +0000 |
commit | c0c72c02c3074b28bf03dff1966e741f71c6adbf (patch) | |
tree | 1d7ebc41424081fc206d32f2fa039e7579b9eb8d /sys/netinet6 | |
parent | 35b6324b7f7d83ebdc050b5fbc67c1c38cc3df31 (diff) |
If two carp interfaces on the same physical interface had addresses
with the same prefix, neighbor discovery did not work. When comparing
two carp interfaces in in6_ifpprefix(), assume they share the prefix
if they have the same parent.
sure deraadt@
Diffstat (limited to 'sys/netinet6')
-rw-r--r-- | sys/netinet6/in6.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c index 6e977f8bce3..52fd97568f7 100644 --- a/sys/netinet6/in6.c +++ b/sys/netinet6/in6.c @@ -1,4 +1,4 @@ -/* $OpenBSD: in6.c,v 1.92 2011/08/07 15:18:40 bluhm Exp $ */ +/* $OpenBSD: in6.c,v 1.93 2011/08/08 13:04:35 bluhm Exp $ */ /* $KAME: in6.c,v 1.372 2004/06/14 08:14:21 itojun Exp $ */ /* @@ -1956,6 +1956,8 @@ in6_ifpprefix(const struct ifnet *ifp, const struct in6_addr *addr) #if NCARP > 0 (ifp->if_type != IFT_CARP || rt->rt_ifp != ifp->if_carpdev) && (rt->rt_ifp->if_type != IFT_CARP || rt->rt_ifp->if_carpdev != ifp)&& + (ifp->if_type != IFT_CARP || rt->rt_ifp->if_type != IFT_CARP || + rt->rt_ifp->if_carpdev != ifp->if_carpdev) && #endif 1)) { RTFREE(rt); |