am 026ba931: (-s ours) Merge "Fix the build." into honeycomb-plus-aosp

* commit '026ba931d448919ffc515f7e66fe96950f89d22e':
  Fix the build.
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index 3a3f5e1..12ac052 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -24,6 +24,7 @@
 import android.database.ContentObserver;
 import android.net.ConnectivityManager;
 import android.net.DummyDataStateTracker;
+import android.net.EthernetDataTracker;
 import android.net.IConnectivityManager;
 import android.net.LinkProperties;
 import android.net.MobileDataStateTracker;
@@ -420,6 +421,10 @@
                 mNetTrackers[netType] = BluetoothTetheringDataTracker.getInstance();
                 mNetTrackers[netType].startMonitoring(context, mHandler);
                 break;
+            case ConnectivityManager.TYPE_ETHERNET:
+                mNetTrackers[netType] = EthernetDataTracker.getInstance();
+                mNetTrackers[netType].startMonitoring(context, mHandler);
+                break;
             default:
                 loge("Trying to create a DataStateTracker for an unknown radio type " +
                         mNetAttributes[netType].mRadio);
@@ -538,8 +543,18 @@
      */
     public NetworkInfo getActiveNetworkInfo() {
         enforceAccessPermission();
-        if (mActiveDefaultNetwork != -1) {
-            return mNetTrackers[mActiveDefaultNetwork].getNetworkInfo();
+        for (int type=0; type <= ConnectivityManager.MAX_NETWORK_TYPE; type++) {
+            if (mNetAttributes[type] == null || !mNetAttributes[type].isDefault()) {
+                continue;
+            }
+            NetworkStateTracker t = mNetTrackers[type];
+            NetworkInfo info = t.getNetworkInfo();
+            if (info.isConnected()) {
+                if (DBG && type != mActiveDefaultNetwork) {
+                    loge("connected default network is not mActiveDefaultNetwork!");
+                }
+                return info;
+            }
         }
         return null;
     }
@@ -1338,19 +1353,6 @@
                 handleApplyDefaultProxy(netType);
                 addDefaultRoute(mNetTrackers[netType]);
             } else {
-                // many radios add a default route even when we don't want one.
-                // remove the default interface unless we need it for our active network
-                if (mActiveDefaultNetwork != -1) {
-                    LinkProperties linkProperties =
-                            mNetTrackers[mActiveDefaultNetwork].getLinkProperties();
-                    LinkProperties newLinkProperties =
-                            mNetTrackers[netType].getLinkProperties();
-                    String defaultIface = linkProperties.getInterfaceName();
-                    if (defaultIface != null &&
-                            !defaultIface.equals(newLinkProperties.getInterfaceName())) {
-                        removeDefaultRoute(mNetTrackers[netType]);
-                    }
-                }
                 addPrivateDnsRoutes(mNetTrackers[netType]);
             }
         } else {