diff options
Diffstat (limited to 'packages/NetworkStack')
-rw-r--r-- | packages/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java | 11 | ||||
-rw-r--r-- | packages/NetworkStack/tests/unit/src/com/android/server/connectivity/NetworkMonitorTest.java | 4 |
2 files changed, 12 insertions, 3 deletions
diff --git a/packages/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java b/packages/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java index 8090d1482ef7..4e40ba4e2d46 100644 --- a/packages/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java +++ b/packages/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java @@ -683,9 +683,9 @@ public class NetworkMonitor extends StateMachine { public void enter() { maybeLogEvaluationResult( networkEventType(validationStage(), EvaluationResult.VALIDATED)); - // If the user has accepted that and HTTPS probing is disabled, then mark the network - // as validated and partial so that settings can keep informing the user that the - // connection is limited. + // If the user has accepted partial connectivity and HTTPS probing is disabled, then + // mark the network as validated and partial so that settings can keep informing the + // user that the connection is limited. int result = NETWORK_VALIDATION_RESULT_VALID; if (!mUseHttps && mAcceptPartialConnectivity) { result |= NETWORK_VALIDATION_RESULT_PARTIAL; @@ -1054,6 +1054,11 @@ public class NetworkMonitor extends StateMachine { // TODO: Consider abandoning this state after a few attempts and // transitioning back to EvaluatingState, to perhaps give ourselves // the opportunity to (re)detect a captive portal or something. + // + // TODO: distinguish between CMD_EVALUATE_PRIVATE_DNS messages that are caused by server + // lookup failures (which should continue to do exponential backoff) and + // CMD_EVALUATE_PRIVATE_DNS messages that are caused by user reconfiguration (which + // should be processed immediately. sendMessageDelayed(CMD_EVALUATE_PRIVATE_DNS, mPrivateDnsReevalDelayMs); mPrivateDnsReevalDelayMs *= 2; if (mPrivateDnsReevalDelayMs > MAX_REEVALUATE_DELAY_MS) { diff --git a/packages/NetworkStack/tests/unit/src/com/android/server/connectivity/NetworkMonitorTest.java b/packages/NetworkStack/tests/unit/src/com/android/server/connectivity/NetworkMonitorTest.java index cc8f2c0102c4..262641d1901a 100644 --- a/packages/NetworkStack/tests/unit/src/com/android/server/connectivity/NetworkMonitorTest.java +++ b/packages/NetworkStack/tests/unit/src/com/android/server/connectivity/NetworkMonitorTest.java @@ -941,6 +941,10 @@ public class NetworkMonitorTest { .notifyNetworkTested(intCaptor.capture(), any()); List<Integer> intArgs = intCaptor.getAllValues(); + // None of these exact values can be known in advance except for intArgs.get(0) because the + // HTTP and HTTPS probes race and the order in which they complete is non-deterministic. + // Thus, check only exact value for intArgs.get(0) and only check the validation result for + // the rest ones. assertEquals(Integer.valueOf(NETWORK_VALIDATION_PROBE_DNS | NETWORK_VALIDATION_PROBE_FALLBACK | NETWORK_VALIDATION_RESULT_VALID), intArgs.get(0)); |