Fix wrong 'tracker error' count

This happens when a torrent contains some tracker URLs that share the same domain.
Closes #17808.
This commit is contained in:
Chocobo1 2022-10-05 00:59:18 +08:00
parent 9b267690cc
commit 1b0fd45643

View file

@ -72,11 +72,14 @@ namespace
return scheme;
}
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())
@ -388,10 +391,8 @@ void TrackerFiltersList::addItem(const QString &tracker, const BitTorrent::Torre
void TrackerFiltersList::removeItem(const QString &tracker, const BitTorrent::TorrentID &id)
{
const QString host = getHost(tracker);
QSet<BitTorrent::TorrentID> torrentIDs = m_trackers.value(host);
if (torrentIDs.empty())
return;
QSet<BitTorrent::TorrentID> torrentIDs = m_trackers.value(host);
torrentIDs.remove(id);
int row = 0;