summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author markchien <markchien@google.com> 2019-08-09 21:43:38 +0800
committer Mark Chien <markchien@google.com> 2019-08-13 02:28:41 +0000
commit426311bcb5b3e4e3d342711fdb196531207815b9 (patch)
treea6a8ed62335e551b93e700f0e786fe90a6506061
parent8aa2b1dffd2eac9749116e92f5f9d6a7a62c5365 (diff)
Don't allow upstream if entitlement don't know any downstream
In case tethering donwstream is setup but don't ask EntitlementManager to run provisioning. Cellular upstream should not be allowed if EntilementManager don't have any donwstream record. Bug: 134649258 Test: -build, flash, boot -manual test with carrier SIM Change-Id: I609722c79f0a45a1c2164d39721ef5883e436feb
-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