Remove too new messages in on_get_history beforehand just in case.

This commit is contained in:
levlam 2022-03-21 20:14:26 +03:00
parent ac4e273274
commit dfe41c9a0d

View File

@ -10058,6 +10058,26 @@ void MessagesManager::on_get_history(DialogId dialog_id, MessageId from_message_
}
}
if (d->last_new_message_id.is_valid()) {
// remove too new messages from response
while (!messages.empty()) {
if (get_message_dialog_id(messages[0]) == dialog_id &&
get_message_id(messages[0], false) <= d->last_new_message_id) {
// the message is old enough
break;
}
LOG(INFO) << "Ignore too new " << get_message_id(messages[0], false);
messages.erase(messages.begin());
if (messages.empty()) {
// received no suitable messages; try again
return promise.set_value(Unit());
} else {
last_received_message_id = get_message_id(messages[0], false);
}
}
}
bool prev_have_full_history = d->have_full_history;
MessageId prev_last_new_message_id = d->last_new_message_id;
MessageId prev_first_database_message_id = d->first_database_message_id;