X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=cmdline.c;h=79f29816de83511b146ea89c9b435358c40e473e;hb=12e019bafc75cb441e965c63e15dfceeaf71ca1e;hp=39f57bbf6281ee58440c6c901c8cb90fe745f910;hpb=c2b2d9c5390272d05cea55271db130a24281d81f;p=PuTTY.git diff --git a/cmdline.c b/cmdline.c index 39f57bbf..79f29816 100644 --- a/cmdline.c +++ b/cmdline.c @@ -1,3 +1,8 @@ +/* + * cmdline.c - command-line parsing shared between many of the + * PuTTY applications + */ + #include #include #include @@ -244,6 +249,28 @@ int cmdline_process_param(char *p, char *value, int need_save, Config *cfg) cfg->portfwd[sizeof(cfg->portfwd) - 2] = '\0'; ptr[strlen(ptr)+1] = '\000'; /* append 2nd '\000' */ } + if ((!strcmp(p, "-nc"))) { + char *host, *portp; + + RETURN(2); + UNAVAILABLE_IN(TOOLTYPE_FILETRANSFER | TOOLTYPE_NONNETWORK); + SAVEABLE(0); + + host = portp = value; + while (*portp && *portp != ':') + portp++; + if (*portp) { + unsigned len = portp - host; + if (len >= sizeof(cfg->ssh_nc_host)) + len = sizeof(cfg->ssh_nc_host) - 1; + strncpy(cfg->ssh_nc_host, value, len); + cfg->ssh_nc_host[sizeof(cfg->ssh_nc_host) - 1] = '\0'; + cfg->ssh_nc_port = atoi(portp+1); + } else { + cmdline_error("-nc expects argument of form 'host:port'"); + return ret; + } + } if (!strcmp(p, "-m")) { char *filename, *command; int cmdlen, cmdsize;