diff options
author | Etan Cohen <etancohen@google.com> | 2018-03-01 18:16:14 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2018-03-01 18:16:14 +0000 |
commit | 554a9c0136e1bb7612ced93fb1ec60bc55484dcb (patch) | |
tree | b73fb9a6650ad478c8f6b5100b6ac36fa114d80f | |
parent | 460c287793551699c5fda2299d8462a6ce2cd745 (diff) | |
parent | a2885417984a0d7b9221f6952786f16016256978 (diff) |
Merge "[AWARE] Clean-up cache on shut-down"
-rw-r--r-- | service/java/com/android/server/wifi/aware/WifiAwareDataPathStateManager.java | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/service/java/com/android/server/wifi/aware/WifiAwareDataPathStateManager.java b/service/java/com/android/server/wifi/aware/WifiAwareDataPathStateManager.java index d90ee939c..947b5b9cb 100644 --- a/service/java/com/android/server/wifi/aware/WifiAwareDataPathStateManager.java +++ b/service/java/com/android/server/wifi/aware/WifiAwareDataPathStateManager.java @@ -64,6 +64,7 @@ import java.net.SocketException; import java.util.Arrays; import java.util.Enumeration; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Objects; @@ -204,6 +205,7 @@ public class WifiAwareDataPathStateManager { */ public void deleteAllInterfaces() { if (VDBG) Log.v(TAG, "deleteAllInterfaces"); + onAwareDownCleanupDataPaths(); if (mMgr.getCapabilities() == null) { Log.e(TAG, "deleteAllInterfaces: capabilities aren't initialized yet!"); @@ -304,7 +306,6 @@ public class WifiAwareDataPathStateManager { + nnri.state); } - mNetworkRequestsCache.remove(networkSpecifier); mAwareMetrics.recordNdpStatus(reason, networkSpecifier.isOutOfBand(), nnri.startTimestamp); } @@ -368,14 +369,6 @@ public class WifiAwareDataPathStateManager { return null; } - if (nnri.state != AwareNetworkRequestInformation.STATE_RESPONDER_WAIT_FOR_REQUEST) { - Log.w(TAG, "onDataPathRequest: request " + networkSpecifier + " is incorrect state=" - + nnri.state); - mMgr.respondToDataPathRequest(false, ndpId, "", null, null, false); - mNetworkRequestsCache.remove(networkSpecifier); - return null; - } - nnri.interfaceName = selectInterfaceForRequest(nnri); if (nnri.interfaceName == null) { Log.w(TAG, @@ -615,15 +608,17 @@ public class WifiAwareDataPathStateManager { } /** - * Called whenever Aware comes down. Clean up all pending and up network requeests and agents. + * Called whenever Aware comes down. Clean up all pending and up network requests and agents. */ public void onAwareDownCleanupDataPaths() { if (VDBG) Log.v(TAG, "onAwareDownCleanupDataPaths"); - for (AwareNetworkRequestInformation nnri : mNetworkRequestsCache.values()) { - tearDownInterfaceIfPossible(nnri); + Iterator<Map.Entry<WifiAwareNetworkSpecifier, AwareNetworkRequestInformation>> it = + mNetworkRequestsCache.entrySet().iterator(); + while (it.hasNext()) { + tearDownInterfaceIfPossible(it.next().getValue()); + it.remove(); } - mNetworkRequestsCache.clear(); } /** |