Files
niko 8fc35183db a
2026-04-11 22:19:20 +02:00

514 lines
15 KiB
C#

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: 0x02001F8F RID: 8079
[Token(Token = "0x2001F8F")]
public static class Extensions
{
// Token: 0x0600CCAE RID: 52398 RVA: 0x002ED6EC File Offset: 0x002EB8EC
[Token(Token = "0x600CCAE")]
[Address(RVA = "0x1712840", Offset = "0x1711640", VA = "0x181712840")]
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: 0x0600CCAF RID: 52399 RVA: 0x002ED728 File Offset: 0x002EB928
[Token(Token = "0x600CCAF")]
[Address(RVA = "0x1712CF0", Offset = "0x1711AF0", VA = "0x181712CF0")]
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: 0x0600CCB0 RID: 52400 RVA: 0x002ED768 File Offset: 0x002EB968
[Token(Token = "0x600CCB0")]
[Address(RVA = "0x1713B60", Offset = "0x1712960", VA = "0x181713B60")]
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: 0x0600CCB1 RID: 52401 RVA: 0x002ED79C File Offset: 0x002EB99C
[Token(Token = "0x600CCB1")]
[Address(RVA = "0x17140B0", Offset = "0x1712EB0", VA = "0x1817140B0")]
public static void WriteLine(this Stream fs)
{
int num = fs.ReadByte();
}
// Token: 0x0600CCB2 RID: 52402 RVA: 0x002ED7B8 File Offset: 0x002EB9B8
[Token(Token = "0x600CCB2")]
[Address(RVA = "0x1714230", Offset = "0x1713030", VA = "0x181714230")]
public static void WriteLine(this Stream fs, string line)
{
byte[] asciibytes = line.GetASCIIBytes();
int num = fs.ReadByte();
fs.WriteLine();
VariableSizedBufferPool.Release(asciibytes);
}
// Token: 0x0600CCB3 RID: 52403 RVA: 0x002ED7E8 File Offset: 0x002EB9E8
[Token(Token = "0x600CCB3")]
[Address(RVA = "0x1714140", Offset = "0x1712F40", VA = "0x181714140")]
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: 0x0600CCB4 RID: 52404 RVA: 0x002ED81C File Offset: 0x002EBA1C
[Token(Token = "0x600CCB4")]
[Address(RVA = "0x1712DD0", Offset = "0x1711BD0", VA = "0x181712DD0")]
public static string GetRequestPathAndQueryURL(this Uri uri)
{
string parts = uri.GetParts(UriComponents.PathAndQuery, UriFormat.UriEscaped);
return "/";
}
// Token: 0x0600CCB5 RID: 52405 RVA: 0x002ED840 File Offset: 0x002EBA40
[Token(Token = "0x600CCB5")]
[Address(RVA = "0x1712B50", Offset = "0x1711950", VA = "0x181712B50")]
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: 0x0600CCB6 RID: 52406 RVA: 0x002ED8C4 File Offset: 0x002EBAC4
[Token(Token = "0x600CCB6")]
[Address(RVA = "0x6D84B0", Offset = "0x6D72B0", VA = "0x1806D84B0")]
public static void WriteArray(this Stream stream, byte[] array)
{
int num = stream.ReadByte();
}
// Token: 0x0600CCB7 RID: 52407 RVA: 0x002ED8E0 File Offset: 0x002EBAE0
[Token(Token = "0x600CCB7")]
[Address(RVA = "0x1712E40", Offset = "0x1711C40", VA = "0x181712E40")]
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: 0x0600CCB8 RID: 52408 RVA: 0x002ED938 File Offset: 0x002EBB38
[Token(Token = "0x600CCB8")]
[Address(RVA = "0x1713050", Offset = "0x1711E50", VA = "0x181713050")]
public static bool IsIpV4AddressValid(string address)
{
if (string.IsNullOrEmpty(address))
{
}
string text = address.Trim();
bool flag;
return flag;
}
// Token: 0x0600CCB9 RID: 52409 RVA: 0x002ED960 File Offset: 0x002EBB60
[Token(Token = "0x600CCB9")]
[Address(RVA = "0x1713100", Offset = "0x1711F00", VA = "0x181713100")]
public static bool IsIpV6AddressValid(string address)
{
bool flag;
if (!string.IsNullOrEmpty(address) && flag)
{
bool flag2;
return flag2;
}
throw new NullReferenceException();
}
// Token: 0x0600CCBA RID: 52410 RVA: 0x002ED984 File Offset: 0x002EBB84
[Token(Token = "0x600CCBA")]
[Address(RVA = "0x1713D40", Offset = "0x1712B40", VA = "0x181713D40")]
public static int ToInt32(this string str, int defaultValue = 0)
{
if (str != 0)
{
return int.Parse(str);
}
return defaultValue;
}
// Token: 0x0600CCBB RID: 52411 RVA: 0x002ED9A0 File Offset: 0x002EBBA0
[Token(Token = "0x600CCBB")]
[Address(RVA = "0x1713DC0", Offset = "0x1712BC0", VA = "0x181713DC0")]
public static long ToInt64(this string str, long defaultValue = 0L)
{
if (str != 0)
{
return long.Parse(str);
}
return defaultValue;
}
// Token: 0x0600CCBC RID: 52412 RVA: 0x002ED9BC File Offset: 0x002EBBBC
[Token(Token = "0x600CCBC")]
[Address(RVA = "0x1713C90", Offset = "0x1712A90", VA = "0x181713C90")]
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: 0x0600CCBD RID: 52413 RVA: 0x002ED9D8 File Offset: 0x002EBBD8
[Token(Token = "0x600CCBD")]
[Address(RVA = "0x1713E40", Offset = "0x1712C40", VA = "0x181713E40")]
public static string ToStrOrEmpty(this string str)
{
if (str != 0)
{
return str;
}
return string.Empty;
}
// Token: 0x0600CCBE RID: 52414 RVA: 0x002ED9F0 File Offset: 0x002EBBF0
[Token(Token = "0x600CCBE")]
[Address(RVA = "0x1712AB0", Offset = "0x17118B0", VA = "0x181712AB0")]
public static string CalculateMD5Hash(this string input)
{
byte[] asciibytes = input.GetASCIIBytes();
string text = asciibytes.CalculateMD5Hash();
VariableSizedBufferPool.Release(asciibytes);
return text;
}
// Token: 0x0600CCBF RID: 52415 RVA: 0x002EDA14 File Offset: 0x002EBC14
[Token(Token = "0x600CCBF")]
[Address(RVA = "0x1712910", Offset = "0x1711710", VA = "0x181712910")]
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: 0x0600CCC0 RID: 52416 RVA: 0x002EDA9C File Offset: 0x002EBC9C
[Token(Token = "0x600CCC0")]
[Address(RVA = "0x1713A70", Offset = "0x1712870", VA = "0x181713A70")]
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: 0x0600CCC1 RID: 52417 RVA: 0x002EDAD4 File Offset: 0x002EBCD4
[Token(Token = "0x600CCC1")]
[Address(RVA = "0x1713960", Offset = "0x1712760", VA = "0x181713960")]
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: 0x0600CCC2 RID: 52418 RVA: 0x002EDB04 File Offset: 0x002EBD04
[Token(Token = "0x600CCC2")]
[Address(RVA = "0x17137A0", Offset = "0x17125A0", VA = "0x1817137A0")]
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: 0x0600CCC3 RID: 52419 RVA: 0x002EDB54 File Offset: 0x002EBD54
[Token(Token = "0x600CCC3")]
[Address(RVA = "0x1713BF0", Offset = "0x17129F0", VA = "0x181713BF0")]
internal static void SkipWhiteSpace(this string str, ref int pos)
{
char c;
if (char.IsWhiteSpace(c))
{
}
}
// Token: 0x0600CCC4 RID: 52420 RVA: 0x002EDB70 File Offset: 0x002EBD70
[Token(Token = "0x600CCC4")]
[Address(RVA = "0x1713E90", Offset = "0x1712C90", VA = "0x181713E90")]
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: 0x0600CCC5 RID: 52421 RVA: 0x002EDBE0 File Offset: 0x002EBDE0
[Token(Token = "0x600CCC5")]
[Address(RVA = "0x17135C0", Offset = "0x17123C0", VA = "0x1817135C0")]
internal static char? Peek(this string str, int pos)
{
if (pos < str.m_stringLength)
{
char c = str[pos];
}
throw new NullReferenceException();
}
// Token: 0x0600CCC6 RID: 52422 RVA: 0x002EDC08 File Offset: 0x002EBE08
[Token(Token = "0x600CCC6")]
[Address(RVA = "0x17131A0", Offset = "0x1711FA0", VA = "0x1817131A0")]
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: 0x0600CCC7 RID: 52423 RVA: 0x002EDC94 File Offset: 0x002EBE94
[Token(Token = "0x600CCC7")]
[Address(RVA = "0x17133A0", Offset = "0x17121A0", VA = "0x1817133A0")]
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: 0x0600CCC8 RID: 52424 RVA: 0x002EDD18 File Offset: 0x002EBF18
[Token(Token = "0x600CCC8")]
[Address(RVA = "0x1713650", Offset = "0x1712450", VA = "0x181713650")]
public static void ReadBuffer(this Stream stream, byte[] buffer)
{
int num = 0;
int num2 = buffer.Length;
num2 -= num;
}
// Token: 0x0600CCC9 RID: 52425 RVA: 0x002EDD38 File Offset: 0x002EBF38
[Token(Token = "0x600CCC9")]
[Address(RVA = "0x17136F0", Offset = "0x17124F0", VA = "0x1817136F0")]
public static void ReadBuffer(this Stream stream, byte[] buffer, int length)
{
}
// Token: 0x0600CCCA RID: 52426 RVA: 0x002EDD50 File Offset: 0x002EBF50
[Token(Token = "0x600CCCA")]
[Address(RVA = "0x17144C0", Offset = "0x17132C0", VA = "0x1817144C0")]
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: 0x0600CCCB RID: 52427 RVA: 0x002EDD90 File Offset: 0x002EBF90
[Token(Token = "0x600CCCB")]
[Address(RVA = "0x1714020", Offset = "0x1712E20", VA = "0x181714020")]
public static void WriteLine(this BufferPoolMemoryStream ms)
{
byte[] eol = HTTPRequest.EOL;
int num = ms.ReadByte();
}
// Token: 0x0600CCCC RID: 52428 RVA: 0x002EDDB0 File Offset: 0x002EBFB0
[Token(Token = "0x600CCCC")]
[Address(RVA = "0x1714300", Offset = "0x1713100", VA = "0x181714300")]
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: 0x0600CCCD RID: 52429 RVA: 0x002EDDFC File Offset: 0x002EBFFC
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600CCCD")]
[Address(RVA = "0x17145E0", Offset = "0x17133E0", VA = "0x1817145E0")]
static Extensions()
{
Regex regex = new Regex("\\b(?:\\d{1,3}\\.){3}\\d{1,3}\\b", RegexOptions.IgnoreCase);
}
// Token: 0x0400825F RID: 33375
[Token(Token = "0x400825F")]
private static readonly Regex validIpV4AddressRegex;
}
}