diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2010-04-24 22:07:51 (GMT) |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2010-04-24 22:07:51 (GMT) |
commit | c2203f92ff05840873d68ae6369a302c7db4948e (patch) | |
tree | 14c9b197c7a6ea3c88e8c153440f2aa802dc3029 /Lib | |
parent | ec146185c4382206ecbbcaa505c81b8c04992f3a (diff) | |
download | cpython-c2203f92ff05840873d68ae6369a302c7db4948e.zip cpython-c2203f92ff05840873d68ae6369a302c7db4948e.tar.gz cpython-c2203f92ff05840873d68ae6369a302c7db4948e.tar.bz2 |
Merged revisions 80456 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r80456 | antoine.pitrou | 2010-04-25 00:04:40 +0200 (dim., 25 avril 2010) | 5 lines
Issue #8524: When creating an SSL socket, the timeout value of the
original socket wasn't retained (instead, a socket with a positive timeout
would be turned into a non-blocking SSL socket).
........
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/ssl.py | 1 | ||||
-rw-r--r-- | Lib/test/test_ssl.py | 29 |
2 files changed, 19 insertions, 11 deletions
@@ -101,6 +101,7 @@ class SSLSocket(socket): type=sock.type, proto=sock.proto, fileno=_dup(sock.fileno())) + self.settimeout(sock.gettimeout()) sock.close() elif fileno is not None: socket.__init__(self, fileno=fileno) diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py index 403f6bf..7eea4b8 100644 --- a/Lib/test/test_ssl.py +++ b/Lib/test/test_ssl.py @@ -110,6 +110,15 @@ class BasicTests(unittest.TestCase): del ss self.assertEqual(wr(), None) + def test_timeout(self): + # Issue #8524: when creating an SSL socket, the timeout of the + # original socket should be retained. + for timeout in (None, 0.0, 5.0): + s = socket.socket(socket.AF_INET) + s.settimeout(timeout) + ss = ssl.wrap_socket(s) + self.assertEqual(timeout, ss.gettimeout()) + class NetworkedTests(unittest.TestCase): @@ -1262,17 +1271,15 @@ else: started.wait() try: - if 0: - # Disabled until #8524 finds a solution - try: - c = socket.socket(socket.AF_INET) - c.settimeout(1.0) - c.connect((host, port)) - # Will attempt handshake and time out - self.assertRaisesRegexp(ssl.SSLError, "timed out", - ssl.wrap_socket, c) - finally: - c.close() + try: + c = socket.socket(socket.AF_INET) + c.settimeout(0.2) + c.connect((host, port)) + # Will attempt handshake and time out + self.assertRaisesRegexp(ssl.SSLError, "timed out", + ssl.wrap_socket, c) + finally: + c.close() try: c = socket.socket(socket.AF_INET) c = ssl.wrap_socket(c) |