Remove default routes for non-default networks. am: 08ae9bc349

Original change: undetermined

Change-Id: Ic2dd66d92d255d949d28c9ed0c9a74d173421d80
This commit is contained in:
Robert Greenwalt
2021-05-31 11:50:40 +00:00
committed by Automerger Merge Worker

View File

@@ -1831,6 +1831,19 @@ public class ConnectivityService extends IConnectivityManager.Stub {
for (RouteInfo r : routeDiff.added) {
if (isLinkDefault || ! r.isDefaultRoute()) {
addRoute(newLp, r);
} else {
// many radios add a default route even when we don't want one.
// remove the default route unless somebody else has asked for it
String ifaceName = newLp.getInterfaceName();
if (TextUtils.isEmpty(ifaceName) == false && mAddedRoutes.contains(r) == false) {
if (DBG) log("Removing " + r + " for interface " + ifaceName);
try {
mNetd.removeRoute(ifaceName, r);
} catch (Exception e) {
// never crash - catch them all
loge("Exception trying to remove a route: " + e);
}
}
}
}