summaryrefslogtreecommitdiffstats
path: root/sys/sys/protosw.h
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2005-10-30 19:44:40 +0000
committerrwatson <rwatson@FreeBSD.org>2005-10-30 19:44:40 +0000
commit49831ed8da06ffadf684484671b4561c9ac55f9f (patch)
tree779e3d7a8028f1ac29696c62ad8b70ba7bc70d2e /sys/sys/protosw.h
parent1d93f083bf03400439b86271732e2b3f17ba284c (diff)
downloadFreeBSD-src-49831ed8da06ffadf684484671b4561c9ac55f9f.zip
FreeBSD-src-49831ed8da06ffadf684484671b4561c9ac55f9f.tar.gz
Push the assignment of a new or updated so_qlimit from solisten()
following the protocol pru_listen() call to solisten_proto(), so that it occurs under the socket lock acquisition that also sets SO_ACCEPTCONN. This requires passing the new backlog parameter to the protocol, which also allows the protocol to be aware of changes in queue limit should it wish to do something about the new queue limit. This continues a move towards the socket layer acting as a library for the protocol. Bump __FreeBSD_version due to a change in the in-kernel protocol interface. This change has been tested with IPv4 and UNIX domain sockets, but not other protocols.
Diffstat (limited to 'sys/sys/protosw.h')
-rw-r--r--sys/sys/protosw.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/sys/protosw.h b/sys/sys/protosw.h
index 132b199..bcf263f 100644
--- a/sys/sys/protosw.h
+++ b/sys/sys/protosw.h
@@ -208,7 +208,8 @@ struct pr_usrreqs {
struct ifnet *ifp, struct thread *td);
int (*pru_detach)(struct socket *so);
int (*pru_disconnect)(struct socket *so);
- int (*pru_listen)(struct socket *so, struct thread *td);
+ int (*pru_listen)(struct socket *so, int backlog,
+ struct thread *td);
int (*pru_peeraddr)(struct socket *so, struct sockaddr **nam);
int (*pru_rcvd)(struct socket *so, int flags);
int (*pru_rcvoob)(struct socket *so, struct mbuf *m, int flags);
@@ -257,7 +258,7 @@ int pru_control_notsupp(struct socket *so, u_long cmd, caddr_t data,
struct ifnet *ifp, struct thread *td);
int pru_detach_notsupp(struct socket *so);
int pru_disconnect_notsupp(struct socket *so);
-int pru_listen_notsupp(struct socket *so, struct thread *td);
+int pru_listen_notsupp(struct socket *so, int backlog, struct thread *td);
int pru_peeraddr_notsupp(struct socket *so, struct sockaddr **nam);
int pru_rcvd_notsupp(struct socket *so, int flags);
int pru_rcvoob_notsupp(struct socket *so, struct mbuf *m, int flags);
OpenPOWER on IntegriCloud