static void c_write (char *buf, int len) {
while (len--) {
int new_head = (inbuf_head + 1) & INBUF_MASK;
- int c = (unsigned char) *buf;
if (new_head != inbuf_reap) {
inbuf[inbuf_head] = *buf++;
inbuf_head = new_head;
(cmd == WILL ? "WILL" : cmd == WONT ? "WONT" :
cmd == DO ? "DO" : cmd == DONT ? "DONT" : "<??>"),
telopt(option));
- lognegot(buf);
+ logevent(buf);
}
static void send_opt (int cmd, int option) {
n = 4 + strlen(cfg.termspeed);
b[n] = IAC; b[n+1] = SE;
s_write (b, n+2);
- lognegot("server:\tSB TSPEED SEND");
+ logevent("server:\tSB TSPEED SEND");
sprintf(logbuf, "client:\tSB TSPEED IS %s", cfg.termspeed);
- lognegot (logbuf);
+ logevent (logbuf);
} else
- lognegot ("server:\tSB TSPEED <something weird>");
+ logevent ("server:\tSB TSPEED <something weird>");
break;
case TELOPT_TTYPE:
if (sb_len == 1 && sb_buf[0] == TELQUAL_SEND) {
b[n+4] = IAC; b[n+5] = SE;
s_write (b, n+6);
b[n+4] = 0;
- lognegot("server:\tSB TTYPE SEND");
+ logevent("server:\tSB TTYPE SEND");
sprintf(logbuf, "client:\tSB TTYPE IS %s", b+4);
- lognegot(logbuf);
+ logevent(logbuf);
} else
- lognegot("server:\tSB TTYPE <something weird>\r\n");
+ logevent("server:\tSB TTYPE <something weird>\r\n");
break;
case TELOPT_OLD_ENVIRON:
case TELOPT_NEW_ENVIRON:
char logbuf[50];
p++;
sprintf (logbuf, "server:\tSB %s SEND", telopt(sb_opt));
- lognegot (logbuf);
+ logevent (logbuf);
if (sb_opt == TELOPT_OLD_ENVIRON) {
if (cfg.rfc_environ) {
value = RFC_VALUE;
s_write (b, n);
sprintf(logbuf, "client:\tSB %s IS %s", telopt(sb_opt),
n==6 ? "<nothing>" : "<stuff>");
- lognegot (logbuf);
+ logevent (logbuf);
}
break;
}
else if (c == WILL) telnet_state = SEENWILL;
else if (c == WONT) telnet_state = SEENWONT;
else if (c == SB) telnet_state = SEENSB;
- else telnet_state = TOPLEVEL;/* ignore _everything_ else! */
+ else {
+ /* ignore (and print) everything else */
+ b[0] = c;
+ c_write(b,1);
+ telnet_state = TOPLEVEL;
+ }
break;
case SEENWILL:
proc_rec_opt (WILL, c);
sprintf(logbuf, "client:\tSB NAWS %d,%d",
((unsigned char)b[3] << 8) + (unsigned char)b[4],
((unsigned char)b[5] << 8) + (unsigned char)b[6]);
- lognegot (logbuf);
+ logevent (logbuf);
}
/*