LinkProperties: use ordered comparison for P-CSCFs - only on U+

to make sure a mainline update doesn't break devices in the field

Test: TreeHugger
Bug: 268479036
Signed-off-by: Maciej Żenczykowski <maze@google.com>
(cherry picked from https://android-review.googlesource.com/q/commit:f7939fa8d1c4566d056a8501e610c8fe18ac98f8)
Merged-In: Iadcd861509d31b3ed6352d452a159cd89af479dd
Change-Id: Iadcd861509d31b3ed6352d452a159cd89af479dd
This commit is contained in:
Maciej Żenczykowski
2023-05-22 03:53:39 +00:00
committed by Cherrypicker Worker
parent ca829f8c00
commit 15756bc0b1

View File

@@ -1456,8 +1456,13 @@ public final class LinkProperties implements Parcelable {
* @hide
*/
public boolean isIdenticalPcscfs(@NonNull LinkProperties target) {
// list order is important, compare one by one
return target.getPcscfServers().equals(mPcscfs);
// Per 3GPP TS 24.229, B.2.2.1 PDP context activation and P-CSCF discovery
// list order is important, so on U+ compare one by one
if (SdkLevel.isAtLeastU()) return target.getPcscfServers().equals(mPcscfs);
// but for safety old behaviour on pre-U:
Collection<InetAddress> targetPcscfs = target.getPcscfServers();
return (mPcscfs.size() == targetPcscfs.size()) ?
mPcscfs.containsAll(targetPcscfs) : false;
}
/**