def send(self, data, flags=0): if self._sslobj: if flags != 0: raise ValueError("non-zero flags not allowed in calls to send() on %s" % self.__class__) while True: try: v = self._sslobj.write(data) except SSLError: x = sys.exc_info()[1] if x.args[0] == SSL_ERROR_WANT_READ: if self.timeout == 0.0: return 0 six.exc_clear() self._io.wait_read(timeout=self.timeout, timeout_exc=socket_timeout('timed out')) elif x.args[0] == SSL_ERROR_WANT_WRITE: if self.timeout == 0.0: return 0 six.exc_clear() self._io.wait_write(timeout=self.timeout, timeout_exc=socket_timeout('timed out')) else: raise else: return v else: return socket.send(self, data, flags)
def send(self, data, flags=0): if self._sslobj: if flags != 0: raise ValueError( "non-zero flags not allowed in calls to send() on %s" % self.__class__) while True: try: v = self._sslobj.write(data) except SSLError: x = sys.exc_info()[1] if x.args[0] == SSL_ERROR_WANT_READ: if self.timeout == 0.0: return 0 six.exc_clear() self._io.wait_read( timeout=self.timeout, timeout_exc=socket_timeout('timed out')) elif x.args[0] == SSL_ERROR_WANT_WRITE: if self.timeout == 0.0: return 0 six.exc_clear() self._io.wait_write( timeout=self.timeout, timeout_exc=socket_timeout('timed out')) else: raise else: return v else: return socket.send(self, data, flags)
def recv_into(self, buffer, nbytes=None, flags=0): if buffer and (nbytes is None): nbytes = len(buffer) elif nbytes is None: nbytes = 1024 if self._sslobj: if flags != 0: raise ValueError("non-zero flags not allowed in calls to recv_into() on %s" % self.__class__) while True: try: tmp_buffer = self.read(nbytes) v = len(tmp_buffer) buffer[:v] = tmp_buffer return v except SSLError: x = sys.exc_info()[1] if x.args[0] == SSL_ERROR_WANT_READ: if self.timeout == 0.0: raise six.exc_clear() self._io.wait_read(timeout=self.timeout, timeout_exc=socket_timeout('timed out')) continue else: raise else: return socket.recv_into(self, buffer, nbytes, flags)
def recv_into(self, buffer, nbytes=None, flags=0): if buffer and (nbytes is None): nbytes = len(buffer) elif nbytes is None: nbytes = 1024 if self._sslobj: if flags != 0: raise ValueError( "non-zero flags not allowed in calls to recv_into() on %s" % self.__class__) while True: try: tmp_buffer = self.read(nbytes) v = len(tmp_buffer) buffer[:v] = tmp_buffer return v except SSLError: x = sys.exc_info()[1] if x.args[0] == SSL_ERROR_WANT_READ: if self.timeout == 0.0: raise six.exc_clear() self._io.wait_read( timeout=self.timeout, timeout_exc=socket_timeout('timed out')) continue else: raise else: return socket.recv_into(self, buffer, nbytes, flags)