Repository: mina-sshd Updated Branches: refs/heads/master 54be5a28f -> f390884f9
[SSHD-725] Do not 2nd guess SFTP file channel read result Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/f390884f Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/f390884f Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/f390884f Branch: refs/heads/master Commit: f390884f92caead8b0f88309b21b442e12bf991f Parents: 54be5a2 Author: Lyor Goldstein <lyor.goldst...@gmail.com> Authored: Fri Jan 20 10:46:18 2017 +0200 Committer: Lyor Goldstein <lyor.goldst...@gmail.com> Committed: Fri Jan 20 10:46:18 2017 +0200 ---------------------------------------------------------------------- .../common/session/helpers/AbstractSession.java | 2 +- .../sshd/server/subsystem/sftp/FileHandle.java | 19 +++---------------- 2 files changed, 4 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/f390884f/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java index 5263e34..18c84bc 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java @@ -1605,7 +1605,7 @@ public abstract class AbstractSession extends AbstractKexFactoryManager implemen for (KexProposalOption paramType : KexProposalOption.VALUES) { String s = proposal.get(paramType); if (log.isTraceEnabled()) { - log.trace("sendKexInit(}|)[{}] {}", this, paramType.getDescription(), s); + log.trace("sendKexInit({})[{}] {}", this, paramType.getDescription(), s); } buffer.putString(GenericUtils.trimToEmpty(s)); } http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/f390884f/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/FileHandle.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/FileHandle.java b/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/FileHandle.java index 02b90cf..f737a91 100644 --- a/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/FileHandle.java +++ b/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/FileHandle.java @@ -134,21 +134,8 @@ public class FileHandle extends Handle { public int read(byte[] data, int doff, int length, long offset) throws IOException { SeekableByteChannel channel = getFileChannel(); - channel.position(offset); - - long size = channel.size(); - long curPos = channel.position(); - long available = size - curPos; - if (available <= 0) { - return -1; - } - - int bufLen = length; - if (bufLen > available) { - bufLen = (int) available; // debug breakpoint - } - - return channel.read(ByteBuffer.wrap(data, doff, bufLen)); + channel = channel.position(offset); + return channel.read(ByteBuffer.wrap(data, doff, length)); } public void append(byte[] data) throws IOException { @@ -166,7 +153,7 @@ public class FileHandle extends Handle { public void write(byte[] data, int doff, int length, long offset) throws IOException { SeekableByteChannel channel = getFileChannel(); - channel.position(offset); + channel = channel.position(offset); channel.write(ByteBuffer.wrap(data, doff, length)); }