added free memory flag to MQTT transmit data structure

This commit is contained in:
Bogdan Pilyugin 2024-01-30 14:52:05 +02:00
parent 33da14fa0c
commit aaed490d84
2 changed files with 7 additions and 5 deletions

View File

@ -52,6 +52,7 @@ typedef struct
char topic[CONFIG_WEBGUIAPP_MQTT_MAX_TOPIC_LENGTH];
char *raw_data_ptr;
int data_length;
bool keep_memory_onfinish;
}MQTT_DATA_SEND_STRUCT;
/**

View File

@ -122,7 +122,7 @@ esp_err_t SysServiceMQTTSend(char *data, int len, int idx)
if (buf)
{
memcpy(buf, data, len);
MQTT_DATA_SEND_STRUCT DSS;
MQTT_DATA_SEND_STRUCT DSS = {0};
ComposeTopic(DSS.topic, idx, SERVICE_NAME, UPLINK_SUBTOPIC);
DSS.raw_data_ptr = buf;
DSS.data_length = len;
@ -146,7 +146,7 @@ esp_err_t ExternalServiceMQTTSend(char *data, int len, int idx)
if (buf)
{
memcpy(buf, data, len);
MQTT_DATA_SEND_STRUCT DSS;
MQTT_DATA_SEND_STRUCT DSS = {0};
ComposeTopic(DSS.topic, idx, EXTERNAL_SERVICE_NAME, UPLINK_SUBTOPIC);
DSS.raw_data_ptr = buf;
DSS.data_length = len;
@ -394,6 +394,7 @@ void MQTTTaskTransmit(void *pvParameter)
}
//else
// ESP_LOGW(TAG, "MQTT client not initialized or disconnected");
if (!DSS.keep_memory_onfinish)
free(DSS.raw_data_ptr);
}
}