diff --git a/src/core/preferences.cpp b/src/core/preferences.cpp
index 014986ab6..094b281dd 100644
--- a/src/core/preferences.cpp
+++ b/src/core/preferences.cpp
@@ -971,6 +971,16 @@ void Preferences::setFilteringEnabled(bool enabled)
setValue("Preferences/IPFilter/Enabled", enabled);
}
+bool Preferences::isFilteringTrackerEnabled() const
+{
+ return value("Preferences/IPFilter/FilterTracker", false).toBool();
+}
+
+void Preferences::setFilteringTrackerEnabled(bool enabled)
+{
+ setValue("Preferences/IPFilter/FilterTracker", enabled);
+}
+
QString Preferences::getFilter() const
{
return fsutils::fromNativePath(value("Preferences/IPFilter/File").toString());
diff --git a/src/core/preferences.h b/src/core/preferences.h
index cf608982f..7aaf64870 100644
--- a/src/core/preferences.h
+++ b/src/core/preferences.h
@@ -282,6 +282,8 @@ public:
// IP Filter
bool isFilteringEnabled() const;
void setFilteringEnabled(bool enabled);
+ bool isFilteringTrackerEnabled() const;
+ void setFilteringTrackerEnabled(bool enabled);
QString getFilter() const;
void setFilter(const QString &path);
QStringList bannedIPs() const;
diff --git a/src/core/qtlibtorrent/qbtsession.cpp b/src/core/qtlibtorrent/qbtsession.cpp
index 8f163ea19..922a4829e 100644
--- a/src/core/qtlibtorrent/qbtsession.cpp
+++ b/src/core/qtlibtorrent/qbtsession.cpp
@@ -414,9 +414,9 @@ void QBtSession::configureSession() {
// * Session settings
session_settings sessionSettings = s->settings();
sessionSettings.user_agent = "qBittorrent " VERSION;
- //std::cout << "HTTP User-Agent is " << sessionSettings.user_agent << std::endl;
logger->addMessage(tr("HTTP User-Agent is %1").arg(misc::toQString(sessionSettings.user_agent)));
+ sessionSettings.apply_ip_filter_to_trackers = pref->isFilteringTrackerEnabled();
sessionSettings.upnp_ignore_nonrouters = true;
sessionSettings.use_dht_as_fallback = false;
// Disable support for SSL torrents for now
diff --git a/src/gui/options.ui b/src/gui/options.ui
index f6584d029..bc37a824f 100644
--- a/src/gui/options.ui
+++ b/src/gui/options.ui
@@ -180,8 +180,8 @@
0
0
- 458
- 611
+ 474
+ 646
@@ -519,8 +519,8 @@
0
0
- 458
- 933
+ 487
+ 1005
@@ -1037,8 +1037,8 @@
0
0
- 458
- 556
+ 474
+ 640
@@ -1469,17 +1469,17 @@
false
- -
+
-
Filter path (.dat, .p2p, .p2b):
- -
+
-
- -
+
-
@@ -1492,7 +1492,7 @@
- -
+
-
@@ -1514,6 +1514,13 @@
+ -
+
+
+ Apply to trackers
+
+
+
@@ -1538,8 +1545,8 @@
0
0
- 458
- 407
+ 474
+ 438
@@ -1822,12 +1829,6 @@
true
-
- hh:mm
-
-
- false
-
+
+ hh:mm
+
+
+ false
+
-
@@ -1852,9 +1859,6 @@
true
-
- hh:mm
-
+
+ hh:mm
+
-
@@ -1962,8 +1969,8 @@
0
0
- 458
- 381
+ 556
+ 418
@@ -2316,8 +2323,8 @@
0
0
- 458
- 494
+ 474
+ 537
@@ -2693,8 +2700,8 @@
0
0
- 474
- 316
+ 487
+ 342
diff --git a/src/gui/options_imp.cpp b/src/gui/options_imp.cpp
index 371419e3a..0ea76a861 100644
--- a/src/gui/options_imp.cpp
+++ b/src/gui/options_imp.cpp
@@ -228,6 +228,7 @@ options_imp::options_imp(QWidget *parent):
connect(textProxyPassword, SIGNAL(textChanged(QString)), this, SLOT(enableApplyButton()));
// Misc tab
connect(checkIPFilter, SIGNAL(toggled(bool)), this, SLOT(enableApplyButton()));
+ connect(checkIpFilterTrackers, SIGNAL(toggled(bool)), SLOT(enableApplyButton()));
connect(textFilterPath, SIGNAL(textChanged(QString)), this, SLOT(enableApplyButton()));
connect(checkEnableQueueing, SIGNAL(toggled(bool)), this, SLOT(enableApplyButton()));
connect(spinMaxActiveDownloads, SIGNAL(valueChanged(QString)), this, SLOT(enableApplyButton()));
@@ -457,8 +458,10 @@ void options_imp::saveOptions() {
// Misc preferences
// * IPFilter
pref->setFilteringEnabled(isFilteringEnabled());
- if (isFilteringEnabled())
+ if (isFilteringEnabled()) {
+ pref->setFilteringTrackerEnabled(checkIpFilterTrackers->isChecked());
pref->setFilter(textFilterPath->text());
+ }
// End IPFilter preferences
// Queueing system
pref->setQueueingSystemEnabled(isQueueingSystemEnabled());
@@ -764,6 +767,7 @@ void options_imp::loadOptions() {
// Misc preferences
// * IP Filter
checkIPFilter->setChecked(pref->isFilteringEnabled());
+ checkIpFilterTrackers->setChecked(pref->isFilteringTrackerEnabled());
textFilterPath->setText(fsutils::toNativePath(pref->getFilter()));
// End IP Filter
// Queueing system preferences