From 96a0e1c23797338d77a30e91448fee1fb30a9365 Mon Sep 17 00:00:00 2001 From: John Preston Date: Wed, 7 Sep 2016 14:14:24 +0300 Subject: [PATCH] Resending requests even if received FLOOD_WAIT_N, N >= 60. This will fix the infinite large files downloading, because sometimes server replies with FLOOD_WAIT_N with N > 300, up to 900. --- Telegram/SourceFiles/mtproto/facade.cpp | 2 +- Telegram/SourceFiles/mtproto/file_download.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Telegram/SourceFiles/mtproto/facade.cpp b/Telegram/SourceFiles/mtproto/facade.cpp index a829446ab..a5293f353 100644 --- a/Telegram/SourceFiles/mtproto/facade.cpp +++ b/Telegram/SourceFiles/mtproto/facade.cpp @@ -224,7 +224,7 @@ namespace { } } else { secs = m.captured(1).toInt(); - if (secs >= 60) return false; +// if (secs >= 60) return false; } uint64 sendAt = getms(true) + secs * 1000 + 10; DelayedRequestsList::iterator i = delayedRequests.begin(), e = delayedRequests.end(); diff --git a/Telegram/SourceFiles/mtproto/file_download.cpp b/Telegram/SourceFiles/mtproto/file_download.cpp index 0b8997325..34e0a5f2f 100644 --- a/Telegram/SourceFiles/mtproto/file_download.cpp +++ b/Telegram/SourceFiles/mtproto/file_download.cpp @@ -430,7 +430,7 @@ bool mtpFileLoader::loadPart() { App::app()->killDownloadSessionsStop(_dc); - mtpRequestId reqId = MTP::send(MTPupload_GetFile(MTPupload_getFile(loc, MTP_int(offset), MTP_int(limit))), rpcDone(&mtpFileLoader::partLoaded, offset), rpcFail(&mtpFileLoader::partFailed), MTP::dldDcId(_dc, dcIndex), 50); + mtpRequestId reqId = MTP::send(MTPupload_GetFile(loc, MTP_int(offset), MTP_int(limit)), rpcDone(&mtpFileLoader::partLoaded, offset), rpcFail(&mtpFileLoader::partFailed), MTP::dldDcId(_dc, dcIndex), 50); ++_queue->queries; dr.v[dcIndex] += limit;