Skip to content

Commit 3a5c0d9

Browse files
Allow to specify if announcing to all tiers is desired.
1 parent 2194a05 commit 3a5c0d9

File tree

4 files changed

+31
-10
lines changed

4 files changed

+31
-10
lines changed

src/base/bittorrent/session.cpp

+18-6
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,7 @@ Session::Session(QObject *parent)
275275
, m_isTrackerFilteringEnabled(BITTORRENT_SESSION_KEY("TrackerFilteringEnabled"), false)
276276
, m_IPFilterFile(BITTORRENT_SESSION_KEY("IPFilter"))
277277
, m_announceToAllTrackers(BITTORRENT_SESSION_KEY("AnnounceToAllTrackers"), true)
278+
, m_announceToAllTiers(BITTORRENT_SESSION_KEY("AnnounceToAllTiers"), true)
278279
, m_diskCacheSize(BITTORRENT_SESSION_KEY("DiskCacheSize"), 64)
279280
, m_diskCacheTTL(BITTORRENT_SESSION_KEY("DiskCacheTTL"), 60)
280281
, m_useOSCache(BITTORRENT_SESSION_KEY("UseOSCache"), true)
@@ -1286,9 +1287,8 @@ void Session::configure(libtorrent::settings_pack &settingsPack)
12861287
}
12871288
settingsPack.set_bool(libt::settings_pack::force_proxy, m_useProxy ? isForceProxyEnabled() : false);
12881289

1289-
const bool announceToAll = announceToAllTrackers();
1290-
settingsPack.set_bool(libt::settings_pack::announce_to_all_trackers, announceToAll);
1291-
settingsPack.set_bool(libt::settings_pack::announce_to_all_tiers, announceToAll);
1290+
settingsPack.set_bool(libt::settings_pack::announce_to_all_trackers, announceToAllTrackers());
1291+
settingsPack.set_bool(libt::settings_pack::announce_to_all_tiers, announceToAllTiers());
12921292

12931293
const int cacheSize = (diskCacheSize() > -1) ? diskCacheSize() * 64 : -1;
12941294
settingsPack.set_int(libt::settings_pack::cache_size, cacheSize);
@@ -1569,9 +1569,8 @@ void Session::configure(libtorrent::session_settings &sessionSettings)
15691569
}
15701570
sessionSettings.force_proxy = m_useProxy ? isForceProxyEnabled() : false;
15711571

1572-
bool announceToAll = announceToAllTrackers();
1573-
sessionSettings.announce_to_all_trackers = announceToAll;
1574-
sessionSettings.announce_to_all_tiers = announceToAll;
1572+
sessionSettings.announce_to_all_trackers = announceToAllTrackers();
1573+
sessionSettings.announce_to_all_tiers = announceToAllTiers();
15751574
const int cacheSize = (diskCacheSize() > -1) ? diskCacheSize() * 64 : -1;
15761575
sessionSettings.cache_size = cacheSize;
15771576
sessionSettings.cache_expiry = diskCacheTTL();
@@ -2968,6 +2967,19 @@ void Session::setAnnounceToAllTrackers(bool val)
29682967
}
29692968
}
29702969

