]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Also allocate buffers and connect sockets for CLI backends
authorRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 26 Oct 2021 15:36:30 +0000 (17:36 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 26 Oct 2021 15:36:30 +0000 (17:36 +0200)
pdns/dnsdist-lua.cc
pdns/dnsdist.cc
pdns/dnsdistdist/dnsdist-backend.cc

index e149fc5bca33eaab980cf62192b17f9bb635b73a..27a2eef198ae6959ef0c22c7f8a966bf5283fb91 100644 (file)
@@ -567,7 +567,6 @@ static void setupLuaConfig(LuaContext& luaCtx, bool client, bool configCheck)
                          }
 
                          if (!ret->isTCPOnly() && !(client || configCheck)) {
-                           ret->idStates.resize(g_maxOutstanding);
                            if (!IsAnyAddress(ret->remote)) {
                              ret->connectUDPSockets(numberOfSockets);
                            }
index 41e8bd37456d7d07e8314dea3c3a2e2c7dced3d1..79aaebaf8b9cc70e7073bd6bbbcfbd5323727c48 100644 (file)
@@ -2593,9 +2593,10 @@ int main(int argc, char** argv)
     localPools = g_pools.getCopy();
     /* create the default pool no matter what */
     createPoolIfNotExists(localPools, "");
-    if(g_cmdLine.remotes.size()) {
-      for(const auto& address : g_cmdLine.remotes) {
-        auto ret=std::make_shared<DownstreamState>(ComboAddress(address, 53));
+    if (g_cmdLine.remotes.size()) {
+      for (const auto& address : g_cmdLine.remotes) {
+        auto ret = std::make_shared<DownstreamState>(ComboAddress(address, 53));
+        ret->connectUDPSockets(1);
         addServerToPool(localPools, "", ret);
         if (ret->connected && !ret->threadStarted.test_and_set()) {
           ret->tid = thread(responderThread, ret);
@@ -2605,7 +2606,7 @@ int main(int argc, char** argv)
     }
     g_pools.setState(localPools);
 
-    if(g_dstates.getLocal()->empty()) {
+    if (g_dstates.getLocal()->empty()) {
       errlog("No downstream servers defined: all packets will get dropped");
       // you might define them later, but you need to know
     }
index 7349bfffe8a74b8e5a40aa0eb71cae8da948ae55..2af756f8cccde0a839fb42f779599fe93b1001c9 100644 (file)
@@ -174,6 +174,7 @@ DownstreamState::DownstreamState(const ComboAddress& remote_, const ComboAddress
 
 void DownstreamState::connectUDPSockets(size_t numberOfSockets)
 {
+  idStates.resize(g_maxOutstanding);
   sockets.resize(numberOfSockets);
 
   if (sockets.size() > 1) {