コード例 #1
0
 def __init__(self, bytes_data: bytes):
     self.agent_uuid, self.session_uuid, self.circuit_code = None, None, None
     if bytes_data is None:
         return
     result = BytesPack.unpack_bytes_little_endian(
         ["uuid", "uuid", "unsigned int32"], bytes_data)
     self.agent_uuid, self.session_uuid, self.circuit_code = result.unpacked_data
コード例 #2
0
def create_from_bytes(bytes_data: bytes):
    unpack_result = BytesPack.unpack_bytes_big_endian(
        ["unsigned byte", "unsigned int32", "unsigned byte"], bytes_data)
    byte_flags, sequence_number, extra_bytes_count = unpack_result.unpacked_data

    flags = PacketHeaderFlagsFactory.create_from_byte(byte_flags)
    extra_bytes = b""
    if extra_bytes_count > 0:
        extra_bytes = unpack_result.remaining_bytes[::extra_bytes_count]
    packet_header = PacketHeader(flags, sequence_number, extra_bytes)

    return packet_header
コード例 #3
0
def create_from_bytes(bytes_data: bytes):
    id_data_type = _get_id_data_type(bytes_data)

    unpack_result = BytesPack.unpack_bytes_big_endian([id_data_type],
                                                      bytes_data)

    message_id = unpack_result.unpacked_data[0]
    message_blocks_data = unpack_result.remaining_bytes

    message_class = MessageDecoder.get_message_class_from_id(message_id)

    if message_class is None:
        message_instance = UnknownMessage(message_id, message_blocks_data)
    else:
        message_instance = message_class(message_blocks_data)

    return message_instance
コード例 #4
0
 def convert_to_bytes(self) -> bytes:
     return BytesPack.pack_bytes_little_endian(
         ["uuid", "uuid", "unsigned int32"], self.agent_uuid,
         self.session_uuid, self.circuit_code)
コード例 #5
0
ファイル: PacketHeader.py プロジェクト: HeapHeapHooray/Viper
 def convert_to_bytes(self) -> bytes:
     return BytesPack.pack_bytes_big_endian(
         ["unsigned byte", "unsigned int32", "unsigned byte"],
         self.flags.convert_to_byte(), self.sequence_number,
         len(self.extra_bytes)) + self.extra_bytes
コード例 #6
0
ファイル: PacketHeader.py プロジェクト: HeapHeapHooray/Viper
 def get_data_size_as_bytes(self):
     size = BytesPack.calculate_minimum_size([
         "unsigned byte", "unsigned int32", "unsigned byte"
     ]) + len(self.extra_bytes)
     return size
コード例 #7
0
 def convert_to_bytes(self) -> bytes:
     return BytesPack.pack_bytes_big_endian(["smallest unsigned int"],self.message_id) + self.data
コード例 #8
0
 def __init__(self, bytes_data: bytes):
     result = BytesPack.unpack_bytes_little_endian(
         ["unsigned byte", "unsigned int32"], bytes_data)
     self.ping_id, self.oldest_unacked = result.unpacked_data
コード例 #9
0
 def convert_to_bytes(self) -> bytes:
     return BytesPack.pack_bytes_little_endian(
         ["unsigned byte", "unsigned int32"], self.ping_id,
         self.oldest_unacked)