Przeglądaj źródła

Merge branch 'feature/mqtt_submodule_update_23c8e1ec' into 'master'

MQTT: Update submodule reference to da850b (config, error flags, minor fixes)

Closes IDFGH-4033

See merge request espressif/esp-idf!11225
David Čermák 5 lat temu
rodzic
commit
ae30617810

+ 1 - 1
components/mqtt/esp-mqtt

@@ -1 +1 @@
-Subproject commit b9db8d90204c7f9a23165630fd74ad621516c0c7
+Subproject commit da850b0add1e71b3659bfac5d797cc834dc3e89b

+ 3 - 1
examples/protocols/mqtt/ssl/main/app_main.c

@@ -89,9 +89,11 @@ static esp_err_t mqtt_event_handler_cb(esp_mqtt_event_handle_t event)
             break;
         case MQTT_EVENT_ERROR:
             ESP_LOGI(TAG, "MQTT_EVENT_ERROR");
-            if (event->error_handle->error_type == MQTT_ERROR_TYPE_ESP_TLS) {
+            if (event->error_handle->error_type == MQTT_ERROR_TYPE_TCP_TRANSPORT) {
                 ESP_LOGI(TAG, "Last error code reported from esp-tls: 0x%x", event->error_handle->esp_tls_last_esp_err);
                 ESP_LOGI(TAG, "Last tls stack error number: 0x%x", event->error_handle->esp_tls_stack_err);
+                ESP_LOGI(TAG, "Last captured errno : %d (%s)",  event->error_handle->esp_transport_sock_errno,
+                                                                strerror(event->error_handle->esp_transport_sock_errno));
             } else if (event->error_handle->error_type == MQTT_ERROR_TYPE_CONNECTION_REFUSED) {
                 ESP_LOGI(TAG, "Connection refused error: 0x%x", event->error_handle->connect_return_code);
             } else {

+ 14 - 0
examples/protocols/mqtt/tcp/main/app_main.c

@@ -33,6 +33,13 @@
 static const char *TAG = "MQTT_EXAMPLE";
 
 
+static void log_error_if_nonzero(const char * message, int error_code)
+{
+    if (error_code != 0) {
+        ESP_LOGE(TAG, "Last error %s: 0x%x", message, error_code);
+    }
+}
+
 static esp_err_t mqtt_event_handler_cb(esp_mqtt_event_handle_t event)
 {
     esp_mqtt_client_handle_t client = event->client;
@@ -75,6 +82,13 @@ static esp_err_t mqtt_event_handler_cb(esp_mqtt_event_handle_t event)
             break;
         case MQTT_EVENT_ERROR:
             ESP_LOGI(TAG, "MQTT_EVENT_ERROR");
+            if (event->error_handle->error_type == MQTT_ERROR_TYPE_TCP_TRANSPORT) {
+                log_error_if_nonzero("reported from esp-tls", event->error_handle->esp_tls_last_esp_err);
+                log_error_if_nonzero("reported from tls stack", event->error_handle->esp_tls_stack_err);
+                log_error_if_nonzero("captured as transport's socket errno",  event->error_handle->esp_transport_sock_errno);
+                ESP_LOGI(TAG, "Last errno string (%s)", strerror(event->error_handle->esp_transport_sock_errno));
+
+            }
             break;
         default:
             ESP_LOGI(TAG, "Other event id:%d", event->event_id);