diff options
author | Mike Yu <yumike@google.com> | 2023-01-12 12:28:06 +0000 |
---|---|---|
committer | Mike Yu <yumike@google.com> | 2023-11-07 08:50:19 +0000 |
commit | 921db2ae9c5f5483aa0a79e6687f2667588ca619 (patch) | |
tree | 9177cbed3dd9af20861d11ab26a97d58e18fc454 | |
parent | fea7ecb3a5e7adde0d51231b7f797944a4282390 (diff) | |
download | DnsResolver-921db2ae9c5f5483aa0a79e6687f2667588ca619.tar.gz |
Update Andorid.bp to use DnsResolver v13
Bug: 240259333
Test: atest
Change-Id: I09a7d3059462cf8355f43a1d26723f9e5a9138f1
-rw-r--r-- | Android.bp | 2 | ||||
-rw-r--r-- | tests/dns_responder/dns_responder_client_ndk.cpp | 2 | ||||
-rw-r--r-- | tests/dns_responder/dns_responder_client_ndk.h | 5 | ||||
-rw-r--r-- | tests/dnsresolver_binder_test.cpp | 28 |
4 files changed, 34 insertions, 3 deletions
@@ -53,7 +53,7 @@ cc_library_headers { ], } -dnsresolver_aidl_interface_lateststable_version = "V12" +dnsresolver_aidl_interface_lateststable_version = "V13" cc_library_static { name: "dnsresolver_aidl_interface-lateststable-ndk", diff --git a/tests/dns_responder/dns_responder_client_ndk.cpp b/tests/dns_responder/dns_responder_client_ndk.cpp index ee360dc2..52a170a7 100644 --- a/tests/dns_responder/dns_responder_client_ndk.cpp +++ b/tests/dns_responder/dns_responder_client_ndk.cpp @@ -30,6 +30,7 @@ using aidl::android::net::IDnsResolver; using aidl::android::net::INetd; using aidl::android::net::ResolverOptionsParcel; using aidl::android::net::ResolverParamsParcel; +using aidl::android::net::resolv::aidl::DohParamsParcel; using android::base::Error; using android::base::Result; using android::net::ResolverStats; @@ -51,6 +52,7 @@ ResolverParams::Builder::Builder() { mParcel.tlsServers = {kDefaultServer}; mParcel.caCertificate = kCaCert; mParcel.resolverOptions = ResolverOptionsParcel{}; // optional, must be explicitly set. + mParcel.dohParams = std::nullopt; } void DnsResponderClient::SetupMappings(unsigned numHosts, const std::vector<std::string>& domains, diff --git a/tests/dns_responder/dns_responder_client_ndk.h b/tests/dns_responder/dns_responder_client_ndk.h index da064ab2..2adc3c89 100644 --- a/tests/dns_responder/dns_responder_client_ndk.h +++ b/tests/dns_responder/dns_responder_client_ndk.h @@ -95,6 +95,11 @@ class ResolverParams { mParcel.meteredNetwork = metered; return *this; } + constexpr Builder& setDohParams( + const aidl::android::net::resolv::aidl::DohParamsParcel& dohParams) { + mParcel.dohParams = dohParams; + return *this; + } aidl::android::net::ResolverParamsParcel build() { return mParcel; } private: diff --git a/tests/dnsresolver_binder_test.cpp b/tests/dnsresolver_binder_test.cpp index b06ce5d8..2d9801e0 100644 --- a/tests/dnsresolver_binder_test.cpp +++ b/tests/dnsresolver_binder_test.cpp @@ -52,6 +52,7 @@ using aidl::android::net::ResolverHostsParcel; using aidl::android::net::ResolverOptionsParcel; using aidl::android::net::ResolverParamsParcel; using aidl::android::net::metrics::INetdEventListener; +using aidl::android::net::resolv::aidl::DohParamsParcel; using android::base::ReadFdToString; using android::base::unique_fd; using android::net::ResolverStats; @@ -215,6 +216,10 @@ class DnsResolverBinderTest : public NetNativeTestBase { toString(parms->hosts), parms->tcMode, parms->enforceDnsUid); } + std::string toString(const std::optional<DohParamsParcel>& params) { + return params.has_value() ? params.value().toString() : "(null)"; + } + std::string toString(const ResolverParamsParcel& parms) { return fmt::format( "ResolverParamsParcel{{netId: {}, sampleValiditySeconds: {}, successThreshold: {}, " @@ -224,14 +229,15 @@ class DnsResolverBinderTest : public NetNativeTestBase { "tlsName: {}, tlsServers: [{}], " "tlsFingerprints: [{}], " "caCertificate: {}, tlsConnectTimeoutMs: {}, " - "resolverOptions: {}, transportTypes: [{}], meteredNetwork: {}}}", + "resolverOptions: {}, transportTypes: [{}], meteredNetwork: {}, dohParams: {}}}", parms.netId, parms.sampleValiditySeconds, parms.successThreshold, parms.minSamples, parms.maxSamples, parms.baseTimeoutMsec, parms.retryCount, fmt::join(parms.servers, ", "), fmt::join(parms.domains, ", "), parms.tlsName, fmt::join(parms.tlsServers, ", "), fmt::join(parms.tlsFingerprints, ", "), android::base::StringReplace(parms.caCertificate, "\n", "\\n", true), parms.tlsConnectTimeoutMs, toString(parms.resolverOptions), - fmt::join(parms.transportTypes, ", "), parms.meteredNetwork); + fmt::join(parms.transportTypes, ", "), parms.meteredNetwork, + toString(parms.dohParams)); } PossibleLogData toSetResolverConfigurationLogData(const ResolverParamsParcel& parms, @@ -498,6 +504,24 @@ TEST_F(DnsResolverBinderTest, SetResolverConfiguration_TransportTypes_Default) { EXPECT_THAT(str, HasSubstr("UNKNOWN")); } +TEST_F(DnsResolverBinderTest, SetResolverConfiguration_DohParams) { + const auto paramsWithoutDohParams = ResolverParams::Builder().build(); + ::ndk::ScopedAStatus status = mDnsResolver->setResolverConfiguration(paramsWithoutDohParams); + EXPECT_TRUE(status.isOk()) << status.getMessage(); + mExpectedLogDataWithPacel.push_back(toSetResolverConfigurationLogData(paramsWithoutDohParams)); + + const DohParamsParcel dohParams = { + .name = "doh.google", + .ips = {"1.2.3.4", "2001:db8::2"}, + .dohpath = "/dns-query{?dns}", + .port = 443, + }; + const auto paramsWithDohParams = ResolverParams::Builder().setDohParams(dohParams).build(); + status = mDnsResolver->setResolverConfiguration(paramsWithDohParams); + EXPECT_TRUE(status.isOk()) << status.getMessage(); + mExpectedLogDataWithPacel.push_back(toSetResolverConfigurationLogData(paramsWithDohParams)); +} + class MeteredNetworkParameterizedTest : public DnsResolverBinderTest, public testing::WithParamInterface<bool> {}; |