Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet6/frag6.c
Show First 20 Lines • Show All 390 Lines • ▼ Show 20 Lines | if (m == NULL) { | ||||
*mp = NULL; | *mp = NULL; | ||||
return (IPPROTO_DONE); | return (IPPROTO_DONE); | ||||
} | } | ||||
} | } | ||||
ip6 = mtod(m, struct ip6_hdr *); | ip6 = mtod(m, struct ip6_hdr *); | ||||
dstifp = NULL; | dstifp = NULL; | ||||
/* Find the destination interface of the packet. */ | /* Find the destination interface of the packet. */ | ||||
ia6 = in6ifa_ifwithaddr(&ip6->ip6_dst, 0 /* XXX */); | ia6 = in6ifa_ifwithaddr(&ip6->ip6_dst, 0 /* XXX */, false); | ||||
if (ia6 != NULL) { | if (ia6 != NULL) | ||||
dstifp = ia6->ia_ifp; | dstifp = ia6->ia_ifp; | ||||
ifa_free(&ia6->ia_ifa); | |||||
} | |||||
/* Jumbo payload cannot contain a fragment header. */ | /* Jumbo payload cannot contain a fragment header. */ | ||||
if (ip6->ip6_plen == 0) { | if (ip6->ip6_plen == 0) { | ||||
icmp6_error(m, ICMP6_PARAM_PROB, ICMP6_PARAMPROB_HEADER, offset); | icmp6_error(m, ICMP6_PARAM_PROB, ICMP6_PARAMPROB_HEADER, offset); | ||||
in6_ifstat_inc(dstifp, ifs6_reass_fail); | in6_ifstat_inc(dstifp, ifs6_reass_fail); | ||||
*mp = NULL; | *mp = NULL; | ||||
return (IPPROTO_DONE); | return (IPPROTO_DONE); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 640 Lines • Show Last 20 Lines |