[openssh-commits] [openssh] 06/10: upstream: make scp(1) in SFTP mode output better match original

git+noreply at mindrot.org git+noreply at mindrot.org
Sat Aug 7 10:27:20 AEST 2021


This is an automated email from the git hooks/post-receive script.

djm pushed a commit to branch master
in repository openssh.

commit c677e65365d6f460c084e41e0c4807bb8a9cf601
Author: djm at openbsd.org <djm at openbsd.org>
Date:   Sat Aug 7 00:08:52 2021 +0000

    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
---
 scp.c         | 7 ++++---
 sftp-client.c | 6 +++---
 sftp-client.h | 7 ++++++-
 3 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/scp.c b/scp.c
index 9be41a26..51925455 100644
--- a/scp.c
+++ b/scp.c
@@ -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 dc9a9a80..2d433056 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 at 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 c7fa04f5..1de6ba8f 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 at 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.

-- 
To stop receiving notification emails like this one, please contact
djm at mindrot.org.


More information about the openssh-commits mailing list