Make set_dns more idiomatic of Python

Now accepts either one or two DNS servers and uses n_args to figure out how many you supplied and pass it on.
pull/126/head
Phil Howard 2021-04-14 14:24:02 +01:00
rodzic d3829e73a8
commit c748437d60
2 zmienionych plików z 5 dodań i 6 usunięć

Wyświetl plik

@ -15,7 +15,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_KW(picowireless_wifi_set_key_obj, 3, picowireless
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(picowireless_config_obj, 4, picowireless_config);
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(picowireless_set_dns_obj, 3, picowireless_set_dns);
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(picowireless_set_dns_obj, 1, picowireless_set_dns);
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(picowireless_set_hostname_obj, 1, picowireless_set_hostname);
STATIC MP_DEFINE_CONST_FUN_OBJ_0(picowireless_disconnect_obj, picowireless_disconnect);

Wyświetl plik

@ -194,19 +194,18 @@ mp_obj_t picowireless_config(size_t n_args, const mp_obj_t *pos_args, mp_map_t *
mp_obj_t picowireless_set_dns(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
if(wireless != nullptr) {
enum { ARG_valid_params, ARG_dns_server1, ARG_dns_server2 };
enum { ARG_dns_server1, ARG_dns_server2 };
static const mp_arg_t allowed_args[] = {
{ MP_QSTR_valid_params, MP_ARG_REQUIRED | MP_ARG_INT },
{ MP_QSTR_dns_server1, MP_ARG_REQUIRED | MP_ARG_OBJ },
{ MP_QSTR_dns_server2, MP_ARG_REQUIRED | MP_ARG_OBJ },
{ MP_QSTR_dns_server2 | MP_ARG_OBJ },
};
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
uint8_t valid_params = args[ARG_valid_params].u_int;
uint8_t valid_params = n_args;
uint32_t dns_server1 = mp_obj_to_ip(args[ARG_dns_server1].u_obj);
uint32_t dns_server2 = mp_obj_to_ip(args[ARG_dns_server2].u_obj);
uint32_t dns_server2 = n_args == 1 ? 0 : mp_obj_to_ip(args[ARG_dns_server2].u_obj);
wireless->set_dns(valid_params, dns_server1, dns_server2);
}
else