mirror of
https://github.com/python/cpython.git
synced 2025-10-21 22:22:48 +00:00
Issue #21455: Add a default backlog to socket.listen().
This commit is contained in:
parent
2b00c4999d
commit
644b8f52a8
4 changed files with 27 additions and 17 deletions
|
@ -121,7 +121,7 @@ getpeername() -- return remote address [*]\n\
|
|||
getsockname() -- return local address\n\
|
||||
getsockopt(level, optname[, buflen]) -- get socket options\n\
|
||||
gettimeout() -- return timeout or None\n\
|
||||
listen(n) -- start listening for incoming connections\n\
|
||||
listen([n]) -- start listening for incoming connections\n\
|
||||
recv(buflen[, flags]) -- receive data\n\
|
||||
recv_into(buffer[, nbytes[, flags]]) -- receive data (into a buffer)\n\
|
||||
recvfrom(buflen[, flags]) -- receive data and sender\'s address\n\
|
||||
|
@ -2534,14 +2534,16 @@ info is a pair (hostaddr, port).");
|
|||
/* s.listen(n) method */
|
||||
|
||||
static PyObject *
|
||||
sock_listen(PySocketSockObject *s, PyObject *arg)
|
||||
sock_listen(PySocketSockObject *s, PyObject *args)
|
||||
{
|
||||
int backlog;
|
||||
/* We try to choose a default backlog high enough to avoid connection drops
|
||||
* for common workloads, yet not too high to limit resource usage. */
|
||||
int backlog = Py_MIN(SOMAXCONN, 128);
|
||||
int res;
|
||||
|
||||
backlog = _PyLong_AsInt(arg);
|
||||
if (backlog == -1 && PyErr_Occurred())
|
||||
if (!PyArg_ParseTuple(args, "|i:listen", &backlog))
|
||||
return NULL;
|
||||
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
/* To avoid problems on systems that don't allow a negative backlog
|
||||
* (which doesn't make sense anyway) we force a minimum value of 0. */
|
||||
|
@ -2556,12 +2558,12 @@ sock_listen(PySocketSockObject *s, PyObject *arg)
|
|||
}
|
||||
|
||||
PyDoc_STRVAR(listen_doc,
|
||||
"listen(backlog)\n\
|
||||
"listen([backlog])\n\
|
||||
\n\
|
||||
Enable a server to accept connections. The backlog argument must be at\n\
|
||||
least 0 (if it is lower, it is set to 0); it specifies the number of\n\
|
||||
Enable a server to accept connections. If backlog is specified, it must be\n\
|
||||
at least 0 (if it is lower, it is set to 0); it specifies the number of\n\
|
||||
unaccepted connections that the system will allow before refusing new\n\
|
||||
connections.");
|
||||
connections. If not specified, a default reasonable value is chosen.");
|
||||
|
||||
|
||||
/*
|
||||
|
@ -3795,7 +3797,7 @@ static PyMethodDef sock_methods[] = {
|
|||
{"share", (PyCFunction)sock_share, METH_VARARGS,
|
||||
sock_share_doc},
|
||||
#endif
|
||||
{"listen", (PyCFunction)sock_listen, METH_O,
|
||||
{"listen", (PyCFunction)sock_listen, METH_VARARGS,
|
||||
listen_doc},
|
||||
{"recv", (PyCFunction)sock_recv, METH_VARARGS,
|
||||
recv_doc},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue