# HG changeset patch # User David Watson # Date 1314212885 -3600 # Node ID 36a93cf1e796746c7def9e6823208a315b70cd2f # Parent 4736e172fa61c83741c7c53d6bdf242ce6f5740b Make SSLSocket.sendmsg/recvmsg/recvmsg_into() raise NotImplementedError. diff --git a/Lib/ssl.py b/Lib/ssl.py --- a/Lib/ssl.py +++ b/Lib/ssl.py @@ -355,6 +355,11 @@ class SSLSocket(socket): else: return socket.sendto(self, data, flags_or_addr, addr) + def sendmsg(self, *args, **kwargs): + # Ensure programs don't send data unencrypted if they try to + # use this method. + raise NotImplementedError + def sendall(self, data, flags=0): self._checkClosed() if self._sslobj: @@ -413,6 +418,12 @@ class SSLSocket(socket): else: return socket.recvfrom_into(self, buffer, nbytes, flags) + def recvmsg(self, *args, **kwargs): + raise NotImplementedError + + def recvmsg_into(self, *args, **kwargs): + raise NotImplementedError + def pending(self): self._checkClosed() if self._sslobj: diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py --- a/Lib/test/test_ssl.py +++ b/Lib/test/test_ssl.py @@ -1594,6 +1594,11 @@ else: # consume data s.read() + self.assertRaises(NotImplementedError, s.sendmsg, [b"data"]) + self.assertRaises(NotImplementedError, s.recvmsg, 100) + self.assertRaises(NotImplementedError, + s.recvmsg_into, bytearray(100)) + s.write(b"over\n") s.close() finally: