From 6127fd5d6a3031e32e2701512a164131b7b3525b Mon Sep 17 00:00:00 2001 From: Kensuke Matsuzaki Date: Sun, 14 Nov 2010 00:59:44 +0900 Subject: Keep local connections when network down. --- src/org/connectbot/service/TerminalManager.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src') 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"); -- cgit v1.2.3