diff --git a/listener/http/upgrade.go b/listener/http/upgrade.go index 643de541..50cdcb0f 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) {