Move to udico.de/util/log for logging
This commit is contained in:
parent
d772b82e94
commit
e59cbbc469
5
go.mod
5
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
|
||||
)
|
||||
|
|
6
go.sum
6
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=
|
||||
|
|
26
listener.go
26
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
|
||||
}
|
||||
|
||||
|
|
5
log.go
Normal file
5
log.go
Normal file
|
@ -0,0 +1,5 @@
|
|||
package zocket
|
||||
|
||||
import "udico.de/util/log"
|
||||
|
||||
var logger = log.Logger("zocket").SetLevel(log.TRACE)
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue
Block a user