def recv(self): # pylint: disable=arguments-differ timeout = self.kwargs.get('recv_timeout', None) if not self.scheduler.empty(): timeout_s = self.scheduler.run(False) if timeout is None or timeout > timeout_s: timeout = timeout_s self.socket.settimeout(timeout) try: data = self.socket.recv(512) if not data: raise OSError("Connection reset by peer") data = self.data + data except socket.timeout: # XXX should try harder to meet user timeout deadlines and not # quit early. return lines = data.split(b'\r\n') self.data = lines.pop() for line in lines: line = Line.parse(line.decode('utf-8', 'ignore')) _logger.debug("IN: %s", str(line).rstrip()) super().recv(line)
def recv(self): timeout = self.kwargs.get('recv_timeout', None) if not self.scheduler.empty(): timeout_s = self.scheduler.run(False) if timeout is None or timeout > timeout_s: timeout = timeout_s self.socket.settimeout(timeout) try: data = self.socket.recv(512) if not data: raise OSError("Connection reset by peer") data = self.data + data except socket.timeout: # XXX should try harder to meet user timeout deadlines and not # quit early. return lines = data.split(b'\r\n') self.data = lines.pop() for line in lines: line = Line.parse(line.decode('utf-8', 'ignore')) logger.debug("IN: %s", str(line).rstrip()) super().recv(line)
def data_received(self, data): data = self.data + data lines = data.split(b'\r\n') self.data = lines.pop() for line in lines: line = Line.parse(line.decode('utf-8', 'ignore')) logger.debug("IN: %s", str(line).rstrip()) try: super().recv(line) except Exception as e: # We should never get here! self.send("QUIT", ["Exception received!"]) self.transport.close() raise
def recv(self): # pylint: disable=arguments-differ,no-member timeout = self.kwargs.get('recv_timeout', None) self.socket.settimeout(timeout) try: data = self.socket.recv(512) if not data: raise OSError("Connection reset by peer") data = self.data + data except socket.timeout: return lines = data.split(b'\r\n') self.data = lines.pop() for line in lines: line = Line.parse(line.decode('utf-8', 'ignore')) _logger.debug("IN: %s", str(line).rstrip()) spawn_n(super().recv(line))
def data_received(self, data): data = self.data + data lines = data.split(b'\r\n') self.data = lines.pop() for line in lines: line = Line.parse(line.decode('utf-8', 'ignore')) _logger.debug("IN: %s", str(line).rstrip()) try: super().recv(line) except Exception: # We should never get here! _logger.exception("Exception received in recv loop") self.send("QUIT", ["Exception received!"]) self.transport.close() # This is fatal and needs to be reported so stop the event # loop. loop = asyncio.get_event_loop() loop.stop() raise