Uses an enumeration to determine the state of the SecRuleEngine

This commit is contained in:
Felipe Zimmerle 2015-07-09 16:10:32 -03:00
parent cb8d6249a8
commit 75a9cfa273
4 changed files with 43 additions and 7 deletions

View File

@ -74,7 +74,43 @@ class Rules {
std::vector<Rule *> rules[7]; // Number of Phases.
int sec_rule_engine;
/**
*
* The RuleEngine enumerator consists in mapping the different states
* of the rule engine.
*
*/
enum RuleEngine {
/**
* Rules won't be evaluated if Rule Engine is set to DisabledRuleEngine
*
*/
DisabledRuleEngine,
/**
* Rules will be evaluated and disturb actions will take place if needed.
*
*/
EnabledRuleEngine,
/**
* Rules will be evaluated but it won't generate any disruptive action.
*
*/
DetectionOnlyRuleEngine
};
static const char *ruleEngineStateString(RuleEngine i) {
switch (i) {
case DisabledRuleEngine:
return "Disabled";
case EnabledRuleEngine:
return "Enabled";
case DetectionOnlyRuleEngine:
return "DetectionOnly";
}
return NULL;
}
RuleEngine secRuleEngine;
int sec_audit_type;
bool sec_audit_engine;
bool sec_request_body_access;

View File

@ -81,7 +81,7 @@ class Driver {
std::vector<Rule *> rules[7]; // Number of Phases.
int sec_rule_engine;
ModSecurity::Rules::RuleEngine secRuleEngine;
int sec_audit_type;
bool sec_audit_engine;
bool sec_request_body_access;

View File

@ -186,15 +186,15 @@ expression:
}
| CONFIG_DIR_RULE_ENG SPACE CONFIG_VALUE_OFF
{
driver.sec_rule_engine = 0;
driver.secRuleEngine = ModSecurity::Rules::DisabledRuleEngine;
}
| CONFIG_DIR_RULE_ENG SPACE CONFIG_VALUE_ON
{
driver.sec_rule_engine = 1;
driver.secRuleEngine = ModSecurity::Rules::EnabledRuleEngine;
}
| CONFIG_DIR_RULE_ENG SPACE CONFIG_VALUE_DETC
{
driver.sec_rule_engine = 2;
driver.secRuleEngine = ModSecurity::Rules::DetectionOnlyRuleEngine;
}
| CONFIG_DIR_REQ_BODY SPACE CONFIG_VALUE_ON
{

View File

@ -154,7 +154,7 @@ int Rules::merge(Driver *from) {
}
}
this->sec_rule_engine = from->sec_rule_engine;
this->secRuleEngine = from->secRuleEngine;
this->sec_audit_type = from->sec_audit_type;
this->sec_audit_engine = from->sec_audit_engine;
this->sec_request_body_access = from->sec_request_body_access;
@ -189,7 +189,7 @@ int Rules::merge(Rules *from) {
}
}
this->sec_rule_engine = from->sec_rule_engine;
this->secRuleEngine = from->secRuleEngine;
this->sec_audit_type = from->sec_audit_type;
this->sec_audit_engine = from->sec_audit_engine;
this->sec_request_body_access = from->sec_request_body_access;