summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Mark Chien <markchien@google.com> 2019-08-13 02:49:09 -0700
committer android-build-merger <android-build-merger@google.com> 2019-08-13 02:49:09 -0700
commit538bc0fe4f94c4f1d1237f464c0a956af4e06227 (patch)
treed6497cc3e5c4162baa7d3d53ce9955829b9fc852
parent332f0a4ae8493d6fb56e5f5c91a993f9f404de44 (diff)
parent161814ffb14e69c5edf3a2ff83b4ab00da9ab6d8 (diff)
Merge "Don't allow upstream if entitlement don't know any downstream"
am: 161814ffb1 Change-Id: Ibac99a20b470b48597859fe737732f3c6f491805
-rw-r--r--services/core/java/com/android/server/connectivity/tethering/EntitlementManager.java6
-rw-r--r--tests/net/java/com/android/server/connectivity/tethering/EntitlementManagerTest.java7
2 files changed, 13 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/connectivity/tethering/EntitlementManager.java b/services/core/java/com/android/server/connectivity/tethering/EntitlementManager.java
index 836f1e64aa9c..f952bcef5606 100644
--- a/services/core/java/com/android/server/connectivity/tethering/EntitlementManager.java
+++ b/services/core/java/com/android/server/connectivity/tethering/EntitlementManager.java
@@ -161,6 +161,12 @@ public class EntitlementManager {
* Check if cellular upstream is permitted.
*/
public boolean isCellularUpstreamPermitted() {
+ // If provisioning is required and EntitlementManager don't know any downstream,
+ // cellular upstream should not be allowed.
+ final TetheringConfiguration config = mFetcher.fetchTetheringConfiguration();
+ if (mCurrentTethers.size() == 0 && isTetherProvisioningRequired(config)) {
+ return false;
+ }
return mCellularUpstreamPermitted;
}
diff --git a/tests/net/java/com/android/server/connectivity/tethering/EntitlementManagerTest.java b/tests/net/java/com/android/server/connectivity/tethering/EntitlementManagerTest.java
index 2b2e8a72ab04..5217e26a40ef 100644
--- a/tests/net/java/com/android/server/connectivity/tethering/EntitlementManagerTest.java
+++ b/tests/net/java/com/android/server/connectivity/tethering/EntitlementManagerTest.java
@@ -406,6 +406,13 @@ public final class EntitlementManagerTest {
}
@Test
+ public void verifyPermissionWhenProvisioningNotStarted() {
+ assertTrue(mEnMgr.isCellularUpstreamPermitted());
+ setupForRequiredProvisioning();
+ assertFalse(mEnMgr.isCellularUpstreamPermitted());
+ }
+
+ @Test
public void testRunTetherProvisioning() {
setupForRequiredProvisioning();
// 1. start ui provisioning, upstream is mobile