From 9f4fa5ae01efa878d2aa27e4398740d7ed6ef01f Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Tue, 7 Jun 2022 18:35:43 +0200 Subject: [PATCH] dnsdist: Fix 'dumpStats()' with custom metrics --- pdns/dnsdist-lua-inspection.cc | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/pdns/dnsdist-lua-inspection.cc b/pdns/dnsdist-lua-inspection.cc index a641b0fb8a..0e39d93210 100644 --- a/pdns/dnsdist-lua-inspection.cc +++ b/pdns/dnsdist-lua-inspection.cc @@ -690,19 +690,27 @@ void setupLuaInspection(LuaContext& luaCtx) return a.first < b.first; }); boost::format flt(" %9.1f"); - for(const auto& e : entries) { - string second; - if(const auto& val = boost::get(&e.second)) - second=std::to_string((*val)->load()); - else if (const auto& dval = boost::get(&e.second)) - second=(flt % (**dval)).str(); - else - second=std::to_string((*boost::get(&e.second))(e.first)); + for (const auto& e : entries) { + string second; + if (const auto& val = boost::get(&e.second)) { + second = std::to_string((*val)->load()); + } + else if(const auto& adval = boost::get*>(&e.second)) { + second = (flt % (*adval)->load()).str(); + } + else if (const auto& dval = boost::get(&e.second)) { + second = (flt % (**dval)).str(); + } + else { + second = std::to_string((*boost::get(&e.second))(e.first)); + } - if(leftcolumn.size() < g_stats.entries.size()/2) - leftcolumn.push_back((fmt % e.first % second).str()); - else - rightcolumn.push_back((fmt % e.first % second).str()); + if (leftcolumn.size() < g_stats.entries.size()/2) { + leftcolumn.push_back((fmt % e.first % second).str()); + } + else { + rightcolumn.push_back((fmt % e.first % second).str()); + } } auto leftiter=leftcolumn.begin(), rightiter=rightcolumn.begin(); -- 2.47.2