diff options
| author | Robert Greenwalt <rgreenwalt@google.com> | 2011-05-20 14:35:50 -0700 |
|---|---|---|
| committer | Robert Greenwalt <rgreenwalt@google.com> | 2011-07-20 14:47:41 -0700 |
| commit | 1efe4d5cfd3913b3c4efa7aee4bf9fea262c0ad2 (patch) | |
| tree | de7143b68e2f2899829b1a1ec8ca3f2e0320a8b8 /services/java/com/android/server/ConnectivityService.java | |
| parent | d40c93f61ca5b3f2351b8db716f67b58f1625e85 (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.java | 16 |
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, ""); |
