From 240f5b6718e1d0bfb7738886f18ea2118271260e Mon Sep 17 00:00:00 2001 From: Thomas Piccirello Date: Wed, 6 Dec 2017 20:32:50 -0500 Subject: [PATCH] Remove invalid subnets directly from list --- src/base/preferences.cpp | 19 ++++++++----------- src/base/preferences.h | 2 +- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/src/base/preferences.cpp b/src/base/preferences.cpp index 10320c313..f55360896 100644 --- a/src/base/preferences.cpp +++ b/src/base/preferences.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include #include @@ -487,21 +488,17 @@ QList Preferences::getWebUiAuthSubnetWhitelist() const return subnets; } -void Preferences::setWebUiAuthSubnetWhitelist(const QStringList &subnets) +void Preferences::setWebUiAuthSubnetWhitelist(QStringList subnets) { - QList filteredSubnets; - foreach (QString subnetString, subnets) { + QMutableListIterator i(subnets); + while (i.hasNext()) { bool ok = false; - const Utils::Net::Subnet subnet = Utils::Net::parseSubnet(subnetString.trimmed(), &ok); - if (ok) - filteredSubnets.append(subnet); + const Utils::Net::Subnet subnet = Utils::Net::parseSubnet(i.next().trimmed(), &ok); + if (!ok) + i.remove(); } - QStringList subnetsStringList; - for (const Utils::Net::Subnet &subnet : filteredSubnets) - subnetsStringList.append(Utils::Net::subnetToString(subnet)); - - setValue("Preferences/WebUI/AuthSubnetWhitelist", subnetsStringList); + setValue("Preferences/WebUI/AuthSubnetWhitelist", subnets); } QString Preferences::getServerDomains() const diff --git a/src/base/preferences.h b/src/base/preferences.h index b81419e6a..032042a6f 100644 --- a/src/base/preferences.h +++ b/src/base/preferences.h @@ -191,7 +191,7 @@ public: bool isWebUiAuthSubnetWhitelistEnabled() const; void setWebUiAuthSubnetWhitelistEnabled(bool enabled); QList getWebUiAuthSubnetWhitelist() const; - void setWebUiAuthSubnetWhitelist(const QStringList &subnets); + void setWebUiAuthSubnetWhitelist(QStringList subnets); QString getWebUiUsername() const; void setWebUiUsername(const QString &username); QString getWebUiPassword() const;