summaryrefslogtreecommitdiff
path: root/sys/netinet6/nd6.c
diff options
context:
space:
mode:
authorMartin Pieuchot <mpi@cvs.openbsd.org>2015-09-12 20:26:08 +0000
committerMartin Pieuchot <mpi@cvs.openbsd.org>2015-09-12 20:26:08 +0000
commit62488894e357cef741a48eeff848f58431ce07ed (patch)
treef70491c5141d8697d0b27819c26bbca957b26bf1 /sys/netinet6/nd6.c
parentd4533dcdd79582de2b7d8682334227be2c589776 (diff)
Stop overwriting the rt_ifp pointer of RTF_LOCAL routes with lo0ifp.
Use instead the RTF_LOCAL flag to loop local traffic back to the corresponding protocol queue. With this change rt_ifp is now always the same as rt_ifa->ifa_ifp. ok claudio@
Diffstat (limited to 'sys/netinet6/nd6.c')
-rw-r--r--sys/netinet6/nd6.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/sys/netinet6/nd6.c b/sys/netinet6/nd6.c
index ba57ab46438..b37a5cc09df 100644
--- a/sys/netinet6/nd6.c
+++ b/sys/netinet6/nd6.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: nd6.c,v 1.150 2015/09/10 17:52:05 claudio Exp $ */
+/* $OpenBSD: nd6.c,v 1.151 2015/09/12 20:26:07 mpi Exp $ */
/* $KAME: nd6.c,v 1.280 2002/06/08 19:52:07 itojun Exp $ */
/*
@@ -1113,13 +1113,6 @@ nd6_rtrequest(int req, struct rtentry *rt)
ln->ln_byhint = 0;
/*
- * XXX Since lo0 is in the default rdomain we
- * should not (ab)use it for any route related
- * to an interface of a different rdomain.
- */
- rt->rt_ifp = lo0ifp;
-
- /*
* Make sure rt_ifa be equal to the ifaddr
* corresponding to the address.
* We need this because when we refer
@@ -1699,7 +1692,7 @@ nd6_output(struct ifnet *ifp, struct mbuf *m0, struct sockaddr_in6 *dst,
return (0);
sendpkt:
- return ((*ifp->if_output)(ifp, m, sin6tosa(dst), rt));
+ return (if_output(ifp, m, sin6tosa(dst), rt));
bad:
m_freem(m);