diff --git a/pom.xml b/pom.xml index 4d0a9aa..a7cf143 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.jcraft jsch jar - 0.1.54 + 1.1.54 JSch http://www.jcraft.com/jsch/ JSch is a pure Java implementation of SSH2 diff --git a/src/main/java/com/jcraft/jsch/Channel.java b/src/main/java/com/jcraft/jsch/Channel.java index 6921366..f37135a 100644 --- a/src/main/java/com/jcraft/jsch/Channel.java +++ b/src/main/java/com/jcraft/jsch/Channel.java @@ -251,10 +251,11 @@ private synchronized void init() throws java.io.IOException { packet = new Packet(buffer); byte[] _buf = buffer.buffer; - if (_buf.length - (14 + 0) - Session.buffer_margin <= 0) { + int margin = Session.buffer_margin_cisco; + if (_buf.length - (14 + 0) - margin <= 0) { buffer = null; packet = null; - throw new IOException("failed to initialize the channel."); + throw new IOException(String.format("failed to initialize the channel (remote maximum packet size %d, margin %d) ", rmpsize, margin)); } } @@ -279,8 +280,8 @@ public void write(byte[] buf, int s, int l) throws java.io.IOException { int _bufl = _buf.length; while (l > 0) { int _l = l; - if (l > _bufl - (14 + dataLen) - Session.buffer_margin) { - _l = _bufl - (14 + dataLen) - Session.buffer_margin; + if (l > _bufl - (14 + dataLen) - Session.buffer_margin_cisco) { + _l = _bufl - (14 + dataLen) - Session.buffer_margin_cisco; } if (_l <= 0) { diff --git a/src/main/java/com/jcraft/jsch/Session.java b/src/main/java/com/jcraft/jsch/Session.java index 9216ba1..80aa635 100644 --- a/src/main/java/com/jcraft/jsch/Session.java +++ b/src/main/java/com/jcraft/jsch/Session.java @@ -129,6 +129,12 @@ public class Session implements Runnable { 64 + // maximum mac length 32; // margin for deflater; deflater may inflate data + // in some cisco devices, the buffer is not so large + static final int buffer_margin_cisco = 32 + // maximum padding length + 20 + // maximum mac length + 32; // margin for deflater; deflater may inflate data + + private java.util.Hashtable config = null; private Proxy proxy = null;