diff options
author | Kensuke Matsuzaki <zakki@peppermint.jp> | 2010-11-14 00:59:44 +0900 |
---|---|---|
committer | Kensuke Matsuzaki <zakki@peppermint.jp> | 2010-11-14 00:59:44 +0900 |
commit | 6127fd5d6a3031e32e2701512a164131b7b3525b (patch) | |
tree | c63b26a091d8d9895c1ff70d2d63fa8103785e07 | |
parent | abf20788bb43fa52b78a8824963bb6bb56eff463 (diff) | |
download | connectbot-6127fd5d6a3031e32e2701512a164131b7b3525b.tar.gz connectbot-6127fd5d6a3031e32e2701512a164131b7b3525b.tar.bz2 connectbot-6127fd5d6a3031e32e2701512a164131b7b3525b.zip |
Keep local connections when network down.
-rw-r--r-- | src/org/connectbot/service/TerminalManager.java | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/org/connectbot/service/TerminalManager.java b/src/org/connectbot/service/TerminalManager.java index 86a30f5..e43583b 100644 --- a/src/org/connectbot/service/TerminalManager.java +++ b/src/org/connectbot/service/TerminalManager.java @@ -173,7 +173,7 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen public void onDestroy() { Log.i(TAG, "Destroying background service"); - disconnectAll(true); + disconnectAll(true, false); if(hostdb != null) { hostdb.close(); @@ -202,7 +202,7 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen /** * Disconnect all currently connected bridges. */ - private void disconnectAll(final boolean immediate) { + private void disconnectAll(final boolean immediate, final boolean excludeLocal) { TerminalBridge[] tmpBridges = null; synchronized (bridges) { @@ -213,8 +213,11 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen if (tmpBridges != null) { // disconnect and dispose of any existing bridges - for (int i = 0; i < tmpBridges.length; i++) + for (int i = 0; i < tmpBridges.length; i++) { + if (excludeLocal && !tmpBridges[i].isUsingNetwork()) + continue; tmpBridges[i].dispatchDisconnect(immediate); + } } } @@ -660,7 +663,7 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen final Thread t = new Thread() { @Override public void run() { - disconnectAll(false); + disconnectAll(false, true); } }; t.setName("Disconnector"); |