Issue #9853: Fix the signature of SSLSocket.recvfrom() and
SSLSocket.sendto() to match the corresponding socket methods.
This commit is contained in:
parent
9bfc0f0984
commit
a468adc76d
10
Lib/ssl.py
10
Lib/ssl.py
|
@ -258,13 +258,15 @@ class SSLSocket(socket):
|
||||||
else:
|
else:
|
||||||
return socket.send(self, data, flags)
|
return socket.send(self, data, flags)
|
||||||
|
|
||||||
def sendto(self, data, addr, flags=0):
|
def sendto(self, data, flags_or_addr, addr=None):
|
||||||
self._checkClosed()
|
self._checkClosed()
|
||||||
if self._sslobj:
|
if self._sslobj:
|
||||||
raise ValueError("sendto not allowed on instances of %s" %
|
raise ValueError("sendto not allowed on instances of %s" %
|
||||||
self.__class__)
|
self.__class__)
|
||||||
|
elif addr is None:
|
||||||
|
return socket.sendto(self, data, flags_or_addr)
|
||||||
else:
|
else:
|
||||||
return socket.sendto(self, data, addr, flags)
|
return socket.sendto(self, data, flags_or_addr, addr)
|
||||||
|
|
||||||
def sendall(self, data, flags=0):
|
def sendall(self, data, flags=0):
|
||||||
self._checkClosed()
|
self._checkClosed()
|
||||||
|
@ -308,13 +310,13 @@ class SSLSocket(socket):
|
||||||
else:
|
else:
|
||||||
return socket.recv_into(self, buffer, nbytes, flags)
|
return socket.recv_into(self, buffer, nbytes, flags)
|
||||||
|
|
||||||
def recvfrom(self, addr, buflen=1024, flags=0):
|
def recvfrom(self, buflen=1024, flags=0):
|
||||||
self._checkClosed()
|
self._checkClosed()
|
||||||
if self._sslobj:
|
if self._sslobj:
|
||||||
raise ValueError("recvfrom not allowed on instances of %s" %
|
raise ValueError("recvfrom not allowed on instances of %s" %
|
||||||
self.__class__)
|
self.__class__)
|
||||||
else:
|
else:
|
||||||
return socket.recvfrom(self, addr, buflen, flags)
|
return socket.recvfrom(self, buflen, flags)
|
||||||
|
|
||||||
def recvfrom_into(self, buffer, nbytes=None, flags=0):
|
def recvfrom_into(self, buffer, nbytes=None, flags=0):
|
||||||
self._checkClosed()
|
self._checkClosed()
|
||||||
|
|
|
@ -163,6 +163,18 @@ class BasicSocketTests(unittest.TestCase):
|
||||||
del ss
|
del ss
|
||||||
self.assertEqual(wr(), None)
|
self.assertEqual(wr(), None)
|
||||||
|
|
||||||
|
def test_wrapped_unconnected(self):
|
||||||
|
# Methods on an unconnected SSLSocket propagate the original
|
||||||
|
# socket.error raise by the underlying socket object.
|
||||||
|
s = socket.socket(socket.AF_INET)
|
||||||
|
ss = ssl.wrap_socket(s)
|
||||||
|
self.assertRaises(socket.error, ss.recv, 1)
|
||||||
|
self.assertRaises(socket.error, ss.recv_into, bytearray(b'x'))
|
||||||
|
self.assertRaises(socket.error, ss.recvfrom, 1)
|
||||||
|
self.assertRaises(socket.error, ss.recvfrom_into, bytearray(b'x'), 1)
|
||||||
|
self.assertRaises(socket.error, ss.send, b'x')
|
||||||
|
self.assertRaises(socket.error, ss.sendto, b'x', ('0.0.0.0', 0))
|
||||||
|
|
||||||
def test_timeout(self):
|
def test_timeout(self):
|
||||||
# Issue #8524: when creating an SSL socket, the timeout of the
|
# Issue #8524: when creating an SSL socket, the timeout of the
|
||||||
# original socket should be retained.
|
# original socket should be retained.
|
||||||
|
|
|
@ -52,6 +52,9 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #9853: Fix the signature of SSLSocket.recvfrom() and
|
||||||
|
SSLSocket.sendto() to match the corresponding socket methods.
|
||||||
|
|
||||||
- Issue 9840: Added a decorator to reprlib for wrapping __repr__ methods
|
- Issue 9840: Added a decorator to reprlib for wrapping __repr__ methods
|
||||||
to make them handle recursive calls within the same thread.
|
to make them handle recursive calls within the same thread.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue