@@ -597,13 +597,12 @@ def _connect(
597
597
self .broker , self .port , timeout = self ._socket_timeout
598
598
)
599
599
600
- # Fixed Header
601
600
fixed_header = bytearray ([0x10 ])
602
601
603
602
# Variable CONNECT header [MQTT 3.1.2]
604
603
# 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
607
606
608
607
# Set up variable header and remaining_length
609
608
remaining_length = 12 + len (self .client_id .encode ("utf-8" ))
@@ -614,20 +613,19 @@ def _connect(
614
613
+ 2
615
614
+ len (self ._password .encode ("utf-8" ))
616
615
)
617
- var_header [6 ] |= 0xC0
616
+ var_header [7 ] |= 0xC0
618
617
if self .keep_alive :
619
618
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
622
621
if self ._lw_topic :
623
622
remaining_length += (
624
623
2 + len (self ._lw_topic .encode ("utf-8" )) + 2 + len (self ._lw_msg )
625
624
)
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
628
627
629
628
self .encode_remaining_length (fixed_header , remaining_length )
630
- fixed_header .append (0x00 )
631
629
self .logger .debug ("Sending CONNECT to broker..." )
632
630
self .logger .debug (f"Fixed Header: { fixed_header } " )
633
631
self .logger .debug (f"Variable Header: { var_header } " )
0 commit comments