in src/Microsoft.Azure.Relay/WebSockets/NetStandard20/WebSocketHandle.Managed.cs [372:411]
internal static string GetParameterForScheme(string line, string scheme)
{
int basicIndex = line.IndexOf(scheme, StringComparison.OrdinalIgnoreCase);
if (basicIndex != -1 && line.Length >= scheme.Length)
{
int i = basicIndex + scheme.Length;
while (i < line.Length)
{
int indexOfComma = line.IndexOf(',', i);
if (indexOfComma == -1)
{
return line.Substring(basicIndex).Trim(s_trimChars);
}
i = SkipWhitespace(line, indexOfComma + 1);
if (i == line.Length)
{
return line.Substring(basicIndex).Trim(s_trimChars);
}
if (line[i] == ',')
{
// Empty key value pair.
continue;
}
int newIndex;
if (IsNextScheme(line, i, out newIndex))
{
return line.Substring(basicIndex, i - basicIndex).Trim(s_trimChars);
}
i = newIndex;
}
return line.Substring(basicIndex).Trim(s_trimChars);
}
return null;
}