From 11ffeab8647ae95f6339bf765eed8a3c6de42ffd Mon Sep 17 00:00:00 2001 From: Kapil Gupta Date: Mon, 9 Sep 2024 17:02:54 +0530 Subject: [PATCH] fix(esp_wifi): Mask some error conditions in WPS Mask some error conditions in WPS to increase the probability of WPS success. --- .../wpa_supplicant/esp_supplicant/src/esp_wps.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/components/wpa_supplicant/esp_supplicant/src/esp_wps.c b/components/wpa_supplicant/esp_supplicant/src/esp_wps.c index 80b3e6d72d..fbe9cd3b83 100644 --- a/components/wpa_supplicant/esp_supplicant/src/esp_wps.c +++ b/components/wpa_supplicant/esp_supplicant/src/esp_wps.c @@ -592,15 +592,15 @@ int wps_process_wps_mX_req(u8 *ubuf, int len, enum wps_process_res *res) if (sm->state == WAIT_START) { if (expd->opcode != WSC_Start) { wpa_printf(MSG_DEBUG, "EAP-WSC: Unexpected Op-Code %d " - "in WAIT_START state", expd->opcode); - return ESP_FAIL; + "in WAIT_START state", expd->opcode); + return ESP_ERR_INVALID_STATE; } wpa_printf(MSG_DEBUG, "EAP-WSC: Received start"); sm->state = WPA_MESG; - } else if (expd->opcode == WSC_Start){ + } else if (expd->opcode == WSC_Start) { wpa_printf(MSG_DEBUG, "EAP-WSC: Unexpected Op-Code %d", - expd->opcode); - return ESP_FAIL; + expd->opcode); + return ESP_ERR_INVALID_STATE; } flag = *(u8 *)(ubuf + sizeof(struct eap_expand)); @@ -1067,6 +1067,8 @@ int wps_sm_rx_eapol_internal(u8 *src_addr, u8 *buf, u32 len) wpa_printf(MSG_DEBUG, "sm->wps->state = %d", sm->wps->state); wps_start_msg_timer(); } + } else if (ret == ESP_ERR_INVALID_STATE) { + ret = ESP_OK; } else { ret = ESP_FAIL; } @@ -1630,6 +1632,7 @@ wifi_wps_scan_done(void *arg, ETS_STATUS status) esp_wifi_set_config(0, &wifi_config); wpa_printf(MSG_DEBUG, "WPS: neg start"); + wifi_config.sta.failure_retry_cnt = 2; esp_wifi_connect(); sm->state = WAIT_START; eloop_cancel_timeout(wifi_station_wps_msg_timeout, NULL, NULL);