summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Cody Kesting <ckesting@google.com> 2020-03-30 12:43:49 -0700
committer Cody Kesting <ckesting@google.com> 2020-03-30 17:15:09 -0700
commit982013743bf47366f92564dfb3870a1076ba881c (patch)
treedfbca6b63a8da7c63dd279624373be15246b184d
parent95a98c2efdcf46c70df8285c5492324ede5a1a52 (diff)
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 Merged-In: I9096969a1bf33da72b117f5bbc88257df805e688 (cherry picked from commit f047313940b5af49a3b0e72a5f2d94fc1dda9c9d)
-rw-r--r--services/core/java/com/android/server/ConnectivityService.java8
1 files changed, 4 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index e3f574f36664..2e5a844c88fa 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -7892,12 +7892,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");
@@ -7909,8 +7911,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
// enforceRequestCountLimit().
decrementNetworkRequestPerUidCount(nri);
- final ConnectivityDiagnosticsCallbackInfo cbInfo =
- mConnectivityDiagnosticsCallbacks.remove(iCb);
iCb.unlinkToDeath(cbInfo, 0);
}