Ignore link properties updates when nothing actually changed.
am: 6076cb0b85
* commit '6076cb0b859185b075d3a70655afb192d68d0774':
Ignore link properties updates when nothing actually changed.
diff --git a/services/net/java/android/net/ip/IpManager.java b/services/net/java/android/net/ip/IpManager.java
index 5c6d84e..06b6ee7 100644
--- a/services/net/java/android/net/ip/IpManager.java
+++ b/services/net/java/android/net/ip/IpManager.java
@@ -43,6 +43,7 @@
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
+import java.util.Objects;
/**
@@ -284,6 +285,12 @@
return delta;
}
+ private boolean linkPropertiesUnchanged(LinkProperties newLp) {
+ synchronized (mLock) {
+ return Objects.equals(newLp, mLinkProperties);
+ }
+ }
+
private LinkProperties assembleLinkProperties() {
// [1] Create a new LinkProperties object to populate.
LinkProperties newLp = new LinkProperties();
@@ -489,6 +496,9 @@
case EVENT_NETLINK_LINKPROPERTIES_CHANGED: {
final LinkProperties newLp = assembleLinkProperties();
+ if (linkPropertiesUnchanged(newLp)) {
+ break;
+ }
final ProvisioningChange delta = setLinkProperties(newLp);
// NOTE: The only receiver of these callbacks currently