From 7729a2a78faa087d2953bc33eda5a6897c88319b Mon Sep 17 00:00:00 2001 From: Lonami Exo Date: Wed, 25 Jul 2018 12:33:12 +0200 Subject: [PATCH] More logging for bad messages (#907) --- telethon/network/mtprotosender.py | 2 +- telethon/network/mtprotostate.py | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/telethon/network/mtprotosender.py b/telethon/network/mtprotosender.py index 4a3a38b7..cf19ecb4 100644 --- a/telethon/network/mtprotosender.py +++ b/telethon/network/mtprotosender.py @@ -611,7 +611,7 @@ class MTProtoSender: bad_msg = message.obj msg = self._pending_messages.get(bad_msg.bad_msg_id) - __log__.debug('Handling bad msg for message %d', bad_msg.bad_msg_id) + __log__.debug('Handling bad msg %s', bad_msg) if bad_msg.error_code in (16, 17): # Sent msg_id too low or too high (respectively). # Use the current msg_id to determine the right time offset. diff --git a/telethon/network/mtprotostate.py b/telethon/network/mtprotostate.py index 6ea13ae2..e7bde1de 100644 --- a/telethon/network/mtprotostate.py +++ b/telethon/network/mtprotostate.py @@ -157,10 +157,20 @@ class MTProtoState: Updates the time offset to the correct one given a known valid message ID. """ + bad = self._get_new_msg_id() + old = self.time_offset + now = int(time.time()) correct = correct_msg_id >> 32 self.time_offset = correct - now - self._last_msg_id = 0 + + if self.time_offset != old: + self._last_msg_id = 0 + __log__.debug( + 'Updated time offset (old offset %d, bad %d, good %d, new %d)', + old, bad, correct_msg_id, self.time_offset + ) + return self.time_offset def _get_seq_no(self, content_related):