Skip to content

Commit 1b4c328

Browse files
committed
Ignore some responses from CDN DCs and authorized apps.
1 parent 9c8e6e9 commit 1b4c328

3 files changed

Lines changed: 7 additions & 2 deletions

File tree

‎td/telegram/AuthManager.cpp‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1283,6 +1283,7 @@ void AuthManager::on_import_web_token_authorization_result(NetQueryPtr &&net_que
12831283
if (r_authorization.is_error()) {
12841284
return on_current_query_error(r_authorization.move_as_error());
12851285
}
1286+
CHECK(dc_id.is_internal());
12861287
G()->net_query_dispatcher().set_main_dc_id(dc_id.get_value());
12871288
on_get_authorization(r_authorization.move_as_ok());
12881289
}

‎td/telegram/net/NetQueryDispatcher.cpp‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,9 @@ NetQueryDispatcher::NetQueryDispatcher(const std::function<ActorShared<>()> &cre
389389
NetQueryDispatcher::~NetQueryDispatcher() = default;
390390

391391
void NetQueryDispatcher::try_fix_migrate(NetQueryPtr &net_query) {
392+
if (net_query->dc_id().is_external()) {
393+
return;
394+
}
392395
auto error_message = net_query->error().message();
393396
static constexpr CSlice file_migrate_prefix = "FILE_MIGRATE_";
394397
if (begins_with(error_message, file_migrate_prefix)) {

‎td/telegram/net/Session.cpp‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -873,10 +873,10 @@ Status Session::on_message_result_ok(mtproto::MessageId message_id, BufferSlice
873873
last_success_timestamp_ = Time::now();
874874

875875
TlParser parser(packet.as_slice());
876-
int32 response_tl_id = parser.fetch_int();
877876

878877
auto it = sent_queries_.find(message_id);
879878
if (it == sent_queries_.end()) {
879+
int32 response_tl_id = parser.fetch_int();
880880
LOG(DEBUG) << "Drop result to " << message_id << tag("original_size", original_size)
881881
<< tag("response_tl", format::as_hex(response_tl_id));
882882

@@ -896,9 +896,10 @@ Status Session::on_message_result_ok(mtproto::MessageId message_id, BufferSlice
896896
Query &query = it->second;
897897
VLOG(net_query) << "Return query result " << query.net_query_;
898898

899-
if (!parser.get_error()) {
899+
if (!parser.get_error() && !auth_data_.get_auth_flag() && !is_cdn_) {
900900
// Steal authorization information.
901901
// It is a dirty hack, yep.
902+
int32 response_tl_id = parser.fetch_int();
902903
if (response_tl_id == telegram_api::auth_authorization::ID ||
903904
response_tl_id == telegram_api::auth_loginTokenSuccess::ID ||
904905
response_tl_id == telegram_api::auth_sentCodeSuccess::ID) {

0 commit comments

Comments
 (0)