aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 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");