Constify Transaction on variable resolution

This commit is contained in:
Felipe Zimmerle
2020-09-18 11:41:55 -03:00
committed by Felipe Zimmerle
parent 7afcd3046d
commit 1f80055f63
55 changed files with 242 additions and 250 deletions

View File

@@ -88,21 +88,21 @@ class AnchoredSetVariable : public std::unordered_multimap<std::string,
void set(const std::string &key, const bpstd::string_view &value,
size_t offset);
void resolve(VariableValues *l);
void resolve(VariableValues *l) const noexcept;
void resolve(VariableValues *l,
variables::KeyExclusions &ke);
const variables::KeyExclusions &ke) const noexcept;
void resolve(const std::string &key,
VariableValues *l);
VariableValues *l) const noexcept;
void resolveRegularExpression(Utils::Regex *r,
VariableValues *l);
void resolveRegularExpression(const Utils::Regex *r,
VariableValues *l) const noexcept;
void resolveRegularExpression(Utils::Regex *r,
void resolveRegularExpression(const Utils::Regex *r,
VariableValues *l,
variables::KeyExclusions &ke);
const variables::KeyExclusions &ke) const noexcept;
std::unique_ptr<std::string> resolveFirst(const std::string &key);
std::unique_ptr<std::string> resolveFirst(const std::string &key) const noexcept;
Transaction *m_transaction;
std::string m_name;

View File

@@ -51,14 +51,6 @@ class AnchoredVariable {
AnchoredVariable(const AnchoredVariable &a) = delete;
AnchoredVariable &operator= (const AnchoredVariable &a) = delete;
/*
: m_transaction(a.m_transaction),
m_offset(a.m_offset),
m_name(a.m_name),
m_value(a.m_value),
m_var(a.m_var) { }
*/
void unset();
void set(const std::string &a, size_t offset);
void set(const bpstd::string_view &a, size_t offset);
@@ -69,9 +61,9 @@ class AnchoredVariable {
void append(const std::string &a, size_t offset,
bool spaceSeparator, int size);
void evaluate(VariableValues *l);
std::string * evaluate();
std::unique_ptr<std::string> resolveFirst();
void evaluate(VariableValues *l) const noexcept;
const std::string *evaluate() const noexcept;
std::unique_ptr<std::string> resolveFirst() const noexcept;
Transaction *m_transaction;
int m_offset;
@@ -88,4 +80,3 @@ class AnchoredVariable {
#endif // HEADERS_MODSECURITY_ANCHORED_VARIABLE_H_

View File

@@ -57,16 +57,16 @@ class Collection {
virtual void del(const std::string& key) = 0;
virtual std::unique_ptr<std::string> resolveFirst(
const std::string& var) = 0;
const std::string& var) const = 0;
virtual void resolveSingleMatch(const std::string& var,
VariableValues *l) = 0;
VariableValues *l) const noexcept = 0;
virtual void resolveMultiMatches(const std::string& var,
VariableValues *l,
variables::KeyExclusions &ke) = 0;
const variables::KeyExclusions &ke) const noexcept = 0;
virtual void resolveRegularExpression(const std::string& var,
VariableValues *l,
variables::KeyExclusions &ke) = 0;
const variables::KeyExclusions &ke) const noexcept = 0;
/* store */
@@ -131,14 +131,14 @@ class Collection {
/* resolveFirst */
virtual std::unique_ptr<std::string> resolveFirst(const std::string& var,
std::string compartment) {
const std::string &compartment) const noexcept {
std::string nkey = compartment + "::" + var;
return resolveFirst(nkey);
}
virtual std::unique_ptr<std::string> resolveFirst(const std::string& var,
std::string compartment, std::string compartment2) {
const std::string &compartment, const std::string &compartment2) const noexcept {
std::string nkey = compartment + "::" + compartment2 + "::" + var;
return resolveFirst(nkey);
}
@@ -146,15 +146,15 @@ class Collection {
/* resolveSingleMatch */
virtual void resolveSingleMatch(const std::string& var,
std::string compartment, VariableValues *l) {
const std::string &compartment, VariableValues *l) const noexcept {
std::string nkey = compartment + "::" + var;
resolveSingleMatch(nkey, l);
}
virtual void resolveSingleMatch(const std::string& var,
std::string compartment, std::string compartment2,
VariableValues *l) {
const std::string &compartment, const std::string &compartment2,
VariableValues *l) const noexcept {
std::string nkey = compartment + "::" + compartment2 + "::" + var;
resolveSingleMatch(nkey, l);
}
@@ -162,17 +162,17 @@ class Collection {
/* resolveMultiMatches */
virtual void resolveMultiMatches(const std::string& var,
std::string compartment, VariableValues *l,
variables::KeyExclusions &ke) {
const std::string &compartment, VariableValues *l,
const variables::KeyExclusions &ke) const noexcept {
std::string nkey = compartment + "::" + var;
resolveMultiMatches(nkey, l, ke);
}
virtual void resolveMultiMatches(const std::string& var,
std::string compartment, std::string compartment2,
const std::string &compartment, const std::string &compartment2,
VariableValues *l,
variables::KeyExclusions &ke) {
const variables::KeyExclusions &ke) const noexcept {
std::string nkey = compartment + "::" + compartment2 + "::" + var;
resolveMultiMatches(nkey, l, ke);
}
@@ -180,16 +180,16 @@ class Collection {
/* resolveRegularExpression */
virtual void resolveRegularExpression(const std::string& var,
std::string compartment, VariableValues *l,
variables::KeyExclusions &ke) {
const std::string &compartment, VariableValues *l,
const variables::KeyExclusions &ke) const noexcept {
std::string nkey = compartment + "::" + var;
resolveRegularExpression(nkey, l, ke);
}
virtual void resolveRegularExpression(const std::string& var,
std::string compartment, std::string compartment2,
VariableValues *l, variables::KeyExclusions &ke) {
const std::string &compartment, const std::string &compartment2,
VariableValues *l, const variables::KeyExclusions &ke) const noexcept {
std::string nkey = compartment + "::" + compartment2 + "::" + var;
resolveRegularExpression(nkey, l, ke);
}