mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-06-30 19:12:48 -05: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:
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;
|
||||
|
||||
|
Reference in New Issue
Block a user