]> asedeno.scripts.mit.edu Git - PuTTY.git/commitdiff
Since r7266, it's been possible to get a hostname into Default Settings; but
authorJacob Nevins <jacobn@chiark.greenend.org.uk>
Mon, 14 Sep 2009 21:26:48 +0000 (21:26 +0000)
committerJacob Nevins <jacobn@chiark.greenend.org.uk>
Mon, 14 Sep 2009 21:26:48 +0000 (21:26 +0000)
plink did not cope gracefully with this -- it was not possible to override that
hostname on the command line (attempts at doing so would be treated as part of
the remote command).
Fix this by applying the principle of r7265: if the user didn't explicitly
specify that they wanted to launch the hostname in the default (for instance
with '-load "Default Settings"', we assume they don't want to, and such a
hostname doesn't count when deciding whether to treat a non-option argument as
hostname or command.

[originally from svn r8651]
[r7265 == 5d76e00dac9220e8798e4d0f17a4069a58ae1667]
[r7266 == 856ed4ae73576ef5725f1ea4999f40907ab13589]

unix/uxplink.c
windows/winplink.c

index 8027b6f8e6f05114797d3808d70001f5622dd747..55d1663d07b41791e9f611bff4a77751bc03b4d5 100644 (file)
@@ -587,6 +587,7 @@ int main(int argc, char **argv)
     int exitcode;
     int errors;
     int use_subsystem = 0;
+    int got_host = FALSE;
     void *ldisc;
     long now;
 
@@ -660,7 +661,7 @@ int main(int argc, char **argv)
                errors = 1;
            }
        } else if (*p) {
-           if (!cfg_launchable(&cfg)) {
+           if (!cfg_launchable(&cfg) || !(got_host || loaded_session)) {
                char *q = p;
 
                /*
@@ -687,6 +688,7 @@ int main(int argc, char **argv)
                        cfg.port = -1;
                    strncpy(cfg.host, q, sizeof(cfg.host) - 1);
                    cfg.host[sizeof(cfg.host) - 1] = '\0';
+                   got_host = TRUE;
                } else {
                    char *r, *user, *host;
                    /*
@@ -735,8 +737,10 @@ int main(int argc, char **argv)
                            strncpy(cfg.host, host, sizeof(cfg.host) - 1);
                            cfg.host[sizeof(cfg.host) - 1] = '\0';
                            cfg.port = default_port;
+                           got_host = TRUE;
                        } else {
                            cfg = cfg2;
+                           loaded_session = TRUE;
                        }
                    }
 
@@ -783,7 +787,7 @@ int main(int argc, char **argv)
     if (errors)
        return 1;
 
-    if (!cfg_launchable(&cfg)) {
+    if (!cfg_launchable(&cfg) || !(got_host || loaded_session)) {
        usage();
     }
 
index bc2e674ae98e67b194e60942312108ff89736f8a..7eb3aec10831b218828e023b951751886a6823aa 100644 (file)
@@ -281,6 +281,7 @@ int main(int argc, char **argv)
     int skcount, sksize;
     int exitcode;
     int errors;
+    int got_host = FALSE;
     int use_subsystem = 0;
     long now, next;
 
@@ -343,7 +344,7 @@ int main(int argc, char **argv)
                errors = 1;
            }
        } else if (*p) {
-           if (!cfg_launchable(&cfg)) {
+           if (!cfg_launchable(&cfg) || !(got_host || loaded_session)) {
                char *q = p;
                /*
                 * If the hostname starts with "telnet:", set the
@@ -369,6 +370,7 @@ int main(int argc, char **argv)
                        cfg.port = -1;
                    strncpy(cfg.host, q, sizeof(cfg.host) - 1);
                    cfg.host[sizeof(cfg.host) - 1] = '\0';
+                   got_host = TRUE;
                } else {
                    char *r, *user, *host;
                    /*
@@ -417,8 +419,10 @@ int main(int argc, char **argv)
                            strncpy(cfg.host, host, sizeof(cfg.host) - 1);
                            cfg.host[sizeof(cfg.host) - 1] = '\0';
                            cfg.port = default_port;
+                           got_host = TRUE;
                        } else {
                            cfg = cfg2;
+                           loaded_session = TRUE;
                        }
                    }
 
@@ -465,7 +469,7 @@ int main(int argc, char **argv)
     if (errors)
        return 1;
 
-    if (!cfg_launchable(&cfg)) {
+    if (!cfg_launchable(&cfg) || !(got_host || loaded_session)) {
        usage();
     }