Repair so that importing socket doesn't blow up on platforms that lack

SSL support.  test_socket.py passes again on Windows.

Added an XXX about adding _ssl exports to the __all__ list (it doesn't
appear to be doing anything about that now, but since I don't have SSL
on this box I can't really tell).
This commit is contained in:
Tim Peters 2002-02-17 04:25:24 +00:00
parent 643a7fc62f
commit 18e6778bcd
1 changed files with 12 additions and 7 deletions

View File

@ -38,37 +38,42 @@ Many other constants may be defined; these may be used in calls to
the setsockopt() and getsockopt() methods.
"""
import _socket
from _socket import *
SSL_EXISTS = 1
try:
import _ssl
from _ssl import *
except ImportError:
pass
SSL_EXISTS = 0
import os, sys
__all__ = ["getfqdn"]
import _socket
__all__.extend(os._get_exports_list(_socket))
# XXX shouldn't there be something similar to the above for _ssl exports?
if (sys.platform.lower().startswith("win")
or (hasattr(os, 'uname') and os.uname()[0] == "BeOS")
or (sys.platform=="riscos")):
or sys.platform=="riscos"):
_realsocketcall = _socket.socket
def socket(family, type, proto=0):
return _socketobject(_realsocketcall(family, type, proto))
try:
if SSL_EXISTS:
_realsslcall = _ssl.ssl
except AttributeError:
pass # No ssl
else:
def ssl(sock, keyfile=None, certfile=None):
if hasattr(sock, "_sock"):
sock = sock._sock
return _realsslcall(sock, keyfile, certfile)
del _socket
if SSL_EXISTS:
del _ssl
del SSL_EXISTS
# WSA error codes
if sys.platform.lower().startswith("win"):