Author: Armin Rigo <ar...@tunes.org> Branch: py3.5 Changeset: r87091:22dc852ebf3b Date: 2016-09-13 19:30 +0200 http://bitbucket.org/pypy/pypy/changeset/22dc852ebf3b/
Log: SOMAXCONN, socket.listen(no argument) diff --git a/pypy/module/_socket/__init__.py b/pypy/module/_socket/__init__.py --- a/pypy/module/_socket/__init__.py +++ b/pypy/module/_socket/__init__.py @@ -1,4 +1,6 @@ from pypy.interpreter.mixedmodule import MixedModule +from rpython.rlib.rsocket import SOMAXCONN + class Module(MixedModule): @@ -12,6 +14,7 @@ 'herror' : 'interp_socket.get_error(space, "herror")', 'gaierror' : 'interp_socket.get_error(space, "gaierror")', 'timeout' : 'interp_socket.get_error(space, "timeout")', + 'SOMAXCONN' : 'space.wrap(%d)' % SOMAXCONN, } def startup(self, space): diff --git a/pypy/module/_socket/interp_socket.py b/pypy/module/_socket/interp_socket.py --- a/pypy/module/_socket/interp_socket.py +++ b/pypy/module/_socket/interp_socket.py @@ -3,7 +3,7 @@ from rpython.rlib.rarithmetic import intmask from rpython.rlib.rsocket import ( RSocket, AF_INET, SOCK_STREAM, SocketError, SocketErrorWithErrno, - RSocketError + RSocketError, SOMAXCONN ) from rpython.rtyper.lltypesystem import lltype, rffi @@ -359,13 +359,16 @@ return space.wrap(timeout) @unwrap_spec(backlog="c_int") - def listen_w(self, space, backlog): + def listen_w(self, space, backlog=min(SOMAXCONN, 128)): """listen(backlog) Enable a server to accept connections. The backlog argument must be at - least 1; it specifies the number of unaccepted connection that the system - will allow before refusing new connections. + least 0 (if it is lower, it is set to 0); it specifies the number of + unaccepted connection that the system will allow before refusing new + connections. If not specified, a default reasonable value is chosen. """ + if backlog < 0: + backlog = 0 try: self.sock.listen(backlog) except SocketError as e: diff --git a/pypy/module/_socket/test/test_sock_app.py b/pypy/module/_socket/test/test_sock_app.py --- a/pypy/module/_socket/test/test_sock_app.py +++ b/pypy/module/_socket/test/test_sock_app.py @@ -584,6 +584,11 @@ s.sendto(memoryview(b''), ('localhost', 9)) # Send to discard port. s.close() + def test_listen_default(self): + import _socket + _socket.socket().listen() + assert isinstance(_socket.SOMAXCONN, int) + def test_unix_socket_connect(self): import _socket, os if not hasattr(_socket, 'AF_UNIX'): _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit