]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Handle non-existent default pool when removing a server
authorRemi Gacogne <remi.gacogne@powerdns.com>
Wed, 21 Aug 2024 08:50:36 +0000 (10:50 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Wed, 21 Aug 2024 08:50:36 +0000 (10:50 +0200)
pdns/dnsdistdist/dnsdist-lua.cc

index bc3d3df0ec399a8b190f9a1c1c22bdd7e6d27959..2233e8aa0ec973a19a2b9473710c784d8f627e8f 100644 (file)
@@ -736,8 +736,14 @@ static void setupLuaConfig(LuaContext& luaCtx, bool client, bool configCheck)
                          for (const string& poolName : server->d_config.pools) {
                            removeServerFromPool(poolName, server);
                          }
-                         /* the server might also be in the default pool */
-                         removeServerFromPool("", server);
+
+                         try {
+                           /* the server might also be in the default pool */
+                           removeServerFromPool("", server);
+                         }
+                         catch (const std::out_of_range& exp) {
+                           /* but the default pool might not exist yet, this is fine */
+                         }
 
                          dnsdist::configuration::updateRuntimeConfiguration([&server](dnsdist::configuration::RuntimeConfiguration& config) {
                            config.d_backends.erase(std::remove(config.d_backends.begin(), config.d_backends.end(), server), config.d_backends.end());