GEN3: don't crash on overwritten msg in the receive buffer
This commit is contained in:
@@ -147,6 +147,7 @@ class AsyncStream():
|
||||
logger.error(
|
||||
f"Exception for {self.addr}:\n"
|
||||
f"{traceback.format_exc()}")
|
||||
await asyncio.sleep(0) # be cooperative to other task
|
||||
|
||||
async def async_write(self, headline: str = 'Transmit to ') -> None:
|
||||
"""Async write handler to transmit the send_buffer"""
|
||||
|
||||
@@ -294,6 +294,13 @@ class Talent(Message):
|
||||
result = struct.unpack_from('!lB', buf, 0)
|
||||
msg_len = result[0] # len of complete message
|
||||
id_len = result[1] # len of variable id string
|
||||
if id_len > 17:
|
||||
logger.warning(f'len of ID string must == 16 but is {id_len}')
|
||||
self.inc_counter('Invalid_Msg_Format')
|
||||
|
||||
# erase broken recv buffer
|
||||
self._recv_buffer = bytearray()
|
||||
return
|
||||
|
||||
hdr_len = 5+id_len+2
|
||||
|
||||
|
||||
Reference in New Issue
Block a user