A few more telnet updates

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4348 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2012-01-30 22:20:42 +00:00
parent 2223c0eac0
commit 70433b7fd5
4 changed files with 23 additions and 13 deletions

View File

@ -173,4 +173,4 @@
telnet infrastructure. The new telnet daemon creates sessions that are
"wrapped" as character devices and mapped to stdin, stdout, and stderr.
Now the telnet session can be inherited by spawned tasks.
* examples/telnetd: Add a test for the nte telnet daemon.
* examples/telnetd: Add a test for the new telnet daemon.

View File

@ -93,9 +93,9 @@ static struct ptentry_s g_parsetab[] =
static void shell_help(int argc, char **argv)
{
printf("Available commands:");
printf(" help, ? - show help");
printf(" exit - exit shell");
printf("Available commands:\n");
printf(" help, ? - show help\n");
printf(" exit - exit shell\n");
}
/****************************************************************************
@ -157,8 +157,8 @@ int shell_session(int argc, char *argv[])
{
char line[128];
printf("uIP command shell -- NuttX style");
printf("Type '?' and return for help");
printf("uIP command shell -- NuttX style\n");
printf("Type '?' and return for help\n");
for(;;)
{

View File

@ -50,6 +50,10 @@
* CONFIG_TELNETD_NPOLLWAITERS - If the poll method is enabled, then this
* value will defined the maximum number of threads that can be waiting
* for events. Default: 1
* CONFIG_TELNETD_RXBUFFER_SIZE - The size of the telnet receive buffer.
* Default: 256 bytes.
* CONFIG_TELNETD_TXBUFFER_SIZE - The size of the telnet transmit buffer.
* Default: 256 bytes.
* CONFIG_TELNETD_DUMPBUFFER - dumping of all input/output buffers.
*/
@ -59,8 +63,12 @@
/* Configurable settings */
#ifndef CONFIG_TELNETD_IOBUFFER_SIZE
# define CONFIG_TELNETD_IOBUFFER_SIZE 512
#ifndef CONFIG_TELNETD_RXBUFFER_SIZE
# define CONFIG_TELNETD_RXBUFFER_SIZE 256
#endif
#ifndef CONFIG_TELNETD_TXBUFFER_SIZE
# define CONFIG_TELNETD_TXBUFFER_SIZE 256
#endif
/****************************************************************************

View File

@ -107,8 +107,8 @@ struct telnetd_dev_s
uint8_t td_offset; /* Offset to the valid, pending bytes in the rxbuffer */
uint8_t td_crefs; /* The number of open references to the session */
FAR struct socket *td_psock; /* A reference to the internal socket structure */
char td_rxbuffer[CONFIG_TELNETD_IOBUFFER_SIZE];
char td_txbuffer[CONFIG_TELNETD_IOBUFFER_SIZE];
char td_rxbuffer[CONFIG_TELNETD_RXBUFFER_SIZE];
char td_txbuffer[CONFIG_TELNETD_TXBUFFER_SIZE];
};
/****************************************************************************
@ -518,7 +518,7 @@ static ssize_t telnetd_read(FAR struct file *filep, FAR char *buffer, size_t len
else
{
ret = psock_recv(priv->td_psock, priv->td_rxbuffer,
CONFIG_TELNETD_IOBUFFER_SIZE, 0);
CONFIG_TELNETD_RXBUFFER_SIZE, 0);
if (ret > 0)
{
/* Process the received telnet data */
@ -558,9 +558,11 @@ static ssize_t telnetd_write(FAR struct file *filep, FAR const char *buffer, siz
eol = telnetd_putchar(priv, ch, &ncopied);
/* Was that the end of a line? */
/* Was that the end of a line? Or is the buffer too full to hold the
* next largest character sequence ("\r\n\0")?
*/
if (eol)
if (eol || ncopied > CONFIG_TELNETD_TXBUFFER_SIZE-3)
{
/* Yes... send the data now */