Lines Matching refs:TT
49 tcsetattr(0, TCSADRAIN, raw ? &TT.raw_term : &TT.old_term);
54 TT.mode = line ? CM_OFF : CM_ON; in slc()
62 if (TT.echo) { in set_mode()
63 if (TT.mode == CM_TRY) slc(0); in set_mode()
64 } else if (TT.mode != CM_OFF) slc(1); in set_mode()
91 TT.mode = CM_TRY; in handle_esc()
92 TT.echo = TT.sga = 0; in handle_esc()
94 dprintf(TT.sock,"%c%c%c%c%c%c",IAC,DONT,TELOPT_ECHO,IAC,DONT,TELOPT_SGA); in handle_esc()
99 TT.mode = CM_TRY; in handle_esc()
100 TT.echo = TT.sga = 1; in handle_esc()
102 dprintf(TT.sock,"%c%c%c%c%c%c",IAC,DO,TELOPT_ECHO,IAC,DO,TELOPT_SGA); in handle_esc()
122 if (TT.request == DO) dprintf(TT.sock, "%c%c%c", IAC, WONT, TELOPT_ECHO); in handle_wwdd()
123 if (TT.request == DONT) return; in handle_wwdd()
124 if (TT.echo) { in handle_wwdd()
125 if (TT.request == WILL) return; in handle_wwdd()
126 } else if (TT.request == WONT) return; in handle_wwdd()
127 if (TT.mode != CM_OFF) TT.echo ^= 1; in handle_wwdd()
128 dprintf(TT.sock, "%c%c%c", IAC, TT.echo ? DO : DONT, TELOPT_ECHO); in handle_wwdd()
131 if (TT.sga) { in handle_wwdd()
132 if (TT.request == WILL) return; in handle_wwdd()
133 } else if (TT.request == WONT) return; in handle_wwdd()
134 TT.sga ^= 1; in handle_wwdd()
135 dprintf(TT.sock, "%c%c%c", IAC, TT.sga ? DO : DONT, TELOPT_SGA); in handle_wwdd()
137 dprintf(TT.sock, "%c%c%c", IAC, WILL, TELOPT_TTYPE); in handle_wwdd()
142 dprintf(TT.sock, "%c%c%c%c%c%c%c%c%c%c%c%c", IAC, WILL, TELOPT_NAWS, in handle_wwdd()
147 dprintf(TT.sock, "%c%c%c", IAC, (TT.request == WILL) ? DONT : WONT, opt); in handle_wwdd()
153 char *p = TT.buf, *end = TT.buf + n, ch; in handle_server_output()
169 if (TT.state == SAW_IAC) { in handle_server_output()
171 TT.state = SAW_WWDD; in handle_server_output()
172 TT.request = ch; in handle_server_output()
174 TT.state = SAW_SB; in handle_server_output()
176 TT.state = NORMAL; in handle_server_output()
178 } else if (TT.state == SAW_WWDD) { in handle_server_output()
180 TT.state = NORMAL; in handle_server_output()
181 } else if (TT.state == SAW_SB) { in handle_server_output()
182 if (ch == TELOPT_TTYPE) TT.state = SAW_SB_TTYPE; in handle_server_output()
183 else TT.state = WANT_IAC; in handle_server_output()
184 } else if (TT.state == SAW_SB_TTYPE) { in handle_server_output()
186 dprintf(TT.sock, "%c%c%c%c%s%c%c", IAC, SB, TELOPT_TTYPE, TELQUAL_IS, in handle_server_output()
189 TT.state = WANT_IAC; in handle_server_output()
190 } else if (TT.state == WANT_IAC) { in handle_server_output()
191 if (ch == IAC) TT.state = WANT_SE; in handle_server_output()
192 } else if (TT.state == WANT_SE) { in handle_server_output()
193 if (ch == SE) TT.state = NORMAL; in handle_server_output()
195 TT.state = SAW_IAC; in handle_server_output()
197 if (TT.state == SAW_CR && ch == '\0') { in handle_server_output()
200 if (ch == '\r') TT.state = SAW_CR; in handle_server_output()
201 TT.state = NORMAL; in handle_server_output()
209 char *p = TT.buf, ch; in handle_user_input()
226 if (i) xwrite(TT.sock, toybuf, i); in handle_user_input()
239 tcgetattr(0, &TT.old_term); in telnet_main()
240 TT.raw_term = TT.old_term; in telnet_main()
241 cfmakeraw(&TT.raw_term); in telnet_main()
243 TT.sock = xconnectany(xgetaddrinfo(*toys.optargs, toys.optargs[1] ?: "23", 0, in telnet_main()
245 xsetsockopt(TT.sock, SOL_SOCKET, SO_KEEPALIVE, &n, sizeof(n)); in telnet_main()
254 pfds[1].fd = TT.sock; in telnet_main()
262 if ((n = read(0, TT.buf, sizeof(TT.buf))) <= 0) xexit(); in telnet_main()
266 if ((n = read(TT.sock, TT.buf, sizeof(TT.buf))) <= 0) in telnet_main()