summaryrefslogtreecommitdiffstats
path: root/sys/kern/uipc_socket.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern/uipc_socket.c')
-rw-r--r--sys/kern/uipc_socket.c21
1 files changed, 6 insertions, 15 deletions
diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c
index a94e7cb..32375aa 100644
--- a/sys/kern/uipc_socket.c
+++ b/sys/kern/uipc_socket.c
@@ -294,21 +294,8 @@ solisten(so, backlog, td)
int backlog;
struct thread *td;
{
- int error;
-
- error = (*so->so_proto->pr_usrreqs->pru_listen)(so, td);
- if (error)
- return (error);
- /*
- * XXXRW: The following state adjustment should occur in
- * solisten_proto(), but we don't currently pass the backlog request
- * to the protocol via pru_listen().
- */
- if (backlog < 0 || backlog > somaxconn)
- backlog = somaxconn;
- so->so_qlimit = backlog;
- return (0);
+ return ((*so->so_proto->pr_usrreqs->pru_listen)(so, backlog, td));
}
int
@@ -325,12 +312,16 @@ solisten_proto_check(so)
}
void
-solisten_proto(so)
+solisten_proto(so, backlog)
struct socket *so;
+ int backlog;
{
SOCK_LOCK_ASSERT(so);
+ if (backlog < 0 || backlog > somaxconn)
+ backlog = somaxconn;
+ so->so_qlimit = backlog;
so->so_options |= SO_ACCEPTCONN;
}
OpenPOWER on IntegriCloud