From: Christof Chen Date: Fri, 7 Oct 2022 18:32:37 +0000 (+0200) Subject: add getPoolNames() function X-Git-Tag: dnsdist-1.8.0-rc1~280^2~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=377c12005b8548a3431ccce4be1dcf5e5b01956f;p=thirdparty%2Fpdns.git add getPoolNames() function --- diff --git a/pdns/dnsdist-console.cc b/pdns/dnsdist-console.cc index bf802fc856..ed2ab692e7 100644 --- a/pdns/dnsdist-console.cc +++ b/pdns/dnsdist-console.cc @@ -526,6 +526,7 @@ const std::vector g_consoleKeywords{ { "getOutgoingTLSSessionCacheSize", true, "", "returns the number of TLS sessions (for outgoing connections) currently cached" }, { "getPool", true, "name", "return the pool named `name`, or \"\" for the default pool" }, { "getPoolServers", true, "pool", "return servers part of this pool" }, + { "getPoolNames", true, "", "returns a table with all the pool names" }, { "getQueryCounters", true, "[max=10]", "show current buffer of query counters, limited by 'max' if provided" }, { "getResponseRing", true, "", "return the current content of the response ring" }, { "getRespRing", true, "", "return the qname/rcode content of the response ring" }, diff --git a/pdns/dnsdist-lua.cc b/pdns/dnsdist-lua.cc index 7f5ddeece6..8f8b7caa59 100644 --- a/pdns/dnsdist-lua.cc +++ b/pdns/dnsdist-lua.cc @@ -1735,6 +1735,19 @@ static void setupLuaConfig(LuaContext& luaCtx, bool client, bool configCheck) } }); + luaCtx.writeFunction("getPoolNames", []() { + setLuaNoSideEffect(); + LuaArray ret; + int count = 1; + const auto localPools = g_pools.getCopy(); + for (const auto& entry : localPools) { + const string& name = entry.first; + ret.push_back(make_pair(count++, name)); + + } + return ret; + }); + luaCtx.writeFunction("getPool", [client](const string& poolName) { if (client) { return std::make_shared();