]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Make the logging functions available to all Lua environments 14398/head
authorRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 1 Jul 2024 09:17:52 +0000 (11:17 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 1 Jul 2024 09:17:52 +0000 (11:17 +0200)
They were not available to the per-thread FFI rule, action and
load-balancing policy environments.

pdns/dnsdistdist/dnsdist-lua-bindings.cc
pdns/dnsdistdist/dnsdist-lua-ffi.cc
pdns/dnsdistdist/dnsdist-lua.cc
pdns/dnsdistdist/dnsdist-lua.hh

index de53de97dba53006d3a0be26c2b7e94109eb95a4..86cef5be2ba311b42d9e1e4d05917fdab7807e89 100644 (file)
@@ -31,8 +31,7 @@
 #include "dolog.hh"
 #include "xsk.hh"
 
-// NOLINTNEXTLINE(readability-function-cognitive-complexity): this function declares Lua bindings, even with a good refactoring it will likely blow up the threshold
-void setupLuaBindings(LuaContext& luaCtx, bool client, bool configCheck)
+void setupLuaBindingsLogging(LuaContext& luaCtx)
 {
   luaCtx.writeFunction("vinfolog", [](const string& arg) {
     vinfolog("%s", arg);
@@ -50,7 +49,11 @@ void setupLuaBindings(LuaContext& luaCtx, bool client, bool configCheck)
     g_outputBuffer += arg;
     g_outputBuffer += "\n";
   });
+}
 
+// NOLINTNEXTLINE(readability-function-cognitive-complexity): this function declares Lua bindings, even with a good refactoring it will likely blow up the threshold
+void setupLuaBindings(LuaContext& luaCtx, bool client, bool configCheck)
+{
   /* Exceptions */
   luaCtx.registerFunction<string (std::exception_ptr::*)() const>("__tostring", [](const std::exception_ptr& eptr) -> std::string {
     try {
index 1443fa9e7784d0ed905cf84f987eddc88f284287..1fb9e631af03bb4a0c638e911815e64e5fddba22 100644 (file)
@@ -1007,6 +1007,7 @@ void setupLuaLoadBalancingContext(LuaContext& luaCtx)
 {
   setupLuaBindings(luaCtx, true, false);
   setupLuaBindingsDNSQuestion(luaCtx);
+  setupLuaBindingsLogging(luaCtx);
   setupLuaBindingsKVS(luaCtx, true);
   setupLuaVars(luaCtx);
 
@@ -1018,6 +1019,7 @@ void setupLuaLoadBalancingContext(LuaContext& luaCtx)
 void setupLuaFFIPerThreadContext(LuaContext& luaCtx)
 {
   setupLuaVars(luaCtx);
+  setupLuaBindingsLogging(luaCtx);
 
 #ifdef LUAJIT_VERSION
   luaCtx.executeCode(getLuaFFIWrappers());
index c526a93cc2d6d0855b479b36b270b7bc4df8a803..a31ddb73958944dc75388a6362aad1d32d3613f0 100644 (file)
@@ -3442,6 +3442,7 @@ vector<std::function<void(void)>> setupLua(LuaContext& luaCtx, bool client, bool
   setupLuaBindingsDNSParser(luaCtx);
   setupLuaBindingsDNSQuestion(luaCtx);
   setupLuaBindingsKVS(luaCtx, client);
+  setupLuaBindingsLogging(luaCtx);
   setupLuaBindingsNetwork(luaCtx, client);
   setupLuaBindingsPacketCache(luaCtx, client);
   setupLuaBindingsProtoBuf(luaCtx, client, configCheck);
index 0e076880a1d9e32f9b7afa9e44759224e32072fb..2944b2bf8a8df936fe5d792eb1657b34c265a232 100644 (file)
@@ -177,6 +177,7 @@ void setupLuaBindingsDNSCrypt(LuaContext& luaCtx, bool client);
 void setupLuaBindingsDNSParser(LuaContext& luaCtx);
 void setupLuaBindingsDNSQuestion(LuaContext& luaCtx);
 void setupLuaBindingsKVS(LuaContext& luaCtx, bool client);
+void setupLuaBindingsLogging(LuaContext& luaCtx);
 void setupLuaBindingsNetwork(LuaContext& luaCtx, bool client);
 void setupLuaBindingsPacketCache(LuaContext& luaCtx, bool client);
 void setupLuaBindingsProtoBuf(LuaContext& luaCtx, bool client, bool configCheck);