Browse Source

Fix wrong 'tracker error' count

This happens when a torrent contains some tracker URLs that share the same domain.
Closes #17808.
adaptive-webui-19844
Chocobo1 2 years ago
parent
commit
6fa4305aba
No known key found for this signature in database
GPG Key ID: 210D9C873253A68C
  1. 13
      src/gui/transferlistfilterswidget.cpp

13
src/gui/transferlistfilterswidget.cpp

@ -70,11 +70,14 @@ namespace @@ -70,11 +70,14 @@ namespace
return !scheme.isEmpty() ? scheme : u"http"_qs;
}
QString getHost(const QString &tracker)
QString getHost(const QString &url)
{
// We want the domain + tld. Subdomains should be disregarded
const QUrl url {tracker};
const QString host {url.host()};
// If failed to parse the domain or IP address, original input should be returned
const QString host = QUrl(url).host();
if (host.isEmpty())
return url;
// host is in IP format
if (!QHostAddress(host).isNull())
@ -505,10 +508,8 @@ void TrackerFiltersList::addItems(const QString &trackerURL, const QVector<BitTo @@ -505,10 +508,8 @@ void TrackerFiltersList::addItems(const QString &trackerURL, const QVector<BitTo
void TrackerFiltersList::removeItem(const QString &trackerURL, const BitTorrent::TorrentID &id)
{
const QString host = getHost(trackerURL);
QSet<BitTorrent::TorrentID> torrentIDs = m_trackers.value(host).torrents;
if (torrentIDs.empty())
return;
QSet<BitTorrent::TorrentID> torrentIDs = m_trackers.value(host).torrents;
torrentIDs.remove(id);
QListWidgetItem *trackerItem = nullptr;

Loading…
Cancel
Save