Skip to content

Commit 973df68

Browse files
committed
the zero byte belongs to the variable header
1 parent 008ad19 commit 973df68

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

adafruit_minimqtt/adafruit_minimqtt.py

+7-9
Original file line numberDiff line numberDiff line change
@@ -597,13 +597,12 @@ def _connect(
597597
self.broker, self.port, timeout=self._socket_timeout
598598
)
599599

600-
# Fixed Header
601600
fixed_header = bytearray([0x10])
602601

603602
# Variable CONNECT header [MQTT 3.1.2]
604603
# The byte array is used as a template.
605-
var_header = bytearray(b"\x04MQTT\x04\x02\0\0")
606-
var_header[6] = clean_session << 1
604+
var_header = bytearray(b"\x00\x04MQTT\x04\x02\0\0")
605+
var_header[7] = clean_session << 1
607606

608607
# Set up variable header and remaining_length
609608
remaining_length = 12 + len(self.client_id.encode("utf-8"))
@@ -614,20 +613,19 @@ def _connect(
614613
+ 2
615614
+ len(self._password.encode("utf-8"))
616615
)
617-
var_header[6] |= 0xC0
616+
var_header[7] |= 0xC0
618617
if self.keep_alive:
619618
assert self.keep_alive < MQTT_TOPIC_LENGTH_LIMIT
620-
var_header[7] |= self.keep_alive >> 8
621-
var_header[8] |= self.keep_alive & 0x00FF
619+
var_header[8] |= self.keep_alive >> 8
620+
var_header[9] |= self.keep_alive & 0x00FF
622621
if self._lw_topic:
623622
remaining_length += (
624623
2 + len(self._lw_topic.encode("utf-8")) + 2 + len(self._lw_msg)
625624
)
626-
var_header[6] |= 0x4 | (self._lw_qos & 0x1) << 3 | (self._lw_qos & 0x2) << 3
627-
var_header[6] |= self._lw_retain << 5
625+
var_header[7] |= 0x4 | (self._lw_qos & 0x1) << 3 | (self._lw_qos & 0x2) << 3
626+
var_header[7] |= self._lw_retain << 5
628627

629628
self.encode_remaining_length(fixed_header, remaining_length)
630-
fixed_header.append(0x00)
631629
self.logger.debug("Sending CONNECT to broker...")
632630
self.logger.debug(f"Fixed Header: {fixed_header}")
633631
self.logger.debug(f"Variable Header: {var_header}")

0 commit comments

Comments
 (0)