Update TODO list and fix an error in conditional compilation that I introduced with the last commit.

This commit is contained in:
Gregory Nutt 2019-07-01 08:12:51 -06:00
parent 5af5fc4409
commit 5e36627366
2 changed files with 26 additions and 3 deletions

25
TODO
View File

@ -19,7 +19,7 @@ nuttx/:
(9) Kernel/Protected Build
(3) C++ Support
(5) Binary loaders (binfmt/)
(17) Network (net/, drivers/net)
(18) Network (net/, drivers/net)
(4) USB (drivers/usbdev, drivers/usbhost)
(2) Other drivers (drivers/)
(9) Libraries (libs/libc/, libs/libm/)
@ -1663,6 +1663,29 @@ o Network (net/, drivers/net)
anything but a well-known point-to-point configuration
impossible.
Title: SO_LINGER IMPLEMENTATION IS INCORRECT
Description: Support for the SO_LINGER socket option is implemented but
not correctly. Currently, it simply adds a timeout to the
"normal" delay for the FIN to be sent with an additional
timeout. That is not even close to the required behavior.
Per OpenGroup.org:
SO_LINGER
Lingers on a close() if data is present. This option
controls the action taken when unsent messages queue
on a socket and close() is performed. If SO_LINGER
is set, the system shall block the calling thread
during close() until it can transmit the data or
until the time expires. If SO_LINGER is not specified,
and close() is issued, the system handles the call
in a way that allows the calling thread to continue
as quickly as possible. This option takes a linger
structure, as defined in the <sys/socket.h> header,
to specify the state of the option and linger interval.
Status: Open
Priority: Medium Low.
o USB (drivers/usbdev, drivers/usbhost)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -421,9 +421,9 @@ static inline int tcp_close_disconnect(FAR struct socket *psock)
}
}
else
#else
#endif
{
(void)net_timedwait(&state.cl_sem, NULL);
(void)net_lockedwait(&state.cl_sem);
}
/* We are now disconnected */