Reset tracker entries when pause the session

PR #21738.
This commit is contained in:
Vladimir Golovnev 2024-11-04 16:27:21 +03:00 committed by Vladimir Golovnev (Glassez)
commit eea01b94a3
No known key found for this signature in database
GPG key ID: 52A2C7DEE2DFA6F7

View file

@ -4065,15 +4065,30 @@ bool SessionImpl::isPaused() const
void SessionImpl::pause() void SessionImpl::pause()
{ {
if (!m_isPaused) if (m_isPaused)
{ return;
if (isRestored()) if (isRestored())
{
m_nativeSession->pause(); m_nativeSession->pause();
for (TorrentImpl *torrent : asConst(m_torrents))
{
torrent->resetTrackerEntryStatuses();
const QList<TrackerEntryStatus> trackers = torrent->trackers();
QHash<QString, TrackerEntryStatus> updatedTrackers;
updatedTrackers.reserve(trackers.size());
for (const TrackerEntryStatus &status : trackers)
updatedTrackers.emplace(status.url, status);
emit trackerEntryStatusesUpdated(torrent, updatedTrackers);
}
}
m_isPaused = true; m_isPaused = true;
emit paused(); emit paused();
} }
}
void SessionImpl::resume() void SessionImpl::resume()
{ {