Skip to content

Commit ba8f7d5

Browse files
committed
extmod/modlwip: Add socket.setblocking() method.
1 parent 09ed5bc commit ba8f7d5

1 file changed

Lines changed: 13 additions & 0 deletions

File tree

extmod/modlwip.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -861,6 +861,18 @@ STATIC mp_obj_t lwip_socket_settimeout(mp_obj_t self_in, mp_obj_t timeout_in) {
861861
}
862862
STATIC MP_DEFINE_CONST_FUN_OBJ_2(lwip_socket_settimeout_obj, lwip_socket_settimeout);
863863

864+
STATIC mp_obj_t lwip_socket_setblocking(mp_obj_t self_in, mp_obj_t flag_in) {
865+
lwip_socket_obj_t *socket = self_in;
866+
bool val = mp_obj_is_true(flag_in);
867+
if (val) {
868+
socket->timeout = -1;
869+
} else {
870+
socket->timeout = 0;
871+
}
872+
return mp_const_none;
873+
}
874+
STATIC MP_DEFINE_CONST_FUN_OBJ_2(lwip_socket_setblocking_obj, lwip_socket_setblocking);
875+
864876
STATIC mp_obj_t lwip_socket_setsockopt(mp_uint_t n_args, const mp_obj_t *args) {
865877
(void)n_args; // always 4
866878
printf("Warning: lwip.setsockopt() not implemented\n");
@@ -912,6 +924,7 @@ STATIC const mp_map_elem_t lwip_socket_locals_dict_table[] = {
912924
{ MP_OBJ_NEW_QSTR(MP_QSTR_sendto), (mp_obj_t)&lwip_socket_sendto_obj },
913925
{ MP_OBJ_NEW_QSTR(MP_QSTR_recvfrom), (mp_obj_t)&lwip_socket_recvfrom_obj },
914926
{ MP_OBJ_NEW_QSTR(MP_QSTR_settimeout), (mp_obj_t)&lwip_socket_settimeout_obj },
927+
{ MP_OBJ_NEW_QSTR(MP_QSTR_setblocking), (mp_obj_t)&lwip_socket_setblocking_obj },
915928
{ MP_OBJ_NEW_QSTR(MP_QSTR_setsockopt), (mp_obj_t)&lwip_socket_setsockopt_obj },
916929
{ MP_OBJ_NEW_QSTR(MP_QSTR_makefile), (mp_obj_t)&lwip_socket_makefile_obj },
917930

0 commit comments

Comments
 (0)