Repository: mina-sshd Updated Branches: refs/heads/master 0cb36d988 -> a04eaf4fa
[SSHD-795] IOException (Broken pipe) on a socket local forwarding channel causes SSH client-server connection down Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/a04eaf4f Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/a04eaf4f Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/a04eaf4f Branch: refs/heads/master Commit: a04eaf4fac94846a6703d1d38f50308381138419 Parents: 09dec8a Author: Goldstein Lyor <[email protected]> Authored: Sun Feb 4 16:38:36 2018 +0200 Committer: Goldstein Lyor <[email protected]> Committed: Wed Feb 7 09:41:25 2018 +0200 ---------------------------------------------------------------------- .../keyverifier/StaticServerKeyVerifier.java | 1 - .../sshd/server/forward/TcpipServerChannel.java | 18 +++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/a04eaf4f/sshd-core/src/main/java/org/apache/sshd/client/keyverifier/StaticServerKeyVerifier.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/client/keyverifier/StaticServerKeyVerifier.java b/sshd-core/src/main/java/org/apache/sshd/client/keyverifier/StaticServerKeyVerifier.java index 60262bf..55ef4d9 100644 --- a/sshd-core/src/main/java/org/apache/sshd/client/keyverifier/StaticServerKeyVerifier.java +++ b/sshd-core/src/main/java/org/apache/sshd/client/keyverifier/StaticServerKeyVerifier.java @@ -66,5 +66,4 @@ public abstract class StaticServerKeyVerifier extends AbstractLoggingBean implem remoteAddress, (serverKey == null) ? null : serverKey.getAlgorithm(), KeyUtils.getFingerPrint(serverKey)); } } - } http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/a04eaf4f/sshd-core/src/main/java/org/apache/sshd/server/forward/TcpipServerChannel.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/server/forward/TcpipServerChannel.java b/sshd-core/src/main/java/org/apache/sshd/server/forward/TcpipServerChannel.java index 8e1c268..da33d51 100644 --- a/sshd-core/src/main/java/org/apache/sshd/server/forward/TcpipServerChannel.java +++ b/sshd-core/src/main/java/org/apache/sshd/server/forward/TcpipServerChannel.java @@ -331,24 +331,28 @@ public class TcpipServerChannel extends AbstractServerChannel { } protected void handleWriteDataFailure(byte cmd, byte[] data, int off, int len, Throwable t) { - Session session = getSession(); - if (log.isDebugEnabled()) { + boolean debugEnabled = log.isDebugEnabled(); + if (debugEnabled) { log.debug("handleWriteDataFailure({})[{}] failed ({}) to write len={}: {}", this, SshConstants.getCommandMessageName(cmd & 0xFF), t.getClass().getSimpleName(), len, t.getMessage()); } if (log.isTraceEnabled()) { - log.trace("doWriteData(" + this + ")[" + SshConstants.getCommandMessageName(cmd & 0xFF) + "]" + log.trace("handleWriteDataFailure(" + this + ")[" + SshConstants.getCommandMessageName(cmd & 0xFF) + "]" + " len=" + len + " write failure details", t); } if (ioSession.isOpen()) { - session.exceptionCaught(t); + // SSHD-795 IOException (Broken pipe) on a socket local forwarding channel causes SSH client-server connection down + if (debugEnabled) { + log.debug("handleWriteDataFailure({})[{}] closing session={}", + this, SshConstants.getCommandMessageName(cmd & 0xFF), ioSession); + } + close(false); } else { - // In case remote entity has closed the socket (the ioSession), data coming from - // the SSH channel should be simply discarded - if (log.isDebugEnabled()) { + // In case remote entity has closed the socket (the ioSession), data coming from the SSH channel should be simply discarded + if (debugEnabled) { log.debug("Ignoring writeDataFailure {} because ioSession {} is already closing ", t, ioSession); } }
