mirror of
https://github.com/python/cpython.git
synced 2025-07-30 06:34:15 +00:00
fix for release blocker 3910, 2.6 regression in socket.ssl method
This commit is contained in:
parent
9350234683
commit
eb257ac97d
2 changed files with 28 additions and 3 deletions
13
Lib/ssl.py
13
Lib/ssl.py
|
@ -434,7 +434,18 @@ def sslwrap_simple (sock, keyfile=None, certfile=None):
|
|||
for compability with Python 2.5 and earlier. Will disappear in
|
||||
Python 3.0."""
|
||||
|
||||
ssl_sock = _ssl.sslwrap(sock._sock, 0, keyfile, certfile, CERT_NONE,
|
||||
if hasattr(sock, "_sock"):
|
||||
sock = sock._sock
|
||||
|
||||
ssl_sock = _ssl.sslwrap(sock, 0, keyfile, certfile, CERT_NONE,
|
||||
PROTOCOL_SSLv23, None)
|
||||
try:
|
||||
sock.getpeername()
|
||||
except:
|
||||
# no, no connection yet
|
||||
pass
|
||||
else:
|
||||
# yes, do the handshake
|
||||
ssl_sock.do_handshake()
|
||||
|
||||
return ssl_sock
|
||||
|
|
|
@ -34,6 +34,21 @@ def handle_error(prefix):
|
|||
if test_support.verbose:
|
||||
sys.stdout.write(prefix + exc_format)
|
||||
|
||||
def testSimpleSSLwrap(self):
|
||||
try:
|
||||
ssl.sslwrap_simple(socket.socket(socket.AF_INET))
|
||||
except IOError, e:
|
||||
if e.errno == 32: # broken pipe when ssl_sock.do_handshake(), this test doesn't care about that
|
||||
pass
|
||||
else:
|
||||
raise
|
||||
try:
|
||||
ssl.sslwrap_simple(socket.socket(socket.AF_INET)._sock)
|
||||
except IOError, e:
|
||||
if e.errno == 32: # broken pipe when ssl_sock.do_handshake(), this test doesn't care about that
|
||||
pass
|
||||
else:
|
||||
raise
|
||||
|
||||
class BasicTests(unittest.TestCase):
|
||||
|
||||
|
@ -58,7 +73,6 @@ class BasicTests(unittest.TestCase):
|
|||
finally:
|
||||
s.close()
|
||||
|
||||
|
||||
def testCrucialConstants(self):
|
||||
ssl.PROTOCOL_SSLv2
|
||||
ssl.PROTOCOL_SSLv23
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue