Merge pull request #8711 from sledgehammer999/recheck_paused

Avoid data corruption when rechecking paused torrents
This commit is contained in:
sledgehammer999 2018-04-10 16:18:12 +03:00 committed by GitHub
commit 341a971cd3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 2 deletions

View file

@ -1277,7 +1277,7 @@ void TorrentHandle::forceRecheck()
if (isPaused()) {
m_pauseAfterRecheck = true;
resume();
resume_impl(true, true);
}
m_nativeHandle.force_recheck();
@ -1345,12 +1345,17 @@ void TorrentHandle::pause()
}
void TorrentHandle::resume(bool forced)
{
resume_impl(forced, false);
}
void TorrentHandle::resume_impl(bool forced, bool uploadMode)
{
if (hasError())
m_nativeHandle.clear_error();
m_hasMissingFiles = false;
m_nativeHandle.set_upload_mode(false);
m_nativeHandle.auto_managed(!forced);
m_nativeHandle.set_upload_mode(uploadMode);
m_nativeHandle.resume();
}

View file

@ -406,6 +406,7 @@ namespace BitTorrent
void handleMetadataReceivedAlert(libtorrent::metadata_received_alert *p);
void handleStatsAlert(libtorrent::stats_alert *p);
void resume_impl(bool forced, bool uploadMode);
bool isMoveInProgress() const;
QString nativeActualSavePath() const;