kopia lustrzana https://github.com/micropython/micropython
extmod/network_ninaw10: Fix select flags handling in socket poll.
The flags returned from `select()` were misinterpreted to mean an error had occurred for the socket, when it's actually just an exceptional condition for the socket, such as OOB data. Signed-off-by: iabdalkader <i.abdalkader@gmail.com>pull/12775/head
rodzic
b6c369a396
commit
2fda94c286
|
@ -92,13 +92,8 @@ STATIC void network_ninaw10_poll_sockets(mp_sched_node_t *node) {
|
||||||
// remove from poll list on error.
|
// remove from poll list on error.
|
||||||
socket->callback = MP_OBJ_NULL;
|
socket->callback = MP_OBJ_NULL;
|
||||||
mp_obj_list_remove(MP_STATE_PORT(mp_wifi_sockpoll_list), socket);
|
mp_obj_list_remove(MP_STATE_PORT(mp_wifi_sockpoll_list), socket);
|
||||||
} else if (flags) {
|
} else if (flags & SOCKET_POLL_RD) {
|
||||||
mp_call_function_1(socket->callback, MP_OBJ_FROM_PTR(socket));
|
mp_call_function_1(socket->callback, MP_OBJ_FROM_PTR(socket));
|
||||||
if (flags & SOCKET_POLL_ERR) {
|
|
||||||
// remove from poll list on error.
|
|
||||||
socket->callback = MP_OBJ_NULL;
|
|
||||||
mp_obj_list_remove(MP_STATE_PORT(mp_wifi_sockpoll_list), socket);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -451,7 +446,7 @@ STATIC int network_ninaw10_socket_poll(mod_network_socket_obj_t *socket, uint32_
|
||||||
}
|
}
|
||||||
mp_uint_t start = mp_hal_ticks_ms();
|
mp_uint_t start = mp_hal_ticks_ms();
|
||||||
for (; !(flags & rwf); mp_hal_delay_ms(5)) {
|
for (; !(flags & rwf); mp_hal_delay_ms(5)) {
|
||||||
if (nina_socket_poll(socket->fileno, &flags) < 0 || (flags & SOCKET_POLL_ERR)) {
|
if (nina_socket_poll(socket->fileno, &flags) < 0) {
|
||||||
nina_socket_errno(_errno);
|
nina_socket_errno(_errno);
|
||||||
debug_printf("socket_poll(%d) -> errno %d flags %d\n", socket->fileno, *_errno, flags);
|
debug_printf("socket_poll(%d) -> errno %d flags %d\n", socket->fileno, *_errno, flags);
|
||||||
return -1;
|
return -1;
|
||||||
|
|
Ładowanie…
Reference in New Issue