diff --git a/core/java/android/net/LinkProperties.java b/core/java/android/net/LinkProperties.java index 1f73c4ad71..43d6b71598 100644 --- a/core/java/android/net/LinkProperties.java +++ b/core/java/android/net/LinkProperties.java @@ -197,6 +197,16 @@ public class LinkProperties implements Parcelable { return addresses; } + /** + * Replaces the LinkAddresses on this link with the given collection of addresses. + */ + public void setLinkAddresses(Collection addresses) { + mLinkAddresses.clear(); + for (LinkAddress address: addresses) { + addLinkAddress(address); + } + } + public void addDns(InetAddress dns) { if (dns != null) mDnses.add(dns); } diff --git a/core/tests/coretests/src/android/net/LinkPropertiesTest.java b/core/tests/coretests/src/android/net/LinkPropertiesTest.java index a570802d29..7e70c6b046 100644 --- a/core/tests/coretests/src/android/net/LinkPropertiesTest.java +++ b/core/tests/coretests/src/android/net/LinkPropertiesTest.java @@ -363,4 +363,19 @@ public class LinkPropertiesTest extends TestCase { assertFalse(lp.hasIPv4Address()); assertFalse(lp.removeLinkAddress(LINKADDRV4)); } + + @SmallTest + public void testSetLinkAddresses() { + LinkProperties lp = new LinkProperties(); + lp.addLinkAddress(LINKADDRV4); + lp.addLinkAddress(LINKADDRV6); + + LinkProperties lp2 = new LinkProperties(); + lp2.addLinkAddress(LINKADDRV6); + + assertFalse(lp.equals(lp2)); + + lp2.setLinkAddresses(lp.getLinkAddresses()); + assertTrue(lp.equals(lp)); + } }