Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet6/udp6_usrreq.c
Show First 20 Lines • Show All 1,316 Lines • ▼ Show 20 Lines | |||||
bad: | bad: | ||||
if (control) | if (control) | ||||
m_freem(control); | m_freem(control); | ||||
m_freem(m); | m_freem(m); | ||||
return (error); | return (error); | ||||
} | } | ||||
struct pr_usrreqs udp6_usrreqs = { | #define UDP6_PROTOSW \ | ||||
.pru_abort = udp6_abort, | .pr_type = SOCK_DGRAM, \ | ||||
.pru_attach = udp6_attach, | .pr_flags = PR_ATOMIC|PR_ADDR|PR_CAPATTACH, \ | ||||
.pru_bind = udp6_bind, | .pr_ctloutput = ip6_ctloutput, \ | ||||
.pru_connect = udp6_connect, | .pr_abort = udp6_abort, \ | ||||
.pru_control = in6_control, | .pr_attach = udp6_attach, \ | ||||
.pru_detach = udp6_detach, | .pr_bind = udp6_bind, \ | ||||
.pru_disconnect = udp6_disconnect, | .pr_connect = udp6_connect, \ | ||||
.pru_peeraddr = in6_mapped_peeraddr, | .pr_control = in6_control, \ | ||||
.pru_send = udp6_send, | .pr_detach = udp6_detach, \ | ||||
.pru_shutdown = udp_shutdown, | .pr_disconnect = udp6_disconnect, \ | ||||
.pru_sockaddr = in6_mapped_sockaddr, | .pr_peeraddr = in6_mapped_peeraddr, \ | ||||
.pru_soreceive = soreceive_dgram, | .pr_send = udp6_send, \ | ||||
.pru_sosend = sosend_dgram, | .pr_shutdown = udp_shutdown, \ | ||||
.pru_sosetlabel = in_pcbsosetlabel, | .pr_sockaddr = in6_mapped_sockaddr, \ | ||||
.pru_close = udp6_close | .pr_soreceive = soreceive_dgram, \ | ||||
.pr_sosend = sosend_dgram, \ | |||||
.pr_sosetlabel = in_pcbsosetlabel, \ | |||||
.pr_close = udp6_close | |||||
struct protosw udp6_protosw = { | |||||
.pr_protocol = IPPROTO_UDP, | |||||
UDP6_PROTOSW | |||||
}; | |||||
struct protosw udplite6_protosw = { | |||||
.pr_protocol = IPPROTO_UDPLITE, | |||||
UDP6_PROTOSW | |||||
}; | }; | ||||
static void | static void | ||||
udp6_init(void *arg __unused) | udp6_init(void *arg __unused) | ||||
{ | { | ||||
IP6PROTO_REGISTER(IPPROTO_UDP, udp6_input, udp6_ctlinput); | IP6PROTO_REGISTER(IPPROTO_UDP, udp6_input, udp6_ctlinput); | ||||
IP6PROTO_REGISTER(IPPROTO_UDPLITE, udp6_input, udplite6_ctlinput); | IP6PROTO_REGISTER(IPPROTO_UDPLITE, udp6_input, udplite6_ctlinput); | ||||
} | } | ||||
SYSINIT(udp6_init, SI_SUB_PROTO_DOMAIN, SI_ORDER_THIRD, udp6_init, NULL); | SYSINIT(udp6_init, SI_SUB_PROTO_DOMAIN, SI_ORDER_THIRD, udp6_init, NULL); |