]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Be less smart 9659/head
authorChris Hofstaedtler <chris.hofstaedtler@deduktiva.com>
Wed, 31 Mar 2021 14:00:23 +0000 (16:00 +0200)
committerChris Hofstaedtler <chris.hofstaedtler@deduktiva.com>
Wed, 31 Mar 2021 14:00:23 +0000 (16:00 +0200)
pdns/arguments.cc
pdns/misc.hh

index 73684cff676c98583ef879bba34e7c925080ac85..865d30756a77292d9bae97ce963e2fa476fc5802 100644 (file)
@@ -405,9 +405,9 @@ void ArgvMap::parseOne(const string &arg, const string &parseOnly, bool lax)
     else
     {
       // unknown setting encountered. see if its on the ignore list before throwing.
-      std::set<string> parts;
+      vector<string> parts;
       stringtok(parts, d_params["ignore-unknown-settings"], " ,\t\n\r");
-      if (parts.find(var) != parts.end()) {
+      if (find(parts.begin(), parts.end(), var) != parts.end()) {
         d_unknownParams[var] = val;
         g_log<<Logger::Warning<<"Ignoring unknown setting '"<<var<<"' as requested"<<endl;
         return;
index b283992cf3a9cdc61421242379ca10638b544aa0..d00b89820ace88cbb6baf72dbb8d3143bae381f8 100644 (file)
@@ -80,16 +80,10 @@ struct ServiceTuple
 };
 void parseService(const string &descr, ServiceTuple &st);
 
-template<typename Container, class Enable = void>
+template<typename Container>
 void
 stringtok (Container &container, string const &in,
-           const char * const delimiters = " \t\n");
-
-template<typename Container,
-         typename std::enable_if<std::is_function<typename Container::push_back>::value>::type = true>
-void
-stringtok (Container &container, string const &in,
-           const char * const delimiters)
+           const char * const delimiters = " \t\n")
 {
   const string::size_type len = in.length();
   string::size_type i = 0;
@@ -115,36 +109,6 @@ stringtok (Container &container, string const &in,
   }
 }
 
-template<typename Container,
-         typename std::enable_if<std::is_function<typename Container::insert>::value>::type = true>
-void
-stringtok (Container &container, string const &in,
-           const char * const delimiters)
-{
-  const string::size_type len = in.length();
-  string::size_type i = 0;
-
-  while (i<len) {
-    // eat leading whitespace
-    i = in.find_first_not_of (delimiters, i);
-    if (i == string::npos)
-      return;   // nothing left but white space
-
-    // find the end of the token
-    string::size_type j = in.find_first_of (delimiters, i);
-
-    // push token
-    if (j == string::npos) {
-      container.insert (in.substr(i));
-      return;
-    } else
-      container.insert (in.substr(i, j-i));
-
-    // set up for next loop
-    i = j + 1;
-  }
-}
-
 template<typename T> bool rfc1982LessThan(T a, T b)
 {
   static_assert(std::is_unsigned<T>::value, "rfc1982LessThan only works for unsigned types");