Author: gnodet
Date: Wed Aug 31 09:09:02 2011
New Revision: 1163540
URL: http://svn.apache.org/viewvc?rev=1163540&view=rev
Log:
[SSHD-139] Impossible to run a ssh shell channel without a pty
Modified:
mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelShell.java
Modified:
mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelShell.java
URL:
http://svn.apache.org/viewvc/mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelShell.java?rev=1163540&r1=1163539&r2=1163540&view=diff
==============================================================================
---
mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelShell.java
(original)
+++
mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelShell.java
Wed Aug 31 09:09:02 2011
@@ -35,6 +35,7 @@ import org.apache.sshd.common.util.SttyS
public class ChannelShell extends ChannelSession {
private boolean agentForwarding;
+ private boolean usePty = true;
private String ptyType;
private int ptyColumns;
private int ptyLines;
@@ -84,6 +85,14 @@ public class ChannelShell extends Channe
this.agentForwarding = agentForwarding;
}
+ public boolean isUsePty() {
+ return usePty;
+ }
+
+ public void setUsePty(boolean usePty) {
+ this.usePty = usePty;
+ }
+
public String getPtyType() {
return ptyType;
}
@@ -146,24 +155,26 @@ public class ChannelShell extends Channe
session.writePacket(buffer);
}
- log.info("Send SSH_MSG_CHANNEL_REQUEST pty-req");
- buffer =
session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_REQUEST, 0);
- buffer.putInt(recipient);
- buffer.putString("pty-req");
- buffer.putBoolean(false);
- buffer.putString(ptyType);
- buffer.putInt(ptyColumns);
- buffer.putInt(ptyLines);
- buffer.putInt(ptyHeight);
- buffer.putInt(ptyWidth);
- Buffer modes = new Buffer();
- for (PtyMode mode : ptyModes.keySet()) {
- modes.putByte((byte) mode.toInt());
- modes.putInt(ptyModes.get(mode));
+ if (usePty) {
+ log.info("Send SSH_MSG_CHANNEL_REQUEST pty-req");
+ buffer =
session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_REQUEST, 0);
+ buffer.putInt(recipient);
+ buffer.putString("pty-req");
+ buffer.putBoolean(false);
+ buffer.putString(ptyType);
+ buffer.putInt(ptyColumns);
+ buffer.putInt(ptyLines);
+ buffer.putInt(ptyHeight);
+ buffer.putInt(ptyWidth);
+ Buffer modes = new Buffer();
+ for (PtyMode mode : ptyModes.keySet()) {
+ modes.putByte((byte) mode.toInt());
+ modes.putInt(ptyModes.get(mode));
+ }
+ modes.putByte((byte) 0);
+ buffer.putBytes(modes.getCompactData());
+ session.writePacket(buffer);
}
- modes.putByte((byte) 0);
- buffer.putBytes(modes.getCompactData());
- session.writePacket(buffer);
// log.info("Send SSH_MSG_CHANNEL_REQUEST env");
// buffer =
session.createBuffer(SshConstants.Message.SSH_MSG_CHANNEL_REQUEST);