From af7e26bc49b441a4d008073fe8b857b4cdf5e198 Mon Sep 17 00:00:00 2001 From: levlam Date: Fri, 19 Mar 2021 02:51:50 +0300 Subject: [PATCH] Try to process versioned updates with old version. --- td/telegram/GroupCallManager.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/td/telegram/GroupCallManager.cpp b/td/telegram/GroupCallManager.cpp index 3055e6baf..bc776131d 100644 --- a/td/telegram/GroupCallManager.cpp +++ b/td/telegram/GroupCallManager.cpp @@ -1532,8 +1532,8 @@ bool GroupCallManager::process_pending_group_call_participant_updates(InputGroup for (auto &participant_it : participants) { auto &participant = participant_it.second; on_participant_speaking_in_group_call(input_group_call_id, participant); - if (participant.is_self) { - process_my_group_call_participant(input_group_call_id, std::move(participant)); + if (participant.is_self || participant.joined_date != 0) { + diff += process_group_call_participant(input_group_call_id, std::move(participant)); } } LOG(INFO) << "Ignore already applied updateGroupCallParticipants with version " << version << " in " @@ -1856,6 +1856,11 @@ int GroupCallManager::process_group_call_participant(InputGroupCallId input_grou return -1; } + if (old_participant.version > participant.version) { + LOG(INFO) << "Ignore outdated update of " << old_participant.dialog_id; + return 0; + } + if (old_participant.dialog_id != participant.dialog_id) { on_remove_group_call_participant(input_group_call_id, old_participant.dialog_id); on_add_group_call_participant(input_group_call_id, participant.dialog_id);