From e35a73995a83db09650338f227cb0588bc78b4d7 Mon Sep 17 00:00:00 2001 From: Felipe Zimmerle Date: Mon, 21 Dec 2020 10:10:37 -0300 Subject: [PATCH] Moves fixDefaultActions to Rules --- src/rules.cc | 42 ++++++++++++++++++++++++++++++++++++++++++ src/rules_set.cc | 40 ---------------------------------------- 2 files changed, 42 insertions(+), 40 deletions(-) diff --git a/src/rules.cc b/src/rules.cc index ff91e8b4..eaafbb5a 100644 --- a/src/rules.cc +++ b/src/rules.cc @@ -13,12 +13,54 @@ * */ +#include "modsecurity/modsecurity.h" #include "modsecurity/rules.h" +#include "modsecurity/rules_set.h" +#include "modsecurity/transaction.h" + +#include "src/parser/driver.h" +#include "src/rule_marker.h" #include "src/rule_with_actions.h" +#include "src/utils/https_client.h" + namespace modsecurity { +void Rules::fixDefaultActions(RulesWarnings *warnings, RulesErrors *errors) { + for (size_t i = 0; i < m_rules.size(); i++) { + auto &rule = m_rules[i]; + RuleWithActions *r = dynamic_cast(rule.get()); + if (!r) { + continue; + } + if (dynamic_cast(rule.get())) { + RuleWithOperator *op = new RuleWithOperator(*dynamic_cast(rule.get())); + std::unique_ptr nrp(op); + m_rules[i] = std::move(nrp); + } else if (dynamic_cast(rule.get())) { + RuleUnconditional *un = new RuleUnconditional(*dynamic_cast(rule.get())); + std::unique_ptr nrp(un); + m_rules[i] = std::move(nrp); + } else if (dynamic_cast(rule.get())) { + RuleScript *rs = new RuleScript(*dynamic_cast(rule.get())); + std::unique_ptr nrp(rs); + m_rules[i] = std::move(nrp); + } else { + RuleWithActions *nr = new RuleWithActions(*dynamic_cast(rule.get())); + std::unique_ptr nrp(nr); + m_rules[i] = std::move(nrp); + } + RuleWithActions *nr = dynamic_cast(m_rules[i].get()); + nr->clearDefaultActions(); + for (auto &a : m_defaultActions) { + nr->addDefaultAction(a); + } + for (auto a : m_defaultTransformations) { + nr->addDefaulTransformation(a); + } + } +} int Rules::append(Rules *from) { m_rules.insert(m_rules.end(), from->m_rules.begin(), from->m_rules.end()); diff --git a/src/rules_set.cc b/src/rules_set.cc index ac976ca3..87e6e8e1 100644 --- a/src/rules_set.cc +++ b/src/rules_set.cc @@ -33,46 +33,6 @@ using modsecurity::Utils::HttpsClient; namespace modsecurity { - void Rules::fixDefaultActions(RulesWarnings *warnings, RulesErrors *errors) { - for (size_t i = 0; i < m_rules.size(); i++) { - auto &rule = m_rules[i]; - - RuleWithActions *r = dynamic_cast(rule.get()); - if (!r) { - continue; - } - - if (dynamic_cast(rule.get())) { - RuleWithOperator *op = new RuleWithOperator(*dynamic_cast(rule.get())); - std::unique_ptr nrp(op); - m_rules[i] = std::move(nrp); - } else if (dynamic_cast(rule.get())) { - RuleUnconditional *un = new RuleUnconditional(*dynamic_cast(rule.get())); - std::unique_ptr nrp(un); - m_rules[i] = std::move(nrp); - } else if (dynamic_cast(rule.get())) { - RuleScript *rs = new RuleScript(*dynamic_cast(rule.get())); - std::unique_ptr nrp(rs); - m_rules[i] = std::move(nrp); - } else { - RuleWithActions *nr = new RuleWithActions(*dynamic_cast(rule.get())); - std::unique_ptr nrp(nr); - m_rules[i] = std::move(nrp); - } - - RuleWithActions *nr = dynamic_cast(m_rules[i].get()); - nr->clearDefaultActions(); - for (auto &a : m_defaultActions) { - nr->addDefaultAction(a); - } - for (auto a : m_defaultTransformations) { - nr->addDefaulTransformation(a); - } - - - } - } - /** * @name loadFromUri