]> asedeno.scripts.mit.edu Git - PuTTY.git/blobdiff - psftp.c
Move MODULE files out of individual project directories into a
[PuTTY.git] / psftp.c
diff --git a/psftp.c b/psftp.c
index 218d363ce79d71d42e7c0359bc18a17ba01c5503..e5374c5f9a18409a9c8a1f99c5d01cef0455f520 100644 (file)
--- a/psftp.c
+++ b/psftp.c
@@ -1846,6 +1846,15 @@ static int psftp_connect(char *userhost, char *user, int portnumber)
         cfg.port = 22;
     }
 
+    /*
+     * If saved session / Default Settings says SSH-1 (`1 only' or `1'),
+     * then change it to SSH-2, on the grounds that that's more likely to
+     * work for SFTP. (Can be overridden with `-1' option.)
+     * But if it says `2 only' or `2', respect which.
+     */
+    if (cfg.sshprot != 2 && cfg.sshprot != 3)
+       cfg.sshprot = 2;
+
     /*
      * Enact command-line overrides.
      */
@@ -1913,9 +1922,6 @@ static int psftp_connect(char *userhost, char *user, int portnumber)
     if (portnumber)
        cfg.port = portnumber;
 
-    /* SFTP uses SSH2 by default always */
-    cfg.sshprot = 2;
-
     /*
      * Disable scary things which shouldn't be enabled for simple
      * things like SCP and SFTP: agent forwarding, port forwarding,
@@ -2060,6 +2066,15 @@ int psftp_main(int argc, char *argv[])
     argv += i;
     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.