diff options
author | Ken Chen <cken@google.com> | 2023-11-06 05:42:54 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2023-11-06 05:42:54 +0000 |
commit | b333a4b910c86ace3ddb38d413d484b8e4d56a9d (patch) | |
tree | f7499c94f8118fe89c5a883e79560d07f0659f6f | |
parent | a65c72b68bff64fc63834f84a92b957f9cc7bd88 (diff) | |
parent | b06d45edddcf58fac60275c1b4d2c972fa7a8767 (diff) | |
download | DnsResolver-b333a4b910c86ace3ddb38d413d484b8e4d56a9d.tar.gz |
Merge "Remove "Add skip_4a_query_on_v6_linklocal_addr flag"" into main
-rw-r--r-- | Experiments.h | 1 | ||||
-rw-r--r-- | getaddrinfo.cpp | 3 | ||||
-rw-r--r-- | tests/resolv_integration_test.cpp | 49 | ||||
-rw-r--r-- | tests/resolv_test_utils.h | 2 |
4 files changed, 1 insertions, 54 deletions
diff --git a/Experiments.h b/Experiments.h index e087a90a..106705b5 100644 --- a/Experiments.h +++ b/Experiments.h @@ -69,7 +69,6 @@ class Experiments { "parallel_lookup_sleep_time", "retransmission_time_interval", "retry_count", - "skip_4a_query_on_v6_linklocal_addr", "sort_nameservers", }; // This value is used in updateInternal as the default value if any flags can't be found. diff --git a/getaddrinfo.cpp b/getaddrinfo.cpp index 4ad24248..8d9ed6d4 100644 --- a/getaddrinfo.cpp +++ b/getaddrinfo.cpp @@ -1310,8 +1310,7 @@ static int _find_src_addr(const struct sockaddr* addr, struct sockaddr* src_addr return -1; } - if (Experiments::getInstance()->getFlag("skip_4a_query_on_v6_linklocal_addr", 1) && - src_addr->sa_family == AF_INET6) { + if (src_addr->sa_family == AF_INET6) { sockaddr_in6* sin6 = reinterpret_cast<sockaddr_in6*>(src_addr); if (!allow_v6_linklocal && IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) { // There is no point in sending an AAAA query because the device does not have a global diff --git a/tests/resolv_integration_test.cpp b/tests/resolv_integration_test.cpp index 38d5567e..cb04cf1b 100644 --- a/tests/resolv_integration_test.cpp +++ b/tests/resolv_integration_test.cpp @@ -7813,55 +7813,6 @@ TEST_F(ResolverMultinetworkTest, IPv6LinkLocalWithDefaultRoute) { EXPECT_EQ(GetNumQueriesForType(*dnsPair->dnsServer, ns_type::ns_t_aaaa, host_name), 1U); } -// Test if the "do not send AAAA query when IPv6 address is link-local with a default route" feature -// can be toggled by flag. -TEST_F(ResolverMultinetworkTest, IPv6LinkLocalWithDefaultRouteFlag) { - // Kernel 4.4 does not provide an IPv6 link-local address when an interface is added to a - // network. Skip it because v6 link-local address is a prerequisite for this test. - SKIP_IF_KERNEL_VERSION_LOWER_THAN(4, 9, 0); - - constexpr char host_name[] = "ohayou.example.com."; - const struct TestConfig { - std::string flagValue; - std::vector<std::string> ips; - unsigned numOfQuadAQuery; - } TestConfigs[]{{"0", {"192.0.2.0", "2001:db8:cafe:d00d::31"}, 1U}, {"1", {"192.0.2.0"}, 0U}}; - - for (const auto& config : TestConfigs) { - SCOPED_TRACE(fmt::format("flagValue = {}, numOfQuadAQuery = {}", config.flagValue, - config.numOfQuadAQuery)); - - ScopedSystemProperties sp1(kSkip4aQueryOnV6LinklocalAddrFlag, config.flagValue); - ScopedPhysicalNetwork network = CreateScopedPhysicalNetwork(ConnectivityType::V4); - ASSERT_RESULT_OK(network.init()); - - // Add IPv6 default route - ASSERT_TRUE(mDnsClient.netdService() - ->networkAddRoute(network.netId(), network.ifname(), "::/0", "") - .isOk()); - - // Ensuring that routing is applied. This is required for mainline test (b/257404586). - usleep(1000 * 1000); - - const Result<DnsServerPair> dnsPair = network.addIpv4Dns(); - ASSERT_RESULT_OK(dnsPair); - StartDns(*dnsPair->dnsServer, {{host_name, ns_type::ns_t_a, "192.0.2.0"}, - {host_name, ns_type::ns_t_aaaa, "2001:db8:cafe:d00d::31"}}); - - ASSERT_TRUE(network.setDnsConfiguration()); - ASSERT_TRUE(network.startTunForwarder()); - - auto result = android_getaddrinfofornet_wrapper(host_name, network.netId()); - ASSERT_RESULT_OK(result); - ScopedAddrinfo ai_results(std::move(result.value())); - std::vector<std::string> result_strs = ToStrings(ai_results); - EXPECT_THAT(result_strs, testing::UnorderedElementsAreArray(config.ips)); - EXPECT_EQ(GetNumQueriesForType(*dnsPair->dnsServer, ns_type::ns_t_a, host_name), 1U); - EXPECT_EQ(GetNumQueriesForType(*dnsPair->dnsServer, ns_type::ns_t_aaaa, host_name), - config.numOfQuadAQuery); - } -} - // v6 mdns is expected to be sent when the IPv6 address is a link-local with a default route. TEST_F(ResolverMultinetworkTest, MdnsIPv6LinkLocalWithDefaultRoute) { // Kernel 4.4 does not provide an IPv6 link-local address when an interface is added to a diff --git a/tests/resolv_test_utils.h b/tests/resolv_test_utils.h index 540dd2b6..4d6e8640 100644 --- a/tests/resolv_test_utils.h +++ b/tests/resolv_test_utils.h @@ -188,8 +188,6 @@ const std::string kKeepListeningUdpFlag(kFlagPrefix + "keep_listening_udp"); const std::string kParallelLookupSleepTimeFlag(kFlagPrefix + "parallel_lookup_sleep_time"); const std::string kRetransIntervalFlag(kFlagPrefix + "retransmission_time_interval"); const std::string kRetryCountFlag(kFlagPrefix + "retry_count"); -const std::string kSkip4aQueryOnV6LinklocalAddrFlag(kFlagPrefix + - "skip_4a_query_on_v6_linklocal_addr"); const std::string kSortNameserversFlag(kFlagPrefix + "sort_nameservers"); const std::string kPersistNetPrefix("persist.net."); |