From a243d6b05758b2204f0b7e05f61742cea3c87fb1 Mon Sep 17 00:00:00 2001 From: Daniel Campora Date: Thu, 16 Jul 2015 22:39:35 +0200 Subject: cc3200: Make socket stream methods return POSIX error codes. --- cc3200/mods/modusocket.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'cc3200/mods/modusocket.c') diff --git a/cc3200/mods/modusocket.c b/cc3200/mods/modusocket.c index 7dc4a7190..7d8b73264 100644 --- a/cc3200/mods/modusocket.c +++ b/cc3200/mods/modusocket.c @@ -418,12 +418,24 @@ MP_DEFINE_CONST_DICT(socket_locals_dict, socket_locals_dict_table); STATIC mp_uint_t socket_read(mp_obj_t self_in, void *buf, mp_uint_t size, int *errcode) { mod_network_socket_obj_t *self = self_in; - return wlan_socket_recv(self, buf, size, errcode); + 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; + } + return ret; } STATIC mp_uint_t socket_write(mp_obj_t self_in, const void *buf, mp_uint_t size, int *errcode) { mod_network_socket_obj_t *self = self_in; - return wlan_socket_send(self, buf, size, errcode); + mp_int_t ret = wlan_socket_send(self, buf, size, errcode); + if (ret < 0) { + ret = MP_STREAM_ERROR; + // needed to convert simplelink's negative error codes to POSIX + (*errcode) *= -1; + } + return ret; } STATIC mp_uint_t socket_ioctl(mp_obj_t self_in, mp_uint_t request, mp_uint_t arg, int *errcode) { -- cgit v1.2.3