summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRemi NGUYEN VAN <reminv@google.com>2019-01-31 07:52:04 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2019-01-31 07:52:04 +0000
commit643e60b0fed9d113a4a35847f61a98c2f0e3e6f9 (patch)
treebd23f1ad28ba4125763e10de5c47a62fc45ef05b
parent4163ff7928dd5d4df8de766570a010451448a26d (diff)
parente5ca11604ec6db5c704ec4114f828ed0a50e99f8 (diff)
Merge changes from topic "bindprocess-resolv"
* changes: Allow use of bindProcessToNetwork only to change private DNS bypass. Allow bypassing private DNS via bindProcessToNetwork.
-rw-r--r--core/java/android/net/ConnectivityManager.java18
1 files changed, 12 insertions, 6 deletions
diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java
index f807924e752d..1240ef87451c 100644
--- a/core/java/android/net/ConnectivityManager.java
+++ b/core/java/android/net/ConnectivityManager.java
@@ -4006,10 +4006,17 @@ public class ConnectivityManager {
@Deprecated
public static boolean setProcessDefaultNetwork(@Nullable Network network) {
int netId = (network == null) ? NETID_UNSET : network.netId;
- if (netId == NetworkUtils.getBoundNetworkForProcess()) {
- return true;
+ boolean isSameNetId = (netId == NetworkUtils.getBoundNetworkForProcess());
+
+ 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.
// TODO: Deprecate this static method and replace it with a non-static version.
try {
@@ -4023,10 +4030,9 @@ public class ConnectivityManager {
// Must flush socket pool as idle sockets will be bound to previous network and may
// cause subsequent fetches to be performed on old network.
NetworkEventDispatcher.getInstance().onNetworkConfigurationChanged();
- return true;
- } else {
- return false;
}
+
+ return true;
}
/**