Browse Source

Address some issues regarding private torrents

adaptive-webui-19844
an0n666 5 years ago
parent
commit
6d85ae8f62
  1. 1
      src/base/bittorrent/torrenthandle.h
  2. 12
      src/base/bittorrent/torrenthandleimpl.cpp
  3. 1
      src/base/bittorrent/torrenthandleimpl.h
  4. 3
      src/gui/properties/peerlistwidget.cpp

1
src/base/bittorrent/torrenthandle.h

@ -287,6 +287,7 @@ namespace BitTorrent @@ -287,6 +287,7 @@ namespace BitTorrent
virtual void addUrlSeeds(const QVector<QUrl> &urlSeeds) = 0;
virtual void removeUrlSeeds(const QVector<QUrl> &urlSeeds) = 0;
virtual bool connectPeer(const PeerAddress &peerAddress) = 0;
virtual void clearPeers() = 0;
virtual QString createMagnetURI() const = 0;

12
src/base/bittorrent/torrenthandleimpl.cpp

@ -432,6 +432,11 @@ void TorrentHandleImpl::replaceTrackers(const QVector<TrackerEntry> &trackers) @@ -432,6 +432,11 @@ void TorrentHandleImpl::replaceTrackers(const QVector<TrackerEntry> &trackers)
if (!newTrackers.isEmpty())
m_session->handleTorrentTrackersAdded(this, newTrackers);
// Clear the peer list if it's a private torrent since
// we do not want to keep connecting with peers from old tracker.
if (isPrivate())
clearPeers();
}
}
@ -486,6 +491,13 @@ void TorrentHandleImpl::removeUrlSeeds(const QVector<QUrl> &urlSeeds) @@ -486,6 +491,13 @@ void TorrentHandleImpl::removeUrlSeeds(const QVector<QUrl> &urlSeeds)
m_session->handleTorrentUrlSeedsRemoved(this, removedUrlSeeds);
}
void TorrentHandleImpl::clearPeers()
{
#if (LIBTORRENT_VERSION_NUM >= 10207)
m_nativeHandle.clear_peers();
#endif
}
bool TorrentHandleImpl::connectPeer(const PeerAddress &peerAddress)
{
lt::error_code ec;

1
src/base/bittorrent/torrenthandleimpl.h

@ -237,6 +237,7 @@ namespace BitTorrent @@ -237,6 +237,7 @@ namespace BitTorrent
void addUrlSeeds(const QVector<QUrl> &urlSeeds) override;
void removeUrlSeeds(const QVector<QUrl> &urlSeeds) override;
bool connectPeer(const PeerAddress &peerAddress) override;
void clearPeers() override;
QString createMagnetURI() const override;

3
src/gui/properties/peerlistwidget.cpp

@ -256,7 +256,8 @@ void PeerListWidget::showPeerListMenu(const QPoint &) @@ -256,7 +256,8 @@ void PeerListWidget::showPeerListMenu(const QPoint &)
menu->setAttribute(Qt::WA_DeleteOnClose);
// Add Peer Action
if (!torrent->isQueued() && !torrent->isChecking()) {
// Do not allow user to add peers in a private torrent
if (!torrent->isQueued() && !torrent->isChecking() && !torrent->isPrivate()) {
const QAction *addPeerAct = menu->addAction(UIThemeManager::instance()->getIcon("user-group-new"), tr("Add a new peer..."));
connect(addPeerAct, &QAction::triggered, this, [this, torrent]()
{

Loading…
Cancel
Save