fixed stopping of mqtt task

This commit is contained in:
Tijn Kooijmans
2017-07-24 15:19:44 +02:00
parent 9f907bbb30
commit 30f20e19bb

14
mqtt.c
View File

@@ -288,7 +288,7 @@ static bool mqtt_connect(mqtt_client *client)
mqtt_warn("Connection refused, server unavailable"); mqtt_warn("Connection refused, server unavailable");
return false; return false;
case CONNECTION_REFUSE_BAD_USERNAME: case CONNECTION_REFUSE_BAD_USERNAME:
mqtt_warn("Connection refused, bad username"); mqtt_warn("Connection refused, bad username or password");
return false; return false;
case CONNECTION_REFUSE_NOT_AUTHORIZED: case CONNECTION_REFUSE_NOT_AUTHORIZED:
mqtt_warn("Connection refused, not authorized"); mqtt_warn("Connection refused, not authorized");
@@ -479,19 +479,23 @@ void mqtt_start_receive_schedule(mqtt_client *client)
break; break;
} }
} }
mqtt_info("network disconnected");
} }
void mqtt_destroy(mqtt_client *client) void mqtt_destroy(mqtt_client *client)
{ {
if (client == NULL) return;
free(client->mqtt_state.in_buffer); free(client->mqtt_state.in_buffer);
free(client->mqtt_state.out_buffer); free(client->mqtt_state.out_buffer);
free(client); free(client);
vTaskDelete(xMqttTask);
mqtt_info("Client destroyed");
} }
void mqtt_task(void *pvParameters) void mqtt_task(void *pvParameters)
{ {
mqtt_info("Starting mqtt task");
mqtt_client *client = (mqtt_client *)pvParameters; mqtt_client *client = (mqtt_client *)pvParameters;
while (1) { while (1) {
@@ -534,8 +538,10 @@ void mqtt_task(void *pvParameters)
vTaskDelay(1000 / portTICK_RATE_MS); vTaskDelay(1000 / portTICK_RATE_MS);
} }
mqtt_destroy(client);
mqtt_destroy(client);
xMqttTask = NULL;
vTaskDelete(NULL);
} }
mqtt_client *mqtt_start(mqtt_settings *settings) mqtt_client *mqtt_start(mqtt_settings *settings)