Skip to content

Commit 2fda94c

Browse files
iabdalkaderdpgeorge
authored andcommitted
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>
1 parent b6c369a commit 2fda94c

File tree

1 file changed

+2
-7
lines changed

1 file changed

+2
-7
lines changed

extmod/network_ninaw10.c

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -92,13 +92,8 @@ STATIC void network_ninaw10_poll_sockets(mp_sched_node_t *node) {
9292
// remove from poll list on error.
9393
socket->callback = MP_OBJ_NULL;
9494
mp_obj_list_remove(MP_STATE_PORT(mp_wifi_sockpoll_list), socket);
95-
} else if (flags) {
95+
} else if (flags & SOCKET_POLL_RD) {
9696
mp_call_function_1(socket->callback, MP_OBJ_FROM_PTR(socket));
97-
if (flags & SOCKET_POLL_ERR) {
98-
// remove from poll list on error.
99-
socket->callback = MP_OBJ_NULL;
100-
mp_obj_list_remove(MP_STATE_PORT(mp_wifi_sockpoll_list), socket);
101-
}
10297
}
10398
}
10499
}
@@ -451,7 +446,7 @@ STATIC int network_ninaw10_socket_poll(mod_network_socket_obj_t *socket, uint32_
451446
}
452447
mp_uint_t start = mp_hal_ticks_ms();
453448
for (; !(flags & rwf); mp_hal_delay_ms(5)) {
454-
if (nina_socket_poll(socket->fileno, &flags) < 0 || (flags & SOCKET_POLL_ERR)) {
449+
if (nina_socket_poll(socket->fileno, &flags) < 0) {
455450
nina_socket_errno(_errno);
456451
debug_printf("socket_poll(%d) -> errno %d flags %d\n", socket->fileno, *_errno, flags);
457452
return -1;

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy