Loading core/java/android/net/RouteInfo.java +5 −5 Original line number Diff line number Diff line Loading @@ -117,17 +117,17 @@ public class RouteInfo implements Parcelable { this(host, null, null); } public static RouteInfo makeHostRoute(InetAddress host) { return makeHostRoute(host, null); public static RouteInfo makeHostRoute(InetAddress host, String iface) { return makeHostRoute(host, null, iface); } public static RouteInfo makeHostRoute(InetAddress host, InetAddress gateway) { public static RouteInfo makeHostRoute(InetAddress host, InetAddress gateway, String iface) { if (host == null) return null; if (host instanceof Inet4Address) { return new RouteInfo(new LinkAddress(host, 32), gateway); return new RouteInfo(new LinkAddress(host, 32), gateway, iface); } else { return new RouteInfo(new LinkAddress(host, 128), gateway); return new RouteInfo(new LinkAddress(host, 128), gateway, iface); } } Loading services/java/com/android/server/ConnectivityService.java +8 −5 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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); } Loading services/tests/servicestests/src/com/android/server/ConnectivityServiceTest.java +11 −7 Original line number Diff line number Diff line Loading @@ -62,13 +62,17 @@ public class ConnectivityServiceTest extends AndroidTestCase { private static final String MOBILE_IFACE = "rmnet3"; private static final String WIFI_IFACE = "wlan6"; private static final RouteInfo MOBILE_ROUTE_V4 = RouteInfo.makeHostRoute(parse("10.0.0.33")); private static final RouteInfo MOBILE_ROUTE_V6 = RouteInfo.makeHostRoute(parse("fd00::33")); private static final RouteInfo WIFI_ROUTE_V4 = RouteInfo.makeHostRoute( parse("192.168.0.66"), parse("192.168.0.1")); private static final RouteInfo WIFI_ROUTE_V6 = RouteInfo.makeHostRoute( parse("fd00::66"), parse("fd00::")); private static final RouteInfo MOBILE_ROUTE_V4 = RouteInfo.makeHostRoute(parse("10.0.0.33"), MOBILE_IFACE); private static final RouteInfo MOBILE_ROUTE_V6 = RouteInfo.makeHostRoute(parse("fd00::33"), MOBILE_IFACE); private static final RouteInfo WIFI_ROUTE_V4 = RouteInfo.makeHostRoute(parse("192.168.0.66"), parse("192.168.0.1"), WIFI_IFACE); private static final RouteInfo WIFI_ROUTE_V6 = RouteInfo.makeHostRoute(parse("fd00::66"), parse("fd00::"), WIFI_IFACE); private INetworkManagementService mNetManager; private INetworkStatsService mStatsService; Loading Loading
core/java/android/net/RouteInfo.java +5 −5 Original line number Diff line number Diff line Loading @@ -117,17 +117,17 @@ public class RouteInfo implements Parcelable { this(host, null, null); } public static RouteInfo makeHostRoute(InetAddress host) { return makeHostRoute(host, null); public static RouteInfo makeHostRoute(InetAddress host, String iface) { return makeHostRoute(host, null, iface); } public static RouteInfo makeHostRoute(InetAddress host, InetAddress gateway) { public static RouteInfo makeHostRoute(InetAddress host, InetAddress gateway, String iface) { if (host == null) return null; if (host instanceof Inet4Address) { return new RouteInfo(new LinkAddress(host, 32), gateway); return new RouteInfo(new LinkAddress(host, 32), gateway, iface); } else { return new RouteInfo(new LinkAddress(host, 128), gateway); return new RouteInfo(new LinkAddress(host, 128), gateway, iface); } } Loading
services/java/com/android/server/ConnectivityService.java +8 −5 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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); } Loading
services/tests/servicestests/src/com/android/server/ConnectivityServiceTest.java +11 −7 Original line number Diff line number Diff line Loading @@ -62,13 +62,17 @@ public class ConnectivityServiceTest extends AndroidTestCase { private static final String MOBILE_IFACE = "rmnet3"; private static final String WIFI_IFACE = "wlan6"; private static final RouteInfo MOBILE_ROUTE_V4 = RouteInfo.makeHostRoute(parse("10.0.0.33")); private static final RouteInfo MOBILE_ROUTE_V6 = RouteInfo.makeHostRoute(parse("fd00::33")); private static final RouteInfo WIFI_ROUTE_V4 = RouteInfo.makeHostRoute( parse("192.168.0.66"), parse("192.168.0.1")); private static final RouteInfo WIFI_ROUTE_V6 = RouteInfo.makeHostRoute( parse("fd00::66"), parse("fd00::")); private static final RouteInfo MOBILE_ROUTE_V4 = RouteInfo.makeHostRoute(parse("10.0.0.33"), MOBILE_IFACE); private static final RouteInfo MOBILE_ROUTE_V6 = RouteInfo.makeHostRoute(parse("fd00::33"), MOBILE_IFACE); private static final RouteInfo WIFI_ROUTE_V4 = RouteInfo.makeHostRoute(parse("192.168.0.66"), parse("192.168.0.1"), WIFI_IFACE); private static final RouteInfo WIFI_ROUTE_V6 = RouteInfo.makeHostRoute(parse("fd00::66"), parse("fd00::"), WIFI_IFACE); private INetworkManagementService mNetManager; private INetworkStatsService mStatsService; Loading