From f3ebe03a0b50bae2bb07a56497d963d3d9dd53a6 Mon Sep 17 00:00:00 2001 From: Andrew Stanton-Nurse Date: Tue, 15 Nov 2016 16:22:50 -0800 Subject: [PATCH] fix #32 by handling connection header correctly (#33) --- .../HandshakeHelpers.cs | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/Microsoft.AspNetCore.WebSockets.Internal/HandshakeHelpers.cs b/src/Microsoft.AspNetCore.WebSockets.Internal/HandshakeHelpers.cs index a3476c8b6b..d9e80a7559 100644 --- a/src/Microsoft.AspNetCore.WebSockets.Internal/HandshakeHelpers.cs +++ b/src/Microsoft.AspNetCore.WebSockets.Internal/HandshakeHelpers.cs @@ -21,20 +21,18 @@ namespace Microsoft.AspNetCore.WebSockets.Internal return false; } + foreach (var value in request.Headers.GetCommaSeparatedValues(Constants.Headers.Connection)) + { + if (string.Equals(Constants.Headers.ConnectionUpgrade, value, StringComparison.OrdinalIgnoreCase)) + { + validConnection = true; + break; + } + } + foreach (var pair in request.Headers) { - if (string.Equals(Constants.Headers.Connection, pair.Key, StringComparison.OrdinalIgnoreCase)) - { - foreach (var value in pair.Value) - { - if (string.Equals(Constants.Headers.ConnectionUpgrade, value, StringComparison.OrdinalIgnoreCase)) - { - validConnection = true; - break; - } - } - } - else if (string.Equals(Constants.Headers.Upgrade, pair.Key, StringComparison.OrdinalIgnoreCase)) + if (string.Equals(Constants.Headers.Upgrade, pair.Key, StringComparison.OrdinalIgnoreCase)) { if (string.Equals(Constants.Headers.UpgradeWebSocket, pair.Value, StringComparison.OrdinalIgnoreCase)) {