Merge "Stop setting net.dns{1234} system properties."

am: 269d35f870

Change-Id: I9b31b281896995943ce8217c3230867db380a841
This commit is contained in:
Erik Kline
2016-12-12 08:29:14 +00:00
committed by android-build-merger

View File

@@ -1813,14 +1813,11 @@ public class ConnectivityService extends IConnectivityManager.Stub
private void updateMtu(LinkProperties newLp, LinkProperties oldLp) { private void updateMtu(LinkProperties newLp, LinkProperties oldLp) {
final String iface = newLp.getInterfaceName(); final String iface = newLp.getInterfaceName();
final int mtu = newLp.getMtu(); final int mtu = newLp.getMtu();
if (oldLp == null && mtu == 0) {
// Silently ignore unset MTU value.
return;
}
if (oldLp != null && newLp.isIdenticalMtu(oldLp)) { if (oldLp != null && newLp.isIdenticalMtu(oldLp)) {
if (VDBG) log("identical MTU - not setting"); if (VDBG) log("identical MTU - not setting");
return; return;
} }
if (LinkProperties.isValidMtu(mtu, newLp.hasGlobalIPv6Address()) == false) { if (LinkProperties.isValidMtu(mtu, newLp.hasGlobalIPv6Address()) == false) {
if (mtu != 0) loge("Unexpected mtu value: " + mtu + ", " + iface); if (mtu != 0) loge("Unexpected mtu value: " + mtu + ", " + iface);
return; return;
@@ -2266,19 +2263,11 @@ public class ConnectivityService extends IConnectivityManager.Stub
synchronized (mNetworkForNetId) { synchronized (mNetworkForNetId) {
nai = mNetworkForNetId.get(netId); nai = mNetworkForNetId.get(netId);
} }
// If captive portal status has changed, update capabilities or disconnect. // If captive portal status has changed, update capabilities.
if (nai != null && (visible != nai.lastCaptivePortalDetected)) { if (nai != null && (visible != nai.lastCaptivePortalDetected)) {
final int oldScore = nai.getCurrentScore(); final int oldScore = nai.getCurrentScore();
nai.lastCaptivePortalDetected = visible; nai.lastCaptivePortalDetected = visible;
nai.everCaptivePortalDetected |= visible; nai.everCaptivePortalDetected |= visible;
if (nai.lastCaptivePortalDetected &&
Settings.Global.CAPTIVE_PORTAL_MODE_AVOID == getCaptivePortalMode()) {
if (DBG) log("Avoiding captive portal network: " + nai.name());
nai.asyncChannel.sendMessage(
NetworkAgent.CMD_PREVENT_AUTOMATIC_RECONNECT);
teardownUnneededNetwork(nai);
break;
}
updateCapabilities(oldScore, nai, nai.networkCapabilities); updateCapabilities(oldScore, nai, nai.networkCapabilities);
} }
if (!visible) { if (!visible) {
@@ -2299,12 +2288,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
return true; return true;
} }
private int getCaptivePortalMode() {
return Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.CAPTIVE_PORTAL_MODE,
Settings.Global.CAPTIVE_PORTAL_MODE_PROMPT);
}
private boolean maybeHandleNetworkAgentInfoMessage(Message msg) { private boolean maybeHandleNetworkAgentInfoMessage(Message msg) {
switch (msg.what) { switch (msg.what) {
default: default:
@@ -2614,28 +2597,14 @@ public class ConnectivityService extends IConnectivityManager.Stub
"request NetworkCapabilities", ConnectivityManager.CALLBACK_CAP_CHANGED); "request NetworkCapabilities", ConnectivityManager.CALLBACK_CAP_CHANGED);
} }
private void handleTimedOutNetworkRequest(final NetworkRequestInfo nri) {
if (mNetworkRequests.get(nri.request) != null && mNetworkForRequestId.get(
nri.request.requestId) == null) {
handleRemoveNetworkRequest(nri, ConnectivityManager.CALLBACK_UNAVAIL);
}
}
private void handleReleaseNetworkRequest(NetworkRequest request, int callingUid) { private void handleReleaseNetworkRequest(NetworkRequest request, int callingUid) {
final NetworkRequestInfo nri = getNriForAppRequest( final NetworkRequestInfo nri = getNriForAppRequest(
request, callingUid, "release NetworkRequest"); request, callingUid, "release NetworkRequest");
if (nri != null) { if (nri == null) return;
handleRemoveNetworkRequest(nri, ConnectivityManager.CALLBACK_RELEASED);
}
}
private void handleRemoveNetworkRequest(final NetworkRequestInfo nri, final int whichCallback) { if (VDBG || (DBG && nri.request.isRequest())) log("releasing " + request);
final String logCallbackType = ConnectivityManager.getCallbackName(whichCallback);
if (VDBG || (DBG && nri.request.isRequest())) {
log("releasing " + nri.request + " (" + logCallbackType + ")");
}
nri.unlinkDeathRecipient(); nri.unlinkDeathRecipient();
mNetworkRequests.remove(nri.request); mNetworkRequests.remove(request);
synchronized (mUidToNetworkRequestCount) { synchronized (mUidToNetworkRequestCount) {
int requests = mUidToNetworkRequestCount.get(nri.mUid, 0); int requests = mUidToNetworkRequestCount.get(nri.mUid, 0);
if (requests < 1) { if (requests < 1) {
@@ -2729,7 +2698,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
} }
} }
} }
callCallbackForRequest(nri, null, whichCallback, 0); callCallbackForRequest(nri, null, ConnectivityManager.CALLBACK_RELEASED, 0);
} }
@Override @Override
@@ -2966,11 +2935,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
handleRegisterNetworkRequestWithIntent(msg); handleRegisterNetworkRequestWithIntent(msg);
break; break;
} }
case EVENT_TIMEOUT_NETWORK_REQUEST: {
NetworkRequestInfo nri = (NetworkRequestInfo) msg.obj;
handleTimedOutNetworkRequest(nri);
break;
}
case EVENT_RELEASE_NETWORK_REQUEST_WITH_INTENT: { case EVENT_RELEASE_NETWORK_REQUEST_WITH_INTENT: {
handleReleaseNetworkRequestWithIntent((PendingIntent) msg.obj, msg.arg1); handleReleaseNetworkRequestWithIntent((PendingIntent) msg.obj, msg.arg1);
break; break;
@@ -4615,28 +4579,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
} catch (Exception e) { } catch (Exception e) {
loge("Exception in setDnsConfigurationForNetwork: " + e); loge("Exception in setDnsConfigurationForNetwork: " + e);
} }
final NetworkAgentInfo defaultNai = getDefaultNetwork();
if (defaultNai != null && defaultNai.network.netId == netId) {
setDefaultDnsSystemProperties(dnses);
}
flushVmDnsCache(); flushVmDnsCache();
} }
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 String getNetworkPermission(NetworkCapabilities nc) { private String getNetworkPermission(NetworkCapabilities nc) {
// TODO: make these permission strings AIDL constants instead. // TODO: make these permission strings AIDL constants instead.
if (!nc.hasCapability(NET_CAPABILITY_NOT_RESTRICTED)) { if (!nc.hasCapability(NET_CAPABILITY_NOT_RESTRICTED)) {
@@ -4853,7 +4798,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
notifyLockdownVpn(newNetwork); notifyLockdownVpn(newNetwork);
handleApplyDefaultProxy(newNetwork.linkProperties.getHttpProxy()); handleApplyDefaultProxy(newNetwork.linkProperties.getHttpProxy());
updateTcpBufferSizes(newNetwork); updateTcpBufferSizes(newNetwork);
setDefaultDnsSystemProperties(newNetwork.linkProperties.getDnsServers());
} }
private void processListenRequests(NetworkAgentInfo nai, boolean capabilitiesChanged) { private void processListenRequests(NetworkAgentInfo nai, boolean capabilitiesChanged) {
@@ -5351,7 +5295,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
// notify only this one new request of the current state // notify only this one new request of the current state
protected void notifyNetworkCallback(NetworkAgentInfo nai, NetworkRequestInfo nri) { protected void notifyNetworkCallback(NetworkAgentInfo nai, NetworkRequestInfo nri) {
int notifyType = ConnectivityManager.CALLBACK_AVAILABLE; int notifyType = ConnectivityManager.CALLBACK_AVAILABLE;
mHandler.removeMessages(EVENT_TIMEOUT_NETWORK_REQUEST, nri);
if (nri.mPendingIntent == null) { if (nri.mPendingIntent == null) {
callCallbackForRequest(nri, nai, notifyType, 0); callCallbackForRequest(nri, nai, notifyType, 0);
} else { } else {