mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-09 09:27:59 +00:00
The other utilities should do the same processing of the hostname
(parsing `user@' prefixes etc) that PuTTY proper does. [originally from svn r1346]
This commit is contained in:
parent
f2319456bc
commit
a7f196263e
26
plink.c
26
plink.c
@ -591,6 +591,32 @@ int main(int argc, char **argv)
|
||||
usage();
|
||||
}
|
||||
|
||||
/*
|
||||
* Trim leading whitespace off the hostname if it's there.
|
||||
*/
|
||||
{
|
||||
int space = strspn(cfg.host, " \t");
|
||||
memmove(cfg.host, cfg.host+space, 1+strlen(cfg.host)-space);
|
||||
}
|
||||
|
||||
/* See if host is of the form user@host */
|
||||
if (cfg.host[0] != '\0') {
|
||||
char *atsign = strchr(cfg.host, '@');
|
||||
/* Make sure we're not overflowing the user field */
|
||||
if (atsign) {
|
||||
if (atsign - cfg.host < sizeof cfg.username) {
|
||||
strncpy(cfg.username, cfg.host, atsign - cfg.host);
|
||||
cfg.username[atsign - cfg.host] = '\0';
|
||||
}
|
||||
memmove(cfg.host, atsign + 1, 1 + strlen(atsign + 1));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Trim a colon suffix off the hostname if it's there.
|
||||
*/
|
||||
cfg.host[strcspn(cfg.host, ":")] = '\0';
|
||||
|
||||
if (!*cfg.remote_cmd_ptr)
|
||||
flags |= FLAG_INTERACTIVE;
|
||||
|
||||
|
26
psftp.c
26
psftp.c
@ -1710,6 +1710,32 @@ int main(int argc, char *argv[])
|
||||
cfg.port = 22;
|
||||
}
|
||||
|
||||
/*
|
||||
* Trim leading whitespace off the hostname if it's there.
|
||||
*/
|
||||
{
|
||||
int space = strspn(cfg.host, " \t");
|
||||
memmove(cfg.host, cfg.host+space, 1+strlen(cfg.host)-space);
|
||||
}
|
||||
|
||||
/* See if host is of the form user@host */
|
||||
if (cfg.host[0] != '\0') {
|
||||
char *atsign = strchr(cfg.host, '@');
|
||||
/* Make sure we're not overflowing the user field */
|
||||
if (atsign) {
|
||||
if (atsign - cfg.host < sizeof cfg.username) {
|
||||
strncpy(cfg.username, cfg.host, atsign - cfg.host);
|
||||
cfg.username[atsign - cfg.host] = '\0';
|
||||
}
|
||||
memmove(cfg.host, atsign + 1, 1 + strlen(atsign + 1));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Trim a colon suffix off the hostname if it's there.
|
||||
*/
|
||||
cfg.host[strcspn(cfg.host, ":")] = '\0';
|
||||
|
||||
/* Set username */
|
||||
if (user != NULL && user[0] != '\0') {
|
||||
strncpy(cfg.username, user, sizeof(cfg.username) - 1);
|
||||
|
26
scp.c
26
scp.c
@ -578,6 +578,32 @@ static void do_cmd(char *host, char *user, char *cmd)
|
||||
cfg.port = 22;
|
||||
}
|
||||
|
||||
/*
|
||||
* Trim leading whitespace off the hostname if it's there.
|
||||
*/
|
||||
{
|
||||
int space = strspn(cfg.host, " \t");
|
||||
memmove(cfg.host, cfg.host+space, 1+strlen(cfg.host)-space);
|
||||
}
|
||||
|
||||
/* See if host is of the form user@host */
|
||||
if (cfg.host[0] != '\0') {
|
||||
char *atsign = strchr(cfg.host, '@');
|
||||
/* Make sure we're not overflowing the user field */
|
||||
if (atsign) {
|
||||
if (atsign - cfg.host < sizeof cfg.username) {
|
||||
strncpy(cfg.username, cfg.host, atsign - cfg.host);
|
||||
cfg.username[atsign - cfg.host] = '\0';
|
||||
}
|
||||
memmove(cfg.host, atsign + 1, 1 + strlen(atsign + 1));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Trim a colon suffix off the hostname if it's there.
|
||||
*/
|
||||
cfg.host[strcspn(cfg.host, ":")] = '\0';
|
||||
|
||||
/* Set username */
|
||||
if (user != NULL && user[0] != '\0') {
|
||||
strncpy(cfg.username, user, sizeof(cfg.username) - 1);
|
||||
|
Loading…
Reference in New Issue
Block a user