summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/java/com/android/server/ConnectivityService.java29
1 files changed, 13 insertions, 16 deletions
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index 0b0e1efaab42..12ac052617bf 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -543,8 +543,18 @@ public class ConnectivityService extends IConnectivityManager.Stub {
*/
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;
}
@@ -1343,20 +1353,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
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())) {
- mNetTrackers[netType].removeDefaultRoute();
- }
- }
- mNetTrackers[netType].addPrivateDnsRoutes();
+ addPrivateDnsRoutes(mNetTrackers[netType]);
}
} else {
if (mNetAttributes[netType].isDefault()) {