[Python-checkins] r84807 - in python/branches/py3k: Lib/ssl.py Lib/test/test_ssl.py Misc/NEWS
antoine.pitrou
python-checkins at python.org
Tue Sep 14 16:43:44 CEST 2010
Author: antoine.pitrou
Date: Tue Sep 14 16:43:44 2010
New Revision: 84807
Log:
Issue #9853: Fix the signature of SSLSocket.recvfrom() and
SSLSocket.sendto() to match the corresponding socket methods.
Modified:
python/branches/py3k/Lib/ssl.py
python/branches/py3k/Lib/test/test_ssl.py
python/branches/py3k/Misc/NEWS
Modified: python/branches/py3k/Lib/ssl.py
==============================================================================
--- python/branches/py3k/Lib/ssl.py (original)
+++ python/branches/py3k/Lib/ssl.py Tue Sep 14 16:43:44 2010
@@ -258,13 +258,15 @@
else:
return socket.send(self, data, flags)
- def sendto(self, data, addr, flags=0):
+ def sendto(self, data, flags_or_addr, addr=None):
self._checkClosed()
if self._sslobj:
raise ValueError("sendto not allowed on instances of %s" %
self.__class__)
+ elif addr is None:
+ return socket.sendto(self, data, flags_or_addr)
else:
- return socket.sendto(self, data, addr, flags)
+ return socket.sendto(self, data, flags_or_addr, addr)
def sendall(self, data, flags=0):
self._checkClosed()
@@ -308,13 +310,13 @@
else:
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()
if self._sslobj:
raise ValueError("recvfrom not allowed on instances of %s" %
self.__class__)
else:
- return socket.recvfrom(self, addr, buflen, flags)
+ return socket.recvfrom(self, buflen, flags)
def recvfrom_into(self, buffer, nbytes=None, flags=0):
self._checkClosed()
Modified: python/branches/py3k/Lib/test/test_ssl.py
==============================================================================
--- python/branches/py3k/Lib/test/test_ssl.py (original)
+++ python/branches/py3k/Lib/test/test_ssl.py Tue Sep 14 16:43:44 2010
@@ -163,6 +163,18 @@
del ss
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):
# Issue #8524: when creating an SSL socket, the timeout of the
# original socket should be retained.
Modified: python/branches/py3k/Misc/NEWS
==============================================================================
--- python/branches/py3k/Misc/NEWS (original)
+++ python/branches/py3k/Misc/NEWS Tue Sep 14 16:43:44 2010
@@ -52,6 +52,9 @@
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
to make them handle recursive calls within the same thread.
More information about the Python-checkins
mailing list