From cad6faa79055bdf595760a5cb636ee2078685b78 Mon Sep 17 00:00:00 2001 From: John Preston Date: Thu, 29 Dec 2022 11:42:08 +0400 Subject: [PATCH] Fix connection re-init in case of CONNECTION_NOT_INITED. --- Telegram/SourceFiles/mtproto/mtp_instance.cpp | 1 + Telegram/SourceFiles/mtproto/session.cpp | 6 +++++- Telegram/SourceFiles/mtproto/session.h | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Telegram/SourceFiles/mtproto/mtp_instance.cpp b/Telegram/SourceFiles/mtproto/mtp_instance.cpp index 5ea8954bd9..e24713a039 100644 --- a/Telegram/SourceFiles/mtproto/mtp_instance.cpp +++ b/Telegram/SourceFiles/mtproto/mtp_instance.cpp @@ -1537,6 +1537,7 @@ bool Instance::Private::onErrorDefault( const auto session = getSession(qAbs(dcWithShift)); request->needsLayer = true; + session->setConnectionNotInited(); session->sendPrepared(request); return true; } else if (type == u"CONNECTION_LANG_CODE_INVALID"_q) { diff --git a/Telegram/SourceFiles/mtproto/session.cpp b/Telegram/SourceFiles/mtproto/session.cpp index 2ca35a14dc..a10f2e7d57 100644 --- a/Telegram/SourceFiles/mtproto/session.cpp +++ b/Telegram/SourceFiles/mtproto/session.cpp @@ -257,10 +257,14 @@ void Session::refreshOptions() { } void Session::reInitConnection() { - _dc->setConnectionInited(false); + setConnectionNotInited(); restart(); } +void Session::setConnectionNotInited() { + _dc->setConnectionInited(false); +} + void Session::stop() { if (_killed) { DEBUG_LOG(("Session Error: can't stop a killed session")); diff --git a/Telegram/SourceFiles/mtproto/session.h b/Telegram/SourceFiles/mtproto/session.h index 7640a22a8d..d6f197d233 100644 --- a/Telegram/SourceFiles/mtproto/session.h +++ b/Telegram/SourceFiles/mtproto/session.h @@ -142,6 +142,7 @@ public: void start(); void reInitConnection(); + void setConnectionNotInited(); void restart(); void refreshOptions();