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

Commit d3ed6f01 authored by Chalard Jean's avatar Chalard Jean Committed by Automerger Merge Worker
Browse files

Merge changes Ide2567b2,I0ee0ce92,Iac3f55af am: 45d586c6 am: 6d2b11cf am:...

Merge changes Ide2567b2,I0ee0ce92,Iac3f55af am: 45d586c6 am: 6d2b11cf am: 4bd0ba09 am: 74aa1e54

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1612257

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ib57bf73e7504bb30c04c341ad949b781a635a8eb
parents db651f63 74aa1e54
Loading
Loading
Loading
Loading
+35 −9
Original line number Original line Diff line number Diff line
@@ -3820,7 +3820,24 @@ public class ConnectivityService extends IConnectivityManager.Stub
                removeListenRequestFromNetworks(req);
                removeListenRequestFromNetworks(req);
            }
            }
        }
        }
        mDefaultNetworkRequests.remove(nri);
        if (mDefaultNetworkRequests.remove(nri)) {
            // If this request was one of the defaults, then the UID rules need to be updated
            // WARNING : if the app(s) for which this network request is the default are doing
            // traffic, this will kill their connected sockets, even if an equivalent request
            // is going to be reinstated right away ; unconnected traffic will go on the default
            // until the new default is set, which will happen very soon.
            // TODO : The only way out of this is to diff old defaults and new defaults, and only
            // remove ranges for those requests that won't have a replacement
            final NetworkAgentInfo satisfier = nri.getSatisfier();
            if (null != satisfier) {
                try {
                    mNetd.networkRemoveUidRanges(satisfier.network.getNetId(),
                            toUidRangeStableParcels(nri.getUids()));
                } catch (RemoteException e) {
                    loge("Exception setting network preference default network", e);
                }
            }
        }
        mNetworkRequestCounter.decrementCount(nri.mUid);
        mNetworkRequestCounter.decrementCount(nri.mUid);
        mNetworkRequestInfoLogs.log("RELEASE " + nri);
        mNetworkRequestInfoLogs.log("RELEASE " + nri);


@@ -5226,11 +5243,20 @@ public class ConnectivityService extends IConnectivityManager.Stub
            ensureAllNetworkRequestsHaveType(r);
            ensureAllNetworkRequestsHaveType(r);
            mRequests = initializeRequests(r);
            mRequests = initializeRequests(r);
            mNetworkRequestForCallback = nri.getNetworkRequestForCallback();
            mNetworkRequestForCallback = nri.getNetworkRequestForCallback();
            // Note here that the satisfier may have corresponded to an old request, that
            // this code doesn't try to take over. While it is a small discrepancy in the
            // structure of these requests, it will be fixed by the next rematch and it's
            // not as bad as having an NRI not storing its real satisfier.
            // Fixing this discrepancy would require figuring out in the copying code what
            // is the new request satisfied by this, which is a bit complex and not very
            // useful as no code is using it until rematch fixes it.
            mSatisfier = nri.mSatisfier;
            mMessenger = nri.mMessenger;
            mMessenger = nri.mMessenger;
            mBinder = nri.mBinder;
            mBinder = nri.mBinder;
            mPid = nri.mPid;
            mPid = nri.mPid;
            mUid = nri.mUid;
            mUid = nri.mUid;
            mPendingIntent = nri.mPendingIntent;
            mPendingIntent = nri.mPendingIntent;
            mNetworkRequestCounter.incrementCountOrThrow(mUid);
            mCallingAttributionTag = nri.mCallingAttributionTag;
            mCallingAttributionTag = nri.mCallingAttributionTag;
        }
        }


@@ -7190,13 +7216,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
    private static class NetworkReassignment {
    private static class NetworkReassignment {
        static class RequestReassignment {
        static class RequestReassignment {
            @NonNull public final NetworkRequestInfo mNetworkRequestInfo;
            @NonNull public final NetworkRequestInfo mNetworkRequestInfo;
            @NonNull public final NetworkRequest mOldNetworkRequest;
            @Nullable public final NetworkRequest mOldNetworkRequest;
            @NonNull public final NetworkRequest mNewNetworkRequest;
            @Nullable public final NetworkRequest mNewNetworkRequest;
            @Nullable public final NetworkAgentInfo mOldNetwork;
            @Nullable public final NetworkAgentInfo mOldNetwork;
            @Nullable public final NetworkAgentInfo mNewNetwork;
            @Nullable public final NetworkAgentInfo mNewNetwork;
            RequestReassignment(@NonNull final NetworkRequestInfo networkRequestInfo,
            RequestReassignment(@NonNull final NetworkRequestInfo networkRequestInfo,
                    @NonNull final NetworkRequest oldNetworkRequest,
                    @Nullable final NetworkRequest oldNetworkRequest,
                    @NonNull final NetworkRequest newNetworkRequest,
                    @Nullable final NetworkRequest newNetworkRequest,
                    @Nullable final NetworkAgentInfo oldNetwork,
                    @Nullable final NetworkAgentInfo oldNetwork,
                    @Nullable final NetworkAgentInfo newNetwork) {
                    @Nullable final NetworkAgentInfo newNetwork) {
                mNetworkRequestInfo = networkRequestInfo;
                mNetworkRequestInfo = networkRequestInfo;
@@ -7269,14 +7295,14 @@ public class ConnectivityService extends IConnectivityManager.Stub
    }
    }


    private void updateSatisfiersForRematchRequest(@NonNull final NetworkRequestInfo nri,
    private void updateSatisfiersForRematchRequest(@NonNull final NetworkRequestInfo nri,
            @NonNull final NetworkRequest previousRequest,
            @Nullable final NetworkRequest previousRequest,
            @NonNull final NetworkRequest newRequest,
            @Nullable final NetworkRequest newRequest,
            @Nullable final NetworkAgentInfo previousSatisfier,
            @Nullable final NetworkAgentInfo previousSatisfier,
            @Nullable final NetworkAgentInfo newSatisfier,
            @Nullable final NetworkAgentInfo newSatisfier,
            final long now) {
            final long now) {
        if (null != newSatisfier && mNoServiceNetwork != newSatisfier) {
        if (null != newSatisfier && mNoServiceNetwork != newSatisfier) {
            if (VDBG) log("rematch for " + newSatisfier.toShortString());
            if (VDBG) log("rematch for " + newSatisfier.toShortString());
            if (null != previousSatisfier && mNoServiceNetwork != previousSatisfier) {
            if (null != previousRequest && null != previousSatisfier) {
                if (VDBG || DDBG) {
                if (VDBG || DDBG) {
                    log("   accepting network in place of " + previousSatisfier.toShortString());
                    log("   accepting network in place of " + previousSatisfier.toShortString());
                }
                }
@@ -7299,7 +7325,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
                Log.wtf(TAG, "BUG: " + newSatisfier.toShortString() + " already has "
                Log.wtf(TAG, "BUG: " + newSatisfier.toShortString() + " already has "
                        + newRequest);
                        + newRequest);
            }
            }
        } else if (null != previousSatisfier) {
        } else if (null != previousRequest && null != previousSatisfier) {
            if (DBG) {
            if (DBG) {
                log("Network " + previousSatisfier.toShortString() + " stopped satisfying"
                log("Network " + previousSatisfier.toShortString() + " stopped satisfying"
                        + " request " + previousRequest.requestId);
                        + " request " + previousRequest.requestId);