summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChiachang Wang <chiachangwang@google.com>2022-03-07 07:46:21 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-03-07 07:46:21 +0000
commitb8cda9d7e0e35864dfb9a797a81d32ac2683b00d (patch)
tree28f2e82ebd010967e82e299cc5103b0c6ccc57dc
parent56c37e577884c9013f3739b543ac8c9c3f05f52e (diff)
parent4734b5810b5fa963fb4acb2b5b1280f416eb35f9 (diff)
downloadbase-b8cda9d7e0e35864dfb9a797a81d32ac2683b00d.tar.gz
Merge "Set local routes exclusion in the networkAgent" am: 4734b5810b
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1978095 Change-Id: I03eaf7cf1ffc7237f267a85d2d1a25d93afe3896
-rw-r--r--core/java/com/android/internal/net/VpnConfig.java7
-rw-r--r--services/core/java/com/android/server/connectivity/Vpn.java2
2 files changed, 8 insertions, 1 deletions
diff --git a/core/java/com/android/internal/net/VpnConfig.java b/core/java/com/android/internal/net/VpnConfig.java
index f174498c0d0d..0da26fb11607 100644
--- a/core/java/com/android/internal/net/VpnConfig.java
+++ b/core/java/com/android/internal/net/VpnConfig.java
@@ -106,6 +106,7 @@ public class VpnConfig implements Parcelable {
public boolean allowIPv6;
public boolean isMetered = true;
public boolean requiresInternetValidation = false;
+ public boolean excludeLocalRoutes = false;
public Network[] underlyingNetworks;
public ProxyInfo proxyInfo;
@@ -133,6 +134,7 @@ public class VpnConfig implements Parcelable {
allowIPv6 = other.allowIPv6;
isMetered = other.isMetered;
requiresInternetValidation = other.requiresInternetValidation;
+ excludeLocalRoutes = other.excludeLocalRoutes;
underlyingNetworks = other.underlyingNetworks != null ? Arrays.copyOf(
other.underlyingNetworks, other.underlyingNetworks.length) : null;
proxyInfo = other.proxyInfo;
@@ -192,6 +194,7 @@ public class VpnConfig implements Parcelable {
out.writeInt(allowIPv6 ? 1 : 0);
out.writeInt(isMetered ? 1 : 0);
out.writeInt(requiresInternetValidation ? 1 : 0);
+ out.writeInt(excludeLocalRoutes ? 1 : 0);
out.writeTypedArray(underlyingNetworks, flags);
out.writeParcelable(proxyInfo, flags);
}
@@ -220,6 +223,7 @@ public class VpnConfig implements Parcelable {
config.allowIPv6 = in.readInt() != 0;
config.isMetered = in.readInt() != 0;
config.requiresInternetValidation = in.readInt() != 0;
+ config.excludeLocalRoutes = in.readInt() != 0;
config.underlyingNetworks = in.createTypedArray(Network.CREATOR);
config.proxyInfo = in.readParcelable(null);
return config;
@@ -253,7 +257,8 @@ public class VpnConfig implements Parcelable {
.append(", allowIPv4=").append(allowIPv4)
.append(", allowIPv6=").append(allowIPv6)
.append(", isMetered=").append(isMetered)
- .append(", requiresInternetValidation").append(requiresInternetValidation)
+ .append(", requiresInternetValidation=").append(requiresInternetValidation)
+ .append(", excludeLocalRoutes=").append(excludeLocalRoutes)
.append(", underlyingNetworks=").append(Arrays.toString(underlyingNetworks))
.append(", proxyInfo=").append(proxyInfo)
.append("}")
diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java
index 682f0dfe067c..c0df095c3289 100644
--- a/services/core/java/com/android/server/connectivity/Vpn.java
+++ b/services/core/java/com/android/server/connectivity/Vpn.java
@@ -1320,6 +1320,7 @@ public class Vpn {
.setLegacyTypeName("VPN")
.setBypassableVpn(mConfig.allowBypass && !mLockdown)
.setVpnRequiresValidation(mConfig.requiresInternetValidation)
+ .setLocalRoutesExcludedForVpn(mConfig.excludeLocalRoutes)
.build();
capsBuilder.setOwnerUid(mOwnerUID);
@@ -3386,6 +3387,7 @@ public class Vpn {
mConfig.startTime = SystemClock.elapsedRealtime();
mConfig.proxyInfo = profile.proxy;
mConfig.requiresInternetValidation = profile.requiresInternetValidation;
+ mConfig.excludeLocalRoutes = profile.excludeLocalRoutes;
switch (profile.type) {
case VpnProfile.TYPE_IKEV2_IPSEC_USER_PASS: