diff options
author | djm@openbsd.org <djm@openbsd.org> | 2021-08-07 02:08:52 +0200 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2021-08-07 02:20:31 +0200 |
commit | c677e65365d6f460c084e41e0c4807bb8a9cf601 (patch) | |
tree | 92eb3e0e87bacf5f1cebb556eb0c6ceae3ff486a | |
parent | upstream: factor out a structure duplicated between downloading (diff) | |
download | openssh-c677e65365d6f460c084e41e0c4807bb8a9cf601.tar.xz openssh-c677e65365d6f460c084e41e0c4807bb8a9cf601.zip |
upstream: make scp(1) in SFTP mode output better match original
scp(1) by suppressing "Retrieving [path]" lines that were emitted to support
the interactive sftp(1) client. ok markus@
OpenBSD-Commit-ID: 06be293df5f156a18f366079be2f33fa68001acc
-rw-r--r-- | scp.c | 7 | ||||
-rw-r--r-- | sftp-client.c | 6 | ||||
-rw-r--r-- | sftp-client.h | 7 |
3 files changed, 13 insertions, 7 deletions
@@ -1,4 +1,4 @@ -/* $OpenBSD: scp.c,v 1.219 2021/08/07 00:06:30 djm Exp $ */ +/* $OpenBSD: scp.c,v 1.220 2021/08/07 00:08:52 djm Exp $ */ /* * scp - secure remote copy. This is basically patched BSD rcp which * uses ssh to do the data transfer (instead of using rcmd). @@ -1289,7 +1289,8 @@ source_sftp(int argc, char *src, char *targ, debug3_f("copying local %s to remote %s", src, abs_dst); if (local_is_dir(src) && iamrecursive) { - if (upload_dir(conn, src, abs_dst, pflag, 1, 0, 0) != 0) { + if (upload_dir(conn, src, abs_dst, pflag, + SFTP_PROGRESS_ONLY, 0, 0) != 0) { fatal("failed to upload directory %s to %s", src, abs_dst); } @@ -1521,7 +1522,7 @@ sink_sftp(int argc, char *dst, const char *src, struct sftp_conn *conn) debug("Fetching %s to %s\n", g.gl_pathv[i], abs_dst); if (globpath_is_dir(g.gl_pathv[i]) && iamrecursive) { if (download_dir(conn, g.gl_pathv[i], abs_dst, NULL, - pflag, 1, 0, 0) == -1) + pflag, SFTP_PROGRESS_ONLY, 0, 0) == -1) err = -1; } else { if (do_download(conn, g.gl_pathv[i], abs_dst, NULL, diff --git a/sftp-client.c b/sftp-client.c index dc9a9a809..2d4330567 100644 --- a/sftp-client.c +++ b/sftp-client.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp-client.c,v 1.146 2021/08/07 00:07:18 djm Exp $ */ +/* $OpenBSD: sftp-client.c,v 1.147 2021/08/07 00:08:52 djm Exp $ */ /* * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org> * @@ -1633,7 +1633,7 @@ download_dir_internal(struct sftp_conn *conn, const char *src, const char *dst, error("\"%s\" is not a directory", src); return -1; } - if (print_flag) + if (print_flag && print_flag != SFTP_PROGRESS_ONLY) mprintf("Retrieving %s\n", src); if (dirattrib->flags & SSH2_FILEXFER_ATTR_PERMISSIONS) { @@ -1957,7 +1957,7 @@ upload_dir_internal(struct sftp_conn *conn, const char *src, const char *dst, error("\"%s\" is not a directory", src); return -1; } - if (print_flag) + if (print_flag && print_flag != SFTP_PROGRESS_ONLY) mprintf("Entering %s\n", src); attrib_clear(&a); diff --git a/sftp-client.h b/sftp-client.h index c7fa04f5b..1de6ba8fd 100644 --- a/sftp-client.h +++ b/sftp-client.h @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp-client.h,v 1.31 2021/08/07 00:02:41 djm Exp $ */ +/* $OpenBSD: sftp-client.h,v 1.32 2021/08/07 00:08:52 djm Exp $ */ /* * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org> @@ -61,6 +61,11 @@ struct sftp_limits { u_int64_t open_handles; }; +/* print flag values */ +#define SFTP_QUIET 0 /* be quiet during transfers */ +#define SFTP_PRINT 1 /* list files and show progress bar */ +#define SFTP_PROGRESS_ONLY 2 /* progress bar only */ + /* * Initialise a SSH filexfer connection. Returns NULL on error or * a pointer to a initialized sftp_conn struct on success. |