Implement DoT revalidation
The revalidation starts from DnsTlsDispatcher which uses a counter
for counting the number of continuous network_error failures of a
DoT server. The mechanics works for private DNS opportunistic mode.
- Once the counter reaches dot_revalidation_threshold, DnsTlsDispatcher
sends a revalidation request to PrivateDnsConfiguration to validate
the DoT server.
- Once the counter reaches dot_xport_unusable_threshold, DnsTlsDispatcher
marks the transport of the DoT server as unusable. The DoT server
won't be used for at least 5 minutes.
DoT revalidation runs when the followings are met:
[1] the private DNS setting is opportunistic mode
[2] the requested DoT server is valid to be used on the network
[3] the requested DoT server is currently marked as Validation::success
The above mechanics runs when the feature flag "dot_revalidation_threshold"
is a positive and zon-zero value, and is -1 when the mechanics is
disabled.
Bug: 79727473
Test: atest when all the flags off
dot_revalidation_threshold: -1
dot_async_handshake: 0
dot_xport_unusable_threshold: -1
dot_maxtries: 3
parallel_lookup_sleep_time: 2
dot_connect_timeout_ms: 127000
parallel_lookup_release: 0
sort_nameservers: 0
keep_listening_udp: 0
Test: atest when all the flags on
dot_revalidation_threshold: 10
dot_async_handshake: 1
dot_xport_unusable_threshold: 20
dot_maxtries: 1
parallel_lookup_sleep_time: 2
dot_connect_timeout_ms: 10000
parallel_lookup_release: 1
sort_nameservers: 1
keep_listening_udp: 1
Change-Id: Id442529468d63156a9aebf30ea5f142dfa689a97
Loading