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 | |||||