diff options
| author | Robert Greenwalt <rgreenwalt@google.com> | 2010-09-01 11:34:05 -0700 |
|---|---|---|
| committer | Robert Greenwalt <rgreenwalt@google.com> | 2010-09-01 15:25:51 -0700 |
| commit | e90aa5e97e3a5502a8334ed6ceb98305f6e01361 (patch) | |
| tree | 1dc469b39c929858f7e0d023a4c981c46c771142 /services/java/com/android/server/ConnectivityService.java | |
| parent | 276e8d44a4e29c86712c3ccb60dc8dc057b209d0 (diff) | |
Add a default dns entry if none is provided
Fixes part of emulator which isn't telling us about dns servers.
Gets some stuff running, but browser is still broken.
bug:2961703
Change-Id: I53b946eba434aca1bb524c2acaf77922377948d1
Diffstat (limited to 'services/java/com/android/server/ConnectivityService.java')
| -rw-r--r-- | services/java/com/android/server/ConnectivityService.java | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java index 98394d07dff7..54ff69f60d90 100644 --- a/services/java/com/android/server/ConnectivityService.java +++ b/services/java/com/android/server/ConnectivityService.java @@ -121,6 +121,8 @@ public class ConnectivityService extends IConnectivityManager.Stub { private int mNetTransitionWakeLockSerialNumber; private int mNetTransitionWakeLockTimeout; + private InetAddress mDefaultDns; + private static class NetworkAttributes { /** * Class for holding settings read from resources. @@ -209,6 +211,19 @@ public class ConnectivityService extends IConnectivityManager.Stub { SystemProperties.set("net.hostname", name); } + // read our default dns server ip + String dns = Settings.Secure.getString(context.getContentResolver(), + Settings.Secure.DEFAULT_DNS_SERVER); + if (dns == null || dns.length() == 0) { + dns = context.getResources().getString( + com.android.internal.R.string.config_default_dns_server); + } + try { + mDefaultDns = InetAddress.getByName(dns); + } catch (UnknownHostException e) { + Slog.e(TAG, "Error setting defaultDns using " + dns); + } + mContext = context; PowerManager powerManager = (PowerManager)mContext.getSystemService(Context.POWER_SERVICE); @@ -1468,12 +1483,20 @@ public class ConnectivityService extends IConnectivityManager.Stub { Collection<InetAddress> dnses = p.getDnses(); if (mNetAttributes[netType].isDefault()) { int j = 1; - for (InetAddress dns : dnses) { + if (dnses.size() == 0 && mDefaultDns != null) { if (DBG) { - Slog.d(TAG, "adding dns " + dns + " for " + - nt.getNetworkInfo().getTypeName()); + Slog.d(TAG, "no dns provided - using " + mDefaultDns.getHostAddress()); + } + SystemProperties.set("net.dns1", mDefaultDns.getHostAddress()); + j++; + } else { + for (InetAddress dns : dnses) { + if (DBG) { + Slog.d(TAG, "adding dns " + dns + " for " + + nt.getNetworkInfo().getTypeName()); + } + SystemProperties.set("net.dns" + j++, dns.getHostAddress()); } - SystemProperties.set("net.dns" + j++, dns.getHostAddress()); } for (int k=j ; k<mNumDnsEntries; k++) { if (DBG) Slog.d(TAG, "erasing net.dns" + k); |
