Skip to content

Commit

Permalink
Remove intermediate string allocation when writing match details log (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
anuraaga committed May 6, 2023
1 parent 6969057 commit 21dfb41
Showing 1 changed file with 3 additions and 6 deletions.
9 changes: 3 additions & 6 deletions internal/corazarules/rule_match.go
Original file line number Diff line number Diff line change
Expand Up @@ -106,9 +106,7 @@ func (mr *MatchedRule) Rule() types.RuleMetadata {
return mr.Rule_
}

func (mr MatchedRule) details(matchData types.MatchData) string {
log := &strings.Builder{}

func (mr MatchedRule) writeDetails(log *strings.Builder, matchData types.MatchData) {
msg := matchData.Message()
data := matchData.Data()
if len(msg) > 200 {
Expand All @@ -125,7 +123,6 @@ func (mr MatchedRule) details(matchData types.MatchData) string {
}
log.WriteString(fmt.Sprintf(" [hostname %q] [uri %q] [unique_id %q]",
mr.ServerIPAddress_, mr.URI_, mr.TransactionID_))
return log.String()
}

func (mr MatchedRule) matchData(matchData types.MatchData) string {
Expand Down Expand Up @@ -161,7 +158,7 @@ func (mr MatchedRule) AuditLog(code int) string {
log.WriteString("Coraza: Warning. ")
}
log.WriteString(mr.matchData(matchData))
log.WriteString(mr.details(matchData))
mr.writeDetails(log, matchData)
log.WriteString("\n")
}
return log.String()
Expand Down Expand Up @@ -192,7 +189,7 @@ func (mr MatchedRule) ErrorLog(code int) string {
}
log.WriteString(msg)
log.WriteString(" ")
log.WriteString(mr.details(matchData))
mr.writeDetails(log, matchData)
log.WriteString("\n")
}
return log.String()
Expand Down

0 comments on commit 21dfb41

Please sign in to comment.