From 61ab96abdc77407700fb0cb02fd5ccda83eb7728 Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Wed, 23 Dec 2020 23:59:09 +0100 Subject: [PATCH] Don't duplicate messages when sending multiple TLVs --- squinnondation/messages.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/squinnondation/messages.py b/squinnondation/messages.py index db270b4..5ad2886 100644 --- a/squinnondation/messages.py +++ b/squinnondation/messages.py @@ -370,12 +370,12 @@ class Packet: pkt.body_length = socket.ntohs(int.from_bytes(data[2:4], sys.byteorder)) pkt.body = [] read_bytes = 0 - while read_bytes <= min(len(data) - 4, pkt.body_length): - tlv_type = data[4] + while read_bytes < min(len(data) - 4, pkt.body_length): + tlv_type = data[4 + read_bytes] if not (0 <= tlv_type < len(TLV.tlv_classes())): raise ValueError(f"TLV type is not supported: {tlv_type}") tlv = TLV.tlv_classes()[tlv_type]() - tlv.unmarshal(data[4:4 + pkt.body_length]) + tlv.unmarshal(data[4 + read_bytes:4 + read_bytes + pkt.body_length]) pkt.body.append(tlv) read_bytes += len(tlv)