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

Commit d5648dcf authored by Robert Greenwalt's avatar Robert Greenwalt
Browse files

Add net.dns system properties

Some apps rely on them.

bug: 14992618
Change-Id: I5766f26b77004e9cfcc90fac657817eab67f9ac7
parent 177cf215
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>());
                        }
                    }
                }
            }