From fc6d49ac1f9c097c68a1832eda069a0367c8cc5a Mon Sep 17 00:00:00 2001 From: Thulinma Date: Thu, 14 Jun 2018 15:01:42 +0200 Subject: [PATCH] Fixed race condition in prometheus output when adding new protocols --- src/controller/controller_statistics.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/controller/controller_statistics.cpp b/src/controller/controller_statistics.cpp index a24de771..b198f008 100644 --- a/src/controller/controller_statistics.cpp +++ b/src/controller/controller_statistics.cpp @@ -1753,8 +1753,9 @@ void Controller::handlePrometheus(HTTP::Parser & H, Socket::Connection & conn, i //Loop over connectors const JSON::Value &caps = capabilities["connectors"]; jsonForEachConst(Storage["config"]["protocols"], prtcl){ + if (!(*prtcl).isMember("connector")){continue;} const std::string &cName = (*prtcl)["connector"].asStringRef(); - if ((*prtcl)["online"].asInt() != 1){continue;} + if (!(*prtcl).isMember("online") || (*prtcl)["online"].asInt() != 1){continue;} if (!caps.isMember(cName)){continue;} const JSON::Value & capa = caps[cName]; if (!capa.isMember("optional") || !capa["optional"].isMember("port")){continue;}