From 9fb92d82939b550bba4037b10384cf8c47205595 Mon Sep 17 00:00:00 2001 From: levlam Date: Fri, 9 Mar 2018 03:52:12 +0300 Subject: [PATCH] Restore unknown my_id in AuthManager. GitOrigin-RevId: 00463e66676aba887ef3c12c7d8225ef224c0bc0 --- td/telegram/AuthManager.cpp | 5 +++++ td/telegram/ContactsManager.cpp | 10 +++++++--- td/telegram/ContactsManager.h | 1 + 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/td/telegram/AuthManager.cpp b/td/telegram/AuthManager.cpp index e506e691d..5d8ba2f0c 100644 --- a/td/telegram/AuthManager.cpp +++ b/td/telegram/AuthManager.cpp @@ -18,6 +18,8 @@ #include "td/telegram/Td.h" #include "td/telegram/UpdatesManager.h" +#include "td/actor/PromiseFuture.h" + #include "td/utils/buffer.h" #include "td/utils/crypto.h" #include "td/utils/logging.h" @@ -315,6 +317,9 @@ AuthManager::AuthManager(int32 api_id, const string &api_hash, ActorShared<> par if (my_id.is_valid()) { // just in case G()->shared_config().set_option_integer("my_id", my_id.get()); + } else { + LOG(ERROR) << "Restore unknown my_id"; + ContactsManager::send_get_me_query(G()->td().get_actor_unsafe(), Auto()); } update_state(State::Ok); } else if (auth_str == "logout") { diff --git a/td/telegram/ContactsManager.cpp b/td/telegram/ContactsManager.cpp index 27dcfc61b..870e21d0b 100644 --- a/td/telegram/ContactsManager.cpp +++ b/td/telegram/ContactsManager.cpp @@ -7925,12 +7925,16 @@ ContactsManager::User *ContactsManager::get_user(UserId user_id) { } } +void ContactsManager::send_get_me_query(Td *td, Promise &&promise) { + vector> users; + users.push_back(make_tl_object()); + td->create_handler(std::move(promise))->send(std::move(users)); +} + UserId ContactsManager::get_me(Promise &&promise) { auto my_id = get_my_id("get_me"); if (!have_user_force(my_id)) { - vector> users; - users.push_back(make_tl_object()); - td_->create_handler(std::move(promise))->send(std::move(users)); + send_get_me_query(td_, std::move(promise)); return UserId(); } diff --git a/td/telegram/ContactsManager.h b/td/telegram/ContactsManager.h index 34145b4ec..3e87b5e25 100644 --- a/td/telegram/ContactsManager.h +++ b/td/telegram/ContactsManager.h @@ -336,6 +336,7 @@ class ContactsManager : public Actor { bool have_min_user(UserId user_id) const; bool have_user_force(UserId user_id); + static void send_get_me_query(Td *td, Promise &&promise); UserId get_me(Promise &&promise); bool get_user(UserId user_id, int left_tries, Promise &&promise); bool get_user_full(UserId user_id, Promise &&promise);