SetConsoleMode(inhandle, mode);
}
+char *get_ttymode(void *frontend, const char *mode) { return NULL; }
+
struct input_data {
DWORD len;
char buffer[4096];
printf("Usage: plink [options] [user@]host [command]\n");
printf(" (\"host\" can also be a PuTTY saved session name)\n");
printf("Options:\n");
- printf(" -V print version information\n");
+ printf(" -V print version information and exit\n");
+ printf(" -pgpfp print PGP key fingerprints and exit\n");
printf(" -v show verbose messages\n");
printf(" -load sessname Load settings from saved session\n");
printf(" -ssh -telnet -rlogin -raw\n");
printf(" force use of a particular protocol\n");
printf(" -P port connect to specified port\n");
printf(" -l user connect with specified username\n");
- printf(" -m file read remote command(s) from file\n");
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(" -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(" -4 -6 force use of IPv4 or IPv6\n");
printf(" -C enable compression\n");
printf(" -i key private key file for authentication\n");
+ printf(" -m file read remote command(s) from file\n");
printf(" -s remote command is an SSH subsystem (SSH-2 only)\n");
printf(" -N don't start a shell/command (SSH-2 only)\n");
exit(1);
HANDLE handles[4];
DWORD in_threadid, out_threadid, err_threadid;
struct input_data idata;
- int reading;
+ int reading = FALSE;
int sending;
int portnumber = -1;
SOCKET *sklist;
use_subsystem = 1;
} else if (!strcmp(p, "-V")) {
version();
+ } else if (!strcmp(p, "-pgpfp")) {
+ pgp_fingerprints();
+ exit(1);
} else {
fprintf(stderr, "plink: unknown option \"%s\"\n", p);
errors = 1;
cfg.port = default_port;
} else {
cfg = cfg2;
- /* Ick: patch up internal pointer after copy */
- cfg.remote_cmd_ptr = cfg.remote_cmd;
}
}
cfg.host[p1] = '\0';
}
- if (!*cfg.remote_cmd_ptr)
+ if (!cfg.remote_cmd_ptr && !*cfg.remote_cmd)
flags |= FLAG_INTERACTIVE;
/*
cleanup_exit(1);
}
sending = TRUE;
+ reading = TRUE;
}
if (run_timers(now, &next)) {