Add support for the send/recvmsg API to the socket module. Patch by David Watson and Heiko Wundram. (Closes #6560)
diff --git a/Lib/ssl.py b/Lib/ssl.py
index 914e749..1b7416e 100644
--- a/Lib/ssl.py
+++ b/Lib/ssl.py
@@ -355,6 +355,14 @@
else:
return socket.sendto(self, data, flags_or_addr, addr)
+ def sendmsg(self, *args, **kwargs):
+ self._checkClosed()
+ if self._sslobj:
+ raise ValueError("sendmsg not allowed on instances of %s" %
+ self.__class__)
+ else:
+ return socket.sendmsg(self, *args, **kwargs)
+
def sendall(self, data, flags=0):
self._checkClosed()
if self._sslobj:
@@ -413,6 +421,22 @@
else:
return socket.recvfrom_into(self, buffer, nbytes, flags)
+ def recvmsg(self, *args, **kwargs):
+ self._checkClosed()
+ if self._sslobj:
+ raise ValueError("recvmsg not allowed on instances of %s" %
+ self.__class__)
+ else:
+ return socket.recvmsg(self, *args, **kwargs)
+
+ def recvmsg_into(self, *args, **kwargs):
+ self._checkClosed()
+ if self._sslobj:
+ raise ValueError("recvmsg_into not allowed on instances of %s" %
+ self.__class__)
+ else:
+ return socket.recvmsg_into(self, *args, **kwargs)
+
def pending(self):
self._checkClosed()
if self._sslobj: