Handle all "fastresume rejected" cases consistently

PR #17064.
This commit is contained in:
Vladimir Golovnev 2022-05-22 07:23:52 +03:00 committed by GitHub
commit 8c0cd09823
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 17 deletions

View file

@ -1726,9 +1726,6 @@ void TorrentImpl::handleTorrentCheckedAlert(const lt::torrent_checked_alert *p)
if (m_nativeStatus.need_save_resume) if (m_nativeStatus.need_save_resume)
m_session->handleTorrentNeedSaveResumeData(this); m_session->handleTorrentNeedSaveResumeData(this);
if (m_fastresumeDataRejected && !m_hasMissingFiles)
m_fastresumeDataRejected = false;
if (!m_hasMissingFiles) if (!m_hasMissingFiles)
{ {
if ((progress() < 1.0) && (wantedSize() > 0)) if ((progress() < 1.0) && (wantedSize() > 0))
@ -1895,19 +1892,10 @@ void TorrentImpl::handleSaveResumeDataFailedAlert(const lt::save_resume_data_fai
void TorrentImpl::handleFastResumeRejectedAlert(const lt::fastresume_rejected_alert *p) void TorrentImpl::handleFastResumeRejectedAlert(const lt::fastresume_rejected_alert *p)
{ {
m_fastresumeDataRejected = true; // Files were probably moved or storage isn't accessible
if (p->error.value() == lt::errors::mismatching_file_size)
{
// Mismatching file size (files were probably moved)
m_hasMissingFiles = true; m_hasMissingFiles = true;
LogMsg(tr("File sizes mismatch for torrent '%1'. Cannot proceed further.").arg(name()), Log::CRITICAL); LogMsg(tr("Failed to restore torrent. Files were probably moved or storage isn't accessible. Torrent: \"%1\". Reason: \"%2\"")
}
else
{
LogMsg(tr("Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again...")
.arg(name(), QString::fromStdString(p->message())), Log::WARNING); .arg(name(), QString::fromStdString(p->message())), Log::WARNING);
}
} }
void TorrentImpl::handleFileRenamedAlert(const lt::file_renamed_alert *p) void TorrentImpl::handleFileRenamedAlert(const lt::file_renamed_alert *p)

View file

@ -324,7 +324,6 @@ namespace BitTorrent
TorrentOperatingMode m_operatingMode; TorrentOperatingMode m_operatingMode;
TorrentContentLayout m_contentLayout; TorrentContentLayout m_contentLayout;
bool m_hasSeedStatus; bool m_hasSeedStatus;
bool m_fastresumeDataRejected = false;
bool m_hasMissingFiles = false; bool m_hasMissingFiles = false;
bool m_hasFirstLastPiecePriority = false; bool m_hasFirstLastPiecePriority = false;
bool m_useAutoTMM; bool m_useAutoTMM;