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

◆ ParseHeaderValueLength()

void System.Net.Http.HPack.HPackDecoder.ParseHeaderValueLength ( ReadOnlySpan< byte > data,
ref int currentIndex,
IHttpHeadersHandler handler )
inlineprivate

Definition at line 142 of file HPackDecoder.cs.

143 {
144 if (currentIndex >= data.Length)
145 {
146 return;
147 }
148 byte b = data[currentIndex++];
150 if (_integerDecoder.BeginTryDecode((byte)(b & 0xFFFFFF7Fu), 7, out var result))
151 {
152 OnStringLength(result, State.HeaderValue);
153 if (result == 0)
154 {
155 OnString(State.Ready);
156 ProcessHeaderValue(data, handler);
157 }
158 else
159 {
160 ParseHeaderValue(data, ref currentIndex, handler);
161 }
162 }
163 else
164 {
165 _state = State.HeaderValueLengthContinue;
166 ParseHeaderValueLengthContinue(data, ref currentIndex, handler);
167 }
168 }
static bool IsHuffmanEncoded(byte b)
void OnStringLength(int length, State nextState)
void ProcessHeaderValue(ReadOnlySpan< byte > data, IHttpHeadersHandler handler)
void ParseHeaderValue(ReadOnlySpan< byte > data, ref int currentIndex, IHttpHeadersHandler handler)
void ParseHeaderValueLengthContinue(ReadOnlySpan< byte > data, ref int currentIndex, IHttpHeadersHandler handler)
bool BeginTryDecode(byte b, int prefixLength, out int result)

References System.Net.Http.HPack.HPackDecoder._huffman, System.Net.Http.HPack.HPackDecoder._integerDecoder, System.Net.Http.HPack.HPackDecoder._state, System.Net.Http.HPack.IntegerDecoder.BeginTryDecode(), System.Net.Http.HPack.HPackDecoder.IsHuffmanEncoded(), System.ReadOnlySpan< T >.Length, System.Net.Http.HPack.HPackDecoder.OnString(), System.Net.Http.HPack.HPackDecoder.OnStringLength(), System.Net.Http.HPack.HPackDecoder.ParseHeaderValue(), System.Net.Http.HPack.HPackDecoder.ParseHeaderValueLengthContinue(), and System.Net.Http.HPack.HPackDecoder.ProcessHeaderValue().

Referenced by System.Net.Http.HPack.HPackDecoder.DecodeInternal(), System.Net.Http.HPack.HPackDecoder.ParseHeaderName(), System.Net.Http.HPack.HPackDecoder.ParseHeaderNameIndex(), and System.Net.Http.HPack.HPackDecoder.ParseLiteralHeaderField().