Cosmetic update to a document and some comments.
This commit is contained in:
parent
c0bf0b4d9d
commit
c3ce23ba35
@ -8,7 +8,7 @@
|
||||
<tr align="center" bgcolor="#e4e4e4">
|
||||
<td>
|
||||
<h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1>
|
||||
<p>Last Updated: October 24, 2017</p>
|
||||
<p>Last Updated: October 25, 2017</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@ -800,7 +800,23 @@
|
||||
<td><br></td>
|
||||
<td>
|
||||
<p>
|
||||
<li>Address Families: IPv4/IPv6 (<code>AF_INET</code>/<code>AF_INET6</code>), Raw socket (<code>AF_PACKET</code>), raw IEEE 802.15.4 (<code>AF_IEEE802154</code>), raw ICMP and ICMPv6 protocol ping sockets, local, Unix domain socket support (<code>AF_LOCAL</code>), and custom user sockets.</li>
|
||||
<li>Address Families: IPv4/IPv6 (<code>AF_INET</code>/<code>AF_INET6</code>), Raw socket (<code>AF_PACKET</code>), raw IEEE 802.15.4 (<code>AF_IEEE802154</code>), and local, Unix domain socket support (<code>AF_LOCAL</code>).</li>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br></td>
|
||||
<td>
|
||||
<p>
|
||||
<li>Special <code>INET</code> protocol sockets: Raw ICMP and ICMPv6 protocol ping sockets (<code>IPPROTO_ICMP</code>).</li>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br></td>
|
||||
<td>
|
||||
<p>
|
||||
<li>Custom user sockets.</li>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -364,6 +364,29 @@ int psock_tcp_connect(FAR struct socket *psock,
|
||||
/* Wait for either the connect to complete or for an error/timeout
|
||||
* to occur. NOTES: net_lockedwait will also terminate if a signal
|
||||
* is received.
|
||||
*
|
||||
* REVISIT: This failure has been reported:
|
||||
* - psock_tcp_accept() waits on net_lockedwait() below
|
||||
* - The accept operation completes, the socket is in the connected
|
||||
* state and psock_accept() is awakened. It cannot run,
|
||||
* however, because its priority is low and so it is blocked
|
||||
* from execution.
|
||||
* - In the mean time, the remote host sends a
|
||||
* packet which is presumeably caught in the read-ahead buffer.
|
||||
* - Then the remote host closes the socket. Nothing happens on
|
||||
* the target side because net_start_monitor() has not yet been
|
||||
* called.
|
||||
* - Then accept() finally runs, but not with a connected but
|
||||
* rather with a disconnected socket. This fails when it
|
||||
* attempts to start the network monitor on the disconnected
|
||||
* socket below.
|
||||
* - It is also impossible to read the buffered TCP data from a
|
||||
* disconnected socket. The TCP recvfrom() logic would also
|
||||
* need to permit reading buffered data from a disconnected
|
||||
* socket.
|
||||
*
|
||||
* A work-around is to raise the priority of the thread that calls
|
||||
* accept().
|
||||
*/
|
||||
|
||||
ret = net_lockedwait(&state.tc_sem);
|
||||
|
Loading…
Reference in New Issue
Block a user