Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet6/udp6_usrreq.c
Show First 20 Lines • Show All 778 Lines • ▼ Show 20 Lines | if (hasv4addr) { | ||||
* potential race in which the factors causing us to | * potential race in which the factors causing us to | ||||
* select the UDPv4 output routine are invalidated? | * select the UDPv4 output routine are invalidated? | ||||
*/ | */ | ||||
INP_UNLOCK(inp); | INP_UNLOCK(inp); | ||||
if (sin6) | if (sin6) | ||||
in6_sin6_2_sin_in_sock((struct sockaddr *)sin6); | in6_sin6_2_sin_in_sock((struct sockaddr *)sin6); | ||||
pru = inetsw[ip_protox[nxt]].pr_usrreqs; | pru = inetsw[ip_protox[nxt]].pr_usrreqs; | ||||
/* addr will just be freed in sendit(). */ | /* addr will just be freed in sendit(). */ | ||||
return ((*pru->pru_send)(so, flags_arg, m, | return ((*pru->pru_send)(so, flags_arg | PRUS_IPV6, m, | ||||
(struct sockaddr *)sin6, control, td)); | (struct sockaddr *)sin6, control, td)); | ||||
} | } | ||||
} else | } else | ||||
#endif | #endif | ||||
if (sin6 && IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr)) { | if (sin6 && IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr)) { | ||||
/* | /* | ||||
* Given this is either an IPv6-only socket or no INET is | * Given this is either an IPv6-only socket or no INET is | ||||
* supported we will fail the send if the given destination | * supported we will fail the send if the given destination | ||||
▲ Show 20 Lines • Show All 584 Lines • Show Last 20 Lines |