Esempio n. 1
0
        internal static string NormalizeString(byte[] value, int offset, int length, bool allowUTF8)
        {
            if (length >= 2 && length <= 32)
            {
                int num  = MimeData.HashValue(value, offset, length);
                int num2 = MimeData.valueHashTable[num];
                if (num2 > 0)
                {
                    string value2;
                    for (;;)
                    {
                        value2 = MimeData.values[num2].value;
                        if (ByteString.EqualsI(value2, value, offset, length, allowUTF8))
                        {
                            break;
                        }
                        num2++;
                        if ((int)MimeData.values[num2].hash != num)
                        {
                            goto IL_54;
                        }
                    }
                    return(value2);
                }
            }
IL_54:
            return(ByteString.BytesToString(value, offset, length, allowUTF8).ToLowerInvariant());
        }
Esempio n. 2
0
        internal static string NormalizeString(string value, int offset, int length)
        {
            if (length >= 2 && length <= 32)
            {
                int num  = MimeData.HashValue(value, offset, length);
                int num2 = MimeData.valueHashTable[num];
                if (num2 > 0)
                {
                    string value2;
                    for (;;)
                    {
                        value2 = MimeData.values[num2].value;
                        if (length == value2.Length && string.Compare(value2, 0, value, offset, length, StringComparison.OrdinalIgnoreCase) == 0)
                        {
                            break;
                        }
                        num2++;
                        if ((int)MimeData.values[num2].hash != num)
                        {
                            goto IL_5E;
                        }
                    }
                    return(value2);
                }
            }
IL_5E:
            return(value.Substring(offset, length).ToLowerInvariant());
        }
Esempio n. 3
0
        internal static string NormalizeString(string value)
        {
            if (value.Length >= 2 && value.Length <= 32)
            {
                int num  = MimeData.HashValue(value);
                int num2 = MimeData.valueHashTable[num];
                if (num2 > 0)
                {
                    string value2;
                    for (;;)
                    {
                        value2 = MimeData.values[num2].value;
                        if (value.Length == value2.Length && value.Equals(value2, StringComparison.OrdinalIgnoreCase))
                        {
                            break;
                        }
                        num2++;
                        if ((int)MimeData.values[num2].hash != num)
                        {
                            goto IL_68;
                        }
                    }
                    return(value2);
                }
            }
IL_68:
            return(value.ToLowerInvariant());
        }
Esempio n. 4
0
 internal static HeaderNameIndex LookupName(byte[] nameBuffer, int offset, int length)
 {
     if (length >= 2 && length <= 31)
     {
         int num  = MimeData.HashName(nameBuffer, offset, length);
         int num2 = (int)MimeData.nameHashTable[num];
         if (num2 > 0)
         {
             for (;;)
             {
                 string str = MimeData.headerNames[num2].name;
                 if (ByteString.EqualsI(str, nameBuffer, offset, length, false))
                 {
                     break;
                 }
                 num2++;
                 if ((int)MimeData.headerNames[num2].hash != num)
                 {
                     return(HeaderNameIndex.Unknown);
                 }
             }
             return((HeaderNameIndex)num2);
         }
     }
     return(HeaderNameIndex.Unknown);
 }
Esempio n. 5
0
 internal static HeaderNameIndex LookupName(string name)
 {
     if (name.Length >= 2 && name.Length <= 31)
     {
         int num  = MimeData.HashName(name);
         int num2 = (int)MimeData.nameHashTable[num];
         if (num2 > 0)
         {
             for (;;)
             {
                 string text = MimeData.headerNames[num2].name;
                 if (name.Length == text.Length && name.Equals(text, StringComparison.OrdinalIgnoreCase))
                 {
                     break;
                 }
                 num2++;
                 if ((int)MimeData.headerNames[num2].hash != num)
                 {
                     return(HeaderNameIndex.Unknown);
                 }
             }
             return((HeaderNameIndex)num2);
         }
     }
     return(HeaderNameIndex.Unknown);
 }
Esempio n. 6
0
        // Token: 0x060001DF RID: 479 RVA: 0x00008718 File Offset: 0x00006918
        private static string ComposeContentTypeValue(string type, string subType)
        {
            int num = type.Length + 1 + subType.Length;

            if (num >= 2 && num <= 32)
            {
                int num2 = 0;
                num2 = MimeData.HashValueAdd(num2, type);
                num2 = MimeData.HashValueAdd(num2, "/");
                num2 = MimeData.HashValueAdd(num2, subType);
                num2 = MimeData.HashValueFinish(num2);
                int num3 = MimeData.valueHashTable[num2];
                if (num3 > 0)
                {
                    string text;
                    for (;;)
                    {
                        text = MimeData.values[num3].value;
                        if (text.Length == num && text.StartsWith(type, StringComparison.OrdinalIgnoreCase) && text[type.Length] == '/' && text.EndsWith(subType, StringComparison.OrdinalIgnoreCase))
                        {
                            break;
                        }
                        num3++;
                        if ((int)MimeData.values[num3].hash != num2)
                        {
                            goto IL_A7;
                        }
                    }
                    return(text);
                }
            }
IL_A7:
            return(type + "/" + subType);
        }