From fb4885aed075ff000b327b42aa230e27f6436215 Mon Sep 17 00:00:00 2001 From: Lonami Exo Date: Tue, 30 May 2017 10:11:18 +0200 Subject: [PATCH] Trigger automatic reconnection if server kicks us (#94) --- telethon/telegram_client.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/telethon/telegram_client.py b/telethon/telegram_client.py index ebe85539..075814ca 100644 --- a/telethon/telegram_client.py +++ b/telethon/telegram_client.py @@ -214,6 +214,13 @@ class TelegramClient: self._reconnect_to_dc(error.new_dc) return self.invoke(request, timeout=timeout, throw_invalid_dc=True) + except ConnectionResetError: + self._logger.info('Server disconnected us. Reconnecting and ' + 'resending request...') + self.reconnect() + self.invoke(request, timeout=timeout, + throw_invalid_dc=throw_invalid_dc) + except FloodWaitError: self.disconnect() raise @@ -842,9 +849,12 @@ class TelegramClient: for handler in self.update_handlers: handler(result) + except ConnectionResetError: + self._logger.info('Server disconnected us. Reconnecting...') + self.reconnect() + except TimeoutError: self._logger.debug('Receiving updates timed out') - self.reconnect() except ReadCancelledError: self._logger.info('Receiving updates cancelled')