Create a new API to make a set of UIDs use only VPN by default
Create a new API - setVpnNetworkPreference() for the caller to
set VPN as the preference network.
VPN will be disconnected when its underlying network is gone.
To prevent packets going through an underlying network when the
underlying network is back but VPN is not connected yet, set VPN
as the only preferred network for specific apps.
Bug: 231749077
Test: 1. atest FrameworksNetTests
2. Create a test app to register default network and check if
the VPN is the only default network for the test app.
Change-Id: Iabcd38e2fec2aefedbf78d20e338f222d83a9e7f
This commit is contained in:
@@ -402,4 +402,27 @@ public class UidRangeUtilsTest {
|
||||
expected.add(uids20_24);
|
||||
assertEquals(expected, UidRangeUtils.convertArrayToUidRange(input));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSortRangesByStartUid() throws Exception {
|
||||
final UidRange uid1 = new UidRange(100, 110);
|
||||
final UidRange uid2 = new UidRange(120, 130);
|
||||
final UidRange[] unsortedRanges = new UidRange[] {uid2, uid1};
|
||||
final UidRange[] sortedRanges = UidRangeUtils.sortRangesByStartUid(unsortedRanges);
|
||||
assertEquals(uid1, sortedRanges[0]);
|
||||
assertEquals(uid2, sortedRanges[1]);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSortedRangesContainOverlap() throws Exception {
|
||||
final UidRange uid1 = new UidRange(100, 110);
|
||||
final UidRange uid2 = new UidRange(109, 120);
|
||||
final UidRange uid3 = new UidRange(120, 130);
|
||||
final UidRange[] overlapRanges1 = new UidRange[] {uid1, uid2};
|
||||
final UidRange[] overlapRanges2 = new UidRange[] {uid2, uid3};
|
||||
final UidRange[] notOverlapRanges = new UidRange[] {uid1, uid3};
|
||||
assertTrue(UidRangeUtils.sortedRangesContainOverlap(overlapRanges1));
|
||||
assertTrue(UidRangeUtils.sortedRangesContainOverlap(overlapRanges2));
|
||||
assertFalse(UidRangeUtils.sortedRangesContainOverlap(notOverlapRanges));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user