Fix various issues found when testing Mms.

Fix some race conditions (check isTeardownRequested).
Fix the passing of mInterfaceName to subtypes (mms, etc).
Fix the generation of CONNECTED message to already active subtypes.
Fix the enabling of Data in DataConnectionTracker.

bug: 2065037
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index 72a1192..df37d35 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -513,7 +513,8 @@
                     mNetRequestersPids[usedNetworkType].add(currentPid);
                 }
 
-                if (ni.isConnectedOrConnecting() == true) {
+                if ((ni.isConnectedOrConnecting() == true) &&
+                        !network.isTeardownRequested()) {
                     if (ni.isConnected() == true) {
                         // add the pid-specific dns
                         handleDnsConfigurationChange();
@@ -686,6 +687,7 @@
                 ++numConnectedNets;
             }
         }
+        if (DBG) Log.d(TAG, "numConnectedNets returning "+numConnectedNets);
         return numConnectedNets;
     }
 
@@ -792,7 +794,8 @@
                 if (newNet.isAvailable()) {
                     NetworkInfo switchTo = newNet.getNetworkInfo();
                     switchTo.setFailover(true);
-                    if (!switchTo.isConnectedOrConnecting()) {
+                    if (!switchTo.isConnectedOrConnecting() ||
+                            newNet.isTeardownRequested()) {
                         newNet.reconnect();
                     }
                     if (DBG) {