From e59cbbc46912a267d2ed8f3cab65ce9850a5cc52 Mon Sep 17 00:00:00 2001 From: uditaren Date: Sat, 31 Aug 2024 13:08:44 +0200 Subject: [PATCH] Move to udico.de/util/log for logging --- go.mod | 5 ++++- go.sum | 6 +++--- listener.go | 26 +++++++++++++------------- log.go | 5 +++++ server_conn.go | 6 +++--- 5 files changed, 28 insertions(+), 20 deletions(-) create mode 100644 log.go diff --git a/go.mod b/go.mod index 314778e..9646b1d 100644 --- a/go.mod +++ b/go.mod @@ -4,4 +4,7 @@ go 1.20 require github.com/sirupsen/logrus v1.9.0 -require golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 // indirect +require ( + github.com/stretchr/testify v1.8.0 // indirect + golang.org/x/sys v0.4.0 // indirect +) diff --git a/go.sum b/go.sum index ed65537..659831a 100644 --- a/go.sum +++ b/go.sum @@ -6,10 +6,10 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/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 h1:0A+M6Uqn+Eje4kHMK80dtF3JCXC4ykBgQG4Fe06QRhQ= +github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= 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= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/listener.go b/listener.go index de31557..c3cd9c9 100644 --- a/listener.go +++ b/listener.go @@ -9,9 +9,9 @@ import ( "encoding/base64" "errors" "fmt" - log "github.com/sirupsen/logrus" "net" "net/http" + "udico.de/util/log" ) // A Listener as defined in net.Listener for accepting WebSocket connections. @@ -47,7 +47,7 @@ func (l Listener) Accept() (net.Conn, error) { } // Close closes the listener. -// Any blocked Accept operations will be unblocked and return errors. +// Any blocked Accept() operations will be unblocked and return errors. func (l Listener) Close() error { select { case _, ok := <-l.cConn: @@ -89,13 +89,13 @@ func (l Listener) ServeHTTP(resp http.ResponseWriter, req *http.Request) { // - Sec-WebSocket-Extensions is optional if req.Method != "GET" { - log.Error("Invalid method!") + log.ERROR.To(logger).Msg("Invalid method!") resp.WriteHeader(http.StatusMethodNotAllowed) return } if req.RequestURI == "" { - log.Errorf("Invalid Request URI: '%v'", req.RequestURI) + log.ERROR.To(logger).Msg("Invalid Request URI: '%v'", req.RequestURI) resp.WriteHeader(http.StatusNotAcceptable) // ??? return } @@ -107,27 +107,27 @@ func (l Listener) ServeHTTP(resp http.ResponseWriter, req *http.Request) { //} if req.Header.Get("Connection") != "Upgrade" { - log.Error("Connection != Upgrade") + log.ERROR.To(logger).Msg("Connection != Upgrade") resp.WriteHeader(http.StatusUpgradeRequired) return } if req.Header.Get("Upgrade") != "websocket" { - log.Error("Upgrade != websocket") + log.ERROR.To(logger).Msg("Upgrade != websocket") resp.WriteHeader(http.StatusUpgradeRequired) return } if req.Header.Get("Sec-WebSocket-Version") != "13" { - log.Error("Invalid WebSocket Version") + log.ERROR.To(logger).Msg("Invalid WebSocket Version") resp.WriteHeader(http.StatusUpgradeRequired) return } // Todo: remove all that debug spam - log.Warn("In the websocket handler - yay!") + log.DEBUG.To(logger).Msg("In the websocket handler - yay!") for k, v := range req.Header { - log.Infof(" %v: %v", k, v[0]) + log.INFO.To(logger).Msg(" %v: %v", k, v[0]) } wsKey := req.Header.Get("Sec-Websocket-Key") @@ -135,7 +135,7 @@ func (l Listener) ServeHTTP(resp http.ResponseWriter, req *http.Request) { shakey := sha1.Sum([]byte(wsKey)) wsKey = base64.StdEncoding.EncodeToString(shakey[:]) - log.Info("Generated WebSocket-Accept: ", wsKey) + log.INFO.To(logger).Msg("Generated WebSocket-Accept: ", wsKey) // NOPE: we need to hijack the connection and send it manually! //resp.Header().Set("Upgrade", "websocket") //resp.Header().Set("Connection", "Upgrade") @@ -144,13 +144,13 @@ func (l Listener) ServeHTTP(resp http.ResponseWriter, req *http.Request) { h, ok := resp.(http.Hijacker) if !ok { - log.Error("Missing Hijacker extension on responsewriter") + log.ERROR.To(logger).Msg("Missing Hijacker extension on responsewriter") return } var brw *bufio.ReadWriter // only used to check for data sent by the client (which is disallowed) conn, brw, err := h.Hijack() // returns the connection and the readwriter to operate on if err != nil { - log.WithError(err).Error("cannot hijack") + log.ERROR.To(logger).Err(err).Msg("cannot hijack connection") return } @@ -163,7 +163,7 @@ func (l Listener) ServeHTTP(resp http.ResponseWriter, req *http.Request) { // the client must not've sent any data before the handshake is complete if brw.Reader.Buffered() > 0 { conn.Close() - log.Error("client send before handshake!") + log.ERROR.To(logger).Msg("client send before handshake!") return } diff --git a/log.go b/log.go new file mode 100644 index 0000000..9084fee --- /dev/null +++ b/log.go @@ -0,0 +1,5 @@ +package zocket + +import "udico.de/util/log" + +var logger = log.Logger("zocket").SetLevel(log.TRACE) diff --git a/server_conn.go b/server_conn.go index f9962f3..cea06e2 100644 --- a/server_conn.go +++ b/server_conn.go @@ -6,9 +6,9 @@ import ( "bytes" "errors" "fmt" - "github.com/sirupsen/logrus" "net" "time" + "udico.de/util/log" ) // ServerConnection is the serverside part of the ws abstraction @@ -56,7 +56,7 @@ datloop: break datloop } default: - logrus.Errorf("uhandled frame type: %v", tFrame.Opcode) + log.ERROR.To(logger).Msg("uhandled frame type: %v", tFrame.Opcode) } } bytes := buf.Bytes() @@ -88,7 +88,7 @@ func (c ServerConnection) Write(b []byte) (int, error) { // Close terminates the connection nicely. func (c ServerConnection) Close() error { - logrus.Debugf("serverconn_close %v", c) + log.TRACE.To(logger).Msg("serverconn_close %v", c) //debug.PrintStack() tFrame := &Frame{ Fin: true,