]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Fix 'dumpStats()' with custom metrics 11684/head
authorRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 7 Jun 2022 16:35:43 +0000 (18:35 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 7 Jun 2022 16:40:16 +0000 (18:40 +0200)
pdns/dnsdist-lua-inspection.cc

index a641b0fb8a50bd147cb928e1c59fddaa8ad87557..0e39d93210b22519e0d3c0b507a6d4338f3f487d 100644 (file)
@@ -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<pdns::stat_t*>(&e.second))
-         second=std::to_string((*val)->load());
-       else if (const auto& dval = boost::get<double*>(&e.second))
-         second=(flt % (**dval)).str();
-       else
-         second=std::to_string((*boost::get<DNSDistStats::statfunction_t>(&e.second))(e.first));
+      for (const auto& e : entries) {
+        string second;
+        if (const auto& val = boost::get<pdns::stat_t*>(&e.second)) {
+          second = std::to_string((*val)->load());
+        }
+        else if(const auto& adval = boost::get<pdns::stat_t_trait<double>*>(&e.second)) {
+          second = (flt % (*adval)->load()).str();
+        }
+        else if (const auto& dval = boost::get<double*>(&e.second)) {
+          second = (flt % (**dval)).str();
+        }
+        else {
+          second = std::to_string((*boost::get<DNSDistStats::statfunction_t>(&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();