summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDaniel Campora <daniel@wipy.io>2015-07-16 22:39:35 +0200
committerDaniel Campora <daniel@wipy.io>2015-07-16 22:39:35 +0200
commita243d6b05758b2204f0b7e05f61742cea3c87fb1 (patch)
treebb5d8dcc863c2e528958df88bc1ae2dbdf2417f6
parentf738424403dea5c7daff78eff5ff51bfd17a12c5 (diff)
downloadmicropython-a243d6b05758b2204f0b7e05f61742cea3c87fb1.tar.gz
micropython-a243d6b05758b2204f0b7e05f61742cea3c87fb1.zip
cc3200: Make socket stream methods return POSIX error codes.
-rw-r--r--cc3200/mods/modusocket.c16
-rw-r--r--cc3200/mods/modwlan.c2
2 files changed, 15 insertions, 3 deletions
diff --git a/cc3200/mods/modusocket.c b/cc3200/mods/modusocket.c
index 7dc4a71902..7d8b732645 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) {
diff --git a/cc3200/mods/modwlan.c b/cc3200/mods/modwlan.c
index b25bd99684..3724149206 100644
--- a/cc3200/mods/modwlan.c
+++ b/cc3200/mods/modwlan.c
@@ -1357,7 +1357,7 @@ int wlan_socket_ioctl (mod_network_socket_obj_t *s, mp_uint_t request, mp_uint_t
}
} else {
*_errno = EINVAL;
- ret = -1;
+ ret = MP_STREAM_ERROR;
}
return ret;
}