]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dns: Rewrite `RCode::from_short` with `std::find` and `std::distance`
authorRemi Gacogne <remi.gacogne@powerdns.com>
Fri, 11 Jul 2025 08:03:18 +0000 (10:03 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Fri, 11 Jul 2025 08:03:18 +0000 (10:03 +0200)
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
pdns/dns.cc

index d78027d80e2bed64228a139385fc7a2e27484e6f..38c761cfbf05917586ca8fe3803592ef5c526c89 100644 (file)
@@ -87,14 +87,11 @@ std::string RCode::to_short_s(uint8_t rcode) {
 
 std::optional<uint8_t> RCode::from_short(const std::string_view& rcode_string)
 {
-  uint8_t position = 0;
-  for (const auto& short_rcode : rcodes_short_s) {
-    if (short_rcode == rcode_string) {
-      return position;
-    }
-    ++position;
+  auto position = std::find(rcodes_short_s.begin(), rcodes_short_s.end(), rcode_string);
+  if (position == rcodes_short_s.end()) {
+    return std::nullopt;
   }
-  return std::nullopt;
+  return std::distance(rcodes_short_s.begin(), position);
 }
 
 std::string ERCode::to_s(uint16_t rcode) {