2323namespace modsecurity {
2424
2525
26- inline void RuleMessage::_details (const RuleMessage *rm, std::string *msg) {
27- *msg += " [file \" " + std::string (*rm->m_ruleFile .get ()) + " \" ]" \
28- " [line \" " + std::to_string (rm->m_ruleLine ) + " \" ]" \
29- " [id \" " + std::to_string (rm->m_ruleId ) + " \" ]" \
30- " [rev \" " + rm->m_rev + " \" ]" \
31- " [msg \" " + rm->m_message + " \" ]" \
32- " [data \" " + utils::string::limitTo (200 , rm->m_data ) + " \" ]" \
33- " [severity \" " + std::to_string (rm->m_severity ) + " \" ]" \
34- " [ver \" " + rm->m_ver + " \" ]" \
35- " [maturity \" " + std::to_string (rm->m_maturity ) + " \" ]" \
36- " [accuracy \" " + std::to_string (rm->m_accuracy ) + " \" ]" ;
26+ std::string RuleMessage::_details (const RuleMessage *rm) {
27+ std::string msg;
28+
29+ msg.append (" [file \" " + std::string (*rm->m_ruleFile .get ()) + " \" ]" );
30+ msg.append (" [line \" " + std::to_string (rm->m_ruleLine ) + " \" ]" );
31+ msg.append (" [id \" " + std::to_string (rm->m_ruleId ) + " \" ]" );
32+ msg.append (" [rev \" " + rm->m_rev + " \" ]" );
33+ msg.append (" [msg \" " + rm->m_message + " \" ]" );
34+ msg.append (" [data \" " + utils::string::limitTo (200 , rm->m_data ) + " \" ]" );
35+ msg.append (" [severity \" " +
36+ std::to_string (rm->m_severity ) + " \" ]" );
37+ msg.append (" [ver \" " + rm->m_ver + " \" ]" );
38+ msg.append (" [maturity \" " + std::to_string (rm->m_maturity ) + " \" ]" );
39+ msg.append (" [accuracy \" " + std::to_string (rm->m_accuracy ) + " \" ]" );
3740
3841 for (auto &a : rm->m_tags ) {
39- * msg += " [tag \" " + a + " \" ]" ;
42+ msg. append ( " [tag \" " + a + " \" ]" ) ;
4043 }
4144
42- *msg += " [hostname \" " + *rm->m_serverIpAddress .get () + " \" ]" \
43- " [uri \" " + *rm->m_uriNoQueryStringDecoded .get () + " \" ]" \
44- " [unique_id \" " + *rm->m_id .get () + " \" ]" \
45- " [ref \" " + utils::string::limitTo (200 , rm->m_reference ) + " \" ]" ;
45+ msg.append (" [hostname \" " + *rm->m_serverIpAddress .get () \
46+ + " \" ]" );
47+ msg.append (" [uri \" " + utils::string::limitTo (200 , *rm->m_uriNoQueryStringDecoded .get ()) + " \" ]" );
48+ msg.append (" [unique_id \" " + *rm->m_id + " \" ]" );
49+ msg.append (" [ref \" " + utils::string::limitTo (200 , rm->m_reference ) + " \" ]" );
50+
51+ return msg;
4652}
4753
4854
49- inline void RuleMessage::_errorLogTail (const RuleMessage *rm,
50- std::string *msg) {
51- *msg += " [hostname \" " + *rm->m_serverIpAddress .get () + " \" ]" \
52- " [uri \" " + utils::string::limitTo (200 ,
53- *rm->m_uriNoQueryStringDecoded .get ()) + " \" ]" \
54- " [unique_id \" " + *rm->m_id .get () + " \" ]" ;
55+ std::string RuleMessage::_errorLogTail (const RuleMessage *rm) {
56+ std::string msg;
57+
58+ msg.append (" [hostname \" " + *rm->m_serverIpAddress .get () + " \" ]" );
59+ msg.append (" [uri \" " + utils::string::limitTo (200 , *rm->m_uriNoQueryStringDecoded .get ()) + " \" ]" );
60+ msg.append (" [unique_id \" " + *rm->m_id + " \" ]" );
61+
62+ return msg;
5563}
5664
5765
@@ -60,26 +68,27 @@ std::string RuleMessage::log(const RuleMessage *rm, int props, int code) {
6068 msg.reserve (2048 );
6169
6270 if (props & ClientLogMessageInfo) {
63- msg += " [client " + std::string (*rm->m_clientIpAddress .get ()) + " ] " ;
71+ msg. append ( " [client " + std::string (*rm->m_clientIpAddress .get ()) + " ] " ) ;
6472 }
6573
6674 if (rm->m_isDisruptive ) {
67- msg += " ModSecurity: Access denied with code " ;
75+ msg. append ( " ModSecurity: Access denied with code " ) ;
6876 if (code == -1 ) {
69- msg += " %d" ;
77+ msg. append ( " %d" ) ;
7078 } else {
71- msg += std::to_string (code);
79+ msg. append ( std::to_string (code) );
7280 }
73- msg += " (phase " + std::to_string (rm->m_rule ->m_phase - 1 ) + " ). " ;
81+ msg.append (" (phase " );
82+ msg.append (std::to_string (rm->m_rule ->m_phase - 1 ) + " ). " );
7483 } else {
75- msg += " ModSecurity: Warning. " ;
84+ msg. append ( " ModSecurity: Warning. " ) ;
7685 }
7786
78- msg += (rm->m_match );
79- _details (rm, &msg );
87+ msg. append (rm->m_match );
88+ msg. append ( _details (rm) );
8089
8190 if (props & ErrorLogTailLogMessageInfo) {
82- _errorLogTail (rm, &msg );
91+ msg. append ( " " + _errorLogTail (rm) );
8392 }
8493
8594 return modsecurity::utils::string::toHexIfNeeded (msg);
0 commit comments