1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-15 20:19:23 +00:00

Fix buffer in channelContext

This commit is contained in:
M1nd3r 2024-03-26 16:41:56 +01:00
parent bb15aef35e
commit 2400cc3269
2 changed files with 8 additions and 2 deletions

View File

@ -64,6 +64,9 @@ class ChannelContext(Context):
def set_channel_state(self, state: ChannelState) -> None:
self.channel_cache.state = bytearray(state.value.to_bytes(1, "big"))
def set_buffer(self, buffer: utils.BufferType) -> None:
self.buffer = buffer
# CALLED BY THP_MAIN_LOOP
async def receive_packet(self, packet: utils.BufferType):
@ -239,11 +242,13 @@ class ChannelContext(Context):
return THP.sync_get_send_bit(self.channel_cache) != sync_bit
def load_cached_channels() -> dict[int, ChannelContext]: # TODO
def load_cached_channels(buffer: utils.BufferType) -> dict[int, ChannelContext]: # TODO
channels: dict[int, ChannelContext] = {}
cached_channels = cache_thp.get_all_allocated_channels()
for c in cached_channels:
channels[int.from_bytes(c.channel_id, "big")] = ChannelContext(c)
for c in channels.values():
c.set_buffer(buffer)
return channels

View File

@ -58,7 +58,8 @@ def set_buffer(buffer):
async def thp_main_loop(iface: WireInterface, is_debug_session=False):
global _CHANNEL_CONTEXTS
_CHANNEL_CONTEXTS = load_cached_channels()
global _BUFFER
_CHANNEL_CONTEXTS = load_cached_channels(_BUFFER)
read = loop.wait(iface.iface_num() | io.POLL_READ)