diff options
author | melifaro <melifaro@FreeBSD.org> | 2016-01-04 17:23:10 +0000 |
---|---|---|
committer | melifaro <melifaro@FreeBSD.org> | 2016-01-04 17:23:10 +0000 |
commit | c0fa0ea25ea7ae4129f664c22895ef264496d118 (patch) | |
tree | 52b76638ae114300b3604c84fd608e2482611642 | |
parent | a8b0ff721ade25215f688e760c87542c84a6651a (diff) | |
download | FreeBSD-src-c0fa0ea25ea7ae4129f664c22895ef264496d118.zip FreeBSD-src-c0fa0ea25ea7ae4129f664c22895ef264496d118.tar.gz |
Maintain consistent behavior: make fib4_lookup_nh_ext() return
rt_ifp pointer by default, as done by other fib lookup functions.
-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 c8e6c96..451b3747 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; |