From b2053114562830369a9d060e79f0c9eff4be27e7 Mon Sep 17 00:00:00 2001 From: Lorenzo Colitti Date: Tue, 20 Jan 2015 13:40:58 +0900 Subject: [PATCH] Use the proper IpPrefix and LinkAddress constructors in VPN code. This simplifies the code, and also makes it possible for users to point multicast routes at the VPN. The LinkAddress objects we were previously using to construct the RouteInfo do not accept these, but IpPrefix objects do. Bug: 18485968 Change-Id: Ie914a2eb359b78161810ee473df725059f944f4e --- core/java/android/net/VpnService.java | 2 +- core/java/com/android/internal/net/VpnConfig.java | 9 +++------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/core/java/android/net/VpnService.java b/core/java/android/net/VpnService.java index f6b697853f517..c26af06d9a515 100644 --- a/core/java/android/net/VpnService.java +++ b/core/java/android/net/VpnService.java @@ -501,7 +501,7 @@ public class VpnService extends Service { } } } - mRoutes.add(new RouteInfo(new LinkAddress(address, prefixLength), null)); + mRoutes.add(new RouteInfo(new IpPrefix(address, prefixLength), null)); mConfig.updateAllowedFamilies(address); return this; } diff --git a/core/java/com/android/internal/net/VpnConfig.java b/core/java/com/android/internal/net/VpnConfig.java index c5d9db486f982..921f1fed68493 100644 --- a/core/java/com/android/internal/net/VpnConfig.java +++ b/core/java/com/android/internal/net/VpnConfig.java @@ -24,6 +24,7 @@ import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.ResolveInfo; import android.content.res.Resources; +import android.net.IpPrefix; import android.net.LinkAddress; import android.net.Network; import android.net.RouteInfo; @@ -117,9 +118,7 @@ public class VpnConfig implements Parcelable { String[] routes = routesStr.trim().split(" "); for (String route : routes) { //each route is ip/prefix - String[] split = route.split("/"); - RouteInfo info = new RouteInfo(new LinkAddress - (InetAddress.parseNumericAddress(split[0]), Integer.parseInt(split[1])), null); + RouteInfo info = new RouteInfo(new IpPrefix(route), null); this.routes.add(info); updateAllowedFamilies(info.getDestination().getAddress()); } @@ -132,9 +131,7 @@ public class VpnConfig implements Parcelable { String[] addresses = addressesStr.trim().split(" "); for (String address : addresses) { //each address is ip/prefix - String[] split = address.split("/"); - LinkAddress addr = new LinkAddress(InetAddress.parseNumericAddress(split[0]), - Integer.parseInt(split[1])); + LinkAddress addr = new LinkAddress(address); this.addresses.add(addr); updateAllowedFamilies(addr.getAddress()); }