Fixed bug #28865 (Cannot close socket/netconn in non-blocking connect)

This commit is contained in:
goldsimon 2010-02-12 15:21:37 +00:00
parent 39df7d048c
commit c73b1b4fa2
2 changed files with 9 additions and 1 deletions

View File

@ -110,6 +110,10 @@ HISTORY
++ Bugfixes:
2010-02-12: Simon Goldschmidt/Stephane Lesage
* api_msg.c: Fixed bug #28865 (Cannot close socket/netconn in non-blocking
connect)
2010-02-12: Simon Goldschmidt
* mem.h: Fixed bug #28866 (mem_realloc function defined in mem.h)

View File

@ -762,11 +762,15 @@ void
do_delconn(struct api_msg_msg *msg)
{
/* @todo TCP: abort running write/connect? */
if ((msg->conn->state != NETCONN_NONE) && (msg->conn->state != NETCONN_LISTEN)) {
if ((msg->conn->state != NETCONN_NONE) &&
(msg->conn->state != NETCONN_LISTEN) &&
(msg->conn->state != NETCONN_CONNECT)) {
/* this only happens for TCP netconns */
LWIP_ASSERT("msg->conn->type == NETCONN_TCP", msg->conn->type == NETCONN_TCP);
msg->err = ERR_INPROGRESS;
} else {
LWIP_ASSERT("blocking connect in progress",
(msg->conn->state != NETCONN_CONNECT) || IN_NONBLOCKING_CONNECT(msg->conn));
/* Drain and delete mboxes */
netconn_drain(msg->conn);