diff options
-rw-r--r-- | sys/netinet/ip_mroute.c | 3 | ||||
-rw-r--r-- | sys/netinet/ip_mroute.h | 2 |
2 files changed, 2 insertions, 3 deletions
diff --git a/sys/netinet/ip_mroute.c b/sys/netinet/ip_mroute.c index aa42937..979509c 100644 --- a/sys/netinet/ip_mroute.c +++ b/sys/netinet/ip_mroute.c @@ -1749,7 +1749,6 @@ send_packet(struct vif *vifp, struct mbuf *m) struct ip_moptions imo; struct in_multi *imm[2]; int error; - static struct route ro; /* XXX */ VIF_LOCK_ASSERT(); @@ -1767,7 +1766,7 @@ send_packet(struct vif *vifp, struct mbuf *m) * should get rejected because they appear to come from * the loopback interface, thus preventing looping. */ - error = ip_output(m, NULL, &ro, IP_FORWARDING, &imo, NULL); + error = ip_output(m, NULL, &vifp->v_route, IP_FORWARDING, &imo, NULL); if (mrtdebug & DEBUG_XMIT) { log(LOG_DEBUG, "phyint_send on vif %td err %d\n", vifp - viftable, error); diff --git a/sys/netinet/ip_mroute.h b/sys/netinet/ip_mroute.h index f2530a8..c756d84 100644 --- a/sys/netinet/ip_mroute.h +++ b/sys/netinet/ip_mroute.h @@ -262,7 +262,7 @@ struct vif { u_long v_pkt_out; /* # pkts out on interface */ u_long v_bytes_in; /* # bytes in on interface */ u_long v_bytes_out; /* # bytes out on interface */ - struct route v_route; /* cached route if this is a tunnel */ + struct route v_route; /* cached route */ u_int v_rsvp_on; /* RSVP listening on this vif */ struct socket *v_rsvpd; /* RSVP daemon socket */ }; |