From 0256a95f49a9249fa9d80f4a7e1e84f31bc50cfa Mon Sep 17 00:00:00 2001 From: levlam Date: Wed, 21 Oct 2020 16:54:32 +0300 Subject: [PATCH] Fix GetChannelDifferenceLogEvent handling. GitOrigin-RevId: facbb318cbba1c9ac6908db86ec5fba123c88d7b --- td/telegram/MessagesManager.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index 9bc65d499..095f5c0bc 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -33826,6 +33826,12 @@ void MessagesManager::get_channel_difference(DialogId dialog_id, int32 pts, bool after_get_channel_difference(dialog_id, false); return; } + if (!have_input_peer(dialog_id, AccessRights::Read)) { + LOG(INFO) << "Skip running channels.getDifference for " << dialog_id << " from " << source + << " because have no read access to it"; + after_get_channel_difference(dialog_id, false); + return; + } if (force && get_channel_difference_to_log_event_id_.count(dialog_id) == 0 && !G()->ignore_backgrond_updates()) { auto channel_id = dialog_id.get_channel_id(); @@ -33850,14 +33856,6 @@ void MessagesManager::do_get_channel_difference(DialogId dialog_id, int32 pts, b << " because it has already been run"; return; } - bool have_access = have_input_peer(dialog_id, AccessRights::Read); - if (!have_access) { - LOG(INFO) << "Skip running channels.getDifference for " << dialog_id << " from " << source - << " because have no read access to it"; - active_get_channel_differencies_.erase(dialog_id); - after_get_channel_difference(dialog_id, false); - return; - } // can be called multiple times before after_get_channel_difference const Dialog *d = get_dialog(dialog_id);