Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
CookieExtensions.cs
Go to the documentation of this file.
2
3namespace System.Net;
4
5internal static class CookieExtensions
6{
7 private enum CookieVariant
8 {
9 Unknown = 0,
10 Plain = 1,
11 Rfc2109 = 2,
12 Rfc2965 = 3,
13 Default = 2
14 }
15
16 private static Func<Cookie, string> s_toServerStringFunc;
17
18 private static Func<Cookie, Cookie> s_cloneFunc;
19
20 private static Func<Cookie, CookieVariant> s_getVariantFunc;
21
22 public static string ToServerString(this Cookie cookie)
23 {
24 if (s_toServerStringFunc == null)
25 {
26 s_toServerStringFunc = (Func<Cookie, string>)typeof(Cookie).GetMethod("ToServerString", BindingFlags.Instance | BindingFlags.NonPublic).CreateDelegate(typeof(Func<Cookie, string>));
27 }
28 return s_toServerStringFunc(cookie);
29 }
30
31 public static Cookie Clone(this Cookie cookie)
32 {
33 if (s_cloneFunc == null)
34 {
35 s_cloneFunc = (Func<Cookie, Cookie>)typeof(Cookie).GetMethod("Clone", BindingFlags.Instance | BindingFlags.NonPublic).CreateDelegate(typeof(Func<Cookie, Cookie>));
36 }
37 return s_cloneFunc(cookie);
38 }
39
40 public static bool IsRfc2965Variant(this Cookie cookie)
41 {
42 if (s_getVariantFunc == null)
43 {
44 s_getVariantFunc = (Func<Cookie, CookieVariant>)typeof(Cookie).GetProperty("Variant", BindingFlags.Instance | BindingFlags.NonPublic).GetGetMethod(nonPublic: true).CreateDelegate(typeof(Func<Cookie, CookieVariant>));
45 }
46 return s_getVariantFunc(cookie) == CookieVariant.Rfc2965;
47 }
48}
static Func< Cookie, CookieVariant > s_getVariantFunc
static Cookie Clone(this Cookie cookie)
static bool IsRfc2965Variant(this Cookie cookie)
static Func< Cookie, string > s_toServerStringFunc
static string ToServerString(this Cookie cookie)
static Func< Cookie, Cookie > s_cloneFunc