summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2003-12-19 11:30:13 +0000
committerEric Andersen <andersen@codepoet.org>2003-12-19 11:30:13 +0000
commit3752d337b3b8e704f1fe27451d481eae85d64f48 (patch)
tree454c30aa3f9f83ca4ec139a787e3ed5322bba247
parent89f10bcf3790dabbeae4276fa1e1a6d9e9325d9c (diff)
downloadbusybox-w32-3752d337b3b8e704f1fe27451d481eae85d64f48.tar.gz
busybox-w32-3752d337b3b8e704f1fe27451d481eae85d64f48.tar.bz2
busybox-w32-3752d337b3b8e704f1fe27451d481eae85d64f48.zip
Patch from Fillod Stephane:
* While I'm at it, there's also a "telnetd.patch" which maps CRLF to CR, like netkit-telnet does, required by the loosy Windows telnet clients.
-rw-r--r--networking/telnetd.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/networking/telnetd.c b/networking/telnetd.c
index 9a60a9a3c..3d5e8d100 100644
--- a/networking/telnetd.c
+++ b/networking/telnetd.c
@@ -1,4 +1,4 @@
1/* $Id: telnetd.c,v 1.8 2003/09/12 11:27:15 bug1 Exp $ 1/* $Id: telnetd.c,v 1.9 2003/12/19 11:30:13 andersen Exp $
2 * 2 *
3 * Simple telnet server 3 * Simple telnet server
4 * Bjorn Wesen, Axis Communications AB (bjornw@axis.com) 4 * Bjorn Wesen, Axis Communications AB (bjornw@axis.com)
@@ -116,6 +116,8 @@ static struct tsession *sessions;
116 FIXME - if we mean to send 0xFF to the terminal then it will be escaped, 116 FIXME - if we mean to send 0xFF to the terminal then it will be escaped,
117 what is the escape character? We aren't handling that situation here. 117 what is the escape character? We aren't handling that situation here.
118 118
119 CR-LF ->'s CR mapping is also done here, for convenience
120
119 */ 121 */
120static char * 122static char *
121remove_iacs(struct tsession *ts, int *pnum_totty) { 123remove_iacs(struct tsession *ts, int *pnum_totty) {
@@ -128,7 +130,14 @@ remove_iacs(struct tsession *ts, int *pnum_totty) {
128 130
129 while (ptr < end) { 131 while (ptr < end) {
130 if (*ptr != IAC) { 132 if (*ptr != IAC) {
133 int c = *ptr;
131 *totty++ = *ptr++; 134 *totty++ = *ptr++;
135 /* We now map \r\n ==> \r for pragmatic reasons.
136 * Many client implementations send \r\n when
137 * the user hits the CarriageReturn key.
138 */
139 if (c == '\r' && (*ptr == '\n' || *ptr == 0) && ptr < end)
140 ptr++;
132 } 141 }
133 else { 142 else {
134 if ((ptr+2) < end) { 143 if ((ptr+2) < end) {