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/26 10:45:32 UTC
git commit: [SSHD-245] Support Break Extension (RFC 4335)
Updated Branches:
refs/heads/master f549a71bc -> 728903aea
[SSHD-245] Support Break Extension (RFC 4335)
Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/728903ae
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/728903ae
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/728903ae
Branch: refs/heads/master
Commit: 728903aea55e8d755636c02940d27760f8244e4f
Parents: f549a71
Author: Guillaume Nodet <gn...@apache.org>
Authored: Fri Jul 26 10:45:21 2013 +0200
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Fri Jul 26 10:45:21 2013 +0200
----------------------------------------------------------------------
.../apache/sshd/server/channel/ChannelSession.java | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/728903ae/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 1fcf6d0..31b87d7 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
@@ -277,6 +277,9 @@ public class ChannelSession extends AbstractServerChannel {
if ("signal".equals(type)) {
return handleSignal(buffer);
}
+ if ("break".equals(type)) {
+ return handleBreak(buffer);
+ }
if ("shell".equals(type)) {
if (this.type == null && handleShell(buffer)) {
this.type = type;
@@ -392,6 +395,20 @@ public class ChannelSession extends AbstractServerChannel {
log.warn("Unknown signal received: " + name);
}
+ if (wantReply) {
+ buffer = session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_SUCCESS, 0);
+ buffer.putInt(recipient);
+ writePacket(buffer);
+ }
+ return true;
+ }
+
+ protected boolean handleBreak(Buffer buffer) throws IOException {
+ boolean wantReply = buffer.getBoolean();
+ String name = buffer.getString();
+ log.debug("Break received on channel {}: {}", id, name);
+
+ getEnvironment().signal(Signal.INT);
if (wantReply) {
buffer = session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_SUCCESS, 0);