Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet6/ip6_output.c
Show First 20 Lines • Show All 702 Lines • ▼ Show 20 Lines | if (ro->ro_nh != NULL && fwd_tag == NULL && | ||||
error = in6_selectroute(&dst_sa, opt, im6o, ro, &ifp, | error = in6_selectroute(&dst_sa, opt, im6o, ro, &ifp, | ||||
&nh, fibnum, m->m_pkthdr.flowid); | &nh, fibnum, m->m_pkthdr.flowid); | ||||
if (error != 0) { | if (error != 0) { | ||||
IP6STAT_INC(ip6s_noroute); | IP6STAT_INC(ip6s_noroute); | ||||
if (ifp != NULL) | if (ifp != NULL) | ||||
in6_ifstat_inc(ifp, ifs6_out_discard); | in6_ifstat_inc(ifp, ifs6_out_discard); | ||||
goto bad; | goto bad; | ||||
} | } | ||||
if (ifp != NULL) | if (ifp == NULL) { | ||||
error = EHOSTUNREACH; | |||||
goto bad; | |||||
} | |||||
mtu = ifp->if_mtu; | mtu = ifp->if_mtu; | ||||
} | } | ||||
if (nh == NULL) { | if (nh == NULL) { | ||||
/* | /* | ||||
* If in6_selectroute() does not return a nexthop | * If in6_selectroute() does not return a nexthop | ||||
* dst may not have been updated. | * dst may not have been updated. | ||||
*/ | */ | ||||
*dst = dst_sa; /* XXX */ | *dst = dst_sa; /* XXX */ | ||||
} else { | } else { | ||||
▲ Show 20 Lines • Show All 2,666 Lines • Show Last 20 Lines |