summaryrefslogtreecommitdiff
path: root/ports/esp32/network_wlan.c
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2021-12-10 23:28:46 +1100
committerDamien George <damien@micropython.org>2021-12-14 14:27:13 +1100
commit5adb1fa40e95d938a713a3ed9a3b80615edf90fa (patch)
treea14591c81f295c7104af4e127d6336889b10ebea /ports/esp32/network_wlan.c
parent6995cf03dda98f490ab95ff90bf395a5667067d6 (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/esp32/network_wlan.c')
-rw-r--r--ports/esp32/network_wlan.c42
1 files changed, 19 insertions, 23 deletions
diff --git a/ports/esp32/network_wlan.c b/ports/esp32/network_wlan.c
index 3af722544..8702ca770 100644
--- a/ports/esp32/network_wlan.c
+++ b/ports/esp32/network_wlan.c
@@ -391,8 +391,6 @@ STATIC mp_obj_t network_wlan_config(size_t n_args, const mp_obj_t *args, mp_map_
esp_exceptions(esp_wifi_get_config(self->if_id, &cfg));
}
- #define QS(x) (uintptr_t)MP_OBJ_NEW_QSTR(x)
-
if (kwargs->used != 0) {
if (!is_wifi) {
goto unknown;
@@ -402,8 +400,8 @@ STATIC mp_obj_t network_wlan_config(size_t n_args, const mp_obj_t *args, mp_map_
if (mp_map_slot_is_filled(kwargs, i)) {
int req_if = -1;
- 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) {
@@ -412,7 +410,7 @@ STATIC mp_obj_t network_wlan_config(size_t n_args, const mp_obj_t *args, mp_map_
esp_exceptions(esp_wifi_set_mac(self->if_id, bufinfo.buf));
break;
}
- case QS(MP_QSTR_essid): {
+ case MP_QSTR_essid: {
req_if = WIFI_IF_AP;
size_t len;
const char *s = mp_obj_str_get_data(kwargs->table[i].value, &len);
@@ -421,17 +419,17 @@ STATIC mp_obj_t network_wlan_config(size_t n_args, const mp_obj_t *args, mp_map_
cfg.ap.ssid_len = len;
break;
}
- case QS(MP_QSTR_hidden): {
+ case MP_QSTR_hidden: {
req_if = WIFI_IF_AP;
cfg.ap.ssid_hidden = mp_obj_is_true(kwargs->table[i].value);
break;
}
- case QS(MP_QSTR_authmode): {
+ case MP_QSTR_authmode: {
req_if = WIFI_IF_AP;
cfg.ap.authmode = mp_obj_get_int(kwargs->table[i].value);
break;
}
- case QS(MP_QSTR_password): {
+ case MP_QSTR_password: {
req_if = WIFI_IF_AP;
size_t len;
const char *s = mp_obj_str_get_data(kwargs->table[i].value, &len);
@@ -440,22 +438,22 @@ STATIC mp_obj_t network_wlan_config(size_t n_args, const mp_obj_t *args, mp_map_
cfg.ap.password[len] = 0;
break;
}
- case QS(MP_QSTR_channel): {
+ case MP_QSTR_channel: {
req_if = WIFI_IF_AP;
cfg.ap.channel = mp_obj_get_int(kwargs->table[i].value);
break;
}
- case QS(MP_QSTR_dhcp_hostname): {
+ case MP_QSTR_dhcp_hostname: {
const char *s = mp_obj_str_get_str(kwargs->table[i].value);
esp_exceptions(tcpip_adapter_set_hostname(self->if_id, s));
break;
}
- case QS(MP_QSTR_max_clients): {
+ case MP_QSTR_max_clients: {
req_if = WIFI_IF_AP;
cfg.ap.max_connection = mp_obj_get_int(kwargs->table[i].value);
break;
}
- case QS(MP_QSTR_reconnects): {
+ case MP_QSTR_reconnects: {
int reconnects = mp_obj_get_int(kwargs->table[i].value);
req_if = WIFI_IF_STA;
// parameter reconnects == -1 means to retry forever.
@@ -488,8 +486,8 @@ STATIC mp_obj_t network_wlan_config(size_t n_args, const mp_obj_t *args, mp_map_
int req_if = -1;
mp_obj_t val = mp_const_none;
- switch ((uintptr_t)args[1]) {
- case QS(MP_QSTR_mac): {
+ switch (mp_obj_str_get_qstr(args[1])) {
+ case MP_QSTR_mac: {
uint8_t mac[6];
switch (self->if_id) {
case WIFI_IF_AP: // fallthrough intentional
@@ -500,7 +498,7 @@ STATIC mp_obj_t network_wlan_config(size_t n_args, const mp_obj_t *args, mp_map_
goto unknown;
}
}
- case QS(MP_QSTR_essid):
+ case MP_QSTR_essid:
switch (self->if_id) {
case WIFI_IF_STA:
val = mp_obj_new_str((char *)cfg.sta.ssid, strlen((char *)cfg.sta.ssid));
@@ -512,29 +510,29 @@ STATIC mp_obj_t network_wlan_config(size_t n_args, const mp_obj_t *args, mp_map_
req_if = WIFI_IF_AP;
}
break;
- case QS(MP_QSTR_hidden):
+ case MP_QSTR_hidden:
req_if = WIFI_IF_AP;
val = mp_obj_new_bool(cfg.ap.ssid_hidden);
break;
- case QS(MP_QSTR_authmode):
+ case MP_QSTR_authmode:
req_if = WIFI_IF_AP;
val = MP_OBJ_NEW_SMALL_INT(cfg.ap.authmode);
break;
- case QS(MP_QSTR_channel):
+ case MP_QSTR_channel:
req_if = WIFI_IF_AP;
val = MP_OBJ_NEW_SMALL_INT(cfg.ap.channel);
break;
- case QS(MP_QSTR_dhcp_hostname): {
+ case MP_QSTR_dhcp_hostname: {
const char *s;
esp_exceptions(tcpip_adapter_get_hostname(self->if_id, &s));
val = mp_obj_new_str(s, strlen(s));
break;
}
- case QS(MP_QSTR_max_clients): {
+ case MP_QSTR_max_clients: {
val = MP_OBJ_NEW_SMALL_INT(cfg.ap.max_connection);
break;
}
- case QS(MP_QSTR_reconnects):
+ case MP_QSTR_reconnects:
req_if = WIFI_IF_STA;
int rec = conf_wifi_sta_reconnects - 1;
val = MP_OBJ_NEW_SMALL_INT(rec);
@@ -543,8 +541,6 @@ STATIC mp_obj_t network_wlan_config(size_t n_args, const mp_obj_t *args, mp_map_
goto unknown;
}
-#undef QS
-
// We post-check interface requirements to save on code size
if (req_if >= 0) {
require_if(args[0], req_if);