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

◆ TryReadPercentEncodedAlpnProtocolName()

static bool System.Net.Http.Headers.AltSvcHeaderParser.TryReadPercentEncodedAlpnProtocolName ( string value,
int startIndex,
[NotNullWhen(true)] out string result,
out int readLength )
inlinestaticprivate

Definition at line 140 of file AltSvcHeaderParser.cs.

141 {
142 int tokenLength = HttpRuleParser.GetTokenLength(value, startIndex);
143 if (tokenLength == 0)
144 {
145 result = null;
146 readLength = 0;
147 return false;
148 }
149 ReadOnlySpan<char> readOnlySpan = value.AsSpan(startIndex, tokenLength);
150 readLength = tokenLength;
151 switch (readOnlySpan.Length)
152 {
153 case 2:
154 if (readOnlySpan[0] == 'h')
155 {
156 switch (readOnlySpan[1])
157 {
158 case '3':
159 result = "h3";
160 return true;
161 case '2':
162 result = "h2";
163 return true;
164 }
165 }
166 break;
167 case 3:
168 if (readOnlySpan[0] == 'h' && readOnlySpan[1] == '2' && readOnlySpan[2] == 'c')
169 {
170 result = "h2c";
171 readLength = 3;
172 return true;
173 }
174 break;
175 case 5:
176 if (readOnlySpan.SequenceEqual("clear"))
177 {
178 result = "clear";
179 return true;
180 }
181 break;
182 case 10:
183 if (readOnlySpan.StartsWith("http%2F1."))
184 {
185 switch (readOnlySpan[9])
186 {
187 case '1':
188 result = "http/1.1";
189 return true;
190 case '0':
191 result = "http/1.0";
192 return true;
193 }
194 }
195 break;
196 }
197 return TryReadUnknownPercentEncodedAlpnProtocolName(readOnlySpan, out result);
198 }
static bool TryReadUnknownPercentEncodedAlpnProtocolName(ReadOnlySpan< char > value, [NotNullWhen(true)] out string result)

References System.Net.Http.HttpRuleParser.GetTokenLength(), System.ReadOnlySpan< T >.Length, System.startIndex, System.Net.Http.Headers.AltSvcHeaderParser.TryReadUnknownPercentEncodedAlpnProtocolName(), and System.value.

Referenced by System.Net.Http.Headers.AltSvcHeaderParser.GetParsedValueLength().