diff --git a/components/lwip/api/api_lib.c b/components/lwip/api/api_lib.c index 676e43388c..dfe207f964 100755 --- a/components/lwip/api/api_lib.c +++ b/components/lwip/api/api_lib.c @@ -75,10 +75,11 @@ static err_t netconn_close_shutdown(struct netconn *conn, u8_t how); static err_t tcpip_apimsg(struct api_msg *apimsg) { -#ifdef LWIP_DEBUG +#if LWIP_DEBUG /* catch functions that don't set err */ apimsg->msg.err = ERR_VAL; #endif + #if LWIP_NETCONN_SEM_PER_THREAD apimsg->msg.op_completed_sem = LWIP_NETCONN_THREAD_SEM_GET(); LWIP_ASSERT("netconn semaphore not initialized", diff --git a/components/lwip/api/api_msg.c b/components/lwip/api/api_msg.c index bdfc0a984a..5e5b8b2ca2 100755 --- a/components/lwip/api/api_msg.c +++ b/components/lwip/api/api_msg.c @@ -1008,6 +1008,9 @@ lwip_netconn_do_delconn(void *m) enum netconn_state state = msg->conn->state; LWIP_ASSERT("netconn state error", /* this only happens for TCP netconns */ (state == NETCONN_NONE) || (NETCONNTYPE_GROUP(msg->conn->type) == NETCONN_TCP)); + + msg->err = ERR_OK; + #if LWIP_NETCONN_FULLDUPLEX /* In full duplex mode, blocking write/connect is aborted with ERR_CLSD */ if (state != NETCONN_NONE) { @@ -1022,6 +1025,7 @@ lwip_netconn_do_delconn(void *m) msg->conn->write_offset = 0; msg->conn->state = NETCONN_NONE; NETCONN_SET_SAFE_ERR(msg->conn, ERR_CLSD); + msg->err = ERR_INPROGRESS; sys_sem_signal(op_completed_sem); } }