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
|
// This checks that the passed capabilities either do not request a
|
||||||
// specific SSID/SignalStrength, or the calling app has permission to do so.
|
// specific SSID/SignalStrength, or the calling app has permission to do so.
|
||||||
private void ensureSufficientPermissionsForRequest(NetworkCapabilities nc,
|
private void ensureSufficientPermissionsForRequest(NetworkCapabilities nc,
|
||||||
@@ -6212,7 +6205,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
nai.onSignalStrengthThresholdsUpdated(thresholdsArray);
|
nai.onSignalStrengthThresholdsUpdated(thresholdsArray);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ensureValidNetworkSpecifier(NetworkCapabilities nc) {
|
private static void ensureValidNetworkSpecifier(NetworkCapabilities nc) {
|
||||||
if (nc == null) {
|
if (nc == null) {
|
||||||
return;
|
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);
|
ensureValidNetworkSpecifier(nc);
|
||||||
if (nc.isPrivateDnsBroken()) {
|
if (nc.isPrivateDnsBroken()) {
|
||||||
throw new IllegalArgumentException("Can't request broken private DNS");
|
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.
|
// TODO: Set the mini sdk to 31 and remove @TargetApi annotation when b/205923322 is addressed.
|
||||||
@TargetApi(Build.VERSION_CODES.S)
|
@TargetApi(Build.VERSION_CODES.S)
|
||||||
private boolean isTargetSdkAtleast(int version, int callingUid,
|
private boolean isTargetSdkAtleast(int version, int callingUid,
|
||||||
@@ -6327,7 +6328,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
if (timeoutMs < 0) {
|
if (timeoutMs < 0) {
|
||||||
throw new IllegalArgumentException("Bad timeout specified");
|
throw new IllegalArgumentException("Bad timeout specified");
|
||||||
}
|
}
|
||||||
ensureValid(networkCapabilities);
|
|
||||||
|
|
||||||
final NetworkRequest networkRequest = new NetworkRequest(networkCapabilities, legacyType,
|
final NetworkRequest networkRequest = new NetworkRequest(networkCapabilities, legacyType,
|
||||||
nextNetworkRequestId(), reqType);
|
nextNetworkRequestId(), reqType);
|
||||||
@@ -6469,7 +6469,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
Binder.getCallingPid(), callingUid, callingPackageName);
|
Binder.getCallingPid(), callingUid, callingPackageName);
|
||||||
restrictRequestUidsForCallerAndSetRequestorInfo(networkCapabilities,
|
restrictRequestUidsForCallerAndSetRequestorInfo(networkCapabilities,
|
||||||
callingUid, callingPackageName);
|
callingUid, callingPackageName);
|
||||||
ensureValid(networkCapabilities);
|
|
||||||
|
|
||||||
NetworkRequest networkRequest = new NetworkRequest(networkCapabilities, TYPE_NONE,
|
NetworkRequest networkRequest = new NetworkRequest(networkCapabilities, TYPE_NONE,
|
||||||
nextNetworkRequestId(), NetworkRequest.Type.REQUEST);
|
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
|
// There is no need to do this for requests because an app without CHANGE_NETWORK_STATE
|
||||||
// can't request networks.
|
// can't request networks.
|
||||||
restrictBackgroundRequestForCaller(nc);
|
restrictBackgroundRequestForCaller(nc);
|
||||||
ensureValid(nc);
|
ensureListenableCapabilities(nc);
|
||||||
|
|
||||||
NetworkRequest networkRequest = new NetworkRequest(nc, TYPE_NONE, nextNetworkRequestId(),
|
NetworkRequest networkRequest = new NetworkRequest(nc, TYPE_NONE, nextNetworkRequestId(),
|
||||||
NetworkRequest.Type.LISTEN);
|
NetworkRequest.Type.LISTEN);
|
||||||
@@ -6558,7 +6557,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
if (!hasWifiNetworkListenPermission(networkCapabilities)) {
|
if (!hasWifiNetworkListenPermission(networkCapabilities)) {
|
||||||
enforceAccessPermission();
|
enforceAccessPermission();
|
||||||
}
|
}
|
||||||
ensureValid(networkCapabilities);
|
ensureListenableCapabilities(networkCapabilities);
|
||||||
ensureSufficientPermissionsForRequest(networkCapabilities,
|
ensureSufficientPermissionsForRequest(networkCapabilities,
|
||||||
Binder.getCallingPid(), callingUid, callingPackageName);
|
Binder.getCallingPid(), callingUid, callingPackageName);
|
||||||
final NetworkCapabilities nc = new NetworkCapabilities(networkCapabilities);
|
final NetworkCapabilities nc = new NetworkCapabilities(networkCapabilities);
|
||||||
|
|||||||
Reference in New Issue
Block a user