Skip to content

Commit

Permalink
Log when duplicate torrents are being added
Browse files Browse the repository at this point in the history
PR #19306.
Closes #18458.
  • Loading branch information
glassez committed Jul 14, 2023
1 parent b0cfe53 commit f99a983
Showing 1 changed file with 12 additions and 7 deletions.
19 changes: 12 additions & 7 deletions src/base/bittorrent/sessionimpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
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 (torrentInfo.isPrivate())
return false;
if (hasMetadata)
{
const TorrentInfo &torrentInfo = std::get<TorrentInfo>(source);

// merge trackers and web seeds
torrent->addTrackers(torrentInfo.trackers());
Expand All @@ -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;
}

Expand Down

0 comments on commit f99a983

Please sign in to comment.