Skip to content
Snippets Groups Projects
Commit abc00645 authored by Gregory Nutt's avatar Gregory Nutt
Browse files

Networking: Fix race condition that can cause missing loss-of-connection...

Networking:  Fix race condition that can cause missing loss-of-connection events.  From Max Holtzberg
parent fb372483
No related branches found
No related tags found
No related merge requests found
......@@ -5502,4 +5502,7 @@
changes made to pl2303, but untested (2013-9-5).
* arch/arm/src/sama5/sam_udphs.c: The high-speed device side driver
is now functional (although more testing is always needed) (2013-9-5).
* net/net_monitor.c: Fixes a race condition where a loss of connection
may not be detected when the connection is lost before it has been
accepted (from Max Holtzberg) (2013-9-6).
......@@ -132,6 +132,17 @@ int net_startmonitor(FAR struct socket *psock)
conn->connection_private = (void*)psock;
conn->connection_event = connection_event;
/* Check if the connection has already been closed before any callbacks have
* been registered. (Maybe the connection is lost before accept has registered
* the monitoring callback.)
*/
if (conn->tcpstateflags == UIP_CLOSED)
{
connection_event(conn, UIP_CLOSE);
}
return OK;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment