From 6f9f854916ca632bb9d7093e5d252b1bc2894c91 Mon Sep 17 00:00:00 2001 From: Andrew Chant Date: Sat, 14 Dec 2019 03:32:04 +0000 Subject: [PATCH] Revert "[NS A26] Move available callbacks out of the rematch computation" This reverts commit be083a195f9cccda717c37e6ab6a55c964d63d3d. Reason for revert: Toggling wifi on/off causes networking to stop working with these four patches applied. Bug: 146230156 Change-Id: I9af7f8b9af1a6279f2b9f1249824da705164c6b5 --- .../android/server/ConnectivityService.java | 39 +++---------------- 1 file changed, 6 insertions(+), 33 deletions(-) diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 3e97d24c29..e2b53655c1 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -6312,34 +6312,12 @@ public class ConnectivityService extends IConnectivityManager.Stub } } - static class RequestReassignment { - @NonNull public final NetworkRequestInfo mRequest; - @Nullable public final NetworkAgentInfo mOldNetwork; - @Nullable public final NetworkAgentInfo mNewNetwork; - RequestReassignment(@NonNull final NetworkRequestInfo request, - @Nullable final NetworkAgentInfo oldNetwork, - @Nullable final NetworkAgentInfo newNetwork) { - mRequest = request; - mOldNetwork = oldNetwork; - mNewNetwork = newNetwork; - } - } - @NonNull private final Set mRematchedNetworks = new ArraySet<>(); - @NonNull private final List mReassignments = new ArrayList<>(); @NonNull Iterable getRematchedNetworks() { return mRematchedNetworks; } - @NonNull Iterable getRequestReassignments() { - return mReassignments; - } - - void addRequestReassignment(@NonNull final RequestReassignment reassignment) { - mReassignments.add(reassignment); - } - void addRematchedNetwork(@NonNull final NetworkBgStatePair network) { mRematchedNetworks.add(network); } @@ -6428,6 +6406,7 @@ public class ConnectivityService extends IConnectivityManager.Stub // Find and migrate to this Network any NetworkRequests for // which this network is now the best. final ArrayList removedRequests = new ArrayList<>(); + final ArrayList addedRequests = new ArrayList<>(); for (final Map.Entry entry : reassignedRequests.entrySet()) { final NetworkRequestInfo nri = entry.getKey(); @@ -6450,8 +6429,7 @@ public class ConnectivityService extends IConnectivityManager.Stub if (!newSatisfier.addRequest(nri.request)) { Slog.wtf(TAG, "BUG: " + newSatisfier.name() + " already has " + nri.request); } - changes.addRequestReassignment(new NetworkReassignment.RequestReassignment( - nri, previousSatisfier, newSatisfier)); + addedRequests.add(nri); // Tell NetworkFactories about the new score, so they can stop // trying to connect if they know they cannot match it. // TODO - this could get expensive if we have a lot of requests for this @@ -6519,6 +6497,10 @@ public class ConnectivityService extends IConnectivityManager.Stub "BUG: %s changed score during rematch: %d -> %d", newNetwork.name(), score, newNetwork.getCurrentScore())); } + + // Notify requested networks are available after the default net is switched, but + // before LegacyTypeTracker sends legacy broadcasts + for (NetworkRequestInfo nri : addedRequests) notifyNetworkAvailable(newNetwork, nri); } /** @@ -6547,15 +6529,6 @@ public class ConnectivityService extends IConnectivityManager.Stub final NetworkAgentInfo newDefaultNetwork = getDefaultNetwork(); - // Notify requested networks are available after the default net is switched, but - // before LegacyTypeTracker sends legacy broadcasts - for (final NetworkReassignment.RequestReassignment event : - changes.getRequestReassignments()) { - if (null != event.mNewNetwork) { - notifyNetworkAvailable(event.mNewNetwork, event.mRequest); - } - } - for (final NetworkReassignment.NetworkBgStatePair event : changes.getRematchedNetworks()) { // Process listen requests and update capabilities if the background state has // changed for this network. For consistency with previous behavior, send onLost