def data_received(self, data): length_to_parse = min(self.receive_length, len(data)) if self.read_header: self.header_buffer = self.header_buffer + data[0:length_to_parse] else: self.body_buffer = self.body_buffer + data[0:length_to_parse] self.receive_length -= length_to_parse if self.receive_length == 0 and self.read_header: self.read_header = False self.body_buffer = b'' msg_head, msg_version, msg_type, msg_size = netutils.ConfigMessage.header_from_bytes( self.header_buffer) if msg_head != b'CONF': print("Received invalid debug header: {}".format(msg_head)) self.transport.close() return self.receive_length = msg_size self.msg_type = msg_type self.msg_version = msg_version if self.receive_length == 0 and not self.read_header: self.handle_message( netutils.ConfigMessage(self.msg_type, self.body_buffer, self.receive_length, self.msg_version)) self.read_header = True self.header_buffer = b'' self.receive_length = 8 data = data[length_to_parse:] if len(data): self.data_received(data)
def send_config_msg(self, msg_type: netutils.ConfigMsgType, body: str = ""): self.send(netutils.ConfigMessage(msg_type, body).toBytes())