Merge branch 'feature/transport_pass_error_codes' into 'master'

transport pass error codes to user code

See merge request espressif/esp-mqtt!33
This commit is contained in:
David Čermák
2019-07-18 02:33:44 +08:00
3 changed files with 7 additions and 0 deletions

View File

@ -82,6 +82,7 @@ typedef struct {
int topic_len; /*!< Length of the topic for this event asociated with this event */
int msg_id; /*!< MQTT messaged id of message */
int session_present; /*!< MQTT session_present flag for connection event */
void* error_handle; /*!< esp-tls error handle referencing last error/flags captured in transports */
} esp_mqtt_event_t;
typedef esp_mqtt_event_t *esp_mqtt_event_handle_t;

View File

@ -36,6 +36,7 @@
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 0, 0)
// Features supported in 4.0
#define MQTT_SUPPORTED_FEATURE_WS_SUBPROTOCOL
#define MQTT_SUPPORTED_FEATURE_TRANSPORT_ERR_REPORTING
#endif
#endif

View File

@ -993,6 +993,11 @@ static void esp_mqtt_task(void *pv)
client->config->port,
client->config->network_timeout_ms) < 0) {
ESP_LOGE(TAG, "Error transport connect");
client->event.event_id = MQTT_EVENT_ERROR;
#ifdef MQTT_SUPPORTED_FEATURE_TRANSPORT_ERR_REPORTING
client->event.error_handle = esp_transport_get_error_handle(client->transport);
#endif
esp_mqtt_dispatch_event_with_msgid(client);
esp_mqtt_abort_connection(client);
break;
}