]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Clear the Lua maintenance callbacks before exiting
authorRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 6 Feb 2024 15:22:49 +0000 (16:22 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 6 Feb 2024 15:22:49 +0000 (16:22 +0100)
pdns/dnsdist.cc
pdns/dnsdistdist/dnsdist-lua-hooks.cc
pdns/dnsdistdist/dnsdist-lua-hooks.hh

index 086765d1826734ad05463bc0916854f98acf6c01..f30ee44f2162348dadb0e7e1433552530f5308a0 100644 (file)
@@ -2737,6 +2737,7 @@ static void cleanupLuaObjects()
   g_policy.setState(ServerPolicy());
   g_pools.setState({});
   clearWebHandlers();
+  dnsdist::lua::hooks::clearMaintenanceHook();
 }
 
 static void sigTermHandler(int)
index 2b1814a4c53fa2beda76c1c49cca10bab92a5c90..0044417b95cbee86096d0ac36cb31942321c1a25 100644 (file)
@@ -21,6 +21,11 @@ void addMaintenanceCallback(const LuaContext& context, MaintenanceCallback callb
   s_maintenanceHook.lock()->push_back(std::move(callback));
 }
 
+void clearMaintenanceHook()
+{
+  s_maintenanceHook.lock()->clear();
+}
+
 void setupLuaHooks(LuaContext& luaCtx)
 {
   luaCtx.writeFunction("addMaintenanceCallback", [&luaCtx](const MaintenanceCallback& callback) {
index 573ab95b899c27db71308c37b4d4a90b7ea2d175..993d3a9c4236fef2f3155a77cc8796d8ef9d0584 100644 (file)
@@ -30,5 +30,6 @@ namespace dnsdist::lua::hooks
 using MaintenanceCallback = std::function<void()>;
 void runMaintenanceHook(const LuaContext& context);
 void addMaintenanceCallback(MaintenanceCallback callback);
+void clearMaintenanceHook();
 void setupLuaHooks(LuaContext& luaCtx);
 }