mirror of
https://github.com/espressif/esp-lwip.git
synced 2026-08-26 20:00:05 +00:00
fix bug for nonblocking udp is zero
This commit is contained in:
+19
-1
@@ -2577,13 +2577,16 @@ event_callback(struct netconn *conn, enum netconn_evt evt, u16_t len)
|
||||
static void select_check_waiters(int s, int has_recvevent, int has_sendevent, int has_errevent)
|
||||
{
|
||||
struct lwip_select_cb *scb;
|
||||
struct lwip_sock *sock;
|
||||
#if !LWIP_TCPIP_CORE_LOCKING
|
||||
int last_select_cb_ctr;
|
||||
SYS_ARCH_DECL_PROTECT(lev);
|
||||
#endif /* !LWIP_TCPIP_CORE_LOCKING */
|
||||
|
||||
LWIP_ASSERT_CORE_LOCKED();
|
||||
|
||||
#if ESP_LWIP_SELECT
|
||||
sock = tryget_socket_unconn(s);
|
||||
#endif/* ESP_LWIP_SELECT */
|
||||
#if !LWIP_TCPIP_CORE_LOCKING
|
||||
SYS_ARCH_PROTECT(lev);
|
||||
again:
|
||||
@@ -2605,17 +2608,29 @@ again:
|
||||
#if LWIP_SOCKET_SELECT
|
||||
{
|
||||
/* Test this select call for our socket */
|
||||
#if ESP_LWIP_SELECT
|
||||
if (sock->rcvevent) {
|
||||
#else
|
||||
if (has_recvevent) {
|
||||
#endif/* ESP_LWIP_SELECT */
|
||||
if (scb->readset && FD_ISSET(s, scb->readset)) {
|
||||
do_signal = 1;
|
||||
}
|
||||
}
|
||||
#if ESP_LWIP_SELECT
|
||||
if (sock->sendevent) {
|
||||
#else
|
||||
if (has_sendevent) {
|
||||
#endif/* ESP_LWIP_SELECT */
|
||||
if (!do_signal && scb->writeset && FD_ISSET(s, scb->writeset)) {
|
||||
do_signal = 1;
|
||||
}
|
||||
}
|
||||
#if ESP_LWIP_SELECT
|
||||
if (sock->errevent) {
|
||||
#else
|
||||
if (has_errevent) {
|
||||
#endif/* ESP_LWIP_SELECT */
|
||||
if (!do_signal && scb->exceptset && FD_ISSET(s, scb->exceptset)) {
|
||||
do_signal = 1;
|
||||
}
|
||||
@@ -2645,6 +2660,9 @@ again:
|
||||
last_select_cb_ctr = select_cb_ctr;
|
||||
}
|
||||
SYS_ARCH_UNPROTECT(lev);
|
||||
#if ESP_LWIP_SELECT
|
||||
done_socket(sock);
|
||||
#endif/* ESP_LWIP_SELECT */
|
||||
#endif
|
||||
}
|
||||
#endif /* LWIP_SOCKET_SELECT || LWIP_SOCKET_POLL */
|
||||
|
||||
@@ -99,6 +99,6 @@
|
||||
#define ESP_LWIP_IGMP_TIMERS_ONDEMAND 1
|
||||
#define ESP_LWIP_MLD6_TIMERS_ONDEMAND 1
|
||||
#define ESP_GRATUITOUS_ARP 1
|
||||
|
||||
#define ESP_LWIP_SELECT 1
|
||||
|
||||
#endif /* LWIP_HDR_LWIPOPTS_H */
|
||||
|
||||
Reference in New Issue
Block a user