Fix assert issue causes by closing nonblocking tcp socket.
}\
}while(0)
-#define LWIP_SET_CLOSE_FLAG() \
+#define LWIP_SET_CLOSE_FLAG(_flag) \
do{\
LWIP_SOCK_LOCK(__sock);\
LWIP_DEBUGF(ESP_THREAD_SAFE_DEBUG, ("mark sock closing\n"));\
- __sock->state = LWIP_SOCK_CLOSING;\
+ __sock->state = (_flag);\
LWIP_SOCK_UNLOCK(__sock);\
}while(0)
lwip_close_r(int s)
{
LWIP_API_LOCK();
- LWIP_SET_CLOSE_FLAG();
+ LWIP_SET_CLOSE_FLAG(LWIP_SOCK_CLOSING);
__ret = lwip_close(s);
+ if (EWOULDBLOCK == __sock->err) {
+ LWIP_SET_CLOSE_FLAG(LWIP_SOCK_OPEN);
+ }
LWIP_API_UNLOCK();
}