summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoritojun <itojun@openbsd.org>2003-06-24 07:48:51 +0000
committeritojun <itojun@openbsd.org>2003-06-24 07:48:51 +0000
commit48ebf8e108041c7b2a2d25f3e7d0835102eb31f8 (patch)
tree8b6a066415febb8b1921daedb614824ad0fdc298
parentuse time.tv_sec directly, rather than having time_second (freebsd NIH). (diff)
downloadwireguard-openbsd-48ebf8e108041c7b2a2d25f3e7d0835102eb31f8.tar.xz
wireguard-openbsd-48ebf8e108041c7b2a2d25f3e7d0835102eb31f8.zip
* kame/sys/netinet6/nd6.c (nd6_rtrequest): changed a condition to
decide whether to create an empty llinfo stricter so that a user can manually change the link-layer address of an existing neighbor cache. Pointed out by: KIU Shueng Chuan from kame
-rw-r--r--sys/netinet6/nd6.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/sys/netinet6/nd6.c b/sys/netinet6/nd6.c
index 321456b00c5..9ff47cb85ec 100644
--- a/sys/netinet6/nd6.c
+++ b/sys/netinet6/nd6.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: nd6.c,v 1.62 2003/06/24 07:47:54 itojun Exp $ */
+/* $OpenBSD: nd6.c,v 1.63 2003/06/24 07:48:51 itojun Exp $ */
/* $KAME: nd6.c,v 1.280 2002/06/08 19:52:07 itojun Exp $ */
/*
@@ -1001,12 +1001,13 @@ nd6_rtrequest(req, rt, info)
* SIN(rt_mask(rt))->sin_addr.s_addr != 0xffffffff)
* rt->rt_flags |= RTF_CLONING;
*/
- if (rt->rt_flags & (RTF_CLONING | RTF_LLINFO)) {
+ if ((rt->rt_flags & RTF_CLONING) ||
+ ((rt->rt_flags & RTF_LLINFO) && !ln)) {
/*
- * Case 1: This route should come from
- * a route to interface. RTF_LLINFO flag is set
- * for a host route whose destination should be
- * treated as on-link.
+ * Case 1: This route should come from a route to
+ * interface (RTF_CLONING case) or the route should be
+ * treated as on-link but is currently not
+ * (RTF_LLINFO && !ln case).
*/
rt_setgate(rt, rt_key(rt),
(struct sockaddr *)&null_sdl);