From e88c48a33342ac5bff0fd964c24afb1a115f03ec Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Mon, 8 Jul 2024 16:30:41 +0200 Subject: [PATCH] dnsdist: Make the logging functions available to all Lua environments --- pdns/dnsdist-lua-bindings.cc | 7 +++++-- pdns/dnsdist-lua.cc | 1 + pdns/dnsdist-lua.hh | 1 + pdns/dnsdistdist/dnsdist-lua-ffi.cc | 2 ++ 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/pdns/dnsdist-lua-bindings.cc b/pdns/dnsdist-lua-bindings.cc index 3f5d6e2115..ffed8f0bc1 100644 --- a/pdns/dnsdist-lua-bindings.cc +++ b/pdns/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/dnsdist-lua.cc b/pdns/dnsdist-lua.cc index 73a8567b24..f0037c1cc9 100644 --- a/pdns/dnsdist-lua.cc +++ b/pdns/dnsdist-lua.cc @@ -3482,6 +3482,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/dnsdist-lua.hh b/pdns/dnsdist-lua.hh index fed468c100..fc99e202cf 100644 --- a/pdns/dnsdist-lua.hh +++ b/pdns/dnsdist-lua.hh @@ -169,6 +169,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); diff --git a/pdns/dnsdistdist/dnsdist-lua-ffi.cc b/pdns/dnsdistdist/dnsdist-lua-ffi.cc index 8ab36f5169..118d0ce833 100644 --- a/pdns/dnsdistdist/dnsdist-lua-ffi.cc +++ b/pdns/dnsdistdist/dnsdist-lua-ffi.cc @@ -1012,6 +1012,7 @@ void setupLuaLoadBalancingContext(LuaContext& luaCtx) { setupLuaBindings(luaCtx, true, false); setupLuaBindingsDNSQuestion(luaCtx); + setupLuaBindingsLogging(luaCtx); setupLuaBindingsKVS(luaCtx, true); setupLuaVars(luaCtx); @@ -1023,6 +1024,7 @@ void setupLuaLoadBalancingContext(LuaContext& luaCtx) void setupLuaFFIPerThreadContext(LuaContext& luaCtx) { setupLuaVars(luaCtx); + setupLuaBindingsLogging(luaCtx); #ifdef LUAJIT_VERSION luaCtx.executeCode(getLuaFFIWrappers()); -- 2.47.2