Avoid closure in WebSocketHandle.ConnectAsync (#50502)
authorStephen Toub <stoub@microsoft.com>
Thu, 1 Apr 2021 00:05:51 +0000 (20:05 -0400)
committerGitHub <noreply@github.com>
Thu, 1 Apr 2021 00:05:51 +0000 (20:05 -0400)
src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/WebSocketHandle.Managed.cs

index d9c5ade..d61f368 100644 (file)
@@ -162,7 +162,18 @@ namespace System.Net.WebSockets
                     string[] subprotocolArray = (string[])subprotocolEnumerableValues;
                     if (subprotocolArray.Length > 0 && !string.IsNullOrEmpty(subprotocolArray[0]))
                     {
-                        subprotocol = options.RequestedSubProtocols.Find(requested => string.Equals(requested, subprotocolArray[0], StringComparison.OrdinalIgnoreCase));
+                        if (options._requestedSubProtocols is not null)
+                        {
+                            foreach (string requestedProtocol in options._requestedSubProtocols)
+                            {
+                                if (requestedProtocol.Equals(subprotocolArray[0], StringComparison.OrdinalIgnoreCase))
+                                {
+                                    subprotocol = requestedProtocol;
+                                    break;
+                                }
+                            }
+                        }
+
                         if (subprotocol == null)
                         {
                             throw new WebSocketException(