diff options
| author | Damien George <damien@micropython.org> | 2021-12-10 23:28:46 +1100 |
|---|---|---|
| committer | Damien George <damien@micropython.org> | 2021-12-14 14:27:13 +1100 |
| commit | 5adb1fa40e95d938a713a3ed9a3b80615edf90fa (patch) | |
| tree | a14591c81f295c7104af4e127d6336889b10ebea /ports/esp8266/modnetwork.c | |
| parent | 6995cf03dda98f490ab95ff90bf395a5667067d6 (diff) | |
esp32,esp8266: Extract qstr from object when comparing keys in config().
Following on from a previous fix for the same problem made in
3a431fba50c96cc47d8273a6934e200993197b14.
Fixes issue #8052.
Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'ports/esp8266/modnetwork.c')
| -rw-r--r-- | ports/esp8266/modnetwork.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/ports/esp8266/modnetwork.c b/ports/esp8266/modnetwork.c index f0cd83aee..6988e09bd 100644 --- a/ports/esp8266/modnetwork.c +++ b/ports/esp8266/modnetwork.c @@ -351,9 +351,8 @@ STATIC mp_obj_t esp_config(size_t n_args, const mp_obj_t *args, mp_map_t *kwargs for (mp_uint_t i = 0; i < kwargs->alloc; i++) { if (mp_map_slot_is_filled(kwargs, i)) { - #define QS(x) (uintptr_t)MP_OBJ_NEW_QSTR(x) - switch ((uintptr_t)kwargs->table[i].key) { - case QS(MP_QSTR_mac): { + switch (mp_obj_str_get_qstr(kwargs->table[i].key)) { + case MP_QSTR_mac: { mp_buffer_info_t bufinfo; mp_get_buffer_raise(kwargs->table[i].value, &bufinfo, MP_BUFFER_READ); if (bufinfo.len != 6) { @@ -362,7 +361,7 @@ STATIC mp_obj_t esp_config(size_t n_args, const mp_obj_t *args, mp_map_t *kwargs wifi_set_macaddr(self->if_id, bufinfo.buf); break; } - case QS(MP_QSTR_essid): { + case MP_QSTR_essid: { req_if = SOFTAP_IF; size_t len; const char *s = mp_obj_str_get_data(kwargs->table[i].value, &len); @@ -371,17 +370,17 @@ STATIC mp_obj_t esp_config(size_t n_args, const mp_obj_t *args, mp_map_t *kwargs cfg.ap.ssid_len = len; break; } - case QS(MP_QSTR_hidden): { + case MP_QSTR_hidden: { req_if = SOFTAP_IF; cfg.ap.ssid_hidden = mp_obj_is_true(kwargs->table[i].value); break; } - case QS(MP_QSTR_authmode): { + case MP_QSTR_authmode: { req_if = SOFTAP_IF; cfg.ap.authmode = mp_obj_get_int(kwargs->table[i].value); break; } - case QS(MP_QSTR_password): { + case MP_QSTR_password: { req_if = SOFTAP_IF; size_t len; const char *s = mp_obj_str_get_data(kwargs->table[i].value, &len); @@ -390,12 +389,12 @@ STATIC mp_obj_t esp_config(size_t n_args, const mp_obj_t *args, mp_map_t *kwargs cfg.ap.password[len] = 0; break; } - case QS(MP_QSTR_channel): { + case MP_QSTR_channel: { req_if = SOFTAP_IF; cfg.ap.channel = mp_obj_get_int(kwargs->table[i].value); break; } - case QS(MP_QSTR_dhcp_hostname): { + case MP_QSTR_dhcp_hostname: { req_if = STATION_IF; if (self->if_id == STATION_IF) { const char *s = mp_obj_str_get_str(kwargs->table[i].value); @@ -406,7 +405,6 @@ STATIC mp_obj_t esp_config(size_t n_args, const mp_obj_t *args, mp_map_t *kwargs default: goto unknown; } -#undef QS } } |
