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.
This commit is contained in:
parent
89f10bcf37
commit
3752d337b3
@ -1,4 +1,4 @@
|
|||||||
/* $Id: telnetd.c,v 1.8 2003/09/12 11:27:15 bug1 Exp $
|
/* $Id: telnetd.c,v 1.9 2003/12/19 11:30:13 andersen Exp $
|
||||||
*
|
*
|
||||||
* Simple telnet server
|
* Simple telnet server
|
||||||
* Bjorn Wesen, Axis Communications AB (bjornw@axis.com)
|
* Bjorn Wesen, Axis Communications AB (bjornw@axis.com)
|
||||||
@ -116,6 +116,8 @@ static struct tsession *sessions;
|
|||||||
FIXME - if we mean to send 0xFF to the terminal then it will be escaped,
|
FIXME - if we mean to send 0xFF to the terminal then it will be escaped,
|
||||||
what is the escape character? We aren't handling that situation here.
|
what is the escape character? We aren't handling that situation here.
|
||||||
|
|
||||||
|
CR-LF ->'s CR mapping is also done here, for convenience
|
||||||
|
|
||||||
*/
|
*/
|
||||||
static char *
|
static char *
|
||||||
remove_iacs(struct tsession *ts, int *pnum_totty) {
|
remove_iacs(struct tsession *ts, int *pnum_totty) {
|
||||||
@ -128,7 +130,14 @@ remove_iacs(struct tsession *ts, int *pnum_totty) {
|
|||||||
|
|
||||||
while (ptr < end) {
|
while (ptr < end) {
|
||||||
if (*ptr != IAC) {
|
if (*ptr != IAC) {
|
||||||
|
int c = *ptr;
|
||||||
*totty++ = *ptr++;
|
*totty++ = *ptr++;
|
||||||
|
/* We now map \r\n ==> \r for pragmatic reasons.
|
||||||
|
* Many client implementations send \r\n when
|
||||||
|
* the user hits the CarriageReturn key.
|
||||||
|
*/
|
||||||
|
if (c == '\r' && (*ptr == '\n' || *ptr == 0) && ptr < end)
|
||||||
|
ptr++;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if ((ptr+2) < end) {
|
if ((ptr+2) < end) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user