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">
|
<tr align="center" bgcolor="#e4e4e4">
|
||||||
<td>
|
<td>
|
||||||
<h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1>
|
<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>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
@ -800,7 +800,23 @@
|
|||||||
<td><br></td>
|
<td><br></td>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<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>
|
</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</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
|
/* Wait for either the connect to complete or for an error/timeout
|
||||||
* to occur. NOTES: net_lockedwait will also terminate if a signal
|
* to occur. NOTES: net_lockedwait will also terminate if a signal
|
||||||
* is received.
|
* 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);
|
ret = net_lockedwait(&state.tc_sem);
|
||||||
|
Loading…
Reference in New Issue
Block a user