{
int osize, esize;
- assert(len > 0);
-
if (is_stderr) {
bufchain_add(&stderr_data, data, len);
try_output(1);
printf(" -batch disable all interactive prompts\n");
printf("The following options only apply to SSH connections:\n");
printf(" -pw passw login with specified password\n");
- printf(" -D listen-port Dynamic SOCKS-based port forwarding\n");
- printf(" -L listen-port:host:port Forward local port to "
- "remote address\n");
- printf(" -R listen-port:host:port Forward remote port to"
- " local address\n");
+ printf(" -D [listen-IP:]listen-port\n");
+ printf(" Dynamic SOCKS-based port forwarding\n");
+ printf(" -L [listen-IP:]listen-port:host:port\n");
+ printf(" Forward local port to remote address\n");
+ printf(" -R [listen-IP:]listen-port:host:port\n");
+ printf(" Forward remote port to local address\n");
printf(" -X -x enable / disable X11 forwarding\n");
printf(" -A -a enable / disable agent forwarding\n");
printf(" -t -T enable / disable pty allocation\n");
printf(" -1 -2 force use of particular protocol version\n");
printf(" -C enable compression\n");
printf(" -i key private key file for authentication\n");
+ printf(" -s remote command is an SSH subsystem (SSH-2 only)\n");
+ printf(" -V print version information\n");
+ exit(1);
+}
+
+static void version(void)
+{
+ printf("plink: %s\n", ver);
exit(1);
}
int connopen;
int exitcode;
int errors;
+ int use_subsystem = 0;
void *ldisc, *logctx;
ssh_get_line = console_get_line;
continue;
} else if (!strcmp(p, "-batch")) {
console_batch_mode = 1;
+ } else if (!strcmp(p, "-s")) {
+ /* Save status to write to cfg later. */
+ use_subsystem = 1;
+ } else if (!strcmp(p, "-V")) {
+ version();
} else if (!strcmp(p, "-o")) {
if (argc <= 1) {
fprintf(stderr,
cmdline_run_saved(&cfg);
/*
+ * Apply subsystem status.
+ */
+ if (use_subsystem)
+ cfg.ssh_subsys = TRUE;
+
+ /*
* Trim a colon suffix off the hostname if it's there.
*/
cfg.host[strcspn(cfg.host, ":")] = '\0';