From 45a8de88c6a256027e5ed054853ddba7a42fabb5 Mon Sep 17 00:00:00 2001 From: "Alexander V. Chernikov" Date: Mon, 4 Jan 2016 17:23:10 +0000 Subject: [PATCH] Maintain consistent behavior: make fib4_lookup_nh_ext() return rt_ifp pointer by default, as done by other fib lookup functions. --- sys/netinet/in_fib.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sys/netinet/in_fib.c b/sys/netinet/in_fib.c index c8e6c965bf2..451b37474e3 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; -- 2.45.2