Skip to content

Commit 1dc406b

Browse files
committed
fix short remaining length encoding
1 parent 3ce387e commit 1dc406b

File tree

1 file changed

+5
-12
lines changed

1 file changed

+5
-12
lines changed

adafruit_minimqtt/adafruit_minimqtt.py

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -626,13 +626,8 @@ def _connect(
626626
var_header[6] |= 0x4 | (self._lw_qos & 0x1) << 3 | (self._lw_qos & 0x2) << 3
627627
var_header[6] |= self._lw_retain << 5
628628

629-
large_rel_length = self.encode_remaining_length(fixed_header, remaining_length)
630-
if large_rel_length:
631-
fixed_header.append(0x00)
632-
else:
633-
fixed_header.append(remaining_length)
634-
fixed_header.append(0x00)
635-
629+
self.encode_remaining_length(fixed_header, remaining_length)
630+
fixed_header.append(0x00)
636631
self.logger.debug("Sending CONNECT to broker...")
637632
self.logger.debug(f"Fixed Header: {fixed_header}")
638633
self.logger.debug(f"Variable Header: {var_header}")
@@ -670,23 +665,21 @@ def _connect(
670665
)
671666

672667
# pylint: disable=no-self-use
673-
def encode_remaining_length(self, fixed_header, remaining_length):
668+
def encode_remaining_length(self, fixed_header: bytearray, remaining_length: int):
674669
"""
675670
Encode Remaining Length [2.2.3]
676671
"""
677672
# Remaining length calculation
678-
large_rel_length = False
679673
if remaining_length > 0x7F:
680-
large_rel_length = True
681674
while remaining_length > 0:
682675
encoded_byte = remaining_length % 0x80
683676
remaining_length = remaining_length // 0x80
684677
# if there is more data to encode, set the top bit of the byte
685678
if remaining_length > 0:
686679
encoded_byte |= 0x80
687680
fixed_header.append(encoded_byte)
688-
689-
return large_rel_length
681+
else:
682+
fixed_header.append(remaining_length)
690683

691684
def disconnect(self) -> None:
692685
"""Disconnects the MiniMQTT client from the MQTT broker."""

0 commit comments

Comments
 (0)