From c201b503d7555170eecd530c23d0e92bdcb80384 Mon Sep 17 00:00:00 2001 From: fipwmaqzufheoxq92ebc <29818044+fipwmaqzufheoxq92ebc@users.noreply.github.com> Date: Tue, 30 Mar 2021 19:29:27 +0200 Subject: [PATCH 1/2] connectPacket: send a second length-byte if payload is large --- Adafruit_MQTT.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Adafruit_MQTT.cpp b/Adafruit_MQTT.cpp index 7d5141b..920db7c 100644 --- a/Adafruit_MQTT.cpp +++ b/Adafruit_MQTT.cpp @@ -662,7 +662,15 @@ uint8_t Adafruit_MQTT::connectPacket(uint8_t *packet) { len = p - packet; - packet[1] = len - 2; // don't include the 2 bytes of fixed header data + if (len > (127 + 2)) { + packet[1] = ((len - 2) % 128) + 0x80; // LSB + memmove(packet + 3, packet + 2, len - 2); // create space for an additional length-byte + packet[2] = (len - 2) / 128; // MSB + len++; + } else { + packet[1] = len - 2; // don't include the 2 bytes of fixed header data + } + DEBUG_PRINTLN(F("MQTT connect packet:")); DEBUG_PRINTBUFFER(buffer, len); return len; From 3530e0ddde4985423bb5506ca9df36e53d98c251 Mon Sep 17 00:00:00 2001 From: fipwmaqzufheoxq92ebc <29818044+fipwmaqzufheoxq92ebc@users.noreply.github.com> Date: Tue, 30 Mar 2021 20:54:12 +0200 Subject: [PATCH 2/2] Fix format --- Adafruit_MQTT.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Adafruit_MQTT.cpp b/Adafruit_MQTT.cpp index 920db7c..8cf9032 100644 --- a/Adafruit_MQTT.cpp +++ b/Adafruit_MQTT.cpp @@ -664,7 +664,8 @@ uint8_t Adafruit_MQTT::connectPacket(uint8_t *packet) { if (len > (127 + 2)) { packet[1] = ((len - 2) % 128) + 0x80; // LSB - memmove(packet + 3, packet + 2, len - 2); // create space for an additional length-byte + memmove(packet + 3, packet + 2, + len - 2); // create space for an additional length-byte packet[2] = (len - 2) / 128; // MSB len++; } else {