public void write()

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);
            }
        }
    }