From 784836f3b6be315afa8388bade6e83cce31f4251 Mon Sep 17 00:00:00 2001 From: levlam Date: Mon, 16 Mar 2020 04:09:17 +0300 Subject: [PATCH] Decrease maximum total_timeout_limit for bots. GitOrigin-RevId: 8d42ef41c28e8a5a276f4a1b6058c3391419146e --- td/telegram/net/NetQuery.h | 3 ++- td/telegram/net/NetQueryCreator.cpp | 9 ++++++++- td/telegram/net/NetQueryCreator.h | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/td/telegram/net/NetQuery.h b/td/telegram/net/NetQuery.h index 4fd61b016..86cd89776 100644 --- a/td/telegram/net/NetQuery.h +++ b/td/telegram/net/NetQuery.h @@ -329,7 +329,7 @@ class NetQuery : public ListNode { NetQueryCounter nq_counter_; NetQuery(State state, uint64 id, BufferSlice &&query, BufferSlice &&answer, DcId dc_id, Type type, AuthFlag auth_flag, - GzipFlag gzip_flag, int32 tl_constructor) + GzipFlag gzip_flag, int32 tl_constructor, double total_timeout_limit) : state_(state) , type_(type) , auth_flag_(auth_flag) @@ -340,6 +340,7 @@ class NetQuery : public ListNode { , query_(std::move(query)) , answer_(std::move(answer)) , tl_constructor_(tl_constructor) + , total_timeout_limit(total_timeout_limit) , nq_counter_(true) { my_id_ = get_my_id(); start_timestamp_ = Time::now(); diff --git a/td/telegram/net/NetQueryCreator.cpp b/td/telegram/net/NetQueryCreator.cpp index 4a5870a73..9e17711f5 100644 --- a/td/telegram/net/NetQueryCreator.cpp +++ b/td/telegram/net/NetQueryCreator.cpp @@ -6,6 +6,9 @@ // #include "td/telegram/net/NetQueryCreator.h" +#include "td/telegram/AuthManager.h" +#include "td/telegram/Global.h" +#include "td/telegram/Td.h" #include "td/telegram/telegram_api.h" #include "td/utils/format.h" @@ -51,8 +54,12 @@ NetQueryPtr NetQueryCreator::create(uint64 id, const telegram_api::Function &fun } } + double total_timeout_limit = 60; + if (!G()->close_flag() && G()->td().get_actor_unsafe()->auth_manager_->is_bot()) { + total_timeout_limit = 8; + } auto query = object_pool_.create(NetQuery::State::Query, id, std::move(slice), BufferSlice(), dc_id, type, auth_flag, - gzip_flag, tl_constructor); + gzip_flag, tl_constructor, total_timeout_limit); query->set_cancellation_token(query.generation()); return query; } diff --git a/td/telegram/net/NetQueryCreator.h b/td/telegram/net/NetQueryCreator.h index 31dab5d3e..ba4e6b8fa 100644 --- a/td/telegram/net/NetQueryCreator.h +++ b/td/telegram/net/NetQueryCreator.h @@ -31,7 +31,7 @@ class NetQueryCreator { NetQueryPtr create_update(BufferSlice &&buffer) { return object_pool_.create(NetQuery::State::OK, 0, BufferSlice(), std::move(buffer), DcId::main(), - NetQuery::Type::Common, NetQuery::AuthFlag::On, NetQuery::GzipFlag::Off, 0); + NetQuery::Type::Common, NetQuery::AuthFlag::On, NetQuery::GzipFlag::Off, 0, 0); } NetQueryPtr create(const telegram_api::Function &function, DcId dc_id = DcId::main(),