def _recv_loop(self): buf = b'' min_len = recv_len = zebra.ZebraMessage.get_header_size( self.client.zserv_ver) try: while self.is_active: try: recv_buf = self.sock.recv(recv_len) except socket.timeout: continue if len(recv_buf) == 0: break buf += recv_buf while len(buf) >= min_len: (length, ) = struct.unpack_from('!H', buf) if (length - len(buf)) > 0: # Need to receive remaining data recv_len = length - len(buf) break msg, _, buf = zebra._ZebraMessageFromZebra.parser(buf) ev = event.message_to_event(self.client, msg) if ev: self.client.send_event_to_observers(ev) except socket.error as e: self.logger.exception( 'Error while sending message to Zebra server%s: %s', self.client.zserv_addr, e) self.stop()
def _recv_loop(self): buf = b'' min_len = recv_len = zebra.ZebraMessage.get_header_size( self.client.zserv_ver) try: while self.is_active: try: recv_buf = self.sock.recv(recv_len) except socket.timeout: continue if len(recv_buf) == 0: break buf += recv_buf while len(buf) >= min_len: (length,) = struct.unpack_from('!H', buf) if (length - len(buf)) > 0: # Need to receive remaining data recv_len = length - len(buf) break msg, _, buf = zebra.ZebraMessage.parser(buf) ev = event.message_to_event(self.client, msg) if ev: self.client.send_event_to_observers(ev) except socket.error as e: self.logger.exception( 'Error while sending message to Zebra server%s: %s', self.client.zserv_addr, e) self.stop()