From c5b258f097dce3aaa2b98c31d3067acc63415615 Mon Sep 17 00:00:00 2001 From: levlam Date: Thu, 18 Aug 2022 21:45:29 +0300 Subject: [PATCH] Explicitly pass options to get_simple_config_*. --- td/telegram/ConfigManager.cpp | 51 +++++++++++++++++------------------ td/telegram/ConfigManager.h | 22 +++++++-------- test/mtproto.cpp | 2 +- 3 files changed, 36 insertions(+), 39 deletions(-) diff --git a/td/telegram/ConfigManager.cpp b/td/telegram/ConfigManager.cpp index 6ae066c60..1dab07d7d 100644 --- a/td/telegram/ConfigManager.cpp +++ b/td/telegram/ConfigManager.cpp @@ -243,22 +243,19 @@ static ActorOwn<> get_simple_config_impl(Promise promise, in #endif } -ActorOwn<> get_simple_config_azure(Promise promise, const Global *shared_config, bool is_test, - int32 scheduler_id) { +ActorOwn<> get_simple_config_azure(Promise promise, bool prefer_ipv6, Slice domain_name, + bool is_test, int32 scheduler_id) { string url = PSTRING() << "https://software-download.microsoft.com/" << (is_test ? "test" : "prod") << "v2/config.txt"; - const bool prefer_ipv6 = shared_config == nullptr ? false : shared_config->get_option_boolean("prefer_ipv6"); return get_simple_config_impl(std::move(promise), scheduler_id, std::move(url), "tcdnb.azureedge.net", {}, prefer_ipv6, [](HttpQuery &http_query) -> Result { return http_query.content_.str(); }); } static ActorOwn<> get_simple_config_dns(Slice address, Slice host, Promise promise, - const Global *shared_config, bool is_test, int32 scheduler_id) { - string name = shared_config == nullptr ? string() : shared_config->get_option_string("dc_txt_domain_name"); - const bool prefer_ipv6 = shared_config == nullptr ? false : shared_config->get_option_boolean("prefer_ipv6"); - if (name.empty()) { - name = is_test ? "tapv3.stel.com" : "apv3.stel.com"; + bool prefer_ipv6, Slice domain_name, bool is_test, int32 scheduler_id) { + if (domain_name.empty()) { + domain_name = is_test ? Slice("tapv3.stel.com") : Slice("apv3.stel.com"); } auto get_config = [](HttpQuery &http_query) -> Result { auto get_data = [](JsonValue &answer) -> Result { @@ -301,21 +298,22 @@ static ActorOwn<> get_simple_config_dns(Slice address, Slice host, Promise get_simple_config_google_dns(Promise promise, const Global *shared_config, bool is_test, - int32 scheduler_id) { - return get_simple_config_dns("dns.google/resolve", "dns.google", std::move(promise), shared_config, is_test, - scheduler_id); +ActorOwn<> get_simple_config_google_dns(Promise promise, bool prefer_ipv6, Slice domain_name, + bool is_test, int32 scheduler_id) { + return get_simple_config_dns("dns.google/resolve", "dns.google", std::move(promise), prefer_ipv6, domain_name, + is_test, scheduler_id); } -ActorOwn<> get_simple_config_mozilla_dns(Promise promise, const Global *shared_config, bool is_test, - int32 scheduler_id) { +ActorOwn<> get_simple_config_mozilla_dns(Promise promise, bool prefer_ipv6, Slice domain_name, + bool is_test, int32 scheduler_id) { return get_simple_config_dns("mozilla.cloudflare-dns.com/dns-query", "mozilla.cloudflare-dns.com", std::move(promise), - shared_config, is_test, scheduler_id); + prefer_ipv6, domain_name, is_test, scheduler_id); } static string generate_firebase_remote_config_payload() { @@ -328,8 +326,8 @@ static string generate_firebase_remote_config_payload() { << app_instance_id << "\"}"; } -ActorOwn<> get_simple_config_firebase_remote_config(Promise promise, const Global *shared_config, - bool is_test, int32 scheduler_id) { +ActorOwn<> get_simple_config_firebase_remote_config(Promise promise, bool prefer_ipv6, + Slice domain_name, bool is_test, int32 scheduler_id) { if (is_test) { promise.set_error(Status::Error(400, "Test config is not supported")); return ActorOwn<>(); @@ -339,7 +337,6 @@ ActorOwn<> get_simple_config_firebase_remote_config(Promise string url = "https://firebaseremoteconfig.googleapis.com/v1/projects/peak-vista-421/namespaces/" "firebase:fetch?key=AIzaSyC2-kAkpDsroixRXw-sTw-Wfqo4NxjMwwM"; - const bool prefer_ipv6 = shared_config == nullptr ? false : shared_config->get_option_boolean("prefer_ipv6"); auto get_config = [](HttpQuery &http_query) -> Result { TRY_RESULT(json, json_decode(http_query.get_arg("entries"))); if (json.type() != JsonValue::Type::Object) { @@ -353,7 +350,7 @@ ActorOwn<> get_simple_config_firebase_remote_config(Promise {}, prefer_ipv6, std::move(get_config), payload, "application/json"); } -ActorOwn<> get_simple_config_firebase_realtime(Promise promise, const Global *shared_config, +ActorOwn<> get_simple_config_firebase_realtime(Promise promise, bool prefer_ipv6, Slice domain_name, bool is_test, int32 scheduler_id) { if (is_test) { promise.set_error(Status::Error(400, "Test config is not supported")); @@ -361,7 +358,6 @@ ActorOwn<> get_simple_config_firebase_realtime(Promise promi } string url = "https://reserve-5a846.firebaseio.com/ipconfigv3.json"; - const bool prefer_ipv6 = shared_config == nullptr ? false : shared_config->get_option_boolean("prefer_ipv6"); auto get_config = [](HttpQuery &http_query) -> Result { return http_query.get_arg("content").str(); }; @@ -369,15 +365,14 @@ ActorOwn<> get_simple_config_firebase_realtime(Promise promi prefer_ipv6, std::move(get_config)); } -ActorOwn<> get_simple_config_firebase_firestore(Promise promise, const Global *shared_config, - bool is_test, int32 scheduler_id) { +ActorOwn<> get_simple_config_firebase_firestore(Promise promise, bool prefer_ipv6, + Slice domain_name, bool is_test, int32 scheduler_id) { if (is_test) { promise.set_error(Status::Error(400, "Test config is not supported")); return ActorOwn<>(); } string url = "https://www.google.com/v1/projects/reserve-5a846/databases/(default)/documents/ipconfig/v3"; - const bool prefer_ipv6 = shared_config == nullptr ? false : shared_config->get_option_boolean("prefer_ipv6"); auto get_config = [](HttpQuery &http_query) -> Result { TRY_RESULT(json, json_decode(http_query.get_arg("fields"))); if (json.type() != JsonValue::Type::Object) { @@ -840,7 +835,9 @@ class ConfigRecoverer final : public Actor { return get_simple_config_mozilla_dns; } }(); - simple_config_query_ = get_simple_config(std::move(promise), G(), G()->is_test_dc(), G()->get_gc_scheduler_id()); + simple_config_query_ = get_simple_config(std::move(promise), G()->get_option_boolean("prefer_ipv6"), + G()->get_option_string("dc_txt_domain_name"), G()->is_test_dc(), + G()->get_gc_scheduler_id()); simple_config_turn_++; } diff --git a/td/telegram/ConfigManager.h b/td/telegram/ConfigManager.h index 9f6ddd01b..bf9f7402a 100644 --- a/td/telegram/ConfigManager.h +++ b/td/telegram/ConfigManager.h @@ -40,23 +40,23 @@ struct SimpleConfigResult { Result decode_config(Slice input); -ActorOwn<> get_simple_config_azure(Promise promise, const Global *shared_config, bool is_test, - int32 scheduler_id); +ActorOwn<> get_simple_config_azure(Promise promise, bool prefer_ipv6, Slice domain_name, + bool is_test, int32 scheduler_id); -ActorOwn<> get_simple_config_google_dns(Promise promise, const Global *shared_config, bool is_test, - int32 scheduler_id); +ActorOwn<> get_simple_config_google_dns(Promise promise, bool prefer_ipv6, Slice domain_name, + bool is_test, int32 scheduler_id); -ActorOwn<> get_simple_config_mozilla_dns(Promise promise, const Global *shared_config, bool is_test, - int32 scheduler_id); +ActorOwn<> get_simple_config_mozilla_dns(Promise promise, bool prefer_ipv6, Slice domain_name, + bool is_test, int32 scheduler_id); -ActorOwn<> get_simple_config_firebase_remote_config(Promise promise, const Global *shared_config, - bool is_test, int32 scheduler_id); +ActorOwn<> get_simple_config_firebase_remote_config(Promise promise, bool prefer_ipv6, + Slice domain_name, bool is_test, int32 scheduler_id); -ActorOwn<> get_simple_config_firebase_realtime(Promise promise, const Global *shared_config, +ActorOwn<> get_simple_config_firebase_realtime(Promise promise, bool prefer_ipv6, Slice domain_name, bool is_test, int32 scheduler_id); -ActorOwn<> get_simple_config_firebase_firestore(Promise promise, const Global *shared_config, - bool is_test, int32 scheduler_id); +ActorOwn<> get_simple_config_firebase_firestore(Promise promise, bool prefer_ipv6, + Slice domain_name, bool is_test, int32 scheduler_id); class HttpDate { static bool is_leap(int32 year) { diff --git a/test/mtproto.cpp b/test/mtproto.cpp index 4f7e5c3f1..f15c5ca10 100644 --- a/test/mtproto.cpp +++ b/test/mtproto.cpp @@ -167,7 +167,7 @@ TEST(Mtproto, config) { } }); cnt++; - func(std::move(promise), nullptr, is_test, -1).release(); + func(std::move(promise), false, td::Slice(), is_test, -1).release(); }; run(td::get_simple_config_azure, false);