From 29628fd3e26dd39bd641a23ab8a5a85abd18db86 Mon Sep 17 00:00:00 2001 From: Sreejith Kesavan Date: Tue, 23 Feb 2021 16:38:43 +0530 Subject: [PATCH] * Allow non-browser websocket clients to access the /logs endpoint. websocket.Handler only serves to browser requests and was causing logspout to crash when accessed by a client like wscat (See https://github.com/gliderlabs/logspout/issues/412) --- httpstream/httpstream.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/httpstream/httpstream.go b/httpstream/httpstream.go index e6af8670..67748603 100644 --- a/httpstream/httpstream.go +++ b/httpstream/httpstream.go @@ -104,7 +104,7 @@ func normalName(name string) string { } func websocketStreamer(w http.ResponseWriter, req *http.Request, logstream chan *router.Message, closer chan struct{}) { - websocket.Handler(func(conn *websocket.Conn) { + websocket.Server{Handler: websocket.Handler(func(conn *websocket.Conn) { for logline := range logstream { if req.URL.Query().Get("source") != "" && logline.Source != req.URL.Query().Get("source") { continue @@ -115,7 +115,7 @@ func websocketStreamer(w http.ResponseWriter, req *http.Request, logstream chan return } } - }).ServeHTTP(w, req) + })}.ServeHTTP(w, req) } func httpStreamer(w http.ResponseWriter, req *http.Request, logstream chan *router.Message, multi bool) {