/* subnegotiation -- ignore all (except TTYPE,NAWS) */ static int subneg(byte c) { switch (G.telstate) { case TS_SUB1: if (c == IAC) G.telstate = TS_SUB2; #if ENABLE_FEATURE_TELNET_TTYPE else if (c == TELOPT_TTYPE) put_iac_subopt(TELOPT_TTYPE, G.ttype); #endif #if ENABLE_FEATURE_TELNET_AUTOLOGIN else if (c == TELOPT_NEW_ENVIRON) put_iac_subopt_autologin(); #endif break; case TS_SUB2: if (c == SE) return TRUE; G.telstate = TS_SUB1; /* break; */ } return FALSE; }
/* subnegotiation -- ignore all (except TTYPE,NAWS) */ static void subneg(byte c) { switch (G.telstate) { case TS_SUB1: if (c == IAC) G.telstate = TS_SUB2; #if ENABLE_FEATURE_TELNET_TTYPE else if (c == TELOPT_TTYPE && G.ttype) put_iac_subopt(TELOPT_TTYPE, G.ttype); #endif #if ENABLE_FEATURE_TELNET_AUTOLOGIN else if (c == TELOPT_NEW_ENVIRON && G.autologin) put_iac_subopt_autologin(); #endif break; case TS_SUB2: if (c == SE) { G.telstate = TS_COPY; return; } G.telstate = TS_SUB1; break; } }