X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/4123fa9acad10cd0bab8aded6e336b280ea2e95b..5dd103a89c5b260320b322e17d125e1cf620c5bd:/psftp.c diff --git a/psftp.c b/psftp.c index 079a61f3..ba038b07 100644 --- a/psftp.c +++ b/psftp.c @@ -1870,7 +1870,7 @@ static int psftp_connect(char *userhost, char *user, int portnumber) /* See if host is of the form user@host */ if (cfg.host[0] != '\0') { - char *atsign = strchr(cfg.host, '@'); + char *atsign = strrchr(cfg.host, '@'); /* Make sure we're not overflowing the user field */ if (atsign) { if (atsign - cfg.host < sizeof cfg.username) { @@ -2067,6 +2067,15 @@ int psftp_main(int argc, char *argv[]) back = NULL; /* + * If the loaded session provides a hostname, and a hostname has not + * otherwise been specified, pop it in `userhost' so that + * `psftp -load sessname' is sufficient to start a session. + */ + if (!userhost && cfg.host[0] != '\0') { + userhost = dupstr(cfg.host); + } + + /* * If a user@host string has already been provided, connect to * it now. */