From e3d1049fd76f5600201270dfe02520650cd4b86a Mon Sep 17 00:00:00 2001 From: Elias Renman Date: Thu, 25 Jun 2026 16:30:44 +0200 Subject: [PATCH] Handle lowercase websocket upgrade headers --- patches/behind-nginx.patch | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/patches/behind-nginx.patch b/patches/behind-nginx.patch index 54f4cea..16e9b56 100644 --- a/patches/behind-nginx.patch +++ b/patches/behind-nginx.patch @@ -69,6 +69,18 @@ diff --git a/internal/telebit/connwrap.go b/internal/telebit/connwrap.go // isEncrypted returns true if peeking at net.Conn reveals that it is TLS-encrypted func (c *ConnWrap) isEncrypted() bool { if nil != c.encrypted { +diff --git a/internal/telebit/admin.go b/internal/telebit/admin.go +--- a/internal/telebit/admin.go ++++ b/internal/telebit/admin.go +@@ -223,7 +223,7 @@ func upgradeWebsocket(w http.ResponseWriter, r *http.Request) { + log.Println("websocket opening ", r.RemoteAddr, " ", r.Host) + w.Header().Set("Content-Type", "application/json") + +- if "Upgrade" != r.Header.Get("Connection") && "WebSocket" != r.Header.Get("Upgrade") { ++ if "upgrade" != strings.ToLower(r.Header.Get("Connection")) && "websocket" != strings.ToLower(r.Header.Get("Upgrade")) { + w.Write(apiNotFoundContent) + return + } diff --git a/internal/telebit/routemux.go b/internal/telebit/routemux.go --- a/internal/telebit/routemux.go +++ b/internal/telebit/routemux.go