diff options
author | Lorenzo Colitti <lorenzo@google.com> | 2013-03-11 17:25:01 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2013-03-11 17:25:01 +0000 |
commit | 13d1c27eda1465eeb09823eb9e82fccf67dfb15e (patch) | |
tree | 7db214a1d7b3bd023d18dc3d35bb6df91537b29c /services/java/com | |
parent | 6d8086aa0d00397fec8afc8649399cdfcbc378c3 (diff) | |
parent | de965891130bc50bd02eb6f7bac2ea177a733c2c (diff) | |
download | frameworks_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.java | 13 |
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); } |