summaryrefslogtreecommitdiff
path: root/services/java/com/android/server/ConnectivityService.java
diff options
context:
space:
mode:
authorRobert Greenwalt <rgreenwalt@google.com>2010-09-01 11:34:05 -0700
committerRobert Greenwalt <rgreenwalt@google.com>2010-09-01 15:25:51 -0700
commite90aa5e97e3a5502a8334ed6ceb98305f6e01361 (patch)
tree1dc469b39c929858f7e0d023a4c981c46c771142 /services/java/com/android/server/ConnectivityService.java
parent276e8d44a4e29c86712c3ccb60dc8dc057b209d0 (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.java31
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);