Simplify unregister logic for Connectivity Diagnostics callbacks.
ConnectivityService is updated to simplify the logic for unregistering ConnectivityDiagnosticsCallback instances. This change removes the given callback from ConnectivityService's data structure. If the callback was not registered with ConnectivityService, it is logged and the function exits; else, the unregister() operation continues. Bug: 150867635 Test: atest FrameworksNetTests Change-Id: I9096969a1bf33da72b117f5bbc88257df805e688
This commit is contained in:
@@ -7853,12 +7853,14 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
ensureRunningOnConnectivityServiceThread();
|
||||
final IBinder iCb = cb.asBinder();
|
||||
|
||||
if (!mConnectivityDiagnosticsCallbacks.containsKey(iCb)) {
|
||||
final ConnectivityDiagnosticsCallbackInfo cbInfo =
|
||||
mConnectivityDiagnosticsCallbacks.remove(iCb);
|
||||
if (cbInfo == null) {
|
||||
if (VDBG) log("Removing diagnostics callback that is not currently registered");
|
||||
return;
|
||||
}
|
||||
|
||||
final NetworkRequestInfo nri = mConnectivityDiagnosticsCallbacks.get(iCb).mRequestInfo;
|
||||
final NetworkRequestInfo nri = cbInfo.mRequestInfo;
|
||||
|
||||
if (uid != nri.mUid) {
|
||||
if (VDBG) loge("Different uid than registrant attempting to unregister cb");
|
||||
@@ -7870,8 +7872,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
// enforceRequestCountLimit().
|
||||
decrementNetworkRequestPerUidCount(nri);
|
||||
|
||||
final ConnectivityDiagnosticsCallbackInfo cbInfo =
|
||||
mConnectivityDiagnosticsCallbacks.remove(iCb);
|
||||
iCb.unlinkToDeath(cbInfo, 0);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user