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;