Browse Source

Log when duplicate torrents are being added

PR #19306.
Closes #18458.
adaptive-webui-19844
Vladimir Golovnev 1 year ago committed by GitHub
parent
commit
f99a98306d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 19
      src/base/bittorrent/sessionimpl.cpp

19
src/base/bittorrent/sessionimpl.cpp

@ -2680,21 +2680,25 @@ bool SessionImpl::addTorrent_impl(const std::variant<MagnetUri, TorrentInfo> &so @@ -2680,21 +2680,25 @@ bool SessionImpl::addTorrent_impl(const std::variant<MagnetUri, TorrentInfo> &so
if (m_loadingTorrents.contains(id) || (infoHash.isHybrid() && m_loadingTorrents.contains(altID)))
return false;
if (Torrent *torrent = findTorrent(infoHash); torrent)
if (Torrent *torrent = findTorrent(infoHash))
{
// a duplicate torrent is being added
if (torrent->isPrivate())
return false;
if (hasMetadata)
{
// Trying to set metadata to existing torrent in case if it has none
torrent->setMetadata(std::get<TorrentInfo>(source));
}
const TorrentInfo &torrentInfo = std::get<TorrentInfo>(source);
if (torrentInfo.isPrivate())
const bool isPrivate = torrent->isPrivate() || (hasMetadata && std::get<TorrentInfo>(source).isPrivate());
if (isPrivate)
{
LogMsg(tr("Found existing torrent. Trackers cannot be merged because it is a private torrent. Torrent: %1").arg(torrent->name()));
return false;
}
if (hasMetadata)
{
const TorrentInfo &torrentInfo = std::get<TorrentInfo>(source);
// merge trackers and web seeds
torrent->addTrackers(torrentInfo.trackers());
@ -2709,6 +2713,7 @@ bool SessionImpl::addTorrent_impl(const std::variant<MagnetUri, TorrentInfo> &so @@ -2709,6 +2713,7 @@ bool SessionImpl::addTorrent_impl(const std::variant<MagnetUri, TorrentInfo> &so
torrent->addUrlSeeds(magnetUri.urlSeeds());
}
LogMsg(tr("Found existing torrent. Trackers are merged from new source. Torrent: %1").arg(torrent->name()));
return false;
}

Loading…
Cancel
Save