diff options
| author | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-02-09 05:45:49 +0000 |
|---|---|---|
| committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-02-09 05:45:49 +0000 |
| commit | 7a59ea4ca1d0613326befe41d1783fcbb989a977 (patch) | |
| tree | 52f3eb1fe2b606267331739b5ddff38ee41d6a5a | |
| parent | 909a3c9f13b5a96ff23ca0df35a083b3f7490e5f (diff) | |
| parent | ac9ce40d70409a02f5dea8406d490fca6be34aed (diff) | |
Merge "[NS A41] Cut out a function to update NAI info" am: f0be137c05 am: bbbcec376c am: ac9ce40d70
Change-Id: Ie40f6e1428a7d3a98bb2b83bb6ac9f9224aa3de7
| -rw-r--r-- | services/core/java/com/android/server/ConnectivityService.java | 54 |
1 files changed, 27 insertions, 27 deletions
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index caacf13d7bc4..32c21b03be04 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -6665,37 +6665,37 @@ public class ConnectivityService extends IConnectivityManager.Stub final NetworkAgentInfo newSatisfier = entry.getValue(); changes.addRequestReassignment(new NetworkReassignment.RequestReassignment( nri, previousSatisfier, newSatisfier)); - if (newSatisfier != null) { - if (VDBG) log("rematch for " + newSatisfier.name()); - if (previousSatisfier != null) { - if (VDBG || DDBG) { - log(" accepting network in place of " + previousSatisfier.name()); - } - previousSatisfier.removeRequest(nri.request.requestId); - previousSatisfier.lingerRequest(nri.request, now, mLingerDelayMs); - } else { - if (VDBG || DDBG) log(" accepting network in place of null"); - } - newSatisfier.unlingerRequest(nri.request); - if (!newSatisfier.addRequest(nri.request)) { - Slog.wtf(TAG, "BUG: " + newSatisfier.name() + " already has " + nri.request); + updateSatisfiersForRematchRequest(nri, previousSatisfier, newSatisfier, now); + } + } + + private void updateSatisfiersForRematchRequest(@NonNull final NetworkRequestInfo nri, + @Nullable final NetworkAgentInfo previousSatisfier, + @Nullable final NetworkAgentInfo newSatisfier, + final long now) { + if (newSatisfier != null) { + if (VDBG) log("rematch for " + newSatisfier.name()); + if (previousSatisfier != null) { + if (VDBG || DDBG) { + log(" accepting network in place of " + previousSatisfier.name()); } + previousSatisfier.removeRequest(nri.request.requestId); + previousSatisfier.lingerRequest(nri.request, now, mLingerDelayMs); } else { - // If "newNetwork" is listed as satisfying "nri" but no longer satisfies "nri", - // mark it as no longer satisfying "nri". Because networks are processed by - // rematchAllNetworksAndRequests() in descending score order, "currentNetwork" will - // match "newNetwork" before this loop will encounter a "currentNetwork" with higher - // score than "newNetwork" and where "currentNetwork" no longer satisfies "nri". - // This means this code doesn't have to handle the case where "currentNetwork" no - // longer satisfies "nri" when "currentNetwork" does not equal "newNetwork". - if (DBG) { - log("Network " + newNetwork.name() + " stopped satisfying" + - " request " + nri.request.requestId); - } - newNetwork.removeRequest(nri.request.requestId); + if (VDBG || DDBG) log(" accepting network in place of null"); + } + newSatisfier.unlingerRequest(nri.request); + if (!newSatisfier.addRequest(nri.request)) { + Slog.wtf(TAG, "BUG: " + newSatisfier.name() + " already has " + nri.request); + } + } else { + if (DBG) { + log("Network " + previousSatisfier.name() + " stopped satisfying" + + " request " + nri.request.requestId); } - nri.mSatisfier = newSatisfier; + previousSatisfier.removeRequest(nri.request.requestId); } + nri.mSatisfier = newSatisfier; } /** |
