Exemple #1
0
        internal static bool ParseNVPHeaders(HTTPHeaders oHeaders, string[] sHeaderLines, int iStartAt, ref string sErrors)
        {
            bool result = true;
            int  i      = iStartAt;

            while (i < sHeaderLines.Length)
            {
                int            num = sHeaderLines[i].IndexOf(':');
                HTTPHeaderItem hTTPHeaderItem;
                if (num > 0)
                {
                    hTTPHeaderItem = oHeaders.Add(sHeaderLines[i].Substring(0, num), sHeaderLines[i].Substring(num + 1).TrimStart(new char[]
                    {
                        ' ',
                        '\t'
                    }));
                }
                else
                {
                    if (num == 0)
                    {
                        hTTPHeaderItem = null;
                        sErrors       += string.Format("Missing Header name #{0}, {1}\n", 1 + i - iStartAt, sHeaderLines[i]);
                        result         = false;
                    }
                    else
                    {
                        hTTPHeaderItem = oHeaders.Add(sHeaderLines[i], string.Empty);
                        sErrors       += string.Format("Missing colon in header #{0}, {1}\n", 1 + i - iStartAt, sHeaderLines[i]);
                        result         = false;
                    }
                }
                i++;
                bool flag = hTTPHeaderItem != null && i < sHeaderLines.Length && Parser.IsPrefixedWithWhitespace(sHeaderLines[i]);
                while (flag)
                {
                    FiddlerApplication.Log.LogString("[HTTPWarning] Header folding detected. Not all clients properly handle folded headers.");
                    hTTPHeaderItem.Value = hTTPHeaderItem.Value + " " + sHeaderLines[i].TrimStart(new char[]
                    {
                        ' ',
                        '\t'
                    });
                    i++;
                    flag = (i < sHeaderLines.Length && Parser.IsPrefixedWithWhitespace(sHeaderLines[i]));
                }
            }
            return(result);
        }
Exemple #2
0
        internal static bool ParseNVPHeaders(HTTPHeaders oHeaders, string[] sHeaderLines, int iStartAt, ref string sErrors)
        {
            bool flag = true;

            for (int i = iStartAt; i < sHeaderLines.Length; i++)
            {
                int index = sHeaderLines[i].IndexOf(':');
                if (index > 0)
                {
                    oHeaders.Add(sHeaderLines[i].Substring(0, index), sHeaderLines[i].Substring(index + 1).Trim());
                }
                else
                {
                    sErrors = sErrors + string.Format("Missing colon in header #{0}, {1}\n", i - iStartAt, sHeaderLines[i]);
                    flag    = false;
                }
            }
            return(flag);
        }
Exemple #3
0
 internal static bool ParseNVPHeaders(HTTPHeaders oHeaders, string[] sHeaderLines, int iStartAt, ref string sErrors)
 {
     bool flag = true;
     int index = iStartAt;
     HTTPHeaderItem item = null;
     while (index < sHeaderLines.Length)
     {
         int length = sHeaderLines[index].IndexOf(':');
         if (length > 0)
         {
             item = oHeaders.Add(sHeaderLines[index].Substring(0, length), sHeaderLines[index].Substring(length + 1).TrimStart(new char[] { ' ', '\t' }));
         }
         else if (length == 0)
         {
             item = null;
             sErrors = sErrors + string.Format("Missing Header name #{0}, {1}\n", (1 + index) - iStartAt, sHeaderLines[index]);
             flag = false;
         }
         else
         {
             item = oHeaders.Add(sHeaderLines[index], string.Empty);
             sErrors = sErrors + string.Format("Missing colon in header #{0}, {1}\n", (1 + index) - iStartAt, sHeaderLines[index]);
             flag = false;
         }
         index++;
         for (bool flag2 = ((item != null) && (index < sHeaderLines.Length)) && IsPrefixedWithWhitespace(sHeaderLines[index]); flag2; flag2 = (index < sHeaderLines.Length) && IsPrefixedWithWhitespace(sHeaderLines[index]))
         {
             FiddlerApplication.Log.LogString("[HTTPWarning] Header folding detected. Not all clients properly handle folded headers.");
             item.Value = item.Value + " " + sHeaderLines[index].TrimStart(new char[] { ' ', '\t' });
             index++;
         }
     }
     return flag;
 }