diff --git a/lib/mqtt5_msg.c b/lib/mqtt5_msg.c index fc04f71..da5d531 100644 --- a/lib/mqtt5_msg.c +++ b/lib/mqtt5_msg.c @@ -761,7 +761,7 @@ mqtt_message_t *mqtt5_msg_publish(mqtt_connection_t *connection, const char *top char *response_topic = calloc(1, response_topic_size); if (!response_topic) { ESP_LOGE(TAG, "Failed to calloc %d memory", response_topic_size); - fail_message(connection); + return fail_message(connection); } snprintf(response_topic, response_topic_size, "%s/%s", property->response_topic, resp_info); if (append_property(connection, MQTT5_PROPERTY_RESPONSE_TOPIC, 2, response_topic, response_topic_size) == -1) { diff --git a/mqtt_client.c b/mqtt_client.c index d4c074a..87177d6 100644 --- a/mqtt_client.c +++ b/mqtt_client.c @@ -1659,6 +1659,11 @@ static void esp_mqtt_task(void *pv) break; } + if (last_retransmit == 0) { + // connected for first time, set last_retransmit to now, avoid retransmit + last_retransmit = platform_tick_get_ms(); + } + // delete long pending messages mqtt_delete_expired_messages(client);