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

◆ ReadNextResponseHeaderLineAsync()

async ValueTask< ReadOnlyMemory< byte > > System.Net.Http.HttpConnection.ReadNextResponseHeaderLineAsync ( bool async,
bool foldedHeadersAllowed = false )
inlineprivate

Definition at line 2202 of file HttpConnection.cs.

2203 {
2204 int previouslyScannedBytes = 0;
2205 int num;
2206 int num2;
2207 int readOffset;
2208 int num3;
2209 while (true)
2210 {
2212 num2 = Array.IndexOf(_readBuffer, (byte)10, num, _readLength - num);
2213 if (num2 >= 0)
2214 {
2216 num3 = num2 - readOffset;
2217 if (num2 > 0 && _readBuffer[num2 - 1] == 13)
2218 {
2219 num3--;
2220 }
2221 if (!foldedHeadersAllowed || num3 <= 0)
2222 {
2223 break;
2224 }
2225 if (num2 + 1 == _readLength)
2226 {
2227 int num4 = ((_readBuffer[num2 - 1] == 13) ? (num2 - 2) : (num2 - 1));
2229 _allowedReadLineBytes -= num4 - num;
2232 continue;
2233 }
2234 char c = (char)_readBuffer[num2 + 1];
2235 if (c != ' ' && c != '\t')
2236 {
2237 break;
2238 }
2239 if (Array.IndexOf(_readBuffer, (byte)58, _readOffset, num2 - _readOffset) == -1)
2240 {
2241 throw new HttpRequestException(System.SR.net_http_invalid_response_header_folder);
2242 }
2243 _readBuffer[num2] = 32;
2244 if (_readBuffer[num2 - 1] == 13)
2245 {
2246 _readBuffer[num2 - 1] = 32;
2247 }
2249 _allowedReadLineBytes -= num2 + 1 - num;
2251 }
2252 else
2253 {
2258 }
2259 }
2260 _allowedReadLineBytes -= num2 + 1 - num;
2262 _readOffset = num2 + 1;
2264 }
async ValueTask FillAsync(bool async)
static string net_http_invalid_response_header_folder
Definition SR.cs:114
Definition SR.cs:7

References System.Net.Http.HttpConnection._allowedReadLineBytes, System.Net.Http.HttpConnection._readBuffer, System.Net.Http.HttpConnection._readLength, System.Net.Http.HttpConnection._readOffset, System.Net.Http.HttpConnection.FillAsync(), System.Array.IndexOf(), System.SR.net_http_invalid_response_header_folder, and System.Net.Http.HttpConnection.ThrowIfExceededAllowedReadLineBytes().

Referenced by System.Net.Http.HttpConnection.SendAsyncCore().