summaryrefslogtreecommitdiffstats
path: root/services/java/com
diff options
context:
space:
mode:
authorLorenzo Colitti <lorenzo@google.com>2013-03-11 17:25:01 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2013-03-11 17:25:01 +0000
commit13d1c27eda1465eeb09823eb9e82fccf67dfb15e (patch)
tree7db214a1d7b3bd023d18dc3d35bb6df91537b29c /services/java/com
parent6d8086aa0d00397fec8afc8649399cdfcbc378c3 (diff)
parentde965891130bc50bd02eb6f7bac2ea177a733c2c (diff)
downloadframeworks_base-13d1c27eda1465eeb09823eb9e82fccf67dfb15e.zip
frameworks_base-13d1c27eda1465eeb09823eb9e82fccf67dfb15e.tar.gz
frameworks_base-13d1c27eda1465eeb09823eb9e82fccf67dfb15e.tar.bz2
am de965891: Merge "Always specify an interface for host routes." into jb-mr2-dev
* commit 'de965891130bc50bd02eb6f7bac2ea177a733c2c': Always specify an interface for host routes.
Diffstat (limited to 'services/java/com')
-rw-r--r--services/java/com/android/server/ConnectivityService.java13
1 files changed, 8 insertions, 5 deletions
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index 3257d2c..027f0f3 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -1430,17 +1430,18 @@ public class ConnectivityService extends IConnectivityManager.Stub {
private boolean modifyRouteToAddress(LinkProperties lp, InetAddress addr, boolean doAdd,
boolean toDefaultTable) {
+ String iface = lp.getInterfaceName();
RouteInfo bestRoute = RouteInfo.selectBestRoute(lp.getRoutes(), addr);
if (bestRoute == null) {
- bestRoute = RouteInfo.makeHostRoute(addr);
+ bestRoute = RouteInfo.makeHostRoute(addr, iface);
} else {
if (bestRoute.getGateway().equals(addr)) {
// if there is no better route, add the implied hostroute for our gateway
- bestRoute = RouteInfo.makeHostRoute(addr);
+ bestRoute = RouteInfo.makeHostRoute(addr, iface);
} else {
// if we will connect to this through another route, add a direct route
// to it's gateway
- bestRoute = RouteInfo.makeHostRoute(addr, bestRoute.getGateway());
+ bestRoute = RouteInfo.makeHostRoute(addr, bestRoute.getGateway(), iface);
}
}
return modifyRoute(lp.getInterfaceName(), lp, bestRoute, 0, doAdd, toDefaultTable);
@@ -1463,11 +1464,13 @@ public class ConnectivityService extends IConnectivityManager.Stub {
if (bestRoute != null) {
if (bestRoute.getGateway().equals(r.getGateway())) {
// if there is no better route, add the implied hostroute for our gateway
- bestRoute = RouteInfo.makeHostRoute(r.getGateway());
+ bestRoute = RouteInfo.makeHostRoute(r.getGateway(), ifaceName);
} else {
// if we will connect to our gateway through another route, add a direct
// route to it's gateway
- bestRoute = RouteInfo.makeHostRoute(r.getGateway(), bestRoute.getGateway());
+ bestRoute = RouteInfo.makeHostRoute(r.getGateway(),
+ bestRoute.getGateway(),
+ ifaceName);
}
modifyRoute(ifaceName, lp, bestRoute, cycleCount+1, doAdd, toDefaultTable);
}