diff --git a/td/telegram/PasswordManager.cpp b/td/telegram/PasswordManager.cpp index f61b19342..2f1eb2bcf 100644 --- a/td/telegram/PasswordManager.cpp +++ b/td/telegram/PasswordManager.cpp @@ -7,6 +7,7 @@ #include "td/telegram/PasswordManager.h" #include "td/telegram/ConfigManager.h" +#include "td/telegram/ConfigShared.h" #include "td/telegram/DhCache.h" #include "td/telegram/Global.h" #include "td/telegram/logevent/LogEvent.h" @@ -747,6 +748,8 @@ void PasswordManager::do_get_state(Promise promise) { send_with_promise( std::move(query), PromiseCreator::lambda([actor_id = actor_id(this), code_length = last_code_length_, promise = std::move(promise)](Result r_query) mutable { + TRY_STATUS_PROMISE(promise, G()->close_status()); + auto r_result = fetch_result(std::move(r_query)); if (r_result.is_error()) { return promise.set_error(r_result.move_as_error()); @@ -780,6 +783,12 @@ void PasswordManager::do_get_state(Promise promise) { state.password_hint = std::move(password->hint_); state.has_recovery_email_address = password->has_recovery_; state.has_secure_values = password->has_secure_values_; + + auto days = narrow_cast(G()->shared_config().get_option_integer("otherwise_relogin_days")); + if (days > 0) { + dismiss_suggested_action(SuggestedAction{SuggestedAction::Type::SetPassword, DialogId(), days}, + Promise()); + } } else { state.has_password = false; send_closure(actor_id, &PasswordManager::drop_cached_secret);