summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--extmod/modnetwork.h9
-rw-r--r--extmod/modusocket.c13
2 files changed, 22 insertions, 0 deletions
diff --git a/extmod/modnetwork.h b/extmod/modnetwork.h
index bbf80bc47..b95760897 100644
--- a/extmod/modnetwork.h
+++ b/extmod/modnetwork.h
@@ -38,6 +38,15 @@
#define MOD_NETWORK_STA_IF (0)
#define MOD_NETWORK_AP_IF (1)
+// Socket level option.
+#define MOD_NETWORK_SOL_SOCKET (0x0FFF)
+
+// Common option flags per-socket.
+#define MOD_NETWORK_SO_REUSEADDR (0x0004)
+#define MOD_NETWORK_SO_KEEPALIVE (0x0008)
+#define MOD_NETWORK_SO_SNDTIMEO (0x1005)
+#define MOD_NETWORK_SO_RCVTIMEO (0x1006)
+
#if MICROPY_PY_LWIP
struct netif;
void mod_network_lwip_poll_wrapper(uint32_t ticks_ms);
diff --git a/extmod/modusocket.c b/extmod/modusocket.c
index 09a334d67..373f2c125 100644
--- a/extmod/modusocket.c
+++ b/extmod/modusocket.c
@@ -334,6 +334,12 @@ STATIC mp_obj_t socket_setsockopt(size_t n_args, const mp_obj_t *args) {
}
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(socket_setsockopt_obj, 4, 4, socket_setsockopt);
+STATIC mp_obj_t socket_makefile(size_t n_args, const mp_obj_t *args) {
+ (void)n_args;
+ return args[0];
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(socket_makefile_obj, 1, 3, socket_makefile);
+
// method socket.settimeout(value)
// timeout=0 means non-blocking
// timeout=None means blocking
@@ -390,6 +396,7 @@ STATIC const mp_rom_map_elem_t socket_locals_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_sendto), MP_ROM_PTR(&socket_sendto_obj) },
{ MP_ROM_QSTR(MP_QSTR_recvfrom), MP_ROM_PTR(&socket_recvfrom_obj) },
{ MP_ROM_QSTR(MP_QSTR_setsockopt), MP_ROM_PTR(&socket_setsockopt_obj) },
+ { MP_ROM_QSTR(MP_QSTR_makefile), MP_ROM_PTR(&socket_makefile_obj) },
{ MP_ROM_QSTR(MP_QSTR_settimeout), MP_ROM_PTR(&socket_settimeout_obj) },
{ MP_ROM_QSTR(MP_QSTR_setblocking), MP_ROM_PTR(&socket_setblocking_obj) },
@@ -528,6 +535,12 @@ STATIC const mp_rom_map_elem_t mp_module_usocket_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR_SOCK_DGRAM), MP_ROM_INT(MOD_NETWORK_SOCK_DGRAM) },
{ MP_ROM_QSTR(MP_QSTR_SOCK_RAW), MP_ROM_INT(MOD_NETWORK_SOCK_RAW) },
+ { MP_ROM_QSTR(MP_QSTR_SOL_SOCKET), MP_ROM_INT(MOD_NETWORK_SOL_SOCKET) },
+ { MP_ROM_QSTR(MP_QSTR_SO_REUSEADDR), MP_ROM_INT(MOD_NETWORK_SO_REUSEADDR) },
+ { MP_ROM_QSTR(MP_QSTR_SO_KEEPALIVE), MP_ROM_INT(MOD_NETWORK_SO_KEEPALIVE) },
+ { MP_ROM_QSTR(MP_QSTR_SO_SNDTIMEO), MP_ROM_INT(MOD_NETWORK_SO_SNDTIMEO) },
+ { MP_ROM_QSTR(MP_QSTR_SO_RCVTIMEO), MP_ROM_INT(MOD_NETWORK_SO_RCVTIMEO) },
+
/*
{ MP_ROM_QSTR(MP_QSTR_IPPROTO_IP), MP_ROM_INT(MOD_NETWORK_IPPROTO_IP) },
{ MP_ROM_QSTR(MP_QSTR_IPPROTO_ICMP), MP_ROM_INT(MOD_NETWORK_IPPROTO_ICMP) },