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);
|
Variable *variable = variables->at(i);
|
||||||
if (variable->m_isExclusion) {
|
if (variable->m_isExclusion) {
|
||||||
std::vector<const collection::Variable *> z;
|
std::vector<const collection::Variable *> z;
|
||||||
variable->evaluateInternal(trasn, &z);
|
variable->evaluateInternal(trasn, this, &z);
|
||||||
for (auto &y : z) {
|
for (auto &y : z) {
|
||||||
exclusions.push_back(y->m_key);
|
exclusions.push_back(y->m_key);
|
||||||
}
|
}
|
||||||
@ -322,7 +322,7 @@ bool Rule::evaluate(Transaction *trasn) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::vector<const collection::Variable *> e;
|
std::vector<const collection::Variable *> e;
|
||||||
variable->evaluateInternal(trasn, &e);
|
variable->evaluateInternal(trasn, this, &e);
|
||||||
|
|
||||||
for (auto &v : e) {
|
for (auto &v : e) {
|
||||||
if (std::find(exclusions.begin(), exclusions.end(),
|
if (std::find(exclusions.begin(), exclusions.end(),
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#include <list>
|
#include <list>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include "modsecurity/transaction.h"
|
#include "modsecurity/transaction.h"
|
||||||
|
#include "modsecurity/rule.h"
|
||||||
|
|
||||||
#ifndef SRC_VARIABLES_VARIABLE_H_
|
#ifndef SRC_VARIABLES_VARIABLE_H_
|
||||||
#define SRC_VARIABLES_VARIABLE_H_
|
#define SRC_VARIABLES_VARIABLE_H_
|
||||||
@ -66,14 +67,29 @@ class Variable {
|
|||||||
|
|
||||||
static std::string to_s(std::vector<Variable *> *variables);
|
static std::string to_s(std::vector<Variable *> *variables);
|
||||||
|
|
||||||
|
|
||||||
virtual std::vector<const collection::Variable *>
|
virtual std::vector<const collection::Variable *>
|
||||||
*evaluate(Transaction *transaction);
|
*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,
|
virtual void evaluate(Transaction *transaction,
|
||||||
std::vector<const collection::Variable *> *l);
|
std::vector<const collection::Variable *> *l);
|
||||||
|
|
||||||
virtual void evaluateInternal(Transaction *transaction,
|
virtual void evaluate(Transaction *transaction,
|
||||||
std::vector<const collection::Variable *> *l);
|
Rule *rule,
|
||||||
|
std::vector<const collection::Variable *> *l) {
|
||||||
|
evaluate(transaction, l);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
std::string m_name;
|
std::string m_name;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user