Merge "Fix a bug where adding a user doesn't update network allow lists"

This commit is contained in:
Treehugger Robot 2023-01-23 14:34:53 +00:00 • committed by Gerrit Code Review
commit 55d65ad71b
2 changed files with 34 additions and 3 deletions

View file

@ -6245,9 +6245,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
if (mOemNetworkPreferences.getNetworkPreferences().size() > 0) {
handleSetOemNetworkPreference(mOemNetworkPreferences, null);
}
if (!mProfileNetworkPreferences.isEmpty()) {
updateProfileAllowedNetworks();
}
updateProfileAllowedNetworks();
}
private void onUserRemoved(@NonNull final UserHandle user) {

View file

@ -15759,6 +15759,39 @@ public class ConnectivityServiceTest {
PREFERENCE_ORDER_PROFILE));
}
@Test
public void testProfileNetworkPreferenceBlocking_addUser() throws Exception {
final InOrder inOrder = inOrder(mMockNetd);
doReturn(asList(PRIMARY_USER_HANDLE)).when(mUserManager).getUserHandles(anyBoolean());
// Only one network
mCellAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR);
mCellAgent.connect(true);
// Verify uid ranges 0~99999 are allowed
final ArraySet<UidRange> allowedRanges = new ArraySet<>();
allowedRanges.add(PRIMARY_UIDRANGE);
final NativeUidRangeConfig config1User = new NativeUidRangeConfig(
mCellAgent.getNetwork().netId,
toUidRangeStableParcels(allowedRanges),
0 /* subPriority */);
inOrder.verify(mMockNetd).setNetworkAllowlist(new NativeUidRangeConfig[] { config1User });
doReturn(asList(PRIMARY_USER_HANDLE, SECONDARY_USER_HANDLE))
.when(mUserManager).getUserHandles(anyBoolean());
final Intent addedIntent = new Intent(ACTION_USER_ADDED);
addedIntent.putExtra(Intent.EXTRA_USER, UserHandle.of(SECONDARY_USER));
processBroadcast(addedIntent);
// Make sure the allow list has been updated.
allowedRanges.add(UidRange.createForUser(SECONDARY_USER_HANDLE));
final NativeUidRangeConfig config2Users = new NativeUidRangeConfig(
mCellAgent.getNetwork().netId,
toUidRangeStableParcels(allowedRanges),
0 /* subPriority */);
inOrder.verify(mMockNetd).setNetworkAllowlist(new NativeUidRangeConfig[] { config2Users });
}
@Test
public void testProfileNetworkPreferenceBlocking_changePreference() throws Exception {
final InOrder inOrder = inOrder(mMockNetd);