Use "additional trackers" when metadata retrieving

This can help when the DHT nodes are few.

PR #18251.
Closes #18244.
This commit is contained in:
Vladimir Golovnev 2022-12-22 08:21:29 +03:00 committed by Vladimir Golovnev (Glassez)
parent 911f0d4039
commit c57896df8f
No known key found for this signature in database
GPG key ID: 52A2C7DEE2DFA6F7

View file

@ -2811,6 +2811,19 @@ bool SessionImpl::downloadMetadata(const MagnetUri &magnetUri)
lt::add_torrent_params p = magnetUri.addTorrentParams();
if (isAddTrackersEnabled())
{
// Use "additional trackers" when metadata retrieving (this can help when the DHT nodes are few)
p.trackers.reserve(p.trackers.size() + static_cast<std::size_t>(m_additionalTrackerList.size()));
p.tracker_tiers.reserve(p.trackers.size() + static_cast<std::size_t>(m_additionalTrackerList.size()));
p.tracker_tiers.resize(p.trackers.size(), 0);
for (const TrackerEntry &trackerEntry : asConst(m_additionalTrackerList))
{
p.trackers.push_back(trackerEntry.url.toStdString());
p.tracker_tiers.push_back(trackerEntry.tier);
}
}
// Flags
// Preallocation mode
if (isPreallocationEnabled())