diff options
-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 b841fbe..8978870 100644 --- a/src/org/connectbot/service/TerminalManager.java +++ b/src/org/connectbot/service/TerminalManager.java @@ -170,7 +170,7 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen public void onDestroy() { Log.i(TAG, "Destroying service"); - disconnectAll(true); + disconnectAll(true, false); if(hostdb != null) { hostdb.close(); @@ -199,7 +199,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) { @@ -210,8 +210,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); + } } } @@ -653,7 +656,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"); |