Add warning for very old updates.

This commit is contained in:
levlam 2021-08-23 00:08:05 +03:00
parent 6507fb7602
commit 3749e1f672
2 changed files with 13 additions and 0 deletions

View File

@ -245,6 +245,10 @@ class AuthData {
return updates_duplicate_checker_.check(message_id);
}
Status recheck_update(int64 message_id) {
return updates_duplicate_rechecker_.check(message_id);
}
int32 next_seq_no(bool is_content_related) {
int32 res = seq_no_;
if (is_content_related) {
@ -281,6 +285,7 @@ class AuthData {
MessageIdDuplicateChecker<1000> duplicate_checker_;
MessageIdDuplicateChecker<1000> updates_duplicate_checker_;
MessageIdDuplicateChecker<100> updates_duplicate_rechecker_;
void update_salt(double now);
};

View File

@ -499,6 +499,14 @@ Status SessionConnection::on_slice_packet(const MsgInfo &info, Slice packet) {
// It is an update... I hope.
auto status = auth_data_->check_update(info.message_id);
auto recheck_status = auth_data_->recheck_update(info.message_id);
if (recheck_status.is_error() && recheck_status.code() == 2) {
LOG(WARNING) << "Receive very old update from " << get_name() << " created in " << (Time::now() - created_at_)
<< " in container " << container_id_ << " from session " << auth_data_->get_session_id()
<< " with message_id " << info.message_id << ", main_message_id = " << main_message_id_
<< ", seq_no = " << info.seq_no << " and original size " << info.size << ": " << status << ' '
<< recheck_status;
}
if (status.is_error()) {
if (status.code() == 2) {
LOG(WARNING) << "Receive too old update from " << get_name() << " created in " << (Time::now() - created_at_)