From: Roger A. Light Date: Mon, 12 May 2014 19:41:53 +0000 (+0100) Subject: Fix CONNECT packet for MQTT v3.1.1. X-Git-Tag: v1.0~9 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=06eb000ac6c9269d98466936ee0179ace5315ca3;p=packages%2Fp%2Fpaho-mqtt.git Fix CONNECT packet for MQTT v3.1.1. --- 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))