diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/org/connectbot/service/TerminalBridge.java | 2 | ||||
-rw-r--r-- | src/org/connectbot/transport/SSH.java | 5 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/org/connectbot/service/TerminalBridge.java b/src/org/connectbot/service/TerminalBridge.java index d80131f..8538257 100644 --- a/src/org/connectbot/service/TerminalBridge.java +++ b/src/org/connectbot/service/TerminalBridge.java @@ -406,7 +406,7 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener { // temporary fix is to just spawn disconnection into a thread Thread disconnectThread = new Thread(new Runnable() { public void run() { - if(transport != null) + if (transport != null && transport.isConnected()) transport.close(); } }); diff --git a/src/org/connectbot/transport/SSH.java b/src/org/connectbot/transport/SSH.java index 487d0a3..aa41202 100644 --- a/src/org/connectbot/transport/SSH.java +++ b/src/org/connectbot/transport/SSH.java @@ -90,7 +90,7 @@ public class SSH extends AbsTransport implements ConnectionMonitor, InteractiveC static final Pattern hostmask; static { - hostmask = Pattern.compile("^(.+)@([0-9a-z.-]+)(:(\\d+))?$", Pattern.CASE_INSENSITIVE); + hostmask = Pattern.compile("^(.+)@([0-9a-z.-]+)(:(\\d+))?$", Pattern.CASE_INSENSITIVE); } private boolean compression = false; @@ -445,6 +445,8 @@ public class SSH extends AbsTransport implements ConnectionMonitor, InteractiveC @Override public void close() { + connected = false; + if (session != null) session.close(); if (connection != null) @@ -483,6 +485,7 @@ public class SSH extends AbsTransport implements ConnectionMonitor, InteractiveC } if ((newConditions & ChannelCondition.EOF) != 0) { + onDisconnect(); throw new IOException("Remote end closed connection"); } |