Add tests to cover repeated setResolverConfiguration
Two tests are added to protect the resolver when it continually
receives the same setup requests.
When the resolver receives repeated and same setup:
[1] Do not clear the cache.
[2] Do not clear the stats (the stats for cleartext DNS servers
got from GetResolverInfo()).
[3] Do not start a new re-evaluation process for the private DNS
servers if they have been marked as in_progress.
[4] Need not to re-validate the private DNS servers if they have
been validated.
Another test is added to protect the implementation of aosp/1108695.
Fix: 150678049
Test: resolv_integration_test passed
Change-Id: I7a866e7e305c0fb703ccb9546d1c70ce77e2d3c7
diff --git a/PrivateDnsConfiguration.cpp b/PrivateDnsConfiguration.cpp
index bfac68a..2263153 100644
--- a/PrivateDnsConfiguration.cpp
+++ b/PrivateDnsConfiguration.cpp
@@ -102,6 +102,10 @@
mPrivateDnsTransports.erase(netId);
resolv_stats_set_servers_for_dot(netId, {});
mPrivateDnsValidateThreads.erase(netId);
+ // TODO: As mPrivateDnsValidateThreads is reset, validation threads which haven't yet
+ // finished are considered outdated. Consider signaling the outdated validation threads to
+ // stop them from updating the state of PrivateDnsConfiguration (possibly disallow them to
+ // report onPrivateDnsValidationEvent).
return 0;
}