summaryrefslogtreecommitdiffstats
path: root/sys/netinet6/ip6_input.c
diff options
context:
space:
mode:
authorume <ume@FreeBSD.org>2003-10-21 20:05:32 +0000
committerume <ume@FreeBSD.org>2003-10-21 20:05:32 +0000
commit5199c863f8f9e7f134710595dee582ad037bffb6 (patch)
tree56bbb38b63af457fee9d7a7dcb4dabbee7fdf438 /sys/netinet6/ip6_input.c
parentcf8253f2389748ecf024ef70a17807c7d6d733ee (diff)
downloadFreeBSD-src-5199c863f8f9e7f134710595dee582ad037bffb6.zip
FreeBSD-src-5199c863f8f9e7f134710595dee582ad037bffb6.tar.gz
- change scope to zone.
- change node-local to interface-local. - better error handling of address-to-scope mapping. - use in6_clearscope(). Obtained from: KAME
Diffstat (limited to 'sys/netinet6/ip6_input.c')
-rw-r--r--sys/netinet6/ip6_input.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/netinet6/ip6_input.c b/sys/netinet6/ip6_input.c
index 8062ffe..54f252d 100644
--- a/sys/netinet6/ip6_input.c
+++ b/sys/netinet6/ip6_input.c
@@ -433,7 +433,8 @@ ip6_input(m)
ip6stat.ip6s_badscope++;
goto bad;
}
- if (IN6_IS_SCOPE_LINKLOCAL(&ip6->ip6_dst) &&
+ if ((IN6_IS_ADDR_MC_INTFACELOCAL(&ip6->ip6_dst) ||
+ IN6_IS_SCOPE_LINKLOCAL(&ip6->ip6_dst)) &&
ip6->ip6_dst.s6_addr16[1]) {
ip6stat.ip6s_badscope++;
goto bad;
@@ -1106,8 +1107,7 @@ ip6_savecontrol(in6p, mp, ip6, m)
struct in6_pktinfo pi6;
bcopy(&ip6->ip6_dst, &pi6.ipi6_addr, sizeof(struct in6_addr));
- if (IN6_IS_SCOPE_LINKLOCAL(&pi6.ipi6_addr))
- pi6.ipi6_addr.s6_addr16[1] = 0;
+ in6_clearscope(&pi6.ipi6_addr); /* XXX */
pi6.ipi6_ifindex =
(m && m->m_pkthdr.rcvif) ? m->m_pkthdr.rcvif->if_index : 0;
OpenPOWER on IntegriCloud