if (new_head != inbuf_reap) {
inbuf[inbuf_head] = *buf++;
inbuf_head = new_head;
+ } else {
+ term_out();
+ if( inbuf_head == inbuf_reap ) len++; else break;
}
}
}
else if (c == WONT) telnet_state = SEENWONT;
else if (c == SB) telnet_state = SEENSB;
else {
- /* ignore (and print) everything else */
- b[0] = c;
- c_write(b,1);
+ /* ignore everything else; print it if it's IAC */
+ if (c == IAC) {
+ b[0] = c;
+ c_write(b,1);
+ }
telnet_state = TOPLEVEL;
}
break;