This broke socket splicing between inet and inet6 sockets. sosplice() has this check:
if (sosp->so_proto->pr_usrreqs != so->so_proto->pr_usrreqs) { error = EPROTONOSUPPORT; goto frele; } That does not work anymore after splitting {tcp,udp}6_usrreqs. bluhm On Fri, Sep 02, 2022 at 07:12:32AM -0600, Vitaliy Makkoveev wrote: > CVSROOT: /cvs > Module name: src > Changes by: m...@cvs.openbsd.org 2022/09/02 07:12:32 > > Modified files: > sys/kern : sys_socket.c uipc_usrreq.c > sys/net : if.c pfkeyv2.c rtsock.c > sys/netinet : ip_divert.c ip_gre.c raw_ip.c tcp_usrreq.c > tcp_var.h udp_usrreq.c udp_var.h > sys/netinet6 : in6_proto.c ip6_divert.c raw_ip6.c > sys/sys : protosw.h > > Log message: > Move PRU_CONTROL request to (*pru_control)(). > > The 'proc *' arg is not used for PRU_CONTROL request, so remove it from > pru_control() wrapper. > > Split out {tcp,udp}6_usrreqs from {tcp,udp}_usrreqs and use them for > inet6 case. > > ok guenther@ bluhm@