@@ -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"\x04 MQTT\x04 \x02 \0 \0 " )
606- var_header [6 ] = clean_session << 1
604+ var_header = bytearray (b"\x00 \ x04 MQTT\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