mirror of https://github.com/python/cpython.git
Add a wrapper function for ssl() on Windows. Inspired by SF patch
# 409287, ssl fix when using _socketobject, by Robin Dunn. I took the opportunity to improve the way it deals with reload(socket) for the socket function as well.
This commit is contained in:
parent
bfb9184ba8
commit
3f69f21644
|
@ -45,21 +45,26 @@
|
|||
__all__ = ["getfqdn"]
|
||||
import _socket
|
||||
__all__.extend(os._get_exports_list(_socket))
|
||||
del _socket
|
||||
|
||||
if (sys.platform.lower().startswith("win")
|
||||
or (hasattr(os, 'uname') and os.uname()[0] == "BeOS")
|
||||
or (sys.platform=="RISCOS")):
|
||||
|
||||
# be sure this happens only once, even in the face of reload():
|
||||
try:
|
||||
_realsocketcall
|
||||
except NameError:
|
||||
_realsocketcall = socket
|
||||
_realsocketcall = _socket.socket
|
||||
|
||||
def socket(family, type, proto=0):
|
||||
return _socketobject(_realsocketcall(family, type, proto))
|
||||
|
||||
try:
|
||||
_realsslcall = _socket.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)
|
||||
|
||||
|
||||
# WSA error codes
|
||||
if sys.platform.lower().startswith("win"):
|
||||
|
|
Loading…
Reference in New Issue