Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 98201374 authored by Cody Kesting's avatar Cody Kesting
Browse files

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 f0473139)
parent 95a98c2e
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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);
    }