You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by gn...@apache.org on 2013/07/19 07:52:21 UTC
[1/4] git commit: Minor code cleanup
Updated Branches:
refs/heads/master dafc60810 -> 833cedeef
Minor code cleanup
Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/0e6fccc3
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/0e6fccc3
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/0e6fccc3
Branch: refs/heads/master
Commit: 0e6fccc3724e09400c506463015dd70be4140ee9
Parents: dafc608
Author: Guillaume Nodet <gn...@apache.org>
Authored: Thu Jul 18 22:44:32 2013 +0200
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Thu Jul 18 22:44:32 2013 +0200
----------------------------------------------------------------------
.../java/org/apache/sshd/common/channel/ChannelOutputStream.java | 4 ++--
.../java/org/apache/sshd/common/forward/TcpipServerChannel.java | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/0e6fccc3/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java
index 27e4f8e..62a20be 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java
@@ -132,8 +132,8 @@ public class ChannelOutputStream extends OutputStream {
channel.getSession().writePacket(buf);
}
} catch (WindowClosedException e) {
- closed = true;
- throw e;
+ closed = true;
+ throw e;
} catch (SshException e) {
throw e;
} catch (Exception e) {
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/0e6fccc3/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipServerChannel.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipServerChannel.java b/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipServerChannel.java
index d2d7c80..c709794 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipServerChannel.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipServerChannel.java
@@ -182,8 +182,8 @@ public class TcpipServerChannel extends AbstractServerChannel {
}
public CloseFuture close(boolean immediately) {
- return super.close(immediately).addListener(new SshFutureListener() {
- public void operationComplete(SshFuture sshFuture) {
+ return super.close(immediately).addListener(new SshFutureListener<CloseFuture>() {
+ public void operationComplete(CloseFuture sshFuture) {
closeImmediately0();
}
});
[2/4] git commit: Add a few debug statements
Posted by gn...@apache.org.
Add a few debug statements
Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/51eefa6d
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/51eefa6d
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/51eefa6d
Branch: refs/heads/master
Commit: 51eefa6d12caf4f31342675fd98c3aa41369da98
Parents: 0e6fccc
Author: Guillaume Nodet <gn...@apache.org>
Authored: Thu Jul 18 22:44:47 2013 +0200
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Thu Jul 18 22:44:47 2013 +0200
----------------------------------------------------------------------
.../org/apache/sshd/common/forward/DefaultTcpipForwarder.java | 5 +++++
.../main/java/org/apache/sshd/server/session/ServerSession.java | 1 +
2 files changed, 6 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/51eefa6d/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarder.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarder.java b/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarder.java
index 8612744..4b50bb7 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarder.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarder.java
@@ -44,6 +44,8 @@ import org.apache.sshd.common.SshdSocketAddress;
import org.apache.sshd.common.TcpipForwarder;
import org.apache.sshd.common.future.SshFutureListener;
import org.apache.sshd.common.util.Buffer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* TODO Add javadoc
@@ -52,6 +54,8 @@ import org.apache.sshd.common.util.Buffer;
*/
public class DefaultTcpipForwarder extends IoHandlerAdapter implements TcpipForwarder {
+ private static final Logger LOGGER = LoggerFactory.getLogger(DefaultTcpipForwarder.class);
+
private final Session session;
private final Map<Integer, SshdSocketAddress> localToRemote = new HashMap<Integer, SshdSocketAddress>();
private final Map<Integer, SshdSocketAddress> remoteToLocal = new HashMap<Integer, SshdSocketAddress>();
@@ -194,6 +198,7 @@ public class DefaultTcpipForwarder extends IoHandlerAdapter implements TcpipForw
public void sessionClosed(IoSession session) throws Exception {
TcpipClientChannel channel = (TcpipClientChannel) session.getAttribute(TcpipClientChannel.class);
if (channel != null) {
+ LOGGER.debug("Session closed, will now close the channel");
channel.close(false);
}
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/51eefa6d/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java b/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java
index 9b16a00..596411f 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java
@@ -654,6 +654,7 @@ public class ServerSession extends AbstractSession {
private void globalRequest(Buffer buffer) throws Exception {
String req = buffer.getString();
boolean wantReply = buffer.getBoolean();
+ log.debug("Received global request {}", req);
if (req.startsWith("keepalive@")) {
// Relatively standard KeepAlive directive, just wants failure
} else if (req.equals("no-more-sessions@openssh.com")) {
[3/4] git commit: Remove unused import
Posted by gn...@apache.org.
Remove unused import
Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/9952e99a
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/9952e99a
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/9952e99a
Branch: refs/heads/master
Commit: 9952e99abe23f0a8d08c6950d2d896f6d5ed3e34
Parents: 51eefa6
Author: Guillaume Nodet <gn...@apache.org>
Authored: Fri Jul 19 07:20:02 2013 +0200
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Fri Jul 19 07:20:02 2013 +0200
----------------------------------------------------------------------
.../src/main/java/org/apache/sshd/server/session/ServerSession.java | 1 -
1 file changed, 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/9952e99a/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java b/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java
index 596411f..531dfd6 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java
@@ -34,7 +34,6 @@ import org.apache.sshd.SshServer;
import org.apache.sshd.agent.common.AgentForwardSupport;
import org.apache.sshd.client.future.OpenFuture;
import org.apache.sshd.common.Channel;
-import org.apache.sshd.common.FactoryManager;
import org.apache.sshd.common.KeyExchange;
import org.apache.sshd.common.NamedFactory;
import org.apache.sshd.common.SshConstants;
[4/4] git commit: [SSHD-238] Improve channel closing behaviours and
make sure no packets can be sent after the MSG_CHANNEL_CLOSE has been sent
Posted by gn...@apache.org.
[SSHD-238] Improve channel closing behaviours and make sure no packets can be sent after the MSG_CHANNEL_CLOSE has been sent
Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/833cedee
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/833cedee
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/833cedee
Branch: refs/heads/master
Commit: 833cedeefc43a4febdd93210e8857f1ab3d95e33
Parents: 9952e99
Author: Guillaume Nodet <gn...@apache.org>
Authored: Fri Jul 19 07:52:13 2013 +0200
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Fri Jul 19 07:52:13 2013 +0200
----------------------------------------------------------------------
.../agent/local/ChannelAgentForwarding.java | 2 +-
.../sshd/agent/unix/ChannelAgentForwarding.java | 2 +-
.../client/channel/AbstractClientChannel.java | 2 +-
.../sshd/client/channel/ChannelDirectTcpip.java | 2 +-
.../apache/sshd/client/channel/ChannelExec.java | 2 +-
.../sshd/client/channel/ChannelSession.java | 2 +-
.../sshd/client/channel/ChannelShell.java | 8 ++--
.../sshd/client/channel/ChannelSubsystem.java | 2 +-
.../sshd/common/channel/AbstractChannel.java | 47 +++++++++++++++++---
.../common/channel/ChannelOutputStream.java | 2 +-
.../sshd/common/forward/TcpipClientChannel.java | 2 +-
.../sshd/common/forward/TcpipServerChannel.java | 2 +-
.../sshd/common/session/AbstractSession.java | 6 +++
.../server/channel/AbstractServerChannel.java | 2 +-
.../sshd/server/channel/ChannelSession.java | 26 +++++------
.../sshd/server/x11/X11ForwardSupport.java | 2 +-
16 files changed, 75 insertions(+), 36 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/833cedee/sshd-core/src/main/java/org/apache/sshd/agent/local/ChannelAgentForwarding.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/local/ChannelAgentForwarding.java b/sshd-core/src/main/java/org/apache/sshd/agent/local/ChannelAgentForwarding.java
index 0536a52..002cb65 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/local/ChannelAgentForwarding.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/local/ChannelAgentForwarding.java
@@ -117,7 +117,7 @@ public class ChannelAgentForwarding extends AbstractServerChannel {
log.info("Received channel request: {}", type);
buffer = session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_FAILURE, 0);
buffer.putInt(recipient);
- session.writePacket(buffer);
+ writePacket(buffer);
}
protected class AgentClient extends AbstractAgentClient {
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/833cedee/sshd-core/src/main/java/org/apache/sshd/agent/unix/ChannelAgentForwarding.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/unix/ChannelAgentForwarding.java b/sshd-core/src/main/java/org/apache/sshd/agent/unix/ChannelAgentForwarding.java
index c88bb8f..0acbe04 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/unix/ChannelAgentForwarding.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/unix/ChannelAgentForwarding.java
@@ -143,7 +143,7 @@ public class ChannelAgentForwarding extends AbstractServerChannel {
log.info("Received channel request: {}", type);
buffer = session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_FAILURE, 0);
buffer.putInt(recipient);
- session.writePacket(buffer);
+ writePacket(buffer);
}
/**
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/833cedee/sshd-core/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java b/sshd-core/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java
index 5ef9703..d247b0d 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java
@@ -176,7 +176,7 @@ public abstract class AbstractClientChannel extends AbstractChannel implements C
buffer.putInt(id);
buffer.putInt(localWindow.getSize());
buffer.putInt(localWindow.getPacketSize());
- session.writePacket(buffer);
+ writePacket(buffer);
return openFuture;
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/833cedee/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelDirectTcpip.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelDirectTcpip.java b/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelDirectTcpip.java
index a0438d0..83b6186 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelDirectTcpip.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelDirectTcpip.java
@@ -75,7 +75,7 @@ public class ChannelDirectTcpip extends AbstractClientChannel {
buffer.putInt(remote.getPort());
buffer.putString(local.getHostName());
buffer.putInt(local.getPort());
- session.writePacket(buffer);
+ writePacket(buffer);
return openFuture;
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/833cedee/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelExec.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelExec.java b/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelExec.java
index 30972f3..756a854 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelExec.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelExec.java
@@ -45,7 +45,7 @@ public class ChannelExec extends ChannelSession {
buffer.putString("exec");
buffer.putBoolean(false);
buffer.putString(command);
- session.writePacket(buffer);
+ writePacket(buffer);
}
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/833cedee/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelSession.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelSession.java b/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelSession.java
index 9e08e9c..dd05ab8 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelSession.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelSession.java
@@ -85,7 +85,7 @@ public class ChannelSession extends AbstractClientChannel {
buffer.wpos(wpos2 + len);
remoteWindow.waitAndConsume(len);
log.debug("Send SSH_MSG_CHANNEL_DATA on channel {}", id);
- session.writePacket(buffer);
+ writePacket(buffer);
} else {
sendEof();
break;
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/833cedee/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelShell.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelShell.java b/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelShell.java
index 117b73d..3c3fca4 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelShell.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelShell.java
@@ -158,7 +158,7 @@ public class ChannelShell extends ChannelSession {
buffer.putInt(recipient);
buffer.putString("auth-agent-req@openssh.com");
buffer.putBoolean(false);
- session.writePacket(buffer);
+ writePacket(buffer);
}
if (usePty) {
@@ -179,7 +179,7 @@ public class ChannelShell extends ChannelSession {
}
modes.putByte((byte) 0);
buffer.putBytes(modes.getCompactData());
- session.writePacket(buffer);
+ writePacket(buffer);
}
if (!env.isEmpty()) {
@@ -191,7 +191,7 @@ public class ChannelShell extends ChannelSession {
buffer.putBoolean(false);
buffer.putString(entry.getKey());
buffer.putString(entry.getValue());
- session.writePacket(buffer);
+ writePacket(buffer);
}
}
@@ -200,7 +200,7 @@ public class ChannelShell extends ChannelSession {
buffer.putInt(recipient);
buffer.putString("shell");
buffer.putBoolean(false);
- session.writePacket(buffer);
+ writePacket(buffer);
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/833cedee/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelSubsystem.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelSubsystem.java b/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelSubsystem.java
index 5bbce8e..5833b80 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelSubsystem.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelSubsystem.java
@@ -45,7 +45,7 @@ public class ChannelSubsystem extends ChannelSession {
buffer.putString("subsystem");
buffer.putBoolean(false);
buffer.putString(subsystem);
- session.writePacket(buffer);
+ writePacket(buffer);
}
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/833cedee/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java
index c6c4ce1..0ae6180 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java
@@ -19,7 +19,10 @@
package org.apache.sshd.common.channel;
import java.io.IOException;
+import java.io.InterruptedIOException;
+import org.apache.mina.core.future.IoFutureListener;
+import org.apache.mina.core.future.WriteFuture;
import org.apache.sshd.common.Channel;
import org.apache.sshd.common.FactoryManager;
import org.apache.sshd.common.Session;
@@ -51,6 +54,7 @@ public abstract class AbstractChannel implements Channel {
protected boolean eof;
protected final CloseFuture closeFuture = new DefaultCloseFuture(lock);
protected boolean closing;
+ protected boolean closedByOtherSide;
public int getId() {
return id;
@@ -79,6 +83,9 @@ public abstract class AbstractChannel implements Channel {
}
public CloseFuture close(boolean immediately) {
+ if (closeFuture.isClosed()) {
+ return closeFuture;
+ }
try {
synchronized (lock) {
if (immediately) {
@@ -92,7 +99,18 @@ public abstract class AbstractChannel implements Channel {
log.debug("Send SSH_MSG_CHANNEL_CLOSE on channel {}", id);
Buffer buffer = session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_CLOSE, 0);
buffer.putInt(recipient);
- session.writePacket(buffer);
+ session.writePacket(buffer).addListener(new IoFutureListener<WriteFuture>() {
+ public void operationComplete(WriteFuture future) {
+ synchronized (lock) {
+ if (closedByOtherSide) {
+ log.debug("Message SSH_MSG_CHANNEL_CLOSE written on channel {}", id);
+ closeFuture.setClosed();
+ doClose();
+ lock.notifyAll();
+ }
+ }
+ }
+ });
}
}
}
@@ -106,15 +124,30 @@ public abstract class AbstractChannel implements Channel {
public void handleClose() throws IOException {
log.debug("Received SSH_MSG_CHANNEL_CLOSE on channel {}", id);
synchronized (lock) {
- close(false).setClosed();
- doClose();
- lock.notifyAll();
+ closedByOtherSide = !closing;
+ if (closedByOtherSide) {
+ close(false);
+ } else {
+ close(false).setClosed();
+ doClose();
+ lock.notifyAll();
+ }
}
}
protected void doClose() {
}
+ protected void writePacket(Buffer buffer) throws IOException {
+ synchronized (lock) {
+ if (!closing) {
+ session.writePacket(buffer);
+ } else {
+ log.debug("Discarding output packet because channel is being closed");
+ }
+ }
+ }
+
public void handleData(Buffer buffer) throws IOException {
int len = buffer.getInt();
if (len < 0 || len > 32768) {
@@ -134,7 +167,7 @@ public abstract class AbstractChannel implements Channel {
log.debug("Send SSH_MSG_CHANNEL_FAILURE on channel {}", id);
buffer = session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_FAILURE, 0);
buffer.putInt(recipient);
- session.writePacket(buffer);
+ writePacket(buffer);
return;
}
int len = buffer.getInt();
@@ -175,7 +208,7 @@ public abstract class AbstractChannel implements Channel {
log.debug("Send SSH_MSG_CHANNEL_EOF on channel {}", id);
Buffer buffer = session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_EOF, 0);
buffer.putInt(recipient);
- session.writePacket(buffer);
+ writePacket(buffer);
}
protected void configureWindow() {
@@ -189,6 +222,6 @@ public abstract class AbstractChannel implements Channel {
Buffer buffer = session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_WINDOW_ADJUST, 0);
buffer.putInt(recipient);
buffer.putInt(len);
- session.writePacket(buffer);
+ writePacket(buffer);
}
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/833cedee/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java
index 62a20be..e0441ba 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java
@@ -129,7 +129,7 @@ public class ChannelOutputStream extends OutputStream {
lastSize = length;
remoteWindow.waitAndConsume(length);
log.debug("Send {} on channel {}", cmd, channel.getId());
- channel.getSession().writePacket(buf);
+ channel.writePacket(buf);
}
} catch (WindowClosedException e) {
closed = true;
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/833cedee/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipClientChannel.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipClientChannel.java b/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipClientChannel.java
index d2fa64e..03b3070 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipClientChannel.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipClientChannel.java
@@ -86,7 +86,7 @@ public class TcpipClientChannel extends AbstractClientChannel {
buffer.putInt(dst.getPort());
buffer.putString(src.getAddress().getHostAddress());
buffer.putInt(src.getPort());
- session.writePacket(buffer);
+ writePacket(buffer);
return openFuture;
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/833cedee/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipServerChannel.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipServerChannel.java b/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipServerChannel.java
index c709794..4c9fa28 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipServerChannel.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipServerChannel.java
@@ -206,6 +206,6 @@ public class TcpipServerChannel extends AbstractServerChannel {
log.info("Received channel request: {}", type);
buffer = session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_FAILURE, 0);
buffer.putInt(recipient);
- session.writePacket(buffer);
+ writePacket(buffer);
}
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/833cedee/sshd-core/src/main/java/org/apache/sshd/common/session/AbstractSession.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/session/AbstractSession.java b/sshd-core/src/main/java/org/apache/sshd/common/session/AbstractSession.java
index a8c26b2..60e4b47 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/session/AbstractSession.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/session/AbstractSession.java
@@ -279,6 +279,12 @@ public abstract class AbstractSession implements Session {
* @throws IOException
*/
public void exceptionCaught(Throwable t) {
+ // Ignore exceptions that happen while closing
+ synchronized (lock) {
+ if (closing) {
+ return;
+ }
+ }
log.warn("Exception caught", t);
try {
if (t instanceof SshException) {
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/833cedee/sshd-core/src/main/java/org/apache/sshd/server/channel/AbstractServerChannel.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/channel/AbstractServerChannel.java b/sshd-core/src/main/java/org/apache/sshd/server/channel/AbstractServerChannel.java
index 4ef6509..4ab0412 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/channel/AbstractServerChannel.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/channel/AbstractServerChannel.java
@@ -65,7 +65,7 @@ public abstract class AbstractServerChannel extends AbstractChannel {
buffer.putString("exit-status");
buffer.putByte((byte) 0);
buffer.putInt(v);
- session.writePacket(buffer);
+ writePacket(buffer);
}
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/833cedee/sshd-core/src/main/java/org/apache/sshd/server/channel/ChannelSession.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/channel/ChannelSession.java b/sshd-core/src/main/java/org/apache/sshd/server/channel/ChannelSession.java
index bf4ae77..b2d8b13 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/channel/ChannelSession.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/channel/ChannelSession.java
@@ -200,7 +200,7 @@ public class ChannelSession extends AbstractServerChannel {
if (!handleRequest(type, buffer)) {
buffer = session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_FAILURE, 0);
buffer.putInt(recipient);
- session.writePacket(buffer);
+ writePacket(buffer);
}
}
@@ -277,7 +277,7 @@ public class ChannelSession extends AbstractServerChannel {
if (wantReply) {
buffer = session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_SUCCESS, 0);
buffer.putInt(recipient);
- session.writePacket(buffer);
+ writePacket(buffer);
}
return true;
}
@@ -307,7 +307,7 @@ public class ChannelSession extends AbstractServerChannel {
if (wantReply) {
buffer = session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_SUCCESS, 0);
buffer.putInt(recipient);
- session.writePacket(buffer);
+ writePacket(buffer);
}
return true;
}
@@ -328,7 +328,7 @@ public class ChannelSession extends AbstractServerChannel {
if (wantReply) {
buffer = session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_SUCCESS, 0);
buffer.putInt(recipient);
- session.writePacket(buffer);
+ writePacket(buffer);
}
return true;
}
@@ -349,7 +349,7 @@ public class ChannelSession extends AbstractServerChannel {
if (wantReply) {
buffer = session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_SUCCESS, 0);
buffer.putInt(recipient);
- session.writePacket(buffer);
+ writePacket(buffer);
}
return true;
}
@@ -364,7 +364,7 @@ public class ChannelSession extends AbstractServerChannel {
if (wantReply) {
buffer = session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_SUCCESS, 0);
buffer.putInt(recipient);
- session.writePacket(buffer);
+ writePacket(buffer);
}
command.start(getEnvironment());
return true;
@@ -390,7 +390,7 @@ public class ChannelSession extends AbstractServerChannel {
if (wantReply) {
buffer = session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_SUCCESS, 0);
buffer.putInt(recipient);
- session.writePacket(buffer);
+ writePacket(buffer);
}
// Launch command
command.start(getEnvironment());
@@ -414,7 +414,7 @@ public class ChannelSession extends AbstractServerChannel {
if (wantReply) {
buffer = session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_SUCCESS, 0);
buffer.putInt(recipient);
- session.writePacket(buffer);
+ writePacket(buffer);
}
// Launch command
command.start(getEnvironment());
@@ -492,7 +492,7 @@ public class ChannelSession extends AbstractServerChannel {
if (wantReply) {
buffer = session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_FAILURE, 0);
buffer.putInt(recipient);
- session.writePacket(buffer);
+ writePacket(buffer);
}
return true;
}
@@ -503,7 +503,7 @@ public class ChannelSession extends AbstractServerChannel {
if (wantReply) {
buffer = session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_SUCCESS, 0);
buffer.putInt(recipient);
- session.writePacket(buffer);
+ writePacket(buffer);
}
return true;
}
@@ -517,7 +517,7 @@ public class ChannelSession extends AbstractServerChannel {
if (wantReply) {
buffer = session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_FAILURE, 0);
buffer.putInt(recipient);
- session.writePacket(buffer);
+ writePacket(buffer);
}
return true;
}
@@ -528,7 +528,7 @@ public class ChannelSession extends AbstractServerChannel {
if (wantReply) {
buffer = session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_FAILURE, 0);
buffer.putInt(recipient);
- session.writePacket(buffer);
+ writePacket(buffer);
}
return true;
}
@@ -538,7 +538,7 @@ public class ChannelSession extends AbstractServerChannel {
if (wantReply) {
buffer = session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_SUCCESS, 0);
buffer.putInt(recipient);
- session.writePacket(buffer);
+ writePacket(buffer);
}
return true;
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/833cedee/sshd-core/src/main/java/org/apache/sshd/server/x11/X11ForwardSupport.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/x11/X11ForwardSupport.java b/sshd-core/src/main/java/org/apache/sshd/server/x11/X11ForwardSupport.java
index dac12a3..23479a3 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/x11/X11ForwardSupport.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/x11/X11ForwardSupport.java
@@ -197,7 +197,7 @@ public class X11ForwardSupport extends IoHandlerAdapter {
buffer.putInt(localWindow.getPacketSize());
buffer.putString(remote.getAddress().getHostAddress());
buffer.putInt(remote.getPort());
- session.writePacket(buffer);
+ writePacket(buffer);
return openFuture;
}