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);


Reply via email to