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:24 UTC
[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
[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;
}