echoing = !enabled;
else if (o->option == TELOPT_SGA && o->send == DO)
editing = !enabled;
- ldisc_send(NULL, 0); /* cause ldisc to notice the change */
+ ldisc_send(NULL, 0, 0); /* cause ldisc to notice the change */
/* Ensure we get the minimum options */
if (!activated) {
return 1;
}
+static void telnet_sent(Plug plug, int bufsize)
+{
+ telnet_bufsize = bufsize;
+}
+
/*
* Called to set up the Telnet connection.
*
* Also places the canonical host name into `realhost'. It must be
* freed by the caller.
*/
-static char *telnet_init(char *host, int port, char **realhost)
+static char *telnet_init(char *host, int port, char **realhost, int nodelay)
{
static struct plug_function_table fn_table = {
telnet_closing,
- telnet_receive
+ telnet_receive,
+ telnet_sent
}, *fn_table_ptr = &fn_table;
SockAddr addr;
/*
* Try to find host.
*/
+ {
+ char buf[200];
+ sprintf(buf, "Looking up host \"%.170s\"", host);
+ logevent(buf);
+ }
addr = sk_namelookup(host, realhost);
if ((err = sk_addr_error(addr)))
return err;
/*
* Open socket.
*/
- s = sk_new(addr, port, 0, 1, &fn_table_ptr);
+ {
+ char buf[200], addrbuf[100];
+ sk_getaddr(addr, addrbuf, 100);
+ sprintf(buf, "Connecting to %.100s port %d", addrbuf, port);
+ logevent(buf);
+ }
+ s = sk_new(addr, port, 0, 1, nodelay, &fn_table_ptr);
if ((err = sk_socket_error(s)))
return err;
return FALSE;
}
+static int telnet_exitcode(void)
+{
+ /* Telnet doesn't transmit exit codes back to the client */
+ return 0;
+}
+
Backend telnet_backend = {
telnet_init,
telnet_send,
telnet_size,
telnet_special,
telnet_socket,
+ telnet_exitcode,
telnet_sendok,
telnet_ldisc,
telnet_unthrottle,