diff --git a/src/gui/properties/trackerlist.cpp b/src/gui/properties/trackerlist.cpp index 398430b28..c8bfafabf 100644 --- a/src/gui/properties/trackerlist.cpp +++ b/src/gui/properties/trackerlist.cpp @@ -400,16 +400,23 @@ void TrackerList::editSelectedTracker() { #if LIBTORRENT_VERSION_NUM >= 10000 void TrackerList::reannounceSelected() { - BitTorrent::TorrentHandle *const torrent = properties->getCurrentTorrent(); - if (!torrent) return; - - QList selected_items = getSelectedTrackerItems(); + QList selected_items = selectedItems(); if (selected_items.isEmpty()) return; + BitTorrent::TorrentHandle *const torrent = properties->getCurrentTorrent(); + if (!torrent) return; QList trackers = torrent->trackers(); - for (int i = 0; i < trackers.size(); ++i) { - foreach (QTreeWidgetItem* w, selected_items) { - if (w->text(COL_URL) == trackers[i].url()) { + + foreach (QTreeWidgetItem* item, selected_items) { + // DHT case + if (item == dht_item) { + torrent->forceDHTAnnounce(); + continue; + } + + // Trackers case + for (int i = 0; i < trackers.size(); ++i) { + if (item->text(COL_URL) == trackers[i].url()) { torrent->forceReannounce(i); break; }