diff options
-rw-r--r-- | sys/netinet/in_fib.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/netinet/in_fib.c b/sys/netinet/in_fib.c index c8e6c965bf25..451b37474e32 100644 --- a/sys/netinet/in_fib.c +++ b/sys/netinet/in_fib.c @@ -97,7 +97,10 @@ fib4_rte_to_nh_extended(struct rtentry *rte, struct in_addr dst, struct sockaddr_in *gw; struct in_ifaddr *ia; - pnh4->nh_ifp = rte->rt_ifa->ifa_ifp; + if ((flags & NHR_IFAIF) != 0) + pnh4->nh_ifp = rte->rt_ifa->ifa_ifp; + else + pnh4->nh_ifp = rte->rt_ifp; pnh4->nh_mtu = min(rte->rt_mtu, rte->rt_ifp->if_mtu); if (rte->rt_flags & RTF_GATEWAY) { gw = (struct sockaddr_in *)rte->rt_gateway; |