2970+
bool Session::announceToAllTiers() const
2971+
{
2972+
return m_announceToAllTiers;
2973+
}
2974+
2975+
void Session::setAnnounceToAllTiers(bool val)
2976+
{
2977+
if (val != m_announceToAllTiers) {
2978+
m_announceToAllTiers = val;
2979+
configureDeferred();
2980+
}
2981+
}
2982+
29712983
int Session::diskCacheSize() const
29722984
{
29732985
int size = m_diskCacheSize;

src/base/bittorrent/session.h

+3
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,8 @@ namespace BitTorrent
372372
void setIPFilterFile(QString path);
373373
bool announceToAllTrackers() const;
374374
void setAnnounceToAllTrackers(bool val);
375+
bool announceToAllTiers() const;
376+
void setAnnounceToAllTiers(bool val);
375377
int diskCacheSize() const;
376378
void setDiskCacheSize(int size);
377379
int diskCacheTTL() const;
@@ -639,6 +641,7 @@ namespace BitTorrent
639641
CachedSettingValue<bool> m_isTrackerFilteringEnabled;
640642
CachedSettingValue<QString> m_IPFilterFile;
641643
CachedSettingValue<bool> m_announceToAllTrackers;
644+
CachedSettingValue<bool> m_announceToAllTiers;
642645
CachedSettingValue<int> m_diskCacheSize;
643646
CachedSettingValue<int> m_diskCacheTTL;
644647
CachedSettingValue<bool> m_useOSCache;

src/gui/advancedsettings.cpp

+8-2
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ enum AdvSettingsRows
9999
SUPER_SEEDING,
100100
// tracker
101101
ANNOUNCE_ALL_TRACKERS,
102+
ANNOUNCE_ALL_TIERS,
102103
ANNOUNCE_IP,
103104

104105
ROW_COUNT
@@ -217,6 +218,7 @@ void AdvancedSettings::saveAdvancedSettings()
217218
pref->setConfirmRemoveAllTags(cb_confirm_remove_all_tags.isChecked());
218219

219220
session->setAnnounceToAllTrackers(cb_announce_all_trackers.isChecked());
221+
session->setAnnounceToAllTiers(cb_announce_all_tiers.isChecked());
220222
}
221223

222224
void AdvancedSettings::updateCacheSpinSuffix(int value)
@@ -452,9 +454,13 @@ void AdvancedSettings::loadAdvancedSettings()
452454
cb_confirm_remove_all_tags.setChecked(pref->confirmRemoveAllTags());
453455
addRow(CONFIRM_REMOVE_ALL_TAGS, tr("Confirm removal of all tags"), &cb_confirm_remove_all_tags);
454456

455-
// Announce to all trackers
457+
// Announce to all trackers in a tier
456458
cb_announce_all_trackers.setChecked(session->announceToAllTrackers());
457-
addRow(ANNOUNCE_ALL_TRACKERS, tr("Always announce to all trackers"), &cb_announce_all_trackers);
459+
addRow(ANNOUNCE_ALL_TRACKERS, tr("Always announce to all trackers in a tier"), &cb_announce_all_trackers);
460+
461+
// Announce to all tiers
462+
cb_announce_all_tiers.setChecked(session->announceToAllTiers());
463+
addRow(ANNOUNCE_ALL_TIERS, tr("Always announce to all tiers"), &cb_announce_all_tiers);
458464
}
459465

460466
template <typename T>

src/gui/advancedsettings.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ private slots:
7979
spinSendBufferWatermark, spinSendBufferLowWatermark, spinSendBufferWatermarkFactor;
8080
QCheckBox cb_os_cache, cb_recheck_completed, cb_resolve_countries, cb_resolve_hosts, cb_super_seeding,
8181
cb_program_notifications, cb_torrent_added_notifications, cb_tracker_favicon, cb_tracker_status,
82-
cb_confirm_torrent_recheck, cb_confirm_remove_all_tags, cb_listen_ipv6, cb_announce_all_trackers, cbGuidedReadCache, cbMultiConnectionsPerIp,
83-
cbSuggestMode;
82+
cb_confirm_torrent_recheck, cb_confirm_remove_all_tags, cb_listen_ipv6, cb_announce_all_trackers, cb_announce_all_tiers,
83+
cbGuidedReadCache, cbMultiConnectionsPerIp, cbSuggestMode;
8484
QComboBox combo_iface, combo_iface_address, comboUtpMixedMode, comboChokingAlgorithm, comboSeedChokingAlgorithm;
8585
QLineEdit txtAnnounceIP;
8686

0 commit comments

Comments
 (0)