Repository: mina-sshd
Updated Branches:
  refs/heads/master 63a8ddc2a -> d03d98113


Preserve SCP permission modes only if option activated

* According to SCP man entry:

    -p     Preserves modification times, access times, and modes from the 
original file.


Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/d03d9811
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/d03d9811
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/d03d9811

Branch: refs/heads/master
Commit: d03d98113764cc14a91f4be3626f607f992d4cca
Parents: 63a8ddc
Author: Goldstein Lyor <l...@c-b4.com>
Authored: Wed Aug 9 15:59:39 2017 +0300
Committer: Lyor Goldstein <lyor.goldst...@gmail.com>
Committed: Wed Aug 9 20:46:36 2017 +0300

----------------------------------------------------------------------
 .../src/main/java/org/apache/sshd/common/scp/ScpHelper.java      | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/d03d9811/sshd-core/src/main/java/org/apache/sshd/common/scp/ScpHelper.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/scp/ScpHelper.java 
b/sshd-core/src/main/java/org/apache/sshd/common/scp/ScpHelper.java
index 3f584d2..6631832 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/scp/ScpHelper.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/scp/ScpHelper.java
@@ -605,7 +605,7 @@ public class ScpHelper extends AbstractLoggingBean 
implements SessionHolder<Sess
         }
 
         Set<PosixFilePermission> perms = 
EnumSet.copyOf(resolver.getPermissions());
-        String octalPerms = GenericUtils.isEmpty(perms) ? 
DEFAULT_FILE_OCTAL_PERMISSIONS : getOctalPermissions(perms);
+        String octalPerms = (preserve || GenericUtils.isEmpty(perms)) ? 
DEFAULT_FILE_OCTAL_PERMISSIONS : getOctalPermissions(perms);
         String fileName = resolver.getFileName();
         String cmd = "C" + octalPerms + " " + fileSize + " " + fileName;
         if (log.isDebugEnabled()) {
@@ -700,7 +700,7 @@ public class ScpHelper extends AbstractLoggingBean 
implements SessionHolder<Sess
 
         LinkOption[] options = IoUtils.getLinkOptions(true);
         Set<PosixFilePermission> perms = IoUtils.getPermissions(path, options);
-        String octalPerms = GenericUtils.isEmpty(perms) ? 
DEFAULT_DIR_OCTAL_PERMISSIONS : getOctalPermissions(perms);
+        String octalPerms = (preserve || GenericUtils.isEmpty(perms)) ? 
DEFAULT_DIR_OCTAL_PERMISSIONS : getOctalPermissions(perms);
         String cmd = "D" + octalPerms + " " + "0" + " " + 
Objects.toString(path.getFileName(), null);
         if (log.isDebugEnabled()) {
             log.debug("sendDir({})[{}] send 'D' command: {}", this, path, cmd);

Reply via email to