aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/netinet/in_fib.c5
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;