public void write()

in src/main/java/org/apache/commons/net/telnet/TelnetOutputStream.java [90:141]


    public void write(int ch) throws IOException {

        synchronized (client) {
            ch &= 0xff;

            // i.e. ASCII
            if (client.requestedWont(TelnetOption.BINARY)) {
                if (lastWasCR) {
                    if (CONVERT_TO_CRLF) {
                        client.sendByte('\n');
                        if (ch == '\n') {
                            // i.e. was CRLF anyway
                            lastWasCR = false;
                            return;
                        }
                    } else if (ch != '\n') {
                        // convertCRtoCRLF
                        client.sendByte(Telnet.NUL); // 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);
            }
        }
    }