X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/eaf1e20af0294d79a176d2ac3b35fd4143163051..409eca86a3fa272454bf1b552dff416febd35ab2:/rlogin.c diff --git a/rlogin.c b/rlogin.c index 1b9a8069..c392fa0a 100644 --- a/rlogin.c +++ b/rlogin.c @@ -182,12 +182,14 @@ static const char *rlogin_init(void *frontend_handle, void **backend_handle, { char z = 0; char *p; + char ruser[sizeof(cfg->username)]; + (void) get_remote_username(cfg, ruser, sizeof(ruser)); sk_write(rlogin->s, &z, 1); sk_write(rlogin->s, cfg->localusername, strlen(cfg->localusername)); sk_write(rlogin->s, &z, 1); - sk_write(rlogin->s, cfg->username, - strlen(cfg->username)); + sk_write(rlogin->s, ruser, + strlen(ruser)); sk_write(rlogin->s, &z, 1); sk_write(rlogin->s, cfg->termtype, strlen(cfg->termtype)); @@ -197,6 +199,22 @@ static const char *rlogin_init(void *frontend_handle, void **backend_handle, rlogin->bufsize = sk_write(rlogin->s, &z, 1); } + if (*cfg->loghost) { + char *colon; + + sfree(*realhost); + *realhost = dupstr(cfg->loghost); + colon = strrchr(*realhost, ':'); + if (colon) { + /* + * FIXME: if we ever update this aspect of ssh.c for + * IPv6 literal management, this should change in line + * with it. + */ + *colon++ = '\0'; + } + } + return NULL; } @@ -280,10 +298,10 @@ static const struct telnet_special *rlogin_get_specials(void *handle) return NULL; } -static Socket rlogin_socket(void *handle) +static int rlogin_connected(void *handle) { Rlogin rlogin = (Rlogin) handle; - return rlogin->s; + return rlogin->s != NULL; } static int rlogin_sendok(void *handle) @@ -341,7 +359,7 @@ Backend rlogin_backend = { rlogin_size, rlogin_special, rlogin_get_specials, - rlogin_socket, + rlogin_connected, rlogin_exitcode, rlogin_sendok, rlogin_ldisc, @@ -349,5 +367,7 @@ Backend rlogin_backend = { rlogin_provide_logctx, rlogin_unthrottle, rlogin_cfg_info, - 1 + "rlogin", + PROT_RLOGIN, + 513 };