summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Kline <ek@google.com>2018-06-26 18:53:43 +0900
committerandroid-build-team Robot <android-build-team-robot@google.com>2018-07-23 23:01:28 +0000
commit6bf6f164de45260e75fa61f25445f079eb08bdae (patch)
tree2e3a0cb06258aa96aeb7ed2bef14ad7b6a54cb0c
parent9598764092881814eebf40713793d152ec639c22 (diff)
downloadbase-6bf6f164de45260e75fa61f25445f079eb08bdae.tar.gz
Push DNS configuration on network validation
Test: as follows - built, flashed, booted - runtest frameworks-net passes - connected to captive portal network, saw failed validation attempt (opportunistic), passed portal, saw successful revalidation attempt Bug: 64133961 Bug: 72344805 Bug: 109928338 Merged-In: Ic2046e053faf58e2edf2824e01145c61a9f2991f Merged-In: I209c38fab7f05909e61731a348b1b1a2b35feab2 Change-Id: I0471685c2234af8a8c7f5b2ad3205eb6e36333c5 (cherry picked from commit d3a87062eeccf53c01da320910eb6dcb9832293d)
-rw-r--r--services/core/java/com/android/server/ConnectivityService.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index 18b695f36b0b..6ef1c1421b4d 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -2254,6 +2254,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
updateCapabilities(oldScore, nai, nai.networkCapabilities);
// If score has changed, rebroadcast to NetworkFactories. b/17726566
if (oldScore != nai.getCurrentScore()) sendUpdatedScoreToFactories(nai);
+ if (valid) handleFreshlyValidatedNetwork(nai);
}
updateInetCondition(nai);
// Let the NetworkAgent know the state of its network
@@ -2348,6 +2349,16 @@ public class ConnectivityService extends IConnectivityManager.Stub
mDefaultRequest.networkCapabilities, nai.networkCapabilities);
}
+ private void handleFreshlyValidatedNetwork(NetworkAgentInfo nai) {
+ if (nai == null) return;
+ // If the Private DNS mode is opportunistic, reprogram the DNS servers
+ // in order to restart a validation pass from within netd.
+ final PrivateDnsConfig cfg = mDnsManager.getPrivateDnsConfig();
+ if (cfg.useTls && TextUtils.isEmpty(cfg.hostname)) {
+ updateDnses(nai.linkProperties, null, nai.network.netId);
+ }
+ }
+
private void handlePrivateDnsSettingsChanged() {
final PrivateDnsConfig cfg = mDnsManager.getPrivateDnsConfig();