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

Commit 101e4b60 authored by Robert Greenwalt's avatar Robert Greenwalt Committed by The Android Automerger
Browse files

Add net.dns system properties

Some apps rely on them.

bug: 14992618
Change-Id: I5766f26b77004e9cfcc90fac657817eab67f9ac7
parent 25fd3371
Loading
Loading
Loading
Loading
+25 −1
Original line number Diff line number Diff line
@@ -5491,10 +5491,29 @@ public class ConnectivityService extends IConnectivityManager.Stub {
            } catch (Exception e) {
                loge("Exception in setDnsServersForNetwork: " + e);
            }
            // TODO - setprop "net.dnsX"
            NetworkAgentInfo defaultNai = mNetworkForRequestId.get(mDefaultRequest.requestId);
            if (defaultNai != null && defaultNai.network.netId == netId) {
                setDefaultDnsSystemProperties(dnses);
            }
        }
    }

    private void setDefaultDnsSystemProperties(Collection<InetAddress> dnses) {
        int last = 0;
        for (InetAddress dns : dnses) {
            ++last;
            String key = "net.dns" + last;
            String value = dns.getHostAddress();
            SystemProperties.set(key, value);
        }
        for (int i = last + 1; i <= mNumDnsEntries; ++i) {
            String key = "net.dns" + i;
            SystemProperties.set(key, "");
        }
        mNumDnsEntries = last;
    }


    private void updateCapabilities(NetworkAgentInfo networkAgent,
            NetworkCapabilities networkCapabilities) {
        // TODO - what else here?  Verify still satisfies everybody?
@@ -5610,6 +5629,11 @@ public class ConnectivityService extends IConnectivityManager.Stub {
                    if (mDefaultRequest.requestId == nri.request.requestId) {
                        isNewDefault = true;
                        updateActiveDefaultNetwork(newNetwork);
                        if (newNetwork.linkProperties != null) {
                            setDefaultDnsSystemProperties(newNetwork.linkProperties.getDnses());
                        } else {
                            setDefaultDnsSystemProperties(new ArrayList<InetAddress>());
                        }
                    }
                }
            }