@@ -42,124 +42,20 @@ class RuleMessage {
42
42
ClientLogMessageInfo = 4
43
43
};
44
44
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) :
64
46
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)
75
48
{ }
76
49
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 ;
155
52
156
53
void clean () {
157
54
m_data = " " ;
158
55
m_match = " " ;
159
56
m_isDisruptive = false ;
160
57
m_reference = " " ;
161
58
m_severity = 0 ;
162
- m_ver = " " ;
163
59
}
164
60
165
61
std::string log () {
@@ -187,28 +83,18 @@ class RuleMessage {
187
83
static std::string _details (const RuleMessage *rm);
188
84
static std::string _errorLogTail (const RuleMessage *rm);
189
85
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;
192
90
std::string m_data;
193
- std::shared_ptr<std::string> m_id;
194
- bool m_isDisruptive;
91
+ bool m_isDisruptive = false ;
195
92
std::string m_match;
196
- int m_maturity;
197
93
std::string m_message;
198
- bool m_noAuditLog;
199
- int m_phase;
94
+ bool m_noAuditLog = false ;
200
95
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 ;
212
98
213
99
std::list<std::string> m_tags;
214
100
};
0 commit comments