diff --git a/main/MQTTClient_Task.c b/main/MQTTClient_Task.c index a78e73c..e1f3fb5 100644 --- a/main/MQTTClient_Task.c +++ b/main/MQTTClient_Task.c @@ -39,6 +39,9 @@ static void MQTTClient_EventHandlerMQTT(void *handler_args, esp_event_base_t bas esp_mqtt_event_handle_t event = event_data; esp_mqtt_client_handle_t client = event->client; + char* topic = NULL; + char* payload = NULL; + switch ((esp_mqtt_event_id_t)event_id) { case MQTT_EVENT_CONNECTED: @@ -56,8 +59,8 @@ static void MQTTClient_EventHandlerMQTT(void *handler_args, esp_event_base_t bas ESP_LOGD(TAG_MQTTClient, "TOPIC=%.*s\r\n", event->topic_len, event->topic); ESP_LOGD(TAG_MQTTClient, "DATA=%.*s\r\n", event->data_len, event->data); - char* topic = malloc(sizeof(char) * event->topic_len + 1); - char* payload = malloc(sizeof(char) * event->data_len + 1); + topic = malloc(sizeof(char) * event->topic_len + 1); + payload = malloc(sizeof(char) * event->data_len + 1); topic[event->topic_len] = 0; topic[event->data_len] = 0; @@ -145,6 +148,15 @@ static void MQTTClient_EventHandlerMQTT(void *handler_args, esp_event_base_t bas default: ESP_LOGD(TAG_MQTTClient, "Unhandled Event"); } + + if(topic != NULL) + { + free(topic); + } + if(payload != NULL) + { + free(payload); + } } void MQTTClient_Init(MQTTClient_Config* config, MQTTClient_Data* data) @@ -155,7 +167,7 @@ void MQTTClient_Init(MQTTClient_Config* config, MQTTClient_Data* data) data->Effect_Queue = config->Effect_Queue; data->ID = config->ID; sprintf(data->Topic, "fablight/%s/#", config->ID); - + //data->Topic = "fablight/#"; ESP_LOGI(TAG_MQTTClient, "Init"); esp_netif_create_default_wifi_sta();