#include "net/dns/dns_client.h"
#include <memory>
#include <optional>
#include <string>
#include <utility>
#include "base/functional/bind.h"
#include "base/logging.h"
#include "base/memory/raw_ptr.h"
#include "base/metrics/histogram_macros.h"
#include "base/rand_util.h"
#include "base/ranges/algorithm.h"
#include "base/values.h"
#include "net/base/ip_address.h"
#include "net/base/ip_endpoint.h"
#include "net/dns/address_sorter.h"
#include "net/dns/dns_session.h"
#include "net/dns/dns_transaction.h"
#include "net/dns/dns_util.h"
#include "net/dns/public/dns_over_https_config.h"
#include "net/dns/public/secure_dns_mode.h"
#include "net/dns/resolve_context.h"
#include "net/log/net_log.h"
#include "net/log/net_log_event_type.h"
#include "net/socket/client_socket_factory.h"
#include "net/third_party/uri_template/uri_template.h"
#include "url/gurl.h"
#include "url/scheme_host_port.h"
namespace net {
namespace {
bool IsEqual(const std::optional<DnsConfig>& c1, const DnsConfig* c2) { … }
void UpdateConfigForDohUpgrade(DnsConfig* config) { … }
class DnsClientImpl : public DnsClient { … };
}
std::unique_ptr<DnsClient> DnsClient::CreateClient(NetLog* net_log) { … }
std::unique_ptr<DnsClient> DnsClient::CreateClientForTesting(
NetLog* net_log,
const RandIntCallback& rand_int_callback) { … }
}