mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-25 01:02:24 +00:00
Update from Joris van Rantwijk: command line options to specify
port and password in scp [originally from svn r312]
This commit is contained in:
parent
cda9171850
commit
1d837144c4
33
scp.c
33
scp.c
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* scp.c - Scp (Secure Copy) client for PuTTY.
|
* scp.c - Scp (Secure Copy) client for PuTTY.
|
||||||
* Joris van Rantwijk, Aug 1999.
|
* Joris van Rantwijk, Aug 1999, Nov 1999.
|
||||||
*
|
*
|
||||||
* This is mainly based on ssh-1.2.26/scp.c by Timo Rinne & Tatu Ylonen.
|
* This is mainly based on ssh-1.2.26/scp.c by Timo Rinne & Tatu Ylonen.
|
||||||
* They, in turn, used stuff from BSD rcp.
|
* They, in turn, used stuff from BSD rcp.
|
||||||
@ -27,6 +27,8 @@ static int recursive = 0;
|
|||||||
static int preserve = 0;
|
static int preserve = 0;
|
||||||
static int targetshouldbedirectory = 0;
|
static int targetshouldbedirectory = 0;
|
||||||
static int statistics = 1;
|
static int statistics = 1;
|
||||||
|
static int portnumber = 0;
|
||||||
|
static char *password = NULL;
|
||||||
static int errs = 0;
|
static int errs = 0;
|
||||||
static int connection_open = 0;
|
static int connection_open = 0;
|
||||||
|
|
||||||
@ -70,8 +72,14 @@ static void bump(char *fmt, ...)
|
|||||||
void ssh_get_password(char *prompt, char *str, int maxlen)
|
void ssh_get_password(char *prompt, char *str, int maxlen)
|
||||||
{
|
{
|
||||||
HANDLE hin, hout;
|
HANDLE hin, hout;
|
||||||
DWORD savemode;
|
DWORD savemode, i;
|
||||||
int i;
|
|
||||||
|
if (password) {
|
||||||
|
strncpy(str, password, maxlen);
|
||||||
|
str[maxlen-1] = '\0';
|
||||||
|
password = NULL;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
hin = GetStdHandle(STD_INPUT_HANDLE);
|
hin = GetStdHandle(STD_INPUT_HANDLE);
|
||||||
hout = GetStdHandle(STD_OUTPUT_HANDLE);
|
hout = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||||
@ -112,6 +120,9 @@ static void do_cmd(char *host, char *user, char *cmd)
|
|||||||
cfg.port = 22;
|
cfg.port = 22;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (portnumber)
|
||||||
|
cfg.port = portnumber;
|
||||||
|
|
||||||
/* Set username */
|
/* Set username */
|
||||||
if (user != NULL && user[0] != '\0') {
|
if (user != NULL && user[0] != '\0') {
|
||||||
strncpy(cfg.username, user, sizeof(cfg.username)-1);
|
strncpy(cfg.username, user, sizeof(cfg.username)-1);
|
||||||
@ -727,9 +738,15 @@ static void usage()
|
|||||||
{
|
{
|
||||||
printf("PuTTY Secure Copy client\n");
|
printf("PuTTY Secure Copy client\n");
|
||||||
printf("%s\n", ver);
|
printf("%s\n", ver);
|
||||||
printf("usage: scp [-p] [-q] [-r] [-v] [user@]host:source target\n");
|
printf("Usage: scp [options] [user@]host:source target\n");
|
||||||
printf(" scp [-p] [-q] [-r] [-v] source [source..]"
|
printf(" scp [options] source [source...] [user@]host:target\n");
|
||||||
" [user@]host:target\n");
|
printf("Options:\n");
|
||||||
|
printf(" -p preserve file attributes\n");
|
||||||
|
printf(" -q quiet, don't show statistics\n");
|
||||||
|
printf(" -r copy directories recursively\n");
|
||||||
|
printf(" -v show verbose messages\n");
|
||||||
|
printf(" -P port connect to specified port\n");
|
||||||
|
printf(" -pw passw login with specified password\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -756,6 +773,10 @@ int main(int argc, char *argv[])
|
|||||||
else if (strcmp(argv[i], "-h") == 0 ||
|
else if (strcmp(argv[i], "-h") == 0 ||
|
||||||
strcmp(argv[i], "-?") == 0)
|
strcmp(argv[i], "-?") == 0)
|
||||||
usage();
|
usage();
|
||||||
|
else if (strcmp(argv[i], "-P") == 0 && i+1 < argc)
|
||||||
|
portnumber = atoi(argv[++i]);
|
||||||
|
else if (strcmp(argv[i], "-pw") == 0 && i+1 < argc)
|
||||||
|
password = argv[++i];
|
||||||
else if (strcmp(argv[i], "--") == 0)
|
else if (strcmp(argv[i], "--") == 0)
|
||||||
{ i++; break; }
|
{ i++; break; }
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user