diff --git a/include/mqtt_client.h b/include/mqtt_client.h index 318992a..e5b2e61 100755 --- a/include/mqtt_client.h +++ b/include/mqtt_client.h @@ -67,6 +67,7 @@ typedef struct { char lwt_msg[MQTT_MAX_LWT_MSG]; int lwt_qos; int lwt_retain; + int lwt_msg_len; int disable_clean_session; int keepalive; bool disable_auto_reconnect; diff --git a/mqtt_client.c b/mqtt_client.c index f54a19c..3117dfa 100644 --- a/mqtt_client.c +++ b/mqtt_client.c @@ -127,7 +127,10 @@ static esp_err_t esp_mqtt_set_config(esp_mqtt_client_handle_t client, const esp_ if (config->lwt_msg[0]) { client->connect_info.will_message = strdup(config->lwt_msg); - client->connect_info.will_length = strlen(config->lwt_msg); + if (config->lwt_msg_len > 0) + client->connect_info.will_length = config->lwt_msg_len; + else + client->connect_info.will_length = strlen(config->lwt_msg); } client->connect_info.will_qos = config->lwt_qos;