aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKensuke Matsuzaki <zakki@peppermint.jp>2010-11-14 00:59:44 +0900
committerKensuke Matsuzaki <zakki@peppermint.jp>2010-11-14 00:59:44 +0900
commit6127fd5d6a3031e32e2701512a164131b7b3525b (patch)
treec63b26a091d8d9895c1ff70d2d63fa8103785e07
parentabf20788bb43fa52b78a8824963bb6bb56eff463 (diff)
downloadconnectbot-6127fd5d6a3031e32e2701512a164131b7b3525b.tar.gz
connectbot-6127fd5d6a3031e32e2701512a164131b7b3525b.tar.bz2
connectbot-6127fd5d6a3031e32e2701512a164131b7b3525b.zip
Keep local connections when network down.
-rw-r--r--src/org/connectbot/service/TerminalManager.java11
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");