summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-02-01 21:10:40 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-02-01 21:10:40 +0000
commit7fb190093c485279c8c89b53578bb297ab1170e2 (patch)
treef543747f552741b311effcf385e00bda0be40e74
parent37259910ba73b71e4c32e5913e4d44c245c4502d (diff)
downloadnuttx-7fb190093c485279c8c89b53578bb297ab1170e2.tar.gz
nuttx-7fb190093c485279c8c89b53578bb297ab1170e2.tar.bz2
nuttx-7fb190093c485279c8c89b53578bb297ab1170e2.zip
Re-verficatin of examples/telnetd after refactoring of fgets/readline functionality
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4358 42af7a65-404d-4744-a932-0658087f49c3
-rw-r--r--apps/examples/README.txt26
-rw-r--r--apps/examples/telnetd/shell.c3
-rw-r--r--apps/netutils/telnetd/telnetd_driver.c10
3 files changed, 37 insertions, 2 deletions
diff --git a/apps/examples/README.txt b/apps/examples/README.txt
index a8af257d7..500405893 100644
--- a/apps/examples/README.txt
+++ b/apps/examples/README.txt
@@ -417,6 +417,19 @@ examples/nsh
CONFIGURED_APPS += tftp
CONFIGURED_APPS += webclient
+ If the Telnet console is enabled, then the appconfig file (apps/.config)
+ should also include:
+
+ CONFIGURED_APPS += netutils/telnetd
+
+ Also if the Telnet console is enabled, make sure that you have the
+ following set in the NuttX configuration file or else the performance
+ will be very bad (because there will be only one character per TCP
+ transfer):
+
+ CONFIG_STDIO_BUFFER_SIZE - Some value >= 64
+ CONFIG_STDIO_LINEBUFFER=y
+
examples/nx
^^^^^^^^^^^
@@ -932,6 +945,19 @@ examples/telnetd
10.0.0.1
CONFIG_EXAMPLE_TELNETD_NETMASK - The network mask. Default: 255.255.255.0
+ The appconfig file (apps/.config) should include:
+
+ CONFIGURED_APPS += examples/telnetd
+ CONFIGURED_APPS += netutils/uiplib
+ CONFIGURED_APPS += netutils/telnetd
+
+ Also, make sure that you have the following set in the NuttX configuration
+ file or else the performance will be very bad (because there will be only
+ one character per TCP transfer):
+
+ CONFIG_STDIO_BUFFER_SIZE - Some value >= 64
+ CONFIG_STDIO_LINEBUFFER=y
+
examples/thttpd
^^^^^^^^^^^^^^^
diff --git a/apps/examples/telnetd/shell.c b/apps/examples/telnetd/shell.c
index 8cf695551..990a00721 100644
--- a/apps/examples/telnetd/shell.c
+++ b/apps/examples/telnetd/shell.c
@@ -44,8 +44,11 @@
#include <stdlib.h>
#include <string.h>
+#include <net/if.h>
+
#include <apps/netutils/telnetd.h>
#include <apps/netutils/uiplib.h>
+
#include "shell.h"
/****************************************************************************
diff --git a/apps/netutils/telnetd/telnetd_driver.c b/apps/netutils/telnetd/telnetd_driver.c
index 7d36e9d2d..eb43012c4 100644
--- a/apps/netutils/telnetd/telnetd_driver.c
+++ b/apps/netutils/telnetd/telnetd_driver.c
@@ -518,8 +518,12 @@ static int telnetd_close(FAR struct file *filep)
psock_close(&priv->td_psock);
- /* Release the driver memory. What if there are threads
- * waiting on td_exclsem? They will never be awakened!
+ /* Release the driver memory. What if there are threads waiting on
+ * td_exclsem? They will never be awakened! How could this happen?
+ * crefs == 1 so there are no other open references to the driver.
+ * But this could have if someone were trying to re-open the driver
+ * after every other thread has closed it. That really should not
+ * happen in the intended usage model.
*/
DEBUGASSERT(priv->td_exclsem.semcount == 0);
@@ -733,6 +737,8 @@ FAR char *telnetd_driver(int sd, FAR struct telnetd_s *daemon)
/* Initialize the allocated driver instance */
+ sem_init(&priv->td_exclsem, 0, 1);
+
priv->td_state = STATE_NORMAL;
priv->td_crefs = 0;
priv->td_pending = 0;