From: Remi Gacogne Date: Mon, 1 Jul 2024 09:17:52 +0000 (+0200) Subject: dnsdist: Make the logging functions available to all Lua environments X-Git-Tag: rec-5.2.0-alpha1~189^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0c61fdfe87fcfe606fa6f96454c04f078bb2294e;p=thirdparty%2Fpdns.git dnsdist: Make the logging functions available to all Lua environments They were not available to the per-thread FFI rule, action and load-balancing policy environments. --- diff --git a/pdns/dnsdistdist/dnsdist-lua-bindings.cc b/pdns/dnsdistdist/dnsdist-lua-bindings.cc index de53de97db..86cef5be2b 100644 --- a/pdns/dnsdistdist/dnsdist-lua-bindings.cc +++ b/pdns/dnsdistdist/dnsdist-lua-bindings.cc @@ -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("__tostring", [](const std::exception_ptr& eptr) -> std::string { try { diff --git a/pdns/dnsdistdist/dnsdist-lua-ffi.cc b/pdns/dnsdistdist/dnsdist-lua-ffi.cc index 1443fa9e77..1fb9e631af 100644 --- a/pdns/dnsdistdist/dnsdist-lua-ffi.cc +++ b/pdns/dnsdistdist/dnsdist-lua-ffi.cc @@ -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()); diff --git a/pdns/dnsdistdist/dnsdist-lua.cc b/pdns/dnsdistdist/dnsdist-lua.cc index c526a93cc2..a31ddb7395 100644 --- a/pdns/dnsdistdist/dnsdist-lua.cc +++ b/pdns/dnsdistdist/dnsdist-lua.cc @@ -3442,6 +3442,7 @@ vector> 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); diff --git a/pdns/dnsdistdist/dnsdist-lua.hh b/pdns/dnsdistdist/dnsdist-lua.hh index 0e076880a1..2944b2bf8a 100644 --- a/pdns/dnsdistdist/dnsdist-lua.hh +++ b/pdns/dnsdistdist/dnsdist-lua.hh @@ -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);