adds missing will payload to connect packet

This commit is contained in:
Todd Treece 2015-10-05 13:41:14 -04:00
parent e70e2367b6
commit 921c132f92
1 changed files with 8 additions and 1 deletions

View File

@ -126,6 +126,8 @@ int8_t Adafruit_MQTT::connect() {
return -1;
// Check for SUBACK if using MQTT 3.1.1 or higher
// TODO: The Server is permitted to start sending PUBLISH packets matching the
// Subscription before the Server sends the SUBACK Packet.
if(MQTT_PROTOCOL_LEVEL > 3) {
len = readPacket(buffer, 5, CONNECT_TIMEOUT_MS);
DEBUG_PRINT(F("SUBACK:\t"));
@ -344,7 +346,7 @@ uint8_t Adafruit_MQTT::connectPacket(uint8_t *packet) {
p[0] = MQTT_CONN_CLEANSESSION;
// set the will flags if needed
if (pgm_read_byte(will_topic) != 0) {
if (will_topic && pgm_read_byte(will_topic) != 0) {
p[0] |= MQTT_CONN_WILLFLAG;
@ -383,6 +385,11 @@ uint8_t Adafruit_MQTT::connectPacket(uint8_t *packet) {
}
}
if (will_topic && pgm_read_byte(will_topic) != 0) {
p = stringprint_P(p, will_topic);
p = stringprint_P(p, will_payload);
}
if (pgm_read_byte(username) != 0) {
p = stringprint_P(p, username);
}