m
This commit is contained in:
@@ -0,0 +1,513 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.Extensions
|
||||
{
|
||||
// Token: 0x0200206F RID: 8303
|
||||
[Token(Token = "0x200206F")]
|
||||
public static class Extensions
|
||||
{
|
||||
// Token: 0x0600D07C RID: 53372 RVA: 0x002F5E44 File Offset: 0x002F4044
|
||||
[Token(Token = "0x600D07C")]
|
||||
[Address(RVA = "0x2A6E460", Offset = "0x2A6D460", VA = "0x182A6E460")]
|
||||
public static string AsciiToString(this byte[] bytes)
|
||||
{
|
||||
int length;
|
||||
StringBuilder stringBuilder = new StringBuilder(length);
|
||||
length = bytes.Length;
|
||||
int num = 0;
|
||||
int length2 = bytes.Length;
|
||||
if (num < length2)
|
||||
{
|
||||
byte b;
|
||||
StringBuilder stringBuilder2 = stringBuilder.Append((char)b);
|
||||
num++;
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D07D RID: 53373 RVA: 0x002F5E80 File Offset: 0x002F4080
|
||||
[Token(Token = "0x600D07D")]
|
||||
[Address(RVA = "0x2A6E910", Offset = "0x2A6D910", VA = "0x182A6E910")]
|
||||
public static byte[] GetASCIIBytes(this string str)
|
||||
{
|
||||
int stringLength = str.m_stringLength;
|
||||
int num = 0;
|
||||
byte[] array = VariableSizedBufferPool.Get((long)stringLength, num != 0);
|
||||
int num2 = 0;
|
||||
if (num2 < str.m_stringLength)
|
||||
{
|
||||
char c = str[num2];
|
||||
num2++;
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600D07E RID: 53374 RVA: 0x002F5EC0 File Offset: 0x002F40C0
|
||||
[Token(Token = "0x600D07E")]
|
||||
[Address(RVA = "0x2A6F780", Offset = "0x2A6E780", VA = "0x182A6F780")]
|
||||
public static void SendAsASCII(this BinaryWriter stream, string str)
|
||||
{
|
||||
int num = 0;
|
||||
if (num < str.m_stringLength)
|
||||
{
|
||||
char c = str[num];
|
||||
stream.Write(c != '\0');
|
||||
num++;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600D07F RID: 53375 RVA: 0x002F5EF4 File Offset: 0x002F40F4
|
||||
[Token(Token = "0x600D07F")]
|
||||
[Address(RVA = "0x2A6FCD0", Offset = "0x2A6ECD0", VA = "0x182A6FCD0")]
|
||||
public static void WriteLine(this Stream fs)
|
||||
{
|
||||
int num = fs.ReadByte();
|
||||
}
|
||||
|
||||
// Token: 0x0600D080 RID: 53376 RVA: 0x002F5F10 File Offset: 0x002F4110
|
||||
[Token(Token = "0x600D080")]
|
||||
[Address(RVA = "0x2A6FE50", Offset = "0x2A6EE50", VA = "0x182A6FE50")]
|
||||
public static void WriteLine(this Stream fs, string line)
|
||||
{
|
||||
byte[] asciibytes = line.GetASCIIBytes();
|
||||
int num = fs.ReadByte();
|
||||
fs.WriteLine();
|
||||
VariableSizedBufferPool.Release(asciibytes);
|
||||
}
|
||||
|
||||
// Token: 0x0600D081 RID: 53377 RVA: 0x002F5F40 File Offset: 0x002F4140
|
||||
[Token(Token = "0x600D081")]
|
||||
[Address(RVA = "0x2A6FD60", Offset = "0x2A6ED60", VA = "0x182A6FD60")]
|
||||
public static void WriteLine(this Stream fs, string format, params object[] values)
|
||||
{
|
||||
byte[] asciibytes = string.Format(format, values).GetASCIIBytes();
|
||||
int num = fs.ReadByte();
|
||||
fs.WriteLine();
|
||||
VariableSizedBufferPool.Release(asciibytes);
|
||||
}
|
||||
|
||||
// Token: 0x0600D082 RID: 53378 RVA: 0x002F5F74 File Offset: 0x002F4174
|
||||
[Token(Token = "0x600D082")]
|
||||
[Address(RVA = "0x2A6E9F0", Offset = "0x2A6D9F0", VA = "0x182A6E9F0")]
|
||||
public static string GetRequestPathAndQueryURL(this Uri uri)
|
||||
{
|
||||
string parts = uri.GetParts(UriComponents.PathAndQuery, UriFormat.UriEscaped);
|
||||
return "/";
|
||||
}
|
||||
|
||||
// Token: 0x0600D083 RID: 53379 RVA: 0x002F5F98 File Offset: 0x002F4198
|
||||
[Token(Token = "0x600D083")]
|
||||
[Address(RVA = "0x2A6E770", Offset = "0x2A6D770", VA = "0x182A6E770")]
|
||||
public static string[] FindOption(this string str, string option)
|
||||
{
|
||||
string text = str.ToLower();
|
||||
(new char[1])[0] = (char)((uint)44);
|
||||
string text2 = option.ToLower();
|
||||
int num = 0;
|
||||
string[] array;
|
||||
int length = array.Length;
|
||||
if (num < length)
|
||||
{
|
||||
string text3 = array[num];
|
||||
int num2 = 0;
|
||||
if (!text3.Contains(text2))
|
||||
{
|
||||
num++;
|
||||
}
|
||||
string text4 = array[num];
|
||||
return text4.Split(new char[] { (char)((uint)61) }, (StringSplitOptions)num2);
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D084 RID: 53380 RVA: 0x002F601C File Offset: 0x002F421C
|
||||
[Token(Token = "0x600D084")]
|
||||
[Address(RVA = "0x1156660", Offset = "0x1155660", VA = "0x181156660")]
|
||||
public static void WriteArray(this Stream stream, byte[] array)
|
||||
{
|
||||
int num = stream.ReadByte();
|
||||
}
|
||||
|
||||
// Token: 0x0600D085 RID: 53381 RVA: 0x002F6038 File Offset: 0x002F4238
|
||||
[Token(Token = "0x600D085")]
|
||||
[Address(RVA = "0x2A6EA60", Offset = "0x2A6DA60", VA = "0x182A6EA60")]
|
||||
public static bool IsHostIsAnIPAddress(this Uri uri)
|
||||
{
|
||||
int num = 0;
|
||||
if (!(uri == num))
|
||||
{
|
||||
string host = uri.Host;
|
||||
if (!string.IsNullOrEmpty(host))
|
||||
{
|
||||
string text = host.Trim();
|
||||
bool flag;
|
||||
if (flag)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
bool flag2;
|
||||
if (!string.IsNullOrEmpty(uri.Host) && flag2)
|
||||
{
|
||||
bool flag3;
|
||||
return flag3;
|
||||
}
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D086 RID: 53382 RVA: 0x002F6090 File Offset: 0x002F4290
|
||||
[Token(Token = "0x600D086")]
|
||||
[Address(RVA = "0x2A6EC70", Offset = "0x2A6DC70", VA = "0x182A6EC70")]
|
||||
public static bool IsIpV4AddressValid(string address)
|
||||
{
|
||||
if (string.IsNullOrEmpty(address))
|
||||
{
|
||||
}
|
||||
string text = address.Trim();
|
||||
bool flag;
|
||||
return flag;
|
||||
}
|
||||
|
||||
// Token: 0x0600D087 RID: 53383 RVA: 0x002F60B8 File Offset: 0x002F42B8
|
||||
[Token(Token = "0x600D087")]
|
||||
[Address(RVA = "0x2A6ED20", Offset = "0x2A6DD20", VA = "0x182A6ED20")]
|
||||
public static bool IsIpV6AddressValid(string address)
|
||||
{
|
||||
bool flag;
|
||||
if (!string.IsNullOrEmpty(address) && flag)
|
||||
{
|
||||
bool flag2;
|
||||
return flag2;
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D088 RID: 53384 RVA: 0x002F60DC File Offset: 0x002F42DC
|
||||
[Token(Token = "0x600D088")]
|
||||
[Address(RVA = "0x2A6F960", Offset = "0x2A6E960", VA = "0x182A6F960")]
|
||||
public static int ToInt32(this string str, int defaultValue = 0)
|
||||
{
|
||||
if (str != 0)
|
||||
{
|
||||
return int.Parse(str);
|
||||
}
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
// Token: 0x0600D089 RID: 53385 RVA: 0x002F60F8 File Offset: 0x002F42F8
|
||||
[Token(Token = "0x600D089")]
|
||||
[Address(RVA = "0x2A6F9E0", Offset = "0x2A6E9E0", VA = "0x182A6F9E0")]
|
||||
public static long ToInt64(this string str, long defaultValue = 0L)
|
||||
{
|
||||
if (str != 0)
|
||||
{
|
||||
return long.Parse(str);
|
||||
}
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
// Token: 0x0600D08A RID: 53386 RVA: 0x002F6114 File Offset: 0x002F4314
|
||||
[Token(Token = "0x600D08A")]
|
||||
[Address(RVA = "0x2A6F8B0", Offset = "0x2A6E8B0", VA = "0x182A6F8B0")]
|
||||
public static DateTime ToDateTime(this string str, [Optional] DateTime defaultValue)
|
||||
{
|
||||
if (str != 0)
|
||||
{
|
||||
bool flag = DateTime.TryParse(str, defaultValue);
|
||||
DateTime dateTime;
|
||||
return dateTime;
|
||||
}
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
// Token: 0x0600D08B RID: 53387 RVA: 0x002F6130 File Offset: 0x002F4330
|
||||
[Token(Token = "0x600D08B")]
|
||||
[Address(RVA = "0x2A6FA60", Offset = "0x2A6EA60", VA = "0x182A6FA60")]
|
||||
public static string ToStrOrEmpty(this string str)
|
||||
{
|
||||
if (str != 0)
|
||||
{
|
||||
return str;
|
||||
}
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
// Token: 0x0600D08C RID: 53388 RVA: 0x002F6148 File Offset: 0x002F4348
|
||||
[Token(Token = "0x600D08C")]
|
||||
[Address(RVA = "0x2A6E6D0", Offset = "0x2A6D6D0", VA = "0x182A6E6D0")]
|
||||
public static string CalculateMD5Hash(this string input)
|
||||
{
|
||||
byte[] asciibytes = input.GetASCIIBytes();
|
||||
string text = asciibytes.CalculateMD5Hash();
|
||||
VariableSizedBufferPool.Release(asciibytes);
|
||||
return text;
|
||||
}
|
||||
|
||||
// Token: 0x0600D08D RID: 53389 RVA: 0x002F616C File Offset: 0x002F436C
|
||||
[Token(Token = "0x600D08D")]
|
||||
[Address(RVA = "0x2A6E530", Offset = "0x2A6D530", VA = "0x182A6E530")]
|
||||
public static string CalculateMD5Hash(this byte[] input)
|
||||
{
|
||||
int num;
|
||||
do
|
||||
{
|
||||
num = 0;
|
||||
MD5 md = MD5.Create();
|
||||
byte[] array = md.ComputeHash(input);
|
||||
int length;
|
||||
StringBuilder stringBuilder = new StringBuilder(length);
|
||||
length = array.Length;
|
||||
if (num < array.Length)
|
||||
{
|
||||
num += 32;
|
||||
num += array;
|
||||
string text;
|
||||
StringBuilder stringBuilder2 = stringBuilder.Append(text);
|
||||
num++;
|
||||
}
|
||||
VariableSizedBufferPool.Release(array);
|
||||
int hashCode = stringBuilder.GetHashCode();
|
||||
if (md != 0)
|
||||
{
|
||||
}
|
||||
}
|
||||
while (num != 0);
|
||||
throw new IndexOutOfRangeException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D08E RID: 53390 RVA: 0x002F61F4 File Offset: 0x002F43F4
|
||||
[Token(Token = "0x600D08E")]
|
||||
[Address(RVA = "0x2A6F690", Offset = "0x2A6E690", VA = "0x182A6F690")]
|
||||
internal static string Read(this string str, ref int pos, char block, bool needResult = true)
|
||||
{
|
||||
Func<char, bool> func = (char ch) => ch != block;
|
||||
return Extensions.Read(str, ref pos, func, needResult);
|
||||
}
|
||||
|
||||
// Token: 0x0600D08F RID: 53391 RVA: 0x002F622C File Offset: 0x002F442C
|
||||
[Token(Token = "0x600D08F")]
|
||||
[Address(RVA = "0x2A6F580", Offset = "0x2A6E580", VA = "0x182A6F580")]
|
||||
internal static string Read(this string str, ref int pos, Func<char, bool> block, bool needResult = true)
|
||||
{
|
||||
int stringLength = str.m_stringLength;
|
||||
str.SkipWhiteSpace(ref pos);
|
||||
char c;
|
||||
if (block(c) != 0)
|
||||
{
|
||||
}
|
||||
if (needResult)
|
||||
{
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D090 RID: 53392 RVA: 0x002F625C File Offset: 0x002F445C
|
||||
[Token(Token = "0x600D090")]
|
||||
[Address(RVA = "0x2A6F3C0", Offset = "0x2A6E3C0", VA = "0x182A6F3C0")]
|
||||
internal static string ReadPossibleQuotedText(this string str, ref int pos)
|
||||
{
|
||||
string empty = string.Empty;
|
||||
if (str != 0)
|
||||
{
|
||||
Func<char, bool> <>9__21_ = Extensions.<>c.<>9__21_0;
|
||||
if (<>9__21_ == 0)
|
||||
{
|
||||
Extensions.<>c.<>9__21_0 = delegate(char ch)
|
||||
{
|
||||
bool flag;
|
||||
return flag;
|
||||
};
|
||||
}
|
||||
string text = Extensions.Read(str, ref pos, <>9__21_, true);
|
||||
}
|
||||
return empty;
|
||||
}
|
||||
|
||||
// Token: 0x0600D091 RID: 53393 RVA: 0x002F62AC File Offset: 0x002F44AC
|
||||
[Token(Token = "0x600D091")]
|
||||
[Address(RVA = "0x2A6F810", Offset = "0x2A6E810", VA = "0x182A6F810")]
|
||||
internal static void SkipWhiteSpace(this string str, ref int pos)
|
||||
{
|
||||
char c;
|
||||
if (char.IsWhiteSpace(c))
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600D092 RID: 53394 RVA: 0x002F62C8 File Offset: 0x002F44C8
|
||||
[Token(Token = "0x600D092")]
|
||||
[Address(RVA = "0x2A6FAB0", Offset = "0x2A6EAB0", VA = "0x182A6FAB0")]
|
||||
internal static string TrimAndLower(this string str)
|
||||
{
|
||||
if (str != 0)
|
||||
{
|
||||
char[] array = new char[str.m_stringLength];
|
||||
int num = 0;
|
||||
int num2 = 0;
|
||||
if (0 < str.m_stringLength)
|
||||
{
|
||||
char c = str[num2];
|
||||
if (!char.IsWhiteSpace(c) && !char.IsControl(c))
|
||||
{
|
||||
num++;
|
||||
char c2 = char.ToLowerInvariant(c);
|
||||
array[0] = c2;
|
||||
}
|
||||
num2++;
|
||||
}
|
||||
string text;
|
||||
return text;
|
||||
}
|
||||
throw new IndexOutOfRangeException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D093 RID: 53395 RVA: 0x002F6338 File Offset: 0x002F4538
|
||||
[Token(Token = "0x600D093")]
|
||||
[Address(RVA = "0x2A6F1E0", Offset = "0x2A6E1E0", VA = "0x182A6F1E0")]
|
||||
internal static char? Peek(this string str, int pos)
|
||||
{
|
||||
if (pos < str.m_stringLength)
|
||||
{
|
||||
char c = str[pos];
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D094 RID: 53396 RVA: 0x002F6360 File Offset: 0x002F4560
|
||||
[Token(Token = "0x600D094")]
|
||||
[Address(RVA = "0x2A6EDC0", Offset = "0x2A6DDC0", VA = "0x182A6EDC0")]
|
||||
internal static List<HeaderValue> ParseOptionalHeader(this string str)
|
||||
{
|
||||
List<HeaderValue> list = new List();
|
||||
if (str != 0)
|
||||
{
|
||||
int num = 0;
|
||||
if (num < str.m_stringLength)
|
||||
{
|
||||
Func<char, bool> <>9__25_ = Extensions.<>c.<>9__25_0;
|
||||
if (<>9__25_ == 0)
|
||||
{
|
||||
Extensions.<>c.<>9__25_0 = delegate(char ch)
|
||||
{
|
||||
bool flag;
|
||||
return flag;
|
||||
};
|
||||
}
|
||||
string text = Extensions.Read(str, num, <>9__25_, true).TrimAndLower();
|
||||
HeaderValue headerValue = new HeaderValue();
|
||||
headerValue.<Key>k__BackingField = text;
|
||||
char c = str[-1];
|
||||
string text2 = str.ReadPossibleQuotedText(num);
|
||||
headerValue.<Value>k__BackingField = text2;
|
||||
list.Add(headerValue);
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
// Token: 0x0600D095 RID: 53397 RVA: 0x002F63EC File Offset: 0x002F45EC
|
||||
[Token(Token = "0x600D095")]
|
||||
[Address(RVA = "0x2A6EFC0", Offset = "0x2A6DFC0", VA = "0x182A6EFC0")]
|
||||
internal static List<HeaderValue> ParseQualityParams(this string str)
|
||||
{
|
||||
List<HeaderValue> list = new List();
|
||||
if (str != 0)
|
||||
{
|
||||
int num = 0;
|
||||
if (num < str.m_stringLength)
|
||||
{
|
||||
Func<char, bool> <>9__26_ = Extensions.<>c.<>9__26_0;
|
||||
if (<>9__26_ == 0)
|
||||
{
|
||||
Extensions.<>c.<>9__26_0 = delegate(char ch)
|
||||
{
|
||||
bool flag;
|
||||
return flag;
|
||||
};
|
||||
}
|
||||
string text = Extensions.Read(str, num, <>9__26_, true).TrimAndLower();
|
||||
HeaderValue headerValue = new HeaderValue();
|
||||
headerValue.<Key>k__BackingField = text;
|
||||
char c = str[-1];
|
||||
string text2;
|
||||
headerValue.<Value>k__BackingField = text2;
|
||||
list.Add(headerValue);
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
// Token: 0x0600D096 RID: 53398 RVA: 0x002F6470 File Offset: 0x002F4670
|
||||
[Token(Token = "0x600D096")]
|
||||
[Address(RVA = "0x2A6F270", Offset = "0x2A6E270", VA = "0x182A6F270")]
|
||||
public static void ReadBuffer(this Stream stream, byte[] buffer)
|
||||
{
|
||||
int num = 0;
|
||||
int num2 = buffer.Length;
|
||||
num2 -= num;
|
||||
}
|
||||
|
||||
// Token: 0x0600D097 RID: 53399 RVA: 0x002F6490 File Offset: 0x002F4690
|
||||
[Token(Token = "0x600D097")]
|
||||
[Address(RVA = "0x2A6F310", Offset = "0x2A6E310", VA = "0x182A6F310")]
|
||||
public static void ReadBuffer(this Stream stream, byte[] buffer, int length)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600D098 RID: 53400 RVA: 0x002F64A8 File Offset: 0x002F46A8
|
||||
[Token(Token = "0x600D098")]
|
||||
[Address(RVA = "0x2A700E0", Offset = "0x2A6F0E0", VA = "0x182A700E0")]
|
||||
public static void WriteString(this BufferPoolMemoryStream ms, string str)
|
||||
{
|
||||
object obj = Encoding.UTF8.Clone();
|
||||
byte[] bytes = Encoding.UTF8.GetBytes(str);
|
||||
int num = ms.ReadByte();
|
||||
byte[] array;
|
||||
VariableSizedBufferPool.Release(array);
|
||||
}
|
||||
|
||||
// Token: 0x0600D099 RID: 53401 RVA: 0x002F64E8 File Offset: 0x002F46E8
|
||||
[Token(Token = "0x600D099")]
|
||||
[Address(RVA = "0x2A6FC40", Offset = "0x2A6EC40", VA = "0x182A6FC40")]
|
||||
public static void WriteLine(this BufferPoolMemoryStream ms)
|
||||
{
|
||||
byte[] eol = HTTPRequest.EOL;
|
||||
int num = ms.ReadByte();
|
||||
}
|
||||
|
||||
// Token: 0x0600D09A RID: 53402 RVA: 0x002F6508 File Offset: 0x002F4708
|
||||
[Token(Token = "0x600D09A")]
|
||||
[Address(RVA = "0x2A6FF20", Offset = "0x2A6EF20", VA = "0x182A6FF20")]
|
||||
public static void WriteLine(this BufferPoolMemoryStream ms, string str)
|
||||
{
|
||||
object obj = Encoding.UTF8.Clone();
|
||||
byte[] bytes = Encoding.UTF8.GetBytes(str);
|
||||
int num = ms.ReadByte();
|
||||
byte[] array;
|
||||
VariableSizedBufferPool.Release(array);
|
||||
byte[] eol = HTTPRequest.EOL;
|
||||
int num2 = ms.ReadByte();
|
||||
}
|
||||
|
||||
// Token: 0x0600D09B RID: 53403 RVA: 0x002F6554 File Offset: 0x002F4754
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600D09B")]
|
||||
[Address(RVA = "0x2A70200", Offset = "0x2A6F200", VA = "0x182A70200")]
|
||||
static Extensions()
|
||||
{
|
||||
Regex regex = new Regex("\\b(?:\\d{1,3}\\.){3}\\d{1,3}\\b", RegexOptions.IgnoreCase);
|
||||
}
|
||||
|
||||
// Token: 0x04008418 RID: 33816
|
||||
[Token(Token = "0x4008418")]
|
||||
private static readonly Regex validIpV4AddressRegex;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user