summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorEtan Cohen <etancohen@google.com>2018-03-01 23:34:49 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2018-03-01 23:34:49 +0000
commit90036ff1add9d175b1482e9e51eb7d1b5bf63a8b (patch)
tree33510c2b2eb5e6615d674c712f3e78a4efbdfe45 /service
parent1aaa3fc2e15da100da40bb4801cc24f372499b9a (diff)
parentc333de2dddeb2d765d98239d17684dd08942948b (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.java45
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();
}
}