From 301da16f29462c2bac3581536aa6c416fbea5eb7 Mon Sep 17 00:00:00 2001 From: Lonami Exo Date: Wed, 11 Oct 2017 21:09:09 +0200 Subject: [PATCH] Fix pong response not reading all data from the buffer --- telethon/network/mtproto_sender.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/telethon/network/mtproto_sender.py b/telethon/network/mtproto_sender.py index ebbd2a9a..01565251 100644 --- a/telethon/network/mtproto_sender.py +++ b/telethon/network/mtproto_sender.py @@ -11,7 +11,7 @@ from ..errors import ( from ..extensions import BinaryReader from ..tl import TLMessage, MessageContainer, GzipPacked from ..tl.all_tlobjects import tlobjects -from ..tl.types import MsgsAck +from ..tl.types import MsgsAck, Pong from ..tl.functions.auth import LogOutRequest logging.getLogger(__name__).addHandler(logging.NullHandler()) @@ -249,12 +249,13 @@ class MtProtoSender: def _handle_pong(self, msg_id, sequence, reader): self._logger.debug('Handling pong') - reader.read_int(signed=False) # code - received_msg_id = reader.read_long() + pong = reader.tgread_object() + assert isinstance(pong, Pong) - request = self._pop_request(received_msg_id) + request = self._pop_request(pong.msg_id) if request: self._logger.debug('Pong confirmed a request') + request.result = pong request.confirm_received.set() return True