diff options
author | Etan Cohen <etancohen@google.com> | 2018-03-01 23:34:49 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2018-03-01 23:34:49 +0000 |
commit | 90036ff1add9d175b1482e9e51eb7d1b5bf63a8b (patch) | |
tree | 33510c2b2eb5e6615d674c712f3e78a4efbdfe45 /service | |
parent | 1aaa3fc2e15da100da40bb4801cc24f372499b9a (diff) | |
parent | c333de2dddeb2d765d98239d17684dd08942948b (diff) |
Merge "[AWARE] Multiple identical NDP using in-band and oob"
Diffstat (limited to 'service')
-rw-r--r-- | service/java/com/android/server/wifi/aware/WifiAwareDataPathStateManager.java | 45 |
1 files changed, 19 insertions, 26 deletions
diff --git a/service/java/com/android/server/wifi/aware/WifiAwareDataPathStateManager.java b/service/java/com/android/server/wifi/aware/WifiAwareDataPathStateManager.java index 947b5b9cb..f2d8e3b25 100644 --- a/service/java/com/android/server/wifi/aware/WifiAwareDataPathStateManager.java +++ b/service/java/com/android/server/wifi/aware/WifiAwareDataPathStateManager.java @@ -67,7 +67,6 @@ import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; @@ -163,9 +162,14 @@ public class WifiAwareDataPathStateManager { private Map.Entry<WifiAwareNetworkSpecifier, AwareNetworkRequestInformation> getNetworkRequestByCanonicalDescriptor(CanonicalConnectionInfo cci) { + if (VDBG) Log.v(TAG, "getNetworkRequestByCanonicalDescriptor: cci=" + cci); for (Map.Entry<WifiAwareNetworkSpecifier, AwareNetworkRequestInformation> entry : mNetworkRequestsCache.entrySet()) { - if (entry.getValue().getCanonicalDescriptor().equals(cci)) { + if (VDBG) { + Log.v(TAG, "getNetworkRequestByCanonicalDescriptor: entry=" + entry.getValue() + + " --> cci=" + entry.getValue().getCanonicalDescriptor()); + } + if (entry.getValue().getCanonicalDescriptor().matches(cci)) { return entry; } } @@ -381,6 +385,10 @@ public class WifiAwareDataPathStateManager { nnri.state = AwareNetworkRequestInformation.STATE_RESPONDER_WAIT_FOR_RESPOND_RESPONSE; nnri.ndpId = ndpId; nnri.startTimestamp = SystemClock.elapsedRealtime(); + if (nnri.peerDiscoveryMac == null) { + // the "accept anyone" request is now specific + nnri.peerDiscoveryMac = mac; + } mMgr.respondToDataPathRequest(true, ndpId, nnri.interfaceName, nnri.networkSpecifier.pmk, nnri.networkSpecifier.passphrase, nnri.networkSpecifier.isOutOfBand()); @@ -1248,36 +1256,21 @@ public class WifiAwareDataPathStateManager { public final int sessionId; public final String passphrase; - @Override - public int hashCode() { - return Objects.hash(Arrays.hashCode(peerDiscoveryMac), Arrays.hashCode(pmk), sessionId, - passphrase); - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - - if (!(obj instanceof CanonicalConnectionInfo)) { - return false; - } - - CanonicalConnectionInfo lhs = (CanonicalConnectionInfo) obj; - - return Arrays.equals(peerDiscoveryMac, lhs.peerDiscoveryMac) && Arrays.equals(pmk, - lhs.pmk) && TextUtils.equals(passphrase, lhs.passphrase) - && sessionId == lhs.sessionId; + public boolean matches(CanonicalConnectionInfo other) { + return (other.peerDiscoveryMac == null || Arrays + .equals(peerDiscoveryMac, other.peerDiscoveryMac)) + && Arrays.equals(pmk, other.pmk) + && TextUtils.equals(passphrase, other.passphrase) + && (TextUtils.isEmpty(passphrase) || sessionId == other.sessionId); } @Override public String toString() { StringBuilder sb = new StringBuilder("CanonicalConnectionInfo: ["); sb.append("peerDiscoveryMac=").append(peerDiscoveryMac == null ? "" - : String.valueOf(HexEncoding.encode(peerDiscoveryMac))).append("pmk=").append( - pmk == null ? "" : "*").append("sessionId=").append(sessionId).append( - "passphrase=").append(passphrase == null ? "" : "*").append("]"); + : String.valueOf(HexEncoding.encode(peerDiscoveryMac))).append(", pmk=").append( + pmk == null ? "" : "*").append(", sessionId=").append(sessionId).append( + ", passphrase=").append(passphrase == null ? "" : "*").append("]"); return sb.toString(); } } |