Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Get()

Cookie System.Net.CookieParser.Get ( )
inlinepackage

Definition at line 53 of file CookieParser.cs.

54 {
55 Cookie cookie = null;
56 bool flag = false;
57 bool flag2 = false;
58 bool flag3 = false;
59 bool flag4 = false;
60 bool flag5 = false;
61 bool flag6 = false;
62 bool flag7 = false;
63 bool flag8 = false;
64 bool flag9 = false;
65 do
66 {
67 CookieToken cookieToken = _tokenizer.Next(cookie == null, parseResponseCookies: true);
68 if (cookie == null && (cookieToken == CookieToken.NameValuePair || cookieToken == CookieToken.Attribute))
69 {
70 cookie = new Cookie();
72 cookie.Value = _tokenizer.Value;
73 continue;
74 }
75 switch (cookieToken)
76 {
77 case CookieToken.NameValuePair:
78 switch (_tokenizer.Token)
79 {
80 case CookieToken.Comment:
81 if (!flag)
82 {
83 flag = true;
84 cookie.Comment = _tokenizer.Value;
85 }
86 break;
87 case CookieToken.CommentUrl:
88 if (!flag2)
89 {
90 flag2 = true;
91 if (Uri.TryCreate(CheckQuoted(_tokenizer.Value), UriKind.Absolute, out Uri result3))
92 {
93 cookie.CommentUri = result3;
94 }
95 }
96 break;
97 case CookieToken.Domain:
98 if (!flag3)
99 {
100 flag3 = true;
101 cookie.Domain = CheckQuoted(_tokenizer.Value);
102 IsQuotedDomainField.SetValue(cookie, _tokenizer.Quoted);
103 }
104 break;
105 case CookieToken.Expires:
106 if (!flag4)
107 {
108 flag4 = true;
109 if (DateTime.TryParse(CheckQuoted(_tokenizer.Value), CultureInfo.InvariantCulture, DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AdjustToUniversal, out var result4))
110 {
111 cookie.Expires = result4;
112 }
113 else
114 {
115 InternalSetNameMethod(cookie, string.Empty);
116 }
117 }
118 break;
119 case CookieToken.MaxAge:
120 if (!flag4)
121 {
122 flag4 = true;
123 if (int.TryParse(CheckQuoted(_tokenizer.Value), out var result2))
124 {
125 cookie.Expires = DateTime.Now.AddSeconds(result2);
126 }
127 else
128 {
129 InternalSetNameMethod(cookie, string.Empty);
130 }
131 }
132 break;
133 case CookieToken.Path:
134 if (!flag5)
135 {
136 flag5 = true;
137 cookie.Path = _tokenizer.Value;
138 }
139 break;
140 case CookieToken.Port:
141 if (!flag6)
142 {
143 flag6 = true;
144 try
145 {
146 cookie.Port = _tokenizer.Value;
147 }
148 catch
149 {
150 InternalSetNameMethod(cookie, string.Empty);
151 }
152 }
153 break;
154 case CookieToken.Version:
155 if (!flag7)
156 {
157 flag7 = true;
158 if (int.TryParse(CheckQuoted(_tokenizer.Value), out var result))
159 {
160 cookie.Version = result;
161 IsQuotedVersionField.SetValue(cookie, _tokenizer.Quoted);
162 }
163 else
164 {
165 InternalSetNameMethod(cookie, string.Empty);
166 }
167 }
168 break;
169 }
170 break;
171 case CookieToken.Attribute:
172 switch (_tokenizer.Token)
173 {
174 case CookieToken.Discard:
175 if (!flag9)
176 {
177 flag9 = true;
178 cookie.Discard = true;
179 }
180 break;
181 case CookieToken.Secure:
182 if (!flag8)
183 {
184 flag8 = true;
185 cookie.Secure = true;
186 }
187 break;
188 case CookieToken.HttpOnly:
189 cookie.HttpOnly = true;
190 break;
191 case CookieToken.Port:
192 if (!flag6)
193 {
194 flag6 = true;
195 cookie.Port = string.Empty;
196 }
197 break;
198 }
199 break;
200 }
201 }
202 while (!_tokenizer.Eof && !_tokenizer.EndOfCookie);
203 return cookie;
204 }
static CultureInfo InvariantCulture
UriKind
Definition UriKind.cs:4
System.Net.CookieTokenizer _tokenizer
static FieldInfo IsQuotedDomainField
static string CheckQuoted(string value)
static FieldInfo IsQuotedVersionField
static Func< Cookie, string, bool > InternalSetNameMethod

References System.Net.CookieParser._tokenizer, System.Net.CookieParser.CheckQuoted(), System.Net.Cookie, System.Net.CookieParser.InternalSetNameMethod, System.Globalization.CultureInfo.InvariantCulture, System.Net.CookieParser.IsQuotedDomainField, System.Net.CookieParser.IsQuotedVersionField, System.DateTime.Now, System.Uri.TryCreate(), and System.DateTime.TryParse().