diff --git a/td/telegram/CallActor.cpp b/td/telegram/CallActor.cpp index 45c7ade10..64def5a85 100644 --- a/td/telegram/CallActor.cpp +++ b/td/telegram/CallActor.cpp @@ -352,10 +352,11 @@ void CallActor::on_save_debug_query_result(Result r_net_query) { } void CallActor::send_call_log(td_api::object_ptr log_file, Promise promise) { + TRY_STATUS_PROMISE(promise, G()->close_status()); + if (!call_state_.need_log) { return promise.set_error(Status::Error(400, "Unexpected sendCallLog")); } - TRY_STATUS_PROMISE(promise, G()->close_status()); auto *file_manager = G()->td().get_actor_unsafe()->file_manager_.get(); auto r_file_id = file_manager->get_input_file_id(FileType::CallLog, log_file, DialogId(), false, false); @@ -418,18 +419,19 @@ void CallActor::upload_log_file(FileId file_id, Promise &&promise) { void CallActor::on_upload_log_file(FileId file_id, Promise &&promise, tl_object_ptr input_file) { - LOG(INFO) << "Log file " << file_id << " has been uploaded"; TRY_STATUS_PROMISE(promise, G()->close_status()); + LOG(INFO) << "Log file " << file_id << " has been uploaded"; + do_upload_log_file(file_id, std::move(input_file), std::move(promise)); } void CallActor::on_upload_log_file_error(FileId file_id, Promise &&promise, Status status) { + TRY_STATUS_PROMISE(promise, G()->close_status()); + LOG(WARNING) << "Log file " << file_id << " has upload error " << status; CHECK(status.is_error()); - TRY_STATUS_PROMISE(promise, G()->close_status()); - promise.set_error(Status::Error(status.code() > 0 ? status.code() : 500, status.message())); // TODO CHECK that status has always a code } diff --git a/td/telegram/ContactsManager.cpp b/td/telegram/ContactsManager.cpp index 322e4db32..bf42b8ea9 100644 --- a/td/telegram/ContactsManager.cpp +++ b/td/telegram/ContactsManager.cpp @@ -8058,7 +8058,7 @@ void ContactsManager::reload_created_public_dialogs(PublicDialogType type, void ContactsManager::finish_get_created_public_dialogs(PublicDialogType type, Result &&result) { if (G()->close_flag()) { - result = G()->close_status(); + result = Global::request_aborted_error(); } auto index = static_cast(type); diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index ab3dceb5e..d8b3896fe 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -23747,10 +23747,10 @@ void MessagesManager::on_get_history_from_database(DialogId dialog_id, MessageId bool from_the_end, bool only_local, vector &&messages, Promise &&promise) { + TRY_STATUS_PROMISE(promise, G()->close_status()); CHECK(-limit < offset && offset <= 0); CHECK(offset < 0 || from_the_end); CHECK(!from_message_id.is_scheduled()); - TRY_STATUS_PROMISE(promise, G()->close_status()); if (!have_input_peer(dialog_id, AccessRights::Read)) { LOG(WARNING) << "Ignore result of get_history_from_database in " << dialog_id; @@ -24008,8 +24008,8 @@ void MessagesManager::get_history_from_the_end(DialogId dialog_id, bool from_dat void MessagesManager::get_history_from_the_end_impl(const Dialog *d, bool from_database, bool only_local, Promise &&promise, const char *source) { - CHECK(d != nullptr); TRY_STATUS_PROMISE(promise, G()->close_status()); + CHECK(d != nullptr); auto dialog_id = d->dialog_id; if (!have_input_peer(dialog_id, AccessRights::Read)) { @@ -24063,9 +24063,9 @@ void MessagesManager::get_history(DialogId dialog_id, MessageId from_message_id, void MessagesManager::get_history_impl(const Dialog *d, MessageId from_message_id, int32 offset, int32 limit, bool from_database, bool only_local, Promise &&promise) { + TRY_STATUS_PROMISE(promise, G()->close_status()); CHECK(d != nullptr); CHECK(from_message_id.is_valid()); - TRY_STATUS_PROMISE(promise, G()->close_status()); auto dialog_id = d->dialog_id; if (!have_input_peer(dialog_id, AccessRights::Read)) { diff --git a/td/telegram/StickersManager.cpp b/td/telegram/StickersManager.cpp index 19725ec54..c5a4c587b 100644 --- a/td/telegram/StickersManager.cpp +++ b/td/telegram/StickersManager.cpp @@ -3882,7 +3882,7 @@ std::pair, vector> StickersManager::split_stickers_by_pre vector StickersManager::get_stickers(StickerType sticker_type, string emoji, int32 limit, DialogId dialog_id, bool force, Promise &&promise) { if (G()->close_flag()) { - promise.set_error(G()->close_status()); + promise.set_error(Global::request_aborted_error()); return {}; } @@ -8619,7 +8619,7 @@ void StickersManager::on_get_emoji_keywords_difference( const string &language_code, int32 from_version, Result> &&result) { if (G()->close_flag()) { - result = G()->close_status(); + result = Global::request_aborted_error(); } if (result.is_error()) { if (!G()->is_expected_error(result.error())) {