diff --git a/telethon/client/telegrambaseclient.py b/telethon/client/telegrambaseclient.py index 5b82b625..89d59495 100644 --- a/telethon/client/telegrambaseclient.py +++ b/telethon/client/telegrambaseclient.py @@ -369,7 +369,7 @@ class TelegramBaseClient(abc.ABC): self.session.set_dc(dc.id, dc.ip_address, dc.port) # auth_key's are associated with a server, which has now changed # so it's not valid anymore. Set to None to force recreating it. - self.session.auth_key = self._sender.state.auth_key = None + self.session.auth_key = self._sender._connection._state.auth_key = None self.session.save() await self._disconnect() return await self.connect() diff --git a/telethon/network/mtprotolayer.py b/telethon/network/mtprotolayer.py index 8142a5e9..2960b28e 100644 --- a/telethon/network/mtprotolayer.py +++ b/telethon/network/mtprotolayer.py @@ -2,6 +2,7 @@ import io import struct from .mtprotostate import MTProtoState +from ..tl import TLRequest from ..tl.core.messagecontainer import MessageContainer @@ -78,14 +79,15 @@ class MTProtoLayer: for state in state_list: if not isinstance(state, list): n += 1 - state.msg_id = \ - self._state.write_data_as_message(buffer, state.data) + state.msg_id = self._state.write_data_as_message( + buffer, state.data, isinstance(state.request, TLRequest)) else: last_id = None for s in state: n += 1 last_id = s.msg_id = self._state.write_data_as_message( - buffer, s.data, after_id=last_id) + buffer, s.data, isinstance(s.request, TLRequest), + after_id=last_id) if n > 1: # Inlined code to pack several messages into a container @@ -97,7 +99,9 @@ class MTProtoLayer: '