From 06eb000ac6c9269d98466936ee0179ace5315ca3 Mon Sep 17 00:00:00 2001 From: "Roger A. Light" Date: Mon, 12 May 2014 20:41:53 +0100 Subject: [PATCH] Fix CONNECT packet for MQTT v3.1.1. --- ChangeLog.txt | 4 ++++ src/paho/mqtt/client.py | 14 +++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) create mode 100644 ChangeLog.txt diff --git a/ChangeLog.txt b/ChangeLog.txt new file mode 100644 index 0000000..380bcf1 --- /dev/null +++ b/ChangeLog.txt @@ -0,0 +1,4 @@ +v0.9.1 +====== + +- Fix CONNECT packet for MQTT v3.1.1. diff --git a/src/paho/mqtt/client.py b/src/paho/mqtt/client.py index c52ac63..49fc950 100755 --- a/src/paho/mqtt/client.py +++ b/src/paho/mqtt/client.py @@ -1684,7 +1684,13 @@ class Client(object): return self._packet_queue(command, packet, 0, 0) def _send_connect(self, keepalive, clean_session): - remaining_length = 12 + 2+len(self._client_id) + if self._protocol == MQTTv31: + protocol = PROTOCOL_NAMEv31 + proto_ver = 3 + else: + protocol = PROTOCOL_NAMEv311 + proto_ver = 4 + remaining_length = 2+len(protocol) + 1+1+2 + 2+len(self._client_id) connect_flags = 0 if clean_session: connect_flags = connect_flags | 0x02 @@ -1708,12 +1714,6 @@ class Client(object): packet = bytearray() packet.extend(struct.pack("!B", command)) self._pack_remaining_length(packet, remaining_length) - if self._protocol == MQTTv31: - protocol = PROTOCOL_NAMEv31 - proto_ver = 3 - else: - protocol = PROTOCOL_NAMEv311 - proto_ver = 4 packet.extend(struct.pack("!H"+str(len(protocol))+"sBBH", len(protocol), protocol, proto_ver, connect_flags, keepalive)) -- 2.39.5