diff options
| author | 2019-04-11 11:06:51 +0000 | |
|---|---|---|
| committer | 2019-04-11 11:06:51 +0000 | |
| commit | 7db7b331ef64f686f2ceda45917ea79129d24b5d (patch) | |
| tree | 8de9e8dba4ad733b537da43b40d55ef7957975d9 | |
| parent | 076317a01fa173666c5f768763a36af98ea5ba4d (diff) | |
| parent | a4d01220481ae378f89cd3d22876782f01a6a483 (diff) | |
Merge "provide a resource overlay to configure customized DNS Server."
| -rw-r--r-- | packages/NetworkStack/res/values/config.xml | 6 | ||||
| -rw-r--r-- | packages/NetworkStack/src/android/net/dhcp/DhcpClient.java | 14 | 
2 files changed, 19 insertions, 1 deletions
diff --git a/packages/NetworkStack/res/values/config.xml b/packages/NetworkStack/res/values/config.xml index 90f96e0f7a18..704788d7d7e2 100644 --- a/packages/NetworkStack/res/values/config.xml +++ b/packages/NetworkStack/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/packages/NetworkStack/src/android/net/dhcp/DhcpClient.java b/packages/NetworkStack/src/android/net/dhcp/DhcpClient.java index 64adc0d48309..be445199e1e3 100644 --- a/packages/NetworkStack/src/android/net/dhcp/DhcpClient.java +++ b/packages/NetworkStack/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();  |