Using RunTimeString on setvar action

This commit is contained in:
Felipe Zimmerle
2018-01-27 21:34:39 -03:00
parent a6830c76f2
commit f17af95728
14 changed files with 7697 additions and 6942 deletions

View File

@@ -23,6 +23,7 @@
#define SRC_VARIABLES_IP_H_
#include "src/variables/variable.h"
#include "src/run_time_string.h"
namespace modsecurity {
@@ -78,6 +79,23 @@ class Ip_DictElementRegexp : public Variable {
};
class Ip_DynamicElement : public Variable {
public:
explicit Ip_DynamicElement(std::unique_ptr<RunTimeString> dictElement)
: Variable("IP:dynamic"),
m_string(std::move(dictElement)) { }
void evaluate(Transaction *transaction,
Rule *rule,
std::vector<const collection::Variable *> *l) override {
std::string string = m_string->evaluate(transaction);
transaction->m_collections.resolveMultiMatches("IP:" + string, "IP", l);
}
std::unique_ptr<RunTimeString> m_string;
};
} // namespace Variables
} // namespace modsecurity