Enable handling of telnet:// URLs on command line
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Fri, 21 Jul 2000 10:53:24 +0000 (10:53 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Fri, 21 Jul 2000 10:53:24 +0000 (10:53 +0000)
git-svn-id: svn://svn.tartarus.org/sgt/putty@514 cda61777-01e9-0310-a592-d414129be87e

window.c

index 8a87584..e9419d7 100644 (file)
--- a/window.c
+++ b/window.c
@@ -173,16 +173,35 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show) {
            }
        } else if (*p) {
            char *q = p;
-           while (*p && !isspace(*p)) p++;
-           if (*p)
-               *p++ = '\0';
-           strncpy (cfg.host, q, sizeof(cfg.host)-1);
-           cfg.host[sizeof(cfg.host)-1] = '\0';
-           while (*p && isspace(*p)) p++;
-           if (*p)
-               cfg.port = atoi(p);
-           else
-               cfg.port = -1;
+            /*
+             * If the hostname starts with "telnet://", set the
+             * protocol to Telnet and process the string as a
+             * Telnet URL.
+             */
+            if (!strncmp(q, "telnet://", 9)) {
+                q += 9;
+                cfg.protocol = PROT_TELNET;
+                p = q;
+                while (*p && *p != ':') p++;
+                if (*p) {
+                    *p++ = '\0';
+                    cfg.port = atoi(p);
+                } else
+                    cfg.port = -1;
+                strncpy (cfg.host, q, sizeof(cfg.host)-1);
+                cfg.host[sizeof(cfg.host)-1] = '\0';
+            } else {
+                while (*p && !isspace(*p)) p++;
+                if (*p)
+                    *p++ = '\0';
+                strncpy (cfg.host, q, sizeof(cfg.host)-1);
+                cfg.host[sizeof(cfg.host)-1] = '\0';
+                while (*p && isspace(*p)) p++;
+                if (*p)
+                    cfg.port = atoi(p);
+                else
+                    cfg.port = -1;
+            }
        } else {
            if (!do_config()) {
                WSACleanup();