Justin Bradford's proxy support patch. Currently supports only HTTP
[u/mdw/putty] / telnet.c
index f4e04d3..8b3de1e 100644 (file)
--- a/telnet.c
+++ b/telnet.c
@@ -230,7 +230,7 @@ static void option_side_effects(struct Opt *o, int enabled)
        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) {
@@ -601,7 +601,7 @@ static void telnet_sent(Plug plug, int bufsize)
  * 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,
@@ -636,7 +636,7 @@ static char *telnet_init(char *host, int port, char **realhost)
        sprintf(buf, "Connecting to %.100s port %d", addrbuf, port);
        logevent(buf);
     }
-    s = sk_new(addr, port, 0, 1, &fn_table_ptr);
+    s = new_connection(addr, *realhost, port, 0, 1, nodelay, &fn_table_ptr);
     if ((err = sk_socket_error(s)))
        return err;
 
@@ -848,6 +848,12 @@ static int telnet_ldisc(int option)
     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,
@@ -855,6 +861,7 @@ Backend telnet_backend = {
     telnet_size,
     telnet_special,
     telnet_socket,
+    telnet_exitcode,
     telnet_sendok,
     telnet_ldisc,
     telnet_unthrottle,