From 131eb31373a366e6d46fda91988fa829791371fe Mon Sep 17 00:00:00 2001 From: Lorenzo Colitti Date: Tue, 24 Jun 2014 00:34:39 +0900 Subject: [PATCH] Modify DNS server update methods. 1. Make addDnsServer not add duplicate servers and return a boolean value incating whether it changed anything. This is consistent with what we do for LinkAddresses and routes. 2. Add a setDnsServers method that sets all the DNS servers to the specified collection. This is consistent with what we do for LinkAddress. Bug: 9180552 Change-Id: I5baed09253261b66ea42ae2ea82398118e3ab0ac --- core/java/android/net/LinkProperties.java | 25 ++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/core/java/android/net/LinkProperties.java b/core/java/android/net/LinkProperties.java index 2032db5e86..8be5cf8bd1 100644 --- a/core/java/android/net/LinkProperties.java +++ b/core/java/android/net/LinkProperties.java @@ -264,13 +264,32 @@ public final class LinkProperties implements Parcelable { } /** - * Adds the given {@link InetAddress} to the list of DNS servers. + * Adds the given {@link InetAddress} to the list of DNS servers, if not present. * * @param dnsServer The {@link InetAddress} to add to the list of DNS servers. + * @return true if the DNS server was added, false if it was already present. * @hide */ - public void addDnsServer(InetAddress dnsServer) { - if (dnsServer != null) mDnses.add(dnsServer); + public boolean addDnsServer(InetAddress dnsServer) { + if (dnsServer != null && !mDnses.contains(dnsServer)) { + mDnses.add(dnsServer); + return true; + } + return false; + } + + /** + * Replaces the DNS servers in this {@code LinkProperties} with + * the given {@link Collection} of {@link InetAddress} objects. + * + * @param addresses The {@link Collection} of DNS servers to set in this object. + * @hide + */ + public void setDnsServers(Collection dnsServers) { + mDnses.clear(); + for (InetAddress dnsServer: dnsServers) { + addDnsServer(dnsServer); + } } /**