Bring in fix from NetBSD's revision 1.16:

Pass the correct destination address for the route-to-gateway case.

PR:		kern/10607
MFC after:	2 weeks
This commit is contained in:
ru 2001-06-26 09:00:50 +00:00
parent 97e329557f
commit e2738b93f2

View File

@ -109,6 +109,7 @@ ipflow_fastforward(
struct ip *ip;
struct ipflow *ipf;
struct rtentry *rt;
struct sockaddr *dst;
int error;
/*
@ -158,7 +159,12 @@ ipflow_fastforward(
*/
ipf->ipf_uses++;
ipf->ipf_timer = IPFLOW_TIMER;
if ((error = (*rt->rt_ifp->if_output)(rt->rt_ifp, m, &ipf->ipf_ro.ro_dst, rt)) != 0) {
if (rt->rt_flags & RTF_GATEWAY)
dst = rt->rt_gateway;
else
dst = &ipf->ipf_ro.ro_dst;
if ((error = (*rt->rt_ifp->if_output)(rt->rt_ifp, m, dst, rt)) != 0) {
if (error == ENOBUFS)
ipf->ipf_dropped++;
else