@@ -42,124 +42,20 @@ class RuleMessage {
4242 ClientLogMessageInfo = 4
4343 };
4444
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) :
52- m_accuracy (rule->m_accuracy),
53- m_clientIpAddress (trans->m_clientIpAddress),
54- m_data (" " ),
55- m_id (trans->m_id),
56- m_isDisruptive (false ),
57- m_match (" " ),
58- m_maturity (rule->m_maturity),
59- m_message (" " ),
60- m_noAuditLog (false ),
61- m_phase (rule->getPhase () - 1),
62- m_reference(" " ),
63- m_rev(rule->m_rev),
45+ RuleMessage (const RuleWithActions &rule, const Transaction &trans) :
6446 m_rule (rule),
65- m_ruleFile(rule->getFileName ()),
66- m_ruleId(rule->m_ruleId),
67- m_ruleLine(rule->getLineNumber ()),
68- m_saveMessage(true ),
69- m_serverIpAddress(trans->m_serverIpAddress),
70- m_requestHostName(trans->m_requestHostName),
71- m_severity(0 ),
72- m_uriNoQueryStringDecoded(trans->m_uri_no_query_string_decoded),
73- m_ver(rule->m_ver),
74- m_tags()
47+ m_transaction (trans)
7548 { }
7649
77- explicit RuleMessage (RuleMessage *rule) :
78- m_accuracy(rule->m_accuracy),
79- m_clientIpAddress(rule->m_clientIpAddress),
80- m_data(rule->m_data),
81- m_id(rule->m_id),
82- m_isDisruptive(rule->m_isDisruptive),
83- m_match(rule->m_match),
84- m_maturity(rule->m_maturity),
85- m_message(rule->m_message),
86- m_noAuditLog(rule->m_noAuditLog),
87- m_phase(rule->m_phase),
88- m_reference(rule->m_reference),
89- m_rev(rule->m_rev),
90- m_rule(rule->m_rule),
91- m_ruleFile(rule->m_ruleFile),
92- m_ruleId(rule->m_ruleId),
93- m_ruleLine(rule->m_ruleLine),
94- m_saveMessage(rule->m_saveMessage),
95- m_serverIpAddress(rule->m_serverIpAddress),
96- m_requestHostName(rule->m_requestHostName),
97- m_severity(rule->m_severity),
98- m_uriNoQueryStringDecoded(rule->m_uriNoQueryStringDecoded),
99- m_ver(rule->m_ver),
100- m_tags(rule->m_tags)
101- { }
102-
103- RuleMessage (const RuleMessage& ruleMessage)
104- : m_accuracy(ruleMessage.m_accuracy),
105- m_clientIpAddress(ruleMessage.m_clientIpAddress),
106- m_data(ruleMessage.m_data),
107- m_id(ruleMessage.m_id),
108- m_isDisruptive(ruleMessage.m_isDisruptive),
109- m_match(ruleMessage.m_match),
110- m_maturity(ruleMessage.m_maturity),
111- m_message(ruleMessage.m_message),
112- m_noAuditLog(ruleMessage.m_noAuditLog),
113- m_phase(ruleMessage.m_phase),
114- m_reference(ruleMessage.m_reference),
115- m_rev(ruleMessage.m_rev),
116- m_rule(ruleMessage.m_rule),
117- m_ruleFile(ruleMessage.m_ruleFile),
118- m_ruleId(ruleMessage.m_ruleId),
119- m_ruleLine(ruleMessage.m_ruleLine),
120- m_saveMessage(ruleMessage.m_saveMessage),
121- m_serverIpAddress(ruleMessage.m_serverIpAddress),
122- m_requestHostName(ruleMessage.m_requestHostName),
123- m_severity(ruleMessage.m_severity),
124- m_uriNoQueryStringDecoded(ruleMessage.m_uriNoQueryStringDecoded),
125- m_ver(ruleMessage.m_ver),
126- m_tags(ruleMessage.m_tags)
127- { }
128-
129- RuleMessage &operator =(const RuleMessage& ruleMessage) {
130- m_accuracy = ruleMessage.m_accuracy ;
131- m_clientIpAddress = ruleMessage.m_clientIpAddress ;
132- m_data = ruleMessage.m_data ;
133- m_id = ruleMessage.m_id ;
134- m_isDisruptive = ruleMessage.m_isDisruptive ;
135- m_match = ruleMessage.m_match ;
136- m_maturity = ruleMessage.m_maturity ;
137- m_message = ruleMessage.m_message ;
138- m_noAuditLog = ruleMessage.m_noAuditLog ;
139- m_phase = ruleMessage.m_phase ;
140- m_reference = ruleMessage.m_reference ;
141- m_rev = ruleMessage.m_rev ;
142- m_rule = ruleMessage.m_rule ;
143- m_ruleFile = ruleMessage.m_ruleFile ;
144- m_ruleId = ruleMessage.m_ruleId ;
145- m_ruleLine = ruleMessage.m_ruleLine ;
146- m_saveMessage = ruleMessage.m_saveMessage ;
147- m_serverIpAddress = ruleMessage.m_serverIpAddress ;
148- m_requestHostName = ruleMessage.m_requestHostName ;
149- m_severity = ruleMessage.m_severity ;
150- m_uriNoQueryStringDecoded = ruleMessage.m_uriNoQueryStringDecoded ;
151- m_ver = ruleMessage.m_ver ;
152- m_tags = ruleMessage.m_tags ;
153- return *this ;
154- }
50+ RuleMessage (const RuleMessage &ruleMessage) = default ;
51+ RuleMessage &operator =(const RuleMessage &ruleMessage) = delete ;
15552
15653 void clean () {
15754 m_data = " " ;
15855 m_match = " " ;
15956 m_isDisruptive = false ;
16057 m_reference = " " ;
16158 m_severity = 0 ;
162- m_ver = " " ;
16359 }
16460
16561 std::string log () {
@@ -187,28 +83,18 @@ class RuleMessage {
18783 static std::string _details (const RuleMessage *rm);
18884 static std::string _errorLogTail (const RuleMessage *rm);
18985
190- int m_accuracy;
191- std::shared_ptr<std::string> m_clientIpAddress;
86+ int getPhase () const { return m_rule.getPhase () - 1 ; }
87+
88+ const RuleWithActions &m_rule;
89+ const Transaction &m_transaction;
19290 std::string m_data;
193- std::shared_ptr<std::string> m_id;
194- bool m_isDisruptive;
91+ bool m_isDisruptive = false ;
19592 std::string m_match;
196- int m_maturity;
19793 std::string m_message;
198- bool m_noAuditLog;
199- int m_phase;
94+ bool m_noAuditLog = false ;
20095 std::string m_reference;
201- std::string m_rev;
202- RuleWithActions *m_rule;
203- std::shared_ptr<std::string> m_ruleFile;
204- int m_ruleId;
205- int m_ruleLine;
206- bool m_saveMessage;
207- std::shared_ptr<std::string> m_serverIpAddress;
208- std::shared_ptr<std::string> m_requestHostName;
209- int m_severity;
210- std::shared_ptr<std::string> m_uriNoQueryStringDecoded;
211- std::string m_ver;
96+ bool m_saveMessage = true ;
97+ int m_severity = 0 ;
21298
21399 std::list<std::string> m_tags;
214100};
0 commit comments