From ff79584084436b74151e7549f70ee8f0a1d3aebe Mon Sep 17 00:00:00 2001 From: Gibheer Date: Thu, 13 Dec 2018 16:20:42 +0100 Subject: [PATCH] monwork - bytes.Fields works well enough This function existed to group fields together, but it had an issue and grouped them wrongly. This caused issues later in the check stage. --- cmd/monwork/main.go | 31 +------------------------------ 1 file changed, 1 insertion(+), 30 deletions(-) diff --git a/cmd/monwork/main.go b/cmd/monwork/main.go index 782baf7..d3b852a 100644 --- a/cmd/monwork/main.go +++ b/cmd/monwork/main.go @@ -167,7 +167,7 @@ func startConfigGen(db *sql.DB, checkInterval time.Duration) { time.Sleep(checkInterval) continue } - if _, err := tx.Exec(SQLRefreshActiveCheck, check_id, pq.Array(stringToShellFields(cmd.Bytes()))); err != nil { + if _, err := tx.Exec(SQLRefreshActiveCheck, check_id, pq.Array(bytes.Fields(cmd.Bytes()))); err != nil { tx.Rollback() log.Printf("could not refresh check '%d': %s", check_id, err) continue @@ -184,35 +184,6 @@ func startConfigGen(db *sql.DB, checkInterval time.Duration) { } } -func stringToShellFields(in []byte) [][]byte { - if len(in) == 0 { - return [][]byte{} - } - fields := bytes.Fields(in) - result := [][]byte{fields[0]} - - var quote byte - - for _, field := range fields[1:] { - if quote == 0 && (field[0] != '\'' && field[0] != '"') { - result = append(result, field) - continue - } - if quote == 0 && (field[0] == '\'' || field[0] == '"') { - quote = field[0] - result = append(result, field) - continue - } - idx := len(result) - 1 - result[idx] = append(result[idx], append([]byte(" "), field...)...) - if quote != 0 && (bytes.HasSuffix(field, []byte{quote})) { - quote = 0 - continue - } - } - return result -} - var ( SQLGetConfigUpdates = `select c.id, co.command, c.options from checks c