Rename ResolveType to ResolverType.
GitOrigin-RevId: 64350527620c08bb192a18d951d5b3b5216f1162
This commit is contained in:
parent
da59ac47ea
commit
fc8917a4ed
@ -1243,7 +1243,7 @@ void ConnectionCreator::start_up() {
|
|||||||
|
|
||||||
GetHostByNameActor::Options options;
|
GetHostByNameActor::Options options;
|
||||||
options.scheduler_id = G()->get_gc_scheduler_id();
|
options.scheduler_id = G()->get_gc_scheduler_id();
|
||||||
options.types = {GetHostByNameActor::ResolveType::Google, GetHostByNameActor::ResolveType::Native};
|
options.resolver_types = {GetHostByNameActor::ResolverType::Google, GetHostByNameActor::ResolverType::Native};
|
||||||
options.ok_timeout = 5 * 60 - 1;
|
options.ok_timeout = 5 * 60 - 1;
|
||||||
options.error_timeout = 0;
|
options.error_timeout = 0;
|
||||||
get_host_by_name_actor_ = create_actor<GetHostByNameActor>("GetHostByNameActor", std::move(options));
|
get_host_by_name_actor_ = create_actor<GetHostByNameActor>("GetHostByNameActor", std::move(options));
|
||||||
|
@ -104,7 +104,7 @@ class NativeDnsResolver : public Actor {
|
|||||||
} // namespace detail
|
} // namespace detail
|
||||||
|
|
||||||
GetHostByNameActor::GetHostByNameActor(Options options) : options_(std::move(options)) {
|
GetHostByNameActor::GetHostByNameActor(Options options) : options_(std::move(options)) {
|
||||||
CHECK(!options_.types.empty());
|
CHECK(!options_.resolver_types.empty());
|
||||||
}
|
}
|
||||||
|
|
||||||
void GetHostByNameActor::run(string host, int port, bool prefer_ipv6, Promise<IPAddress> promise) {
|
void GetHostByNameActor::run(string host, int port, bool prefer_ipv6, Promise<IPAddress> promise) {
|
||||||
@ -128,14 +128,14 @@ void GetHostByNameActor::run_query(std::string host, bool prefer_ipv6, Query &qu
|
|||||||
});
|
});
|
||||||
|
|
||||||
CHECK(query.query.empty());
|
CHECK(query.query.empty());
|
||||||
CHECK(query.pos < options_.types.size());
|
CHECK(query.pos < options_.resolver_types.size());
|
||||||
auto resolver_type = options_.types[query.pos++];
|
auto resolver_type = options_.resolver_types[query.pos++];
|
||||||
query.query = [&] {
|
query.query = [&] {
|
||||||
switch (resolver_type) {
|
switch (resolver_type) {
|
||||||
case ResolveType::Native:
|
case ResolverType::Native:
|
||||||
return ActorOwn<>(create_actor_on_scheduler<detail::NativeDnsResolver>(
|
return ActorOwn<>(create_actor_on_scheduler<detail::NativeDnsResolver>(
|
||||||
"NativeDnsResolver", options_.scheduler_id, std::move(host), prefer_ipv6, std::move(promise)));
|
"NativeDnsResolver", options_.scheduler_id, std::move(host), prefer_ipv6, std::move(promise)));
|
||||||
case ResolveType::Google:
|
case ResolverType::Google:
|
||||||
return ActorOwn<>(create_actor_on_scheduler<detail::GoogleDnsResolver>(
|
return ActorOwn<>(create_actor_on_scheduler<detail::GoogleDnsResolver>(
|
||||||
"GoogleDnsResolver", options_.scheduler_id, std::move(host), prefer_ipv6, std::move(promise)));
|
"GoogleDnsResolver", options_.scheduler_id, std::move(host), prefer_ipv6, std::move(promise)));
|
||||||
default:
|
default:
|
||||||
@ -152,7 +152,7 @@ void GetHostByNameActor::on_query_result(std::string host, bool prefer_ipv6, Res
|
|||||||
CHECK(!query.promises.empty());
|
CHECK(!query.promises.empty());
|
||||||
CHECK(!query.query.empty());
|
CHECK(!query.query.empty());
|
||||||
|
|
||||||
if (res.is_error() && query.pos < options_.types.size()) {
|
if (res.is_error() && query.pos < options_.resolver_types.size()) {
|
||||||
query.query.reset();
|
query.query.reset();
|
||||||
return run_query(std::move(host), prefer_ipv6, query);
|
return run_query(std::move(host), prefer_ipv6, query);
|
||||||
}
|
}
|
||||||
|
@ -18,13 +18,13 @@ namespace td {
|
|||||||
|
|
||||||
class GetHostByNameActor final : public Actor {
|
class GetHostByNameActor final : public Actor {
|
||||||
public:
|
public:
|
||||||
enum class ResolveType { Native, Google };
|
enum class ResolverType { Native, Google };
|
||||||
|
|
||||||
struct Options {
|
struct Options {
|
||||||
static constexpr int32 DEFAULT_CACHE_TIME = 60 * 29; // 29 minutes
|
static constexpr int32 DEFAULT_CACHE_TIME = 60 * 29; // 29 minutes
|
||||||
static constexpr int32 DEFAULT_ERROR_CACHE_TIME = 60 * 5; // 5 minutes
|
static constexpr int32 DEFAULT_ERROR_CACHE_TIME = 60 * 5; // 5 minutes
|
||||||
|
|
||||||
vector<ResolveType> types{ResolveType::Native};
|
vector<ResolverType> resolver_types{ResolverType::Native};
|
||||||
int32 scheduler_id{-1};
|
int32 scheduler_id{-1};
|
||||||
int32 ok_timeout{DEFAULT_CACHE_TIME};
|
int32 ok_timeout{DEFAULT_CACHE_TIME};
|
||||||
int32 error_timeout{DEFAULT_ERROR_CACHE_TIME};
|
int32 error_timeout{DEFAULT_ERROR_CACHE_TIME};
|
||||||
|
@ -62,13 +62,13 @@ TEST(Mtproto, GetHostByNameActor) {
|
|||||||
|
|
||||||
std::vector<std::string> hosts = {
|
std::vector<std::string> hosts = {
|
||||||
"127.0.0.2", "1.1.1.1", "localhost", "web.telegram.org", "web.telegram.org", "москва.рф", "", "%", " ", "a"};
|
"127.0.0.2", "1.1.1.1", "localhost", "web.telegram.org", "web.telegram.org", "москва.рф", "", "%", " ", "a"};
|
||||||
for (auto types : {vector<GetHostByNameActor::ResolveType>{GetHostByNameActor::ResolveType::Native},
|
for (auto types : {vector<GetHostByNameActor::ResolverType>{GetHostByNameActor::ResolverType::Native},
|
||||||
vector<GetHostByNameActor::ResolveType>{GetHostByNameActor::ResolveType::Google},
|
vector<GetHostByNameActor::ResolverType>{GetHostByNameActor::ResolverType::Google},
|
||||||
vector<GetHostByNameActor::ResolveType>{GetHostByNameActor::ResolveType::Google,
|
vector<GetHostByNameActor::ResolverType>{GetHostByNameActor::ResolverType::Google,
|
||||||
GetHostByNameActor::ResolveType::Google,
|
GetHostByNameActor::ResolverType::Google,
|
||||||
GetHostByNameActor::ResolveType::Native}}) {
|
GetHostByNameActor::ResolverType::Native}}) {
|
||||||
GetHostByNameActor::Options options;
|
GetHostByNameActor::Options options;
|
||||||
options.types = types;
|
options.resolver_types = types;
|
||||||
options.scheduler_id = threads_n;
|
options.scheduler_id = threads_n;
|
||||||
|
|
||||||
auto actor = create_actor<GetHostByNameActor>("GetHostByNameActor", std::move(options));
|
auto actor = create_actor<GetHostByNameActor>("GetHostByNameActor", std::move(options));
|
||||||
|
Reference in New Issue
Block a user