diff --git a/icinga-app/icinga.cpp b/icinga-app/icinga.cpp index f3e04dc76..f7876ba98 100644 --- a/icinga-app/icinga.cpp +++ b/icinga-app/icinga.cpp @@ -45,6 +45,7 @@ static HANDLE l_Job; static std::vector GetLogLevelCompletionSuggestions(const String& arg) { std::vector result; + result.reserve(5); String debugLevel = "debug"; if (debugLevel.Find(arg) == 0) diff --git a/lib/base/configobject.cpp b/lib/base/configobject.cpp index 4317771d1..5d8b34e8d 100644 --- a/lib/base/configobject.cpp +++ b/lib/base/configobject.cpp @@ -212,8 +212,6 @@ void ConfigObject::RestoreAttribute(const String& attr, bool updateVersion) int fid = type->GetFieldId(fieldName); - Value currentValue = GetField(fid); - Dictionary::Ptr original_attributes = GetOriginalAttributes(); if (!original_attributes) @@ -223,6 +221,7 @@ void ConfigObject::RestoreAttribute(const String& attr, bool updateVersion) Value newValue; if (tokens.size() > 1) { + Value currentValue = GetField(fid); newValue = currentValue.Clone(); Value current = newValue; diff --git a/lib/base/tlsutility.cpp b/lib/base/tlsutility.cpp index 7e2193c89..db9e7ca3a 100644 --- a/lib/base/tlsutility.cpp +++ b/lib/base/tlsutility.cpp @@ -685,10 +685,8 @@ std::shared_ptr CreateCert(EVP_PKEY *pubkey, X509_NAME *subject, X509_NAME X509_EXTENSION_free(basicConstraintsExt); } - String cn = GetX509NameCN(subject); - if (!ca) { - String san = "DNS:" + cn; + String san = "DNS:" + GetX509NameCN(subject); X509_EXTENSION *subjectAltNameExt = X509V3_EXT_conf_nid(nullptr, &ctx, NID_subject_alt_name, const_cast(san.CStr())); if (subjectAltNameExt) { X509_add_ext(cert, subjectAltNameExt, -1); diff --git a/lib/base/utility.cpp b/lib/base/utility.cpp index 6ff84ae65..dc09138b3 100644 --- a/lib/base/utility.cpp +++ b/lib/base/utility.cpp @@ -1015,6 +1015,8 @@ String Utility::FormatDuration(double duration) std::vector tokens; String result; + tokens.reserve(4); + if (duration >= 86400) { int days = duration / 86400; tokens.emplace_back(Convert::ToString(days) + (days != 1 ? " days" : " day")); @@ -1038,7 +1040,7 @@ String Utility::FormatDuration(double duration) tokens.emplace_back(Convert::ToString(seconds) + (seconds != 1 ? " seconds" : " second")); } - if (tokens.size() == 0) { + if (tokens.empty()) { int milliseconds = std::floor(duration * 1000); if (milliseconds >= 1) tokens.emplace_back(Convert::ToString(milliseconds) + (milliseconds != 1 ? " milliseconds" : " millisecond")); @@ -1570,7 +1572,7 @@ static bool ReleaseHelper(String *platformName, String *platformVersion) if (release.is_open()) { std::string release_line; while (getline(release, release_line)) { - std::string::size_type pos = release_line.find("="); + std::string::size_type pos = release_line.find('='); if (pos == std::string::npos) continue; @@ -1578,12 +1580,12 @@ static bool ReleaseHelper(String *platformName, String *platformVersion) std::string key = release_line.substr(0, pos); std::string value = release_line.substr(pos + 1); - std::string::size_type firstQuote = value.find("\""); + std::string::size_type firstQuote = value.find('"'); if (firstQuote != std::string::npos) value.erase(0, firstQuote + 1); - std::string::size_type lastQuote = value.rfind("\""); + std::string::size_type lastQuote = value.rfind('"'); if (lastQuote != std::string::npos) value.erase(lastQuote); diff --git a/lib/db_ido/idochecktask.cpp b/lib/db_ido/idochecktask.cpp index 6a7f0d363..1dfa2f410 100644 --- a/lib/db_ido/idochecktask.cpp +++ b/lib/db_ido/idochecktask.cpp @@ -52,6 +52,7 @@ void IdoCheckTask::ScriptFunc(const Checkable::Ptr& checkable, const CheckResult tie(host, service) = GetHostService(checkable); MacroProcessor::ResolverList resolvers; + resolvers.reserve(5); if (MacroResolver::OverrideMacros) resolvers.emplace_back("override", MacroResolver::OverrideMacros); diff --git a/lib/icinga/apiactions.cpp b/lib/icinga/apiactions.cpp index ff3c6506d..2355c4abe 100644 --- a/lib/icinga/apiactions.cpp +++ b/lib/icinga/apiactions.cpp @@ -654,6 +654,8 @@ Dictionary::Ptr ApiActions::ExecuteCommand(const ConfigObject::Ptr& object, cons MacroProcessor::ResolverList resolvers; Value macros; + resolvers.reserve(4); + if (params->Contains("macros")) { macros = HttpUtility::GetLastParameter(params, "macros"); if (macros.IsObjectType()) { diff --git a/lib/icinga/compatutility.cpp b/lib/icinga/compatutility.cpp index 40c01f397..1212a0c08 100644 --- a/lib/icinga/compatutility.cpp +++ b/lib/icinga/compatutility.cpp @@ -69,14 +69,13 @@ String CompatUtility::GetCheckableCommandArgs(const Checkable::Ptr& checkable) { CheckCommand::Ptr command = checkable->GetCheckCommand(); - Dictionary::Ptr args = new Dictionary(); - if (command) { Host::Ptr host; Service::Ptr service; tie(host, service) = GetHostService(checkable); String command_line = GetCommandLine(command); + Dictionary::Ptr args = new Dictionary(); Dictionary::Ptr command_vars = command->GetVars(); if (command_vars) { diff --git a/lib/icingadb/icingadbchecktask.cpp b/lib/icingadb/icingadbchecktask.cpp index c2f1a3699..f4ba4e7af 100644 --- a/lib/icingadb/icingadbchecktask.cpp +++ b/lib/icingadb/icingadbchecktask.cpp @@ -54,6 +54,8 @@ void IcingadbCheckTask::ScriptFunc(const Checkable::Ptr& checkable, const CheckR MacroProcessor::ResolverList resolvers; String silenceMissingMacroWarning; + resolvers.reserve(5); + if (MacroResolver::OverrideMacros) resolvers.emplace_back("override", MacroResolver::OverrideMacros); @@ -211,7 +213,7 @@ void IcingadbCheckTask::ScriptFunc(const Checkable::Ptr& checkable, const CheckR critmsgs << " ERROR: " << errMsg << "!"; } - perfdata->Add(new PerfdataValue("error_for", errFor * (err ? 1 : -1), false, "seconds", Empty, errForCritical, 0)); + perfdata->Add(new PerfdataValue("error_for", errFor, false, "seconds", Empty, errForCritical, 0)); } if (!down) { diff --git a/lib/methods/clusterzonechecktask.cpp b/lib/methods/clusterzonechecktask.cpp index 983719795..dc17f8668 100644 --- a/lib/methods/clusterzonechecktask.cpp +++ b/lib/methods/clusterzonechecktask.cpp @@ -55,6 +55,7 @@ void ClusterZoneCheckTask::ScriptFunc(const Checkable::Ptr& checkable, const Che tie(host, service) = GetHostService(checkable); MacroProcessor::ResolverList resolvers; + resolvers.reserve(5); if (MacroResolver::OverrideMacros) resolvers.emplace_back("override", MacroResolver::OverrideMacros); diff --git a/lib/methods/dummychecktask.cpp b/lib/methods/dummychecktask.cpp index 561415c64..f63589143 100644 --- a/lib/methods/dummychecktask.cpp +++ b/lib/methods/dummychecktask.cpp @@ -29,6 +29,7 @@ void DummyCheckTask::ScriptFunc(const Checkable::Ptr& checkable, const CheckResu tie(host, service) = GetHostService(checkable); MacroProcessor::ResolverList resolvers; + resolvers.reserve(5); if (MacroResolver::OverrideMacros) resolvers.emplace_back("override", MacroResolver::OverrideMacros); @@ -48,9 +49,6 @@ void DummyCheckTask::ScriptFunc(const Checkable::Ptr& checkable, const CheckResu if (resolvedMacros && !useResolvedMacros) return; - /* Parse output and performance data. */ - std::pair co = PluginUtility::ParseCheckOutput(dummyText); - double now = Utility::GetTime(); String commandName = command->GetName(); @@ -64,6 +62,9 @@ void DummyCheckTask::ScriptFunc(const Checkable::Ptr& checkable, const CheckResu Checkable::ExecuteCommandProcessFinishedHandler(commandName, pr); } else { + /* Parse output and performance data. */ + std::pair co = PluginUtility::ParseCheckOutput(dummyText); + cr->SetOutput(co.first); cr->SetPerformanceData(PluginUtility::SplitPerfdata(co.second)); cr->SetState(PluginUtility::ExitStatusToState(dummyState)); diff --git a/lib/methods/exceptionchecktask.cpp b/lib/methods/exceptionchecktask.cpp index 47707f26f..d1b05d7e7 100644 --- a/lib/methods/exceptionchecktask.cpp +++ b/lib/methods/exceptionchecktask.cpp @@ -36,6 +36,6 @@ void ExceptionCheckTask::ScriptFunc(const Checkable::Ptr& checkable, const Check Checkable::ExecuteCommandProcessFinishedHandler("", pr); } else { - BOOST_THROW_EXCEPTION(ScriptError("Test") << boost::errinfo_api_function("Test")); + BOOST_THROW_EXCEPTION(scriptError); } } diff --git a/lib/methods/icingachecktask.cpp b/lib/methods/icingachecktask.cpp index 40795495d..13ab64e2e 100644 --- a/lib/methods/icingachecktask.cpp +++ b/lib/methods/icingachecktask.cpp @@ -33,6 +33,7 @@ void IcingaCheckTask::ScriptFunc(const Checkable::Ptr& checkable, const CheckRes tie(host, service) = GetHostService(checkable); MacroProcessor::ResolverList resolvers; + resolvers.reserve(5); if (MacroResolver::OverrideMacros) resolvers.emplace_back("override", MacroResolver::OverrideMacros); diff --git a/lib/methods/sleepchecktask.cpp b/lib/methods/sleepchecktask.cpp index a018de46b..aebde0d55 100644 --- a/lib/methods/sleepchecktask.cpp +++ b/lib/methods/sleepchecktask.cpp @@ -47,7 +47,6 @@ void SleepCheckTask::ScriptFunc(const Checkable::Ptr& checkable, const CheckResu double now = Utility::GetTime(); CheckCommand::Ptr command = checkable->GetCheckCommand(); - String commandName = command->GetName(); if (Checkable::ExecuteCommandProcessFinishedHandler) { ProcessResult pr; @@ -62,7 +61,7 @@ void SleepCheckTask::ScriptFunc(const Checkable::Ptr& checkable, const CheckResu cr->SetOutput(output); cr->SetExecutionStart(now); cr->SetExecutionEnd(now); - cr->SetCommand(commandName); + cr->SetCommand(command->GetName()); checkable->ProcessCheckResult(cr); } diff --git a/lib/perfdata/perfdatawriter.cpp b/lib/perfdata/perfdatawriter.cpp index 77652b1da..3fed97c26 100644 --- a/lib/perfdata/perfdatawriter.cpp +++ b/lib/perfdata/perfdatawriter.cpp @@ -113,6 +113,8 @@ void PerfdataWriter::CheckResultHandler(const Checkable::Ptr& checkable, const C host = static_pointer_cast(checkable); MacroProcessor::ResolverList resolvers; + resolvers.reserve(3); + if (service) resolvers.emplace_back("service", service); resolvers.emplace_back("host", host);