summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoriabdalkader <i.abdalkader@gmail.com>2022-05-19 08:11:45 +0200
committerDamien George <damien@micropython.org>2022-05-25 00:19:41 +1000
commitb9d2f1e8441538790335721ede8ae02d5551c089 (patch)
tree8418f3febb5dccb8750c2721361cdee81bb48f76
parent6841fecbb25ca547947e70c5441c2dbb8ec08dd1 (diff)
extmod/modusocket: Add timeout and callback to socket object.
-rw-r--r--extmod/modnetwork.h3
-rw-r--r--extmod/modusocket.c7
2 files changed, 6 insertions, 4 deletions
diff --git a/extmod/modnetwork.h b/extmod/modnetwork.h
index b95760897..a4d86a71c 100644
--- a/extmod/modnetwork.h
+++ b/extmod/modnetwork.h
@@ -86,9 +86,10 @@ typedef struct _mod_network_socket_obj_t {
uint32_t proto : 5;
uint32_t bound : 1;
int32_t fileno : 16;
+ int32_t timeout;
+ mp_obj_t callback;
#if MICROPY_PY_USOCKET_EXTENDED_STATE
// Extended socket state for NICs/ports that need it.
- int32_t timeout;
void *state;
#endif
} mod_network_socket_obj_t;
diff --git a/extmod/modusocket.c b/extmod/modusocket.c
index 97b26d73a..403791935 100644
--- a/extmod/modusocket.c
+++ b/extmod/modusocket.c
@@ -71,9 +71,9 @@ STATIC mp_obj_t socket_make_new(const mp_obj_type_t *type, size_t n_args, size_t
}
}
}
-
- #if MICROPY_PY_USOCKET_EXTENDED_STATE
s->timeout = -1;
+ s->callback = MP_OBJ_NULL;
+ #if MICROPY_PY_USOCKET_EXTENDED_STATE
s->state = NULL;
#endif
@@ -169,8 +169,9 @@ STATIC mp_obj_t socket_accept(mp_obj_t self_in) {
socket2->proto = self->proto;
socket2->bound = false;
socket2->fileno = -1;
- #if MICROPY_PY_USOCKET_EXTENDED_STATE
socket2->timeout = -1;
+ socket2->callback = MP_OBJ_NULL;
+ #if MICROPY_PY_USOCKET_EXTENDED_STATE
socket2->state = NULL;
#endif