From aab005c75b7d8b1f06a3294ce7a5d86edea24594 Mon Sep 17 00:00:00 2001 From: Damien George Date: Mon, 4 Apr 2022 23:07:35 +1000 Subject: [PATCH] extmod/modusocket: Provide config macro for socket.listen backlog deflt. To make it possible to change this value for any given port or board. Signed-off-by: Damien George --- extmod/modlwip.c | 2 +- extmod/modusocket.c | 2 +- ports/cc3200/mods/modusocket.c | 2 +- ports/esp32/modsocket.c | 2 +- ports/unix/modusocket.c | 2 +- ports/unix/mpconfigport.h | 1 + ports/zephyr/modusocket.c | 2 +- py/mpconfig.h | 5 +++++ 8 files changed, 12 insertions(+), 6 deletions(-) diff --git a/extmod/modlwip.c b/extmod/modlwip.c index e62d4e7e4d..4d4ffc1e07 100644 --- a/extmod/modlwip.c +++ b/extmod/modlwip.c @@ -914,7 +914,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_2(lwip_socket_bind_obj, lwip_socket_bind); STATIC mp_obj_t lwip_socket_listen(size_t n_args, const mp_obj_t *args) { lwip_socket_obj_t *socket = MP_OBJ_TO_PTR(args[0]); - mp_int_t backlog = 2; + mp_int_t backlog = MICROPY_PY_USOCKET_LISTEN_BACKLOG_DEFAULT; if (n_args > 1) { backlog = mp_obj_get_int(args[1]); backlog = (backlog < 0) ? 0 : backlog; diff --git a/extmod/modusocket.c b/extmod/modusocket.c index 955ff4fc07..bd11e70c1e 100644 --- a/extmod/modusocket.c +++ b/extmod/modusocket.c @@ -126,7 +126,7 @@ STATIC mp_obj_t socket_listen(size_t n_args, const mp_obj_t *args) { mp_raise_OSError(MP_ENOTCONN); } - mp_int_t backlog = 2; + mp_int_t backlog = MICROPY_PY_USOCKET_LISTEN_BACKLOG_DEFAULT; if (n_args > 1) { backlog = mp_obj_get_int(args[1]); backlog = (backlog < 0) ? 0 : backlog; diff --git a/ports/cc3200/mods/modusocket.c b/ports/cc3200/mods/modusocket.c index 91b5e312e6..99b78c8837 100644 --- a/ports/cc3200/mods/modusocket.c +++ b/ports/cc3200/mods/modusocket.c @@ -489,7 +489,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_2(socket_bind_obj, socket_bind); STATIC mp_obj_t socket_listen(size_t n_args, const mp_obj_t *args) { mod_network_socket_obj_t *self = args[0]; - int32_t backlog = 2; + int32_t backlog = MICROPY_PY_USOCKET_LISTEN_BACKLOG_DEFAULT; if (n_args > 1) { backlog = mp_obj_get_int(args[1]); backlog = (backlog < 0) ? 0 : backlog; diff --git a/ports/esp32/modsocket.c b/ports/esp32/modsocket.c index d1abe3fbc2..9d4bfb37c4 100644 --- a/ports/esp32/modsocket.c +++ b/ports/esp32/modsocket.c @@ -299,7 +299,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_2(socket_bind_obj, socket_bind); STATIC mp_obj_t socket_listen(size_t n_args, const mp_obj_t *args) { socket_obj_t *self = MP_OBJ_TO_PTR(args[0]); - int backlog = 2; + int backlog = MICROPY_PY_USOCKET_LISTEN_BACKLOG_DEFAULT; if (n_args > 1) { backlog = mp_obj_get_int(args[1]); backlog = (backlog < 0) ? 0 : backlog; diff --git a/ports/unix/modusocket.c b/ports/unix/modusocket.c index 65b8fd4fa1..a516ed9c24 100644 --- a/ports/unix/modusocket.c +++ b/ports/unix/modusocket.c @@ -227,7 +227,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_2(socket_bind_obj, socket_bind); STATIC mp_obj_t socket_listen(size_t n_args, const mp_obj_t *args) { mp_obj_socket_t *self = MP_OBJ_TO_PTR(args[0]); - int backlog = SOMAXCONN < 128 ? SOMAXCONN : 128; + int backlog = MICROPY_PY_USOCKET_LISTEN_BACKLOG_DEFAULT; if (n_args > 1) { backlog = (int)mp_obj_get_int(args[1]); backlog = (backlog < 0) ? 0 : backlog; diff --git a/ports/unix/mpconfigport.h b/ports/unix/mpconfigport.h index 9987630382..ef7c820e7e 100644 --- a/ports/unix/mpconfigport.h +++ b/ports/unix/mpconfigport.h @@ -173,6 +173,7 @@ #define MICROPY_PY_UTIME (1) #define MICROPY_PY_UTIME_MP_HAL (1) #define MICROPY_PY_UTIMEQ (1) +#define MICROPY_PY_USOCKET_LISTEN_BACKLOG_DEFAULT (SOMAXCONN < 128 ? SOMAXCONN : 128) #if MICROPY_PY_USSL #define MICROPY_PY_UHASHLIB_MD5 (1) #define MICROPY_PY_UHASHLIB_SHA1 (1) diff --git a/ports/zephyr/modusocket.c b/ports/zephyr/modusocket.c index 19a62f6dc1..8f39347e37 100644 --- a/ports/zephyr/modusocket.c +++ b/ports/zephyr/modusocket.c @@ -190,7 +190,7 @@ STATIC mp_obj_t socket_listen(size_t n_args, const mp_obj_t *args) { socket_obj_t *socket = args[0]; socket_check_closed(socket); - mp_int_t backlog = 2; + mp_int_t backlog = MICROPY_PY_USOCKET_LISTEN_BACKLOG_DEFAULT; if (n_args > 1) { backlog = mp_obj_get_int(args[1]); backlog = (backlog < 0) ? 0 : backlog; diff --git a/py/mpconfig.h b/py/mpconfig.h index 47c16ed967..754daa7bd5 100644 --- a/py/mpconfig.h +++ b/py/mpconfig.h @@ -1593,6 +1593,11 @@ typedef double mp_float_t; #define MICROPY_PY_MACHINE_SOFTSPI (0) #endif +// The default backlog value for socket.listen(backlog) +#ifndef MICROPY_PY_USOCKET_LISTEN_BACKLOG_DEFAULT +#define MICROPY_PY_USOCKET_LISTEN_BACKLOG_DEFAULT (2) +#endif + #ifndef MICROPY_PY_USSL #define MICROPY_PY_USSL (0) #endif