Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 15abc901 authored by Robert Greenwalt's avatar Robert Greenwalt
Browse files

Cleanup of process-specific DNS.

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
parent 5910cb53
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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");
+0 −37
Original line number Diff line number Diff line
@@ -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