]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Replace the use of str{n,}casecmp with pdns_ilexicographical_compare_three_way.
authorMiod Vallat <miod.vallat@powerdns.com>
Mon, 13 Jul 2026 07:14:22 +0000 (09:14 +0200)
committerMiod Vallat <miod.vallat@powerdns.com>
Mon, 13 Jul 2026 07:25:53 +0000 (09:25 +0200)
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
pdns/dnsname.hh

index 5f8bc17066478efeed4da9efbf78f26c0e2f4855..ceecce807b90527d29ace69f3da40d78f3c9aa33 100644 (file)
@@ -475,7 +475,7 @@ struct SuffixMatchTree
   }
   bool operator<(const SuffixMatchTree& rhs) const
   {
-    return strcasecmp(d_name.c_str(), rhs.d_name.c_str()) < 0;
+    return pdns_ilexicographical_compare(d_name, rhs.d_name);
   }
 
   std::string d_name;
@@ -492,7 +492,9 @@ struct SuffixMatchTree
     bool operator<(const SuffixMatchTree& smt) const
     {
       auto compareUpTo = std::min(this->d_name.size(), smt.d_name.size());
-      auto ret = strncasecmp(this->d_name.data(), smt.d_name.data(), compareUpTo);
+      auto this_name = std::string_view(this->d_name.data(), compareUpTo);
+      auto smt_name = std::string_view(smt.d_name.data(), compareUpTo);
+      auto ret = pdns_ilexicographical_compare_three_way(this_name, smt_name);
       if (ret != 0) {
         return ret < 0;
       }
@@ -506,7 +508,9 @@ struct SuffixMatchTree
   bool operator<(const LightKey& lk) const
   {
     auto compareUpTo = std::min(this->d_name.size(), lk.d_name.size());
-    auto ret = strncasecmp(this->d_name.data(), lk.d_name.data(), compareUpTo);
+    auto this_name = std::string_view(this->d_name.data(), compareUpTo);
+    auto lk_name = std::string_view(lk.d_name.data(), compareUpTo);
+    auto ret = pdns_ilexicographical_compare_three_way(this_name, lk_name);
     if (ret != 0) {
       return ret < 0;
     }