in src/Microsoft.Azure.Relay/HybridConnectionUtility.cs [51:89]
internal static string ReadAndFilterQueryString(string queryString, Func<string, string, bool> predicate)
{
var updatedQueryString = new StringBuilder(queryString.Length);
string[] queryParameters = queryString.TrimStart(QuestionMark).Split(Ampersand);
bool firstPairAlreadyWritten = false;
foreach (string queryParameter in queryParameters)
{
string[] keyAndValue = queryParameter.Split(EqualSign, 2);
string key;
string value;
if (keyAndValue.Length == 2)
{
key = WebUtility.UrlDecode(keyAndValue[0]);
value = WebUtility.UrlDecode(keyAndValue[1]);
}
else
{
key = null;
value = WebUtility.UrlDecode(keyAndValue[0]);
}
if (predicate(key, value))
{
// Copy as-is to the filtered queryString
if (firstPairAlreadyWritten)
{
updatedQueryString.Append('&');
}
else
{
firstPairAlreadyWritten = true;
}
updatedQueryString.Append(queryParameter);
}
}
return updatedQueryString.ToString();
}