]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Fix unwanted copies of the configuration
authorRemi Gacogne <remi.gacogne@powerdns.com>
Fri, 21 Jun 2024 08:50:39 +0000 (10:50 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 15 Jul 2024 09:47:58 +0000 (11:47 +0200)
pdns/dnsdistdist/dnsdist-web.cc
pdns/dnsdistdist/dnsdist.cc

index 23cb39fcc78c82bb436d8e60149f3ed58cbcc179..a9e4afc2efb46e829828b07c35cd62b4a538c74c 100644 (file)
@@ -1431,8 +1431,8 @@ static void handleConfigDump(const YaHTTP::Request& req, YaHTTP::Response& resp)
   resp.status = 200;
 
   Json::array doc;
-  const auto runtimeConfiguration = dnsdist::configuration::getCurrentRuntimeConfiguration();
-  const auto immutableConfig = dnsdist::configuration::getImmutableConfiguration();
+  const auto& runtimeConfiguration = dnsdist::configuration::getCurrentRuntimeConfiguration();
+  const auto& immutableConfig = dnsdist::configuration::getImmutableConfiguration();
   using configentry_t = boost::variant<bool, double, std::string>;
   std::vector<std::pair<std::string, configentry_t>> configEntries{
     {"acl", runtimeConfiguration.d_ACL.toString()},
index 646652dcbf1623ece851a2325c14a1a9637f05ca..036911857c9b89675f6c770045abac929c805a50 100644 (file)
@@ -1031,7 +1031,7 @@ static bool applyRulesToQuery(DNSQuestion& dnsQuestion, const timespec& now)
   }
 
   {
-    const auto runtimeConfig = dnsdist::configuration::getCurrentRuntimeConfiguration();
+    const auto& runtimeConfig = dnsdist::configuration::getCurrentRuntimeConfiguration();
     if (runtimeConfig.d_queryCountConfig.d_enabled) {
       string qname = dnsQuestion.ids.qname.toLogString();
       bool countQuery{true};
@@ -2455,7 +2455,7 @@ static void dropUserPrivs(uid_t uid)
 
 static void checkFileDescriptorsLimits(size_t udpBindsCount, size_t tcpBindsCount)
 {
-  const auto immutableConfig = dnsdist::configuration::getImmutableConfiguration();
+  const auto& immutableConfig = dnsdist::configuration::getImmutableConfiguration();
   /* stdin, stdout, stderr */
   rlim_t requiredFDsCount = 3;
   const auto backends = dnsdist::configuration::getCurrentRuntimeConfiguration().d_backends;
@@ -2506,7 +2506,7 @@ static void checkFileDescriptorsLimits(size_t udpBindsCount, size_t tcpBindsCoun
 
 static void setupLocalSocket(ClientState& clientState, const ComboAddress& addr, int& socket, bool tcp, bool warn)
 {
-  const auto immutableConfig = dnsdist::configuration::getImmutableConfiguration();
+  const auto& immutableConfig = dnsdist::configuration::getImmutableConfiguration();
   static bool s_warned_ipv6_recvpktinfo = false;
   (void)warn;
   socket = SSocket(addr.sin4.sin_family, !tcp ? SOCK_DGRAM : SOCK_STREAM, 0);