Skip to content

Commit e444364

Browse files
authored
Merge pull request #9126 from dhalbert/espressif=handle-5.2.1-wifi-error-codes
handle new ESP-IDF v5.2.1 auth failure codes
2 parents 001740f + c71cf85 commit e444364

File tree

2 files changed

+42
-33
lines changed

2 files changed

+42
-33
lines changed

ports/espressif/common-hal/wifi/Radio.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,9 @@ wifi_radio_error_t common_hal_wifi_radio_connect(wifi_radio_obj_t *self, uint8_t
378378
if ((bits & WIFI_DISCONNECTED_BIT) != 0) {
379379
if (
380380
(self->last_disconnect_reason == WIFI_REASON_AUTH_FAIL) ||
381-
(self->last_disconnect_reason == WIFI_REASON_4WAY_HANDSHAKE_TIMEOUT)
381+
(self->last_disconnect_reason == WIFI_REASON_4WAY_HANDSHAKE_TIMEOUT) ||
382+
(self->last_disconnect_reason == WIFI_REASON_NO_AP_FOUND_W_COMPATIBLE_SECURITY) ||
383+
(self->last_disconnect_reason == WIFI_REASON_NO_AP_FOUND_IN_AUTHMODE_THRESHOLD)
382384
) {
383385
return WIFI_RADIO_ERROR_AUTH_FAIL;
384386
} else if (self->last_disconnect_reason == WIFI_REASON_NO_AP_FOUND) {

shared-bindings/wifi/Radio.h

Lines changed: 39 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -39,38 +39,45 @@ extern const mp_obj_namedtuple_type_t wifi_radio_station_type;
3939

4040
typedef enum {
4141
// 0 is circuitpython-specific; 1-53 are IEEE; 200+ are Espressif
42-
WIFI_RADIO_ERROR_NONE = 0,
43-
WIFI_RADIO_ERROR_UNSPECIFIED = 1,
44-
WIFI_RADIO_ERROR_AUTH_EXPIRE = 2,
45-
WIFI_RADIO_ERROR_AUTH_LEAVE = 3,
46-
WIFI_RADIO_ERROR_ASSOC_EXPIRE = 4,
47-
WIFI_RADIO_ERROR_ASSOC_TOOMANY = 5,
48-
WIFI_RADIO_ERROR_NOT_AUTHED = 6,
49-
WIFI_RADIO_ERROR_NOT_ASSOCED = 7,
50-
WIFI_RADIO_ERROR_ASSOC_LEAVE = 8,
51-
WIFI_RADIO_ERROR_ASSOC_NOT_AUTHED = 9,
52-
WIFI_RADIO_ERROR_DISASSOC_PWRCAP_BAD = 10,
53-
WIFI_RADIO_ERROR_DISASSOC_SUPCHAN_BAD = 11,
54-
WIFI_RADIO_ERROR_IE_INVALID = 13,
55-
WIFI_RADIO_ERROR_MIC_FAILURE = 14,
56-
WIFI_RADIO_ERROR_4WAY_HANDSHAKE_TIMEOUT = 15,
57-
WIFI_RADIO_ERROR_GROUP_KEY_UPDATE_TIMEOUT = 16,
58-
WIFI_RADIO_ERROR_IE_IN_4WAY_DIFFERS = 17,
59-
WIFI_RADIO_ERROR_GROUP_CIPHER_INVALID = 18,
60-
WIFI_RADIO_ERROR_PAIRWISE_CIPHER_INVALID = 19,
61-
WIFI_RADIO_ERROR_AKMP_INVALID = 20,
62-
WIFI_RADIO_ERROR_UNSUPP_RSN_IE_VERSION = 21,
63-
WIFI_RADIO_ERROR_INVALID_RSN_IE_CAP = 22,
64-
WIFI_RADIO_ERROR_802_1X_AUTH_FAILED = 23,
65-
WIFI_RADIO_ERROR_CIPHER_SUITE_REJECTED = 24,
66-
WIFI_RADIO_ERROR_INVALID_PMKID = 53,
67-
WIFI_RADIO_ERROR_BEACON_TIMEOUT = 200,
68-
WIFI_RADIO_ERROR_NO_AP_FOUND = 201,
69-
WIFI_RADIO_ERROR_AUTH_FAIL = 202,
70-
WIFI_RADIO_ERROR_ASSOC_FAIL = 203,
71-
WIFI_RADIO_ERROR_HANDSHAKE_TIMEOUT = 204,
72-
WIFI_RADIO_ERROR_CONNECTION_FAIL = 205,
73-
WIFI_RADIO_ERROR_AP_TSF_RESET = 206,
42+
// See wifi_err_reason_t in esp-idf/components/esp_wifi/include/esp_wifi_types.h
43+
WIFI_RADIO_ERROR_NONE = 0,
44+
WIFI_RADIO_ERROR_UNSPECIFIED = 1,
45+
WIFI_RADIO_ERROR_AUTH_EXPIRE = 2,
46+
WIFI_RADIO_ERROR_AUTH_LEAVE = 3,
47+
WIFI_RADIO_ERROR_ASSOC_EXPIRE = 4,
48+
WIFI_RADIO_ERROR_ASSOC_TOOMANY = 5,
49+
WIFI_RADIO_ERROR_NOT_AUTHED = 6,
50+
WIFI_RADIO_ERROR_NOT_ASSOCED = 7,
51+
WIFI_RADIO_ERROR_ASSOC_LEAVE = 8,
52+
WIFI_RADIO_ERROR_ASSOC_NOT_AUTHED = 9,
53+
WIFI_RADIO_ERROR_DISASSOC_PWRCAP_BAD = 10,
54+
WIFI_RADIO_ERROR_DISASSOC_SUPCHAN_BAD = 11,
55+
WIFI_RADIO_ERROR_IE_INVALID = 13,
56+
WIFI_RADIO_ERROR_MIC_FAILURE = 14,
57+
WIFI_RADIO_ERROR_4WAY_HANDSHAKE_TIMEOUT = 15,
58+
WIFI_RADIO_ERROR_GROUP_KEY_UPDATE_TIMEOUT = 16,
59+
WIFI_RADIO_ERROR_IE_IN_4WAY_DIFFERS = 17,
60+
WIFI_RADIO_ERROR_GROUP_CIPHER_INVALID = 18,
61+
WIFI_RADIO_ERROR_PAIRWISE_CIPHER_INVALID = 19,
62+
WIFI_RADIO_ERROR_AKMP_INVALID = 20,
63+
WIFI_RADIO_ERROR_UNSUPP_RSN_IE_VERSION = 21,
64+
WIFI_RADIO_ERROR_INVALID_RSN_IE_CAP = 22,
65+
WIFI_RADIO_ERROR_802_1X_AUTH_FAILED = 23,
66+
WIFI_RADIO_ERROR_CIPHER_SUITE_REJECTED = 24,
67+
WIFI_RADIO_ERROR_INVALID_PMKID = 53,
68+
WIFI_RADIO_ERROR_BEACON_TIMEOUT = 200,
69+
WIFI_RADIO_ERROR_NO_AP_FOUND = 201,
70+
WIFI_RADIO_ERROR_AUTH_FAIL = 202,
71+
WIFI_RADIO_ERROR_ASSOC_FAIL = 203,
72+
WIFI_RADIO_ERROR_HANDSHAKE_TIMEOUT = 204,
73+
WIFI_RADIO_ERROR_CONNECTION_FAIL = 205,
74+
WIFI_RADIO_ERROR_AP_TSF_RESET = 206,
75+
WIFI_RADIO_ERRROR_ROAMING = 207,
76+
WIFI_RADIO_ASSOC_COMEBACK_TOO_LONG = 208,
77+
WIFI_RADIO_SA_QUERY_TIMEOUT = 209,
78+
WIFI_RADIO_NO_AP_FOUND_W_COMPATIBLE_SECURITY = 210, // collapsed to AUTH_FAIL
79+
WIFI_RADIO_NO_AP_FOUND_IN_AUTHMODE_THRESHOLD = 211, // collapsed to AUTH_FAIL
80+
WIFI_RADIO_NO_AP_FOUND_IN_RSSI_THRESHOLD = 212,
7481
} wifi_radio_error_t;
7582

7683
extern bool common_hal_wifi_radio_get_enabled(wifi_radio_obj_t *self);

0 commit comments

Comments
 (0)