From 7168869d774c698e6cd6deda86f56037c0183d91 Mon Sep 17 00:00:00 2001 From: M1nd3r Date: Wed, 27 Mar 2024 17:22:07 +0100 Subject: [PATCH] Fix session id generation --- core/src/storage/cache_thp.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/core/src/storage/cache_thp.py b/core/src/storage/cache_thp.py index f3a885414..9a9b8e220 100644 --- a/core/src/storage/cache_thp.py +++ b/core/src/storage/cache_thp.py @@ -47,7 +47,7 @@ class ChannelCache(ConnectionCache): self.state = bytearray(_CHANNEL_STATE_LENGTH) self.iface = bytearray(1) # TODO add decoding self.sync = 0x80 # can_send_bit | sync_receive_bit | sync_send_bit | rfu(5) - self.session_id_counter = 0x01 + self.session_id_counter = 0x00 self.fields = () super().__init__() @@ -276,13 +276,14 @@ def get_next_channel_id() -> bytes: def get_next_session_id(channel: ChannelCache) -> bytes: - while not _is_session_id_unique(channel): + while True: if channel.session_id_counter >= 255: channel.session_id_counter = 1 else: channel.session_id_counter += 1 + if _is_session_id_unique(channel): + break new_sid = channel.session_id_counter - channel.session_id_counter += 1 return new_sid.to_bytes(_SESSION_ID_LENGTH, "big")