mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-04-20 04:28:07 -05:00
Add -pw and -P options, and usage/version message, to plink
[originally from svn r650]
This commit is contained in:
parent
960c03468d
commit
0e9b76540b
34
plink.c
34
plink.c
@ -33,6 +33,8 @@ void connection_fatal (char *p, ...) {
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static char *password = NULL;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Stubs for linking with other modules.
|
* Stubs for linking with other modules.
|
||||||
*/
|
*/
|
||||||
@ -73,7 +75,6 @@ static int get_password(const char *prompt, char *str, int maxlen)
|
|||||||
HANDLE hin, hout;
|
HANDLE hin, hout;
|
||||||
DWORD savemode, i;
|
DWORD savemode, i;
|
||||||
|
|
||||||
#if 0 /* this allows specifying a password some other way */
|
|
||||||
if (password) {
|
if (password) {
|
||||||
static int tried_once = 0;
|
static int tried_once = 0;
|
||||||
|
|
||||||
@ -86,7 +87,6 @@ static int get_password(const char *prompt, char *str, int maxlen)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
hin = GetStdHandle(STD_INPUT_HANDLE);
|
hin = GetStdHandle(STD_INPUT_HANDLE);
|
||||||
hout = GetStdHandle(STD_OUTPUT_HANDLE);
|
hout = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||||
@ -129,6 +129,22 @@ int WINAPI stdin_read_thread(void *param) {
|
|||||||
return 0;
|
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) {
|
int main(int argc, char **argv) {
|
||||||
WSADATA wsadata;
|
WSADATA wsadata;
|
||||||
WORD winsock_ver;
|
WORD winsock_ver;
|
||||||
@ -138,6 +154,7 @@ int main(int argc, char **argv) {
|
|||||||
DWORD threadid;
|
DWORD threadid;
|
||||||
struct input_data idata;
|
struct input_data idata;
|
||||||
int sending;
|
int sending;
|
||||||
|
int portnumber = -1;
|
||||||
|
|
||||||
ssh_get_password = get_password;
|
ssh_get_password = get_password;
|
||||||
|
|
||||||
@ -158,7 +175,12 @@ int main(int argc, char **argv) {
|
|||||||
flags |= FLAG_VERBOSE;
|
flags |= FLAG_VERBOSE;
|
||||||
} else if (!strcmp(p, "-log")) {
|
} else if (!strcmp(p, "-log")) {
|
||||||
logfile = "putty.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) {
|
} else if (*p) {
|
||||||
if (!*cfg.host) {
|
if (!*cfg.host) {
|
||||||
char *q = p;
|
char *q = p;
|
||||||
@ -238,6 +260,12 @@ int main(int argc, char **argv) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!*cfg.host) {
|
||||||
|
usage();
|
||||||
|
}
|
||||||
|
if (portnumber != -1)
|
||||||
|
cfg.port = portnumber;
|
||||||
|
|
||||||
if (!*cfg.remote_cmd)
|
if (!*cfg.remote_cmd)
|
||||||
flags |= FLAG_INTERACTIVE;
|
flags |= FLAG_INTERACTIVE;
|
||||||
|
|
||||||
|
4
ssh.c
4
ssh.c
@ -1455,7 +1455,7 @@ static int do_ssh1_login(unsigned char *in, int inlen, int ispkt)
|
|||||||
free(comment);
|
free(comment);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(flags & FLAG_INTERACTIVE)) {
|
if (ssh_get_password) {
|
||||||
if (!ssh_get_password(prompt, password, sizeof(password))) {
|
if (!ssh_get_password(prompt, password, sizeof(password))) {
|
||||||
/*
|
/*
|
||||||
* get_password failed to get a password (for
|
* get_password failed to get a password (for
|
||||||
@ -2193,7 +2193,7 @@ static void do_ssh2_authconn(unsigned char *in, int inlen, int ispkt)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(flags & FLAG_INTERACTIVE)) {
|
if (ssh_get_password) {
|
||||||
char prompt[200];
|
char prompt[200];
|
||||||
sprintf(prompt, "%.90s@%.90s's password: ", cfg.username, savedhost);
|
sprintf(prompt, "%.90s@%.90s's password: ", cfg.username, savedhost);
|
||||||
if (!ssh_get_password(prompt, password, sizeof(password))) {
|
if (!ssh_get_password(prompt, password, sizeof(password))) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user