mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-08-13 21:36:00 +03:00
Variables are now receiving the rule instance as parameter
This commit is contained in:
parent
8c714af8e1
commit
a9e6716c6a
@ -306,7 +306,7 @@ bool Rule::evaluate(Transaction *trasn) {
|
||||
Variable *variable = variables->at(i);
|
||||
if (variable->m_isExclusion) {
|
||||
std::vector<const collection::Variable *> z;
|
||||
variable->evaluateInternal(trasn, &z);
|
||||
variable->evaluateInternal(trasn, this, &z);
|
||||
for (auto &y : z) {
|
||||
exclusions.push_back(y->m_key);
|
||||
}
|
||||
@ -322,7 +322,7 @@ bool Rule::evaluate(Transaction *trasn) {
|
||||
}
|
||||
|
||||
std::vector<const collection::Variable *> e;
|
||||
variable->evaluateInternal(trasn, &e);
|
||||
variable->evaluateInternal(trasn, this, &e);
|
||||
|
||||
for (auto &v : e) {
|
||||
if (std::find(exclusions.begin(), exclusions.end(),
|
||||
|
@ -18,6 +18,7 @@
|
||||
#include <list>
|
||||
#include <utility>
|
||||
#include "modsecurity/transaction.h"
|
||||
#include "modsecurity/rule.h"
|
||||
|
||||
#ifndef SRC_VARIABLES_VARIABLE_H_
|
||||
#define SRC_VARIABLES_VARIABLE_H_
|
||||
@ -66,14 +67,29 @@ class Variable {
|
||||
|
||||
static std::string to_s(std::vector<Variable *> *variables);
|
||||
|
||||
|
||||
virtual std::vector<const collection::Variable *>
|
||||
*evaluate(Transaction *transaction);
|
||||
|
||||
|
||||
virtual void evaluateInternal(Transaction *transaction,
|
||||
std::vector<const collection::Variable *> *l);
|
||||
|
||||
virtual void evaluateInternal(Transaction *transaction,
|
||||
Rule *rule,
|
||||
std::vector<const collection::Variable *> *l) {
|
||||
evaluateInternal(transaction, l);
|
||||
}
|
||||
|
||||
|
||||
virtual void evaluate(Transaction *transaction,
|
||||
std::vector<const collection::Variable *> *l);
|
||||
|
||||
virtual void evaluateInternal(Transaction *transaction,
|
||||
std::vector<const collection::Variable *> *l);
|
||||
virtual void evaluate(Transaction *transaction,
|
||||
Rule *rule,
|
||||
std::vector<const collection::Variable *> *l) {
|
||||
evaluate(transaction, l);
|
||||
}
|
||||
|
||||
|
||||
std::string m_name;
|
||||
|
Loading…
x
Reference in New Issue
Block a user