Don't duplicate messages when sending multiple TLVs

This commit is contained in:
Yohann D'ANELLO 2020-12-23 23:59:09 +01:00
parent 597dd658f4
commit 61ab96abdc
Signed by: ynerant
GPG Key ID: 3A75C55819C8CF85
1 changed files with 3 additions and 3 deletions

View File

@ -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)