The socket module now always uses the _socketobject wrapper class, even on

platforms which have dup(2).  The makefile() method is built directly on top
of the socket without duplicating the file descriptor, allowing timeouts to
work properly.  Includes a new test case (urllibnet) which requires the
network resource.

Closes bug 707074.
This commit is contained in:
Skip Montanaro 2003-03-30 04:54:24 +00:00
parent a942b9931c
commit 89feabc7f5
3 changed files with 38 additions and 5 deletions

View file

@ -59,13 +59,10 @@ if _have_ssl:
__all__.extend(os._get_exports_list(_ssl))
_realsocket = socket
_needwrapper = False
if (sys.platform.lower().startswith("win")
or (hasattr(os, 'uname') and os.uname()[0] == "BeOS")
or sys.platform=="riscos"):
_needwrapper = True
if _have_ssl:
_realssl = ssl
def ssl(sock, keyfile=None, certfile=None):
@ -180,8 +177,7 @@ class _socketobject(object):
exec _s % (_m, _m, _m, _m)
del _m, _s
if _needwrapper:
socket = SocketType = _socketobject
socket = SocketType = _socketobject
class _fileobject(object):
"""Faux file object attached to a socket object."""