From 084df15789ee6913b1e9d756d98d1766e271b949 Mon Sep 17 00:00:00 2001 From: ElrondfromRussia Date: Fri, 24 May 2024 16:23:17 +0300 Subject: [PATCH 1/3] fix: test&cosmetics; feat: go->1.22.3 --- cef_formatter.go | 8 ++++---- cef_formatter_test.go | 8 ++++---- cef_mapper.go | 1 + go.mod | 9 +++++++-- go.sum | 20 ++++++++++++++------ level_selector.go | 4 ++-- syslog_utils.go | 31 +++++++++++-------------------- sysloger.go | 14 +++++++------- 8 files changed, 50 insertions(+), 45 deletions(-) diff --git a/cef_formatter.go b/cef_formatter.go index 7093fe1..e060775 100644 --- a/cef_formatter.go +++ b/cef_formatter.go @@ -1,5 +1,4 @@ -// Copyright 2020 NGR Softlab -// +// Copyright 2020-2024 NGR Softlab package sysloger import ( @@ -8,7 +7,8 @@ import ( syslog "github.com/RackSec/srslog" "github.com/pcktdmp/cef/cefevent" - log "github.com/sirupsen/logrus" + + logging "github.com/NGRsoftlab/ngr-logging" ) // CefHeader CEF header parameters @@ -85,7 +85,7 @@ func MakeCefString(header CefHeader, contentMap map[string]interface{}, keysAreL cef, err := event.Generate() if err != nil { - log.Warning("bad cef generation: ", err) + logging.Logger.Errorf("bad cef generation: %s", err) return "", err } diff --git a/cef_formatter_test.go b/cef_formatter_test.go index 74df2df..2516142 100644 --- a/cef_formatter_test.go +++ b/cef_formatter_test.go @@ -1,14 +1,14 @@ -// Copyright 2020 NGR Softlab -// +// Copyright 2020-2024 NGR Softlab package sysloger import ( "fmt" - syslog "github.com/RackSec/srslog" "testing" + + syslog "github.com/RackSec/srslog" ) -///////////////////////////////////////////////// +// /////////////////////////////////////////////// func TestFormatter(t *testing.T) { f := make(map[string]interface{}) diff --git a/cef_mapper.go b/cef_mapper.go index ea14f8e..322b0a8 100644 --- a/cef_mapper.go +++ b/cef_mapper.go @@ -1,3 +1,4 @@ +// Copyright 2020-2024 NGR Softlab package sysloger type FieldInfo struct { diff --git a/go.mod b/go.mod index d8ef825..93f1f67 100644 --- a/go.mod +++ b/go.mod @@ -1,9 +1,14 @@ module github.com/NGRsoftlab/ngr-sysloger -go 1.13 +go 1.22.3 require ( + github.com/NGRsoftlab/ngr-logging v1.0.0 github.com/RackSec/srslog v0.0.0-20180709174129-a4725f04ec91 github.com/pcktdmp/cef v0.2.0 - github.com/sirupsen/logrus v1.8.1 +) + +require ( + github.com/sirupsen/logrus v1.9.3 // indirect + golang.org/x/sys v0.20.0 // indirect ) diff --git a/go.sum b/go.sum index 3f4bbac..1aa0419 100644 --- a/go.sum +++ b/go.sum @@ -1,14 +1,22 @@ +github.com/NGRsoftlab/ngr-logging v1.0.0 h1:Yp42kvw/bofZ6xXC5jPlPx1HNabZQY9cvzGnB0earJY= +github.com/NGRsoftlab/ngr-logging v1.0.0/go.mod h1:99kZ+XwSK7rKRitmhZvqOdYnPf9Qepywt3zjJJcJDME= github.com/RackSec/srslog v0.0.0-20180709174129-a4725f04ec91 h1:vX+gnvBc56EbWYrmlhYbFYRaeikAke1GL84N4BEYOFE= github.com/RackSec/srslog v0.0.0-20180709174129-a4725f04ec91/go.mod h1:cDLGBht23g0XQdLjzn6xOGXDkLK182YfINAaZEQLCHQ= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pcktdmp/cef v0.2.0 h1:MgFUXCRqaXsITq83bN0+mmXVh4CGFgOeuyxNaT86Kj0= github.com/pcktdmp/cef v0.2.0/go.mod h1:GXp8etaM/0qdUEx0djN3JmUvBY595+xhJlD0xLOXbgM= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037 h1:YyJpGZS1sBuBCzLAR1VEpK193GlqGZbnPFnPV/5Rsb4= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/level_selector.go b/level_selector.go index 7a4eb68..34de154 100644 --- a/level_selector.go +++ b/level_selector.go @@ -1,9 +1,9 @@ -// Copyright 2020 NGR Softlab -// +// Copyright 2020-2024 NGR Softlab package sysloger import ( "errors" + syslog "github.com/RackSec/srslog" ) diff --git a/syslog_utils.go b/syslog_utils.go index 12144b1..32e4c43 100644 --- a/syslog_utils.go +++ b/syslog_utils.go @@ -1,13 +1,12 @@ -// Copyright 2020-2022 NGR Softlab -// +// Copyright 2020-2024 NGR Softlab package sysloger import ( - "fmt" "time" syslog "github.com/RackSec/srslog" - log "github.com/sirupsen/logrus" + + logging "github.com/NGRsoftlab/ngr-logging" ) ///////////////////////////////////////////////////////// @@ -18,18 +17,16 @@ import ( func SendListToSyslog(params SyslogParams, formatter syslog.Formatter, msgList []string) error { writer, err := NewSyslogWriter(params, formatter) if err != nil { - log.Error("ERROR failed to create writer:", err) + logging.Logger.Errorf("ERROR failed to create writer: %s", err.Error()) return err } defer func() { _ = writer.Close() }() - log.Info(fmt.Sprintf("need write: %d msgs to syslog", len(msgList))) - for i, msg := range msgList { _, errW := doSuitableMethod(writer, params.Level, msg) if errW != nil { - log.Warning(fmt.Sprintf("ERROR writing to syslog: %d %v", i, errW)) + logging.Logger.Warningf("ERROR writing to syslog: %d %v", i, errW) } } @@ -40,17 +37,15 @@ func SendListToSyslog(params SyslogParams, formatter syslog.Formatter, msgList [ func SendSingleSyslogMsg(params SyslogParams, formatter syslog.Formatter, msg string) error { writer, err := NewSyslogWriter(params, formatter) if err != nil { - log.Error("ERROR failed to create writer:", err) + logging.Logger.Errorf("ERROR failed to create writer: %s", err.Error()) return err } defer func() { _ = writer.Close() }() - log.Info("need write: 1 msg to syslog") - _, errW := doSuitableMethod(writer, params.Level, msg) if errW != nil { - log.Error("ERROR writing to syslog: ", errW) + logging.Logger.Errorf("ERROR writing to syslog: %s", errW.Error()) return errW } @@ -61,18 +56,16 @@ func SendSingleSyslogMsg(params SyslogParams, formatter syslog.Formatter, msg st func SendListToSyslogWithTimeout(params SyslogParams, formatter syslog.Formatter, msgList []string, timeout time.Duration) error { writer, err := NewSyslogWriterWithTimeout(params, formatter, timeout) if err != nil { - log.Error("ERROR failed to create writer:", err) + logging.Logger.Errorf("ERROR failed to create writer: %s", err.Error()) return err } defer func() { _ = writer.Close() }() - log.Info(fmt.Sprintf("need write: %d msgs to syslog", len(msgList))) - for i, msg := range msgList { _, errW := doSuitableMethod(writer, params.Level, msg) if errW != nil { - log.Warning(fmt.Sprintf("ERROR writing to syslog: %d %v", i, errW)) + logging.Logger.Warningf("ERROR writing to syslog: %d %v", i, errW) } } @@ -83,17 +76,15 @@ func SendListToSyslogWithTimeout(params SyslogParams, formatter syslog.Formatter func SendSingleSyslogMsgWithTimeout(params SyslogParams, formatter syslog.Formatter, msg string, timeout time.Duration) error { writer, err := NewSyslogWriterWithTimeout(params, formatter, timeout) if err != nil { - log.Error("ERROR failed to create writer:", err) + logging.Logger.Errorf("ERROR failed to create writer: %s", err.Error()) return err } defer func() { _ = writer.Close() }() - log.Info("need write: 1 msg to syslog") - _, errW := doSuitableMethod(writer, params.Level, msg) if errW != nil { - log.Error("ERROR writing to syslog: ", errW) + logging.Logger.Errorf("ERROR writing to syslog: %s", errW.Error()) return errW } diff --git a/sysloger.go b/sysloger.go index b757921..58f7d49 100644 --- a/sysloger.go +++ b/sysloger.go @@ -1,5 +1,4 @@ -// Copyright 2020 NGR Softlab -// +// Copyright 2020-2024 NGR Softlab package sysloger import ( @@ -10,7 +9,8 @@ import ( "time" syslog "github.com/RackSec/srslog" - log "github.com/sirupsen/logrus" + + logging "github.com/NGRsoftlab/ngr-logging" ) // SyslogParams syslog dial params @@ -34,7 +34,7 @@ func NewSyslogWriter(params SyslogParams, formatter syslog.Formatter) (*syslog.W if params.NeedTls { if params.TlsConf == nil { - log.Error("ERROR nil TlsConf") + logging.Logger.Error("ERROR nil TlsConf") return nil, errors.New("nil TlsConf") } @@ -46,7 +46,7 @@ func NewSyslogWriter(params SyslogParams, formatter syslog.Formatter) (*syslog.W } if err != nil { - log.Error("ERROR failed to dial syslog:", err) + logging.Logger.Errorf("ERROR failed to dial syslog: %s", err.Error()) return nil, err } @@ -65,7 +65,7 @@ func NewSyslogWriterWithTimeout(params SyslogParams, formatter syslog.Formatter, if params.NeedTls { if params.TlsConf == nil { - log.Error("ERROR nil TlsConf") + logging.Logger.Error("ERROR nil TlsConf") return nil, errors.New("nil TlsConf") } @@ -84,7 +84,7 @@ func NewSyslogWriterWithTimeout(params SyslogParams, formatter syslog.Formatter, sysLogger, err = syslog.DialWithCustomDialer("custom", fmt.Sprintf("%s:%d", params.Host, params.Port), params.Priority, params.Tag, dial) if err != nil { - log.Error("ERROR failed to dial syslog:", err) + logging.Logger.Errorf("ERROR failed to dial syslog: %s", err.Error()) return nil, err } From 9e4b5c232ee02433caea09428d86538ee53d8429 Mon Sep 17 00:00:00 2001 From: NGRsoftlab <78017794+NGRsoftlab@users.noreply.github.com> Date: Fri, 24 May 2024 16:25:22 +0300 Subject: [PATCH 2/3] Create go.yml Create go.yml --- .github/workflows/go.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 .github/workflows/go.yml diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml new file mode 100644 index 0000000..5681490 --- /dev/null +++ b/.github/workflows/go.yml @@ -0,0 +1,28 @@ +# This workflow will build a golang project +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go + +name: Go + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version: '1.22.3' + + - name: Build + run: go build -v ./... + + - name: Test + run: go test -v ./... From a33937c4b2a801d6b9aba22cddd0e50e49c14410 Mon Sep 17 00:00:00 2001 From: ElrondfromRussia Date: Fri, 24 May 2024 16:29:15 +0300 Subject: [PATCH 3/3] fix: tests; --- sysloger_test.go | 81 ++++++------------------------------------------ 1 file changed, 9 insertions(+), 72 deletions(-) diff --git a/sysloger_test.go b/sysloger_test.go index aac14ac..24e3ad1 100644 --- a/sysloger_test.go +++ b/sysloger_test.go @@ -1,5 +1,4 @@ -// Copyright 2020 NGR Softlab -// +// Copyright 2020-2024 NGR Softlab package sysloger import ( @@ -7,25 +6,7 @@ import ( "time" ) -const CertPath = "" - -///////////////////////////////////////////////// func TestSendSingleSyslogMsg(t *testing.T) { - //t.Parallel() - - //GlobalCaCert, err := ioutil.ReadFile(CertPath) - //if err != nil { - // t.Fatal("Bad TestMakeSyslogWithFormatter1: ", err) - //} - // - //CaCertPool := x509.NewCertPool() - //CaCertPool.AppendCertsFromPEM(GlobalCaCert) - // - //tl := tls.Config{ - // RootCAs: CaCertPool, - // InsecureSkipVerify: true, - //} - // header := CefHeader{ Version: 0, DeviceVendor: "Test", @@ -47,11 +28,12 @@ func TestSendSingleSyslogMsg(t *testing.T) { t.Fatal(err) } + // upd test (for no response control) err = SendSingleSyslogMsg(SyslogParams{ Level: 5, Host: "127.0.0.1", Port: 555, - Protocol: "tcp", + Protocol: "udp", Priority: 0, Tag: "test", //NeedTls: false, @@ -64,23 +46,7 @@ func TestSendSingleSyslogMsg(t *testing.T) { } } -///////////////////////////////////////////////// func TestSendSingleSyslogMsgWithTimeout(t *testing.T) { - //t.Parallel() - - //GlobalCaCert, err := ioutil.ReadFile(CertPath) - //if err != nil { - // t.Fatal("Bad TestMakeSyslogWithFormatter1: ", err) - //} - // - //CaCertPool := x509.NewCertPool() - //CaCertPool.AppendCertsFromPEM(GlobalCaCert) - // - //tl := tls.Config{ - // RootCAs: CaCertPool, - // InsecureSkipVerify: true, - //} - header := CefHeader{ Version: 0, DeviceVendor: "Test", @@ -102,11 +68,12 @@ func TestSendSingleSyslogMsgWithTimeout(t *testing.T) { t.Fatal(err) } + // upd test (for no response control) err = SendSingleSyslogMsgWithTimeout(SyslogParams{ Level: 5, Host: "127.0.0.1", Port: 555, - Protocol: "tcp", + Protocol: "udp", Priority: 0, Tag: "test", //NeedTls: false, @@ -120,23 +87,7 @@ func TestSendSingleSyslogMsgWithTimeout(t *testing.T) { } } -///////////////////////////////////////////////// func TestSendListToSyslog(t *testing.T) { - //t.Parallel() - - //GlobalCaCert, err := ioutil.ReadFile(CertPath) - //if err != nil { - // t.Fatal("Bad TestMakeSyslogWithFormatter1: ", err) - //} - // - //CaCertPool := x509.NewCertPool() - //CaCertPool.AppendCertsFromPEM(GlobalCaCert) - // - //tl := tls.Config{ - // RootCAs: CaCertPool, - // InsecureSkipVerify: true, - //} - header := CefHeader{ Version: 0, DeviceVendor: "Test", @@ -169,11 +120,12 @@ func TestSendListToSyslog(t *testing.T) { testData = append(testData, testDataStr) } + // upd test (for no response control) err := SendListToSyslog(SyslogParams{ Level: 3, Host: "127.0.0.1", Port: 555, - Protocol: "tcp", + Protocol: "udp", Priority: 0, Tag: "test", //NeedTls: false, @@ -186,23 +138,7 @@ func TestSendListToSyslog(t *testing.T) { } } -///////////////////////////////////////////////// func TestSendListToSyslogWithTimeout(t *testing.T) { - //t.Parallel() - - //GlobalCaCert, err := ioutil.ReadFile(CertPath) - //if err != nil { - // t.Fatal("Bad TestMakeSyslogWithFormatter1: ", err) - //} - // - //CaCertPool := x509.NewCertPool() - //CaCertPool.AppendCertsFromPEM(GlobalCaCert) - // - //tl := tls.Config{ - // RootCAs: CaCertPool, - // InsecureSkipVerify: true, - //} - header := CefHeader{ Version: 0, DeviceVendor: "Test", @@ -235,11 +171,12 @@ func TestSendListToSyslogWithTimeout(t *testing.T) { testData = append(testData, testDataStr) } + // upd test (for no response control) err := SendListToSyslogWithTimeout(SyslogParams{ Level: 3, Host: "127.0.0.1", Port: 555, - Protocol: "tcp", + Protocol: "udp", Priority: 0, Tag: "test", //NeedTls: false,