OSDN Git Service

Cleanup of process-specific DNS.
authorRobert Greenwalt <robdroid@android.com>
Thu, 17 Dec 2009 22:54:59 +0000 (14:54 -0800)
committerRobert Greenwalt <robdroid@android.com>
Wed, 20 Jan 2010 02:01:36 +0000 (18:01 -0800)
Backport of MR2 change 421c72b6.

Removes entries sooner.  A bug.
Doesn't add one for phone process at all.  This was intended to be removed long ago.

bug: 2329900
bug: 2377507

services/java/com/android/server/ConnectivityService.java
telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java

index 5c0f352..14c70bc 100644 (file)
@@ -661,8 +661,8 @@ public class ConnectivityService extends IConnectivityManager.Stub {
             tracker =  mNetTrackers[usedNetworkType];
             if(usedNetworkType != networkType) {
                 Integer currentPid = new Integer(pid);
-                reassessPidDns(pid, true);
                 mNetRequestersPids[usedNetworkType].remove(currentPid);
+                reassessPidDns(pid, true);
                 if (mNetRequestersPids[usedNetworkType].size() != 0) {
                     if (DBG) Log.d(TAG, "not tearing down special network - " +
                            "others still using it");
index d014a7e..7b60474 100644 (file)
@@ -748,7 +748,6 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
     }
 
     private void notifyDefaultData(String reason) {
-        setupDnsProperties();
         setState(State.CONNECTED);
         phone.notifyDataConnection(reason);
         startNetStatPoll();
@@ -757,42 +756,6 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
         mReregisterOnReconnectFailure = false;
     }
 
-    private void setupDnsProperties() {
-        int mypid = android.os.Process.myPid();
-        String[] servers = getDnsServers(null);
-        String propName;
-        String propVal;
-        int count;
-
-        count = 0;
-        for (int i = 0; i < servers.length; i++) {
-            String serverAddr = servers[i];
-            if (!TextUtils.equals(serverAddr, "0.0.0.0")) {
-                SystemProperties.set("net.dns" + (i+1) + "." + mypid, serverAddr);
-                count++;
-            }
-        }
-        for (int i = count+1; i <= 4; i++) {
-            propName = "net.dns" + i + "." + mypid;
-            propVal = SystemProperties.get(propName);
-            if (propVal.length() != 0) {
-                SystemProperties.set(propName, "");
-            }
-        }
-        /*
-         * Bump the property that tells the name resolver library
-         * to reread the DNS server list from the properties.
-         */
-        propVal = SystemProperties.get("net.dnschange");
-        if (propVal.length() != 0) {
-            try {
-                int n = Integer.parseInt(propVal);
-                SystemProperties.set("net.dnschange", "" + (n+1));
-            } catch (NumberFormatException e) {
-            }
-        }
-    }
-
     /**
      * This is a kludge to deal with the fact that
      * the PDP state change notification doesn't always work