Merge changes from topic "bindprocess-resolv"

* changes:
  Allow use of bindProcessToNetwork only to change private DNS bypass.
  Allow bypassing private DNS via bindProcessToNetwork.
This commit is contained in:
Remi NGUYEN VAN
2019-01-31 07:52:04 +00:00
committed by Gerrit Code Review

View File

@@ -4006,10 +4006,17 @@ public class ConnectivityManager {
@Deprecated @Deprecated
public static boolean setProcessDefaultNetwork(@Nullable Network network) { public static boolean setProcessDefaultNetwork(@Nullable Network network) {
int netId = (network == null) ? NETID_UNSET : network.netId; int netId = (network == null) ? NETID_UNSET : network.netId;
if (netId == NetworkUtils.getBoundNetworkForProcess()) { boolean isSameNetId = (netId == NetworkUtils.getBoundNetworkForProcess());
return true;
if (netId != NETID_UNSET) {
netId = network.getNetIdForResolv();
} }
if (NetworkUtils.bindProcessToNetwork(netId)) {
if (!NetworkUtils.bindProcessToNetwork(netId)) {
return false;
}
if (!isSameNetId) {
// Set HTTP proxy system properties to match network. // Set HTTP proxy system properties to match network.
// TODO: Deprecate this static method and replace it with a non-static version. // TODO: Deprecate this static method and replace it with a non-static version.
try { try {
@@ -4023,10 +4030,9 @@ public class ConnectivityManager {
// Must flush socket pool as idle sockets will be bound to previous network and may // Must flush socket pool as idle sockets will be bound to previous network and may
// cause subsequent fetches to be performed on old network. // cause subsequent fetches to be performed on old network.
NetworkEventDispatcher.getInstance().onNetworkConfigurationChanged(); NetworkEventDispatcher.getInstance().onNetworkConfigurationChanged();
return true;
} else {
return false;
} }
return true;
} }
/** /**