feat: Moves deletion of expired messages to run at all states

Process expiration of messages in all states removing messages from the
outbox even in disconnected scenarios.

Closes https://github.com/espressif/esp-mqtt/issues/278
This commit is contained in:
Euripedes Rocha
2024-05-27 10:51:23 +02:00
parent bed1207999
commit 32dada47ff

View File

@ -1589,6 +1589,8 @@ static void esp_mqtt_task(void *pv)
while (client->run) {
MQTT_API_LOCK(client);
run_event_loop(client);
// delete long pending messages
mqtt_delete_expired_messages(client);
mqtt_client_state_t state = client->state;
switch (state) {
case MQTT_STATE_DISCONNECTED:
@ -1668,8 +1670,6 @@ static void esp_mqtt_task(void *pv)
last_retransmit = platform_tick_get_ms();
}
// delete long pending messages
mqtt_delete_expired_messages(client);
// resend all non-transmitted messages first
outbox_item_handle_t item = outbox_dequeue(client->outbox, QUEUED, NULL);