summaryrefslogtreecommitdiff
path: root/services/java/com/android/server/ConnectivityService.java
diff options
context:
space:
mode:
authorRobert Greenwalt <rgreenwalt@google.com>2011-05-20 14:35:50 -0700
committerRobert Greenwalt <rgreenwalt@google.com>2011-07-20 14:47:41 -0700
commit1efe4d5cfd3913b3c4efa7aee4bf9fea262c0ad2 (patch)
treede7143b68e2f2899829b1a1ec8ca3f2e0320a8b8 /services/java/com/android/server/ConnectivityService.java
parentd40c93f61ca5b3f2351b8db716f67b58f1625e85 (diff)
First pass tying into per-interface DNS cache
Change-Id: Iacce225d392786e37fa2dbf9647045fca0b70e64
Diffstat (limited to 'services/java/com/android/server/ConnectivityService.java')
-rw-r--r--services/java/com/android/server/ConnectivityService.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index 555975fb0eb9..6cd3e9eb1ac4 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -38,6 +38,7 @@ import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
import android.os.Message;
+import android.os.INetworkManagementService;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.SystemProperties;
@@ -111,6 +112,9 @@ public class ConnectivityService extends IConnectivityManager.Stub {
private boolean mTestMode;
private static ConnectivityService sServiceInstance;
+
+ private INetworkManagementService mNetd;
+
private static final int ENABLED = 1;
private static final int DISABLED = 0;
@@ -1278,6 +1282,9 @@ public class ConnectivityService extends IConnectivityManager.Stub {
}
void systemReady() {
+ IBinder b = ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE);
+ mNetd = INetworkManagementService.Stub.asInterface(b);
+
synchronized(this) {
mSystemReady = true;
if (mInitialBroadcast != null) {
@@ -1470,6 +1477,11 @@ public class ConnectivityService extends IConnectivityManager.Stub {
NetworkStateTracker nt = mNetTrackers[netType];
if (nt != null && nt.getNetworkInfo().isConnected() && !nt.isTeardownRequested()) {
String[] dnsList = nt.getNameServers();
+ try {
+ mNetd.setDnsServersForInterface(Integer.toString(netType), dnsList);
+ } catch (Exception e) {
+ Slog.e(TAG, "exception setting dns servers: " + e);
+ }
if (mNetAttributes[netType].isDefault()) {
int j = 1;
for (String dns : dnsList) {
@@ -1481,6 +1493,10 @@ public class ConnectivityService extends IConnectivityManager.Stub {
SystemProperties.set("net.dns" + j++, dns);
}
}
+ try {
+ mNetd.setDefaultInterfaceForDns(Integer.toString(netType));
+ } catch (Exception e) {
+ Slog.e(TAG, "exception setting default dns interface: " + e);}
for (int k=j ; k<mNumDnsEntries; k++) {
if (DBG) Slog.d(TAG, "erasing net.dns" + k);
SystemProperties.set("net.dns" + k, "");