Commit 02bd27ab authored by Antoine Pitrou's avatar Antoine Pitrou

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).
........
parent 38ed49b3
......@@ -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)
......
......@@ -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)
......
......@@ -40,6 +40,10 @@ Core and Builtins
Library
-------
- 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).
- Issue #5103: SSL handshake would ignore the socket timeout and block
indefinitely if the other end didn't respond.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment