summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--extmod/modlwip.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/extmod/modlwip.c b/extmod/modlwip.c
index a6630c693c..f1242b0461 100644
--- a/extmod/modlwip.c
+++ b/extmod/modlwip.c
@@ -367,8 +367,16 @@ mp_uint_t lwip_parse_inet_addr(mp_obj_t addr_in, ip_addr_t *out_ip) {
mp_obj_get_array_fixed_n(addr_in, 2, &addr_items);
size_t addr_len;
const char *addr_str = mp_obj_str_get_data(addr_items[0], &addr_len);
- if (!ipaddr_aton(addr_str, out_ip)) {
- mp_raise_ValueError(MP_ERROR_TEXT("invalid arguments"));
+ if (*addr_str == 0) {
+ #if LWIP_IPV6
+ *out_ip = *IP6_ADDR_ANY;
+ #else
+ *out_ip = *IP_ADDR_ANY;
+ #endif
+ } else {
+ if (!ipaddr_aton(addr_str, out_ip)) {
+ mp_raise_ValueError(MP_ERROR_TEXT("invalid arguments"));
+ }
}
return mp_obj_get_int(addr_items[1]);
}