From c4d01410dd560e16b0bdd6d7bcd5f28f9825cd3d Mon Sep 17 00:00:00 2001 From: ale <ale@incal.net> Date: Fri, 10 Nov 2023 10:54:56 +0000 Subject: [PATCH] Make modsec_logger exit on write failure --- modsec_logger.go | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/modsec_logger.go b/modsec_logger.go index 29e3f2bd..29650912 100644 --- a/modsec_logger.go +++ b/modsec_logger.go @@ -1,6 +1,5 @@ // Tool to rewrite mod_security2 logs (very difficult to parse // although they are in semi-structured format) to JSON. -// package main import ( @@ -9,6 +8,7 @@ import ( "encoding/json" "fmt" "io" + "log" "os" "regexp" ) @@ -52,15 +52,24 @@ func parseModSec(w io.Writer, line []byte) bool { return true } +func writeLine(w io.Writer, line byte) error { + if _, err := w.Write(line); err != nil { + return err + } + return io.WriteString(w, "\n") +} + func main() { outw := os.Stdout scanner := bufio.NewScanner(os.Stdin) for scanner.Scan() { line := scanner.Bytes() - if !parseModSec(outw, line) { - outw.Write(line) - io.WriteString(outw, "\n") + if parseModSec(outw, line) { + continue + } + if err := writeLine(outw, line); err != nil { + log.Fatal(err) } } } -- GitLab