diff options
| author | danicampora | 2015-10-20 15:04:55 +0200 |
|---|---|---|
| committer | danicampora | 2015-10-21 15:30:56 +0200 |
| commit | 04db848dc7c7356a38f809b5efdd4699a41aa54f (patch) | |
| tree | 7fb8a5ec866788d13e25ef313b4431c27e756cba /cc3200 | |
| parent | 4b630c452d238895385fb044e91b3496359a8dde (diff) | |
docs: Add usocket and ussl modules' documentation.
Diffstat (limited to 'cc3200')
| -rw-r--r-- | cc3200/mods/modusocket.c | 17 | ||||
| -rw-r--r-- | cc3200/mods/modussl.c | 4 |
2 files changed, 18 insertions, 3 deletions
diff --git a/cc3200/mods/modusocket.c b/cc3200/mods/modusocket.c index ad59493ea..42163b68b 100644 --- a/cc3200/mods/modusocket.c +++ b/cc3200/mods/modusocket.c @@ -397,6 +397,21 @@ STATIC mp_obj_t socket_setblocking(mp_obj_t self_in, mp_obj_t blocking) { } STATIC MP_DEFINE_CONST_FUN_OBJ_2(socket_setblocking_obj, socket_setblocking); +STATIC mp_obj_t socket_makefile(mp_uint_t n_args, const mp_obj_t *args) { + // TODO: CPython explicitly says that closing the returned object doesn't + // close the original socket (Python2 at all says that fd is dup()ed). But + // we save on the bloat. + mod_network_socket_obj_t *self = args[0]; + if (n_args > 1) { + const char *mode = mp_obj_str_get_str(args[1]); + if (strcmp(mode, "rb") && strcmp(mode, "wb")) { + nlr_raise(mp_obj_new_exception_msg(&mp_type_ValueError, mpexception_value_invalid_arguments)); + } + } + return self; +} +STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(socket_makefile_obj, 1, 6, socket_makefile); + STATIC const mp_map_elem_t socket_locals_dict_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR___del__), (mp_obj_t)&socket_close_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_close), (mp_obj_t)&socket_close_obj }, @@ -412,7 +427,7 @@ STATIC const mp_map_elem_t socket_locals_dict_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR_setsockopt), (mp_obj_t)&socket_setsockopt_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_settimeout), (mp_obj_t)&socket_settimeout_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_setblocking), (mp_obj_t)&socket_setblocking_obj }, - { MP_OBJ_NEW_QSTR(MP_QSTR_makefile), (mp_obj_t)&mp_identity_obj }, + { MP_OBJ_NEW_QSTR(MP_QSTR_makefile), (mp_obj_t)&socket_makefile_obj }, // stream methods { MP_OBJ_NEW_QSTR(MP_QSTR_read), (mp_obj_t)&mp_stream_read_obj }, diff --git a/cc3200/mods/modussl.c b/cc3200/mods/modussl.c index a11d2b2ef..ce3067d96 100644 --- a/cc3200/mods/modussl.c +++ b/cc3200/mods/modussl.c @@ -61,7 +61,7 @@ STATIC const mp_obj_type_t ssl_socket_type; /******************************************************************************/ // Micro Python bindings; SSL class -// ssl socket inherits from normal socket, so we take its +// ssl sockets inherit from normal socket, so we take its // locals and stream methods STATIC const mp_obj_type_t ssl_socket_type = { { &mp_type_type }, @@ -116,7 +116,7 @@ STATIC mp_obj_t mod_ssl_wrap_socket(mp_uint_t n_args, const mp_obj_t *pos_args, // create the ssl socket mp_obj_ssl_socket_t *ssl_sock = m_new_obj(mp_obj_ssl_socket_t); - // ssl socket inherits all properties from the original socket + // ssl sockets inherit all properties from the original socket memcpy (&ssl_sock->sock_base, &((mod_network_socket_obj_t *)args[0].u_obj)->sock_base, sizeof(mod_network_socket_base_t)); ssl_sock->base.type = &ssl_socket_type; ssl_sock->sock_base.cert_req = (args[4].u_int == SSL_CERT_REQUIRED) ? true : false; |
