auto dns_resolver_or_error = selectDnsResolver(proto_config.typed_dns_resolver_config(), context);
if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.enable_new_dns_implementation")) {
if (Runtime::runtimeFeatureEnabled("envoy.reloadable_features.enable_new_dns_implementation")) {
DnsClusterImpl::extractAndProcessLoadAssignment(const envoy::config::cluster::v3::Cluster& cluster,
new DnsClusterImpl(cluster, dns_cluster, context, std::move(dns_resolver), creation_status));
if (locality_lb_endpoints.size() != 1 || locality_lb_endpoints[0].lb_endpoints().size() != 1) {
// If the config provides no endpoints, the cluster is initialized immediately as if all hosts are
void DnsClusterImpl::updateAllHosts(const HostVector& hosts_added, const HostVector& hosts_removed,
// TODO(dio): The uniqueness of a host address resolved in STRICT_DNS cluster per priority is not
// duplicated hosts inside a priority. And if we want to enforce this behavior, it should be done
if (parent_.updateDynamicHostList(new_hosts.hosts, hosts_, hosts_added, hosts_removed, all_hosts_,