summaryrefslogtreecommitdiff
path: root/shared-bindings
diff options
context:
space:
mode:
authorScott Shawcroft <scott@tannewt.org>2020-08-19 17:51:33 -0700
committerScott Shawcroft <scott@tannewt.org>2020-08-19 17:51:33 -0700
commit80b15f6b3b8bc513e8edcec48a0c97205be27fd3 (patch)
tree367edd6ce3590bb30c2bf5217704bbd278a3b4c6 /shared-bindings
parenteb8b42aff1e887125dda56bafd2b52312c1c7e05 (diff)
Add error handling w/temp debug logs
Diffstat (limited to 'shared-bindings')
-rw-r--r--shared-bindings/socketpool/Socket.c9
-rw-r--r--shared-bindings/socketpool/SocketPool.c4
-rw-r--r--shared-bindings/wifi/Radio.c6
3 files changed, 18 insertions, 1 deletions
diff --git a/shared-bindings/socketpool/Socket.c b/shared-bindings/socketpool/Socket.c
index ddead9507..932e8e856 100644
--- a/shared-bindings/socketpool/Socket.c
+++ b/shared-bindings/socketpool/Socket.c
@@ -36,6 +36,9 @@
#include "py/runtime.h"
#include "py/mperrno.h"
+#include "esp_log.h"
+static const char* TAG = "socket binding";
+
//| class Socket:
//| """TCP, UDP and RAW socket. Cannot be created directly. Instead, call
//| `SocketPool.socket()`.
@@ -180,6 +183,7 @@ STATIC mp_obj_t socketpool_socket_connect(mp_obj_t self_in, mp_obj_t addr_in) {
bool ok = common_hal_socketpool_socket_connect(self, host, hostlen, port);
if (!ok) {
+ ESP_EARLY_LOGW(TAG, "socket connect failed");
mp_raise_OSError(0);
}
@@ -262,6 +266,11 @@ STATIC mp_obj_t socketpool_socket_recv_into(size_t n_args, const mp_obj_t *args)
}
}
+ if (len == 0) {
+ ESP_EARLY_LOGW(TAG, "len 0");
+ mp_raise_OSError(0);
+ }
+
mp_int_t ret = common_hal_socketpool_socket_recv_into(self, (byte*)bufinfo.buf, len);
return mp_obj_new_int_from_uint(ret);
}
diff --git a/shared-bindings/socketpool/SocketPool.c b/shared-bindings/socketpool/SocketPool.c
index f8812f61f..579a4824c 100644
--- a/shared-bindings/socketpool/SocketPool.c
+++ b/shared-bindings/socketpool/SocketPool.c
@@ -37,6 +37,9 @@
#include "shared-bindings/socketpool/Socket.h"
#include "shared-bindings/socketpool/SocketPool.h"
+#include "esp_log.h"
+static const char* TAG = "socketpool binding";
+
//| class SocketPool:
//| """A pool of socket resources available for the given radio. Only one
//| SocketPool can be created for each radio.
@@ -119,6 +122,7 @@ STATIC mp_obj_t socketpool_socketpool_getaddrinfo(size_t n_args, const mp_obj_t
}
if (ip_str == mp_const_none) {
+ ESP_EARLY_LOGW(TAG, "no ip str");
mp_raise_OSError(0);
}
diff --git a/shared-bindings/wifi/Radio.c b/shared-bindings/wifi/Radio.c
index 260a280c2..6fd0c3374 100644
--- a/shared-bindings/wifi/Radio.c
+++ b/shared-bindings/wifi/Radio.c
@@ -159,7 +159,8 @@ const mp_obj_property_t wifi_radio_ipv4_address_obj = {
};
//| def ping(self, ip, *, timeout: float = 0.5) -> float:
-//| """Ping an IP to test connectivity. Returns echo time in seconds."""
+//| """Ping an IP to test connectivity. Returns echo time in seconds.
+//| Returns None when it times out."""
//| ...
//|
STATIC mp_obj_t wifi_radio_ping(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
@@ -179,6 +180,9 @@ STATIC mp_obj_t wifi_radio_ping(size_t n_args, const mp_obj_t *pos_args, mp_map_
}
mp_int_t time_ms = common_hal_wifi_radio_ping(self, args[ARG_ip].u_obj, timeout);
+ if (time_ms == -1) {
+ return mp_const_none;
+ }
return mp_obj_new_float(time_ms / 1000.0);
}