@@ -42,7 +42,13 @@ class RuleMessage {
4242 ClientLogMessageInfo = 4
4343 };
4444
45- explicit RuleMessage (RuleWithOperator *rule, Transaction *trans) :
45+ /* *
46+ *
47+ * FIXME: RuleMessage is currently too big, doing a lot of
48+ * unnecessary data duplication. Needs to be shrink down.
49+ *
50+ */
51+ RuleMessage (RuleWithActions *rule, Transaction *trans) :
4652 m_accuracy (rule->m_accuracy),
4753 m_clientIpAddress (trans->m_clientIpAddress),
4854 m_data (" " ),
@@ -66,6 +72,38 @@ class RuleMessage {
6672 m_ver(rule->m_ver)
6773 { }
6874
75+ explicit RuleMessage (RuleMessage *rule) :
76+ m_accuracy(rule->m_accuracy),
77+ m_clientIpAddress(rule->m_clientIpAddress),
78+ m_data(rule->m_data),
79+ m_id(rule->m_id),
80+ m_isDisruptive(rule->m_isDisruptive),
81+ m_match(rule->m_match),
82+ m_maturity(rule->m_maturity),
83+ m_message(rule->m_message),
84+ m_noAuditLog(rule->m_noAuditLog),
85+ m_phase(rule->m_phase),
86+ m_reference(rule->m_reference),
87+ m_rev(rule->m_rev),
88+ m_rule(rule->m_rule),
89+ m_ruleFile(rule->m_ruleFile),
90+ m_ruleId(rule->m_ruleId),
91+ m_ruleLine(rule->m_ruleLine),
92+ m_saveMessage(rule->m_saveMessage),
93+ m_serverIpAddress(rule->m_serverIpAddress),
94+ m_severity(rule->m_severity),
95+ m_uriNoQueryStringDecoded(rule->m_uriNoQueryStringDecoded),
96+ m_ver(rule->m_ver)
97+ { }
98+
99+ void clean () {
100+ m_data = " " ;
101+ m_match = " " ;
102+ m_isDisruptive = false ;
103+ m_reference = " " ;
104+ m_severity = 0 ;
105+ m_ver = " " ;
106+ }
69107
70108 std::string log () {
71109 return log (this , 0 );
@@ -104,7 +142,7 @@ class RuleMessage {
104142 int m_phase;
105143 std::string m_reference;
106144 std::string m_rev;
107- RuleWithOperator *m_rule;
145+ RuleWithActions *m_rule;
108146 std::shared_ptr<std::string> m_ruleFile;
109147 int m_ruleId;
110148 int m_ruleLine;
0 commit comments