mirror of
https://github.com/espressif/esp-mqtt.git
synced 2025-07-30 10:48:06 +02:00
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:
@ -1589,6 +1589,8 @@ static void esp_mqtt_task(void *pv)
|
|||||||
while (client->run) {
|
while (client->run) {
|
||||||
MQTT_API_LOCK(client);
|
MQTT_API_LOCK(client);
|
||||||
run_event_loop(client);
|
run_event_loop(client);
|
||||||
|
// delete long pending messages
|
||||||
|
mqtt_delete_expired_messages(client);
|
||||||
mqtt_client_state_t state = client->state;
|
mqtt_client_state_t state = client->state;
|
||||||
switch (state) {
|
switch (state) {
|
||||||
case MQTT_STATE_DISCONNECTED:
|
case MQTT_STATE_DISCONNECTED:
|
||||||
@ -1668,8 +1670,6 @@ static void esp_mqtt_task(void *pv)
|
|||||||
last_retransmit = platform_tick_get_ms();
|
last_retransmit = platform_tick_get_ms();
|
||||||
}
|
}
|
||||||
|
|
||||||
// delete long pending messages
|
|
||||||
mqtt_delete_expired_messages(client);
|
|
||||||
|
|
||||||
// resend all non-transmitted messages first
|
// resend all non-transmitted messages first
|
||||||
outbox_item_handle_t item = outbox_dequeue(client->outbox, QUEUED, NULL);
|
outbox_item_handle_t item = outbox_dequeue(client->outbox, QUEUED, NULL);
|
||||||
|
Reference in New Issue
Block a user