diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2019-04-11 11:06:51 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2019-04-11 11:06:51 +0000 |
commit | 61f6adb42363089358a5ff3b78487725cbb219fb (patch) | |
tree | 621f552434f5ae0a2119669b8ef56db5a699136f | |
parent | 0433da65cdca7948f163beb251cd4343be8f9c95 (diff) | |
parent | f5dc2c766bff08ee90438db2ed11708447d57f4b (diff) |
Merge "provide a resource overlay to configure customized DNS Server."
-rw-r--r-- | res/values/config.xml | 6 | ||||
-rw-r--r-- | src/android/net/dhcp/DhcpClient.java | 14 |
2 files changed, 19 insertions, 1 deletions
diff --git a/res/values/config.xml b/res/values/config.xml index 90f96e0..704788d 100644 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -35,4 +35,8 @@ </string-array> <string-array name="config_captive_portal_fallback_probe_specs" translatable="false"> </string-array> -</resources>
\ No newline at end of file + + <!-- Customized default DNS Servers address. --> + <string-array name="config_default_dns_servers" translatable="false"> + </string-array> +</resources> diff --git a/src/android/net/dhcp/DhcpClient.java b/src/android/net/dhcp/DhcpClient.java index 64adc0d..be44519 100644 --- a/src/android/net/dhcp/DhcpClient.java +++ b/src/android/net/dhcp/DhcpClient.java @@ -45,6 +45,7 @@ import static com.android.server.util.NetworkStackConstants.IPV4_ADDR_ANY; import android.content.Context; import android.net.DhcpResults; +import android.net.InetAddresses; import android.net.TrafficStats; import android.net.ip.IpClient; import android.net.metrics.DhcpClientEvent; @@ -66,6 +67,7 @@ import com.android.internal.util.MessageUtils; import com.android.internal.util.State; import com.android.internal.util.StateMachine; import com.android.internal.util.WakeupMessage; +import com.android.networkstack.R; import java.io.FileDescriptor; import java.io.IOException; @@ -498,6 +500,18 @@ public class DhcpClient extends StateMachine { private void acceptDhcpResults(DhcpResults results, String msg) { mDhcpLease = results; + if (mDhcpLease.dnsServers.isEmpty()) { + // supplement customized dns servers + String[] dnsServersList = + mContext.getResources().getStringArray(R.array.config_default_dns_servers); + for (final String dnsServer : dnsServersList) { + try { + mDhcpLease.dnsServers.add(InetAddresses.parseNumericAddress(dnsServer)); + } catch (IllegalArgumentException e) { + Log.e(TAG, "Invalid default DNS server: " + dnsServer, e); + } + } + } mOffer = null; Log.d(TAG, msg + " lease: " + mDhcpLease); notifySuccess(); |