summaryrefslogtreecommitdiff
path: root/apps/netutils/telnetd
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-01-30 22:20:42 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-01-30 22:20:42 +0000
commit9d5a2de3b28f61877858489604ddbaaf727e5409 (patch)
treefe3d918b2d1dec3f298c02e9ac77527b7c5a6f3d /apps/netutils/telnetd
parent9ddfc032d424842691e1f4a30960547b578c9036 (diff)
downloadnuttx-9d5a2de3b28f61877858489604ddbaaf727e5409.tar.gz
nuttx-9d5a2de3b28f61877858489604ddbaaf727e5409.tar.bz2
nuttx-9d5a2de3b28f61877858489604ddbaaf727e5409.zip
A few more telnet updates
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4348 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'apps/netutils/telnetd')
-rw-r--r--apps/netutils/telnetd/telnetd_driver.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/apps/netutils/telnetd/telnetd_driver.c b/apps/netutils/telnetd/telnetd_driver.c
index efa693cdb..f74a97d4e 100644
--- a/apps/netutils/telnetd/telnetd_driver.c
+++ b/apps/netutils/telnetd/telnetd_driver.c
@@ -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 */