From 7fc55cc54b38ebeebe3e55d47562146e20a11ac8 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Wed, 29 Mar 2023 17:23:28 +0300 Subject: =?UTF-8?q?fixes=20#3457=20(Telegram:=20=D0=BF=D1=80=D0=B8=20?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B2=D0=BE=D0=BC=20=D0=B2=D1=85=D0=BE=D0=B4?= =?UTF-8?q?=D0=B5=20=D0=BF=D1=80=D0=B8=D0=BB=D0=B5=D1=82=D0=B0=D0=B5=D1=82?= =?UTF-8?q?=20=D1=82=D0=BE=D0=BB=D1=8C=D0=BA=D0=BE=20=D0=BE=D0=B4=D0=B8?= =?UTF-8?q?=D0=BD=20=D1=87=D0=B0=D1=82)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- protocols/Telegram/src/auth.cpp | 5 +++++ protocols/Telegram/src/proto.h | 1 + protocols/Telegram/src/server.cpp | 7 +++++-- 3 files changed, 11 insertions(+), 2 deletions(-) (limited to 'protocols/Telegram/src') diff --git a/protocols/Telegram/src/auth.cpp b/protocols/Telegram/src/auth.cpp index 8a64b2a015..d55ca3a436 100644 --- a/protocols/Telegram/src/auth.cpp +++ b/protocols/Telegram/src/auth.cpp @@ -93,6 +93,11 @@ void CTelegramProto::ProcessAuth(TD::updateAuthorizationState *pObj) { pAuthState = std::move(pObj->authorization_state_); switch (pAuthState->get_id()) { + case TD::authorizationStateReady::ID: + if (pConnState->get_id() == TD::connectionStateReady::ID) + OnLoggedIn(); + break; + case TD::authorizationStateWaitTdlibParameters::ID: if (!m_bUnregister) { MFileVersion v; diff --git a/protocols/Telegram/src/proto.h b/protocols/Telegram/src/proto.h index 99ab0898ec..a386466176 100644 --- a/protocols/Telegram/src/proto.h +++ b/protocols/Telegram/src/proto.h @@ -161,6 +161,7 @@ class CTelegramProto : public PROTO std::unique_ptr m_pClientManager; TD::object_ptr pAuthState; + TD::object_ptr pConnState; mir_cs m_csMarkRead; TD::int53 m_markChatId = 0; diff --git a/protocols/Telegram/src/server.cpp b/protocols/Telegram/src/server.cpp index 07c1dba093..311633ed9f 100644 --- a/protocols/Telegram/src/server.cpp +++ b/protocols/Telegram/src/server.cpp @@ -425,7 +425,9 @@ void CTelegramProto::ProcessChatPosition(TD::updateChatPosition *pObj) void CTelegramProto::ProcessConnectionState(TD::updateConnectionState *pObj) { - switch (pObj->state_->get_id()) { + pConnState = std::move(pObj->state_); + + switch (pConnState->get_id()) { case TD::connectionStateConnecting::ID: debugLogA("Connection state: connecting"); break; @@ -444,7 +446,8 @@ void CTelegramProto::ProcessConnectionState(TD::updateConnectionState *pObj) case TD::connectionStateReady::ID: debugLogA("Connection state: connected"); - OnLoggedIn(); + if (pAuthState->get_id() == TD::authorizationStateReady::ID) + OnLoggedIn(); break; } } -- cgit v1.2.3