Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet6/udp6_usrreq.c
Show First 20 Lines • Show All 505 Lines • ▼ Show 20 Lines | if (inp == NULL) { | ||||
else | else | ||||
UDP_PROBE(receive, NULL, NULL, ip6, NULL, uh); | UDP_PROBE(receive, NULL, NULL, ip6, NULL, uh); | ||||
UDPSTAT_INC(udps_noport); | UDPSTAT_INC(udps_noport); | ||||
if (m->m_flags & M_MCAST) { | if (m->m_flags & M_MCAST) { | ||||
printf("UDP6: M_MCAST is set in a unicast packet.\n"); | printf("UDP6: M_MCAST is set in a unicast packet.\n"); | ||||
UDPSTAT_INC(udps_noportmcast); | UDPSTAT_INC(udps_noportmcast); | ||||
goto badunlocked; | goto badunlocked; | ||||
} | } | ||||
if (V_udp_blackhole) | if (V_udp_blackhole && (V_udp_blackhole_local || | ||||
!in6_localaddr(&ip6->ip6_src))) | |||||
goto badunlocked; | goto badunlocked; | ||||
icmp6_error(m, ICMP6_DST_UNREACH, ICMP6_DST_UNREACH_NOPORT, 0); | icmp6_error(m, ICMP6_DST_UNREACH, ICMP6_DST_UNREACH_NOPORT, 0); | ||||
*mp = NULL; | *mp = NULL; | ||||
return (IPPROTO_DONE); | return (IPPROTO_DONE); | ||||
} | } | ||||
INP_RLOCK_ASSERT(inp); | INP_RLOCK_ASSERT(inp); | ||||
up = intoudpcb(inp); | up = intoudpcb(inp); | ||||
if (cscov_partial) { | if (cscov_partial) { | ||||
▲ Show 20 Lines • Show All 848 Lines • Show Last 20 Lines |