@@ -861,6 +861,18 @@ STATIC mp_obj_t lwip_socket_settimeout(mp_obj_t self_in, mp_obj_t timeout_in) {
861861}
862862STATIC 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+
864876STATIC 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