Skip to content
Snippets Groups Projects
Commit ed972a6f authored by Hansen Kurli's avatar Hansen Kurli
Browse files

Ensure nri is satisfied before returning.

When a network preference is set, the highest priority nri will
be a managed default request that disallows default networking.
In the case where there is no satisfying network,
mNoServiceNetwork is used as the satisfier instead of null.
(see computeNetworkReassignment)

mNoServiceNetwork should not be returned in any public API.
Check for the nri being satisfied before returning the satisfier
to ensure mNoServiceNetwork is not returned.

Fixes: 301222648
Test: atest FrameworksNetTests
Change-Id: I22d67a7e8d0274d8ad4f6123fbedf6d37eed18e7
parent 48c14686
No related branches found
No related tags found
No related merge requests found
......@@ -8021,6 +8021,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
}
}
}
if (!highestPriorityNri.isBeingSatisfied()) return null;
return highestPriorityNri.getSatisfier();
}
 
......
......@@ -10230,9 +10230,8 @@ public class ConnectivityServiceTest {
// request so LOST callback is received.
defaultCallback.expect(LOST, mCellAgent);
// Due to the VPN default request, getActiveNetworkInfo() gets the mNoServiceNetwork
// as the network satisfier which has TYPE_NONE.
// TODO: This should not be TYPE_NONE, see ConnectivityManager#getActiveNetworkInfo
assertActiveNetworkInfo(TYPE_NONE, DetailedState.BLOCKED);
// as the network satisfier.
assertNull(mCm.getActiveNetworkInfo());
} else {
assertActiveNetworkInfo(TYPE_MOBILE, DetailedState.BLOCKED);
}
......@@ -10314,9 +10313,8 @@ public class ConnectivityServiceTest {
// While the VPN is reconnecting on the new network, everything is blocked.
if (expectSetVpnDefaultForUids) {
// Due to the VPN default request, getActiveNetworkInfo() gets the mNoServiceNetwork
// as the network satisfier which has TYPE_NONE.
// TODO: This should not be TYPE_NONE, see ConnectivityManager#getActiveNetworkInfo
assertActiveNetworkInfo(TYPE_NONE, DetailedState.BLOCKED);
// as the network satisfier.
assertNull(mCm.getActiveNetworkInfo());
} else {
assertActiveNetworkInfo(TYPE_WIFI, DetailedState.BLOCKED);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment