Skip to content

Commit

Permalink
Reset tracker entries when pause the session
Browse files Browse the repository at this point in the history
PR #21738.
  • Loading branch information
glassez authored Nov 4, 2024
1 parent c02f80c commit b462a2b
Showing 1 changed file with 20 additions and 5 deletions.
25 changes: 20 additions & 5 deletions src/base/bittorrent/sessionimpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4072,14 +4072,29 @@ bool SessionImpl::isPaused() const

void SessionImpl::pause()
{
if (!m_isPaused)
if (m_isPaused)
return;

if (isRestored())
{
if (isRestored())
m_nativeSession->pause();
m_nativeSession->pause();

m_isPaused = true;
emit paused();
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;
emit paused();
}

void SessionImpl::resume()
Expand Down

0 comments on commit b462a2b

Please sign in to comment.