System.Net.WebSockets.WebSocketHandle.ValidateAndTrackHeader C# (CSharp) Method

ValidateAndTrackHeader() private static method

Validates a received header against expected values and tracks that we've received it.
private static ValidateAndTrackHeader ( string targetHeaderName, string targetHeaderValue, string foundHeaderName, string foundHeaderValue, bool &foundHeader ) : void
targetHeaderName string The header name against which we're comparing.
targetHeaderValue string The header value against which we're comparing.
foundHeaderName string The actual header name received.
foundHeaderValue string The actual header value received.
foundHeader bool A bool tracking whether this header has been seen.
return void
        private static void ValidateAndTrackHeader(
            string targetHeaderName, string targetHeaderValue,
            string foundHeaderName, string foundHeaderValue,
            ref bool foundHeader)
        {
            bool isTargetHeader = string.Equals(targetHeaderName, foundHeaderName, StringComparison.OrdinalIgnoreCase);
            if (!foundHeader)
            {
                if (isTargetHeader)
                {
                    if (!string.Equals(targetHeaderValue, foundHeaderValue, StringComparison.OrdinalIgnoreCase))
                    {
                        throw new WebSocketException(SR.Format(SR.net_WebSockets_InvalidResponseHeader, targetHeaderName, foundHeaderValue));
                    }
                    foundHeader = true;
                }
            }
            else
            {
                if (isTargetHeader)
                {
                    throw new WebSocketException(SR.Format(SR.net_webstatus_ConnectFailure));
                }
            }
        }