mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-10-03 21:32:08 +00:00
Fixed a bug in linger-closing when LWIP_TCPIP_CORE_LOCKING==1
This commit is contained in:
parent
7d8657287e
commit
276e35ecfb
@ -861,6 +861,7 @@ lwip_netconn_do_close_internal(struct netconn *conn)
|
|||||||
if (linger_wait_required) {
|
if (linger_wait_required) {
|
||||||
/* wait for ACK of all unsent/unacked data by just getting called again */
|
/* wait for ACK of all unsent/unacked data by just getting called again */
|
||||||
close_finished = 0;
|
close_finished = 0;
|
||||||
|
err = ERR_INPROGRESS;
|
||||||
}
|
}
|
||||||
#endif /* LWIP_SO_LINGER */
|
#endif /* LWIP_SO_LINGER */
|
||||||
} else {
|
} else {
|
||||||
@ -944,6 +945,7 @@ lwip_netconn_do_close_internal(struct netconn *conn)
|
|||||||
}
|
}
|
||||||
/* If closing didn't succeed, we get called again either
|
/* If closing didn't succeed, we get called again either
|
||||||
from poll_tcp or from sent_tcp */
|
from poll_tcp or from sent_tcp */
|
||||||
|
LWIP_ASSERT("err != ERR_OK", err != ERR_OK);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
#endif /* LWIP_TCP */
|
#endif /* LWIP_TCP */
|
||||||
@ -978,10 +980,10 @@ lwip_netconn_do_delconn(struct api_msg_msg *msg)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else /* LWIP_NETCONN_FULLDUPLEX */
|
#else /* LWIP_NETCONN_FULLDUPLEX */
|
||||||
if (((msg->conn->state != NETCONN_NONE) &&
|
if (((msg->conn->state != NETCONN_NONE) &&
|
||||||
(msg->conn->state != NETCONN_LISTEN) &&
|
(msg->conn->state != NETCONN_LISTEN) &&
|
||||||
(msg->conn->state != NETCONN_CONNECT)) ||
|
(msg->conn->state != NETCONN_CONNECT)) ||
|
||||||
(msg->conn->state == NETCONN_CONNECT) && !IN_NONBLOCKING_CONNECT(msg->conn)) {
|
(msg->conn->state == NETCONN_CONNECT) && !IN_NONBLOCKING_CONNECT(msg->conn)) {
|
||||||
/* This means either a blocking write or blocking connect is running
|
/* This means either a blocking write or blocking connect is running
|
||||||
(nonblocking write returns and sets state to NONE) */
|
(nonblocking write returns and sets state to NONE) */
|
||||||
msg->err = ERR_INPROGRESS;
|
msg->err = ERR_INPROGRESS;
|
||||||
|
Loading…
Reference in New Issue
Block a user