]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Refresh configuration after `recv` which may have blocked for a long time
authorRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 1 Sep 2025 10:22:06 +0000 (12:22 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 9 Sep 2025 08:06:45 +0000 (10:06 +0200)
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
(cherry picked from commit 4f70dcdd60826448b4bcad5a44335de0c45dbeea)

pdns/dnsdistdist/dnsdist.cc

index 6c0cc94beb9d1e03bd71be86146378dbb6d4fb95..e75ac1a7ca12549ae032f753c7cb7be2556dcced 100644 (file)
@@ -792,8 +792,6 @@ void responderThread(std::shared_ptr<DownstreamState> dss)
           break;
         }
 
-        dnsdist::configuration::refreshLocalRuntimeConfiguration();
-
         for (const auto& sockDesc : sockets) {
           /* allocate one more byte so we can detect truncation */
           // NOLINTNEXTLINE(bugprone-use-after-move): resizing a vector has no preconditions so it is valid to do so after moving it
@@ -822,6 +820,7 @@ void responderThread(std::shared_ptr<DownstreamState> dss)
             continue;
           }
 
+          dnsdist::configuration::refreshLocalRuntimeConfiguration();
           if (processResponderPacket(dss, response, std::move(*ids)) && ids->isXSK() && ids->cs->xskInfoResponder) {
 #ifdef HAVE_XSK
             auto& xskInfo = ids->cs->xskInfoResponder;