mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-02 03:52:49 -05:00
New command-line option in Plink (and PuTTY, though it's less useful
there): `plink host -nc host2:port' causes the SSH connection's main channel to be replaced with a direct-tcpip connection to the specified destination. This feature is mainly designed for use as a local proxy: setting your local proxy command to `plink %proxyhost -nc %host:%port' lets you tunnel SSH over SSH with a minimum of fuss. Works on all platforms. [originally from svn r6823]
This commit is contained in:
22
cmdline.c
22
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;
|
||||
|
Reference in New Issue
Block a user