From 1a7f4ae5db0ee22b925d465624c517d9dc8c26ac Mon Sep 17 00:00:00 2001 From: banix Date: Wed, 5 Jan 2022 14:32:42 -0500 Subject: [PATCH] make header values for WebSocket upgrade case insensitive (#9) --- server/server.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/server/server.go b/server/server.go index 85c0b5d..fbb3510 100644 --- a/server/server.go +++ b/server/server.go @@ -196,12 +196,15 @@ func isWebSocketUpgrade(header http.Header) (bool, error) { if header.Get("Sec-Websocket-Protocol") != grpcwebsocket.SubprotocolName { return false, nil } - if header.Get("Connection") != "Upgrade" { + + if !strings.EqualFold(header.Get("Connection"), "upgrade") { return false, errors.New("missing 'Connection: Upgrade' header in gRPC-websocket request (this usually means your proxy or load balancer does not support websockets)") } - if header.Get("Upgrade") != "websocket" { + + if !strings.EqualFold(header.Get("Upgrade"), "websocket") { return false, errors.New("missing 'Upgrade: websocket' header in gRPC-websocket request (this usually means your proxy or load balancer does not support websockets)") } + return true, nil }