fix: copy message ID before unlocking client

This commit is contained in:
Junius Pun
2025-07-21 13:27:17 +08:00
committed by Rocha Euripedes
parent c6df7e38e7
commit 057c1ebc9e

View File

@@ -2040,8 +2040,10 @@ int esp_mqtt_client_subscribe_multiple(esp_mqtt_client_handle_t client,
}
ESP_LOGD(TAG, "Sent subscribe, first topic=%s, id: %d", topic_list[0].filter, client->mqtt_state.pending_msg_id);
int pending_msg_id = client->mqtt_state.pending_msg_id;
MQTT_API_UNLOCK(client);
return client->mqtt_state.pending_msg_id;
return pending_msg_id;
}
int esp_mqtt_client_subscribe_single(esp_mqtt_client_handle_t client, const char *topic, int qos)
@@ -2096,8 +2098,10 @@ int esp_mqtt_client_unsubscribe(esp_mqtt_client_handle_t client, const char *top
}
ESP_LOGD(TAG, "Sent Unsubscribe topic=%s, id: %d, successful", topic, client->mqtt_state.pending_msg_id);
int pending_msg_id = client->mqtt_state.pending_msg_id;
MQTT_API_UNLOCK(client);
return client->mqtt_state.pending_msg_id;
return pending_msg_id;
}
static int make_publish(esp_mqtt_client_handle_t client, const char *topic, const char *data,