diff options
author | Florian Obser <florian@cvs.openbsd.org> | 2014-08-26 21:44:30 +0000 |
---|---|---|
committer | Florian Obser <florian@cvs.openbsd.org> | 2014-08-26 21:44:30 +0000 |
commit | 603248a58e2fd9646b3828232c8d78a2030e727b (patch) | |
tree | 455f7c07aa1fd63644349cac92ed73b671936fce | |
parent | a079e27ec8f3b1c3c0d07835c7ab49a954bfea72 (diff) |
Do not hand-roll all routers link local address.
pointed out & OK bluhm@
-rw-r--r-- | sys/netinet6/in6.c | 4 | ||||
-rw-r--r-- | sys/netinet6/in6.h | 3 | ||||
-rw-r--r-- | sys/netinet6/nd6_rtr.c | 8 |
3 files changed, 8 insertions, 7 deletions
diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c index 1a9dc206158..6174d47b06c 100644 --- a/sys/netinet6/in6.c +++ b/sys/netinet6/in6.c @@ -1,4 +1,4 @@ -/* $OpenBSD: in6.c,v 1.139 2014/08/25 14:00:34 florian Exp $ */ +/* $OpenBSD: in6.c,v 1.140 2014/08/26 21:44:29 florian Exp $ */ /* $KAME: in6.c,v 1.372 2004/06/14 08:14:21 itojun Exp $ */ /* @@ -112,6 +112,8 @@ const struct in6_addr in6addr_intfacelocal_allnodes = IN6ADDR_INTFACELOCAL_ALLNODES_INIT; const struct in6_addr in6addr_linklocal_allnodes = IN6ADDR_LINKLOCAL_ALLNODES_INIT; +const struct in6_addr in6addr_linklocal_allrouters = + IN6ADDR_LINKLOCAL_ALLROUTERS_INIT; const struct in6_addr in6mask0 = IN6MASK0; const struct in6_addr in6mask32 = IN6MASK32; diff --git a/sys/netinet6/in6.h b/sys/netinet6/in6.h index 17619e850c3..f3862bff591 100644 --- a/sys/netinet6/in6.h +++ b/sys/netinet6/in6.h @@ -1,4 +1,4 @@ -/* $OpenBSD: in6.h,v 1.73 2014/07/11 16:39:06 henning Exp $ */ +/* $OpenBSD: in6.h,v 1.74 2014/08/26 21:44:29 florian Exp $ */ /* $KAME: in6.h,v 1.83 2001/03/29 02:55:07 jinmei Exp $ */ /* @@ -134,6 +134,7 @@ extern const struct in6_addr in6mask32; extern const struct in6_addr in6mask64; extern const struct in6_addr in6mask96; extern const struct in6_addr in6mask128; +extern const struct in6_addr in6addr_linklocal_allrouters; #endif /* _KERNEL */ /* Both kernel and libc define these for use */ diff --git a/sys/netinet6/nd6_rtr.c b/sys/netinet6/nd6_rtr.c index a50dbf7c080..1373bc720af 100644 --- a/sys/netinet6/nd6_rtr.c +++ b/sys/netinet6/nd6_rtr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: nd6_rtr.c,v 1.84 2014/08/25 14:00:34 florian Exp $ */ +/* $OpenBSD: nd6_rtr.c,v 1.85 2014/08/26 21:44:29 florian Exp $ */ /* $KAME: nd6_rtr.c,v 1.97 2001/02/07 11:09:13 itojun Exp $ */ /* @@ -221,10 +221,8 @@ nd6_rs_output(struct ifnet* ifp, struct in6_ifaddr *ia6) /* ip6->ip6_plen will be set later */ ip6->ip6_nxt = IPPROTO_ICMPV6; ip6->ip6_hlim = 255; - bzero(&ip6->ip6_dst, sizeof(struct in6_addr)); - - ip6->ip6_dst.s6_addr16[0] = htons(0xff02); - ip6->ip6_dst.s6_addr8[15] = 0x02; + + ip6->ip6_dst = in6addr_linklocal_allrouters; ip6->ip6_src = ia6->ia_addr.sin6_addr; |