refactor(userspace/engine): refactor engine interface and internals

This updates the engine to comply and work properly with the newly-introduced
interface design.

Signed-off-by: Jason Dellaluce <jasondellaluce@gmail.com>
This commit is contained in:
Jason Dellaluce
2022-05-23 13:49:36 +00:00
committed by poiana
parent 5ddc8e20f4
commit 0abd7eaa28
7 changed files with 106 additions and 68 deletions

View File

@@ -648,7 +648,7 @@ void rule_loader::compile_rule_infos(
apply_output_substitutions(cfg, rule.output);
}
THROW(!is_format_valid(cfg.engine, r.source, rule.output, err),
THROW(!is_format_valid(*cfg.sources.at(r.source), rule.output, err),
"Invalid output format '" + rule.output + "': '" + err + "'");
// construct rule definition and compile it to a filter
@@ -662,7 +662,16 @@ void rule_loader::compile_rule_infos(
auto rule_id = out.insert(rule, rule.name);
out.at(rule_id)->id = rule_id;
source->ruleset->add(*out.at(rule_id), ast);
source->ruleset->enable(rule.name, false, r.enabled);
// By default rules are enabled/disabled for the default ruleset
if(r.enabled)
{
source->ruleset->enable(rule.name, true, cfg.default_ruleset_id);
}
else
{
source->ruleset->disable(rule.name, true, cfg.default_ruleset_id);
}
}
catch (falco_exception& e)
{