in src/main/java/org/apache/commons/net/telnet/TelnetOutputStream.java [93:144]
public void write(int ch) throws IOException {
synchronized (client) {
ch &= 0xff;
if (client.requestedWont(TelnetOption.BINARY)) // i.e. ASCII
{
if (lastWasCR) {
if (convertCRtoCRLF) {
client.sendByte('\n');
if (ch == '\n') // i.e. was CRLF anyway
{
lastWasCR = false;
return;
}
} // __convertCRtoCRLF
else if (ch != '\n') {
client.sendByte('\0'); // RFC854 requires CR NUL for bare CR
}
}
switch (ch) {
case '\r':
client.sendByte('\r');
lastWasCR = true;
break;
case '\n':
if (!lastWasCR) { // convert LF to CRLF
client.sendByte('\r');
}
client.sendByte(ch);
lastWasCR = false;
break;
case TelnetCommand.IAC:
client.sendByte(TelnetCommand.IAC);
client.sendByte(TelnetCommand.IAC);
lastWasCR = false;
break;
default:
client.sendByte(ch);
lastWasCR = false;
break;
}
} // end ASCII
else if (ch == TelnetCommand.IAC) {
client.sendByte(ch);
client.sendByte(TelnetCommand.IAC);
} else {
client.sendByte(ch);
}
}
}