Loading Android.bp +1 −1 Original line number Diff line number Diff line Loading @@ -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", Loading tests/dns_responder/dns_responder_client_ndk.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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, Loading tests/dns_responder/dns_responder_client_ndk.h +5 −0 Original line number Diff line number Diff line Loading @@ -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: Loading tests/dnsresolver_binder_test.cpp +26 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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: {}, " Loading @@ -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, Loading Loading @@ -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> {}; Loading Loading
Android.bp +1 −1 Original line number Diff line number Diff line Loading @@ -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", Loading
tests/dns_responder/dns_responder_client_ndk.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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, Loading
tests/dns_responder/dns_responder_client_ndk.h +5 −0 Original line number Diff line number Diff line Loading @@ -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: Loading
tests/dnsresolver_binder_test.cpp +26 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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: {}, " Loading @@ -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, Loading Loading @@ -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> {}; Loading