summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Hugo Benichi <hugobenichi@google.com> 2017-09-30 22:17:07 +0900
committer Hugo Benichi <hugobenichi@google.com> 2017-10-02 15:03:57 +0900
commita8f395702d2bd2d599da65454eba78cbf8f3049d (patch)
tree3cf4e7d360ac28a93bee4d4c57fd7eca5d170c6a
parent71acf7074fd03284ca44360680a000d504dab2f4 (diff)
DO NOT MERGE Ignore DUN in describeImmutableDifferences
This patch changes describeImmutableDifferences in NetworkCapabilities to ignore differences in NET_CAPABILITY_DUN, so that updateCapabilities in ConnectivityService to not report wtf errors when a NetworkAgent degrades its NetworkCapabilities object by removing NET_CAPABILITY_DUN. Bug: 65257223 Test: runtest frameworks-net Change-Id: I115ed1b366da01a3f8c3c6e97e0db8ce995fd377
-rw-r--r--core/java/android/net/NetworkCapabilities.java4
-rw-r--r--tests/net/java/android/net/NetworkCapabilitiesTest.java9
2 files changed, 12 insertions, 1 deletions
diff --git a/core/java/android/net/NetworkCapabilities.java b/core/java/android/net/NetworkCapabilities.java
index 4bb884405360..f038c2401390 100644
--- a/core/java/android/net/NetworkCapabilities.java
+++ b/core/java/android/net/NetworkCapabilities.java
@@ -772,7 +772,9 @@ public final class NetworkCapabilities implements Parcelable {
// Ignore NOT_METERED being added or removed as it is effectively dynamic. http://b/63326103
// TODO: properly support NOT_METERED as a mutable and requestable capability.
- final long mask = ~MUTABLE_CAPABILITIES & ~(1 << NET_CAPABILITY_NOT_METERED);
+ // Ignore DUN being added or removed. http://b/65257223.
+ final long mask = ~MUTABLE_CAPABILITIES
+ & ~(1 << NET_CAPABILITY_NOT_METERED) & ~(1 << NET_CAPABILITY_DUN);
long oldImmutableCapabilities = this.mNetworkCapabilities & mask;
long newImmutableCapabilities = that.mNetworkCapabilities & mask;
if (oldImmutableCapabilities != newImmutableCapabilities) {
diff --git a/tests/net/java/android/net/NetworkCapabilitiesTest.java b/tests/net/java/android/net/NetworkCapabilitiesTest.java
index 7346f9f95041..743344f58992 100644
--- a/tests/net/java/android/net/NetworkCapabilitiesTest.java
+++ b/tests/net/java/android/net/NetworkCapabilitiesTest.java
@@ -17,6 +17,7 @@
package android.net;
import static android.net.NetworkCapabilities.NET_CAPABILITY_CBS;
+import static android.net.NetworkCapabilities.NET_CAPABILITY_DUN;
import static android.net.NetworkCapabilities.NET_CAPABILITY_EIMS;
import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET;
import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_METERED;
@@ -143,6 +144,14 @@ public class NetworkCapabilitiesTest {
assertEquals("", nc1.describeImmutableDifferences(nc2));
assertEquals("", nc1.describeImmutableDifferences(nc1));
+ // DUN changing (http://b/65257223)
+ nc1 = new NetworkCapabilities()
+ .addCapability(NET_CAPABILITY_DUN)
+ .addCapability(NET_CAPABILITY_INTERNET);
+ nc2 = new NetworkCapabilities().addCapability(NET_CAPABILITY_INTERNET);
+ assertEquals("", nc1.describeImmutableDifferences(nc2));
+ assertEquals("", nc1.describeImmutableDifferences(nc1));
+
// Immutable capability changing
nc1 = new NetworkCapabilities()
.addCapability(NET_CAPABILITY_INTERNET)