Files
niko c12fbe3fc6 m
2026-04-12 16:51:38 +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: 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;
}
}