diff options
Diffstat (limited to 'Lib')
| -rw-r--r-- | Lib/ssl.py | 5 | ||||
| -rw-r--r-- | Lib/test/test_socket.py | 13 |
2 files changed, 15 insertions, 3 deletions
diff --git a/Lib/ssl.py b/Lib/ssl.py index 585105d1cc..7bcc67e9a2 100644 --- a/Lib/ssl.py +++ b/Lib/ssl.py @@ -79,7 +79,6 @@ from _ssl import ( from socket import getnameinfo as _getnameinfo from socket import error as socket_error -from socket import dup as _dup from socket import socket, AF_INET, SOCK_STREAM import base64 # for DER-to-PEM translation import traceback @@ -148,7 +147,7 @@ class SSLSocket(socket): family=sock.family, type=sock.type, proto=sock.proto, - fileno=_dup(sock.fileno())) + fileno=sock.fileno()) self.settimeout(sock.gettimeout()) # see if it's connected try: @@ -158,7 +157,7 @@ class SSLSocket(socket): raise else: connected = True - sock.close() + sock.forget() elif fileno is not None: socket.__init__(self, fileno=fileno) else: diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py index 25025ddc3e..ae34c11492 100644 --- a/Lib/test/test_socket.py +++ b/Lib/test/test_socket.py @@ -655,6 +655,19 @@ class BasicTCPTest(SocketConnectedTest): self.serv_conn.send(MSG) self.serv_conn.shutdown(2) + def testForget(self): + # Testing forget() + f = self.cli_conn.fileno() + self.cli_conn.forget() + self.assertRaises(socket.error, self.cli_conn.recv, 1024) + self.cli_conn.close() + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM, fileno=f) + msg = sock.recv(1024) + self.assertEqual(msg, MSG) + + def _testForget(self): + self.serv_conn.send(MSG) + @unittest.skipUnless(thread, 'Threading required for this test.') class BasicUDPTest(ThreadedUDPSocketTest): |
