From: Kensuke Matsuzaki <zakki@peppermint.jp>
Date: Sun, 14 Nov 2010 00:59:44 +0900

Keep local connections when connectivity is lost.

diff --git a/src/org/connectbot/service/TerminalManager.java b/src/org/connectbot/service/TerminalManager.java
--- a/src/org/connectbot/service/TerminalManager.java
+++ b/src/org/connectbot/service/TerminalManager.java
@@ -173,7 +173,7 @@
 	public void onDestroy() {
 		Log.i(TAG, "Destroying background service");
 
-		disconnectAll(true);
+		disconnectAll(true, false);
 
 		if(hostdb != null) {
 			hostdb.close();
@@ -202,7 +202,7 @@
 	/**
 	 * 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 @@
 
 		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 @@
 		final Thread t = new Thread() {
 			@Override
 			public void run() {
-				disconnectAll(false);
+				disconnectAll(false, true);
 			}
 		};
 		t.setName("Disconnector");
