-{
- .pr_type = 0,
- .pr_protocol = 0,
- .pr_init = ip_init,
- .pr_drain = ip_drain,
- .pr_usrreqs = &nousrreqs,
-},
-{
- .pr_type = SOCK_DGRAM,
- .pr_protocol = IPPROTO_UDP,
- .pr_flags = PR_ATOMIC|PR_ADDR|PR_PROTOLOCK|PR_PCBLOCK|
- PR_EVCONNINFO,
- .pr_input = udp_input,
- .pr_ctlinput = udp_ctlinput,
- .pr_ctloutput = udp_ctloutput,
- .pr_init = udp_init,
- .pr_usrreqs = &udp_usrreqs,
- .pr_lock = udp_lock,
- .pr_unlock = udp_unlock,
- .pr_getlock = udp_getlock,
-},
-{
- .pr_type = SOCK_STREAM,
- .pr_protocol = IPPROTO_TCP,
- .pr_flags = PR_CONNREQUIRED|PR_WANTRCVD|PR_PCBLOCK|
- PR_PROTOLOCK|PR_DISPOSE|PR_EVCONNINFO,
- .pr_input = tcp_input,
- .pr_ctlinput = tcp_ctlinput,
- .pr_ctloutput = tcp_ctloutput,
- .pr_init = tcp_init,
- .pr_drain = tcp_drain,
- .pr_usrreqs = &tcp_usrreqs,
- .pr_lock = tcp_lock,
- .pr_unlock = tcp_unlock,
- .pr_getlock = tcp_getlock,
-},
-{
- .pr_type = SOCK_RAW,
- .pr_protocol = IPPROTO_RAW,
- .pr_flags = PR_ATOMIC|PR_ADDR,
- .pr_input = rip_input,
- .pr_ctlinput = rip_ctlinput,
- .pr_ctloutput = rip_ctloutput,
- .pr_usrreqs = &rip_usrreqs,
- .pr_unlock = rip_unlock,
-},
-{
- .pr_type = SOCK_RAW,
- .pr_protocol = IPPROTO_ICMP,
- .pr_flags = PR_ATOMIC|PR_ADDR|PR_LASTHDR,
- .pr_input = icmp_input,
- .pr_ctloutput = rip_ctloutput,
- .pr_usrreqs = &rip_usrreqs,
- .pr_unlock = rip_unlock,
-},
-{
- .pr_type = SOCK_DGRAM,
- .pr_protocol = IPPROTO_ICMP,
- .pr_flags = PR_ATOMIC|PR_ADDR|PR_LASTHDR,
- .pr_input = icmp_input,
- .pr_ctloutput = icmp_dgram_ctloutput,
- .pr_usrreqs = &icmp_dgram_usrreqs,
- .pr_unlock = rip_unlock,
-},
-{
- .pr_type = SOCK_RAW,
- .pr_protocol = IPPROTO_IGMP,
- .pr_flags = PR_ATOMIC|PR_ADDR|PR_LASTHDR,
- .pr_input = igmp_input,
- .pr_ctloutput = rip_ctloutput,
- .pr_init = igmp_init,
- .pr_usrreqs = &rip_usrreqs,
- .pr_unlock = rip_unlock,
-},
-#if MROUTING
-{
- .pr_type = SOCK_RAW,
- .pr_protocol = IPPROTO_RSVP,
- .pr_flags = PR_ATOMIC|PR_ADDR|PR_LASTHDR,
- .pr_input = rsvp_input,
- .pr_ctloutput = rip_ctloutput,
- .pr_usrreqs = &rip_usrreqs,
- .pr_unlock = rip_unlock,
-},
-#endif /* MROUTING */
-{
- .pr_type = SOCK_RAW,
- .pr_protocol = IPPROTO_GRE,
- .pr_flags = PR_ATOMIC|PR_ADDR,
- .pr_input = gre_input,
- .pr_ctlinput = rip_ctlinput,
- .pr_ctloutput = rip_ctloutput,
- .pr_usrreqs = &rip_usrreqs,
- .pr_unlock = rip_unlock,
-},
+ {
+ .pr_type = 0,
+ .pr_protocol = 0,
+ .pr_init = ip_init,
+ .pr_drain = ip_drain,
+ .pr_usrreqs = &nousrreqs,
+ },
+ {
+ .pr_type = SOCK_DGRAM,
+ .pr_protocol = IPPROTO_UDP,
+ .pr_flags = PR_ATOMIC | PR_ADDR | PR_PROTOLOCK | PR_PCBLOCK |
+ PR_EVCONNINFO | PR_PRECONN_WRITE,
+ .pr_input = udp_input,
+ .pr_ctlinput = udp_ctlinput,
+ .pr_ctloutput = udp_ctloutput,
+ .pr_init = udp_init,
+ .pr_usrreqs = &udp_usrreqs,
+ .pr_lock = udp_lock,
+ .pr_unlock = udp_unlock,
+ .pr_getlock = udp_getlock,
+ .pr_update_last_owner = inp_update_last_owner,
+ .pr_copy_last_owner = inp_copy_last_owner,
+ },
+ {
+ .pr_type = SOCK_STREAM,
+ .pr_protocol = IPPROTO_TCP,
+ .pr_flags = PR_CONNREQUIRED | PR_WANTRCVD | PR_PCBLOCK |
+ PR_PROTOLOCK | PR_DISPOSE | PR_EVCONNINFO |
+ PR_PRECONN_WRITE | PR_DATA_IDEMPOTENT,
+ .pr_input = tcp_input,
+ .pr_ctlinput = tcp_ctlinput,
+ .pr_ctloutput = tcp_ctloutput,
+ .pr_init = tcp_init,
+ .pr_drain = tcp_drain,
+ .pr_usrreqs = &tcp_usrreqs,
+ .pr_lock = tcp_lock,
+ .pr_unlock = tcp_unlock,
+ .pr_getlock = tcp_getlock,
+ .pr_update_last_owner = inp_update_last_owner,
+ .pr_copy_last_owner = inp_copy_last_owner,
+ },
+ {
+ .pr_type = SOCK_RAW,
+ .pr_protocol = IPPROTO_RAW,
+ .pr_flags = PR_ATOMIC | PR_ADDR,
+ .pr_input = rip_input,
+ .pr_ctlinput = rip_ctlinput,
+ .pr_ctloutput = rip_ctloutput,
+ .pr_usrreqs = &rip_usrreqs,
+ .pr_unlock = rip_unlock,
+ .pr_update_last_owner = inp_update_last_owner,
+ .pr_copy_last_owner = inp_copy_last_owner,
+ },
+ {
+ .pr_type = SOCK_RAW,
+ .pr_protocol = IPPROTO_ICMP,
+ .pr_flags = PR_ATOMIC | PR_ADDR | PR_LASTHDR,
+ .pr_input = icmp_input,
+ .pr_ctloutput = rip_ctloutput,
+ .pr_usrreqs = &rip_usrreqs,
+ .pr_unlock = rip_unlock,
+ .pr_update_last_owner = inp_update_last_owner,
+ .pr_copy_last_owner = inp_copy_last_owner,
+ },
+ {
+ .pr_type = SOCK_DGRAM,
+ .pr_protocol = IPPROTO_ICMP,
+ .pr_flags = PR_ATOMIC | PR_ADDR | PR_LASTHDR,
+ .pr_input = icmp_input,
+ .pr_ctloutput = icmp_dgram_ctloutput,
+ .pr_usrreqs = &icmp_dgram_usrreqs,
+ .pr_unlock = rip_unlock,
+ .pr_update_last_owner = inp_update_last_owner,
+ .pr_copy_last_owner = inp_copy_last_owner,
+ },
+ {
+ .pr_type = SOCK_RAW,
+ .pr_protocol = IPPROTO_IGMP,
+ .pr_flags = PR_ATOMIC | PR_ADDR | PR_LASTHDR,
+ .pr_input = igmp_input,
+ .pr_ctloutput = rip_ctloutput,
+ .pr_init = igmp_init,
+ .pr_usrreqs = &rip_usrreqs,
+ .pr_unlock = rip_unlock,
+ .pr_update_last_owner = inp_update_last_owner,
+ .pr_copy_last_owner = inp_copy_last_owner,
+ },
+ {
+ .pr_type = SOCK_RAW,
+ .pr_protocol = IPPROTO_GRE,
+ .pr_flags = PR_ATOMIC | PR_ADDR,
+ .pr_input = gre_input,
+ .pr_ctlinput = rip_ctlinput,
+ .pr_ctloutput = rip_ctloutput,
+ .pr_usrreqs = &rip_usrreqs,
+ .pr_unlock = rip_unlock,
+ .pr_update_last_owner = inp_update_last_owner,
+ .pr_copy_last_owner = inp_copy_last_owner,
+ },