Date: Sat, 24 Sep 2011 15:00:05 GMT From: Kenneth Vestergaard <kvs@binarysolutions.dk> To: freebsd-pf@FreeBSD.org Subject: Re: kern/146832: [pf] (self) not always matching all local IPv6 addresses Message-ID: <201109241500.p8OF05cO066825@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/146832; it has been noted by GNATS.
From: Kenneth Vestergaard <kvs@binarysolutions.dk>
To: Kenneth Vestergaard <kvs@binarysolutions.dk>
Cc: bug-followup@FreeBSD.org,
xi@borderworlds.dk
Subject: Re: kern/146832: [pf] (self) not always matching all local IPv6 addresses
Date: Sat, 24 Sep 2011 16:56:55 +0200
As far as I can tell, the patch below fixes.
I'm not sure about the semantics of "we don't need to install a host =
route", but the
eventhandler-part was added to the bottom of the case-scope, and =
seemingly just missed
dealing with the non-error early exit when prefixlen of a new address is =
128.
Index: sys/netinet6/in6.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/netinet6/in6.c (revision 225328)
+++ sys/netinet6/in6.c (working copy)
@@ -589,6 +589,8 @@
pr0.ndpr_plen =3D =
in6_mask2len(&ifra->ifra_prefixmask.sin6_addr,
NULL);
if (pr0.ndpr_plen =3D=3D 128) {
+ if (error =3D=3D 0 && ia)
+ EVENTHANDLER_INVOKE(ifaddr_event, ifp);
break; /* we don't need to install a host =
route. */
}
pr0.ndpr_prefix =3D ifra->ifra_addr;
--=20
Kenneth Vestergaard=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201109241500.p8OF05cO066825>
