summaryrefslogtreecommitdiff
path: root/apps/netutils
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2014-01-14 18:19:43 -0600
committerGregory Nutt <gnutt@nuttx.org>2014-01-14 18:19:43 -0600
commit687245d6898eac03302b3f023090cb54c9e284c9 (patch)
tree21b2f25b085295af846b31fe49c5e755f6790f1a /apps/netutils
parentf2587c00c50e212ac9f045a7d80cbfe38ebc0d7b (diff)
downloadnuttx-687245d6898eac03302b3f023090cb54c9e284c9.tar.gz
nuttx-687245d6898eac03302b3f023090cb54c9e284c9.tar.bz2
nuttx-687245d6898eac03302b3f023090cb54c9e284c9.zip
If write buffering is enabled, then it is necessary to release the write buffer resources (callback structure) when the socket is closed
Diffstat (limited to 'apps/netutils')
-rw-r--r--apps/netutils/telnetd/telnetd_driver.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/apps/netutils/telnetd/telnetd_driver.c b/apps/netutils/telnetd/telnetd_driver.c
index 13d1e00e4..7f87b8c70 100644
--- a/apps/netutils/telnetd/telnetd_driver.c
+++ b/apps/netutils/telnetd/telnetd_driver.c
@@ -215,7 +215,7 @@ static void telnetd_getchar(FAR struct telnetd_dev_s *priv, uint8_t ch,
* Name: telnetd_receive
*
* Description:
- * Process a received telenet buffer
+ * Process a received Telnet buffer
*
****************************************************************************/
@@ -500,12 +500,20 @@ static int telnetd_close(FAR struct file *filep)
}
else
{
- /* Unregister the character driver */
+ /* Un-register the character driver */
ret = unregister_driver(devpath);
if (ret < 0)
{
- nlldbg("Failed to unregister the driver %s: %d\n", devpath, ret);
+ /* NOTE: a return value of -EBUSY is not an error, it simply
+ * means that the Telnet driver is busy now and cannot be
+ * registered now because there are other sessions using the
+ * connection. The driver will be properly unregistered when
+ * the final session terminates.
+ */
+
+ nlldbg("Failed to unregister the driver %s: %d\n",
+ devpath, ret);
}
free(devpath);