diff options
author | Daniel Campora <daniel@wipy.io> | 2015-07-29 18:45:53 +0200 |
---|---|---|
committer | Daniel Campora <daniel@wipy.io> | 2015-07-30 00:43:14 +0200 |
commit | b56634e6919265de4f2344dfac81ace7abbcc15b (patch) | |
tree | c8b21b0d6d35e827f22af6143a3e61b91de449b3 | |
parent | fb3f9cff33a21a786f529619bc1c52edfb230344 (diff) | |
download | micropython-b56634e6919265de4f2344dfac81ace7abbcc15b.tar.gz micropython-b56634e6919265de4f2344dfac81ace7abbcc15b.zip |
cc3200: On ssl.read() or ssl.readall() ignore ssl layer closed error.
-rw-r--r-- | cc3200/mods/modusocket.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/cc3200/mods/modusocket.c b/cc3200/mods/modusocket.c index bc6c3c65be..7b723ac7ed 100644 --- a/cc3200/mods/modusocket.c +++ b/cc3200/mods/modusocket.c @@ -422,9 +422,15 @@ STATIC mp_uint_t socket_read(mp_obj_t self_in, void *buf, mp_uint_t size, int *e mod_network_socket_obj_t *self = self_in; mp_int_t ret = wlan_socket_recv(self, buf, size, errcode); if (ret < 0) { - ret = MP_STREAM_ERROR; - // needed to convert simplelink's negative error codes to POSIX - (*errcode) *= -1; + // we need to ignore the socket closed error here because a readall() or read() without params + // only returns when the socket is closed by the other end + if (*errcode != SL_ESECCLOSED) { + ret = MP_STREAM_ERROR; + // needed to convert simplelink's negative error codes to POSIX + (*errcode) *= -1; + } else { + ret = 0; + } } return ret; } |