]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Use static arrays for the protocols, as suggested by Otto 12026/head
authorRemi Gacogne <remi.gacogne@powerdns.com>
Thu, 7 Jul 2022 10:50:40 +0000 (12:50 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 27 Sep 2022 08:01:43 +0000 (10:01 +0200)
pdns/dnsdist-protocols.cc
pdns/dnsdist-protocols.hh

index e6c47a6441183884812823c33e8a11f6a55b10f9..4fc02eeb63b74fedddabbfa8f8e6195239596e93 100644 (file)
@@ -27,7 +27,7 @@
 
 namespace dnsdist
 {
-const std::vector<std::string> Protocol::s_names = {
+const std::array<std::string, Protocol::s_numberOfProtocols> Protocol::s_names = {
   "DoUDP",
   "DoTCP",
   "DNSCryptUDP",
@@ -35,7 +35,7 @@ const std::vector<std::string> Protocol::s_names = {
   "DoT",
   "DoH"};
 
-static const std::vector<std::string> prettyNames = {
+const std::array<std::string, Protocol::s_numberOfProtocols> Protocol::s_prettyNames = {
   "Do53 UDP",
   "Do53 TCP",
   "DNSCrypt UDP",
@@ -71,7 +71,7 @@ const std::string& Protocol::toString() const
 
 const std::string& Protocol::toPrettyString() const
 {
-  return prettyNames.at(static_cast<uint8_t>(d_protocol));
+  return s_prettyNames.at(static_cast<uint8_t>(d_protocol));
 }
 
 }
index 981a8860d460ddef45c861db814b515426483105..fbd51683b815096aecf6b350f0eae4412ec6962a 100644 (file)
@@ -21,7 +21,7 @@
  */
 #pragma once
 
-#include <vector>
+#include <array>
 #include <string>
 
 namespace dnsdist
@@ -58,6 +58,8 @@ public:
 private:
   typeenum d_protocol;
 
-  static const std::vector<std::string> s_names;
+  static constexpr size_t s_numberOfProtocols = 6;
+  static const std::array<std::string, s_numberOfProtocols> s_names;
+  static const std::array<std::string, s_numberOfProtocols> s_prettyNames;
 };
 }