X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/eaf1e20af0294d79a176d2ac3b35fd4143163051..c683b25ae5c61a90fb78da577fd8d1b92cbe8fd6:/cmdline.c diff --git a/cmdline.c b/cmdline.c index e8343427..79f29816 100644 --- a/cmdline.c +++ b/cmdline.c @@ -249,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;