From 41a4da16d31082e7ff5d56b11e21de1921f1b3f1 Mon Sep 17 00:00:00 2001 From: xiehang Date: Wed, 23 Dec 2020 15:43:19 +0800 Subject: [PATCH 1/2] esp_wifi: Fix WPS examples issue --- components/wpa_supplicant/src/esp_supplicant/esp_wps.c | 5 ++--- examples/wifi/wps/main/wps.c | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/components/wpa_supplicant/src/esp_supplicant/esp_wps.c b/components/wpa_supplicant/src/esp_supplicant/esp_wps.c index 9f71aeb98d..1b7c94ddb9 100644 --- a/components/wpa_supplicant/src/esp_supplicant/esp_wps.c +++ b/components/wpa_supplicant/src/esp_supplicant/esp_wps.c @@ -1505,6 +1505,7 @@ void wifi_station_wps_success_internal(void) { system_event_t evt; evt.event_id = SYSTEM_EVENT_STA_WPS_ER_SUCCESS; + evt.event_info.sta_er_success.ap_cred_cnt = 1; struct wps_sm *sm = gWpsSm; int i; @@ -1520,10 +1521,8 @@ void wifi_station_wps_success_internal(void) os_memcpy(evt.event_info.sta_er_success.ap_cred[i].passphrase, sm->key[i], sm->key_len[i]); } - esp_wifi_send_event_internal(&evt); - } else { - esp_wifi_send_event_internal(&evt); } + esp_wifi_send_event_internal(&evt); } void wifi_station_wps_success(void) diff --git a/examples/wifi/wps/main/wps.c b/examples/wifi/wps/main/wps.c index ed99100fde..b513c7c9b2 100644 --- a/examples/wifi/wps/main/wps.c +++ b/examples/wifi/wps/main/wps.c @@ -88,7 +88,7 @@ static void wifi_event_handler(void* arg, esp_event_base_t event_base, (wifi_event_sta_wps_er_success_t *)event_data; int i; - if (evt) { + if (evt && evt->ap_cred_cnt > 1) { s_ap_creds_num = evt->ap_cred_cnt; for (i = 0; i < s_ap_creds_num; i++) { memcpy(wps_ap_creds[i].sta.ssid, evt->ap_cred[i].ssid, From e4bd2bebb591379a8fc2bb9a9797ae8c271b9404 Mon Sep 17 00:00:00 2001 From: zhangyanjiao Date: Wed, 23 Dec 2020 17:35:06 +0800 Subject: [PATCH 2/2] esp_wifi: Add WPS Reason code in all failures --- components/wpa_supplicant/src/esp_supplicant/esp_wps.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/components/wpa_supplicant/src/esp_supplicant/esp_wps.c b/components/wpa_supplicant/src/esp_supplicant/esp_wps.c index 1b7c94ddb9..a647d4e4a8 100644 --- a/components/wpa_supplicant/src/esp_supplicant/esp_wps.c +++ b/components/wpa_supplicant/src/esp_supplicant/esp_wps.c @@ -976,6 +976,7 @@ int wps_finish(void) if (config == NULL) { system_event_t evt; evt.event_id = SYSTEM_EVENT_STA_WPS_ER_FAILED; + evt.event_info.sta_er_fail_reason = WPS_FAIL_REASON_NORMAL; esp_wifi_send_event_internal(&evt); return ESP_FAIL; } @@ -1253,6 +1254,7 @@ out: system_event_t evt; evt.event_id = SYSTEM_EVENT_STA_WPS_ER_FAILED; + evt.event_info.sta_er_fail_reason = WPS_FAIL_REASON_NORMAL; esp_wifi_send_event_internal(&evt); return ret;