Expands log_cb to share ruleMessage structure instead text

Text version still available and it is the default options
This commit is contained in:
Felipe Zimmerle
2017-02-26 01:34:52 -03:00
parent 9ea5b475b2
commit e2af60e765
70 changed files with 634 additions and 181 deletions

View File

@@ -34,47 +34,76 @@ namespace modsecurity {
class RuleMessage {
public:
explicit RuleMessage(Rule *rule) :
m_ruleFile(rule->m_fileName),
m_ruleLine(rule->m_lineNumber),
m_ruleId(rule->m_ruleId),
m_rev(rule->m_rev),
explicit RuleMessage(Rule *rule, Transaction *trans) :
m_accuracy(rule->m_accuracy),
m_message(std::string("")),
m_data(std::string("")),
m_severity(0),
m_ver(rule->m_ver),
m_clientIpAddress(trans->m_clientIpAddress),
m_data(""),
m_disruptiveMessage(""),
m_id(trans->m_id),
m_isDisruptive(false),
m_match(""),
m_maturity(rule->m_maturity),
m_rule(rule),
m_saveMessage(false),
m_message(""),
m_noAuditLog(false),
m_match(std::string(""))
m_phase(rule->m_phase - 1),
m_reference(""),
m_rev(rule->m_rev),
m_rule(rule),
m_ruleFile(rule->m_fileName),
m_ruleId(rule->m_ruleId),
m_ruleLine(rule->m_lineNumber),
m_saveMessage(false),
m_serverIpAddress(trans->m_serverIpAddress),
m_severity(0),
m_uriNoQueryStringDecoded(trans->m_uri_no_query_string_decoded),
m_ver(rule->m_ver)
{ }
std::string errorLog(Transaction *trans);
std::string disruptiveErrorLog(Transaction *trans, std::string log2);
std::string noClientErrorLog(Transaction *trans);
std::string errorLogTail(Transaction *trans);
std::string errorLog() {
return RuleMessage::errorLog(this);
}
std::string disruptiveErrorLog() {
return RuleMessage::disruptiveErrorLog(this);
}
std::string noClientErrorLog() {
return RuleMessage::noClientErrorLog(this);
}
std::string errorLogTail() {
return RuleMessage::errorLogTail(this);
}
std::string log() {
return RuleMessage::log(this);
}
static std::string disruptiveErrorLog(const RuleMessage *rm);
static std::string noClientErrorLog(const RuleMessage *rm);
static std::string errorLogTail(const RuleMessage *rm);
static std::string errorLog(const RuleMessage *rm);
static std::string log(const RuleMessage *rm);
std::string m_match;
std::string m_ruleFile;
int m_ruleLine;
int m_ruleId;
std::string m_message;
std::string m_data;
int m_severity;
std::string m_ver;
std::string m_rev;
int m_maturity;
int m_accuracy;
std::string m_clientIpAddress;
std::string m_data;
std::string m_disruptiveMessage;
std::string m_id;
bool m_isDisruptive;
std::string m_match;
int m_maturity;
std::string m_message;
bool m_noAuditLog;
int m_phase;
std::string m_reference;
std::string m_rev;
Rule *m_rule;
std::string m_ruleFile;
int m_ruleId;
int m_ruleLine;
bool m_saveMessage;
std::string m_serverIpAddress;
int m_severity;
std::string m_uriNoQueryStringDecoded;
std::string m_ver;
std::list<std::string> m_tags;
std::list<std::string> m_server_logs;
bool m_noAuditLog;
Rule *m_rule;
bool m_saveMessage;
};