fixed memory leak in MQTT extended log
This commit is contained in:
parent
133dc249c7
commit
369b236549
15
src/MQTT.c
15
src/MQTT.c
|
|
@ -214,9 +214,9 @@ static void mqtt_system_event_handler(int idx, void *handler_args, esp_event_bas
|
||||||
ESP_LOGI(TAG, "MQTT_EVENT_CONNECTED client %d", idx);
|
ESP_LOGI(TAG, "MQTT_EVENT_CONNECTED client %d", idx);
|
||||||
#endif
|
#endif
|
||||||
ComposeTopic(topic, idx, SERVICE_NAME, DOWNLINK_SUBTOPIC);
|
ComposeTopic(topic, idx, SERVICE_NAME, DOWNLINK_SUBTOPIC);
|
||||||
msg_id = esp_mqtt_client_subscribe(client, (char*) topic, 0);
|
msg_id = esp_mqtt_client_subscribe(client, (char*) topic, 0);
|
||||||
#if MQTT_DEBUG_MODE > 0
|
#if MQTT_DEBUG_MODE > 0
|
||||||
ESP_LOGI(TAG, "sent subscribe successful, msg_id=%d", msg_id);
|
ESP_LOGI(TAG, "sent subscribe successful, msg_id=%d", msg_id);
|
||||||
ESP_LOGI(TAG, "Subscribe to %s", topic);
|
ESP_LOGI(TAG, "Subscribe to %s", topic);
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_WEBGUIAPP_UART_TRANSPORT_ENABLE
|
#ifdef CONFIG_WEBGUIAPP_UART_TRANSPORT_ENABLE
|
||||||
|
|
@ -395,10 +395,10 @@ void MQTTTaskTransmit(void *pvParameter)
|
||||||
DSS.data_length,
|
DSS.data_length,
|
||||||
0, 0);
|
0, 0);
|
||||||
}
|
}
|
||||||
//else
|
|
||||||
// ESP_LOGW(TAG, "MQTT client not initialized or disconnected");
|
|
||||||
if (!DSS.keep_memory_onfinish)
|
if (!DSS.keep_memory_onfinish)
|
||||||
|
{
|
||||||
free(DSS.raw_data_ptr);
|
free(DSS.raw_data_ptr);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -516,8 +516,8 @@ esp_err_t ExtendedLog(esp_log_level_t level, char *format, ...)
|
||||||
if (data == NULL)
|
if (data == NULL)
|
||||||
return ESP_ERR_NO_MEM;
|
return ESP_ERR_NO_MEM;
|
||||||
vsnprintf(data, MAX_MQTT_LOG_MESSAGE, format, arg);
|
vsnprintf(data, MAX_MQTT_LOG_MESSAGE, format, arg);
|
||||||
if(strlen(data) == MAX_MQTT_LOG_MESSAGE - 1)
|
if (strlen(data) == MAX_MQTT_LOG_MESSAGE - 1)
|
||||||
for(int i = 0; i < 3; i++)
|
for (int i = 0; i < 3; i++)
|
||||||
*(data + MAX_MQTT_LOG_MESSAGE - 2 - i) = '.';
|
*(data + MAX_MQTT_LOG_MESSAGE - 2 - i) = '.';
|
||||||
switch (level)
|
switch (level)
|
||||||
{
|
{
|
||||||
|
|
@ -547,10 +547,11 @@ esp_err_t ExtendedLog(esp_log_level_t level, char *format, ...)
|
||||||
strcpy(buf, time);
|
strcpy(buf, time);
|
||||||
strcat(buf, " ");
|
strcat(buf, " ");
|
||||||
strcat(buf, data);
|
strcat(buf, data);
|
||||||
MQTT_DATA_SEND_STRUCT DSS;
|
MQTT_DATA_SEND_STRUCT DSS = {0};
|
||||||
ComposeTopic(DSS.topic, idx, "LOG", "UPLINK");
|
ComposeTopic(DSS.topic, idx, "LOG", "UPLINK");
|
||||||
DSS.raw_data_ptr = buf;
|
DSS.raw_data_ptr = buf;
|
||||||
DSS.data_length = strlen(buf);
|
DSS.data_length = strlen(buf);
|
||||||
|
DSS.keep_memory_onfinish = false;
|
||||||
if (xQueueSend(GetMQTTHandlesPool(idx)->mqtt_queue, &DSS, pdMS_TO_TICKS(0)) != pdPASS)
|
if (xQueueSend(GetMQTTHandlesPool(idx)->mqtt_queue, &DSS, pdMS_TO_TICKS(0)) != pdPASS)
|
||||||
free(buf);
|
free(buf);
|
||||||
continue;
|
continue;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user