diff options
author | Kenny Root <kenny@the-b.org> | 2009-06-17 05:22:01 +0000 |
---|---|---|
committer | Kenny Root <kenny@the-b.org> | 2009-06-17 05:22:01 +0000 |
commit | d16c812901dcbe5b69d8bb16721693378f79e04d (patch) | |
tree | 4c24ebf0652b7593ea81677e5b43d5355bdd5427 /src | |
parent | 7f6667acf6fde9ffbad59be83bbcca955555e703 (diff) | |
download | connectbot-d16c812901dcbe5b69d8bb16721693378f79e04d.tar.gz connectbot-d16c812901dcbe5b69d8bb16721693378f79e04d.tar.bz2 connectbot-d16c812901dcbe5b69d8bb16721693378f79e04d.zip |
Properly disconnect SSH when remote host ends t
git-svn-id: https://connectbot.googlecode.com/svn/trunk/connectbot@315 df292f66-193f-0410-a5fc-6d59da041ff2
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"); } |