X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=rlogin.c;h=2ef2d7177b77fc9464c0ce572718eaff1b1b7e15;hb=07d48d8b27f833e26bb75c3973e69975e23a9f9c;hp=97699aea6260b8c2e325efc0837d18c8ba0d5b16;hpb=3270c74f9e72136e396775cf2d071c3a358e1489;p=PuTTY.git diff --git a/rlogin.c b/rlogin.c index 97699aea..2ef2d717 100644 --- a/rlogin.c +++ b/rlogin.c @@ -34,7 +34,8 @@ static int rlogin_closing(Plug plug, char *error_msg, int error_code, } if (error_msg) { /* A socket error has occurred. */ - connection_fatal(error_msg); + logevent(error_msg); + connection_fatal("%s", error_msg); } /* Otherwise, the remote side closed the connection normally. */ return 0; } @@ -68,7 +69,8 @@ static int rlogin_receive(Plug plug, int urgent, char *data, int len) } firstbyte = 0; } - c_write(data, len); + if (len > 0) + c_write(data, len); } return 1; } @@ -121,7 +123,7 @@ static char *rlogin_init(char *host, int port, char **realhost, int nodelay) sprintf(buf, "Connecting to %.100s port %d", addrbuf, port); logevent(buf); } - s = sk_new(addr, port, 1, 0, nodelay, &fn_table_ptr); + s = new_connection(addr, *realhost, port, 1, 0, nodelay, &fn_table_ptr); if ((err = sk_socket_error(s))) return err; @@ -217,6 +219,12 @@ static int rlogin_ldisc(int option) return 0; } +static int rlogin_exitcode(void) +{ + /* If we ever implement RSH, we'll probably need to do this properly */ + return 0; +} + Backend rlogin_backend = { rlogin_init, rlogin_send, @@ -224,6 +232,7 @@ Backend rlogin_backend = { rlogin_size, rlogin_special, rlogin_socket, + rlogin_exitcode, rlogin_sendok, rlogin_ldisc, rlogin_unthrottle,