Reduce the spinning while tethering.
Doing too much stuff - don't retry when we know we shouldn't. bug:3293460 Change-Id: Ic7b0b6486b39377d74df7a35572059ac60d03fa0
This commit is contained in:
@@ -1574,12 +1574,19 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void writePidDns(Collection <InetAddress> dnses, int pid) {
|
// return true if results in a change
|
||||||
|
private boolean writePidDns(Collection <InetAddress> dnses, int pid) {
|
||||||
int j = 1;
|
int j = 1;
|
||||||
|
boolean changed = false;
|
||||||
for (InetAddress dns : dnses) {
|
for (InetAddress dns : dnses) {
|
||||||
|
String dnsString = dns.getHostAddress();
|
||||||
|
if (changed || !dnsString.equals(SystemProperties.get("net.dns" + j + "." + pid))) {
|
||||||
|
changed = true;
|
||||||
SystemProperties.set("net.dns" + j++ + "." + pid, dns.getHostAddress());
|
SystemProperties.set("net.dns" + j++ + "." + pid, dns.getHostAddress());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return changed;
|
||||||
|
}
|
||||||
|
|
||||||
private void bumpDns() {
|
private void bumpDns() {
|
||||||
/*
|
/*
|
||||||
@@ -1609,37 +1616,51 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
|||||||
LinkProperties p = nt.getLinkProperties();
|
LinkProperties p = nt.getLinkProperties();
|
||||||
if (p == null) return;
|
if (p == null) return;
|
||||||
Collection<InetAddress> dnses = p.getDnses();
|
Collection<InetAddress> dnses = p.getDnses();
|
||||||
|
boolean changed = false;
|
||||||
if (mNetAttributes[netType].isDefault()) {
|
if (mNetAttributes[netType].isDefault()) {
|
||||||
int j = 1;
|
int j = 1;
|
||||||
if (dnses.size() == 0 && mDefaultDns != null) {
|
if (dnses.size() == 0 && mDefaultDns != null) {
|
||||||
|
String dnsString = mDefaultDns.getHostAddress();
|
||||||
|
if (!dnsString.equals(SystemProperties.get("net.dns1"))) {
|
||||||
if (DBG) {
|
if (DBG) {
|
||||||
log("no dns provided - using " + mDefaultDns.getHostAddress());
|
log("no dns provided - using " + dnsString);
|
||||||
|
}
|
||||||
|
changed = true;
|
||||||
|
SystemProperties.set("net.dns1", dnsString);
|
||||||
}
|
}
|
||||||
SystemProperties.set("net.dns1", mDefaultDns.getHostAddress());
|
|
||||||
j++;
|
j++;
|
||||||
} else {
|
} else {
|
||||||
for (InetAddress dns : dnses) {
|
for (InetAddress dns : dnses) {
|
||||||
|
String dnsString = dns.getHostAddress();
|
||||||
|
if (!changed && dnsString.equals(SystemProperties.get("net.dns" + j))) {
|
||||||
|
j++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (DBG) {
|
if (DBG) {
|
||||||
log("adding dns " + dns + " for " +
|
log("adding dns " + dns + " for " +
|
||||||
nt.getNetworkInfo().getTypeName());
|
nt.getNetworkInfo().getTypeName());
|
||||||
}
|
}
|
||||||
SystemProperties.set("net.dns" + j++, dns.getHostAddress());
|
changed = true;
|
||||||
|
SystemProperties.set("net.dns" + j++, dnsString);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (int k=j ; k<mNumDnsEntries; k++) {
|
for (int k=j ; k<mNumDnsEntries; k++) {
|
||||||
|
if (changed || !TextUtils.isEmpty(SystemProperties.get("net.dns" + k))) {
|
||||||
if (DBG) log("erasing net.dns" + k);
|
if (DBG) log("erasing net.dns" + k);
|
||||||
|
changed = true;
|
||||||
SystemProperties.set("net.dns" + k, "");
|
SystemProperties.set("net.dns" + k, "");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
mNumDnsEntries = j;
|
mNumDnsEntries = j;
|
||||||
} else {
|
} else {
|
||||||
// set per-pid dns for attached secondary nets
|
// set per-pid dns for attached secondary nets
|
||||||
List pids = mNetRequestersPids[netType];
|
List pids = mNetRequestersPids[netType];
|
||||||
for (int y=0; y< pids.size(); y++) {
|
for (int y=0; y< pids.size(); y++) {
|
||||||
Integer pid = (Integer)pids.get(y);
|
Integer pid = (Integer)pids.get(y);
|
||||||
writePidDns(dnses, pid.intValue());
|
changed = writePidDns(dnses, pid.intValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bumpDns();
|
if (changed) bumpDns();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user