From b38444971712ee2e7ace7b0569ce2a89479a1a2d Mon Sep 17 00:00:00 2001 From: Kr328 Date: Sun, 15 May 2022 09:12:53 +0800 Subject: [PATCH] Fix: fix upgrade header detect (#2134) --- listener/http/upgrade.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/listener/http/upgrade.go b/listener/http/upgrade.go index 643de5414..50cdcb0f3 100644 --- a/listener/http/upgrade.go +++ b/listener/http/upgrade.go @@ -12,7 +12,15 @@ import ( ) func isUpgradeRequest(req *http.Request) bool { - return strings.EqualFold(req.Header.Get("Connection"), "Upgrade") + for _, header := range req.Header["Connection"] { + for _, elm := range strings.Split(header, ",") { + if strings.EqualFold(strings.TrimSpace(elm), "Upgrade") { + return true + } + } + } + + return false } func handleUpgrade(conn net.Conn, request *http.Request, in chan<- C.ConnContext) {