exit(1);
}
+static char *password = NULL;
+
/*
* Stubs for linking with other modules.
*/
HANDLE hin, hout;
DWORD savemode, i;
-#if 0 /* this allows specifying a password some other way */
if (password) {
static int tried_once = 0;
return 1;
}
}
-#endif
hin = GetStdHandle(STD_INPUT_HANDLE);
hout = GetStdHandle(STD_OUTPUT_HANDLE);
return 0;
}
+/*
+ * Short description of parameters.
+ */
+static void usage(void)
+{
+ printf("PuTTY Link: command-line connection utility\n");
+ printf("%s\n", ver);
+ printf("Usage: plink [options] [user@]host [command]\n");
+ printf("Options:\n");
+ printf(" -v show verbose messages\n");
+ printf(" -ssh force use of ssh protocol\n");
+ printf(" -P port connect to specified port\n");
+ printf(" -pw passw login with specified password\n");
+ exit(1);
+}
+
int main(int argc, char **argv) {
WSADATA wsadata;
WORD winsock_ver;
DWORD threadid;
struct input_data idata;
int sending;
+ int portnumber = -1;
ssh_get_password = get_password;
flags |= FLAG_VERBOSE;
} else if (!strcmp(p, "-log")) {
logfile = "putty.log";
- }
+ } else if (!strcmp(p, "-pw") && argc > 1) {
+ --argc, password = *++argv;
+ printf("pw is %s\n", password);
+ } else if (!strcmp(p, "-P") && argc > 1) {
+ --argc, portnumber = atoi(*++argv);
+ }
} else if (*p) {
if (!*cfg.host) {
char *q = p;
}
}
+ if (!*cfg.host) {
+ usage();
+ }
+ if (portnumber != -1)
+ cfg.port = portnumber;
+
if (!*cfg.remote_cmd)
flags |= FLAG_INTERACTIVE;
free(comment);
}
- if (!(flags & FLAG_INTERACTIVE)) {
+ if (ssh_get_password) {
if (!ssh_get_password(prompt, password, sizeof(password))) {
/*
* get_password failed to get a password (for
}
}
- if (!(flags & FLAG_INTERACTIVE)) {
+ if (ssh_get_password) {
char prompt[200];
sprintf(prompt, "%.90s@%.90s's password: ", cfg.username, savedhost);
if (!ssh_get_password(prompt, password, sizeof(password))) {