def check_packet(self): try: if self.packet_size is not None and len(self._stream) >= self.packet_size: p, self._stream = self._stream[:self.packet_size], self._stream[self.packet_size:] if not self._stream: self._stream = "" p_parsed = packets.packet().parse(p) if self.compressed: try: z = zlib.decompressobj() p_parsed.data = z.decompress(p_parsed.data) except zlib.error: self.logger.error("Decompression error in check_packet.") raise packet = Packet(packet_id=p_parsed.id, payload_size=p_parsed.payload_size, data=p_parsed.data, original_data=p, direction=self.direction) self.compressed = False self.protocol.string_received(packet) self.reset() if self.start_packet(): self.check_packet() except RuntimeError: self.logger.error("Unknown error in check_packet")
def check_packet(self): try: if self.packet_size is not None and len(self._stream) >= self.packet_size: p, self._stream = self._stream[:self.packet_size], self._stream[self.packet_size:] if not self._stream: self._stream = "" p_parsed = packets.packet().parse(p) if self.compressed: try: z = zlib.decompressobj() p_parsed.data = z.decompress(p_parsed.data) except zlib.error: self.logger.error("Decompression error in check_packet.") raise packet = Packet(packet_id=p_parsed.id, payload_size=p_parsed.payload_size, data=p_parsed.data, original_data=p, direction=self.direction) self.compressed = False self.protocol.string_received(packet) self.reset() if self.start_packet(): self.check_packet() except: self.logger.exception("Unknown error in check_packet")
def check_packet(self): try: if self.packet_size is not None and len(self._stream) >= self.packet_size: p, self._stream = self._stream[:self.packet_size], self._stream[self.packet_size:] if not self._stream: self._stream = "" p_parsed = packets.packet().parse(p) if self.compressed: try: z = zlib.decompressobj() p_parsed.data = z.decompress(p_parsed.data) except zlib.error: self.logger.error("Decompression error in check_packet.") self.logger.trace("Parsed packet:") self.logger.trace(pprint.pformat(p_parsed)) self.logger.trace("Packet data:") self.logger.trace(pprint.pformat(p_parsed.original_data.encode("hex"))) self.logger.trace("Following packet data:") self.logger.trace(pprint.pformat(self._stream.encode("hex"))) raise packet = Packet(packet_id=p_parsed.id, payload_size=p_parsed.payload_size, data=p_parsed.data, original_data=p, direction=self.direction) self.compressed = False self.protocol.string_received(packet) self.reset() if self.start_packet(): self.check_packet() except: self.logger.exception("Unknown error in check_packet", exc_info=True)
def build_packet(packet_type, data): """ Convenience method to build packets for sending. :param packet_type: An integer 1 <= packet_type <= 53 :param data: Data to send. :return: The build packet. :rtype : str """ length = len(data) return packets.packet().build( Container(id=packet_type, payload_size=length, data=data))
def check_packet(self): try: if ( self.packet_size is not None and len(self._stream) >= self.packet_size ): p = self._stream[:self.packet_size] self._stream = self._stream[self.packet_size:] if not self._stream: self._stream = '' p_parsed = packets.packet().parse(p) if self.compressed: try: z = zlib.decompressobj() p_parsed.data = z.decompress(p_parsed.data) except zlib.error: self.logger.error( 'Decompression error in check_packet.' ) self.logger.debug('Parsed packet:') self.logger.debug(pprint.pformat(p_parsed)) self.logger.debug('Packet data:') self.logger.debug( pprint.pformat( p_parsed.original_data.encode('hex') ) ) self.logger.debug('Following packet data:') self.logger.debug( pprint.pformat(self._stream.encode('hex')) ) raise packet = Packet( packet_id=p_parsed.id, payload_size=p_parsed.payload_size, data=p_parsed.data, original_data=p, direction=self.direction ) self.compressed = False self.protocol.string_received(packet) self.reset() if self.start_packet(): self.check_packet() except RuntimeError: self.logger.error('Unknown error in check_packet')
def check_packet(self): try: if (self.packet_size is not None and len(self._stream) >= self.packet_size): p = self._stream[:self.packet_size] self._stream = self._stream[self.packet_size:] if not self._stream: self._stream = '' p_parsed = packets.packet().parse(p) if self.compressed: try: z = zlib.decompressobj() p_parsed.data = z.decompress(p_parsed.data) except zlib.error: self.logger.error( 'Decompression error in check_packet.') self.logger.debug('Parsed packet:') self.logger.debug(pprint.pformat(p_parsed)) self.logger.debug('Packet data:') self.logger.debug( pprint.pformat( p_parsed.original_data.encode('hex'))) self.logger.debug('Following packet data:') self.logger.debug( pprint.pformat(self._stream.encode('hex'))) raise packet = Packet(packet_id=p_parsed.id, payload_size=p_parsed.payload_size, data=p_parsed.data, original_data=p, direction=self.direction) self.compressed = False self.protocol.string_received(packet) self.reset() if self.start_packet(): self.check_packet() except RuntimeError: self.logger.error('Unknown error in check_packet')