summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authoriabdalkader <i.abdalkader@gmail.com>2022-05-12 13:01:22 +0200
committerDamien George <damien@micropython.org>2022-05-25 00:16:32 +1000
commit6136c7644a4a64612ef80c0681b44c11a710ab48 (patch)
tree3e89b160504b2df6ae7328b38365c10dda4908ac
parent7b4147dd0b9df469bbae642b3aa02dd74a853685 (diff)
downloadmicropython-6136c7644a4a64612ef80c0681b44c11a710ab48.tar.gz
micropython-6136c7644a4a64612ef80c0681b44c11a710ab48.zip
extmod/modusocket: Bind unconnected socket to default NIC in setsockopt.
Bind socket to default NIC if setsockopt is called before the socket is bound, to allow setting SO_REUSEADDR before calling socket_bind(). Fixes issue #8653.
-rw-r--r--extmod/modusocket.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/extmod/modusocket.c b/extmod/modusocket.c
index 9b1eb8cd7a..eae113f7c4 100644
--- a/extmod/modusocket.c
+++ b/extmod/modusocket.c
@@ -310,8 +310,9 @@ STATIC mp_obj_t socket_setsockopt(size_t n_args, const mp_obj_t *args) {
mod_network_socket_obj_t *self = MP_OBJ_TO_PTR(args[0]);
if (self->nic == MP_OBJ_NULL) {
- // not connected
- return mp_const_none;
+ // bind to default NIC.
+ uint8_t ip[4] = {0, 0, 0, 0};
+ socket_select_nic(self, ip);
}
mp_int_t level = mp_obj_get_int(args[1]);