@@ -42,125 +42,22 @@ 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),
45+ RuleMessage (const RuleWithActions &rule, const Transaction &trans) :
46+ m_rule (rule),
47+ m_transaction (trans),
5448 m_data (" " ),
55- m_id (trans->m_id),
5649 m_isDisruptive (false ),
5750 m_match (" " ),
58- m_maturity (rule->m_maturity),
5951 m_message (" " ),
6052 m_noAuditLog (false ),
61- m_phase (rule->getPhase () - 1),
6253 m_reference (" " ),
63- m_rev(rule->m_rev),
64- m_rule(rule),
65- m_ruleFile(rule->getFileName ()),
66- m_ruleId(rule->m_ruleId),
67- m_ruleLine(rule->getLineNumber ()),
6854 m_saveMessage (true ),
69- m_serverIpAddress(trans->m_serverIpAddress),
70- m_requestHostName(trans->m_requestHostName),
7155 m_severity (0 ),
72- m_uriNoQueryStringDecoded(trans->m_uri_no_query_string_decoded),
73- m_ver(rule->m_ver),
7456 m_tags ()
7557 { }
7658
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- }
155-
156- void clean () {
157- m_data = " " ;
158- m_match = " " ;
159- m_isDisruptive = false ;
160- m_reference = " " ;
161- m_severity = 0 ;
162- m_ver = " " ;
163- }
59+ RuleMessage (const RuleMessage &ruleMessage) = default ;
60+ RuleMessage &operator =(const RuleMessage &ruleMessage) = delete ;
16461
16562 std::string log () {
16663 return log (this , 0 );
@@ -187,28 +84,18 @@ class RuleMessage {
18784 static std::string _details (const RuleMessage *rm);
18885 static std::string _errorLogTail (const RuleMessage *rm);
18986
190- int m_accuracy;
191- std::shared_ptr<std::string> m_clientIpAddress;
87+ int getPhase () const { return m_rule.getPhase () - 1 ; }
88+
89+ const RuleWithActions &m_rule;
90+ const Transaction &m_transaction;
19291 std::string m_data;
193- std::shared_ptr<std::string> m_id;
19492 bool m_isDisruptive;
19593 std::string m_match;
196- int m_maturity;
19794 std::string m_message;
19895 bool m_noAuditLog;
199- int m_phase;
20096 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;
20697 bool m_saveMessage;
207- std::shared_ptr<std::string> m_serverIpAddress;
208- std::shared_ptr<std::string> m_requestHostName;
20998 int m_severity;
210- std::shared_ptr<std::string> m_uriNoQueryStringDecoded;
211- std::string m_ver;
21299
213100 std::list<std::string> m_tags;
214101};
0 commit comments