Loading PrivateDnsConfiguration.cpp +5 −5 Original line number Diff line number Diff line Loading @@ -26,15 +26,15 @@ #include "netdutils/BackoffSequence.h" int resolv_set_private_dns_for_net(unsigned netid, uint32_t mark, const char** servers, const unsigned numServers, const char* tlsName, const uint8_t** fingerprints, const unsigned numFingerprint) { const int numServers, const char* tlsName, const uint8_t** fingerprints, const int numFingerprint) { std::vector<std::string> tlsServers; for (unsigned i = 0; i < numServers; i++) { for (int i = 0; i < numServers; i++) { tlsServers.push_back(std::string(servers[i])); } std::set<std::vector<uint8_t>> tlsFingerprints; for (unsigned i = 0; i < numFingerprint; i++) { for (int i = 0; i < numFingerprint; i++) { // Each fingerprint stored are 32(SHA256_SIZE) bytes long. tlsFingerprints.emplace(std::vector<uint8_t>(fingerprints[i], fingerprints[i] + 32)); } Loading Loading @@ -194,7 +194,7 @@ void PrivateDnsConfiguration::getStatus(unsigned netId, ExternalPrivateDnsStatus const auto netPair = mPrivateDnsTransports.find(netId); if (netPair != mPrivateDnsTransports.end()) { status->numServers = netPair->second.size(); status->numServers = static_cast<int>(netPair->second.size()); int count = 0; for (const auto& serverPair : netPair->second) { status->serverStatus[count].ss = serverPair.first.ss; Loading include/netd_resolv/resolv.h +4 −5 Original line number Diff line number Diff line Loading @@ -91,7 +91,7 @@ struct android_net_context { struct ExternalPrivateDnsStatus { PrivateDnsMode mode; unsigned numServers; int numServers; struct PrivateDnsInfo { sockaddr_storage ss; const char* hostname; Loading Loading @@ -119,15 +119,14 @@ LIBNETD_RESOLV_PUBLIC int resolv_res_nsend(const android_net_context* netContext // Set name servers for a network LIBNETD_RESOLV_PUBLIC int resolv_set_nameservers_for_net(unsigned netid, const char** servers, unsigned numservers, const char* domains, int numservers, const char* domains, const __res_params* params); LIBNETD_RESOLV_PUBLIC int resolv_set_private_dns_for_net(unsigned netid, uint32_t mark, const char** servers, const unsigned numServers, const char** servers, int numServers, const char* tlsName, const uint8_t** fingerprints, const unsigned numFingerprints); int numFingerprints); LIBNETD_RESOLV_PUBLIC void resolv_delete_private_dns_for_net(unsigned netid); Loading res_cache.cpp +5 −6 Original line number Diff line number Diff line Loading @@ -1729,7 +1729,7 @@ static void resolv_set_default_params(struct __res_params* params) { params->base_timeout_msec = 0; // 0 = legacy algorithm } int resolv_set_nameservers_for_net(unsigned netid, const char** servers, unsigned numservers, int resolv_set_nameservers_for_net(unsigned netid, const char** servers, const int numservers, const char* domains, const __res_params* params) { char* cp; int* offset; Loading @@ -1744,13 +1744,13 @@ int resolv_set_nameservers_for_net(unsigned netid, const char** servers, unsigne // As a side effect this also reduces the time the lock is kept. char sbuf[NI_MAXSERV]; snprintf(sbuf, sizeof(sbuf), "%u", NAMESERVER_PORT); for (unsigned i = 0; i < numservers; i++) { for (int i = 0; i < numservers; i++) { // The addrinfo structures allocated here are freed in free_nameservers_locked(). const addrinfo hints = { .ai_family = AF_UNSPEC, .ai_socktype = SOCK_DGRAM, .ai_flags = AI_NUMERICHOST}; int rt = getaddrinfo_numeric(servers[i], sbuf, hints, &nsaddrinfo[i]); if (rt != 0) { for (unsigned j = 0; j < i; j++) { for (int j = 0; j < i; j++) { freeaddrinfo(nsaddrinfo[j]); } VLOG << __func__ << ": getaddrinfo_numeric(" << servers[i] Loading Loading @@ -1778,8 +1778,7 @@ int resolv_set_nameservers_for_net(unsigned netid, const char** servers, unsigne if (!resolv_is_nameservers_equal_locked(cache_info, servers, numservers)) { // free current before adding new free_nameservers_locked(cache_info); unsigned i; for (i = 0; i < numservers; i++) { for (int i = 0; i < numservers; i++) { cache_info->nsaddrinfo[i] = nsaddrinfo[i]; cache_info->nameservers[i] = strdup(servers[i]); VLOG << __func__ << ": netid = " << netid << ", addr = " << servers[i]; Loading @@ -1804,7 +1803,7 @@ int resolv_set_nameservers_for_net(unsigned netid, const char** servers, unsigne res_cache_clear_stats_locked(cache_info); ++cache_info->revision_id; } for (unsigned j = 0; j < numservers; j++) { for (int j = 0; j < numservers; j++) { freeaddrinfo(nsaddrinfo[j]); } } Loading resolver_test.cpp +6 −6 Original line number Diff line number Diff line Loading @@ -140,7 +140,7 @@ class ResolverTest : public ::testing::Test, public DnsResponderClient { std::vector<int32_t> stats32; auto rv = mNetdSrv->getResolverInfo(TEST_NETID, servers, domains, tlsServers, ¶ms32, &stats32); if (!rv.isOk() || params32.size() != INetd::RESOLVER_PARAMS_COUNT) { if (!rv.isOk() || params32.size() != static_cast<size_t>(INetd::RESOLVER_PARAMS_COUNT)) { return false; } *params = __res_params { Loading Loading @@ -456,7 +456,7 @@ TEST_F(ResolverTest, BinderSerialization) { INetd::RESOLVER_PARAMS_MAX_SAMPLES, INetd::RESOLVER_PARAMS_BASE_TIMEOUT_MSEC, }; int size = static_cast<int>(params_offsets.size()); const int size = static_cast<int>(params_offsets.size()); EXPECT_EQ(size, INetd::RESOLVER_PARAMS_COUNT); std::sort(params_offsets.begin(), params_offsets.end()); for (int i = 0; i < size; ++i) { Loading @@ -479,8 +479,8 @@ TEST_F(ResolverTest, GetHostByName_Binder) { ASSERT_TRUE(SetResolversForNetwork(servers, domains, mDefaultParams_Binder)); const hostent* result = gethostbyname(mapping.host.c_str()); size_t total_queries = std::accumulate(dns.begin(), dns.end(), 0, [this, &mapping](size_t total, auto& d) { const size_t total_queries = std::accumulate(dns.begin(), dns.end(), 0, [this, &mapping](size_t total, auto& d) { return total + GetNumQueriesForType(*d, ns_type::ns_t_a, mapping.entry.c_str()); }); Loading Loading
PrivateDnsConfiguration.cpp +5 −5 Original line number Diff line number Diff line Loading @@ -26,15 +26,15 @@ #include "netdutils/BackoffSequence.h" int resolv_set_private_dns_for_net(unsigned netid, uint32_t mark, const char** servers, const unsigned numServers, const char* tlsName, const uint8_t** fingerprints, const unsigned numFingerprint) { const int numServers, const char* tlsName, const uint8_t** fingerprints, const int numFingerprint) { std::vector<std::string> tlsServers; for (unsigned i = 0; i < numServers; i++) { for (int i = 0; i < numServers; i++) { tlsServers.push_back(std::string(servers[i])); } std::set<std::vector<uint8_t>> tlsFingerprints; for (unsigned i = 0; i < numFingerprint; i++) { for (int i = 0; i < numFingerprint; i++) { // Each fingerprint stored are 32(SHA256_SIZE) bytes long. tlsFingerprints.emplace(std::vector<uint8_t>(fingerprints[i], fingerprints[i] + 32)); } Loading Loading @@ -194,7 +194,7 @@ void PrivateDnsConfiguration::getStatus(unsigned netId, ExternalPrivateDnsStatus const auto netPair = mPrivateDnsTransports.find(netId); if (netPair != mPrivateDnsTransports.end()) { status->numServers = netPair->second.size(); status->numServers = static_cast<int>(netPair->second.size()); int count = 0; for (const auto& serverPair : netPair->second) { status->serverStatus[count].ss = serverPair.first.ss; Loading
include/netd_resolv/resolv.h +4 −5 Original line number Diff line number Diff line Loading @@ -91,7 +91,7 @@ struct android_net_context { struct ExternalPrivateDnsStatus { PrivateDnsMode mode; unsigned numServers; int numServers; struct PrivateDnsInfo { sockaddr_storage ss; const char* hostname; Loading Loading @@ -119,15 +119,14 @@ LIBNETD_RESOLV_PUBLIC int resolv_res_nsend(const android_net_context* netContext // Set name servers for a network LIBNETD_RESOLV_PUBLIC int resolv_set_nameservers_for_net(unsigned netid, const char** servers, unsigned numservers, const char* domains, int numservers, const char* domains, const __res_params* params); LIBNETD_RESOLV_PUBLIC int resolv_set_private_dns_for_net(unsigned netid, uint32_t mark, const char** servers, const unsigned numServers, const char** servers, int numServers, const char* tlsName, const uint8_t** fingerprints, const unsigned numFingerprints); int numFingerprints); LIBNETD_RESOLV_PUBLIC void resolv_delete_private_dns_for_net(unsigned netid); Loading
res_cache.cpp +5 −6 Original line number Diff line number Diff line Loading @@ -1729,7 +1729,7 @@ static void resolv_set_default_params(struct __res_params* params) { params->base_timeout_msec = 0; // 0 = legacy algorithm } int resolv_set_nameservers_for_net(unsigned netid, const char** servers, unsigned numservers, int resolv_set_nameservers_for_net(unsigned netid, const char** servers, const int numservers, const char* domains, const __res_params* params) { char* cp; int* offset; Loading @@ -1744,13 +1744,13 @@ int resolv_set_nameservers_for_net(unsigned netid, const char** servers, unsigne // As a side effect this also reduces the time the lock is kept. char sbuf[NI_MAXSERV]; snprintf(sbuf, sizeof(sbuf), "%u", NAMESERVER_PORT); for (unsigned i = 0; i < numservers; i++) { for (int i = 0; i < numservers; i++) { // The addrinfo structures allocated here are freed in free_nameservers_locked(). const addrinfo hints = { .ai_family = AF_UNSPEC, .ai_socktype = SOCK_DGRAM, .ai_flags = AI_NUMERICHOST}; int rt = getaddrinfo_numeric(servers[i], sbuf, hints, &nsaddrinfo[i]); if (rt != 0) { for (unsigned j = 0; j < i; j++) { for (int j = 0; j < i; j++) { freeaddrinfo(nsaddrinfo[j]); } VLOG << __func__ << ": getaddrinfo_numeric(" << servers[i] Loading Loading @@ -1778,8 +1778,7 @@ int resolv_set_nameservers_for_net(unsigned netid, const char** servers, unsigne if (!resolv_is_nameservers_equal_locked(cache_info, servers, numservers)) { // free current before adding new free_nameservers_locked(cache_info); unsigned i; for (i = 0; i < numservers; i++) { for (int i = 0; i < numservers; i++) { cache_info->nsaddrinfo[i] = nsaddrinfo[i]; cache_info->nameservers[i] = strdup(servers[i]); VLOG << __func__ << ": netid = " << netid << ", addr = " << servers[i]; Loading @@ -1804,7 +1803,7 @@ int resolv_set_nameservers_for_net(unsigned netid, const char** servers, unsigne res_cache_clear_stats_locked(cache_info); ++cache_info->revision_id; } for (unsigned j = 0; j < numservers; j++) { for (int j = 0; j < numservers; j++) { freeaddrinfo(nsaddrinfo[j]); } } Loading
resolver_test.cpp +6 −6 Original line number Diff line number Diff line Loading @@ -140,7 +140,7 @@ class ResolverTest : public ::testing::Test, public DnsResponderClient { std::vector<int32_t> stats32; auto rv = mNetdSrv->getResolverInfo(TEST_NETID, servers, domains, tlsServers, ¶ms32, &stats32); if (!rv.isOk() || params32.size() != INetd::RESOLVER_PARAMS_COUNT) { if (!rv.isOk() || params32.size() != static_cast<size_t>(INetd::RESOLVER_PARAMS_COUNT)) { return false; } *params = __res_params { Loading Loading @@ -456,7 +456,7 @@ TEST_F(ResolverTest, BinderSerialization) { INetd::RESOLVER_PARAMS_MAX_SAMPLES, INetd::RESOLVER_PARAMS_BASE_TIMEOUT_MSEC, }; int size = static_cast<int>(params_offsets.size()); const int size = static_cast<int>(params_offsets.size()); EXPECT_EQ(size, INetd::RESOLVER_PARAMS_COUNT); std::sort(params_offsets.begin(), params_offsets.end()); for (int i = 0; i < size; ++i) { Loading @@ -479,8 +479,8 @@ TEST_F(ResolverTest, GetHostByName_Binder) { ASSERT_TRUE(SetResolversForNetwork(servers, domains, mDefaultParams_Binder)); const hostent* result = gethostbyname(mapping.host.c_str()); size_t total_queries = std::accumulate(dns.begin(), dns.end(), 0, [this, &mapping](size_t total, auto& d) { const size_t total_queries = std::accumulate(dns.begin(), dns.end(), 0, [this, &mapping](size_t total, auto& d) { return total + GetNumQueriesForType(*d, ns_type::ns_t_a, mapping.entry.c_str()); }); Loading