Possibly better handling of wrong is_outgoing flag.

GitOrigin-RevId: a53999ddb5aee83b2a737364ab07c2906b5b84fb
This commit is contained in:
levlam 2018-11-28 04:00:39 +03:00
parent 8e9c2721ef
commit b5abe4b751

View File

@ -9391,6 +9391,16 @@ std::pair<DialogId, unique_ptr<MessagesManager::Message>> MessagesManager::creat
<< ", flags = " << flags << " for " << message_id << " in " << dialog_id;
// }
is_outgoing = !is_outgoing;
if (dialog_type == DialogType::Channel && !running_get_difference_ && !running_get_channel_difference(dialog_id) &&
get_channel_difference_to_logevent_id_.count(dialog_id) == 0) {
// it is safer to completely ignore the message and re-get it through getChannelsDifference
Dialog *d = get_dialog(dialog_id);
if (d != nullptr) {
get_channel_difference(dialog_id, d->pts, true, "create_message");
return {DialogId(), nullptr};
}
}
}
MessageId reply_to_message_id = message_info.reply_to_message_id;