Don't validate config items if we've already encountered an error.

This commit is contained in:
Gunnar Beutner 2013-03-15 11:18:02 +01:00
parent 4e7c43c8c8
commit beeddb6840
1 changed files with 14 additions and 3 deletions

View File

@ -49,16 +49,27 @@ static bool LoadConfigFiles(bool validateOnly)
}
String name, fragment;
BOOST_FOREACH(tie(name, fragment), ConfigCompiler::GetConfigFragments()) {
BOOST_FOREACH(tie(name, fragment), ConfigFragmentRegistry::GetInstance()->GetItems()) {
ConfigCompiler::CompileText(name, fragment);
}
ConfigCompilerContext::SetContext(NULL);
context.Validate();
bool hasError = false;
BOOST_FOREACH(const ConfigCompilerError& error, context.GetErrors()) {
if (!error.Warning) {
hasError = true;
break;
}
}
/* Don't validate if we have already encountered at least one error. */
if (!hasError)
context.Validate();
hasError = false;
BOOST_FOREACH(const ConfigCompilerError& error, context.GetErrors()) {
if (error.Warning) {
Logger::Write(LogWarning, "icinga-app", "Config warning: " + error.Message);