From 44cc4744705d41a1b9b5955c639d038fb43afb01 Mon Sep 17 00:00:00 2001 From: Robert Greenwalt Date: Fri, 20 May 2011 14:35:50 -0700 Subject: [PATCH] First pass tying into per-interface DNS cache Change-Id: Iacce225d392786e37fa2dbf9647045fca0b70e64 --- .../com/android/server/ConnectivityService.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java index 555975fb0e..6cd3e9eb1a 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