patches for easier mirroring, to eliminate a special copy, to make www.freebsd.org/security a full copy of security.freebsd.org and be eventually be the same. For now files are just sitting there. The symlinks are missing. Discussed on: www (repository location) Discussed with: simon (so)
		
			
				
	
	
		
			87 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| Index: sys/netinet6/in6.h
 | |
| ===================================================================
 | |
| RCS file: /home/ncvs/src/sys/netinet6/in6.h,v
 | |
| retrieving revision 1.51.2.1
 | |
| diff -u -p -r1.51.2.1 in6.h
 | |
| --- sys/netinet6/in6.h	1 Sep 2008 19:23:04 -0000	1.51.2.1
 | |
| +++ sys/netinet6/in6.h	28 Sep 2008 21:07:34 -0000
 | |
| @@ -599,7 +599,9 @@ struct ip6_mtuinfo {
 | |
|  /* New entries should be added here from current IPV6CTL_MAXID value. */
 | |
|  /* to define items, should talk with KAME guys first, for *BSD compatibility */
 | |
|  #define IPV6CTL_STEALTH		45
 | |
| -#define IPV6CTL_MAXID		46
 | |
| +
 | |
| +#define	ICMPV6CTL_ND6_ONLINKNSRFC4861	47
 | |
| +#define IPV6CTL_MAXID		48
 | |
|  #endif /* __BSD_VISIBLE */
 | |
|  
 | |
|  /*
 | |
| Index: sys/netinet6/in6_proto.c
 | |
| ===================================================================
 | |
| RCS file: /home/ncvs/src/sys/netinet6/in6_proto.c,v
 | |
| retrieving revision 1.46.2.2
 | |
| diff -u -p -r1.46.2.2 in6_proto.c
 | |
| --- sys/netinet6/in6_proto.c	1 Sep 2008 19:23:04 -0000	1.46.2.2
 | |
| +++ sys/netinet6/in6_proto.c	28 Sep 2008 21:14:27 -0000
 | |
| @@ -394,6 +394,7 @@ time_t	ip6_log_time = (time_t)0L;
 | |
|  #ifdef IPSTEALTH
 | |
|  int	ip6stealth = 0;
 | |
|  #endif
 | |
| +int	nd6_onlink_ns_rfc4861 = 0; /* allow 'on-link' nd6 NS (as in RFC 4861) */
 | |
|  
 | |
|  /* icmp6 */
 | |
|  /*
 | |
| @@ -567,3 +568,6 @@ SYSCTL_INT(_net_inet6_icmp6, ICMPV6CTL_N
 | |
|  	nd6_maxnudhint, CTLFLAG_RW,	&nd6_maxnudhint, 0, "");
 | |
|  SYSCTL_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_DEBUG,
 | |
|  	nd6_debug, CTLFLAG_RW,	&nd6_debug,		0, "");
 | |
| +SYSCTL_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_ONLINKNSRFC4861,
 | |
| +	nd6_onlink_ns_rfc4861, CTLFLAG_RW, &nd6_onlink_ns_rfc4861, 0,
 | |
| +	"Accept 'on-link' nd6 NS in compliance with RFC 4861.");
 | |
| Index: sys/netinet6/nd6.h
 | |
| ===================================================================
 | |
| RCS file: /home/ncvs/src/sys/netinet6/nd6.h,v
 | |
| retrieving revision 1.21.2.1
 | |
| diff -u -p -r1.21.2.1 nd6.h
 | |
| --- sys/netinet6/nd6.h	1 Sep 2008 19:23:04 -0000	1.21.2.1
 | |
| +++ sys/netinet6/nd6.h	28 Sep 2008 21:18:01 -0000
 | |
| @@ -339,6 +339,7 @@ extern struct llinfo_nd6 llinfo_nd6;
 | |
|  extern struct nd_drhead nd_defrouter;
 | |
|  extern struct nd_prhead nd_prefix;
 | |
|  extern int nd6_debug;
 | |
| +extern int nd6_onlink_ns_rfc4861;
 | |
|  
 | |
|  #define nd6log(x)	do { if (nd6_debug) log x; } while (/*CONSTCOND*/ 0)
 | |
|  
 | |
| Index: sys/netinet6/nd6_nbr.c
 | |
| ===================================================================
 | |
| RCS file: /home/ncvs/src/sys/netinet6/nd6_nbr.c,v
 | |
| retrieving revision 1.47.2.2
 | |
| diff -u -p -r1.47.2.2 nd6_nbr.c
 | |
| --- sys/netinet6/nd6_nbr.c	1 Sep 2008 19:23:04 -0000	1.47.2.2
 | |
| +++ sys/netinet6/nd6_nbr.c	28 Sep 2008 21:14:44 -0000
 | |
| @@ -145,6 +145,24 @@ nd6_ns_input(struct mbuf *m, int off, in
 | |
|  			    "(wrong ip6 dst)\n"));
 | |
|  			goto bad;
 | |
|  		}
 | |
| +	} else if (!nd6_onlink_ns_rfc4861) {
 | |
| +		struct sockaddr_in6 src_sa6;
 | |
| +
 | |
| +		/*
 | |
| +		 * According to recent IETF discussions, it is not a good idea
 | |
| +		 * to accept a NS from an address which would not be deemed
 | |
| +		 * to be a neighbor otherwise.  This point is expected to be
 | |
| +		 * clarified in future revisions of the specification.
 | |
| +		 */
 | |
| +		bzero(&src_sa6, sizeof(src_sa6));
 | |
| +		src_sa6.sin6_family = AF_INET6;
 | |
| +		src_sa6.sin6_len = sizeof(src_sa6);
 | |
| +		src_sa6.sin6_addr = saddr6;
 | |
| +		if (!nd6_is_addr_neighbor(&src_sa6, ifp)) {
 | |
| +			nd6log((LOG_INFO, "nd6_ns_input: "
 | |
| +				"NS packet from non-neighbor\n"));
 | |
| +			goto bad;
 | |
| +		}
 | |
|  	}
 | |
|  
 | |
|  	if (IN6_IS_ADDR_MULTICAST(&taddr6)) {
 |