mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-08-16 07:56:12 +03:00
Removes RuleMessage from action execute signature
This commit is contained in:
parent
d329d52cc3
commit
dc33ed7abc
@ -70,10 +70,6 @@ class Action {
|
|||||||
virtual std::string execute(const std::string &exp,
|
virtual std::string execute(const std::string &exp,
|
||||||
Transaction *transaction);
|
Transaction *transaction);
|
||||||
virtual bool execute(RuleWithActions *rule, Transaction *transaction);
|
virtual bool execute(RuleWithActions *rule, Transaction *transaction);
|
||||||
virtual bool execute(RuleWithActions *rule, Transaction *transaction,
|
|
||||||
RuleMessage &ruleMessage) {
|
|
||||||
return execute(rule, transaction);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method is meant to be used by transformations — a particular
|
* This method is meant to be used by transformations — a particular
|
||||||
|
@ -27,8 +27,7 @@ namespace modsecurity {
|
|||||||
namespace actions {
|
namespace actions {
|
||||||
|
|
||||||
|
|
||||||
bool AuditLog::execute(RuleWithActions *rule, Transaction *transaction,
|
bool AuditLog::execute(RuleWithActions *rule, Transaction *transaction) {
|
||||||
RuleMessage &rm) {
|
|
||||||
transaction->messageSetNoAuditLog(false);
|
transaction->messageSetNoAuditLog(false);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -35,8 +35,7 @@ class AuditLog : public Action {
|
|||||||
explicit AuditLog(const std::string &action)
|
explicit AuditLog(const std::string &action)
|
||||||
: Action(action, RunTimeOnlyIfMatchKind) { }
|
: Action(action, RunTimeOnlyIfMatchKind) { }
|
||||||
|
|
||||||
bool execute(RuleWithActions *rule, Transaction *transaction,
|
bool execute(RuleWithActions *rule, Transaction *transaction) override;
|
||||||
RuleMessage &rm) override;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -29,8 +29,7 @@ namespace modsecurity {
|
|||||||
namespace actions {
|
namespace actions {
|
||||||
|
|
||||||
|
|
||||||
bool Block::execute(RuleWithActions *rule, Transaction *transaction,
|
bool Block::execute(RuleWithActions *rule, Transaction *transaction) {
|
||||||
RuleMessage &rm) {
|
|
||||||
ms_dbg_a(transaction, 8, "Marking request as disruptive.");
|
ms_dbg_a(transaction, 8, "Marking request as disruptive.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -38,8 +38,7 @@ class Block : public Action {
|
|||||||
Block(const Block &a) = delete;
|
Block(const Block &a) = delete;
|
||||||
Block &operator=(const Block &a) = delete;
|
Block &operator=(const Block &a) = delete;
|
||||||
|
|
||||||
bool execute(RuleWithActions *rule, Transaction *transaction,
|
bool execute(RuleWithActions *rule, Transaction *transaction) override;
|
||||||
RuleMessage &rm) override;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -38,8 +38,7 @@ bool Status::init(std::string *error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Status::execute(RuleWithActions *rule, Transaction *transaction,
|
bool Status::execute(RuleWithActions *rule, Transaction *transaction) {
|
||||||
RuleMessage &rm) {
|
|
||||||
transaction->m_it.status = m_status;
|
transaction->m_it.status = m_status;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -37,8 +37,7 @@ class Status : public Action {
|
|||||||
m_status(0) { }
|
m_status(0) { }
|
||||||
|
|
||||||
bool init(std::string *error) override;
|
bool init(std::string *error) override;
|
||||||
bool execute(RuleWithActions *rule, Transaction *transaction,
|
bool execute(RuleWithActions *rule, Transaction *transaction) override;
|
||||||
RuleMessage &rm) override;
|
|
||||||
|
|
||||||
int m_status;
|
int m_status;
|
||||||
};
|
};
|
||||||
|
@ -28,8 +28,7 @@ namespace actions {
|
|||||||
namespace disruptive {
|
namespace disruptive {
|
||||||
|
|
||||||
|
|
||||||
bool Deny::execute(RuleWithActions *rule, Transaction *transaction,
|
bool Deny::execute(RuleWithActions *rule, Transaction *transaction) {
|
||||||
RuleMessage &rm) {
|
|
||||||
ms_dbg_a(transaction, 8, "Running action deny");
|
ms_dbg_a(transaction, 8, "Running action deny");
|
||||||
|
|
||||||
if (transaction->m_it.status == 200) {
|
if (transaction->m_it.status == 200) {
|
||||||
@ -38,9 +37,9 @@ bool Deny::execute(RuleWithActions *rule, Transaction *transaction,
|
|||||||
|
|
||||||
transaction->m_it.disruptive = true;
|
transaction->m_it.disruptive = true;
|
||||||
intervention::freeLog(&transaction->m_it);
|
intervention::freeLog(&transaction->m_it);
|
||||||
rm.setRule(rule);
|
transaction->messageGetLast()->setRule(rule);
|
||||||
transaction->m_it.log = strdup(
|
transaction->m_it.log = strdup(
|
||||||
rm.log(RuleMessage::LogMessageInfo::ClientLogMessageInfo).c_str());
|
transaction->messageGetLast()->log(RuleMessage::LogMessageInfo::ClientLogMessageInfo).c_str());
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -33,8 +33,7 @@ class Deny : public Action {
|
|||||||
public:
|
public:
|
||||||
explicit Deny(const std::string &action) : Action(action) { }
|
explicit Deny(const std::string &action) : Action(action) { }
|
||||||
|
|
||||||
bool execute(RuleWithActions *rule, Transaction *transaction,
|
bool execute(RuleWithActions *rule, Transaction *transaction) override;
|
||||||
RuleMessage &rm) override;
|
|
||||||
bool isDisruptive() override { return true; }
|
bool isDisruptive() override { return true; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -32,8 +32,7 @@ namespace actions {
|
|||||||
namespace disruptive {
|
namespace disruptive {
|
||||||
|
|
||||||
|
|
||||||
bool Drop::execute(RuleWithActions *rule, Transaction *transaction,
|
bool Drop::execute(RuleWithActions *rule, Transaction *transaction) {
|
||||||
RuleMessage &rm) {
|
|
||||||
ms_dbg_a(transaction, 8, "Running action drop " \
|
ms_dbg_a(transaction, 8, "Running action drop " \
|
||||||
"[executing deny instead of drop.]");
|
"[executing deny instead of drop.]");
|
||||||
|
|
||||||
@ -43,9 +42,9 @@ bool Drop::execute(RuleWithActions *rule, Transaction *transaction,
|
|||||||
|
|
||||||
transaction->m_it.disruptive = true;
|
transaction->m_it.disruptive = true;
|
||||||
intervention::freeLog(&transaction->m_it);
|
intervention::freeLog(&transaction->m_it);
|
||||||
rm.setRule(rule);
|
transaction->messageGetLast()->setRule(rule);
|
||||||
transaction->m_it.log = strdup(
|
transaction->m_it.log = strdup(
|
||||||
rm.log(RuleMessage::LogMessageInfo::ClientLogMessageInfo).c_str());
|
transaction->messageGetLast()->log(RuleMessage::LogMessageInfo::ClientLogMessageInfo).c_str());
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -32,8 +32,7 @@ class Drop : public Action {
|
|||||||
public:
|
public:
|
||||||
explicit Drop(const std::string &action) : Action(action) { }
|
explicit Drop(const std::string &action) : Action(action) { }
|
||||||
|
|
||||||
bool execute(RuleWithActions *rule, Transaction *transaction,
|
bool execute(RuleWithActions *rule, Transaction *transaction) override;
|
||||||
RuleMessage &rm) override;
|
|
||||||
bool isDisruptive() override { return true; }
|
bool isDisruptive() override { return true; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -29,8 +29,7 @@ namespace actions {
|
|||||||
namespace disruptive {
|
namespace disruptive {
|
||||||
|
|
||||||
|
|
||||||
bool Pass::execute(RuleWithActions *rule, Transaction *transaction,
|
bool Pass::execute(RuleWithActions *rule, Transaction *transaction) {
|
||||||
RuleMessage &rm) {
|
|
||||||
intervention::free(&transaction->m_it);
|
intervention::free(&transaction->m_it);
|
||||||
intervention::reset(&transaction->m_it);
|
intervention::reset(&transaction->m_it);
|
||||||
|
|
||||||
|
@ -31,8 +31,7 @@ class Pass : public Action {
|
|||||||
public:
|
public:
|
||||||
explicit Pass(const std::string &action) : Action(action) { }
|
explicit Pass(const std::string &action) : Action(action) { }
|
||||||
|
|
||||||
bool execute(RuleWithActions *rule, Transaction *transaction,
|
bool execute(RuleWithActions *rule, Transaction *transaction) override;
|
||||||
RuleMessage &rm) override;
|
|
||||||
bool isDisruptive() override { return true; }
|
bool isDisruptive() override { return true; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -34,8 +34,7 @@ bool Redirect::init(std::string *error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Redirect::execute(RuleWithActions *rule, Transaction *transaction,
|
bool Redirect::execute(RuleWithActions *rule, Transaction *transaction) {
|
||||||
RuleMessage &rm) {
|
|
||||||
std::string m_urlExpanded(m_string->evaluate(transaction));
|
std::string m_urlExpanded(m_string->evaluate(transaction));
|
||||||
/* if it was changed before, lets keep it. */
|
/* if it was changed before, lets keep it. */
|
||||||
if (transaction->m_it.status == 200
|
if (transaction->m_it.status == 200
|
||||||
@ -47,9 +46,9 @@ bool Redirect::execute(RuleWithActions *rule, Transaction *transaction,
|
|||||||
transaction->m_it.url = strdup(m_urlExpanded.c_str());
|
transaction->m_it.url = strdup(m_urlExpanded.c_str());
|
||||||
transaction->m_it.disruptive = true;
|
transaction->m_it.disruptive = true;
|
||||||
intervention::freeLog(&transaction->m_it);
|
intervention::freeLog(&transaction->m_it);
|
||||||
rm.setRule(rule);
|
transaction->messageGetLast()->setRule(rule);
|
||||||
transaction->m_it.log = strdup(
|
transaction->m_it.log = strdup(
|
||||||
rm.log(RuleMessage::LogMessageInfo::ClientLogMessageInfo).c_str());
|
transaction->messageGetLast()->log(RuleMessage::LogMessageInfo::ClientLogMessageInfo).c_str());
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -46,8 +46,7 @@ class Redirect : public Action {
|
|||||||
m_status(0),
|
m_status(0),
|
||||||
m_string(std::move(z)) { }
|
m_string(std::move(z)) { }
|
||||||
|
|
||||||
bool execute(RuleWithActions *rule, Transaction *transaction,
|
bool execute(RuleWithActions *rule, Transaction *transaction) override;
|
||||||
RuleMessage &rm) override;
|
|
||||||
bool init(std::string *error) override;
|
bool init(std::string *error) override;
|
||||||
bool isDisruptive() override { return true; }
|
bool isDisruptive() override { return true; }
|
||||||
|
|
||||||
|
@ -28,8 +28,7 @@ namespace modsecurity {
|
|||||||
namespace actions {
|
namespace actions {
|
||||||
|
|
||||||
|
|
||||||
bool Log::execute(RuleWithActions *rule, Transaction *transaction,
|
bool Log::execute(RuleWithActions *rule, Transaction *transaction) {
|
||||||
RuleMessage &rm) {
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,8 +33,7 @@ class Log : public Action {
|
|||||||
explicit Log(const std::string &action)
|
explicit Log(const std::string &action)
|
||||||
: Action(action, RunTimeOnlyIfMatchKind) { }
|
: Action(action, RunTimeOnlyIfMatchKind) { }
|
||||||
|
|
||||||
bool execute(RuleWithActions *rule, Transaction *transaction,
|
bool execute(RuleWithActions *rule, Transaction *transaction) override;
|
||||||
RuleMessage &rm) override;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace actions
|
} // namespace actions
|
||||||
|
@ -29,9 +29,8 @@ namespace modsecurity {
|
|||||||
namespace actions {
|
namespace actions {
|
||||||
|
|
||||||
|
|
||||||
bool LogData::execute(RuleWithActions *rule, Transaction *transaction,
|
bool LogData::execute(RuleWithActions *rule, Transaction *transaction) {
|
||||||
RuleMessage &rm) {
|
transaction->messageGetLast()->m_data = data(transaction);
|
||||||
rm.m_data = data(transaction);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -39,8 +39,7 @@ class LogData : public Action {
|
|||||||
: Action("logdata", RunTimeOnlyIfMatchKind),
|
: Action("logdata", RunTimeOnlyIfMatchKind),
|
||||||
m_string(std::move(z)) { }
|
m_string(std::move(z)) { }
|
||||||
|
|
||||||
bool execute(RuleWithActions *rule, Transaction *transaction,
|
bool execute(RuleWithActions *rule, Transaction *transaction) override;
|
||||||
RuleMessage &rm) override;
|
|
||||||
|
|
||||||
std::string data(Transaction *Transaction);
|
std::string data(Transaction *Transaction);
|
||||||
|
|
||||||
|
@ -46,10 +46,9 @@ namespace modsecurity {
|
|||||||
namespace actions {
|
namespace actions {
|
||||||
|
|
||||||
|
|
||||||
bool Msg::execute(RuleWithActions *rule, Transaction *transaction,
|
bool Msg::execute(RuleWithActions *rule, Transaction *transaction) {
|
||||||
RuleMessage &rm) {
|
|
||||||
std::string msg = data(transaction);
|
std::string msg = data(transaction);
|
||||||
rm.m_message = msg;
|
transaction->messageGetLast()->m_message = msg;
|
||||||
ms_dbg_a(transaction, 9, "Saving msg: " + msg);
|
ms_dbg_a(transaction, 9, "Saving msg: " + msg);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -40,8 +40,7 @@ class Msg : public Action {
|
|||||||
: Action("msg", RunTimeOnlyIfMatchKind),
|
: Action("msg", RunTimeOnlyIfMatchKind),
|
||||||
m_string(std::move(z)) { }
|
m_string(std::move(z)) { }
|
||||||
|
|
||||||
bool execute(RuleWithActions *rule, Transaction *transaction,
|
bool execute(RuleWithActions *rule, Transaction *transaction) override;
|
||||||
RuleMessage &rm) override;
|
|
||||||
|
|
||||||
std::string data(Transaction *Transaction);
|
std::string data(Transaction *Transaction);
|
||||||
std::shared_ptr<RunTimeString> m_string;
|
std::shared_ptr<RunTimeString> m_string;
|
||||||
|
@ -26,8 +26,7 @@ namespace modsecurity {
|
|||||||
namespace actions {
|
namespace actions {
|
||||||
|
|
||||||
|
|
||||||
bool NoAuditLog::execute(RuleWithActions *rule, Transaction *transaction,
|
bool NoAuditLog::execute(RuleWithActions *rule, Transaction *transaction) {
|
||||||
RuleMessage &rm) {
|
|
||||||
transaction->messageSetNoAuditLog(true);
|
transaction->messageSetNoAuditLog(true);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -35,8 +35,7 @@ class NoAuditLog : public Action {
|
|||||||
explicit NoAuditLog(const std::string &action)
|
explicit NoAuditLog(const std::string &action)
|
||||||
: Action(action, RunTimeOnlyIfMatchKind) { }
|
: Action(action, RunTimeOnlyIfMatchKind) { }
|
||||||
|
|
||||||
bool execute(RuleWithActions *rule, Transaction *transaction,
|
bool execute(RuleWithActions *rule, Transaction *transaction) override;
|
||||||
RuleMessage &rm) override;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace actions
|
} // namespace actions
|
||||||
|
@ -29,8 +29,7 @@ namespace modsecurity {
|
|||||||
namespace actions {
|
namespace actions {
|
||||||
|
|
||||||
|
|
||||||
bool NoLog::execute(RuleWithActions *rule, Transaction *transaction,
|
bool NoLog::execute(RuleWithActions *rule, Transaction *transaction) {
|
||||||
RuleMessage &rm) {
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,8 +33,7 @@ class NoLog : public Action {
|
|||||||
explicit NoLog(const std::string &action)
|
explicit NoLog(const std::string &action)
|
||||||
: Action(action, RunTimeOnlyIfMatchKind) { }
|
: Action(action, RunTimeOnlyIfMatchKind) { }
|
||||||
|
|
||||||
bool execute(RuleWithActions *rule, Transaction *transaction,
|
bool execute(RuleWithActions *rule, Transaction *transaction) override;
|
||||||
RuleMessage &rm) override;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace actions
|
} // namespace actions
|
||||||
|
@ -71,8 +71,7 @@ bool Severity::init(std::string *error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Severity::execute(RuleWithActions *rule, Transaction *transaction,
|
bool Severity::execute(RuleWithActions *rule, Transaction *transaction) {
|
||||||
RuleMessage &rm) {
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,8 +35,7 @@ class Severity : public Action {
|
|||||||
: Action(action),
|
: Action(action),
|
||||||
m_severity(0) { }
|
m_severity(0) { }
|
||||||
|
|
||||||
bool execute(RuleWithActions *rule, Transaction *transaction,
|
bool execute(RuleWithActions *rule, Transaction *transaction) override;
|
||||||
RuleMessage &rm) override;
|
|
||||||
bool init(std::string *error) override;
|
bool init(std::string *error) override;
|
||||||
|
|
||||||
int m_severity;
|
int m_severity;
|
||||||
|
@ -57,13 +57,11 @@ std::string Tag::getName(Transaction *transaction) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Tag::execute(RuleWithActions *rule, Transaction *transaction,
|
bool Tag::execute(RuleWithActions *rule, Transaction *transaction) {
|
||||||
RuleMessage &rm) {
|
|
||||||
std::string tag = getName(transaction);
|
std::string tag = getName(transaction);
|
||||||
ms_dbg_a(transaction, 9, "Rule tag: " + tag);
|
ms_dbg_a(transaction, 9, "Rule tag: " + tag);
|
||||||
|
|
||||||
rm.m_tags.push_back(tag);
|
transaction->messageGetLast()->m_tags.push_back(tag);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,8 +38,7 @@ class Tag : public Action {
|
|||||||
|
|
||||||
std::string getName(Transaction *transaction);
|
std::string getName(Transaction *transaction);
|
||||||
|
|
||||||
bool execute(RuleWithActions *rule, Transaction *transaction,
|
bool execute(RuleWithActions *rule, Transaction *transaction) override;
|
||||||
RuleMessage &rm) override;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
std::shared_ptr<RunTimeString> m_string;
|
std::shared_ptr<RunTimeString> m_string;
|
||||||
|
@ -258,7 +258,7 @@ void RuleWithActions::executeActionsIndependentOfChainedRuleResult(Transaction *
|
|||||||
} else if (*a->m_name.get() == "setvar") {
|
} else if (*a->m_name.get() == "setvar") {
|
||||||
ms_dbg_a(trans, 4, "Running [independent] (non-disruptive) " \
|
ms_dbg_a(trans, 4, "Running [independent] (non-disruptive) " \
|
||||||
"action: " + *a->m_name.get());
|
"action: " + *a->m_name.get());
|
||||||
a->execute(this, trans, *trans->messageGetLast());
|
a->execute(this, trans);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -282,7 +282,7 @@ void RuleWithActions::executeActionsAfterFullMatch(Transaction *trans) {
|
|||||||
for (actions::Tag *a : getTagsActionPtr()) {
|
for (actions::Tag *a : getTagsActionPtr()) {
|
||||||
ms_dbg_a(trans, 4, "Running (non-disruptive) action: " \
|
ms_dbg_a(trans, 4, "Running (non-disruptive) action: " \
|
||||||
+ *a->m_name.get());
|
+ *a->m_name.get());
|
||||||
a->execute(this, trans, *trans->messageGetLast());
|
a->execute(this, trans);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -301,18 +301,17 @@ void RuleWithActions::executeActionsAfterFullMatch(Transaction *trans) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (m_logData) {
|
if (m_logData) {
|
||||||
m_logData->execute(this, trans, *trans->messageGetLast());
|
m_logData->execute(this, trans);
|
||||||
} else if (m_defaultActionLogData) {
|
} else if (m_defaultActionLogData) {
|
||||||
m_defaultActionLogData->execute(this, trans, *trans->messageGetLast());
|
m_defaultActionLogData->execute(this, trans);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_msg) {
|
if (m_msg) {
|
||||||
m_msg->execute(this, trans, *trans->messageGetLast());
|
m_msg->execute(this, trans);
|
||||||
} else if (m_defaultActionMsg) {
|
} else if (m_defaultActionMsg) {
|
||||||
m_defaultActionMsg->execute(this, trans, *trans->messageGetLast());
|
m_defaultActionMsg->execute(this, trans);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
for (auto &a : getMatchActionsPtr()) {
|
for (auto &a : getMatchActionsPtr()) {
|
||||||
if (!a->isDisruptive()
|
if (!a->isDisruptive()
|
||||||
&& !(disruptiveAlreadyExecuted
|
&& !(disruptiveAlreadyExecuted
|
||||||
@ -334,11 +333,10 @@ void RuleWithActions::executeActionsAfterFullMatch(Transaction *trans) {
|
|||||||
|
|
||||||
void RuleWithActions::executeAction(Transaction *trans,
|
void RuleWithActions::executeAction(Transaction *trans,
|
||||||
Action *a, bool defaultContext) {
|
Action *a, bool defaultContext) {
|
||||||
|
|
||||||
if (a->isDisruptive() == false && *a->m_name.get() != "block") {
|
if (a->isDisruptive() == false && *a->m_name.get() != "block") {
|
||||||
ms_dbg_a(trans, 9, "Running " \
|
ms_dbg_a(trans, 9, "Running " \
|
||||||
"action: " + *a->m_name.get());
|
"action: " + *a->m_name.get());
|
||||||
a->execute(this, trans, *trans->messageGetLast());
|
a->execute(this, trans);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -351,7 +349,7 @@ void RuleWithActions::executeAction(Transaction *trans,
|
|||||||
if (trans->getRuleEngineState() == RulesSet::EnabledRuleEngine) {
|
if (trans->getRuleEngineState() == RulesSet::EnabledRuleEngine) {
|
||||||
ms_dbg_a(trans, 4, "Running (disruptive) action: " +
|
ms_dbg_a(trans, 4, "Running (disruptive) action: " +
|
||||||
*a->m_name.get() + ".");
|
*a->m_name.get() + ".");
|
||||||
a->execute(this, trans, *trans->messageGetLast());
|
a->execute(this, trans);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user