def recv_into(self, buff, nbytes=0): # type: (bytearray, int) -> int """ A version of recv() that stores its data into a buffer rather than creating a new string. Receive up to buffersize bytes from the socket. If buffersize is not specified (or 0), receive up to the size available in the given buffer. @param buffer: a buffer for the received bytes @param nbytes: maximum number of bytes to read @return: number of bytes added See recv() for documentation about the flags. """ n = len(buff) if nbytes == 0 else nbytes if n <= 0: raise ValueError('size <= 0') buff_bytes = m2.ssl_read(self.ssl, n, self._timeout) buff[:] = b'' buff.extend(buff_bytes) return len(buff)
def recv_into(self, buff, nbytes=0): # type: (Union[bytearray, memoryview], int) -> int """ A version of recv() that stores its data into a buffer rather than creating a new string. Receive up to buffersize bytes from the socket. If buffersize is not specified (or 0), receive up to the size available in the given buffer. If buff is bytearray, it will have after return length of the actually returned number of bytes. If buff is memoryview, then the size of buff won't change (it cannot), but all bytes after the number of returned bytes will be NULL. :param buffer: a buffer for the received bytes :param nbytes: maximum number of bytes to read :return: number of bytes read See recv() for documentation about the flags. """ n = len(buff) if nbytes == 0 else nbytes if n <= 0: raise ValueError('size <= 0') # buff_bytes are actual bytes returned buff_bytes = m2.ssl_read(self.ssl, n, self._timeout) buflen = len(buff_bytes) # memoryview type has been added in 2.7 if py27plus and isinstance(buff, memoryview): buff[:buflen] = buff_bytes buff[buflen:] = b'\x00' * (len(buff) - buflen) else: buff[:] = buff_bytes return buflen
def _read_bio(self, size=1024): # type: (int) -> bytes if size <= 0: raise ValueError('size <= 0') return m2.ssl_read(self.ssl, size, self._timeout)
def _read_bio(self, size=1024): if size <= 0: raise ValueError, 'size <= 0' return m2.ssl_read(self.ssl, size, self._timeout)
def _read_bio(self, size=1024): if size <= 0: raise ValueError('size <= 0') return m2.ssl_read(self.ssl, size)