forked from rpms/openssh
28 lines
685 B
Diff
28 lines
685 B
Diff
diff --git a/sftp.c b/sftp.c
|
|
index 04881c83..03c7a5c7 100644
|
|
--- a/sftp.c
|
|
+++ b/sftp.c
|
|
@@ -2527,12 +2527,17 @@ main(int argc, char **argv)
|
|
port = tmp;
|
|
break;
|
|
default:
|
|
+ /* Try with user, host and path. */
|
|
if (parse_user_host_path(*argv, &user, &host,
|
|
- &file1) == -1) {
|
|
- /* Treat as a plain hostname. */
|
|
- host = xstrdup(*argv);
|
|
- host = cleanhostname(host);
|
|
- }
|
|
+ &file1) == 0)
|
|
+ break;
|
|
+ /* Try with user and host. */
|
|
+ if (parse_user_host_port(*argv, &user, &host, NULL)
|
|
+ == 0)
|
|
+ break;
|
|
+ /* Treat as a plain hostname. */
|
|
+ host = xstrdup(*argv);
|
|
+ host = cleanhostname(host);
|
|
break;
|
|
}
|
|
file2 = *(argv + 1);
|