Skip site navigation (1)Skip section navigation (2)
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>