diff options
author | Chiachang Wang <chiachangwang@google.com> | 2022-03-07 07:46:21 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2022-03-07 07:46:21 +0000 |
commit | b8cda9d7e0e35864dfb9a797a81d32ac2683b00d (patch) | |
tree | 28f2e82ebd010967e82e299cc5103b0c6ccc57dc | |
parent | 56c37e577884c9013f3739b543ac8c9c3f05f52e (diff) | |
parent | 4734b5810b5fa963fb4acb2b5b1280f416eb35f9 (diff) | |
download | base-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.java | 7 | ||||
-rw-r--r-- | services/core/java/com/android/server/connectivity/Vpn.java | 2 |
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: |