From 1a9f7002870884779b88e534bc76b2245a57c72d Mon Sep 17 00:00:00 2001 From: Ruben Callewaert Date: Sun, 3 Apr 2016 17:48:53 +0200 Subject: [PATCH] Allow mixed case Upgrade headers Caddy expects websocket to be completely lowercase. Some applications send websocket upgrade headers like the following: `Upgrade: WebSocket` This change allows all variations of websocket. --- middleware/proxy/reverseproxy.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/middleware/proxy/reverseproxy.go b/middleware/proxy/reverseproxy.go index 7e8815d2e..384ea6cde 100644 --- a/middleware/proxy/reverseproxy.go +++ b/middleware/proxy/reverseproxy.go @@ -207,7 +207,7 @@ func (p *ReverseProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request, extr return err } - if res.StatusCode == http.StatusSwitchingProtocols && res.Header.Get("Upgrade") == "websocket" { + if res.StatusCode == http.StatusSwitchingProtocols && strings.ToLower(res.Header.Get("Upgrade")) == "websocket" { res.Body.Close() hj, ok := rw.(http.Hijacker) if !ok {