Introduce ensureListenableCapabilities
Renamed from ensureValid, this is an easier to understand name. It is also a lot clearer when requestable capabilities also have to be listenable. Also move the 2 functions together. Test: FrameworksNetTests Change-Id: I685f924a3720846d740837a4a0fee3d88a26725a
This commit is contained in:
@@ -6148,13 +6148,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
}
|
||||
}
|
||||
|
||||
private void ensureRequestableCapabilities(NetworkCapabilities networkCapabilities) {
|
||||
final String badCapability = networkCapabilities.describeFirstNonRequestableCapability();
|
||||
if (badCapability != null) {
|
||||
throw new IllegalArgumentException("Cannot request network with " + badCapability);
|
||||
}
|
||||
}
|
||||
|
||||
// This checks that the passed capabilities either do not request a
|
||||
// specific SSID/SignalStrength, or the calling app has permission to do so.
|
||||
private void ensureSufficientPermissionsForRequest(NetworkCapabilities nc,
|
||||
@@ -6212,7 +6205,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
nai.onSignalStrengthThresholdsUpdated(thresholdsArray);
|
||||
}
|
||||
|
||||
private void ensureValidNetworkSpecifier(NetworkCapabilities nc) {
|
||||
private static void ensureValidNetworkSpecifier(NetworkCapabilities nc) {
|
||||
if (nc == null) {
|
||||
return;
|
||||
}
|
||||
@@ -6225,7 +6218,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
}
|
||||
}
|
||||
|
||||
private void ensureValid(NetworkCapabilities nc) {
|
||||
private static void ensureListenableCapabilities(@NonNull final NetworkCapabilities nc) {
|
||||
ensureValidNetworkSpecifier(nc);
|
||||
if (nc.isPrivateDnsBroken()) {
|
||||
throw new IllegalArgumentException("Can't request broken private DNS");
|
||||
@@ -6235,6 +6228,14 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
}
|
||||
}
|
||||
|
||||
private void ensureRequestableCapabilities(@NonNull final NetworkCapabilities nc) {
|
||||
ensureListenableCapabilities(nc);
|
||||
final String badCapability = nc.describeFirstNonRequestableCapability();
|
||||
if (badCapability != null) {
|
||||
throw new IllegalArgumentException("Cannot request network with " + badCapability);
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Set the mini sdk to 31 and remove @TargetApi annotation when b/205923322 is addressed.
|
||||
@TargetApi(Build.VERSION_CODES.S)
|
||||
private boolean isTargetSdkAtleast(int version, int callingUid,
|
||||
@@ -6327,7 +6328,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
if (timeoutMs < 0) {
|
||||
throw new IllegalArgumentException("Bad timeout specified");
|
||||
}
|
||||
ensureValid(networkCapabilities);
|
||||
|
||||
final NetworkRequest networkRequest = new NetworkRequest(networkCapabilities, legacyType,
|
||||
nextNetworkRequestId(), reqType);
|
||||
@@ -6469,7 +6469,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
Binder.getCallingPid(), callingUid, callingPackageName);
|
||||
restrictRequestUidsForCallerAndSetRequestorInfo(networkCapabilities,
|
||||
callingUid, callingPackageName);
|
||||
ensureValid(networkCapabilities);
|
||||
|
||||
NetworkRequest networkRequest = new NetworkRequest(networkCapabilities, TYPE_NONE,
|
||||
nextNetworkRequestId(), NetworkRequest.Type.REQUEST);
|
||||
@@ -6536,7 +6535,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
// There is no need to do this for requests because an app without CHANGE_NETWORK_STATE
|
||||
// can't request networks.
|
||||
restrictBackgroundRequestForCaller(nc);
|
||||
ensureValid(nc);
|
||||
ensureListenableCapabilities(nc);
|
||||
|
||||
NetworkRequest networkRequest = new NetworkRequest(nc, TYPE_NONE, nextNetworkRequestId(),
|
||||
NetworkRequest.Type.LISTEN);
|
||||
@@ -6558,7 +6557,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
if (!hasWifiNetworkListenPermission(networkCapabilities)) {
|
||||
enforceAccessPermission();
|
||||
}
|
||||
ensureValid(networkCapabilities);
|
||||
ensureListenableCapabilities(networkCapabilities);
|
||||
ensureSufficientPermissionsForRequest(networkCapabilities,
|
||||
Binder.getCallingPid(), callingUid, callingPackageName);
|
||||
final NetworkCapabilities nc = new NetworkCapabilities(networkCapabilities);
|
||||
|
||||
Reference in New Issue
Block a user