mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-07-06 13:11:25 -07:00
Fix requested torrent resume data handling
Session should increase an appropriate counter each time the torrent resume data is requested to save.
This commit is contained in:
parent
e8850c7a70
commit
00d6c83ee5
3 changed files with 26 additions and 26 deletions
|
@ -2079,6 +2079,12 @@ void Session::bottomTorrentsPriority(const QStringList &hashes)
|
|||
saveTorrentsQueue();
|
||||
}
|
||||
|
||||
void Session::handleTorrentSaveResumeDataRequested(TorrentHandle *const torrent)
|
||||
{
|
||||
qDebug("Saving resume data is requested for torrent '%s'...", qUtf8Printable(torrent->name()));
|
||||
++m_numResumeData;
|
||||
}
|
||||
|
||||
QHash<InfoHash, TorrentHandle *> Session::torrents() const
|
||||
{
|
||||
return m_torrents;
|
||||
|
@ -2390,7 +2396,7 @@ void Session::generateResumeData(bool final)
|
|||
|| torrent->hasMissingFiles())
|
||||
continue;
|
||||
|
||||
saveTorrentResumeData(torrent);
|
||||
torrent->saveResumeData();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3603,55 +3609,48 @@ void Session::updateSeedingLimitTimer()
|
|||
|
||||
void Session::handleTorrentShareLimitChanged(TorrentHandle *const torrent)
|
||||
{
|
||||
saveTorrentResumeData(torrent);
|
||||
updateSeedingLimitTimer();
|
||||
}
|
||||
|
||||
void Session::saveTorrentResumeData(TorrentHandle *const torrent)
|
||||
{
|
||||
qDebug("Saving fastresume data for %s", qUtf8Printable(torrent->name()));
|
||||
torrent->saveResumeData();
|
||||
++m_numResumeData;
|
||||
updateSeedingLimitTimer();
|
||||
}
|
||||
|
||||
void Session::handleTorrentNameChanged(TorrentHandle *const torrent)
|
||||
{
|
||||
saveTorrentResumeData(torrent);
|
||||
torrent->saveResumeData();
|
||||
}
|
||||
|
||||
void Session::handleTorrentSavePathChanged(TorrentHandle *const torrent)
|
||||
{
|
||||
saveTorrentResumeData(torrent);
|
||||
torrent->saveResumeData();
|
||||
emit torrentSavePathChanged(torrent);
|
||||
}
|
||||
|
||||
void Session::handleTorrentCategoryChanged(TorrentHandle *const torrent, const QString &oldCategory)
|
||||
{
|
||||
saveTorrentResumeData(torrent);
|
||||
torrent->saveResumeData();
|
||||
emit torrentCategoryChanged(torrent, oldCategory);
|
||||
}
|
||||
|
||||
void Session::handleTorrentTagAdded(TorrentHandle *const torrent, const QString &tag)
|
||||
{
|
||||
saveTorrentResumeData(torrent);
|
||||
torrent->saveResumeData();
|
||||
emit torrentTagAdded(torrent, tag);
|
||||
}
|
||||
|
||||
void Session::handleTorrentTagRemoved(TorrentHandle *const torrent, const QString &tag)
|
||||
{
|
||||
saveTorrentResumeData(torrent);
|
||||
torrent->saveResumeData();
|
||||
emit torrentTagRemoved(torrent, tag);
|
||||
}
|
||||
|
||||
void Session::handleTorrentSavingModeChanged(TorrentHandle *const torrent)
|
||||
{
|
||||
saveTorrentResumeData(torrent);
|
||||
torrent->saveResumeData();
|
||||
emit torrentSavingModeChanged(torrent);
|
||||
}
|
||||
|
||||
void Session::handleTorrentTrackersAdded(TorrentHandle *const torrent, const QList<TrackerEntry> &newTrackers)
|
||||
{
|
||||
saveTorrentResumeData(torrent);
|
||||
torrent->saveResumeData();
|
||||
|
||||
for (const TrackerEntry &newTracker : newTrackers)
|
||||
LogMsg(tr("Tracker '%1' was added to torrent '%2'").arg(newTracker.url(), torrent->name()));
|
||||
|
@ -3663,7 +3662,7 @@ void Session::handleTorrentTrackersAdded(TorrentHandle *const torrent, const QLi
|
|||
|
||||
void Session::handleTorrentTrackersRemoved(TorrentHandle *const torrent, const QList<TrackerEntry> &deletedTrackers)
|
||||
{
|
||||
saveTorrentResumeData(torrent);
|
||||
torrent->saveResumeData();
|
||||
|
||||
for (const TrackerEntry &deletedTracker : deletedTrackers)
|
||||
LogMsg(tr("Tracker '%1' was deleted from torrent '%2'").arg(deletedTracker.url(), torrent->name()));
|
||||
|
@ -3675,27 +3674,27 @@ void Session::handleTorrentTrackersRemoved(TorrentHandle *const torrent, const Q
|
|||
|
||||
void Session::handleTorrentTrackersChanged(TorrentHandle *const torrent)
|
||||
{
|
||||
saveTorrentResumeData(torrent);
|
||||
torrent->saveResumeData();
|
||||
emit trackersChanged(torrent);
|
||||
}
|
||||
|
||||
void Session::handleTorrentUrlSeedsAdded(TorrentHandle *const torrent, const QList<QUrl> &newUrlSeeds)
|
||||
{
|
||||
saveTorrentResumeData(torrent);
|
||||
torrent->saveResumeData();
|
||||
for (const QUrl &newUrlSeed : newUrlSeeds)
|
||||
LogMsg(tr("URL seed '%1' was added to torrent '%2'").arg(newUrlSeed.toString(), torrent->name()));
|
||||
}
|
||||
|
||||
void Session::handleTorrentUrlSeedsRemoved(TorrentHandle *const torrent, const QList<QUrl> &urlSeeds)
|
||||
{
|
||||
saveTorrentResumeData(torrent);
|
||||
torrent->saveResumeData();
|
||||
for (const QUrl &urlSeed : urlSeeds)
|
||||
LogMsg(tr("URL seed '%1' was removed from torrent '%2'").arg(urlSeed.toString(), torrent->name()));
|
||||
}
|
||||
|
||||
void Session::handleTorrentMetadataReceived(TorrentHandle *const torrent)
|
||||
{
|
||||
saveTorrentResumeData(torrent);
|
||||
torrent->saveResumeData();
|
||||
|
||||
// Save metadata
|
||||
const QDir resumeDataDir(m_resumeFolderPath);
|
||||
|
@ -3712,13 +3711,13 @@ void Session::handleTorrentMetadataReceived(TorrentHandle *const torrent)
|
|||
void Session::handleTorrentPaused(TorrentHandle *const torrent)
|
||||
{
|
||||
if (!torrent->hasError() && !torrent->hasMissingFiles())
|
||||
saveTorrentResumeData(torrent);
|
||||
torrent->saveResumeData();
|
||||
emit torrentPaused(torrent);
|
||||
}
|
||||
|
||||
void Session::handleTorrentResumed(TorrentHandle *const torrent)
|
||||
{
|
||||
saveTorrentResumeData(torrent);
|
||||
torrent->saveResumeData();
|
||||
emit torrentResumed(torrent);
|
||||
}
|
||||
|
||||
|
@ -3730,7 +3729,7 @@ void Session::handleTorrentChecked(TorrentHandle *const torrent)
|
|||
void Session::handleTorrentFinished(TorrentHandle *const torrent)
|
||||
{
|
||||
if (!torrent->hasError() && !torrent->hasMissingFiles())
|
||||
saveTorrentResumeData(torrent);
|
||||
torrent->saveResumeData();
|
||||
emit torrentFinished(torrent);
|
||||
|
||||
qDebug("Checking if the torrent contains torrent files to download");
|
||||
|
@ -4269,7 +4268,7 @@ void Session::createTorrentHandle(const libt::torrent_handle &nativeHandle)
|
|||
|
||||
// In case of crash before the scheduled generation
|
||||
// of the fastresumes.
|
||||
saveTorrentResumeData(torrent);
|
||||
torrent->saveResumeData();
|
||||
}
|
||||
|
||||
if (((torrent->ratioLimit() >= 0) || (torrent->seedingTimeLimit() >= 0))
|
||||
|
|
|
@ -482,6 +482,7 @@ namespace BitTorrent
|
|||
void bottomTorrentsPriority(const QStringList &hashes);
|
||||
|
||||
// TorrentHandle interface
|
||||
void handleTorrentSaveResumeDataRequested(TorrentHandle *const torrent);
|
||||
void handleTorrentShareLimitChanged(TorrentHandle *const torrent);
|
||||
void handleTorrentNameChanged(TorrentHandle *const torrent);
|
||||
void handleTorrentSavePathChanged(TorrentHandle *const torrent);
|
||||
|
@ -608,7 +609,6 @@ namespace BitTorrent
|
|||
|
||||
void updateSeedingLimitTimer();
|
||||
void exportTorrentFile(TorrentHandle *const torrent, TorrentExportFolder folder = TorrentExportFolder::Regular);
|
||||
void saveTorrentResumeData(TorrentHandle *const torrent);
|
||||
|
||||
void handleAlert(libtorrent::alert *a);
|
||||
void dispatchTorrentAlert(libtorrent::alert *a);
|
||||
|
|
|
@ -508,6 +508,7 @@ bool TorrentHandle::needSaveResumeData() const
|
|||
void TorrentHandle::saveResumeData()
|
||||
{
|
||||
m_nativeHandle.save_resume_data();
|
||||
m_session->handleTorrentSaveResumeDataRequested(this);
|
||||
}
|
||||
|
||||
int TorrentHandle::filesCount() const
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue