Avoid setting SFTP rename flags below version 5 (#751) (#754)

Fixes #750 
Fixes #751 

Co-authored-by: Jeroen van Erp <jeroen@hierynomus.com>
This commit is contained in:
exceptionfactory
2021-12-22 05:18:28 -06:00
committed by GitHub
parent ced27fc898
commit ce0a7d5193

View File

@@ -235,14 +235,17 @@ public class SFTPEngine
if (operativeVersion < 1) if (operativeVersion < 1)
throw new SFTPException("RENAME is not supported in SFTPv" + operativeVersion); throw new SFTPException("RENAME is not supported in SFTPv" + operativeVersion);
long renameFlagMask = 0L; final Request request = newRequest(PacketType.RENAME).putString(oldPath, sub.getRemoteCharset()).putString(newPath, sub.getRemoteCharset());
for (RenameFlags flag : flags) { // SFTP Version 5 introduced rename flags according to Section 6.5 of the specification
renameFlagMask = renameFlagMask | flag.longValue(); if (operativeVersion >= 5) {
long renameFlagMask = 0L;
for (RenameFlags flag : flags) {
renameFlagMask = renameFlagMask | flag.longValue();
}
request.putUInt32(renameFlagMask);
} }
doRequest( doRequest(request).ensureStatusPacketIsOK();
newRequest(PacketType.RENAME).putString(oldPath, sub.getRemoteCharset()).putString(newPath, sub.getRemoteCharset()).putUInt32(renameFlagMask)
).ensureStatusPacketIsOK();
} }
public String canonicalize(String path) public String canonicalize(String path)