1 #include <stdlib.h>
2 #include <stdint.h>
3 #include <string.h>
4
5 #ifdef __SSE4_2__
6 #ifdef _MSC_VER
7 #include <nmmintrin.h>
8 #else /* !_MSC_VER */
9 #include <x86intrin.h>
10 #endif /* _MSC_VER */
11 #endif /* __SSE4_2__ */
12
13 #ifdef _MSC_VER
14 #define ALIGN(n) _declspec(align(n))
15 #else /* !_MSC_VER */
16 #define ALIGN(n) __attribute__((aligned(n)))
17 #endif /* _MSC_VER */
18
19 #include "llhttp.h"
20
21 typedef int (*llhttp__internal__span_cb)(
22 llhttp__internal_t*, const char*, const char*);
23
24 static const unsigned char llparse_blob0[] = {
25 'o', 'n'
26 };
27 static const unsigned char llparse_blob1[] = {
28 'e', 'c', 't', 'i', 'o', 'n'
29 };
30 static const unsigned char llparse_blob2[] = {
31 'l', 'o', 's', 'e'
32 };
33 static const unsigned char llparse_blob3[] = {
34 'e', 'e', 'p', '-', 'a', 'l', 'i', 'v', 'e'
35 };
36 static const unsigned char llparse_blob4[] = {
37 'p', 'g', 'r', 'a', 'd', 'e'
38 };
39 static const unsigned char llparse_blob5[] = {
40 'c', 'h', 'u', 'n', 'k', 'e', 'd'
41 };
42 #ifdef __SSE4_2__
43 static const unsigned char ALIGN(16) llparse_blob6[] = {
44 0x9, 0x9, ' ', '~', 0x80, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0,
45 0x0, 0x0, 0x0, 0x0, 0x0
46 };
47 #endif /* __SSE4_2__ */
48 #ifdef __SSE4_2__
49 static const unsigned char ALIGN(16) llparse_blob7[] = {
50 '!', '!', '#', '\'', '*', '+', '-', '.', '0', '9', 'A',
51 'Z', '^', 'z', '|', '|'
52 };
53 #endif /* __SSE4_2__ */
54 #ifdef __SSE4_2__
55 static const unsigned char ALIGN(16) llparse_blob8[] = {
56 '~', '~', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
57 0x0, 0x0, 0x0, 0x0, 0x0
58 };
59 #endif /* __SSE4_2__ */
60 static const unsigned char llparse_blob9[] = {
61 'e', 'n', 't', '-', 'l', 'e', 'n', 'g', 't', 'h'
62 };
63 static const unsigned char llparse_blob10[] = {
64 'r', 'o', 'x', 'y', '-', 'c', 'o', 'n', 'n', 'e', 'c',
65 't', 'i', 'o', 'n'
66 };
67 static const unsigned char llparse_blob11[] = {
68 'r', 'a', 'n', 's', 'f', 'e', 'r', '-', 'e', 'n', 'c',
69 'o', 'd', 'i', 'n', 'g'
70 };
71 static const unsigned char llparse_blob12[] = {
72 'p', 'g', 'r', 'a', 'd', 'e'
73 };
74 static const unsigned char llparse_blob13[] = {
75 'T', 'T', 'P', '/'
76 };
77 static const unsigned char llparse_blob14[] = {
78 0xd, 0xa, 0xd, 0xa, 'S', 'M', 0xd, 0xa, 0xd, 0xa
79 };
80 static const unsigned char llparse_blob15[] = {
81 'C', 'E', '/'
82 };
83 static const unsigned char llparse_blob16[] = {
84 'T', 'S', 'P', '/'
85 };
86 static const unsigned char llparse_blob17[] = {
87 'N', 'O', 'U', 'N', 'C', 'E'
88 };
89 static const unsigned char llparse_blob18[] = {
90 'I', 'N', 'D'
91 };
92 static const unsigned char llparse_blob19[] = {
93 'E', 'C', 'K', 'O', 'U', 'T'
94 };
95 static const unsigned char llparse_blob20[] = {
96 'N', 'E', 'C', 'T'
97 };
98 static const unsigned char llparse_blob21[] = {
99 'E', 'T', 'E'
100 };
101 static const unsigned char llparse_blob22[] = {
102 'C', 'R', 'I', 'B', 'E'
103 };
104 static const unsigned char llparse_blob23[] = {
105 'L', 'U', 'S', 'H'
106 };
107 static const unsigned char llparse_blob24[] = {
108 'E', 'T'
109 };
110 static const unsigned char llparse_blob25[] = {
111 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R'
112 };
113 static const unsigned char llparse_blob26[] = {
114 'E', 'A', 'D'
115 };
116 static const unsigned char llparse_blob27[] = {
117 'N', 'K'
118 };
119 static const unsigned char llparse_blob28[] = {
120 'C', 'K'
121 };
122 static const unsigned char llparse_blob29[] = {
123 'S', 'E', 'A', 'R', 'C', 'H'
124 };
125 static const unsigned char llparse_blob30[] = {
126 'R', 'G', 'E'
127 };
128 static const unsigned char llparse_blob31[] = {
129 'C', 'T', 'I', 'V', 'I', 'T', 'Y'
130 };
131 static const unsigned char llparse_blob32[] = {
132 'L', 'E', 'N', 'D', 'A', 'R'
133 };
134 static const unsigned char llparse_blob33[] = {
135 'V', 'E'
136 };
137 static const unsigned char llparse_blob34[] = {
138 'O', 'T', 'I', 'F', 'Y'
139 };
140 static const unsigned char llparse_blob35[] = {
141 'P', 'T', 'I', 'O', 'N', 'S'
142 };
143 static const unsigned char llparse_blob36[] = {
144 'C', 'H'
145 };
146 static const unsigned char llparse_blob37[] = {
147 'S', 'E'
148 };
149 static const unsigned char llparse_blob38[] = {
150 'A', 'Y'
151 };
152 static const unsigned char llparse_blob39[] = {
153 'S', 'T'
154 };
155 static const unsigned char llparse_blob40[] = {
156 'I', 'N', 'D'
157 };
158 static const unsigned char llparse_blob41[] = {
159 'A', 'T', 'C', 'H'
160 };
161 static const unsigned char llparse_blob42[] = {
162 'G', 'E'
163 };
164 static const unsigned char llparse_blob43[] = {
165 'U', 'E', 'R', 'Y'
166 };
167 static const unsigned char llparse_blob44[] = {
168 'I', 'N', 'D'
169 };
170 static const unsigned char llparse_blob45[] = {
171 'O', 'R', 'D'
172 };
173 static const unsigned char llparse_blob46[] = {
174 'I', 'R', 'E', 'C', 'T'
175 };
176 static const unsigned char llparse_blob47[] = {
177 'O', 'R', 'T'
178 };
179 static const unsigned char llparse_blob48[] = {
180 'R', 'C', 'H'
181 };
182 static const unsigned char llparse_blob49[] = {
183 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R'
184 };
185 static const unsigned char llparse_blob50[] = {
186 'U', 'R', 'C', 'E'
187 };
188 static const unsigned char llparse_blob51[] = {
189 'B', 'S', 'C', 'R', 'I', 'B', 'E'
190 };
191 static const unsigned char llparse_blob52[] = {
192 'A', 'R', 'D', 'O', 'W', 'N'
193 };
194 static const unsigned char llparse_blob53[] = {
195 'A', 'C', 'E'
196 };
197 static const unsigned char llparse_blob54[] = {
198 'I', 'N', 'D'
199 };
200 static const unsigned char llparse_blob55[] = {
201 'N', 'K'
202 };
203 static const unsigned char llparse_blob56[] = {
204 'C', 'K'
205 };
206 static const unsigned char llparse_blob57[] = {
207 'U', 'B', 'S', 'C', 'R', 'I', 'B', 'E'
208 };
209 static const unsigned char llparse_blob58[] = {
210 'H', 'T', 'T', 'P', '/'
211 };
212 static const unsigned char llparse_blob59[] = {
213 'A', 'D'
214 };
215 static const unsigned char llparse_blob60[] = {
216 'T', 'P', '/'
217 };
218
219 enum llparse_match_status_e {
220 kMatchComplete,
221 kMatchPause,
222 kMatchMismatch
223 };
224 typedef enum llparse_match_status_e llparse_match_status_t;
225
226 struct llparse_match_s {
227 llparse_match_status_t status;
228 const unsigned char* current;
229 };
230 typedef struct llparse_match_s llparse_match_t;
231
llparse__match_sequence_to_lower(llhttp__internal_t * s,const unsigned char * p,const unsigned char * endp,const unsigned char * seq,uint32_t seq_len)232 static llparse_match_t llparse__match_sequence_to_lower(
233 llhttp__internal_t* s, const unsigned char* p,
234 const unsigned char* endp,
235 const unsigned char* seq, uint32_t seq_len) {
236 uint32_t index;
237 llparse_match_t res;
238
239 index = s->_index;
240 for (; p != endp; p++) {
241 unsigned char current;
242
243 current = ((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p));
244 if (current == seq[index]) {
245 if (++index == seq_len) {
246 res.status = kMatchComplete;
247 goto reset;
248 }
249 } else {
250 res.status = kMatchMismatch;
251 goto reset;
252 }
253 }
254 s->_index = index;
255 res.status = kMatchPause;
256 res.current = p;
257 return res;
258 reset:
259 s->_index = 0;
260 res.current = p;
261 return res;
262 }
263
llparse__match_sequence_to_lower_unsafe(llhttp__internal_t * s,const unsigned char * p,const unsigned char * endp,const unsigned char * seq,uint32_t seq_len)264 static llparse_match_t llparse__match_sequence_to_lower_unsafe(
265 llhttp__internal_t* s, const unsigned char* p,
266 const unsigned char* endp,
267 const unsigned char* seq, uint32_t seq_len) {
268 uint32_t index;
269 llparse_match_t res;
270
271 index = s->_index;
272 for (; p != endp; p++) {
273 unsigned char current;
274
275 current = ((*p) | 0x20);
276 if (current == seq[index]) {
277 if (++index == seq_len) {
278 res.status = kMatchComplete;
279 goto reset;
280 }
281 } else {
282 res.status = kMatchMismatch;
283 goto reset;
284 }
285 }
286 s->_index = index;
287 res.status = kMatchPause;
288 res.current = p;
289 return res;
290 reset:
291 s->_index = 0;
292 res.current = p;
293 return res;
294 }
295
llparse__match_sequence_id(llhttp__internal_t * s,const unsigned char * p,const unsigned char * endp,const unsigned char * seq,uint32_t seq_len)296 static llparse_match_t llparse__match_sequence_id(
297 llhttp__internal_t* s, const unsigned char* p,
298 const unsigned char* endp,
299 const unsigned char* seq, uint32_t seq_len) {
300 uint32_t index;
301 llparse_match_t res;
302
303 index = s->_index;
304 for (; p != endp; p++) {
305 unsigned char current;
306
307 current = *p;
308 if (current == seq[index]) {
309 if (++index == seq_len) {
310 res.status = kMatchComplete;
311 goto reset;
312 }
313 } else {
314 res.status = kMatchMismatch;
315 goto reset;
316 }
317 }
318 s->_index = index;
319 res.status = kMatchPause;
320 res.current = p;
321 return res;
322 reset:
323 s->_index = 0;
324 res.current = p;
325 return res;
326 }
327
328 enum llparse_state_e {
329 s_error,
330 s_n_llhttp__internal__n_closed,
331 s_n_llhttp__internal__n_invoke_llhttp__after_message_complete,
332 s_n_llhttp__internal__n_pause_1,
333 s_n_llhttp__internal__n_invoke_is_equal_upgrade,
334 s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2,
335 s_n_llhttp__internal__n_chunk_data_almost_done_1,
336 s_n_llhttp__internal__n_chunk_data_almost_done,
337 s_n_llhttp__internal__n_consume_content_length,
338 s_n_llhttp__internal__n_span_start_llhttp__on_body,
339 s_n_llhttp__internal__n_invoke_is_equal_content_length,
340 s_n_llhttp__internal__n_chunk_size_almost_done,
341 s_n_llhttp__internal__n_invoke_test_lenient_flags_9,
342 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete,
343 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_1,
344 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_2,
345 s_n_llhttp__internal__n_invoke_test_lenient_flags_10,
346 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete,
347 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_1,
348 s_n_llhttp__internal__n_chunk_extension_quoted_value_done,
349 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_2,
350 s_n_llhttp__internal__n_error_30,
351 s_n_llhttp__internal__n_chunk_extension_quoted_value_quoted_pair,
352 s_n_llhttp__internal__n_error_31,
353 s_n_llhttp__internal__n_chunk_extension_quoted_value,
354 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_3,
355 s_n_llhttp__internal__n_error_33,
356 s_n_llhttp__internal__n_chunk_extension_value,
357 s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_value,
358 s_n_llhttp__internal__n_error_34,
359 s_n_llhttp__internal__n_chunk_extension_name,
360 s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_name,
361 s_n_llhttp__internal__n_chunk_extensions,
362 s_n_llhttp__internal__n_chunk_size_otherwise,
363 s_n_llhttp__internal__n_chunk_size,
364 s_n_llhttp__internal__n_chunk_size_digit,
365 s_n_llhttp__internal__n_invoke_update_content_length_1,
366 s_n_llhttp__internal__n_consume_content_length_1,
367 s_n_llhttp__internal__n_span_start_llhttp__on_body_1,
368 s_n_llhttp__internal__n_eof,
369 s_n_llhttp__internal__n_span_start_llhttp__on_body_2,
370 s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete,
371 s_n_llhttp__internal__n_error_5,
372 s_n_llhttp__internal__n_headers_almost_done,
373 s_n_llhttp__internal__n_header_field_colon_discard_ws,
374 s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete,
375 s_n_llhttp__internal__n_span_start_llhttp__on_header_value,
376 s_n_llhttp__internal__n_header_value_discard_lws,
377 s_n_llhttp__internal__n_header_value_discard_ws_almost_done,
378 s_n_llhttp__internal__n_header_value_lws,
379 s_n_llhttp__internal__n_header_value_almost_done,
380 s_n_llhttp__internal__n_invoke_test_lenient_flags_17,
381 s_n_llhttp__internal__n_header_value_lenient,
382 s_n_llhttp__internal__n_error_54,
383 s_n_llhttp__internal__n_header_value_otherwise,
384 s_n_llhttp__internal__n_header_value_connection_token,
385 s_n_llhttp__internal__n_header_value_connection_ws,
386 s_n_llhttp__internal__n_header_value_connection_1,
387 s_n_llhttp__internal__n_header_value_connection_2,
388 s_n_llhttp__internal__n_header_value_connection_3,
389 s_n_llhttp__internal__n_header_value_connection,
390 s_n_llhttp__internal__n_error_56,
391 s_n_llhttp__internal__n_error_57,
392 s_n_llhttp__internal__n_header_value_content_length_ws,
393 s_n_llhttp__internal__n_header_value_content_length,
394 s_n_llhttp__internal__n_error_59,
395 s_n_llhttp__internal__n_error_58,
396 s_n_llhttp__internal__n_header_value_te_token_ows,
397 s_n_llhttp__internal__n_header_value,
398 s_n_llhttp__internal__n_header_value_te_token,
399 s_n_llhttp__internal__n_header_value_te_chunked_last,
400 s_n_llhttp__internal__n_header_value_te_chunked,
401 s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1,
402 s_n_llhttp__internal__n_header_value_discard_ws,
403 s_n_llhttp__internal__n_invoke_load_header_state,
404 s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete,
405 s_n_llhttp__internal__n_header_field_general_otherwise,
406 s_n_llhttp__internal__n_header_field_general,
407 s_n_llhttp__internal__n_header_field_colon,
408 s_n_llhttp__internal__n_header_field_3,
409 s_n_llhttp__internal__n_header_field_4,
410 s_n_llhttp__internal__n_header_field_2,
411 s_n_llhttp__internal__n_header_field_1,
412 s_n_llhttp__internal__n_header_field_5,
413 s_n_llhttp__internal__n_header_field_6,
414 s_n_llhttp__internal__n_header_field_7,
415 s_n_llhttp__internal__n_header_field,
416 s_n_llhttp__internal__n_span_start_llhttp__on_header_field,
417 s_n_llhttp__internal__n_header_field_start,
418 s_n_llhttp__internal__n_headers_start,
419 s_n_llhttp__internal__n_url_to_http_09,
420 s_n_llhttp__internal__n_url_skip_to_http09,
421 s_n_llhttp__internal__n_url_skip_lf_to_http09_1,
422 s_n_llhttp__internal__n_url_skip_lf_to_http09,
423 s_n_llhttp__internal__n_req_pri_upgrade,
424 s_n_llhttp__internal__n_req_http_complete_crlf,
425 s_n_llhttp__internal__n_req_http_complete,
426 s_n_llhttp__internal__n_invoke_load_method_1,
427 s_n_llhttp__internal__n_invoke_llhttp__on_version_complete,
428 s_n_llhttp__internal__n_error_66,
429 s_n_llhttp__internal__n_error_73,
430 s_n_llhttp__internal__n_req_http_minor,
431 s_n_llhttp__internal__n_error_74,
432 s_n_llhttp__internal__n_req_http_dot,
433 s_n_llhttp__internal__n_error_75,
434 s_n_llhttp__internal__n_req_http_major,
435 s_n_llhttp__internal__n_span_start_llhttp__on_version,
436 s_n_llhttp__internal__n_req_http_start_1,
437 s_n_llhttp__internal__n_req_http_start_2,
438 s_n_llhttp__internal__n_req_http_start_3,
439 s_n_llhttp__internal__n_req_http_start,
440 s_n_llhttp__internal__n_url_to_http,
441 s_n_llhttp__internal__n_url_skip_to_http,
442 s_n_llhttp__internal__n_url_fragment,
443 s_n_llhttp__internal__n_span_end_stub_query_3,
444 s_n_llhttp__internal__n_url_query,
445 s_n_llhttp__internal__n_url_query_or_fragment,
446 s_n_llhttp__internal__n_url_path,
447 s_n_llhttp__internal__n_span_start_stub_path_2,
448 s_n_llhttp__internal__n_span_start_stub_path,
449 s_n_llhttp__internal__n_span_start_stub_path_1,
450 s_n_llhttp__internal__n_url_server_with_at,
451 s_n_llhttp__internal__n_url_server,
452 s_n_llhttp__internal__n_url_schema_delim_1,
453 s_n_llhttp__internal__n_url_schema_delim,
454 s_n_llhttp__internal__n_span_end_stub_schema,
455 s_n_llhttp__internal__n_url_schema,
456 s_n_llhttp__internal__n_url_start,
457 s_n_llhttp__internal__n_span_start_llhttp__on_url_1,
458 s_n_llhttp__internal__n_url_entry_normal,
459 s_n_llhttp__internal__n_span_start_llhttp__on_url,
460 s_n_llhttp__internal__n_url_entry_connect,
461 s_n_llhttp__internal__n_req_spaces_before_url,
462 s_n_llhttp__internal__n_req_first_space_before_url,
463 s_n_llhttp__internal__n_invoke_llhttp__on_method_complete_1,
464 s_n_llhttp__internal__n_after_start_req_2,
465 s_n_llhttp__internal__n_after_start_req_3,
466 s_n_llhttp__internal__n_after_start_req_1,
467 s_n_llhttp__internal__n_after_start_req_4,
468 s_n_llhttp__internal__n_after_start_req_6,
469 s_n_llhttp__internal__n_after_start_req_8,
470 s_n_llhttp__internal__n_after_start_req_9,
471 s_n_llhttp__internal__n_after_start_req_7,
472 s_n_llhttp__internal__n_after_start_req_5,
473 s_n_llhttp__internal__n_after_start_req_12,
474 s_n_llhttp__internal__n_after_start_req_13,
475 s_n_llhttp__internal__n_after_start_req_11,
476 s_n_llhttp__internal__n_after_start_req_10,
477 s_n_llhttp__internal__n_after_start_req_14,
478 s_n_llhttp__internal__n_after_start_req_17,
479 s_n_llhttp__internal__n_after_start_req_16,
480 s_n_llhttp__internal__n_after_start_req_15,
481 s_n_llhttp__internal__n_after_start_req_18,
482 s_n_llhttp__internal__n_after_start_req_20,
483 s_n_llhttp__internal__n_after_start_req_21,
484 s_n_llhttp__internal__n_after_start_req_19,
485 s_n_llhttp__internal__n_after_start_req_23,
486 s_n_llhttp__internal__n_after_start_req_24,
487 s_n_llhttp__internal__n_after_start_req_26,
488 s_n_llhttp__internal__n_after_start_req_28,
489 s_n_llhttp__internal__n_after_start_req_29,
490 s_n_llhttp__internal__n_after_start_req_27,
491 s_n_llhttp__internal__n_after_start_req_25,
492 s_n_llhttp__internal__n_after_start_req_30,
493 s_n_llhttp__internal__n_after_start_req_22,
494 s_n_llhttp__internal__n_after_start_req_31,
495 s_n_llhttp__internal__n_after_start_req_32,
496 s_n_llhttp__internal__n_after_start_req_35,
497 s_n_llhttp__internal__n_after_start_req_36,
498 s_n_llhttp__internal__n_after_start_req_34,
499 s_n_llhttp__internal__n_after_start_req_37,
500 s_n_llhttp__internal__n_after_start_req_38,
501 s_n_llhttp__internal__n_after_start_req_42,
502 s_n_llhttp__internal__n_after_start_req_43,
503 s_n_llhttp__internal__n_after_start_req_41,
504 s_n_llhttp__internal__n_after_start_req_40,
505 s_n_llhttp__internal__n_after_start_req_39,
506 s_n_llhttp__internal__n_after_start_req_45,
507 s_n_llhttp__internal__n_after_start_req_44,
508 s_n_llhttp__internal__n_after_start_req_33,
509 s_n_llhttp__internal__n_after_start_req_46,
510 s_n_llhttp__internal__n_after_start_req_49,
511 s_n_llhttp__internal__n_after_start_req_50,
512 s_n_llhttp__internal__n_after_start_req_51,
513 s_n_llhttp__internal__n_after_start_req_52,
514 s_n_llhttp__internal__n_after_start_req_48,
515 s_n_llhttp__internal__n_after_start_req_47,
516 s_n_llhttp__internal__n_after_start_req_55,
517 s_n_llhttp__internal__n_after_start_req_57,
518 s_n_llhttp__internal__n_after_start_req_58,
519 s_n_llhttp__internal__n_after_start_req_56,
520 s_n_llhttp__internal__n_after_start_req_54,
521 s_n_llhttp__internal__n_after_start_req_59,
522 s_n_llhttp__internal__n_after_start_req_60,
523 s_n_llhttp__internal__n_after_start_req_53,
524 s_n_llhttp__internal__n_after_start_req_62,
525 s_n_llhttp__internal__n_after_start_req_63,
526 s_n_llhttp__internal__n_after_start_req_61,
527 s_n_llhttp__internal__n_after_start_req_66,
528 s_n_llhttp__internal__n_after_start_req_68,
529 s_n_llhttp__internal__n_after_start_req_69,
530 s_n_llhttp__internal__n_after_start_req_67,
531 s_n_llhttp__internal__n_after_start_req_70,
532 s_n_llhttp__internal__n_after_start_req_65,
533 s_n_llhttp__internal__n_after_start_req_64,
534 s_n_llhttp__internal__n_after_start_req,
535 s_n_llhttp__internal__n_span_start_llhttp__on_method_1,
536 s_n_llhttp__internal__n_res_line_almost_done,
537 s_n_llhttp__internal__n_invoke_test_lenient_flags_30,
538 s_n_llhttp__internal__n_res_status,
539 s_n_llhttp__internal__n_span_start_llhttp__on_status,
540 s_n_llhttp__internal__n_res_status_code_otherwise,
541 s_n_llhttp__internal__n_res_status_code_digit_3,
542 s_n_llhttp__internal__n_res_status_code_digit_2,
543 s_n_llhttp__internal__n_res_status_code_digit_1,
544 s_n_llhttp__internal__n_res_after_version,
545 s_n_llhttp__internal__n_invoke_llhttp__on_version_complete_1,
546 s_n_llhttp__internal__n_error_89,
547 s_n_llhttp__internal__n_error_103,
548 s_n_llhttp__internal__n_res_http_minor,
549 s_n_llhttp__internal__n_error_104,
550 s_n_llhttp__internal__n_res_http_dot,
551 s_n_llhttp__internal__n_error_105,
552 s_n_llhttp__internal__n_res_http_major,
553 s_n_llhttp__internal__n_span_start_llhttp__on_version_1,
554 s_n_llhttp__internal__n_start_res,
555 s_n_llhttp__internal__n_invoke_llhttp__on_method_complete,
556 s_n_llhttp__internal__n_req_or_res_method_2,
557 s_n_llhttp__internal__n_invoke_update_type_1,
558 s_n_llhttp__internal__n_req_or_res_method_3,
559 s_n_llhttp__internal__n_req_or_res_method_1,
560 s_n_llhttp__internal__n_req_or_res_method,
561 s_n_llhttp__internal__n_span_start_llhttp__on_method,
562 s_n_llhttp__internal__n_start_req_or_res,
563 s_n_llhttp__internal__n_invoke_load_type,
564 s_n_llhttp__internal__n_invoke_update_finish,
565 s_n_llhttp__internal__n_start,
566 };
567 typedef enum llparse_state_e llparse_state_t;
568
569 int llhttp__on_method(
570 llhttp__internal_t* s, const unsigned char* p,
571 const unsigned char* endp);
572
573 int llhttp__on_url(
574 llhttp__internal_t* s, const unsigned char* p,
575 const unsigned char* endp);
576
577 int llhttp__on_version(
578 llhttp__internal_t* s, const unsigned char* p,
579 const unsigned char* endp);
580
581 int llhttp__on_header_field(
582 llhttp__internal_t* s, const unsigned char* p,
583 const unsigned char* endp);
584
585 int llhttp__on_header_value(
586 llhttp__internal_t* s, const unsigned char* p,
587 const unsigned char* endp);
588
589 int llhttp__on_body(
590 llhttp__internal_t* s, const unsigned char* p,
591 const unsigned char* endp);
592
593 int llhttp__on_chunk_extension_name(
594 llhttp__internal_t* s, const unsigned char* p,
595 const unsigned char* endp);
596
597 int llhttp__on_chunk_extension_value(
598 llhttp__internal_t* s, const unsigned char* p,
599 const unsigned char* endp);
600
601 int llhttp__on_status(
602 llhttp__internal_t* s, const unsigned char* p,
603 const unsigned char* endp);
604
llhttp__internal__c_load_initial_message_completed(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)605 int llhttp__internal__c_load_initial_message_completed(
606 llhttp__internal_t* state,
607 const unsigned char* p,
608 const unsigned char* endp) {
609 return state->initial_message_completed;
610 }
611
612 int llhttp__on_reset(
613 llhttp__internal_t* s, const unsigned char* p,
614 const unsigned char* endp);
615
llhttp__internal__c_update_finish(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)616 int llhttp__internal__c_update_finish(
617 llhttp__internal_t* state,
618 const unsigned char* p,
619 const unsigned char* endp) {
620 state->finish = 2;
621 return 0;
622 }
623
624 int llhttp__on_message_begin(
625 llhttp__internal_t* s, const unsigned char* p,
626 const unsigned char* endp);
627
llhttp__internal__c_load_type(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)628 int llhttp__internal__c_load_type(
629 llhttp__internal_t* state,
630 const unsigned char* p,
631 const unsigned char* endp) {
632 return state->type;
633 }
634
llhttp__internal__c_store_method(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)635 int llhttp__internal__c_store_method(
636 llhttp__internal_t* state,
637 const unsigned char* p,
638 const unsigned char* endp,
639 int match) {
640 state->method = match;
641 return 0;
642 }
643
644 int llhttp__on_method_complete(
645 llhttp__internal_t* s, const unsigned char* p,
646 const unsigned char* endp);
647
llhttp__internal__c_is_equal_method(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)648 int llhttp__internal__c_is_equal_method(
649 llhttp__internal_t* state,
650 const unsigned char* p,
651 const unsigned char* endp) {
652 return state->method == 5;
653 }
654
llhttp__internal__c_update_http_major(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)655 int llhttp__internal__c_update_http_major(
656 llhttp__internal_t* state,
657 const unsigned char* p,
658 const unsigned char* endp) {
659 state->http_major = 0;
660 return 0;
661 }
662
llhttp__internal__c_update_http_minor(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)663 int llhttp__internal__c_update_http_minor(
664 llhttp__internal_t* state,
665 const unsigned char* p,
666 const unsigned char* endp) {
667 state->http_minor = 9;
668 return 0;
669 }
670
671 int llhttp__on_url_complete(
672 llhttp__internal_t* s, const unsigned char* p,
673 const unsigned char* endp);
674
llhttp__internal__c_test_lenient_flags(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)675 int llhttp__internal__c_test_lenient_flags(
676 llhttp__internal_t* state,
677 const unsigned char* p,
678 const unsigned char* endp) {
679 return (state->lenient_flags & 1) == 1;
680 }
681
llhttp__internal__c_test_lenient_flags_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)682 int llhttp__internal__c_test_lenient_flags_1(
683 llhttp__internal_t* state,
684 const unsigned char* p,
685 const unsigned char* endp) {
686 return (state->lenient_flags & 256) == 256;
687 }
688
llhttp__internal__c_test_flags(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)689 int llhttp__internal__c_test_flags(
690 llhttp__internal_t* state,
691 const unsigned char* p,
692 const unsigned char* endp) {
693 return (state->flags & 128) == 128;
694 }
695
696 int llhttp__on_chunk_complete(
697 llhttp__internal_t* s, const unsigned char* p,
698 const unsigned char* endp);
699
700 int llhttp__on_message_complete(
701 llhttp__internal_t* s, const unsigned char* p,
702 const unsigned char* endp);
703
llhttp__internal__c_is_equal_upgrade(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)704 int llhttp__internal__c_is_equal_upgrade(
705 llhttp__internal_t* state,
706 const unsigned char* p,
707 const unsigned char* endp) {
708 return state->upgrade == 1;
709 }
710
711 int llhttp__after_message_complete(
712 llhttp__internal_t* s, const unsigned char* p,
713 const unsigned char* endp);
714
llhttp__internal__c_update_content_length(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)715 int llhttp__internal__c_update_content_length(
716 llhttp__internal_t* state,
717 const unsigned char* p,
718 const unsigned char* endp) {
719 state->content_length = 0;
720 return 0;
721 }
722
llhttp__internal__c_update_initial_message_completed(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)723 int llhttp__internal__c_update_initial_message_completed(
724 llhttp__internal_t* state,
725 const unsigned char* p,
726 const unsigned char* endp) {
727 state->initial_message_completed = 1;
728 return 0;
729 }
730
llhttp__internal__c_update_finish_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)731 int llhttp__internal__c_update_finish_1(
732 llhttp__internal_t* state,
733 const unsigned char* p,
734 const unsigned char* endp) {
735 state->finish = 0;
736 return 0;
737 }
738
llhttp__internal__c_test_lenient_flags_2(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)739 int llhttp__internal__c_test_lenient_flags_2(
740 llhttp__internal_t* state,
741 const unsigned char* p,
742 const unsigned char* endp) {
743 return (state->lenient_flags & 4) == 4;
744 }
745
llhttp__internal__c_test_lenient_flags_3(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)746 int llhttp__internal__c_test_lenient_flags_3(
747 llhttp__internal_t* state,
748 const unsigned char* p,
749 const unsigned char* endp) {
750 return (state->lenient_flags & 32) == 32;
751 }
752
753 int llhttp__before_headers_complete(
754 llhttp__internal_t* s, const unsigned char* p,
755 const unsigned char* endp);
756
757 int llhttp__on_headers_complete(
758 llhttp__internal_t* s, const unsigned char* p,
759 const unsigned char* endp);
760
761 int llhttp__after_headers_complete(
762 llhttp__internal_t* s, const unsigned char* p,
763 const unsigned char* endp);
764
llhttp__internal__c_mul_add_content_length(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)765 int llhttp__internal__c_mul_add_content_length(
766 llhttp__internal_t* state,
767 const unsigned char* p,
768 const unsigned char* endp,
769 int match) {
770 /* Multiplication overflow */
771 if (state->content_length > 0xffffffffffffffffULL / 16) {
772 return 1;
773 }
774
775 state->content_length *= 16;
776
777 /* Addition overflow */
778 if (match >= 0) {
779 if (state->content_length > 0xffffffffffffffffULL - match) {
780 return 1;
781 }
782 } else {
783 if (state->content_length < 0ULL - match) {
784 return 1;
785 }
786 }
787 state->content_length += match;
788 return 0;
789 }
790
llhttp__internal__c_test_lenient_flags_4(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)791 int llhttp__internal__c_test_lenient_flags_4(
792 llhttp__internal_t* state,
793 const unsigned char* p,
794 const unsigned char* endp) {
795 return (state->lenient_flags & 512) == 512;
796 }
797
798 int llhttp__on_chunk_header(
799 llhttp__internal_t* s, const unsigned char* p,
800 const unsigned char* endp);
801
llhttp__internal__c_is_equal_content_length(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)802 int llhttp__internal__c_is_equal_content_length(
803 llhttp__internal_t* state,
804 const unsigned char* p,
805 const unsigned char* endp) {
806 return state->content_length == 0;
807 }
808
llhttp__internal__c_test_lenient_flags_7(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)809 int llhttp__internal__c_test_lenient_flags_7(
810 llhttp__internal_t* state,
811 const unsigned char* p,
812 const unsigned char* endp) {
813 return (state->lenient_flags & 128) == 128;
814 }
815
llhttp__internal__c_or_flags(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)816 int llhttp__internal__c_or_flags(
817 llhttp__internal_t* state,
818 const unsigned char* p,
819 const unsigned char* endp) {
820 state->flags |= 128;
821 return 0;
822 }
823
llhttp__internal__c_test_lenient_flags_8(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)824 int llhttp__internal__c_test_lenient_flags_8(
825 llhttp__internal_t* state,
826 const unsigned char* p,
827 const unsigned char* endp) {
828 return (state->lenient_flags & 64) == 64;
829 }
830
831 int llhttp__on_chunk_extension_name_complete(
832 llhttp__internal_t* s, const unsigned char* p,
833 const unsigned char* endp);
834
835 int llhttp__on_chunk_extension_value_complete(
836 llhttp__internal_t* s, const unsigned char* p,
837 const unsigned char* endp);
838
llhttp__internal__c_update_finish_3(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)839 int llhttp__internal__c_update_finish_3(
840 llhttp__internal_t* state,
841 const unsigned char* p,
842 const unsigned char* endp) {
843 state->finish = 1;
844 return 0;
845 }
846
llhttp__internal__c_or_flags_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)847 int llhttp__internal__c_or_flags_1(
848 llhttp__internal_t* state,
849 const unsigned char* p,
850 const unsigned char* endp) {
851 state->flags |= 64;
852 return 0;
853 }
854
llhttp__internal__c_update_upgrade(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)855 int llhttp__internal__c_update_upgrade(
856 llhttp__internal_t* state,
857 const unsigned char* p,
858 const unsigned char* endp) {
859 state->upgrade = 1;
860 return 0;
861 }
862
llhttp__internal__c_store_header_state(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)863 int llhttp__internal__c_store_header_state(
864 llhttp__internal_t* state,
865 const unsigned char* p,
866 const unsigned char* endp,
867 int match) {
868 state->header_state = match;
869 return 0;
870 }
871
872 int llhttp__on_header_field_complete(
873 llhttp__internal_t* s, const unsigned char* p,
874 const unsigned char* endp);
875
llhttp__internal__c_load_header_state(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)876 int llhttp__internal__c_load_header_state(
877 llhttp__internal_t* state,
878 const unsigned char* p,
879 const unsigned char* endp) {
880 return state->header_state;
881 }
882
llhttp__internal__c_test_flags_4(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)883 int llhttp__internal__c_test_flags_4(
884 llhttp__internal_t* state,
885 const unsigned char* p,
886 const unsigned char* endp) {
887 return (state->flags & 512) == 512;
888 }
889
llhttp__internal__c_test_lenient_flags_22(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)890 int llhttp__internal__c_test_lenient_flags_22(
891 llhttp__internal_t* state,
892 const unsigned char* p,
893 const unsigned char* endp) {
894 return (state->lenient_flags & 2) == 2;
895 }
896
llhttp__internal__c_or_flags_5(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)897 int llhttp__internal__c_or_flags_5(
898 llhttp__internal_t* state,
899 const unsigned char* p,
900 const unsigned char* endp) {
901 state->flags |= 1;
902 return 0;
903 }
904
llhttp__internal__c_update_header_state(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)905 int llhttp__internal__c_update_header_state(
906 llhttp__internal_t* state,
907 const unsigned char* p,
908 const unsigned char* endp) {
909 state->header_state = 1;
910 return 0;
911 }
912
913 int llhttp__on_header_value_complete(
914 llhttp__internal_t* s, const unsigned char* p,
915 const unsigned char* endp);
916
llhttp__internal__c_or_flags_6(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)917 int llhttp__internal__c_or_flags_6(
918 llhttp__internal_t* state,
919 const unsigned char* p,
920 const unsigned char* endp) {
921 state->flags |= 2;
922 return 0;
923 }
924
llhttp__internal__c_or_flags_7(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)925 int llhttp__internal__c_or_flags_7(
926 llhttp__internal_t* state,
927 const unsigned char* p,
928 const unsigned char* endp) {
929 state->flags |= 4;
930 return 0;
931 }
932
llhttp__internal__c_or_flags_8(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)933 int llhttp__internal__c_or_flags_8(
934 llhttp__internal_t* state,
935 const unsigned char* p,
936 const unsigned char* endp) {
937 state->flags |= 8;
938 return 0;
939 }
940
llhttp__internal__c_update_header_state_3(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)941 int llhttp__internal__c_update_header_state_3(
942 llhttp__internal_t* state,
943 const unsigned char* p,
944 const unsigned char* endp) {
945 state->header_state = 6;
946 return 0;
947 }
948
llhttp__internal__c_update_header_state_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)949 int llhttp__internal__c_update_header_state_1(
950 llhttp__internal_t* state,
951 const unsigned char* p,
952 const unsigned char* endp) {
953 state->header_state = 0;
954 return 0;
955 }
956
llhttp__internal__c_update_header_state_6(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)957 int llhttp__internal__c_update_header_state_6(
958 llhttp__internal_t* state,
959 const unsigned char* p,
960 const unsigned char* endp) {
961 state->header_state = 5;
962 return 0;
963 }
964
llhttp__internal__c_update_header_state_7(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)965 int llhttp__internal__c_update_header_state_7(
966 llhttp__internal_t* state,
967 const unsigned char* p,
968 const unsigned char* endp) {
969 state->header_state = 7;
970 return 0;
971 }
972
llhttp__internal__c_test_flags_2(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)973 int llhttp__internal__c_test_flags_2(
974 llhttp__internal_t* state,
975 const unsigned char* p,
976 const unsigned char* endp) {
977 return (state->flags & 32) == 32;
978 }
979
llhttp__internal__c_mul_add_content_length_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)980 int llhttp__internal__c_mul_add_content_length_1(
981 llhttp__internal_t* state,
982 const unsigned char* p,
983 const unsigned char* endp,
984 int match) {
985 /* Multiplication overflow */
986 if (state->content_length > 0xffffffffffffffffULL / 10) {
987 return 1;
988 }
989
990 state->content_length *= 10;
991
992 /* Addition overflow */
993 if (match >= 0) {
994 if (state->content_length > 0xffffffffffffffffULL - match) {
995 return 1;
996 }
997 } else {
998 if (state->content_length < 0ULL - match) {
999 return 1;
1000 }
1001 }
1002 state->content_length += match;
1003 return 0;
1004 }
1005
llhttp__internal__c_or_flags_17(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)1006 int llhttp__internal__c_or_flags_17(
1007 llhttp__internal_t* state,
1008 const unsigned char* p,
1009 const unsigned char* endp) {
1010 state->flags |= 32;
1011 return 0;
1012 }
1013
llhttp__internal__c_test_flags_3(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)1014 int llhttp__internal__c_test_flags_3(
1015 llhttp__internal_t* state,
1016 const unsigned char* p,
1017 const unsigned char* endp) {
1018 return (state->flags & 8) == 8;
1019 }
1020
llhttp__internal__c_test_lenient_flags_20(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)1021 int llhttp__internal__c_test_lenient_flags_20(
1022 llhttp__internal_t* state,
1023 const unsigned char* p,
1024 const unsigned char* endp) {
1025 return (state->lenient_flags & 8) == 8;
1026 }
1027
llhttp__internal__c_or_flags_18(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)1028 int llhttp__internal__c_or_flags_18(
1029 llhttp__internal_t* state,
1030 const unsigned char* p,
1031 const unsigned char* endp) {
1032 state->flags |= 512;
1033 return 0;
1034 }
1035
llhttp__internal__c_and_flags(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)1036 int llhttp__internal__c_and_flags(
1037 llhttp__internal_t* state,
1038 const unsigned char* p,
1039 const unsigned char* endp) {
1040 state->flags &= -9;
1041 return 0;
1042 }
1043
llhttp__internal__c_update_header_state_8(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)1044 int llhttp__internal__c_update_header_state_8(
1045 llhttp__internal_t* state,
1046 const unsigned char* p,
1047 const unsigned char* endp) {
1048 state->header_state = 8;
1049 return 0;
1050 }
1051
llhttp__internal__c_or_flags_20(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)1052 int llhttp__internal__c_or_flags_20(
1053 llhttp__internal_t* state,
1054 const unsigned char* p,
1055 const unsigned char* endp) {
1056 state->flags |= 16;
1057 return 0;
1058 }
1059
llhttp__internal__c_load_method(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)1060 int llhttp__internal__c_load_method(
1061 llhttp__internal_t* state,
1062 const unsigned char* p,
1063 const unsigned char* endp) {
1064 return state->method;
1065 }
1066
llhttp__internal__c_store_http_major(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)1067 int llhttp__internal__c_store_http_major(
1068 llhttp__internal_t* state,
1069 const unsigned char* p,
1070 const unsigned char* endp,
1071 int match) {
1072 state->http_major = match;
1073 return 0;
1074 }
1075
llhttp__internal__c_store_http_minor(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)1076 int llhttp__internal__c_store_http_minor(
1077 llhttp__internal_t* state,
1078 const unsigned char* p,
1079 const unsigned char* endp,
1080 int match) {
1081 state->http_minor = match;
1082 return 0;
1083 }
1084
llhttp__internal__c_test_lenient_flags_24(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)1085 int llhttp__internal__c_test_lenient_flags_24(
1086 llhttp__internal_t* state,
1087 const unsigned char* p,
1088 const unsigned char* endp) {
1089 return (state->lenient_flags & 16) == 16;
1090 }
1091
1092 int llhttp__on_version_complete(
1093 llhttp__internal_t* s, const unsigned char* p,
1094 const unsigned char* endp);
1095
llhttp__internal__c_load_http_major(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)1096 int llhttp__internal__c_load_http_major(
1097 llhttp__internal_t* state,
1098 const unsigned char* p,
1099 const unsigned char* endp) {
1100 return state->http_major;
1101 }
1102
llhttp__internal__c_load_http_minor(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)1103 int llhttp__internal__c_load_http_minor(
1104 llhttp__internal_t* state,
1105 const unsigned char* p,
1106 const unsigned char* endp) {
1107 return state->http_minor;
1108 }
1109
llhttp__internal__c_update_status_code(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)1110 int llhttp__internal__c_update_status_code(
1111 llhttp__internal_t* state,
1112 const unsigned char* p,
1113 const unsigned char* endp) {
1114 state->status_code = 0;
1115 return 0;
1116 }
1117
llhttp__internal__c_mul_add_status_code(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)1118 int llhttp__internal__c_mul_add_status_code(
1119 llhttp__internal_t* state,
1120 const unsigned char* p,
1121 const unsigned char* endp,
1122 int match) {
1123 /* Multiplication overflow */
1124 if (state->status_code > 0xffff / 10) {
1125 return 1;
1126 }
1127
1128 state->status_code *= 10;
1129
1130 /* Addition overflow */
1131 if (match >= 0) {
1132 if (state->status_code > 0xffff - match) {
1133 return 1;
1134 }
1135 } else {
1136 if (state->status_code < 0 - match) {
1137 return 1;
1138 }
1139 }
1140 state->status_code += match;
1141 return 0;
1142 }
1143
1144 int llhttp__on_status_complete(
1145 llhttp__internal_t* s, const unsigned char* p,
1146 const unsigned char* endp);
1147
llhttp__internal__c_update_type(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)1148 int llhttp__internal__c_update_type(
1149 llhttp__internal_t* state,
1150 const unsigned char* p,
1151 const unsigned char* endp) {
1152 state->type = 1;
1153 return 0;
1154 }
1155
llhttp__internal__c_update_type_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)1156 int llhttp__internal__c_update_type_1(
1157 llhttp__internal_t* state,
1158 const unsigned char* p,
1159 const unsigned char* endp) {
1160 state->type = 2;
1161 return 0;
1162 }
1163
llhttp__internal_init(llhttp__internal_t * state)1164 int llhttp__internal_init(llhttp__internal_t* state) {
1165 memset(state, 0, sizeof(*state));
1166 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_start;
1167 return 0;
1168 }
1169
llhttp__internal__run(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)1170 static llparse_state_t llhttp__internal__run(
1171 llhttp__internal_t* state,
1172 const unsigned char* p,
1173 const unsigned char* endp) {
1174 int match;
1175 switch ((llparse_state_t) (intptr_t) state->_current) {
1176 case s_n_llhttp__internal__n_closed:
1177 s_n_llhttp__internal__n_closed: {
1178 if (p == endp) {
1179 return s_n_llhttp__internal__n_closed;
1180 }
1181 switch (*p) {
1182 case 10: {
1183 p++;
1184 goto s_n_llhttp__internal__n_closed;
1185 }
1186 case 13: {
1187 p++;
1188 goto s_n_llhttp__internal__n_closed;
1189 }
1190 default: {
1191 p++;
1192 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_3;
1193 }
1194 }
1195 /* UNREACHABLE */;
1196 abort();
1197 }
1198 case s_n_llhttp__internal__n_invoke_llhttp__after_message_complete:
1199 s_n_llhttp__internal__n_invoke_llhttp__after_message_complete: {
1200 switch (llhttp__after_message_complete(state, p, endp)) {
1201 case 1:
1202 goto s_n_llhttp__internal__n_invoke_update_content_length;
1203 default:
1204 goto s_n_llhttp__internal__n_invoke_update_finish_1;
1205 }
1206 /* UNREACHABLE */;
1207 abort();
1208 }
1209 case s_n_llhttp__internal__n_pause_1:
1210 s_n_llhttp__internal__n_pause_1: {
1211 state->error = 0x16;
1212 state->reason = "Pause on CONNECT/Upgrade";
1213 state->error_pos = (const char*) p;
1214 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
1215 return s_error;
1216 /* UNREACHABLE */;
1217 abort();
1218 }
1219 case s_n_llhttp__internal__n_invoke_is_equal_upgrade:
1220 s_n_llhttp__internal__n_invoke_is_equal_upgrade: {
1221 switch (llhttp__internal__c_is_equal_upgrade(state, p, endp)) {
1222 case 0:
1223 goto s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
1224 default:
1225 goto s_n_llhttp__internal__n_pause_1;
1226 }
1227 /* UNREACHABLE */;
1228 abort();
1229 }
1230 case s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2:
1231 s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2: {
1232 switch (llhttp__on_message_complete(state, p, endp)) {
1233 case 0:
1234 goto s_n_llhttp__internal__n_invoke_is_equal_upgrade;
1235 case 21:
1236 goto s_n_llhttp__internal__n_pause_13;
1237 default:
1238 goto s_n_llhttp__internal__n_error_38;
1239 }
1240 /* UNREACHABLE */;
1241 abort();
1242 }
1243 case s_n_llhttp__internal__n_chunk_data_almost_done_1:
1244 s_n_llhttp__internal__n_chunk_data_almost_done_1: {
1245 if (p == endp) {
1246 return s_n_llhttp__internal__n_chunk_data_almost_done_1;
1247 }
1248 switch (*p) {
1249 case 10: {
1250 p++;
1251 goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete;
1252 }
1253 default: {
1254 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_7;
1255 }
1256 }
1257 /* UNREACHABLE */;
1258 abort();
1259 }
1260 case s_n_llhttp__internal__n_chunk_data_almost_done:
1261 s_n_llhttp__internal__n_chunk_data_almost_done: {
1262 if (p == endp) {
1263 return s_n_llhttp__internal__n_chunk_data_almost_done;
1264 }
1265 switch (*p) {
1266 case 10: {
1267 p++;
1268 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_6;
1269 }
1270 case 13: {
1271 p++;
1272 goto s_n_llhttp__internal__n_chunk_data_almost_done_1;
1273 }
1274 default: {
1275 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_7;
1276 }
1277 }
1278 /* UNREACHABLE */;
1279 abort();
1280 }
1281 case s_n_llhttp__internal__n_consume_content_length:
1282 s_n_llhttp__internal__n_consume_content_length: {
1283 size_t avail;
1284 uint64_t need;
1285
1286 avail = endp - p;
1287 need = state->content_length;
1288 if (avail >= need) {
1289 p += need;
1290 state->content_length = 0;
1291 goto s_n_llhttp__internal__n_span_end_llhttp__on_body;
1292 }
1293
1294 state->content_length -= avail;
1295 return s_n_llhttp__internal__n_consume_content_length;
1296 /* UNREACHABLE */;
1297 abort();
1298 }
1299 case s_n_llhttp__internal__n_span_start_llhttp__on_body:
1300 s_n_llhttp__internal__n_span_start_llhttp__on_body: {
1301 if (p == endp) {
1302 return s_n_llhttp__internal__n_span_start_llhttp__on_body;
1303 }
1304 state->_span_pos0 = (void*) p;
1305 state->_span_cb0 = llhttp__on_body;
1306 goto s_n_llhttp__internal__n_consume_content_length;
1307 /* UNREACHABLE */;
1308 abort();
1309 }
1310 case s_n_llhttp__internal__n_invoke_is_equal_content_length:
1311 s_n_llhttp__internal__n_invoke_is_equal_content_length: {
1312 switch (llhttp__internal__c_is_equal_content_length(state, p, endp)) {
1313 case 0:
1314 goto s_n_llhttp__internal__n_span_start_llhttp__on_body;
1315 default:
1316 goto s_n_llhttp__internal__n_invoke_or_flags;
1317 }
1318 /* UNREACHABLE */;
1319 abort();
1320 }
1321 case s_n_llhttp__internal__n_chunk_size_almost_done:
1322 s_n_llhttp__internal__n_chunk_size_almost_done: {
1323 if (p == endp) {
1324 return s_n_llhttp__internal__n_chunk_size_almost_done;
1325 }
1326 switch (*p) {
1327 case 10: {
1328 p++;
1329 goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_header;
1330 }
1331 default: {
1332 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_8;
1333 }
1334 }
1335 /* UNREACHABLE */;
1336 abort();
1337 }
1338 case s_n_llhttp__internal__n_invoke_test_lenient_flags_9:
1339 s_n_llhttp__internal__n_invoke_test_lenient_flags_9: {
1340 switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
1341 case 1:
1342 goto s_n_llhttp__internal__n_chunk_size_almost_done;
1343 default:
1344 goto s_n_llhttp__internal__n_error_20;
1345 }
1346 /* UNREACHABLE */;
1347 abort();
1348 }
1349 case s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete:
1350 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete: {
1351 switch (llhttp__on_chunk_extension_name_complete(state, p, endp)) {
1352 case 0:
1353 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_9;
1354 case 21:
1355 goto s_n_llhttp__internal__n_pause_5;
1356 default:
1357 goto s_n_llhttp__internal__n_error_19;
1358 }
1359 /* UNREACHABLE */;
1360 abort();
1361 }
1362 case s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_1:
1363 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_1: {
1364 switch (llhttp__on_chunk_extension_name_complete(state, p, endp)) {
1365 case 0:
1366 goto s_n_llhttp__internal__n_chunk_size_almost_done;
1367 case 21:
1368 goto s_n_llhttp__internal__n_pause_6;
1369 default:
1370 goto s_n_llhttp__internal__n_error_21;
1371 }
1372 /* UNREACHABLE */;
1373 abort();
1374 }
1375 case s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_2:
1376 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_2: {
1377 switch (llhttp__on_chunk_extension_name_complete(state, p, endp)) {
1378 case 0:
1379 goto s_n_llhttp__internal__n_chunk_extensions;
1380 case 21:
1381 goto s_n_llhttp__internal__n_pause_7;
1382 default:
1383 goto s_n_llhttp__internal__n_error_22;
1384 }
1385 /* UNREACHABLE */;
1386 abort();
1387 }
1388 case s_n_llhttp__internal__n_invoke_test_lenient_flags_10:
1389 s_n_llhttp__internal__n_invoke_test_lenient_flags_10: {
1390 switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
1391 case 1:
1392 goto s_n_llhttp__internal__n_chunk_size_almost_done;
1393 default:
1394 goto s_n_llhttp__internal__n_error_25;
1395 }
1396 /* UNREACHABLE */;
1397 abort();
1398 }
1399 case s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete:
1400 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete: {
1401 switch (llhttp__on_chunk_extension_value_complete(state, p, endp)) {
1402 case 0:
1403 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_10;
1404 case 21:
1405 goto s_n_llhttp__internal__n_pause_8;
1406 default:
1407 goto s_n_llhttp__internal__n_error_24;
1408 }
1409 /* UNREACHABLE */;
1410 abort();
1411 }
1412 case s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_1:
1413 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_1: {
1414 switch (llhttp__on_chunk_extension_value_complete(state, p, endp)) {
1415 case 0:
1416 goto s_n_llhttp__internal__n_chunk_size_almost_done;
1417 case 21:
1418 goto s_n_llhttp__internal__n_pause_9;
1419 default:
1420 goto s_n_llhttp__internal__n_error_26;
1421 }
1422 /* UNREACHABLE */;
1423 abort();
1424 }
1425 case s_n_llhttp__internal__n_chunk_extension_quoted_value_done:
1426 s_n_llhttp__internal__n_chunk_extension_quoted_value_done: {
1427 if (p == endp) {
1428 return s_n_llhttp__internal__n_chunk_extension_quoted_value_done;
1429 }
1430 switch (*p) {
1431 case 10: {
1432 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_11;
1433 }
1434 case 13: {
1435 p++;
1436 goto s_n_llhttp__internal__n_chunk_size_almost_done;
1437 }
1438 case ';': {
1439 p++;
1440 goto s_n_llhttp__internal__n_chunk_extensions;
1441 }
1442 default: {
1443 goto s_n_llhttp__internal__n_error_29;
1444 }
1445 }
1446 /* UNREACHABLE */;
1447 abort();
1448 }
1449 case s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_2:
1450 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_2: {
1451 switch (llhttp__on_chunk_extension_value_complete(state, p, endp)) {
1452 case 0:
1453 goto s_n_llhttp__internal__n_chunk_extension_quoted_value_done;
1454 case 21:
1455 goto s_n_llhttp__internal__n_pause_10;
1456 default:
1457 goto s_n_llhttp__internal__n_error_27;
1458 }
1459 /* UNREACHABLE */;
1460 abort();
1461 }
1462 case s_n_llhttp__internal__n_error_30:
1463 s_n_llhttp__internal__n_error_30: {
1464 state->error = 0x2;
1465 state->reason = "Invalid quoted-pair in chunk extensions quoted value";
1466 state->error_pos = (const char*) p;
1467 state->_current = (void*) (intptr_t) s_error;
1468 return s_error;
1469 /* UNREACHABLE */;
1470 abort();
1471 }
1472 case s_n_llhttp__internal__n_chunk_extension_quoted_value_quoted_pair:
1473 s_n_llhttp__internal__n_chunk_extension_quoted_value_quoted_pair: {
1474 static uint8_t lookup_table[] = {
1475 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
1476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1477 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1478 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1479 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1480 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1481 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1482 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
1483 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1484 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1485 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1486 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1487 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1488 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1489 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1490 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
1491 };
1492 if (p == endp) {
1493 return s_n_llhttp__internal__n_chunk_extension_quoted_value_quoted_pair;
1494 }
1495 switch (lookup_table[(uint8_t) *p]) {
1496 case 1: {
1497 p++;
1498 goto s_n_llhttp__internal__n_chunk_extension_quoted_value;
1499 }
1500 default: {
1501 goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_3;
1502 }
1503 }
1504 /* UNREACHABLE */;
1505 abort();
1506 }
1507 case s_n_llhttp__internal__n_error_31:
1508 s_n_llhttp__internal__n_error_31: {
1509 state->error = 0x2;
1510 state->reason = "Invalid character in chunk extensions quoted value";
1511 state->error_pos = (const char*) p;
1512 state->_current = (void*) (intptr_t) s_error;
1513 return s_error;
1514 /* UNREACHABLE */;
1515 abort();
1516 }
1517 case s_n_llhttp__internal__n_chunk_extension_quoted_value:
1518 s_n_llhttp__internal__n_chunk_extension_quoted_value: {
1519 static uint8_t lookup_table[] = {
1520 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
1521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1522 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1523 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1524 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1525 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1,
1526 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1527 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1528 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1529 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1530 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1531 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1532 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1533 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1534 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1535 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
1536 };
1537 if (p == endp) {
1538 return s_n_llhttp__internal__n_chunk_extension_quoted_value;
1539 }
1540 switch (lookup_table[(uint8_t) *p]) {
1541 case 1: {
1542 p++;
1543 goto s_n_llhttp__internal__n_chunk_extension_quoted_value;
1544 }
1545 case 2: {
1546 p++;
1547 goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_2;
1548 }
1549 case 3: {
1550 p++;
1551 goto s_n_llhttp__internal__n_chunk_extension_quoted_value_quoted_pair;
1552 }
1553 default: {
1554 goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_4;
1555 }
1556 }
1557 /* UNREACHABLE */;
1558 abort();
1559 }
1560 case s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_3:
1561 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_3: {
1562 switch (llhttp__on_chunk_extension_value_complete(state, p, endp)) {
1563 case 0:
1564 goto s_n_llhttp__internal__n_chunk_extensions;
1565 case 21:
1566 goto s_n_llhttp__internal__n_pause_11;
1567 default:
1568 goto s_n_llhttp__internal__n_error_32;
1569 }
1570 /* UNREACHABLE */;
1571 abort();
1572 }
1573 case s_n_llhttp__internal__n_error_33:
1574 s_n_llhttp__internal__n_error_33: {
1575 state->error = 0x2;
1576 state->reason = "Invalid character in chunk extensions value";
1577 state->error_pos = (const char*) p;
1578 state->_current = (void*) (intptr_t) s_error;
1579 return s_error;
1580 /* UNREACHABLE */;
1581 abort();
1582 }
1583 case s_n_llhttp__internal__n_chunk_extension_value:
1584 s_n_llhttp__internal__n_chunk_extension_value: {
1585 static uint8_t lookup_table[] = {
1586 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0,
1587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1588 0, 3, 4, 3, 3, 3, 3, 3, 0, 0, 3, 3, 0, 3, 3, 0,
1589 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 5, 0, 0, 0, 0,
1590 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1591 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 3, 3,
1592 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1593 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 0, 3, 0,
1594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1595 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1596 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1600 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1601 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
1602 };
1603 if (p == endp) {
1604 return s_n_llhttp__internal__n_chunk_extension_value;
1605 }
1606 switch (lookup_table[(uint8_t) *p]) {
1607 case 1: {
1608 goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value;
1609 }
1610 case 2: {
1611 goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_1;
1612 }
1613 case 3: {
1614 p++;
1615 goto s_n_llhttp__internal__n_chunk_extension_value;
1616 }
1617 case 4: {
1618 p++;
1619 goto s_n_llhttp__internal__n_chunk_extension_quoted_value;
1620 }
1621 case 5: {
1622 goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_5;
1623 }
1624 default: {
1625 goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_6;
1626 }
1627 }
1628 /* UNREACHABLE */;
1629 abort();
1630 }
1631 case s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_value:
1632 s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_value: {
1633 if (p == endp) {
1634 return s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_value;
1635 }
1636 state->_span_pos0 = (void*) p;
1637 state->_span_cb0 = llhttp__on_chunk_extension_value;
1638 goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_3;
1639 /* UNREACHABLE */;
1640 abort();
1641 }
1642 case s_n_llhttp__internal__n_error_34:
1643 s_n_llhttp__internal__n_error_34: {
1644 state->error = 0x2;
1645 state->reason = "Invalid character in chunk extensions name";
1646 state->error_pos = (const char*) p;
1647 state->_current = (void*) (intptr_t) s_error;
1648 return s_error;
1649 /* UNREACHABLE */;
1650 abort();
1651 }
1652 case s_n_llhttp__internal__n_chunk_extension_name:
1653 s_n_llhttp__internal__n_chunk_extension_name: {
1654 static uint8_t lookup_table[] = {
1655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0,
1656 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1657 0, 3, 0, 3, 3, 3, 3, 3, 0, 0, 3, 3, 0, 3, 3, 0,
1658 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 4, 0, 5, 0, 0,
1659 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1660 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 3, 3,
1661 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1662 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 0, 3, 0,
1663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
1671 };
1672 if (p == endp) {
1673 return s_n_llhttp__internal__n_chunk_extension_name;
1674 }
1675 switch (lookup_table[(uint8_t) *p]) {
1676 case 1: {
1677 goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name;
1678 }
1679 case 2: {
1680 goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name_1;
1681 }
1682 case 3: {
1683 p++;
1684 goto s_n_llhttp__internal__n_chunk_extension_name;
1685 }
1686 case 4: {
1687 goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name_2;
1688 }
1689 case 5: {
1690 goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name_3;
1691 }
1692 default: {
1693 goto s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name_4;
1694 }
1695 }
1696 /* UNREACHABLE */;
1697 abort();
1698 }
1699 case s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_name:
1700 s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_name: {
1701 if (p == endp) {
1702 return s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_name;
1703 }
1704 state->_span_pos0 = (void*) p;
1705 state->_span_cb0 = llhttp__on_chunk_extension_name;
1706 goto s_n_llhttp__internal__n_chunk_extension_name;
1707 /* UNREACHABLE */;
1708 abort();
1709 }
1710 case s_n_llhttp__internal__n_chunk_extensions:
1711 s_n_llhttp__internal__n_chunk_extensions: {
1712 if (p == endp) {
1713 return s_n_llhttp__internal__n_chunk_extensions;
1714 }
1715 switch (*p) {
1716 case 13: {
1717 p++;
1718 goto s_n_llhttp__internal__n_error_17;
1719 }
1720 case ' ': {
1721 p++;
1722 goto s_n_llhttp__internal__n_error_18;
1723 }
1724 default: {
1725 goto s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_name;
1726 }
1727 }
1728 /* UNREACHABLE */;
1729 abort();
1730 }
1731 case s_n_llhttp__internal__n_chunk_size_otherwise:
1732 s_n_llhttp__internal__n_chunk_size_otherwise: {
1733 if (p == endp) {
1734 return s_n_llhttp__internal__n_chunk_size_otherwise;
1735 }
1736 switch (*p) {
1737 case 9: {
1738 p++;
1739 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_4;
1740 }
1741 case 10: {
1742 p++;
1743 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_5;
1744 }
1745 case 13: {
1746 p++;
1747 goto s_n_llhttp__internal__n_chunk_size_almost_done;
1748 }
1749 case ' ': {
1750 p++;
1751 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_4;
1752 }
1753 case ';': {
1754 p++;
1755 goto s_n_llhttp__internal__n_chunk_extensions;
1756 }
1757 default: {
1758 goto s_n_llhttp__internal__n_error_35;
1759 }
1760 }
1761 /* UNREACHABLE */;
1762 abort();
1763 }
1764 case s_n_llhttp__internal__n_chunk_size:
1765 s_n_llhttp__internal__n_chunk_size: {
1766 if (p == endp) {
1767 return s_n_llhttp__internal__n_chunk_size;
1768 }
1769 switch (*p) {
1770 case '0': {
1771 p++;
1772 match = 0;
1773 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1774 }
1775 case '1': {
1776 p++;
1777 match = 1;
1778 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1779 }
1780 case '2': {
1781 p++;
1782 match = 2;
1783 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1784 }
1785 case '3': {
1786 p++;
1787 match = 3;
1788 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1789 }
1790 case '4': {
1791 p++;
1792 match = 4;
1793 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1794 }
1795 case '5': {
1796 p++;
1797 match = 5;
1798 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1799 }
1800 case '6': {
1801 p++;
1802 match = 6;
1803 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1804 }
1805 case '7': {
1806 p++;
1807 match = 7;
1808 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1809 }
1810 case '8': {
1811 p++;
1812 match = 8;
1813 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1814 }
1815 case '9': {
1816 p++;
1817 match = 9;
1818 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1819 }
1820 case 'A': {
1821 p++;
1822 match = 10;
1823 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1824 }
1825 case 'B': {
1826 p++;
1827 match = 11;
1828 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1829 }
1830 case 'C': {
1831 p++;
1832 match = 12;
1833 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1834 }
1835 case 'D': {
1836 p++;
1837 match = 13;
1838 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1839 }
1840 case 'E': {
1841 p++;
1842 match = 14;
1843 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1844 }
1845 case 'F': {
1846 p++;
1847 match = 15;
1848 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1849 }
1850 case 'a': {
1851 p++;
1852 match = 10;
1853 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1854 }
1855 case 'b': {
1856 p++;
1857 match = 11;
1858 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1859 }
1860 case 'c': {
1861 p++;
1862 match = 12;
1863 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1864 }
1865 case 'd': {
1866 p++;
1867 match = 13;
1868 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1869 }
1870 case 'e': {
1871 p++;
1872 match = 14;
1873 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1874 }
1875 case 'f': {
1876 p++;
1877 match = 15;
1878 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1879 }
1880 default: {
1881 goto s_n_llhttp__internal__n_chunk_size_otherwise;
1882 }
1883 }
1884 /* UNREACHABLE */;
1885 abort();
1886 }
1887 case s_n_llhttp__internal__n_chunk_size_digit:
1888 s_n_llhttp__internal__n_chunk_size_digit: {
1889 if (p == endp) {
1890 return s_n_llhttp__internal__n_chunk_size_digit;
1891 }
1892 switch (*p) {
1893 case '0': {
1894 p++;
1895 match = 0;
1896 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1897 }
1898 case '1': {
1899 p++;
1900 match = 1;
1901 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1902 }
1903 case '2': {
1904 p++;
1905 match = 2;
1906 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1907 }
1908 case '3': {
1909 p++;
1910 match = 3;
1911 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1912 }
1913 case '4': {
1914 p++;
1915 match = 4;
1916 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1917 }
1918 case '5': {
1919 p++;
1920 match = 5;
1921 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1922 }
1923 case '6': {
1924 p++;
1925 match = 6;
1926 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1927 }
1928 case '7': {
1929 p++;
1930 match = 7;
1931 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1932 }
1933 case '8': {
1934 p++;
1935 match = 8;
1936 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1937 }
1938 case '9': {
1939 p++;
1940 match = 9;
1941 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1942 }
1943 case 'A': {
1944 p++;
1945 match = 10;
1946 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1947 }
1948 case 'B': {
1949 p++;
1950 match = 11;
1951 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1952 }
1953 case 'C': {
1954 p++;
1955 match = 12;
1956 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1957 }
1958 case 'D': {
1959 p++;
1960 match = 13;
1961 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1962 }
1963 case 'E': {
1964 p++;
1965 match = 14;
1966 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1967 }
1968 case 'F': {
1969 p++;
1970 match = 15;
1971 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1972 }
1973 case 'a': {
1974 p++;
1975 match = 10;
1976 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1977 }
1978 case 'b': {
1979 p++;
1980 match = 11;
1981 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1982 }
1983 case 'c': {
1984 p++;
1985 match = 12;
1986 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1987 }
1988 case 'd': {
1989 p++;
1990 match = 13;
1991 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1992 }
1993 case 'e': {
1994 p++;
1995 match = 14;
1996 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1997 }
1998 case 'f': {
1999 p++;
2000 match = 15;
2001 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
2002 }
2003 default: {
2004 goto s_n_llhttp__internal__n_error_37;
2005 }
2006 }
2007 /* UNREACHABLE */;
2008 abort();
2009 }
2010 case s_n_llhttp__internal__n_invoke_update_content_length_1:
2011 s_n_llhttp__internal__n_invoke_update_content_length_1: {
2012 switch (llhttp__internal__c_update_content_length(state, p, endp)) {
2013 default:
2014 goto s_n_llhttp__internal__n_chunk_size_digit;
2015 }
2016 /* UNREACHABLE */;
2017 abort();
2018 }
2019 case s_n_llhttp__internal__n_consume_content_length_1:
2020 s_n_llhttp__internal__n_consume_content_length_1: {
2021 size_t avail;
2022 uint64_t need;
2023
2024 avail = endp - p;
2025 need = state->content_length;
2026 if (avail >= need) {
2027 p += need;
2028 state->content_length = 0;
2029 goto s_n_llhttp__internal__n_span_end_llhttp__on_body_1;
2030 }
2031
2032 state->content_length -= avail;
2033 return s_n_llhttp__internal__n_consume_content_length_1;
2034 /* UNREACHABLE */;
2035 abort();
2036 }
2037 case s_n_llhttp__internal__n_span_start_llhttp__on_body_1:
2038 s_n_llhttp__internal__n_span_start_llhttp__on_body_1: {
2039 if (p == endp) {
2040 return s_n_llhttp__internal__n_span_start_llhttp__on_body_1;
2041 }
2042 state->_span_pos0 = (void*) p;
2043 state->_span_cb0 = llhttp__on_body;
2044 goto s_n_llhttp__internal__n_consume_content_length_1;
2045 /* UNREACHABLE */;
2046 abort();
2047 }
2048 case s_n_llhttp__internal__n_eof:
2049 s_n_llhttp__internal__n_eof: {
2050 if (p == endp) {
2051 return s_n_llhttp__internal__n_eof;
2052 }
2053 p++;
2054 goto s_n_llhttp__internal__n_eof;
2055 /* UNREACHABLE */;
2056 abort();
2057 }
2058 case s_n_llhttp__internal__n_span_start_llhttp__on_body_2:
2059 s_n_llhttp__internal__n_span_start_llhttp__on_body_2: {
2060 if (p == endp) {
2061 return s_n_llhttp__internal__n_span_start_llhttp__on_body_2;
2062 }
2063 state->_span_pos0 = (void*) p;
2064 state->_span_cb0 = llhttp__on_body;
2065 goto s_n_llhttp__internal__n_eof;
2066 /* UNREACHABLE */;
2067 abort();
2068 }
2069 case s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete:
2070 s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete: {
2071 switch (llhttp__after_headers_complete(state, p, endp)) {
2072 case 1:
2073 goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_1;
2074 case 2:
2075 goto s_n_llhttp__internal__n_invoke_update_content_length_1;
2076 case 3:
2077 goto s_n_llhttp__internal__n_span_start_llhttp__on_body_1;
2078 case 4:
2079 goto s_n_llhttp__internal__n_invoke_update_finish_3;
2080 case 5:
2081 goto s_n_llhttp__internal__n_error_39;
2082 default:
2083 goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete;
2084 }
2085 /* UNREACHABLE */;
2086 abort();
2087 }
2088 case s_n_llhttp__internal__n_error_5:
2089 s_n_llhttp__internal__n_error_5: {
2090 state->error = 0xa;
2091 state->reason = "Invalid header field char";
2092 state->error_pos = (const char*) p;
2093 state->_current = (void*) (intptr_t) s_error;
2094 return s_error;
2095 /* UNREACHABLE */;
2096 abort();
2097 }
2098 case s_n_llhttp__internal__n_headers_almost_done:
2099 s_n_llhttp__internal__n_headers_almost_done: {
2100 if (p == endp) {
2101 return s_n_llhttp__internal__n_headers_almost_done;
2102 }
2103 switch (*p) {
2104 case 10: {
2105 p++;
2106 goto s_n_llhttp__internal__n_invoke_test_flags_1;
2107 }
2108 default: {
2109 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_12;
2110 }
2111 }
2112 /* UNREACHABLE */;
2113 abort();
2114 }
2115 case s_n_llhttp__internal__n_header_field_colon_discard_ws:
2116 s_n_llhttp__internal__n_header_field_colon_discard_ws: {
2117 if (p == endp) {
2118 return s_n_llhttp__internal__n_header_field_colon_discard_ws;
2119 }
2120 switch (*p) {
2121 case ' ': {
2122 p++;
2123 goto s_n_llhttp__internal__n_header_field_colon_discard_ws;
2124 }
2125 default: {
2126 goto s_n_llhttp__internal__n_header_field_colon;
2127 }
2128 }
2129 /* UNREACHABLE */;
2130 abort();
2131 }
2132 case s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete:
2133 s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete: {
2134 switch (llhttp__on_header_value_complete(state, p, endp)) {
2135 case 0:
2136 goto s_n_llhttp__internal__n_header_field_start;
2137 case 21:
2138 goto s_n_llhttp__internal__n_pause_18;
2139 default:
2140 goto s_n_llhttp__internal__n_error_48;
2141 }
2142 /* UNREACHABLE */;
2143 abort();
2144 }
2145 case s_n_llhttp__internal__n_span_start_llhttp__on_header_value:
2146 s_n_llhttp__internal__n_span_start_llhttp__on_header_value: {
2147 if (p == endp) {
2148 return s_n_llhttp__internal__n_span_start_llhttp__on_header_value;
2149 }
2150 state->_span_pos0 = (void*) p;
2151 state->_span_cb0 = llhttp__on_header_value;
2152 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value;
2153 /* UNREACHABLE */;
2154 abort();
2155 }
2156 case s_n_llhttp__internal__n_header_value_discard_lws:
2157 s_n_llhttp__internal__n_header_value_discard_lws: {
2158 if (p == endp) {
2159 return s_n_llhttp__internal__n_header_value_discard_lws;
2160 }
2161 switch (*p) {
2162 case 9: {
2163 p++;
2164 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_15;
2165 }
2166 case ' ': {
2167 p++;
2168 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_15;
2169 }
2170 default: {
2171 goto s_n_llhttp__internal__n_invoke_load_header_state_1;
2172 }
2173 }
2174 /* UNREACHABLE */;
2175 abort();
2176 }
2177 case s_n_llhttp__internal__n_header_value_discard_ws_almost_done:
2178 s_n_llhttp__internal__n_header_value_discard_ws_almost_done: {
2179 if (p == endp) {
2180 return s_n_llhttp__internal__n_header_value_discard_ws_almost_done;
2181 }
2182 switch (*p) {
2183 case 10: {
2184 p++;
2185 goto s_n_llhttp__internal__n_header_value_discard_lws;
2186 }
2187 default: {
2188 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_16;
2189 }
2190 }
2191 /* UNREACHABLE */;
2192 abort();
2193 }
2194 case s_n_llhttp__internal__n_header_value_lws:
2195 s_n_llhttp__internal__n_header_value_lws: {
2196 if (p == endp) {
2197 return s_n_llhttp__internal__n_header_value_lws;
2198 }
2199 switch (*p) {
2200 case 9: {
2201 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_18;
2202 }
2203 case ' ': {
2204 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_18;
2205 }
2206 default: {
2207 goto s_n_llhttp__internal__n_invoke_load_header_state_5;
2208 }
2209 }
2210 /* UNREACHABLE */;
2211 abort();
2212 }
2213 case s_n_llhttp__internal__n_header_value_almost_done:
2214 s_n_llhttp__internal__n_header_value_almost_done: {
2215 if (p == endp) {
2216 return s_n_llhttp__internal__n_header_value_almost_done;
2217 }
2218 switch (*p) {
2219 case 10: {
2220 p++;
2221 goto s_n_llhttp__internal__n_header_value_lws;
2222 }
2223 default: {
2224 goto s_n_llhttp__internal__n_error_53;
2225 }
2226 }
2227 /* UNREACHABLE */;
2228 abort();
2229 }
2230 case s_n_llhttp__internal__n_invoke_test_lenient_flags_17:
2231 s_n_llhttp__internal__n_invoke_test_lenient_flags_17: {
2232 switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
2233 case 1:
2234 goto s_n_llhttp__internal__n_header_value_almost_done;
2235 default:
2236 goto s_n_llhttp__internal__n_error_51;
2237 }
2238 /* UNREACHABLE */;
2239 abort();
2240 }
2241 case s_n_llhttp__internal__n_header_value_lenient:
2242 s_n_llhttp__internal__n_header_value_lenient: {
2243 if (p == endp) {
2244 return s_n_llhttp__internal__n_header_value_lenient;
2245 }
2246 switch (*p) {
2247 case 10: {
2248 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_4;
2249 }
2250 case 13: {
2251 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_5;
2252 }
2253 default: {
2254 p++;
2255 goto s_n_llhttp__internal__n_header_value_lenient;
2256 }
2257 }
2258 /* UNREACHABLE */;
2259 abort();
2260 }
2261 case s_n_llhttp__internal__n_error_54:
2262 s_n_llhttp__internal__n_error_54: {
2263 state->error = 0xa;
2264 state->reason = "Invalid header value char";
2265 state->error_pos = (const char*) p;
2266 state->_current = (void*) (intptr_t) s_error;
2267 return s_error;
2268 /* UNREACHABLE */;
2269 abort();
2270 }
2271 case s_n_llhttp__internal__n_header_value_otherwise:
2272 s_n_llhttp__internal__n_header_value_otherwise: {
2273 if (p == endp) {
2274 return s_n_llhttp__internal__n_header_value_otherwise;
2275 }
2276 switch (*p) {
2277 case 10: {
2278 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_1;
2279 }
2280 case 13: {
2281 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_2;
2282 }
2283 default: {
2284 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_19;
2285 }
2286 }
2287 /* UNREACHABLE */;
2288 abort();
2289 }
2290 case s_n_llhttp__internal__n_header_value_connection_token:
2291 s_n_llhttp__internal__n_header_value_connection_token: {
2292 static uint8_t lookup_table[] = {
2293 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
2294 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2295 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
2296 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2297 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2298 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2299 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2300 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
2301 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2302 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2303 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2304 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2305 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2306 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2307 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2308 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
2309 };
2310 if (p == endp) {
2311 return s_n_llhttp__internal__n_header_value_connection_token;
2312 }
2313 switch (lookup_table[(uint8_t) *p]) {
2314 case 1: {
2315 p++;
2316 goto s_n_llhttp__internal__n_header_value_connection_token;
2317 }
2318 case 2: {
2319 p++;
2320 goto s_n_llhttp__internal__n_header_value_connection;
2321 }
2322 default: {
2323 goto s_n_llhttp__internal__n_header_value_otherwise;
2324 }
2325 }
2326 /* UNREACHABLE */;
2327 abort();
2328 }
2329 case s_n_llhttp__internal__n_header_value_connection_ws:
2330 s_n_llhttp__internal__n_header_value_connection_ws: {
2331 if (p == endp) {
2332 return s_n_llhttp__internal__n_header_value_connection_ws;
2333 }
2334 switch (*p) {
2335 case 10: {
2336 goto s_n_llhttp__internal__n_header_value_otherwise;
2337 }
2338 case 13: {
2339 goto s_n_llhttp__internal__n_header_value_otherwise;
2340 }
2341 case ' ': {
2342 p++;
2343 goto s_n_llhttp__internal__n_header_value_connection_ws;
2344 }
2345 case ',': {
2346 p++;
2347 goto s_n_llhttp__internal__n_invoke_load_header_state_6;
2348 }
2349 default: {
2350 goto s_n_llhttp__internal__n_invoke_update_header_state_5;
2351 }
2352 }
2353 /* UNREACHABLE */;
2354 abort();
2355 }
2356 case s_n_llhttp__internal__n_header_value_connection_1:
2357 s_n_llhttp__internal__n_header_value_connection_1: {
2358 llparse_match_t match_seq;
2359
2360 if (p == endp) {
2361 return s_n_llhttp__internal__n_header_value_connection_1;
2362 }
2363 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob2, 4);
2364 p = match_seq.current;
2365 switch (match_seq.status) {
2366 case kMatchComplete: {
2367 p++;
2368 goto s_n_llhttp__internal__n_invoke_update_header_state_3;
2369 }
2370 case kMatchPause: {
2371 return s_n_llhttp__internal__n_header_value_connection_1;
2372 }
2373 case kMatchMismatch: {
2374 goto s_n_llhttp__internal__n_header_value_connection_token;
2375 }
2376 }
2377 /* UNREACHABLE */;
2378 abort();
2379 }
2380 case s_n_llhttp__internal__n_header_value_connection_2:
2381 s_n_llhttp__internal__n_header_value_connection_2: {
2382 llparse_match_t match_seq;
2383
2384 if (p == endp) {
2385 return s_n_llhttp__internal__n_header_value_connection_2;
2386 }
2387 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob3, 9);
2388 p = match_seq.current;
2389 switch (match_seq.status) {
2390 case kMatchComplete: {
2391 p++;
2392 goto s_n_llhttp__internal__n_invoke_update_header_state_6;
2393 }
2394 case kMatchPause: {
2395 return s_n_llhttp__internal__n_header_value_connection_2;
2396 }
2397 case kMatchMismatch: {
2398 goto s_n_llhttp__internal__n_header_value_connection_token;
2399 }
2400 }
2401 /* UNREACHABLE */;
2402 abort();
2403 }
2404 case s_n_llhttp__internal__n_header_value_connection_3:
2405 s_n_llhttp__internal__n_header_value_connection_3: {
2406 llparse_match_t match_seq;
2407
2408 if (p == endp) {
2409 return s_n_llhttp__internal__n_header_value_connection_3;
2410 }
2411 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob4, 6);
2412 p = match_seq.current;
2413 switch (match_seq.status) {
2414 case kMatchComplete: {
2415 p++;
2416 goto s_n_llhttp__internal__n_invoke_update_header_state_7;
2417 }
2418 case kMatchPause: {
2419 return s_n_llhttp__internal__n_header_value_connection_3;
2420 }
2421 case kMatchMismatch: {
2422 goto s_n_llhttp__internal__n_header_value_connection_token;
2423 }
2424 }
2425 /* UNREACHABLE */;
2426 abort();
2427 }
2428 case s_n_llhttp__internal__n_header_value_connection:
2429 s_n_llhttp__internal__n_header_value_connection: {
2430 if (p == endp) {
2431 return s_n_llhttp__internal__n_header_value_connection;
2432 }
2433 switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) {
2434 case 9: {
2435 p++;
2436 goto s_n_llhttp__internal__n_header_value_connection;
2437 }
2438 case ' ': {
2439 p++;
2440 goto s_n_llhttp__internal__n_header_value_connection;
2441 }
2442 case 'c': {
2443 p++;
2444 goto s_n_llhttp__internal__n_header_value_connection_1;
2445 }
2446 case 'k': {
2447 p++;
2448 goto s_n_llhttp__internal__n_header_value_connection_2;
2449 }
2450 case 'u': {
2451 p++;
2452 goto s_n_llhttp__internal__n_header_value_connection_3;
2453 }
2454 default: {
2455 goto s_n_llhttp__internal__n_header_value_connection_token;
2456 }
2457 }
2458 /* UNREACHABLE */;
2459 abort();
2460 }
2461 case s_n_llhttp__internal__n_error_56:
2462 s_n_llhttp__internal__n_error_56: {
2463 state->error = 0xb;
2464 state->reason = "Content-Length overflow";
2465 state->error_pos = (const char*) p;
2466 state->_current = (void*) (intptr_t) s_error;
2467 return s_error;
2468 /* UNREACHABLE */;
2469 abort();
2470 }
2471 case s_n_llhttp__internal__n_error_57:
2472 s_n_llhttp__internal__n_error_57: {
2473 state->error = 0xb;
2474 state->reason = "Invalid character in Content-Length";
2475 state->error_pos = (const char*) p;
2476 state->_current = (void*) (intptr_t) s_error;
2477 return s_error;
2478 /* UNREACHABLE */;
2479 abort();
2480 }
2481 case s_n_llhttp__internal__n_header_value_content_length_ws:
2482 s_n_llhttp__internal__n_header_value_content_length_ws: {
2483 if (p == endp) {
2484 return s_n_llhttp__internal__n_header_value_content_length_ws;
2485 }
2486 switch (*p) {
2487 case 10: {
2488 goto s_n_llhttp__internal__n_invoke_or_flags_17;
2489 }
2490 case 13: {
2491 goto s_n_llhttp__internal__n_invoke_or_flags_17;
2492 }
2493 case ' ': {
2494 p++;
2495 goto s_n_llhttp__internal__n_header_value_content_length_ws;
2496 }
2497 default: {
2498 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_7;
2499 }
2500 }
2501 /* UNREACHABLE */;
2502 abort();
2503 }
2504 case s_n_llhttp__internal__n_header_value_content_length:
2505 s_n_llhttp__internal__n_header_value_content_length: {
2506 if (p == endp) {
2507 return s_n_llhttp__internal__n_header_value_content_length;
2508 }
2509 switch (*p) {
2510 case '0': {
2511 p++;
2512 match = 0;
2513 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
2514 }
2515 case '1': {
2516 p++;
2517 match = 1;
2518 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
2519 }
2520 case '2': {
2521 p++;
2522 match = 2;
2523 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
2524 }
2525 case '3': {
2526 p++;
2527 match = 3;
2528 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
2529 }
2530 case '4': {
2531 p++;
2532 match = 4;
2533 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
2534 }
2535 case '5': {
2536 p++;
2537 match = 5;
2538 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
2539 }
2540 case '6': {
2541 p++;
2542 match = 6;
2543 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
2544 }
2545 case '7': {
2546 p++;
2547 match = 7;
2548 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
2549 }
2550 case '8': {
2551 p++;
2552 match = 8;
2553 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
2554 }
2555 case '9': {
2556 p++;
2557 match = 9;
2558 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
2559 }
2560 default: {
2561 goto s_n_llhttp__internal__n_header_value_content_length_ws;
2562 }
2563 }
2564 /* UNREACHABLE */;
2565 abort();
2566 }
2567 case s_n_llhttp__internal__n_error_59:
2568 s_n_llhttp__internal__n_error_59: {
2569 state->error = 0xf;
2570 state->reason = "Invalid `Transfer-Encoding` header value";
2571 state->error_pos = (const char*) p;
2572 state->_current = (void*) (intptr_t) s_error;
2573 return s_error;
2574 /* UNREACHABLE */;
2575 abort();
2576 }
2577 case s_n_llhttp__internal__n_error_58:
2578 s_n_llhttp__internal__n_error_58: {
2579 state->error = 0xf;
2580 state->reason = "Invalid `Transfer-Encoding` header value";
2581 state->error_pos = (const char*) p;
2582 state->_current = (void*) (intptr_t) s_error;
2583 return s_error;
2584 /* UNREACHABLE */;
2585 abort();
2586 }
2587 case s_n_llhttp__internal__n_header_value_te_token_ows:
2588 s_n_llhttp__internal__n_header_value_te_token_ows: {
2589 if (p == endp) {
2590 return s_n_llhttp__internal__n_header_value_te_token_ows;
2591 }
2592 switch (*p) {
2593 case 9: {
2594 p++;
2595 goto s_n_llhttp__internal__n_header_value_te_token_ows;
2596 }
2597 case ' ': {
2598 p++;
2599 goto s_n_llhttp__internal__n_header_value_te_token_ows;
2600 }
2601 default: {
2602 goto s_n_llhttp__internal__n_header_value_te_chunked;
2603 }
2604 }
2605 /* UNREACHABLE */;
2606 abort();
2607 }
2608 case s_n_llhttp__internal__n_header_value:
2609 s_n_llhttp__internal__n_header_value: {
2610 static uint8_t lookup_table[] = {
2611 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
2612 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2613 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2614 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2615 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2616 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2617 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2618 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
2619 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2620 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2621 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2622 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2623 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2624 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2625 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2626 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
2627 };
2628 if (p == endp) {
2629 return s_n_llhttp__internal__n_header_value;
2630 }
2631 #ifdef __SSE4_2__
2632 if (endp - p >= 16) {
2633 __m128i ranges;
2634 __m128i input;
2635 int avail;
2636 int match_len;
2637
2638 /* Load input */
2639 input = _mm_loadu_si128((__m128i const*) p);
2640 ranges = _mm_loadu_si128((__m128i const*) llparse_blob6);
2641
2642 /* Find first character that does not match `ranges` */
2643 match_len = _mm_cmpestri(ranges, 6,
2644 input, 16,
2645 _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES |
2646 _SIDD_NEGATIVE_POLARITY);
2647
2648 if (match_len != 0) {
2649 p += match_len;
2650 goto s_n_llhttp__internal__n_header_value;
2651 }
2652 goto s_n_llhttp__internal__n_header_value_otherwise;
2653 }
2654 #endif /* __SSE4_2__ */
2655 switch (lookup_table[(uint8_t) *p]) {
2656 case 1: {
2657 p++;
2658 goto s_n_llhttp__internal__n_header_value;
2659 }
2660 default: {
2661 goto s_n_llhttp__internal__n_header_value_otherwise;
2662 }
2663 }
2664 /* UNREACHABLE */;
2665 abort();
2666 }
2667 case s_n_llhttp__internal__n_header_value_te_token:
2668 s_n_llhttp__internal__n_header_value_te_token: {
2669 static uint8_t lookup_table[] = {
2670 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
2671 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2672 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
2673 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2674 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2675 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2676 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2677 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
2678 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2679 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2680 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2681 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2682 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2683 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2684 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2685 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
2686 };
2687 if (p == endp) {
2688 return s_n_llhttp__internal__n_header_value_te_token;
2689 }
2690 switch (lookup_table[(uint8_t) *p]) {
2691 case 1: {
2692 p++;
2693 goto s_n_llhttp__internal__n_header_value_te_token;
2694 }
2695 case 2: {
2696 p++;
2697 goto s_n_llhttp__internal__n_header_value_te_token_ows;
2698 }
2699 default: {
2700 goto s_n_llhttp__internal__n_invoke_update_header_state_9;
2701 }
2702 }
2703 /* UNREACHABLE */;
2704 abort();
2705 }
2706 case s_n_llhttp__internal__n_header_value_te_chunked_last:
2707 s_n_llhttp__internal__n_header_value_te_chunked_last: {
2708 if (p == endp) {
2709 return s_n_llhttp__internal__n_header_value_te_chunked_last;
2710 }
2711 switch (*p) {
2712 case 10: {
2713 goto s_n_llhttp__internal__n_invoke_update_header_state_8;
2714 }
2715 case 13: {
2716 goto s_n_llhttp__internal__n_invoke_update_header_state_8;
2717 }
2718 case ' ': {
2719 p++;
2720 goto s_n_llhttp__internal__n_header_value_te_chunked_last;
2721 }
2722 case ',': {
2723 goto s_n_llhttp__internal__n_invoke_load_type_1;
2724 }
2725 default: {
2726 goto s_n_llhttp__internal__n_header_value_te_token;
2727 }
2728 }
2729 /* UNREACHABLE */;
2730 abort();
2731 }
2732 case s_n_llhttp__internal__n_header_value_te_chunked:
2733 s_n_llhttp__internal__n_header_value_te_chunked: {
2734 llparse_match_t match_seq;
2735
2736 if (p == endp) {
2737 return s_n_llhttp__internal__n_header_value_te_chunked;
2738 }
2739 match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob5, 7);
2740 p = match_seq.current;
2741 switch (match_seq.status) {
2742 case kMatchComplete: {
2743 p++;
2744 goto s_n_llhttp__internal__n_header_value_te_chunked_last;
2745 }
2746 case kMatchPause: {
2747 return s_n_llhttp__internal__n_header_value_te_chunked;
2748 }
2749 case kMatchMismatch: {
2750 goto s_n_llhttp__internal__n_header_value_te_token;
2751 }
2752 }
2753 /* UNREACHABLE */;
2754 abort();
2755 }
2756 case s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1:
2757 s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1: {
2758 if (p == endp) {
2759 return s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
2760 }
2761 state->_span_pos0 = (void*) p;
2762 state->_span_cb0 = llhttp__on_header_value;
2763 goto s_n_llhttp__internal__n_invoke_load_header_state_3;
2764 /* UNREACHABLE */;
2765 abort();
2766 }
2767 case s_n_llhttp__internal__n_header_value_discard_ws:
2768 s_n_llhttp__internal__n_header_value_discard_ws: {
2769 if (p == endp) {
2770 return s_n_llhttp__internal__n_header_value_discard_ws;
2771 }
2772 switch (*p) {
2773 case 9: {
2774 p++;
2775 goto s_n_llhttp__internal__n_header_value_discard_ws;
2776 }
2777 case 10: {
2778 p++;
2779 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_14;
2780 }
2781 case 13: {
2782 p++;
2783 goto s_n_llhttp__internal__n_header_value_discard_ws_almost_done;
2784 }
2785 case ' ': {
2786 p++;
2787 goto s_n_llhttp__internal__n_header_value_discard_ws;
2788 }
2789 default: {
2790 goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
2791 }
2792 }
2793 /* UNREACHABLE */;
2794 abort();
2795 }
2796 case s_n_llhttp__internal__n_invoke_load_header_state:
2797 s_n_llhttp__internal__n_invoke_load_header_state: {
2798 switch (llhttp__internal__c_load_header_state(state, p, endp)) {
2799 case 2:
2800 goto s_n_llhttp__internal__n_invoke_test_flags_4;
2801 case 3:
2802 goto s_n_llhttp__internal__n_invoke_test_flags_5;
2803 default:
2804 goto s_n_llhttp__internal__n_header_value_discard_ws;
2805 }
2806 /* UNREACHABLE */;
2807 abort();
2808 }
2809 case s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete:
2810 s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete: {
2811 switch (llhttp__on_header_field_complete(state, p, endp)) {
2812 case 0:
2813 goto s_n_llhttp__internal__n_invoke_load_header_state;
2814 case 21:
2815 goto s_n_llhttp__internal__n_pause_19;
2816 default:
2817 goto s_n_llhttp__internal__n_error_45;
2818 }
2819 /* UNREACHABLE */;
2820 abort();
2821 }
2822 case s_n_llhttp__internal__n_header_field_general_otherwise:
2823 s_n_llhttp__internal__n_header_field_general_otherwise: {
2824 if (p == endp) {
2825 return s_n_llhttp__internal__n_header_field_general_otherwise;
2826 }
2827 switch (*p) {
2828 case ':': {
2829 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field_2;
2830 }
2831 default: {
2832 goto s_n_llhttp__internal__n_error_62;
2833 }
2834 }
2835 /* UNREACHABLE */;
2836 abort();
2837 }
2838 case s_n_llhttp__internal__n_header_field_general:
2839 s_n_llhttp__internal__n_header_field_general: {
2840 static uint8_t lookup_table[] = {
2841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2843 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,
2844 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
2845 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2846 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,
2847 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2848 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,
2849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
2857 };
2858 if (p == endp) {
2859 return s_n_llhttp__internal__n_header_field_general;
2860 }
2861 #ifdef __SSE4_2__
2862 if (endp - p >= 16) {
2863 __m128i ranges;
2864 __m128i input;
2865 int avail;
2866 int match_len;
2867
2868 /* Load input */
2869 input = _mm_loadu_si128((__m128i const*) p);
2870 ranges = _mm_loadu_si128((__m128i const*) llparse_blob7);
2871
2872 /* Find first character that does not match `ranges` */
2873 match_len = _mm_cmpestri(ranges, 16,
2874 input, 16,
2875 _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES |
2876 _SIDD_NEGATIVE_POLARITY);
2877
2878 if (match_len != 0) {
2879 p += match_len;
2880 goto s_n_llhttp__internal__n_header_field_general;
2881 }
2882 ranges = _mm_loadu_si128((__m128i const*) llparse_blob8);
2883
2884 /* Find first character that does not match `ranges` */
2885 match_len = _mm_cmpestri(ranges, 2,
2886 input, 16,
2887 _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES |
2888 _SIDD_NEGATIVE_POLARITY);
2889
2890 if (match_len != 0) {
2891 p += match_len;
2892 goto s_n_llhttp__internal__n_header_field_general;
2893 }
2894 goto s_n_llhttp__internal__n_header_field_general_otherwise;
2895 }
2896 #endif /* __SSE4_2__ */
2897 switch (lookup_table[(uint8_t) *p]) {
2898 case 1: {
2899 p++;
2900 goto s_n_llhttp__internal__n_header_field_general;
2901 }
2902 default: {
2903 goto s_n_llhttp__internal__n_header_field_general_otherwise;
2904 }
2905 }
2906 /* UNREACHABLE */;
2907 abort();
2908 }
2909 case s_n_llhttp__internal__n_header_field_colon:
2910 s_n_llhttp__internal__n_header_field_colon: {
2911 if (p == endp) {
2912 return s_n_llhttp__internal__n_header_field_colon;
2913 }
2914 switch (*p) {
2915 case ' ': {
2916 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_13;
2917 }
2918 case ':': {
2919 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field_1;
2920 }
2921 default: {
2922 goto s_n_llhttp__internal__n_invoke_update_header_state_10;
2923 }
2924 }
2925 /* UNREACHABLE */;
2926 abort();
2927 }
2928 case s_n_llhttp__internal__n_header_field_3:
2929 s_n_llhttp__internal__n_header_field_3: {
2930 llparse_match_t match_seq;
2931
2932 if (p == endp) {
2933 return s_n_llhttp__internal__n_header_field_3;
2934 }
2935 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob1, 6);
2936 p = match_seq.current;
2937 switch (match_seq.status) {
2938 case kMatchComplete: {
2939 p++;
2940 match = 1;
2941 goto s_n_llhttp__internal__n_invoke_store_header_state;
2942 }
2943 case kMatchPause: {
2944 return s_n_llhttp__internal__n_header_field_3;
2945 }
2946 case kMatchMismatch: {
2947 goto s_n_llhttp__internal__n_invoke_update_header_state_11;
2948 }
2949 }
2950 /* UNREACHABLE */;
2951 abort();
2952 }
2953 case s_n_llhttp__internal__n_header_field_4:
2954 s_n_llhttp__internal__n_header_field_4: {
2955 llparse_match_t match_seq;
2956
2957 if (p == endp) {
2958 return s_n_llhttp__internal__n_header_field_4;
2959 }
2960 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob9, 10);
2961 p = match_seq.current;
2962 switch (match_seq.status) {
2963 case kMatchComplete: {
2964 p++;
2965 match = 2;
2966 goto s_n_llhttp__internal__n_invoke_store_header_state;
2967 }
2968 case kMatchPause: {
2969 return s_n_llhttp__internal__n_header_field_4;
2970 }
2971 case kMatchMismatch: {
2972 goto s_n_llhttp__internal__n_invoke_update_header_state_11;
2973 }
2974 }
2975 /* UNREACHABLE */;
2976 abort();
2977 }
2978 case s_n_llhttp__internal__n_header_field_2:
2979 s_n_llhttp__internal__n_header_field_2: {
2980 if (p == endp) {
2981 return s_n_llhttp__internal__n_header_field_2;
2982 }
2983 switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) {
2984 case 'n': {
2985 p++;
2986 goto s_n_llhttp__internal__n_header_field_3;
2987 }
2988 case 't': {
2989 p++;
2990 goto s_n_llhttp__internal__n_header_field_4;
2991 }
2992 default: {
2993 goto s_n_llhttp__internal__n_invoke_update_header_state_11;
2994 }
2995 }
2996 /* UNREACHABLE */;
2997 abort();
2998 }
2999 case s_n_llhttp__internal__n_header_field_1:
3000 s_n_llhttp__internal__n_header_field_1: {
3001 llparse_match_t match_seq;
3002
3003 if (p == endp) {
3004 return s_n_llhttp__internal__n_header_field_1;
3005 }
3006 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob0, 2);
3007 p = match_seq.current;
3008 switch (match_seq.status) {
3009 case kMatchComplete: {
3010 p++;
3011 goto s_n_llhttp__internal__n_header_field_2;
3012 }
3013 case kMatchPause: {
3014 return s_n_llhttp__internal__n_header_field_1;
3015 }
3016 case kMatchMismatch: {
3017 goto s_n_llhttp__internal__n_invoke_update_header_state_11;
3018 }
3019 }
3020 /* UNREACHABLE */;
3021 abort();
3022 }
3023 case s_n_llhttp__internal__n_header_field_5:
3024 s_n_llhttp__internal__n_header_field_5: {
3025 llparse_match_t match_seq;
3026
3027 if (p == endp) {
3028 return s_n_llhttp__internal__n_header_field_5;
3029 }
3030 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob10, 15);
3031 p = match_seq.current;
3032 switch (match_seq.status) {
3033 case kMatchComplete: {
3034 p++;
3035 match = 1;
3036 goto s_n_llhttp__internal__n_invoke_store_header_state;
3037 }
3038 case kMatchPause: {
3039 return s_n_llhttp__internal__n_header_field_5;
3040 }
3041 case kMatchMismatch: {
3042 goto s_n_llhttp__internal__n_invoke_update_header_state_11;
3043 }
3044 }
3045 /* UNREACHABLE */;
3046 abort();
3047 }
3048 case s_n_llhttp__internal__n_header_field_6:
3049 s_n_llhttp__internal__n_header_field_6: {
3050 llparse_match_t match_seq;
3051
3052 if (p == endp) {
3053 return s_n_llhttp__internal__n_header_field_6;
3054 }
3055 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob11, 16);
3056 p = match_seq.current;
3057 switch (match_seq.status) {
3058 case kMatchComplete: {
3059 p++;
3060 match = 3;
3061 goto s_n_llhttp__internal__n_invoke_store_header_state;
3062 }
3063 case kMatchPause: {
3064 return s_n_llhttp__internal__n_header_field_6;
3065 }
3066 case kMatchMismatch: {
3067 goto s_n_llhttp__internal__n_invoke_update_header_state_11;
3068 }
3069 }
3070 /* UNREACHABLE */;
3071 abort();
3072 }
3073 case s_n_llhttp__internal__n_header_field_7:
3074 s_n_llhttp__internal__n_header_field_7: {
3075 llparse_match_t match_seq;
3076
3077 if (p == endp) {
3078 return s_n_llhttp__internal__n_header_field_7;
3079 }
3080 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob12, 6);
3081 p = match_seq.current;
3082 switch (match_seq.status) {
3083 case kMatchComplete: {
3084 p++;
3085 match = 4;
3086 goto s_n_llhttp__internal__n_invoke_store_header_state;
3087 }
3088 case kMatchPause: {
3089 return s_n_llhttp__internal__n_header_field_7;
3090 }
3091 case kMatchMismatch: {
3092 goto s_n_llhttp__internal__n_invoke_update_header_state_11;
3093 }
3094 }
3095 /* UNREACHABLE */;
3096 abort();
3097 }
3098 case s_n_llhttp__internal__n_header_field:
3099 s_n_llhttp__internal__n_header_field: {
3100 if (p == endp) {
3101 return s_n_llhttp__internal__n_header_field;
3102 }
3103 switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) {
3104 case 'c': {
3105 p++;
3106 goto s_n_llhttp__internal__n_header_field_1;
3107 }
3108 case 'p': {
3109 p++;
3110 goto s_n_llhttp__internal__n_header_field_5;
3111 }
3112 case 't': {
3113 p++;
3114 goto s_n_llhttp__internal__n_header_field_6;
3115 }
3116 case 'u': {
3117 p++;
3118 goto s_n_llhttp__internal__n_header_field_7;
3119 }
3120 default: {
3121 goto s_n_llhttp__internal__n_invoke_update_header_state_11;
3122 }
3123 }
3124 /* UNREACHABLE */;
3125 abort();
3126 }
3127 case s_n_llhttp__internal__n_span_start_llhttp__on_header_field:
3128 s_n_llhttp__internal__n_span_start_llhttp__on_header_field: {
3129 if (p == endp) {
3130 return s_n_llhttp__internal__n_span_start_llhttp__on_header_field;
3131 }
3132 state->_span_pos0 = (void*) p;
3133 state->_span_cb0 = llhttp__on_header_field;
3134 goto s_n_llhttp__internal__n_header_field;
3135 /* UNREACHABLE */;
3136 abort();
3137 }
3138 case s_n_llhttp__internal__n_header_field_start:
3139 s_n_llhttp__internal__n_header_field_start: {
3140 if (p == endp) {
3141 return s_n_llhttp__internal__n_header_field_start;
3142 }
3143 switch (*p) {
3144 case 10: {
3145 p++;
3146 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_1;
3147 }
3148 case 13: {
3149 p++;
3150 goto s_n_llhttp__internal__n_headers_almost_done;
3151 }
3152 case ':': {
3153 goto s_n_llhttp__internal__n_error_44;
3154 }
3155 default: {
3156 goto s_n_llhttp__internal__n_span_start_llhttp__on_header_field;
3157 }
3158 }
3159 /* UNREACHABLE */;
3160 abort();
3161 }
3162 case s_n_llhttp__internal__n_headers_start:
3163 s_n_llhttp__internal__n_headers_start: {
3164 if (p == endp) {
3165 return s_n_llhttp__internal__n_headers_start;
3166 }
3167 switch (*p) {
3168 case ' ': {
3169 p++;
3170 goto s_n_llhttp__internal__n_invoke_test_lenient_flags;
3171 }
3172 default: {
3173 goto s_n_llhttp__internal__n_header_field_start;
3174 }
3175 }
3176 /* UNREACHABLE */;
3177 abort();
3178 }
3179 case s_n_llhttp__internal__n_url_to_http_09:
3180 s_n_llhttp__internal__n_url_to_http_09: {
3181 if (p == endp) {
3182 return s_n_llhttp__internal__n_url_to_http_09;
3183 }
3184 switch (*p) {
3185 case 9: {
3186 p++;
3187 goto s_n_llhttp__internal__n_error_2;
3188 }
3189 case 12: {
3190 p++;
3191 goto s_n_llhttp__internal__n_error_2;
3192 }
3193 default: {
3194 goto s_n_llhttp__internal__n_invoke_update_http_major;
3195 }
3196 }
3197 /* UNREACHABLE */;
3198 abort();
3199 }
3200 case s_n_llhttp__internal__n_url_skip_to_http09:
3201 s_n_llhttp__internal__n_url_skip_to_http09: {
3202 if (p == endp) {
3203 return s_n_llhttp__internal__n_url_skip_to_http09;
3204 }
3205 switch (*p) {
3206 case 9: {
3207 p++;
3208 goto s_n_llhttp__internal__n_error_2;
3209 }
3210 case 12: {
3211 p++;
3212 goto s_n_llhttp__internal__n_error_2;
3213 }
3214 default: {
3215 p++;
3216 goto s_n_llhttp__internal__n_url_to_http_09;
3217 }
3218 }
3219 /* UNREACHABLE */;
3220 abort();
3221 }
3222 case s_n_llhttp__internal__n_url_skip_lf_to_http09_1:
3223 s_n_llhttp__internal__n_url_skip_lf_to_http09_1: {
3224 if (p == endp) {
3225 return s_n_llhttp__internal__n_url_skip_lf_to_http09_1;
3226 }
3227 switch (*p) {
3228 case 10: {
3229 p++;
3230 goto s_n_llhttp__internal__n_url_to_http_09;
3231 }
3232 default: {
3233 goto s_n_llhttp__internal__n_error_63;
3234 }
3235 }
3236 /* UNREACHABLE */;
3237 abort();
3238 }
3239 case s_n_llhttp__internal__n_url_skip_lf_to_http09:
3240 s_n_llhttp__internal__n_url_skip_lf_to_http09: {
3241 if (p == endp) {
3242 return s_n_llhttp__internal__n_url_skip_lf_to_http09;
3243 }
3244 switch (*p) {
3245 case 9: {
3246 p++;
3247 goto s_n_llhttp__internal__n_error_2;
3248 }
3249 case 12: {
3250 p++;
3251 goto s_n_llhttp__internal__n_error_2;
3252 }
3253 case 13: {
3254 p++;
3255 goto s_n_llhttp__internal__n_url_skip_lf_to_http09_1;
3256 }
3257 default: {
3258 goto s_n_llhttp__internal__n_error_63;
3259 }
3260 }
3261 /* UNREACHABLE */;
3262 abort();
3263 }
3264 case s_n_llhttp__internal__n_req_pri_upgrade:
3265 s_n_llhttp__internal__n_req_pri_upgrade: {
3266 llparse_match_t match_seq;
3267
3268 if (p == endp) {
3269 return s_n_llhttp__internal__n_req_pri_upgrade;
3270 }
3271 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob14, 10);
3272 p = match_seq.current;
3273 switch (match_seq.status) {
3274 case kMatchComplete: {
3275 p++;
3276 goto s_n_llhttp__internal__n_error_71;
3277 }
3278 case kMatchPause: {
3279 return s_n_llhttp__internal__n_req_pri_upgrade;
3280 }
3281 case kMatchMismatch: {
3282 goto s_n_llhttp__internal__n_error_72;
3283 }
3284 }
3285 /* UNREACHABLE */;
3286 abort();
3287 }
3288 case s_n_llhttp__internal__n_req_http_complete_crlf:
3289 s_n_llhttp__internal__n_req_http_complete_crlf: {
3290 if (p == endp) {
3291 return s_n_llhttp__internal__n_req_http_complete_crlf;
3292 }
3293 switch (*p) {
3294 case 10: {
3295 p++;
3296 goto s_n_llhttp__internal__n_headers_start;
3297 }
3298 default: {
3299 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_26;
3300 }
3301 }
3302 /* UNREACHABLE */;
3303 abort();
3304 }
3305 case s_n_llhttp__internal__n_req_http_complete:
3306 s_n_llhttp__internal__n_req_http_complete: {
3307 if (p == endp) {
3308 return s_n_llhttp__internal__n_req_http_complete;
3309 }
3310 switch (*p) {
3311 case 10: {
3312 p++;
3313 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_25;
3314 }
3315 case 13: {
3316 p++;
3317 goto s_n_llhttp__internal__n_req_http_complete_crlf;
3318 }
3319 default: {
3320 goto s_n_llhttp__internal__n_error_70;
3321 }
3322 }
3323 /* UNREACHABLE */;
3324 abort();
3325 }
3326 case s_n_llhttp__internal__n_invoke_load_method_1:
3327 s_n_llhttp__internal__n_invoke_load_method_1: {
3328 switch (llhttp__internal__c_load_method(state, p, endp)) {
3329 case 34:
3330 goto s_n_llhttp__internal__n_req_pri_upgrade;
3331 default:
3332 goto s_n_llhttp__internal__n_req_http_complete;
3333 }
3334 /* UNREACHABLE */;
3335 abort();
3336 }
3337 case s_n_llhttp__internal__n_invoke_llhttp__on_version_complete:
3338 s_n_llhttp__internal__n_invoke_llhttp__on_version_complete: {
3339 switch (llhttp__on_version_complete(state, p, endp)) {
3340 case 0:
3341 goto s_n_llhttp__internal__n_invoke_load_method_1;
3342 case 21:
3343 goto s_n_llhttp__internal__n_pause_21;
3344 default:
3345 goto s_n_llhttp__internal__n_error_67;
3346 }
3347 /* UNREACHABLE */;
3348 abort();
3349 }
3350 case s_n_llhttp__internal__n_error_66:
3351 s_n_llhttp__internal__n_error_66: {
3352 state->error = 0x9;
3353 state->reason = "Invalid HTTP version";
3354 state->error_pos = (const char*) p;
3355 state->_current = (void*) (intptr_t) s_error;
3356 return s_error;
3357 /* UNREACHABLE */;
3358 abort();
3359 }
3360 case s_n_llhttp__internal__n_error_73:
3361 s_n_llhttp__internal__n_error_73: {
3362 state->error = 0x9;
3363 state->reason = "Invalid minor version";
3364 state->error_pos = (const char*) p;
3365 state->_current = (void*) (intptr_t) s_error;
3366 return s_error;
3367 /* UNREACHABLE */;
3368 abort();
3369 }
3370 case s_n_llhttp__internal__n_req_http_minor:
3371 s_n_llhttp__internal__n_req_http_minor: {
3372 if (p == endp) {
3373 return s_n_llhttp__internal__n_req_http_minor;
3374 }
3375 switch (*p) {
3376 case '0': {
3377 p++;
3378 match = 0;
3379 goto s_n_llhttp__internal__n_invoke_store_http_minor;
3380 }
3381 case '1': {
3382 p++;
3383 match = 1;
3384 goto s_n_llhttp__internal__n_invoke_store_http_minor;
3385 }
3386 case '2': {
3387 p++;
3388 match = 2;
3389 goto s_n_llhttp__internal__n_invoke_store_http_minor;
3390 }
3391 case '3': {
3392 p++;
3393 match = 3;
3394 goto s_n_llhttp__internal__n_invoke_store_http_minor;
3395 }
3396 case '4': {
3397 p++;
3398 match = 4;
3399 goto s_n_llhttp__internal__n_invoke_store_http_minor;
3400 }
3401 case '5': {
3402 p++;
3403 match = 5;
3404 goto s_n_llhttp__internal__n_invoke_store_http_minor;
3405 }
3406 case '6': {
3407 p++;
3408 match = 6;
3409 goto s_n_llhttp__internal__n_invoke_store_http_minor;
3410 }
3411 case '7': {
3412 p++;
3413 match = 7;
3414 goto s_n_llhttp__internal__n_invoke_store_http_minor;
3415 }
3416 case '8': {
3417 p++;
3418 match = 8;
3419 goto s_n_llhttp__internal__n_invoke_store_http_minor;
3420 }
3421 case '9': {
3422 p++;
3423 match = 9;
3424 goto s_n_llhttp__internal__n_invoke_store_http_minor;
3425 }
3426 default: {
3427 goto s_n_llhttp__internal__n_span_end_llhttp__on_version_2;
3428 }
3429 }
3430 /* UNREACHABLE */;
3431 abort();
3432 }
3433 case s_n_llhttp__internal__n_error_74:
3434 s_n_llhttp__internal__n_error_74: {
3435 state->error = 0x9;
3436 state->reason = "Expected dot";
3437 state->error_pos = (const char*) p;
3438 state->_current = (void*) (intptr_t) s_error;
3439 return s_error;
3440 /* UNREACHABLE */;
3441 abort();
3442 }
3443 case s_n_llhttp__internal__n_req_http_dot:
3444 s_n_llhttp__internal__n_req_http_dot: {
3445 if (p == endp) {
3446 return s_n_llhttp__internal__n_req_http_dot;
3447 }
3448 switch (*p) {
3449 case '.': {
3450 p++;
3451 goto s_n_llhttp__internal__n_req_http_minor;
3452 }
3453 default: {
3454 goto s_n_llhttp__internal__n_span_end_llhttp__on_version_3;
3455 }
3456 }
3457 /* UNREACHABLE */;
3458 abort();
3459 }
3460 case s_n_llhttp__internal__n_error_75:
3461 s_n_llhttp__internal__n_error_75: {
3462 state->error = 0x9;
3463 state->reason = "Invalid major version";
3464 state->error_pos = (const char*) p;
3465 state->_current = (void*) (intptr_t) s_error;
3466 return s_error;
3467 /* UNREACHABLE */;
3468 abort();
3469 }
3470 case s_n_llhttp__internal__n_req_http_major:
3471 s_n_llhttp__internal__n_req_http_major: {
3472 if (p == endp) {
3473 return s_n_llhttp__internal__n_req_http_major;
3474 }
3475 switch (*p) {
3476 case '0': {
3477 p++;
3478 match = 0;
3479 goto s_n_llhttp__internal__n_invoke_store_http_major;
3480 }
3481 case '1': {
3482 p++;
3483 match = 1;
3484 goto s_n_llhttp__internal__n_invoke_store_http_major;
3485 }
3486 case '2': {
3487 p++;
3488 match = 2;
3489 goto s_n_llhttp__internal__n_invoke_store_http_major;
3490 }
3491 case '3': {
3492 p++;
3493 match = 3;
3494 goto s_n_llhttp__internal__n_invoke_store_http_major;
3495 }
3496 case '4': {
3497 p++;
3498 match = 4;
3499 goto s_n_llhttp__internal__n_invoke_store_http_major;
3500 }
3501 case '5': {
3502 p++;
3503 match = 5;
3504 goto s_n_llhttp__internal__n_invoke_store_http_major;
3505 }
3506 case '6': {
3507 p++;
3508 match = 6;
3509 goto s_n_llhttp__internal__n_invoke_store_http_major;
3510 }
3511 case '7': {
3512 p++;
3513 match = 7;
3514 goto s_n_llhttp__internal__n_invoke_store_http_major;
3515 }
3516 case '8': {
3517 p++;
3518 match = 8;
3519 goto s_n_llhttp__internal__n_invoke_store_http_major;
3520 }
3521 case '9': {
3522 p++;
3523 match = 9;
3524 goto s_n_llhttp__internal__n_invoke_store_http_major;
3525 }
3526 default: {
3527 goto s_n_llhttp__internal__n_span_end_llhttp__on_version_4;
3528 }
3529 }
3530 /* UNREACHABLE */;
3531 abort();
3532 }
3533 case s_n_llhttp__internal__n_span_start_llhttp__on_version:
3534 s_n_llhttp__internal__n_span_start_llhttp__on_version: {
3535 if (p == endp) {
3536 return s_n_llhttp__internal__n_span_start_llhttp__on_version;
3537 }
3538 state->_span_pos0 = (void*) p;
3539 state->_span_cb0 = llhttp__on_version;
3540 goto s_n_llhttp__internal__n_req_http_major;
3541 /* UNREACHABLE */;
3542 abort();
3543 }
3544 case s_n_llhttp__internal__n_req_http_start_1:
3545 s_n_llhttp__internal__n_req_http_start_1: {
3546 llparse_match_t match_seq;
3547
3548 if (p == endp) {
3549 return s_n_llhttp__internal__n_req_http_start_1;
3550 }
3551 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob13, 4);
3552 p = match_seq.current;
3553 switch (match_seq.status) {
3554 case kMatchComplete: {
3555 p++;
3556 goto s_n_llhttp__internal__n_invoke_load_method;
3557 }
3558 case kMatchPause: {
3559 return s_n_llhttp__internal__n_req_http_start_1;
3560 }
3561 case kMatchMismatch: {
3562 goto s_n_llhttp__internal__n_error_78;
3563 }
3564 }
3565 /* UNREACHABLE */;
3566 abort();
3567 }
3568 case s_n_llhttp__internal__n_req_http_start_2:
3569 s_n_llhttp__internal__n_req_http_start_2: {
3570 llparse_match_t match_seq;
3571
3572 if (p == endp) {
3573 return s_n_llhttp__internal__n_req_http_start_2;
3574 }
3575 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob15, 3);
3576 p = match_seq.current;
3577 switch (match_seq.status) {
3578 case kMatchComplete: {
3579 p++;
3580 goto s_n_llhttp__internal__n_invoke_load_method_2;
3581 }
3582 case kMatchPause: {
3583 return s_n_llhttp__internal__n_req_http_start_2;
3584 }
3585 case kMatchMismatch: {
3586 goto s_n_llhttp__internal__n_error_78;
3587 }
3588 }
3589 /* UNREACHABLE */;
3590 abort();
3591 }
3592 case s_n_llhttp__internal__n_req_http_start_3:
3593 s_n_llhttp__internal__n_req_http_start_3: {
3594 llparse_match_t match_seq;
3595
3596 if (p == endp) {
3597 return s_n_llhttp__internal__n_req_http_start_3;
3598 }
3599 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob16, 4);
3600 p = match_seq.current;
3601 switch (match_seq.status) {
3602 case kMatchComplete: {
3603 p++;
3604 goto s_n_llhttp__internal__n_invoke_load_method_3;
3605 }
3606 case kMatchPause: {
3607 return s_n_llhttp__internal__n_req_http_start_3;
3608 }
3609 case kMatchMismatch: {
3610 goto s_n_llhttp__internal__n_error_78;
3611 }
3612 }
3613 /* UNREACHABLE */;
3614 abort();
3615 }
3616 case s_n_llhttp__internal__n_req_http_start:
3617 s_n_llhttp__internal__n_req_http_start: {
3618 if (p == endp) {
3619 return s_n_llhttp__internal__n_req_http_start;
3620 }
3621 switch (*p) {
3622 case ' ': {
3623 p++;
3624 goto s_n_llhttp__internal__n_req_http_start;
3625 }
3626 case 'H': {
3627 p++;
3628 goto s_n_llhttp__internal__n_req_http_start_1;
3629 }
3630 case 'I': {
3631 p++;
3632 goto s_n_llhttp__internal__n_req_http_start_2;
3633 }
3634 case 'R': {
3635 p++;
3636 goto s_n_llhttp__internal__n_req_http_start_3;
3637 }
3638 default: {
3639 goto s_n_llhttp__internal__n_error_78;
3640 }
3641 }
3642 /* UNREACHABLE */;
3643 abort();
3644 }
3645 case s_n_llhttp__internal__n_url_to_http:
3646 s_n_llhttp__internal__n_url_to_http: {
3647 if (p == endp) {
3648 return s_n_llhttp__internal__n_url_to_http;
3649 }
3650 switch (*p) {
3651 case 9: {
3652 p++;
3653 goto s_n_llhttp__internal__n_error_2;
3654 }
3655 case 12: {
3656 p++;
3657 goto s_n_llhttp__internal__n_error_2;
3658 }
3659 default: {
3660 goto s_n_llhttp__internal__n_invoke_llhttp__on_url_complete_1;
3661 }
3662 }
3663 /* UNREACHABLE */;
3664 abort();
3665 }
3666 case s_n_llhttp__internal__n_url_skip_to_http:
3667 s_n_llhttp__internal__n_url_skip_to_http: {
3668 if (p == endp) {
3669 return s_n_llhttp__internal__n_url_skip_to_http;
3670 }
3671 switch (*p) {
3672 case 9: {
3673 p++;
3674 goto s_n_llhttp__internal__n_error_2;
3675 }
3676 case 12: {
3677 p++;
3678 goto s_n_llhttp__internal__n_error_2;
3679 }
3680 default: {
3681 p++;
3682 goto s_n_llhttp__internal__n_url_to_http;
3683 }
3684 }
3685 /* UNREACHABLE */;
3686 abort();
3687 }
3688 case s_n_llhttp__internal__n_url_fragment:
3689 s_n_llhttp__internal__n_url_fragment: {
3690 static uint8_t lookup_table[] = {
3691 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0,
3692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3693 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3694 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3695 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3696 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3697 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3698 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0,
3699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3700 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3701 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3703 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3704 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3706 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3707 };
3708 if (p == endp) {
3709 return s_n_llhttp__internal__n_url_fragment;
3710 }
3711 switch (lookup_table[(uint8_t) *p]) {
3712 case 1: {
3713 p++;
3714 goto s_n_llhttp__internal__n_error_2;
3715 }
3716 case 2: {
3717 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_6;
3718 }
3719 case 3: {
3720 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_7;
3721 }
3722 case 4: {
3723 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_8;
3724 }
3725 case 5: {
3726 p++;
3727 goto s_n_llhttp__internal__n_url_fragment;
3728 }
3729 default: {
3730 goto s_n_llhttp__internal__n_error_79;
3731 }
3732 }
3733 /* UNREACHABLE */;
3734 abort();
3735 }
3736 case s_n_llhttp__internal__n_span_end_stub_query_3:
3737 s_n_llhttp__internal__n_span_end_stub_query_3: {
3738 if (p == endp) {
3739 return s_n_llhttp__internal__n_span_end_stub_query_3;
3740 }
3741 p++;
3742 goto s_n_llhttp__internal__n_url_fragment;
3743 /* UNREACHABLE */;
3744 abort();
3745 }
3746 case s_n_llhttp__internal__n_url_query:
3747 s_n_llhttp__internal__n_url_query: {
3748 static uint8_t lookup_table[] = {
3749 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0,
3750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3751 4, 5, 5, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3752 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3753 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3754 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3755 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3756 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0,
3757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3759 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3762 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3765 };
3766 if (p == endp) {
3767 return s_n_llhttp__internal__n_url_query;
3768 }
3769 switch (lookup_table[(uint8_t) *p]) {
3770 case 1: {
3771 p++;
3772 goto s_n_llhttp__internal__n_error_2;
3773 }
3774 case 2: {
3775 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_9;
3776 }
3777 case 3: {
3778 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_10;
3779 }
3780 case 4: {
3781 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_11;
3782 }
3783 case 5: {
3784 p++;
3785 goto s_n_llhttp__internal__n_url_query;
3786 }
3787 case 6: {
3788 goto s_n_llhttp__internal__n_span_end_stub_query_3;
3789 }
3790 default: {
3791 goto s_n_llhttp__internal__n_error_80;
3792 }
3793 }
3794 /* UNREACHABLE */;
3795 abort();
3796 }
3797 case s_n_llhttp__internal__n_url_query_or_fragment:
3798 s_n_llhttp__internal__n_url_query_or_fragment: {
3799 if (p == endp) {
3800 return s_n_llhttp__internal__n_url_query_or_fragment;
3801 }
3802 switch (*p) {
3803 case 9: {
3804 p++;
3805 goto s_n_llhttp__internal__n_error_2;
3806 }
3807 case 10: {
3808 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_3;
3809 }
3810 case 12: {
3811 p++;
3812 goto s_n_llhttp__internal__n_error_2;
3813 }
3814 case 13: {
3815 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_4;
3816 }
3817 case ' ': {
3818 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_5;
3819 }
3820 case '#': {
3821 p++;
3822 goto s_n_llhttp__internal__n_url_fragment;
3823 }
3824 case '?': {
3825 p++;
3826 goto s_n_llhttp__internal__n_url_query;
3827 }
3828 default: {
3829 goto s_n_llhttp__internal__n_error_81;
3830 }
3831 }
3832 /* UNREACHABLE */;
3833 abort();
3834 }
3835 case s_n_llhttp__internal__n_url_path:
3836 s_n_llhttp__internal__n_url_path: {
3837 static uint8_t lookup_table[] = {
3838 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
3839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3840 0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3841 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0,
3842 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3843 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3844 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3845 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0,
3846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3854 };
3855 if (p == endp) {
3856 return s_n_llhttp__internal__n_url_path;
3857 }
3858 switch (lookup_table[(uint8_t) *p]) {
3859 case 1: {
3860 p++;
3861 goto s_n_llhttp__internal__n_error_2;
3862 }
3863 case 2: {
3864 p++;
3865 goto s_n_llhttp__internal__n_url_path;
3866 }
3867 default: {
3868 goto s_n_llhttp__internal__n_url_query_or_fragment;
3869 }
3870 }
3871 /* UNREACHABLE */;
3872 abort();
3873 }
3874 case s_n_llhttp__internal__n_span_start_stub_path_2:
3875 s_n_llhttp__internal__n_span_start_stub_path_2: {
3876 if (p == endp) {
3877 return s_n_llhttp__internal__n_span_start_stub_path_2;
3878 }
3879 p++;
3880 goto s_n_llhttp__internal__n_url_path;
3881 /* UNREACHABLE */;
3882 abort();
3883 }
3884 case s_n_llhttp__internal__n_span_start_stub_path:
3885 s_n_llhttp__internal__n_span_start_stub_path: {
3886 if (p == endp) {
3887 return s_n_llhttp__internal__n_span_start_stub_path;
3888 }
3889 p++;
3890 goto s_n_llhttp__internal__n_url_path;
3891 /* UNREACHABLE */;
3892 abort();
3893 }
3894 case s_n_llhttp__internal__n_span_start_stub_path_1:
3895 s_n_llhttp__internal__n_span_start_stub_path_1: {
3896 if (p == endp) {
3897 return s_n_llhttp__internal__n_span_start_stub_path_1;
3898 }
3899 p++;
3900 goto s_n_llhttp__internal__n_url_path;
3901 /* UNREACHABLE */;
3902 abort();
3903 }
3904 case s_n_llhttp__internal__n_url_server_with_at:
3905 s_n_llhttp__internal__n_url_server_with_at: {
3906 static uint8_t lookup_table[] = {
3907 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0,
3908 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3909 4, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6,
3910 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 7,
3911 8, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3912 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 5,
3913 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3914 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 5, 0,
3915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3918 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3922 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3923 };
3924 if (p == endp) {
3925 return s_n_llhttp__internal__n_url_server_with_at;
3926 }
3927 switch (lookup_table[(uint8_t) *p]) {
3928 case 1: {
3929 p++;
3930 goto s_n_llhttp__internal__n_error_2;
3931 }
3932 case 2: {
3933 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_12;
3934 }
3935 case 3: {
3936 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_13;
3937 }
3938 case 4: {
3939 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_14;
3940 }
3941 case 5: {
3942 p++;
3943 goto s_n_llhttp__internal__n_url_server;
3944 }
3945 case 6: {
3946 goto s_n_llhttp__internal__n_span_start_stub_path_1;
3947 }
3948 case 7: {
3949 p++;
3950 goto s_n_llhttp__internal__n_url_query;
3951 }
3952 case 8: {
3953 p++;
3954 goto s_n_llhttp__internal__n_error_82;
3955 }
3956 default: {
3957 goto s_n_llhttp__internal__n_error_83;
3958 }
3959 }
3960 /* UNREACHABLE */;
3961 abort();
3962 }
3963 case s_n_llhttp__internal__n_url_server:
3964 s_n_llhttp__internal__n_url_server: {
3965 static uint8_t lookup_table[] = {
3966 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0,
3967 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3968 4, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6,
3969 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 7,
3970 8, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3971 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 5,
3972 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3973 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 5, 0,
3974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3975 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3976 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3977 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3978 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3979 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3980 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3981 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3982 };
3983 if (p == endp) {
3984 return s_n_llhttp__internal__n_url_server;
3985 }
3986 switch (lookup_table[(uint8_t) *p]) {
3987 case 1: {
3988 p++;
3989 goto s_n_llhttp__internal__n_error_2;
3990 }
3991 case 2: {
3992 goto s_n_llhttp__internal__n_span_end_llhttp__on_url;
3993 }
3994 case 3: {
3995 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_1;
3996 }
3997 case 4: {
3998 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_2;
3999 }
4000 case 5: {
4001 p++;
4002 goto s_n_llhttp__internal__n_url_server;
4003 }
4004 case 6: {
4005 goto s_n_llhttp__internal__n_span_start_stub_path;
4006 }
4007 case 7: {
4008 p++;
4009 goto s_n_llhttp__internal__n_url_query;
4010 }
4011 case 8: {
4012 p++;
4013 goto s_n_llhttp__internal__n_url_server_with_at;
4014 }
4015 default: {
4016 goto s_n_llhttp__internal__n_error_84;
4017 }
4018 }
4019 /* UNREACHABLE */;
4020 abort();
4021 }
4022 case s_n_llhttp__internal__n_url_schema_delim_1:
4023 s_n_llhttp__internal__n_url_schema_delim_1: {
4024 if (p == endp) {
4025 return s_n_llhttp__internal__n_url_schema_delim_1;
4026 }
4027 switch (*p) {
4028 case '/': {
4029 p++;
4030 goto s_n_llhttp__internal__n_url_server;
4031 }
4032 default: {
4033 goto s_n_llhttp__internal__n_error_85;
4034 }
4035 }
4036 /* UNREACHABLE */;
4037 abort();
4038 }
4039 case s_n_llhttp__internal__n_url_schema_delim:
4040 s_n_llhttp__internal__n_url_schema_delim: {
4041 if (p == endp) {
4042 return s_n_llhttp__internal__n_url_schema_delim;
4043 }
4044 switch (*p) {
4045 case 9: {
4046 p++;
4047 goto s_n_llhttp__internal__n_error_2;
4048 }
4049 case 10: {
4050 p++;
4051 goto s_n_llhttp__internal__n_error_2;
4052 }
4053 case 12: {
4054 p++;
4055 goto s_n_llhttp__internal__n_error_2;
4056 }
4057 case 13: {
4058 p++;
4059 goto s_n_llhttp__internal__n_error_2;
4060 }
4061 case ' ': {
4062 p++;
4063 goto s_n_llhttp__internal__n_error_2;
4064 }
4065 case '/': {
4066 p++;
4067 goto s_n_llhttp__internal__n_url_schema_delim_1;
4068 }
4069 default: {
4070 goto s_n_llhttp__internal__n_error_85;
4071 }
4072 }
4073 /* UNREACHABLE */;
4074 abort();
4075 }
4076 case s_n_llhttp__internal__n_span_end_stub_schema:
4077 s_n_llhttp__internal__n_span_end_stub_schema: {
4078 if (p == endp) {
4079 return s_n_llhttp__internal__n_span_end_stub_schema;
4080 }
4081 p++;
4082 goto s_n_llhttp__internal__n_url_schema_delim;
4083 /* UNREACHABLE */;
4084 abort();
4085 }
4086 case s_n_llhttp__internal__n_url_schema:
4087 s_n_llhttp__internal__n_url_schema: {
4088 static uint8_t lookup_table[] = {
4089 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0,
4090 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4091 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4092 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
4093 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
4094 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
4095 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
4096 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
4097 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4098 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4099 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4100 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4101 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4102 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4103 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
4105 };
4106 if (p == endp) {
4107 return s_n_llhttp__internal__n_url_schema;
4108 }
4109 switch (lookup_table[(uint8_t) *p]) {
4110 case 1: {
4111 p++;
4112 goto s_n_llhttp__internal__n_error_2;
4113 }
4114 case 2: {
4115 goto s_n_llhttp__internal__n_span_end_stub_schema;
4116 }
4117 case 3: {
4118 p++;
4119 goto s_n_llhttp__internal__n_url_schema;
4120 }
4121 default: {
4122 goto s_n_llhttp__internal__n_error_86;
4123 }
4124 }
4125 /* UNREACHABLE */;
4126 abort();
4127 }
4128 case s_n_llhttp__internal__n_url_start:
4129 s_n_llhttp__internal__n_url_start: {
4130 static uint8_t lookup_table[] = {
4131 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0,
4132 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4133 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2,
4134 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4135 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
4136 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
4137 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
4138 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
4139 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4140 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4141 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4142 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4143 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4144 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4145 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4146 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
4147 };
4148 if (p == endp) {
4149 return s_n_llhttp__internal__n_url_start;
4150 }
4151 switch (lookup_table[(uint8_t) *p]) {
4152 case 1: {
4153 p++;
4154 goto s_n_llhttp__internal__n_error_2;
4155 }
4156 case 2: {
4157 goto s_n_llhttp__internal__n_span_start_stub_path_2;
4158 }
4159 case 3: {
4160 goto s_n_llhttp__internal__n_url_schema;
4161 }
4162 default: {
4163 goto s_n_llhttp__internal__n_error_87;
4164 }
4165 }
4166 /* UNREACHABLE */;
4167 abort();
4168 }
4169 case s_n_llhttp__internal__n_span_start_llhttp__on_url_1:
4170 s_n_llhttp__internal__n_span_start_llhttp__on_url_1: {
4171 if (p == endp) {
4172 return s_n_llhttp__internal__n_span_start_llhttp__on_url_1;
4173 }
4174 state->_span_pos0 = (void*) p;
4175 state->_span_cb0 = llhttp__on_url;
4176 goto s_n_llhttp__internal__n_url_start;
4177 /* UNREACHABLE */;
4178 abort();
4179 }
4180 case s_n_llhttp__internal__n_url_entry_normal:
4181 s_n_llhttp__internal__n_url_entry_normal: {
4182 if (p == endp) {
4183 return s_n_llhttp__internal__n_url_entry_normal;
4184 }
4185 switch (*p) {
4186 case 9: {
4187 p++;
4188 goto s_n_llhttp__internal__n_error_2;
4189 }
4190 case 12: {
4191 p++;
4192 goto s_n_llhttp__internal__n_error_2;
4193 }
4194 default: {
4195 goto s_n_llhttp__internal__n_span_start_llhttp__on_url_1;
4196 }
4197 }
4198 /* UNREACHABLE */;
4199 abort();
4200 }
4201 case s_n_llhttp__internal__n_span_start_llhttp__on_url:
4202 s_n_llhttp__internal__n_span_start_llhttp__on_url: {
4203 if (p == endp) {
4204 return s_n_llhttp__internal__n_span_start_llhttp__on_url;
4205 }
4206 state->_span_pos0 = (void*) p;
4207 state->_span_cb0 = llhttp__on_url;
4208 goto s_n_llhttp__internal__n_url_server;
4209 /* UNREACHABLE */;
4210 abort();
4211 }
4212 case s_n_llhttp__internal__n_url_entry_connect:
4213 s_n_llhttp__internal__n_url_entry_connect: {
4214 if (p == endp) {
4215 return s_n_llhttp__internal__n_url_entry_connect;
4216 }
4217 switch (*p) {
4218 case 9: {
4219 p++;
4220 goto s_n_llhttp__internal__n_error_2;
4221 }
4222 case 12: {
4223 p++;
4224 goto s_n_llhttp__internal__n_error_2;
4225 }
4226 default: {
4227 goto s_n_llhttp__internal__n_span_start_llhttp__on_url;
4228 }
4229 }
4230 /* UNREACHABLE */;
4231 abort();
4232 }
4233 case s_n_llhttp__internal__n_req_spaces_before_url:
4234 s_n_llhttp__internal__n_req_spaces_before_url: {
4235 if (p == endp) {
4236 return s_n_llhttp__internal__n_req_spaces_before_url;
4237 }
4238 switch (*p) {
4239 case ' ': {
4240 p++;
4241 goto s_n_llhttp__internal__n_req_spaces_before_url;
4242 }
4243 default: {
4244 goto s_n_llhttp__internal__n_invoke_is_equal_method;
4245 }
4246 }
4247 /* UNREACHABLE */;
4248 abort();
4249 }
4250 case s_n_llhttp__internal__n_req_first_space_before_url:
4251 s_n_llhttp__internal__n_req_first_space_before_url: {
4252 if (p == endp) {
4253 return s_n_llhttp__internal__n_req_first_space_before_url;
4254 }
4255 switch (*p) {
4256 case ' ': {
4257 p++;
4258 goto s_n_llhttp__internal__n_req_spaces_before_url;
4259 }
4260 default: {
4261 goto s_n_llhttp__internal__n_error_88;
4262 }
4263 }
4264 /* UNREACHABLE */;
4265 abort();
4266 }
4267 case s_n_llhttp__internal__n_invoke_llhttp__on_method_complete_1:
4268 s_n_llhttp__internal__n_invoke_llhttp__on_method_complete_1: {
4269 switch (llhttp__on_method_complete(state, p, endp)) {
4270 case 0:
4271 goto s_n_llhttp__internal__n_req_first_space_before_url;
4272 case 21:
4273 goto s_n_llhttp__internal__n_pause_26;
4274 default:
4275 goto s_n_llhttp__internal__n_error_107;
4276 }
4277 /* UNREACHABLE */;
4278 abort();
4279 }
4280 case s_n_llhttp__internal__n_after_start_req_2:
4281 s_n_llhttp__internal__n_after_start_req_2: {
4282 if (p == endp) {
4283 return s_n_llhttp__internal__n_after_start_req_2;
4284 }
4285 switch (*p) {
4286 case 'L': {
4287 p++;
4288 match = 19;
4289 goto s_n_llhttp__internal__n_invoke_store_method_1;
4290 }
4291 default: {
4292 goto s_n_llhttp__internal__n_error_108;
4293 }
4294 }
4295 /* UNREACHABLE */;
4296 abort();
4297 }
4298 case s_n_llhttp__internal__n_after_start_req_3:
4299 s_n_llhttp__internal__n_after_start_req_3: {
4300 llparse_match_t match_seq;
4301
4302 if (p == endp) {
4303 return s_n_llhttp__internal__n_after_start_req_3;
4304 }
4305 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob17, 6);
4306 p = match_seq.current;
4307 switch (match_seq.status) {
4308 case kMatchComplete: {
4309 p++;
4310 match = 36;
4311 goto s_n_llhttp__internal__n_invoke_store_method_1;
4312 }
4313 case kMatchPause: {
4314 return s_n_llhttp__internal__n_after_start_req_3;
4315 }
4316 case kMatchMismatch: {
4317 goto s_n_llhttp__internal__n_error_108;
4318 }
4319 }
4320 /* UNREACHABLE */;
4321 abort();
4322 }
4323 case s_n_llhttp__internal__n_after_start_req_1:
4324 s_n_llhttp__internal__n_after_start_req_1: {
4325 if (p == endp) {
4326 return s_n_llhttp__internal__n_after_start_req_1;
4327 }
4328 switch (*p) {
4329 case 'C': {
4330 p++;
4331 goto s_n_llhttp__internal__n_after_start_req_2;
4332 }
4333 case 'N': {
4334 p++;
4335 goto s_n_llhttp__internal__n_after_start_req_3;
4336 }
4337 default: {
4338 goto s_n_llhttp__internal__n_error_108;
4339 }
4340 }
4341 /* UNREACHABLE */;
4342 abort();
4343 }
4344 case s_n_llhttp__internal__n_after_start_req_4:
4345 s_n_llhttp__internal__n_after_start_req_4: {
4346 llparse_match_t match_seq;
4347
4348 if (p == endp) {
4349 return s_n_llhttp__internal__n_after_start_req_4;
4350 }
4351 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob18, 3);
4352 p = match_seq.current;
4353 switch (match_seq.status) {
4354 case kMatchComplete: {
4355 p++;
4356 match = 16;
4357 goto s_n_llhttp__internal__n_invoke_store_method_1;
4358 }
4359 case kMatchPause: {
4360 return s_n_llhttp__internal__n_after_start_req_4;
4361 }
4362 case kMatchMismatch: {
4363 goto s_n_llhttp__internal__n_error_108;
4364 }
4365 }
4366 /* UNREACHABLE */;
4367 abort();
4368 }
4369 case s_n_llhttp__internal__n_after_start_req_6:
4370 s_n_llhttp__internal__n_after_start_req_6: {
4371 llparse_match_t match_seq;
4372
4373 if (p == endp) {
4374 return s_n_llhttp__internal__n_after_start_req_6;
4375 }
4376 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob19, 6);
4377 p = match_seq.current;
4378 switch (match_seq.status) {
4379 case kMatchComplete: {
4380 p++;
4381 match = 22;
4382 goto s_n_llhttp__internal__n_invoke_store_method_1;
4383 }
4384 case kMatchPause: {
4385 return s_n_llhttp__internal__n_after_start_req_6;
4386 }
4387 case kMatchMismatch: {
4388 goto s_n_llhttp__internal__n_error_108;
4389 }
4390 }
4391 /* UNREACHABLE */;
4392 abort();
4393 }
4394 case s_n_llhttp__internal__n_after_start_req_8:
4395 s_n_llhttp__internal__n_after_start_req_8: {
4396 llparse_match_t match_seq;
4397
4398 if (p == endp) {
4399 return s_n_llhttp__internal__n_after_start_req_8;
4400 }
4401 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob20, 4);
4402 p = match_seq.current;
4403 switch (match_seq.status) {
4404 case kMatchComplete: {
4405 p++;
4406 match = 5;
4407 goto s_n_llhttp__internal__n_invoke_store_method_1;
4408 }
4409 case kMatchPause: {
4410 return s_n_llhttp__internal__n_after_start_req_8;
4411 }
4412 case kMatchMismatch: {
4413 goto s_n_llhttp__internal__n_error_108;
4414 }
4415 }
4416 /* UNREACHABLE */;
4417 abort();
4418 }
4419 case s_n_llhttp__internal__n_after_start_req_9:
4420 s_n_llhttp__internal__n_after_start_req_9: {
4421 if (p == endp) {
4422 return s_n_llhttp__internal__n_after_start_req_9;
4423 }
4424 switch (*p) {
4425 case 'Y': {
4426 p++;
4427 match = 8;
4428 goto s_n_llhttp__internal__n_invoke_store_method_1;
4429 }
4430 default: {
4431 goto s_n_llhttp__internal__n_error_108;
4432 }
4433 }
4434 /* UNREACHABLE */;
4435 abort();
4436 }
4437 case s_n_llhttp__internal__n_after_start_req_7:
4438 s_n_llhttp__internal__n_after_start_req_7: {
4439 if (p == endp) {
4440 return s_n_llhttp__internal__n_after_start_req_7;
4441 }
4442 switch (*p) {
4443 case 'N': {
4444 p++;
4445 goto s_n_llhttp__internal__n_after_start_req_8;
4446 }
4447 case 'P': {
4448 p++;
4449 goto s_n_llhttp__internal__n_after_start_req_9;
4450 }
4451 default: {
4452 goto s_n_llhttp__internal__n_error_108;
4453 }
4454 }
4455 /* UNREACHABLE */;
4456 abort();
4457 }
4458 case s_n_llhttp__internal__n_after_start_req_5:
4459 s_n_llhttp__internal__n_after_start_req_5: {
4460 if (p == endp) {
4461 return s_n_llhttp__internal__n_after_start_req_5;
4462 }
4463 switch (*p) {
4464 case 'H': {
4465 p++;
4466 goto s_n_llhttp__internal__n_after_start_req_6;
4467 }
4468 case 'O': {
4469 p++;
4470 goto s_n_llhttp__internal__n_after_start_req_7;
4471 }
4472 default: {
4473 goto s_n_llhttp__internal__n_error_108;
4474 }
4475 }
4476 /* UNREACHABLE */;
4477 abort();
4478 }
4479 case s_n_llhttp__internal__n_after_start_req_12:
4480 s_n_llhttp__internal__n_after_start_req_12: {
4481 llparse_match_t match_seq;
4482
4483 if (p == endp) {
4484 return s_n_llhttp__internal__n_after_start_req_12;
4485 }
4486 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob21, 3);
4487 p = match_seq.current;
4488 switch (match_seq.status) {
4489 case kMatchComplete: {
4490 p++;
4491 match = 0;
4492 goto s_n_llhttp__internal__n_invoke_store_method_1;
4493 }
4494 case kMatchPause: {
4495 return s_n_llhttp__internal__n_after_start_req_12;
4496 }
4497 case kMatchMismatch: {
4498 goto s_n_llhttp__internal__n_error_108;
4499 }
4500 }
4501 /* UNREACHABLE */;
4502 abort();
4503 }
4504 case s_n_llhttp__internal__n_after_start_req_13:
4505 s_n_llhttp__internal__n_after_start_req_13: {
4506 llparse_match_t match_seq;
4507
4508 if (p == endp) {
4509 return s_n_llhttp__internal__n_after_start_req_13;
4510 }
4511 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob22, 5);
4512 p = match_seq.current;
4513 switch (match_seq.status) {
4514 case kMatchComplete: {
4515 p++;
4516 match = 35;
4517 goto s_n_llhttp__internal__n_invoke_store_method_1;
4518 }
4519 case kMatchPause: {
4520 return s_n_llhttp__internal__n_after_start_req_13;
4521 }
4522 case kMatchMismatch: {
4523 goto s_n_llhttp__internal__n_error_108;
4524 }
4525 }
4526 /* UNREACHABLE */;
4527 abort();
4528 }
4529 case s_n_llhttp__internal__n_after_start_req_11:
4530 s_n_llhttp__internal__n_after_start_req_11: {
4531 if (p == endp) {
4532 return s_n_llhttp__internal__n_after_start_req_11;
4533 }
4534 switch (*p) {
4535 case 'L': {
4536 p++;
4537 goto s_n_llhttp__internal__n_after_start_req_12;
4538 }
4539 case 'S': {
4540 p++;
4541 goto s_n_llhttp__internal__n_after_start_req_13;
4542 }
4543 default: {
4544 goto s_n_llhttp__internal__n_error_108;
4545 }
4546 }
4547 /* UNREACHABLE */;
4548 abort();
4549 }
4550 case s_n_llhttp__internal__n_after_start_req_10:
4551 s_n_llhttp__internal__n_after_start_req_10: {
4552 if (p == endp) {
4553 return s_n_llhttp__internal__n_after_start_req_10;
4554 }
4555 switch (*p) {
4556 case 'E': {
4557 p++;
4558 goto s_n_llhttp__internal__n_after_start_req_11;
4559 }
4560 default: {
4561 goto s_n_llhttp__internal__n_error_108;
4562 }
4563 }
4564 /* UNREACHABLE */;
4565 abort();
4566 }
4567 case s_n_llhttp__internal__n_after_start_req_14:
4568 s_n_llhttp__internal__n_after_start_req_14: {
4569 llparse_match_t match_seq;
4570
4571 if (p == endp) {
4572 return s_n_llhttp__internal__n_after_start_req_14;
4573 }
4574 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob23, 4);
4575 p = match_seq.current;
4576 switch (match_seq.status) {
4577 case kMatchComplete: {
4578 p++;
4579 match = 45;
4580 goto s_n_llhttp__internal__n_invoke_store_method_1;
4581 }
4582 case kMatchPause: {
4583 return s_n_llhttp__internal__n_after_start_req_14;
4584 }
4585 case kMatchMismatch: {
4586 goto s_n_llhttp__internal__n_error_108;
4587 }
4588 }
4589 /* UNREACHABLE */;
4590 abort();
4591 }
4592 case s_n_llhttp__internal__n_after_start_req_17:
4593 s_n_llhttp__internal__n_after_start_req_17: {
4594 llparse_match_t match_seq;
4595
4596 if (p == endp) {
4597 return s_n_llhttp__internal__n_after_start_req_17;
4598 }
4599 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob25, 9);
4600 p = match_seq.current;
4601 switch (match_seq.status) {
4602 case kMatchComplete: {
4603 p++;
4604 match = 41;
4605 goto s_n_llhttp__internal__n_invoke_store_method_1;
4606 }
4607 case kMatchPause: {
4608 return s_n_llhttp__internal__n_after_start_req_17;
4609 }
4610 case kMatchMismatch: {
4611 goto s_n_llhttp__internal__n_error_108;
4612 }
4613 }
4614 /* UNREACHABLE */;
4615 abort();
4616 }
4617 case s_n_llhttp__internal__n_after_start_req_16:
4618 s_n_llhttp__internal__n_after_start_req_16: {
4619 if (p == endp) {
4620 return s_n_llhttp__internal__n_after_start_req_16;
4621 }
4622 switch (*p) {
4623 case '_': {
4624 p++;
4625 goto s_n_llhttp__internal__n_after_start_req_17;
4626 }
4627 default: {
4628 match = 1;
4629 goto s_n_llhttp__internal__n_invoke_store_method_1;
4630 }
4631 }
4632 /* UNREACHABLE */;
4633 abort();
4634 }
4635 case s_n_llhttp__internal__n_after_start_req_15:
4636 s_n_llhttp__internal__n_after_start_req_15: {
4637 llparse_match_t match_seq;
4638
4639 if (p == endp) {
4640 return s_n_llhttp__internal__n_after_start_req_15;
4641 }
4642 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob24, 2);
4643 p = match_seq.current;
4644 switch (match_seq.status) {
4645 case kMatchComplete: {
4646 p++;
4647 goto s_n_llhttp__internal__n_after_start_req_16;
4648 }
4649 case kMatchPause: {
4650 return s_n_llhttp__internal__n_after_start_req_15;
4651 }
4652 case kMatchMismatch: {
4653 goto s_n_llhttp__internal__n_error_108;
4654 }
4655 }
4656 /* UNREACHABLE */;
4657 abort();
4658 }
4659 case s_n_llhttp__internal__n_after_start_req_18:
4660 s_n_llhttp__internal__n_after_start_req_18: {
4661 llparse_match_t match_seq;
4662
4663 if (p == endp) {
4664 return s_n_llhttp__internal__n_after_start_req_18;
4665 }
4666 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob26, 3);
4667 p = match_seq.current;
4668 switch (match_seq.status) {
4669 case kMatchComplete: {
4670 p++;
4671 match = 2;
4672 goto s_n_llhttp__internal__n_invoke_store_method_1;
4673 }
4674 case kMatchPause: {
4675 return s_n_llhttp__internal__n_after_start_req_18;
4676 }
4677 case kMatchMismatch: {
4678 goto s_n_llhttp__internal__n_error_108;
4679 }
4680 }
4681 /* UNREACHABLE */;
4682 abort();
4683 }
4684 case s_n_llhttp__internal__n_after_start_req_20:
4685 s_n_llhttp__internal__n_after_start_req_20: {
4686 llparse_match_t match_seq;
4687
4688 if (p == endp) {
4689 return s_n_llhttp__internal__n_after_start_req_20;
4690 }
4691 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob27, 2);
4692 p = match_seq.current;
4693 switch (match_seq.status) {
4694 case kMatchComplete: {
4695 p++;
4696 match = 31;
4697 goto s_n_llhttp__internal__n_invoke_store_method_1;
4698 }
4699 case kMatchPause: {
4700 return s_n_llhttp__internal__n_after_start_req_20;
4701 }
4702 case kMatchMismatch: {
4703 goto s_n_llhttp__internal__n_error_108;
4704 }
4705 }
4706 /* UNREACHABLE */;
4707 abort();
4708 }
4709 case s_n_llhttp__internal__n_after_start_req_21:
4710 s_n_llhttp__internal__n_after_start_req_21: {
4711 llparse_match_t match_seq;
4712
4713 if (p == endp) {
4714 return s_n_llhttp__internal__n_after_start_req_21;
4715 }
4716 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob28, 2);
4717 p = match_seq.current;
4718 switch (match_seq.status) {
4719 case kMatchComplete: {
4720 p++;
4721 match = 9;
4722 goto s_n_llhttp__internal__n_invoke_store_method_1;
4723 }
4724 case kMatchPause: {
4725 return s_n_llhttp__internal__n_after_start_req_21;
4726 }
4727 case kMatchMismatch: {
4728 goto s_n_llhttp__internal__n_error_108;
4729 }
4730 }
4731 /* UNREACHABLE */;
4732 abort();
4733 }
4734 case s_n_llhttp__internal__n_after_start_req_19:
4735 s_n_llhttp__internal__n_after_start_req_19: {
4736 if (p == endp) {
4737 return s_n_llhttp__internal__n_after_start_req_19;
4738 }
4739 switch (*p) {
4740 case 'I': {
4741 p++;
4742 goto s_n_llhttp__internal__n_after_start_req_20;
4743 }
4744 case 'O': {
4745 p++;
4746 goto s_n_llhttp__internal__n_after_start_req_21;
4747 }
4748 default: {
4749 goto s_n_llhttp__internal__n_error_108;
4750 }
4751 }
4752 /* UNREACHABLE */;
4753 abort();
4754 }
4755 case s_n_llhttp__internal__n_after_start_req_23:
4756 s_n_llhttp__internal__n_after_start_req_23: {
4757 llparse_match_t match_seq;
4758
4759 if (p == endp) {
4760 return s_n_llhttp__internal__n_after_start_req_23;
4761 }
4762 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob29, 6);
4763 p = match_seq.current;
4764 switch (match_seq.status) {
4765 case kMatchComplete: {
4766 p++;
4767 match = 24;
4768 goto s_n_llhttp__internal__n_invoke_store_method_1;
4769 }
4770 case kMatchPause: {
4771 return s_n_llhttp__internal__n_after_start_req_23;
4772 }
4773 case kMatchMismatch: {
4774 goto s_n_llhttp__internal__n_error_108;
4775 }
4776 }
4777 /* UNREACHABLE */;
4778 abort();
4779 }
4780 case s_n_llhttp__internal__n_after_start_req_24:
4781 s_n_llhttp__internal__n_after_start_req_24: {
4782 llparse_match_t match_seq;
4783
4784 if (p == endp) {
4785 return s_n_llhttp__internal__n_after_start_req_24;
4786 }
4787 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob30, 3);
4788 p = match_seq.current;
4789 switch (match_seq.status) {
4790 case kMatchComplete: {
4791 p++;
4792 match = 23;
4793 goto s_n_llhttp__internal__n_invoke_store_method_1;
4794 }
4795 case kMatchPause: {
4796 return s_n_llhttp__internal__n_after_start_req_24;
4797 }
4798 case kMatchMismatch: {
4799 goto s_n_llhttp__internal__n_error_108;
4800 }
4801 }
4802 /* UNREACHABLE */;
4803 abort();
4804 }
4805 case s_n_llhttp__internal__n_after_start_req_26:
4806 s_n_llhttp__internal__n_after_start_req_26: {
4807 llparse_match_t match_seq;
4808
4809 if (p == endp) {
4810 return s_n_llhttp__internal__n_after_start_req_26;
4811 }
4812 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob31, 7);
4813 p = match_seq.current;
4814 switch (match_seq.status) {
4815 case kMatchComplete: {
4816 p++;
4817 match = 21;
4818 goto s_n_llhttp__internal__n_invoke_store_method_1;
4819 }
4820 case kMatchPause: {
4821 return s_n_llhttp__internal__n_after_start_req_26;
4822 }
4823 case kMatchMismatch: {
4824 goto s_n_llhttp__internal__n_error_108;
4825 }
4826 }
4827 /* UNREACHABLE */;
4828 abort();
4829 }
4830 case s_n_llhttp__internal__n_after_start_req_28:
4831 s_n_llhttp__internal__n_after_start_req_28: {
4832 llparse_match_t match_seq;
4833
4834 if (p == endp) {
4835 return s_n_llhttp__internal__n_after_start_req_28;
4836 }
4837 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob32, 6);
4838 p = match_seq.current;
4839 switch (match_seq.status) {
4840 case kMatchComplete: {
4841 p++;
4842 match = 30;
4843 goto s_n_llhttp__internal__n_invoke_store_method_1;
4844 }
4845 case kMatchPause: {
4846 return s_n_llhttp__internal__n_after_start_req_28;
4847 }
4848 case kMatchMismatch: {
4849 goto s_n_llhttp__internal__n_error_108;
4850 }
4851 }
4852 /* UNREACHABLE */;
4853 abort();
4854 }
4855 case s_n_llhttp__internal__n_after_start_req_29:
4856 s_n_llhttp__internal__n_after_start_req_29: {
4857 if (p == endp) {
4858 return s_n_llhttp__internal__n_after_start_req_29;
4859 }
4860 switch (*p) {
4861 case 'L': {
4862 p++;
4863 match = 10;
4864 goto s_n_llhttp__internal__n_invoke_store_method_1;
4865 }
4866 default: {
4867 goto s_n_llhttp__internal__n_error_108;
4868 }
4869 }
4870 /* UNREACHABLE */;
4871 abort();
4872 }
4873 case s_n_llhttp__internal__n_after_start_req_27:
4874 s_n_llhttp__internal__n_after_start_req_27: {
4875 if (p == endp) {
4876 return s_n_llhttp__internal__n_after_start_req_27;
4877 }
4878 switch (*p) {
4879 case 'A': {
4880 p++;
4881 goto s_n_llhttp__internal__n_after_start_req_28;
4882 }
4883 case 'O': {
4884 p++;
4885 goto s_n_llhttp__internal__n_after_start_req_29;
4886 }
4887 default: {
4888 goto s_n_llhttp__internal__n_error_108;
4889 }
4890 }
4891 /* UNREACHABLE */;
4892 abort();
4893 }
4894 case s_n_llhttp__internal__n_after_start_req_25:
4895 s_n_llhttp__internal__n_after_start_req_25: {
4896 if (p == endp) {
4897 return s_n_llhttp__internal__n_after_start_req_25;
4898 }
4899 switch (*p) {
4900 case 'A': {
4901 p++;
4902 goto s_n_llhttp__internal__n_after_start_req_26;
4903 }
4904 case 'C': {
4905 p++;
4906 goto s_n_llhttp__internal__n_after_start_req_27;
4907 }
4908 default: {
4909 goto s_n_llhttp__internal__n_error_108;
4910 }
4911 }
4912 /* UNREACHABLE */;
4913 abort();
4914 }
4915 case s_n_llhttp__internal__n_after_start_req_30:
4916 s_n_llhttp__internal__n_after_start_req_30: {
4917 llparse_match_t match_seq;
4918
4919 if (p == endp) {
4920 return s_n_llhttp__internal__n_after_start_req_30;
4921 }
4922 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob33, 2);
4923 p = match_seq.current;
4924 switch (match_seq.status) {
4925 case kMatchComplete: {
4926 p++;
4927 match = 11;
4928 goto s_n_llhttp__internal__n_invoke_store_method_1;
4929 }
4930 case kMatchPause: {
4931 return s_n_llhttp__internal__n_after_start_req_30;
4932 }
4933 case kMatchMismatch: {
4934 goto s_n_llhttp__internal__n_error_108;
4935 }
4936 }
4937 /* UNREACHABLE */;
4938 abort();
4939 }
4940 case s_n_llhttp__internal__n_after_start_req_22:
4941 s_n_llhttp__internal__n_after_start_req_22: {
4942 if (p == endp) {
4943 return s_n_llhttp__internal__n_after_start_req_22;
4944 }
4945 switch (*p) {
4946 case '-': {
4947 p++;
4948 goto s_n_llhttp__internal__n_after_start_req_23;
4949 }
4950 case 'E': {
4951 p++;
4952 goto s_n_llhttp__internal__n_after_start_req_24;
4953 }
4954 case 'K': {
4955 p++;
4956 goto s_n_llhttp__internal__n_after_start_req_25;
4957 }
4958 case 'O': {
4959 p++;
4960 goto s_n_llhttp__internal__n_after_start_req_30;
4961 }
4962 default: {
4963 goto s_n_llhttp__internal__n_error_108;
4964 }
4965 }
4966 /* UNREACHABLE */;
4967 abort();
4968 }
4969 case s_n_llhttp__internal__n_after_start_req_31:
4970 s_n_llhttp__internal__n_after_start_req_31: {
4971 llparse_match_t match_seq;
4972
4973 if (p == endp) {
4974 return s_n_llhttp__internal__n_after_start_req_31;
4975 }
4976 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob34, 5);
4977 p = match_seq.current;
4978 switch (match_seq.status) {
4979 case kMatchComplete: {
4980 p++;
4981 match = 25;
4982 goto s_n_llhttp__internal__n_invoke_store_method_1;
4983 }
4984 case kMatchPause: {
4985 return s_n_llhttp__internal__n_after_start_req_31;
4986 }
4987 case kMatchMismatch: {
4988 goto s_n_llhttp__internal__n_error_108;
4989 }
4990 }
4991 /* UNREACHABLE */;
4992 abort();
4993 }
4994 case s_n_llhttp__internal__n_after_start_req_32:
4995 s_n_llhttp__internal__n_after_start_req_32: {
4996 llparse_match_t match_seq;
4997
4998 if (p == endp) {
4999 return s_n_llhttp__internal__n_after_start_req_32;
5000 }
5001 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob35, 6);
5002 p = match_seq.current;
5003 switch (match_seq.status) {
5004 case kMatchComplete: {
5005 p++;
5006 match = 6;
5007 goto s_n_llhttp__internal__n_invoke_store_method_1;
5008 }
5009 case kMatchPause: {
5010 return s_n_llhttp__internal__n_after_start_req_32;
5011 }
5012 case kMatchMismatch: {
5013 goto s_n_llhttp__internal__n_error_108;
5014 }
5015 }
5016 /* UNREACHABLE */;
5017 abort();
5018 }
5019 case s_n_llhttp__internal__n_after_start_req_35:
5020 s_n_llhttp__internal__n_after_start_req_35: {
5021 llparse_match_t match_seq;
5022
5023 if (p == endp) {
5024 return s_n_llhttp__internal__n_after_start_req_35;
5025 }
5026 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob36, 2);
5027 p = match_seq.current;
5028 switch (match_seq.status) {
5029 case kMatchComplete: {
5030 p++;
5031 match = 28;
5032 goto s_n_llhttp__internal__n_invoke_store_method_1;
5033 }
5034 case kMatchPause: {
5035 return s_n_llhttp__internal__n_after_start_req_35;
5036 }
5037 case kMatchMismatch: {
5038 goto s_n_llhttp__internal__n_error_108;
5039 }
5040 }
5041 /* UNREACHABLE */;
5042 abort();
5043 }
5044 case s_n_llhttp__internal__n_after_start_req_36:
5045 s_n_llhttp__internal__n_after_start_req_36: {
5046 llparse_match_t match_seq;
5047
5048 if (p == endp) {
5049 return s_n_llhttp__internal__n_after_start_req_36;
5050 }
5051 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob37, 2);
5052 p = match_seq.current;
5053 switch (match_seq.status) {
5054 case kMatchComplete: {
5055 p++;
5056 match = 39;
5057 goto s_n_llhttp__internal__n_invoke_store_method_1;
5058 }
5059 case kMatchPause: {
5060 return s_n_llhttp__internal__n_after_start_req_36;
5061 }
5062 case kMatchMismatch: {
5063 goto s_n_llhttp__internal__n_error_108;
5064 }
5065 }
5066 /* UNREACHABLE */;
5067 abort();
5068 }
5069 case s_n_llhttp__internal__n_after_start_req_34:
5070 s_n_llhttp__internal__n_after_start_req_34: {
5071 if (p == endp) {
5072 return s_n_llhttp__internal__n_after_start_req_34;
5073 }
5074 switch (*p) {
5075 case 'T': {
5076 p++;
5077 goto s_n_llhttp__internal__n_after_start_req_35;
5078 }
5079 case 'U': {
5080 p++;
5081 goto s_n_llhttp__internal__n_after_start_req_36;
5082 }
5083 default: {
5084 goto s_n_llhttp__internal__n_error_108;
5085 }
5086 }
5087 /* UNREACHABLE */;
5088 abort();
5089 }
5090 case s_n_llhttp__internal__n_after_start_req_37:
5091 s_n_llhttp__internal__n_after_start_req_37: {
5092 llparse_match_t match_seq;
5093
5094 if (p == endp) {
5095 return s_n_llhttp__internal__n_after_start_req_37;
5096 }
5097 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob38, 2);
5098 p = match_seq.current;
5099 switch (match_seq.status) {
5100 case kMatchComplete: {
5101 p++;
5102 match = 38;
5103 goto s_n_llhttp__internal__n_invoke_store_method_1;
5104 }
5105 case kMatchPause: {
5106 return s_n_llhttp__internal__n_after_start_req_37;
5107 }
5108 case kMatchMismatch: {
5109 goto s_n_llhttp__internal__n_error_108;
5110 }
5111 }
5112 /* UNREACHABLE */;
5113 abort();
5114 }
5115 case s_n_llhttp__internal__n_after_start_req_38:
5116 s_n_llhttp__internal__n_after_start_req_38: {
5117 llparse_match_t match_seq;
5118
5119 if (p == endp) {
5120 return s_n_llhttp__internal__n_after_start_req_38;
5121 }
5122 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob39, 2);
5123 p = match_seq.current;
5124 switch (match_seq.status) {
5125 case kMatchComplete: {
5126 p++;
5127 match = 3;
5128 goto s_n_llhttp__internal__n_invoke_store_method_1;
5129 }
5130 case kMatchPause: {
5131 return s_n_llhttp__internal__n_after_start_req_38;
5132 }
5133 case kMatchMismatch: {
5134 goto s_n_llhttp__internal__n_error_108;
5135 }
5136 }
5137 /* UNREACHABLE */;
5138 abort();
5139 }
5140 case s_n_llhttp__internal__n_after_start_req_42:
5141 s_n_llhttp__internal__n_after_start_req_42: {
5142 llparse_match_t match_seq;
5143
5144 if (p == endp) {
5145 return s_n_llhttp__internal__n_after_start_req_42;
5146 }
5147 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob40, 3);
5148 p = match_seq.current;
5149 switch (match_seq.status) {
5150 case kMatchComplete: {
5151 p++;
5152 match = 12;
5153 goto s_n_llhttp__internal__n_invoke_store_method_1;
5154 }
5155 case kMatchPause: {
5156 return s_n_llhttp__internal__n_after_start_req_42;
5157 }
5158 case kMatchMismatch: {
5159 goto s_n_llhttp__internal__n_error_108;
5160 }
5161 }
5162 /* UNREACHABLE */;
5163 abort();
5164 }
5165 case s_n_llhttp__internal__n_after_start_req_43:
5166 s_n_llhttp__internal__n_after_start_req_43: {
5167 llparse_match_t match_seq;
5168
5169 if (p == endp) {
5170 return s_n_llhttp__internal__n_after_start_req_43;
5171 }
5172 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob41, 4);
5173 p = match_seq.current;
5174 switch (match_seq.status) {
5175 case kMatchComplete: {
5176 p++;
5177 match = 13;
5178 goto s_n_llhttp__internal__n_invoke_store_method_1;
5179 }
5180 case kMatchPause: {
5181 return s_n_llhttp__internal__n_after_start_req_43;
5182 }
5183 case kMatchMismatch: {
5184 goto s_n_llhttp__internal__n_error_108;
5185 }
5186 }
5187 /* UNREACHABLE */;
5188 abort();
5189 }
5190 case s_n_llhttp__internal__n_after_start_req_41:
5191 s_n_llhttp__internal__n_after_start_req_41: {
5192 if (p == endp) {
5193 return s_n_llhttp__internal__n_after_start_req_41;
5194 }
5195 switch (*p) {
5196 case 'F': {
5197 p++;
5198 goto s_n_llhttp__internal__n_after_start_req_42;
5199 }
5200 case 'P': {
5201 p++;
5202 goto s_n_llhttp__internal__n_after_start_req_43;
5203 }
5204 default: {
5205 goto s_n_llhttp__internal__n_error_108;
5206 }
5207 }
5208 /* UNREACHABLE */;
5209 abort();
5210 }
5211 case s_n_llhttp__internal__n_after_start_req_40:
5212 s_n_llhttp__internal__n_after_start_req_40: {
5213 if (p == endp) {
5214 return s_n_llhttp__internal__n_after_start_req_40;
5215 }
5216 switch (*p) {
5217 case 'P': {
5218 p++;
5219 goto s_n_llhttp__internal__n_after_start_req_41;
5220 }
5221 default: {
5222 goto s_n_llhttp__internal__n_error_108;
5223 }
5224 }
5225 /* UNREACHABLE */;
5226 abort();
5227 }
5228 case s_n_llhttp__internal__n_after_start_req_39:
5229 s_n_llhttp__internal__n_after_start_req_39: {
5230 if (p == endp) {
5231 return s_n_llhttp__internal__n_after_start_req_39;
5232 }
5233 switch (*p) {
5234 case 'I': {
5235 p++;
5236 match = 34;
5237 goto s_n_llhttp__internal__n_invoke_store_method_1;
5238 }
5239 case 'O': {
5240 p++;
5241 goto s_n_llhttp__internal__n_after_start_req_40;
5242 }
5243 default: {
5244 goto s_n_llhttp__internal__n_error_108;
5245 }
5246 }
5247 /* UNREACHABLE */;
5248 abort();
5249 }
5250 case s_n_llhttp__internal__n_after_start_req_45:
5251 s_n_llhttp__internal__n_after_start_req_45: {
5252 llparse_match_t match_seq;
5253
5254 if (p == endp) {
5255 return s_n_llhttp__internal__n_after_start_req_45;
5256 }
5257 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob42, 2);
5258 p = match_seq.current;
5259 switch (match_seq.status) {
5260 case kMatchComplete: {
5261 p++;
5262 match = 29;
5263 goto s_n_llhttp__internal__n_invoke_store_method_1;
5264 }
5265 case kMatchPause: {
5266 return s_n_llhttp__internal__n_after_start_req_45;
5267 }
5268 case kMatchMismatch: {
5269 goto s_n_llhttp__internal__n_error_108;
5270 }
5271 }
5272 /* UNREACHABLE */;
5273 abort();
5274 }
5275 case s_n_llhttp__internal__n_after_start_req_44:
5276 s_n_llhttp__internal__n_after_start_req_44: {
5277 if (p == endp) {
5278 return s_n_llhttp__internal__n_after_start_req_44;
5279 }
5280 switch (*p) {
5281 case 'R': {
5282 p++;
5283 goto s_n_llhttp__internal__n_after_start_req_45;
5284 }
5285 case 'T': {
5286 p++;
5287 match = 4;
5288 goto s_n_llhttp__internal__n_invoke_store_method_1;
5289 }
5290 default: {
5291 goto s_n_llhttp__internal__n_error_108;
5292 }
5293 }
5294 /* UNREACHABLE */;
5295 abort();
5296 }
5297 case s_n_llhttp__internal__n_after_start_req_33:
5298 s_n_llhttp__internal__n_after_start_req_33: {
5299 if (p == endp) {
5300 return s_n_llhttp__internal__n_after_start_req_33;
5301 }
5302 switch (*p) {
5303 case 'A': {
5304 p++;
5305 goto s_n_llhttp__internal__n_after_start_req_34;
5306 }
5307 case 'L': {
5308 p++;
5309 goto s_n_llhttp__internal__n_after_start_req_37;
5310 }
5311 case 'O': {
5312 p++;
5313 goto s_n_llhttp__internal__n_after_start_req_38;
5314 }
5315 case 'R': {
5316 p++;
5317 goto s_n_llhttp__internal__n_after_start_req_39;
5318 }
5319 case 'U': {
5320 p++;
5321 goto s_n_llhttp__internal__n_after_start_req_44;
5322 }
5323 default: {
5324 goto s_n_llhttp__internal__n_error_108;
5325 }
5326 }
5327 /* UNREACHABLE */;
5328 abort();
5329 }
5330 case s_n_llhttp__internal__n_after_start_req_46:
5331 s_n_llhttp__internal__n_after_start_req_46: {
5332 llparse_match_t match_seq;
5333
5334 if (p == endp) {
5335 return s_n_llhttp__internal__n_after_start_req_46;
5336 }
5337 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob43, 4);
5338 p = match_seq.current;
5339 switch (match_seq.status) {
5340 case kMatchComplete: {
5341 p++;
5342 match = 46;
5343 goto s_n_llhttp__internal__n_invoke_store_method_1;
5344 }
5345 case kMatchPause: {
5346 return s_n_llhttp__internal__n_after_start_req_46;
5347 }
5348 case kMatchMismatch: {
5349 goto s_n_llhttp__internal__n_error_108;
5350 }
5351 }
5352 /* UNREACHABLE */;
5353 abort();
5354 }
5355 case s_n_llhttp__internal__n_after_start_req_49:
5356 s_n_llhttp__internal__n_after_start_req_49: {
5357 llparse_match_t match_seq;
5358
5359 if (p == endp) {
5360 return s_n_llhttp__internal__n_after_start_req_49;
5361 }
5362 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob44, 3);
5363 p = match_seq.current;
5364 switch (match_seq.status) {
5365 case kMatchComplete: {
5366 p++;
5367 match = 17;
5368 goto s_n_llhttp__internal__n_invoke_store_method_1;
5369 }
5370 case kMatchPause: {
5371 return s_n_llhttp__internal__n_after_start_req_49;
5372 }
5373 case kMatchMismatch: {
5374 goto s_n_llhttp__internal__n_error_108;
5375 }
5376 }
5377 /* UNREACHABLE */;
5378 abort();
5379 }
5380 case s_n_llhttp__internal__n_after_start_req_50:
5381 s_n_llhttp__internal__n_after_start_req_50: {
5382 llparse_match_t match_seq;
5383
5384 if (p == endp) {
5385 return s_n_llhttp__internal__n_after_start_req_50;
5386 }
5387 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob45, 3);
5388 p = match_seq.current;
5389 switch (match_seq.status) {
5390 case kMatchComplete: {
5391 p++;
5392 match = 44;
5393 goto s_n_llhttp__internal__n_invoke_store_method_1;
5394 }
5395 case kMatchPause: {
5396 return s_n_llhttp__internal__n_after_start_req_50;
5397 }
5398 case kMatchMismatch: {
5399 goto s_n_llhttp__internal__n_error_108;
5400 }
5401 }
5402 /* UNREACHABLE */;
5403 abort();
5404 }
5405 case s_n_llhttp__internal__n_after_start_req_51:
5406 s_n_llhttp__internal__n_after_start_req_51: {
5407 llparse_match_t match_seq;
5408
5409 if (p == endp) {
5410 return s_n_llhttp__internal__n_after_start_req_51;
5411 }
5412 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob46, 5);
5413 p = match_seq.current;
5414 switch (match_seq.status) {
5415 case kMatchComplete: {
5416 p++;
5417 match = 43;
5418 goto s_n_llhttp__internal__n_invoke_store_method_1;
5419 }
5420 case kMatchPause: {
5421 return s_n_llhttp__internal__n_after_start_req_51;
5422 }
5423 case kMatchMismatch: {
5424 goto s_n_llhttp__internal__n_error_108;
5425 }
5426 }
5427 /* UNREACHABLE */;
5428 abort();
5429 }
5430 case s_n_llhttp__internal__n_after_start_req_52:
5431 s_n_llhttp__internal__n_after_start_req_52: {
5432 llparse_match_t match_seq;
5433
5434 if (p == endp) {
5435 return s_n_llhttp__internal__n_after_start_req_52;
5436 }
5437 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob47, 3);
5438 p = match_seq.current;
5439 switch (match_seq.status) {
5440 case kMatchComplete: {
5441 p++;
5442 match = 20;
5443 goto s_n_llhttp__internal__n_invoke_store_method_1;
5444 }
5445 case kMatchPause: {
5446 return s_n_llhttp__internal__n_after_start_req_52;
5447 }
5448 case kMatchMismatch: {
5449 goto s_n_llhttp__internal__n_error_108;
5450 }
5451 }
5452 /* UNREACHABLE */;
5453 abort();
5454 }
5455 case s_n_llhttp__internal__n_after_start_req_48:
5456 s_n_llhttp__internal__n_after_start_req_48: {
5457 if (p == endp) {
5458 return s_n_llhttp__internal__n_after_start_req_48;
5459 }
5460 switch (*p) {
5461 case 'B': {
5462 p++;
5463 goto s_n_llhttp__internal__n_after_start_req_49;
5464 }
5465 case 'C': {
5466 p++;
5467 goto s_n_llhttp__internal__n_after_start_req_50;
5468 }
5469 case 'D': {
5470 p++;
5471 goto s_n_llhttp__internal__n_after_start_req_51;
5472 }
5473 case 'P': {
5474 p++;
5475 goto s_n_llhttp__internal__n_after_start_req_52;
5476 }
5477 default: {
5478 goto s_n_llhttp__internal__n_error_108;
5479 }
5480 }
5481 /* UNREACHABLE */;
5482 abort();
5483 }
5484 case s_n_llhttp__internal__n_after_start_req_47:
5485 s_n_llhttp__internal__n_after_start_req_47: {
5486 if (p == endp) {
5487 return s_n_llhttp__internal__n_after_start_req_47;
5488 }
5489 switch (*p) {
5490 case 'E': {
5491 p++;
5492 goto s_n_llhttp__internal__n_after_start_req_48;
5493 }
5494 default: {
5495 goto s_n_llhttp__internal__n_error_108;
5496 }
5497 }
5498 /* UNREACHABLE */;
5499 abort();
5500 }
5501 case s_n_llhttp__internal__n_after_start_req_55:
5502 s_n_llhttp__internal__n_after_start_req_55: {
5503 llparse_match_t match_seq;
5504
5505 if (p == endp) {
5506 return s_n_llhttp__internal__n_after_start_req_55;
5507 }
5508 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob48, 3);
5509 p = match_seq.current;
5510 switch (match_seq.status) {
5511 case kMatchComplete: {
5512 p++;
5513 match = 14;
5514 goto s_n_llhttp__internal__n_invoke_store_method_1;
5515 }
5516 case kMatchPause: {
5517 return s_n_llhttp__internal__n_after_start_req_55;
5518 }
5519 case kMatchMismatch: {
5520 goto s_n_llhttp__internal__n_error_108;
5521 }
5522 }
5523 /* UNREACHABLE */;
5524 abort();
5525 }
5526 case s_n_llhttp__internal__n_after_start_req_57:
5527 s_n_llhttp__internal__n_after_start_req_57: {
5528 if (p == endp) {
5529 return s_n_llhttp__internal__n_after_start_req_57;
5530 }
5531 switch (*p) {
5532 case 'P': {
5533 p++;
5534 match = 37;
5535 goto s_n_llhttp__internal__n_invoke_store_method_1;
5536 }
5537 default: {
5538 goto s_n_llhttp__internal__n_error_108;
5539 }
5540 }
5541 /* UNREACHABLE */;
5542 abort();
5543 }
5544 case s_n_llhttp__internal__n_after_start_req_58:
5545 s_n_llhttp__internal__n_after_start_req_58: {
5546 llparse_match_t match_seq;
5547
5548 if (p == endp) {
5549 return s_n_llhttp__internal__n_after_start_req_58;
5550 }
5551 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob49, 9);
5552 p = match_seq.current;
5553 switch (match_seq.status) {
5554 case kMatchComplete: {
5555 p++;
5556 match = 42;
5557 goto s_n_llhttp__internal__n_invoke_store_method_1;
5558 }
5559 case kMatchPause: {
5560 return s_n_llhttp__internal__n_after_start_req_58;
5561 }
5562 case kMatchMismatch: {
5563 goto s_n_llhttp__internal__n_error_108;
5564 }
5565 }
5566 /* UNREACHABLE */;
5567 abort();
5568 }
5569 case s_n_llhttp__internal__n_after_start_req_56:
5570 s_n_llhttp__internal__n_after_start_req_56: {
5571 if (p == endp) {
5572 return s_n_llhttp__internal__n_after_start_req_56;
5573 }
5574 switch (*p) {
5575 case 'U': {
5576 p++;
5577 goto s_n_llhttp__internal__n_after_start_req_57;
5578 }
5579 case '_': {
5580 p++;
5581 goto s_n_llhttp__internal__n_after_start_req_58;
5582 }
5583 default: {
5584 goto s_n_llhttp__internal__n_error_108;
5585 }
5586 }
5587 /* UNREACHABLE */;
5588 abort();
5589 }
5590 case s_n_llhttp__internal__n_after_start_req_54:
5591 s_n_llhttp__internal__n_after_start_req_54: {
5592 if (p == endp) {
5593 return s_n_llhttp__internal__n_after_start_req_54;
5594 }
5595 switch (*p) {
5596 case 'A': {
5597 p++;
5598 goto s_n_llhttp__internal__n_after_start_req_55;
5599 }
5600 case 'T': {
5601 p++;
5602 goto s_n_llhttp__internal__n_after_start_req_56;
5603 }
5604 default: {
5605 goto s_n_llhttp__internal__n_error_108;
5606 }
5607 }
5608 /* UNREACHABLE */;
5609 abort();
5610 }
5611 case s_n_llhttp__internal__n_after_start_req_59:
5612 s_n_llhttp__internal__n_after_start_req_59: {
5613 llparse_match_t match_seq;
5614
5615 if (p == endp) {
5616 return s_n_llhttp__internal__n_after_start_req_59;
5617 }
5618 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob50, 4);
5619 p = match_seq.current;
5620 switch (match_seq.status) {
5621 case kMatchComplete: {
5622 p++;
5623 match = 33;
5624 goto s_n_llhttp__internal__n_invoke_store_method_1;
5625 }
5626 case kMatchPause: {
5627 return s_n_llhttp__internal__n_after_start_req_59;
5628 }
5629 case kMatchMismatch: {
5630 goto s_n_llhttp__internal__n_error_108;
5631 }
5632 }
5633 /* UNREACHABLE */;
5634 abort();
5635 }
5636 case s_n_llhttp__internal__n_after_start_req_60:
5637 s_n_llhttp__internal__n_after_start_req_60: {
5638 llparse_match_t match_seq;
5639
5640 if (p == endp) {
5641 return s_n_llhttp__internal__n_after_start_req_60;
5642 }
5643 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob51, 7);
5644 p = match_seq.current;
5645 switch (match_seq.status) {
5646 case kMatchComplete: {
5647 p++;
5648 match = 26;
5649 goto s_n_llhttp__internal__n_invoke_store_method_1;
5650 }
5651 case kMatchPause: {
5652 return s_n_llhttp__internal__n_after_start_req_60;
5653 }
5654 case kMatchMismatch: {
5655 goto s_n_llhttp__internal__n_error_108;
5656 }
5657 }
5658 /* UNREACHABLE */;
5659 abort();
5660 }
5661 case s_n_llhttp__internal__n_after_start_req_53:
5662 s_n_llhttp__internal__n_after_start_req_53: {
5663 if (p == endp) {
5664 return s_n_llhttp__internal__n_after_start_req_53;
5665 }
5666 switch (*p) {
5667 case 'E': {
5668 p++;
5669 goto s_n_llhttp__internal__n_after_start_req_54;
5670 }
5671 case 'O': {
5672 p++;
5673 goto s_n_llhttp__internal__n_after_start_req_59;
5674 }
5675 case 'U': {
5676 p++;
5677 goto s_n_llhttp__internal__n_after_start_req_60;
5678 }
5679 default: {
5680 goto s_n_llhttp__internal__n_error_108;
5681 }
5682 }
5683 /* UNREACHABLE */;
5684 abort();
5685 }
5686 case s_n_llhttp__internal__n_after_start_req_62:
5687 s_n_llhttp__internal__n_after_start_req_62: {
5688 llparse_match_t match_seq;
5689
5690 if (p == endp) {
5691 return s_n_llhttp__internal__n_after_start_req_62;
5692 }
5693 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob52, 6);
5694 p = match_seq.current;
5695 switch (match_seq.status) {
5696 case kMatchComplete: {
5697 p++;
5698 match = 40;
5699 goto s_n_llhttp__internal__n_invoke_store_method_1;
5700 }
5701 case kMatchPause: {
5702 return s_n_llhttp__internal__n_after_start_req_62;
5703 }
5704 case kMatchMismatch: {
5705 goto s_n_llhttp__internal__n_error_108;
5706 }
5707 }
5708 /* UNREACHABLE */;
5709 abort();
5710 }
5711 case s_n_llhttp__internal__n_after_start_req_63:
5712 s_n_llhttp__internal__n_after_start_req_63: {
5713 llparse_match_t match_seq;
5714
5715 if (p == endp) {
5716 return s_n_llhttp__internal__n_after_start_req_63;
5717 }
5718 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob53, 3);
5719 p = match_seq.current;
5720 switch (match_seq.status) {
5721 case kMatchComplete: {
5722 p++;
5723 match = 7;
5724 goto s_n_llhttp__internal__n_invoke_store_method_1;
5725 }
5726 case kMatchPause: {
5727 return s_n_llhttp__internal__n_after_start_req_63;
5728 }
5729 case kMatchMismatch: {
5730 goto s_n_llhttp__internal__n_error_108;
5731 }
5732 }
5733 /* UNREACHABLE */;
5734 abort();
5735 }
5736 case s_n_llhttp__internal__n_after_start_req_61:
5737 s_n_llhttp__internal__n_after_start_req_61: {
5738 if (p == endp) {
5739 return s_n_llhttp__internal__n_after_start_req_61;
5740 }
5741 switch (*p) {
5742 case 'E': {
5743 p++;
5744 goto s_n_llhttp__internal__n_after_start_req_62;
5745 }
5746 case 'R': {
5747 p++;
5748 goto s_n_llhttp__internal__n_after_start_req_63;
5749 }
5750 default: {
5751 goto s_n_llhttp__internal__n_error_108;
5752 }
5753 }
5754 /* UNREACHABLE */;
5755 abort();
5756 }
5757 case s_n_llhttp__internal__n_after_start_req_66:
5758 s_n_llhttp__internal__n_after_start_req_66: {
5759 llparse_match_t match_seq;
5760
5761 if (p == endp) {
5762 return s_n_llhttp__internal__n_after_start_req_66;
5763 }
5764 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob54, 3);
5765 p = match_seq.current;
5766 switch (match_seq.status) {
5767 case kMatchComplete: {
5768 p++;
5769 match = 18;
5770 goto s_n_llhttp__internal__n_invoke_store_method_1;
5771 }
5772 case kMatchPause: {
5773 return s_n_llhttp__internal__n_after_start_req_66;
5774 }
5775 case kMatchMismatch: {
5776 goto s_n_llhttp__internal__n_error_108;
5777 }
5778 }
5779 /* UNREACHABLE */;
5780 abort();
5781 }
5782 case s_n_llhttp__internal__n_after_start_req_68:
5783 s_n_llhttp__internal__n_after_start_req_68: {
5784 llparse_match_t match_seq;
5785
5786 if (p == endp) {
5787 return s_n_llhttp__internal__n_after_start_req_68;
5788 }
5789 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob55, 2);
5790 p = match_seq.current;
5791 switch (match_seq.status) {
5792 case kMatchComplete: {
5793 p++;
5794 match = 32;
5795 goto s_n_llhttp__internal__n_invoke_store_method_1;
5796 }
5797 case kMatchPause: {
5798 return s_n_llhttp__internal__n_after_start_req_68;
5799 }
5800 case kMatchMismatch: {
5801 goto s_n_llhttp__internal__n_error_108;
5802 }
5803 }
5804 /* UNREACHABLE */;
5805 abort();
5806 }
5807 case s_n_llhttp__internal__n_after_start_req_69:
5808 s_n_llhttp__internal__n_after_start_req_69: {
5809 llparse_match_t match_seq;
5810
5811 if (p == endp) {
5812 return s_n_llhttp__internal__n_after_start_req_69;
5813 }
5814 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob56, 2);
5815 p = match_seq.current;
5816 switch (match_seq.status) {
5817 case kMatchComplete: {
5818 p++;
5819 match = 15;
5820 goto s_n_llhttp__internal__n_invoke_store_method_1;
5821 }
5822 case kMatchPause: {
5823 return s_n_llhttp__internal__n_after_start_req_69;
5824 }
5825 case kMatchMismatch: {
5826 goto s_n_llhttp__internal__n_error_108;
5827 }
5828 }
5829 /* UNREACHABLE */;
5830 abort();
5831 }
5832 case s_n_llhttp__internal__n_after_start_req_67:
5833 s_n_llhttp__internal__n_after_start_req_67: {
5834 if (p == endp) {
5835 return s_n_llhttp__internal__n_after_start_req_67;
5836 }
5837 switch (*p) {
5838 case 'I': {
5839 p++;
5840 goto s_n_llhttp__internal__n_after_start_req_68;
5841 }
5842 case 'O': {
5843 p++;
5844 goto s_n_llhttp__internal__n_after_start_req_69;
5845 }
5846 default: {
5847 goto s_n_llhttp__internal__n_error_108;
5848 }
5849 }
5850 /* UNREACHABLE */;
5851 abort();
5852 }
5853 case s_n_llhttp__internal__n_after_start_req_70:
5854 s_n_llhttp__internal__n_after_start_req_70: {
5855 llparse_match_t match_seq;
5856
5857 if (p == endp) {
5858 return s_n_llhttp__internal__n_after_start_req_70;
5859 }
5860 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob57, 8);
5861 p = match_seq.current;
5862 switch (match_seq.status) {
5863 case kMatchComplete: {
5864 p++;
5865 match = 27;
5866 goto s_n_llhttp__internal__n_invoke_store_method_1;
5867 }
5868 case kMatchPause: {
5869 return s_n_llhttp__internal__n_after_start_req_70;
5870 }
5871 case kMatchMismatch: {
5872 goto s_n_llhttp__internal__n_error_108;
5873 }
5874 }
5875 /* UNREACHABLE */;
5876 abort();
5877 }
5878 case s_n_llhttp__internal__n_after_start_req_65:
5879 s_n_llhttp__internal__n_after_start_req_65: {
5880 if (p == endp) {
5881 return s_n_llhttp__internal__n_after_start_req_65;
5882 }
5883 switch (*p) {
5884 case 'B': {
5885 p++;
5886 goto s_n_llhttp__internal__n_after_start_req_66;
5887 }
5888 case 'L': {
5889 p++;
5890 goto s_n_llhttp__internal__n_after_start_req_67;
5891 }
5892 case 'S': {
5893 p++;
5894 goto s_n_llhttp__internal__n_after_start_req_70;
5895 }
5896 default: {
5897 goto s_n_llhttp__internal__n_error_108;
5898 }
5899 }
5900 /* UNREACHABLE */;
5901 abort();
5902 }
5903 case s_n_llhttp__internal__n_after_start_req_64:
5904 s_n_llhttp__internal__n_after_start_req_64: {
5905 if (p == endp) {
5906 return s_n_llhttp__internal__n_after_start_req_64;
5907 }
5908 switch (*p) {
5909 case 'N': {
5910 p++;
5911 goto s_n_llhttp__internal__n_after_start_req_65;
5912 }
5913 default: {
5914 goto s_n_llhttp__internal__n_error_108;
5915 }
5916 }
5917 /* UNREACHABLE */;
5918 abort();
5919 }
5920 case s_n_llhttp__internal__n_after_start_req:
5921 s_n_llhttp__internal__n_after_start_req: {
5922 if (p == endp) {
5923 return s_n_llhttp__internal__n_after_start_req;
5924 }
5925 switch (*p) {
5926 case 'A': {
5927 p++;
5928 goto s_n_llhttp__internal__n_after_start_req_1;
5929 }
5930 case 'B': {
5931 p++;
5932 goto s_n_llhttp__internal__n_after_start_req_4;
5933 }
5934 case 'C': {
5935 p++;
5936 goto s_n_llhttp__internal__n_after_start_req_5;
5937 }
5938 case 'D': {
5939 p++;
5940 goto s_n_llhttp__internal__n_after_start_req_10;
5941 }
5942 case 'F': {
5943 p++;
5944 goto s_n_llhttp__internal__n_after_start_req_14;
5945 }
5946 case 'G': {
5947 p++;
5948 goto s_n_llhttp__internal__n_after_start_req_15;
5949 }
5950 case 'H': {
5951 p++;
5952 goto s_n_llhttp__internal__n_after_start_req_18;
5953 }
5954 case 'L': {
5955 p++;
5956 goto s_n_llhttp__internal__n_after_start_req_19;
5957 }
5958 case 'M': {
5959 p++;
5960 goto s_n_llhttp__internal__n_after_start_req_22;
5961 }
5962 case 'N': {
5963 p++;
5964 goto s_n_llhttp__internal__n_after_start_req_31;
5965 }
5966 case 'O': {
5967 p++;
5968 goto s_n_llhttp__internal__n_after_start_req_32;
5969 }
5970 case 'P': {
5971 p++;
5972 goto s_n_llhttp__internal__n_after_start_req_33;
5973 }
5974 case 'Q': {
5975 p++;
5976 goto s_n_llhttp__internal__n_after_start_req_46;
5977 }
5978 case 'R': {
5979 p++;
5980 goto s_n_llhttp__internal__n_after_start_req_47;
5981 }
5982 case 'S': {
5983 p++;
5984 goto s_n_llhttp__internal__n_after_start_req_53;
5985 }
5986 case 'T': {
5987 p++;
5988 goto s_n_llhttp__internal__n_after_start_req_61;
5989 }
5990 case 'U': {
5991 p++;
5992 goto s_n_llhttp__internal__n_after_start_req_64;
5993 }
5994 default: {
5995 goto s_n_llhttp__internal__n_error_108;
5996 }
5997 }
5998 /* UNREACHABLE */;
5999 abort();
6000 }
6001 case s_n_llhttp__internal__n_span_start_llhttp__on_method_1:
6002 s_n_llhttp__internal__n_span_start_llhttp__on_method_1: {
6003 if (p == endp) {
6004 return s_n_llhttp__internal__n_span_start_llhttp__on_method_1;
6005 }
6006 state->_span_pos0 = (void*) p;
6007 state->_span_cb0 = llhttp__on_method;
6008 goto s_n_llhttp__internal__n_after_start_req;
6009 /* UNREACHABLE */;
6010 abort();
6011 }
6012 case s_n_llhttp__internal__n_res_line_almost_done:
6013 s_n_llhttp__internal__n_res_line_almost_done: {
6014 if (p == endp) {
6015 return s_n_llhttp__internal__n_res_line_almost_done;
6016 }
6017 switch (*p) {
6018 case 10: {
6019 p++;
6020 goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete;
6021 }
6022 case 13: {
6023 p++;
6024 goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete;
6025 }
6026 default: {
6027 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_29;
6028 }
6029 }
6030 /* UNREACHABLE */;
6031 abort();
6032 }
6033 case s_n_llhttp__internal__n_invoke_test_lenient_flags_30:
6034 s_n_llhttp__internal__n_invoke_test_lenient_flags_30: {
6035 switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
6036 case 1:
6037 goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete;
6038 default:
6039 goto s_n_llhttp__internal__n_error_94;
6040 }
6041 /* UNREACHABLE */;
6042 abort();
6043 }
6044 case s_n_llhttp__internal__n_res_status:
6045 s_n_llhttp__internal__n_res_status: {
6046 if (p == endp) {
6047 return s_n_llhttp__internal__n_res_status;
6048 }
6049 switch (*p) {
6050 case 10: {
6051 goto s_n_llhttp__internal__n_span_end_llhttp__on_status;
6052 }
6053 case 13: {
6054 goto s_n_llhttp__internal__n_span_end_llhttp__on_status_1;
6055 }
6056 default: {
6057 p++;
6058 goto s_n_llhttp__internal__n_res_status;
6059 }
6060 }
6061 /* UNREACHABLE */;
6062 abort();
6063 }
6064 case s_n_llhttp__internal__n_span_start_llhttp__on_status:
6065 s_n_llhttp__internal__n_span_start_llhttp__on_status: {
6066 if (p == endp) {
6067 return s_n_llhttp__internal__n_span_start_llhttp__on_status;
6068 }
6069 state->_span_pos0 = (void*) p;
6070 state->_span_cb0 = llhttp__on_status;
6071 goto s_n_llhttp__internal__n_res_status;
6072 /* UNREACHABLE */;
6073 abort();
6074 }
6075 case s_n_llhttp__internal__n_res_status_code_otherwise:
6076 s_n_llhttp__internal__n_res_status_code_otherwise: {
6077 if (p == endp) {
6078 return s_n_llhttp__internal__n_res_status_code_otherwise;
6079 }
6080 switch (*p) {
6081 case 10: {
6082 p++;
6083 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_28;
6084 }
6085 case 13: {
6086 p++;
6087 goto s_n_llhttp__internal__n_res_line_almost_done;
6088 }
6089 case ' ': {
6090 p++;
6091 goto s_n_llhttp__internal__n_span_start_llhttp__on_status;
6092 }
6093 default: {
6094 goto s_n_llhttp__internal__n_error_95;
6095 }
6096 }
6097 /* UNREACHABLE */;
6098 abort();
6099 }
6100 case s_n_llhttp__internal__n_res_status_code_digit_3:
6101 s_n_llhttp__internal__n_res_status_code_digit_3: {
6102 if (p == endp) {
6103 return s_n_llhttp__internal__n_res_status_code_digit_3;
6104 }
6105 switch (*p) {
6106 case '0': {
6107 p++;
6108 match = 0;
6109 goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2;
6110 }
6111 case '1': {
6112 p++;
6113 match = 1;
6114 goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2;
6115 }
6116 case '2': {
6117 p++;
6118 match = 2;
6119 goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2;
6120 }
6121 case '3': {
6122 p++;
6123 match = 3;
6124 goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2;
6125 }
6126 case '4': {
6127 p++;
6128 match = 4;
6129 goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2;
6130 }
6131 case '5': {
6132 p++;
6133 match = 5;
6134 goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2;
6135 }
6136 case '6': {
6137 p++;
6138 match = 6;
6139 goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2;
6140 }
6141 case '7': {
6142 p++;
6143 match = 7;
6144 goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2;
6145 }
6146 case '8': {
6147 p++;
6148 match = 8;
6149 goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2;
6150 }
6151 case '9': {
6152 p++;
6153 match = 9;
6154 goto s_n_llhttp__internal__n_invoke_mul_add_status_code_2;
6155 }
6156 default: {
6157 goto s_n_llhttp__internal__n_error_97;
6158 }
6159 }
6160 /* UNREACHABLE */;
6161 abort();
6162 }
6163 case s_n_llhttp__internal__n_res_status_code_digit_2:
6164 s_n_llhttp__internal__n_res_status_code_digit_2: {
6165 if (p == endp) {
6166 return s_n_llhttp__internal__n_res_status_code_digit_2;
6167 }
6168 switch (*p) {
6169 case '0': {
6170 p++;
6171 match = 0;
6172 goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1;
6173 }
6174 case '1': {
6175 p++;
6176 match = 1;
6177 goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1;
6178 }
6179 case '2': {
6180 p++;
6181 match = 2;
6182 goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1;
6183 }
6184 case '3': {
6185 p++;
6186 match = 3;
6187 goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1;
6188 }
6189 case '4': {
6190 p++;
6191 match = 4;
6192 goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1;
6193 }
6194 case '5': {
6195 p++;
6196 match = 5;
6197 goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1;
6198 }
6199 case '6': {
6200 p++;
6201 match = 6;
6202 goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1;
6203 }
6204 case '7': {
6205 p++;
6206 match = 7;
6207 goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1;
6208 }
6209 case '8': {
6210 p++;
6211 match = 8;
6212 goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1;
6213 }
6214 case '9': {
6215 p++;
6216 match = 9;
6217 goto s_n_llhttp__internal__n_invoke_mul_add_status_code_1;
6218 }
6219 default: {
6220 goto s_n_llhttp__internal__n_error_99;
6221 }
6222 }
6223 /* UNREACHABLE */;
6224 abort();
6225 }
6226 case s_n_llhttp__internal__n_res_status_code_digit_1:
6227 s_n_llhttp__internal__n_res_status_code_digit_1: {
6228 if (p == endp) {
6229 return s_n_llhttp__internal__n_res_status_code_digit_1;
6230 }
6231 switch (*p) {
6232 case '0': {
6233 p++;
6234 match = 0;
6235 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
6236 }
6237 case '1': {
6238 p++;
6239 match = 1;
6240 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
6241 }
6242 case '2': {
6243 p++;
6244 match = 2;
6245 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
6246 }
6247 case '3': {
6248 p++;
6249 match = 3;
6250 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
6251 }
6252 case '4': {
6253 p++;
6254 match = 4;
6255 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
6256 }
6257 case '5': {
6258 p++;
6259 match = 5;
6260 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
6261 }
6262 case '6': {
6263 p++;
6264 match = 6;
6265 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
6266 }
6267 case '7': {
6268 p++;
6269 match = 7;
6270 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
6271 }
6272 case '8': {
6273 p++;
6274 match = 8;
6275 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
6276 }
6277 case '9': {
6278 p++;
6279 match = 9;
6280 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
6281 }
6282 default: {
6283 goto s_n_llhttp__internal__n_error_101;
6284 }
6285 }
6286 /* UNREACHABLE */;
6287 abort();
6288 }
6289 case s_n_llhttp__internal__n_res_after_version:
6290 s_n_llhttp__internal__n_res_after_version: {
6291 if (p == endp) {
6292 return s_n_llhttp__internal__n_res_after_version;
6293 }
6294 switch (*p) {
6295 case ' ': {
6296 p++;
6297 goto s_n_llhttp__internal__n_invoke_update_status_code;
6298 }
6299 default: {
6300 goto s_n_llhttp__internal__n_error_102;
6301 }
6302 }
6303 /* UNREACHABLE */;
6304 abort();
6305 }
6306 case s_n_llhttp__internal__n_invoke_llhttp__on_version_complete_1:
6307 s_n_llhttp__internal__n_invoke_llhttp__on_version_complete_1: {
6308 switch (llhttp__on_version_complete(state, p, endp)) {
6309 case 0:
6310 goto s_n_llhttp__internal__n_res_after_version;
6311 case 21:
6312 goto s_n_llhttp__internal__n_pause_25;
6313 default:
6314 goto s_n_llhttp__internal__n_error_90;
6315 }
6316 /* UNREACHABLE */;
6317 abort();
6318 }
6319 case s_n_llhttp__internal__n_error_89:
6320 s_n_llhttp__internal__n_error_89: {
6321 state->error = 0x9;
6322 state->reason = "Invalid HTTP version";
6323 state->error_pos = (const char*) p;
6324 state->_current = (void*) (intptr_t) s_error;
6325 return s_error;
6326 /* UNREACHABLE */;
6327 abort();
6328 }
6329 case s_n_llhttp__internal__n_error_103:
6330 s_n_llhttp__internal__n_error_103: {
6331 state->error = 0x9;
6332 state->reason = "Invalid minor version";
6333 state->error_pos = (const char*) p;
6334 state->_current = (void*) (intptr_t) s_error;
6335 return s_error;
6336 /* UNREACHABLE */;
6337 abort();
6338 }
6339 case s_n_llhttp__internal__n_res_http_minor:
6340 s_n_llhttp__internal__n_res_http_minor: {
6341 if (p == endp) {
6342 return s_n_llhttp__internal__n_res_http_minor;
6343 }
6344 switch (*p) {
6345 case '0': {
6346 p++;
6347 match = 0;
6348 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
6349 }
6350 case '1': {
6351 p++;
6352 match = 1;
6353 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
6354 }
6355 case '2': {
6356 p++;
6357 match = 2;
6358 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
6359 }
6360 case '3': {
6361 p++;
6362 match = 3;
6363 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
6364 }
6365 case '4': {
6366 p++;
6367 match = 4;
6368 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
6369 }
6370 case '5': {
6371 p++;
6372 match = 5;
6373 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
6374 }
6375 case '6': {
6376 p++;
6377 match = 6;
6378 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
6379 }
6380 case '7': {
6381 p++;
6382 match = 7;
6383 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
6384 }
6385 case '8': {
6386 p++;
6387 match = 8;
6388 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
6389 }
6390 case '9': {
6391 p++;
6392 match = 9;
6393 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
6394 }
6395 default: {
6396 goto s_n_llhttp__internal__n_span_end_llhttp__on_version_7;
6397 }
6398 }
6399 /* UNREACHABLE */;
6400 abort();
6401 }
6402 case s_n_llhttp__internal__n_error_104:
6403 s_n_llhttp__internal__n_error_104: {
6404 state->error = 0x9;
6405 state->reason = "Expected dot";
6406 state->error_pos = (const char*) p;
6407 state->_current = (void*) (intptr_t) s_error;
6408 return s_error;
6409 /* UNREACHABLE */;
6410 abort();
6411 }
6412 case s_n_llhttp__internal__n_res_http_dot:
6413 s_n_llhttp__internal__n_res_http_dot: {
6414 if (p == endp) {
6415 return s_n_llhttp__internal__n_res_http_dot;
6416 }
6417 switch (*p) {
6418 case '.': {
6419 p++;
6420 goto s_n_llhttp__internal__n_res_http_minor;
6421 }
6422 default: {
6423 goto s_n_llhttp__internal__n_span_end_llhttp__on_version_8;
6424 }
6425 }
6426 /* UNREACHABLE */;
6427 abort();
6428 }
6429 case s_n_llhttp__internal__n_error_105:
6430 s_n_llhttp__internal__n_error_105: {
6431 state->error = 0x9;
6432 state->reason = "Invalid major version";
6433 state->error_pos = (const char*) p;
6434 state->_current = (void*) (intptr_t) s_error;
6435 return s_error;
6436 /* UNREACHABLE */;
6437 abort();
6438 }
6439 case s_n_llhttp__internal__n_res_http_major:
6440 s_n_llhttp__internal__n_res_http_major: {
6441 if (p == endp) {
6442 return s_n_llhttp__internal__n_res_http_major;
6443 }
6444 switch (*p) {
6445 case '0': {
6446 p++;
6447 match = 0;
6448 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
6449 }
6450 case '1': {
6451 p++;
6452 match = 1;
6453 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
6454 }
6455 case '2': {
6456 p++;
6457 match = 2;
6458 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
6459 }
6460 case '3': {
6461 p++;
6462 match = 3;
6463 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
6464 }
6465 case '4': {
6466 p++;
6467 match = 4;
6468 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
6469 }
6470 case '5': {
6471 p++;
6472 match = 5;
6473 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
6474 }
6475 case '6': {
6476 p++;
6477 match = 6;
6478 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
6479 }
6480 case '7': {
6481 p++;
6482 match = 7;
6483 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
6484 }
6485 case '8': {
6486 p++;
6487 match = 8;
6488 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
6489 }
6490 case '9': {
6491 p++;
6492 match = 9;
6493 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
6494 }
6495 default: {
6496 goto s_n_llhttp__internal__n_span_end_llhttp__on_version_9;
6497 }
6498 }
6499 /* UNREACHABLE */;
6500 abort();
6501 }
6502 case s_n_llhttp__internal__n_span_start_llhttp__on_version_1:
6503 s_n_llhttp__internal__n_span_start_llhttp__on_version_1: {
6504 if (p == endp) {
6505 return s_n_llhttp__internal__n_span_start_llhttp__on_version_1;
6506 }
6507 state->_span_pos0 = (void*) p;
6508 state->_span_cb0 = llhttp__on_version;
6509 goto s_n_llhttp__internal__n_res_http_major;
6510 /* UNREACHABLE */;
6511 abort();
6512 }
6513 case s_n_llhttp__internal__n_start_res:
6514 s_n_llhttp__internal__n_start_res: {
6515 llparse_match_t match_seq;
6516
6517 if (p == endp) {
6518 return s_n_llhttp__internal__n_start_res;
6519 }
6520 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob58, 5);
6521 p = match_seq.current;
6522 switch (match_seq.status) {
6523 case kMatchComplete: {
6524 p++;
6525 goto s_n_llhttp__internal__n_span_start_llhttp__on_version_1;
6526 }
6527 case kMatchPause: {
6528 return s_n_llhttp__internal__n_start_res;
6529 }
6530 case kMatchMismatch: {
6531 goto s_n_llhttp__internal__n_error_109;
6532 }
6533 }
6534 /* UNREACHABLE */;
6535 abort();
6536 }
6537 case s_n_llhttp__internal__n_invoke_llhttp__on_method_complete:
6538 s_n_llhttp__internal__n_invoke_llhttp__on_method_complete: {
6539 switch (llhttp__on_method_complete(state, p, endp)) {
6540 case 0:
6541 goto s_n_llhttp__internal__n_req_first_space_before_url;
6542 case 21:
6543 goto s_n_llhttp__internal__n_pause_23;
6544 default:
6545 goto s_n_llhttp__internal__n_error_1;
6546 }
6547 /* UNREACHABLE */;
6548 abort();
6549 }
6550 case s_n_llhttp__internal__n_req_or_res_method_2:
6551 s_n_llhttp__internal__n_req_or_res_method_2: {
6552 llparse_match_t match_seq;
6553
6554 if (p == endp) {
6555 return s_n_llhttp__internal__n_req_or_res_method_2;
6556 }
6557 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob59, 2);
6558 p = match_seq.current;
6559 switch (match_seq.status) {
6560 case kMatchComplete: {
6561 p++;
6562 match = 2;
6563 goto s_n_llhttp__internal__n_invoke_store_method;
6564 }
6565 case kMatchPause: {
6566 return s_n_llhttp__internal__n_req_or_res_method_2;
6567 }
6568 case kMatchMismatch: {
6569 goto s_n_llhttp__internal__n_error_106;
6570 }
6571 }
6572 /* UNREACHABLE */;
6573 abort();
6574 }
6575 case s_n_llhttp__internal__n_invoke_update_type_1:
6576 s_n_llhttp__internal__n_invoke_update_type_1: {
6577 switch (llhttp__internal__c_update_type_1(state, p, endp)) {
6578 default:
6579 goto s_n_llhttp__internal__n_span_start_llhttp__on_version_1;
6580 }
6581 /* UNREACHABLE */;
6582 abort();
6583 }
6584 case s_n_llhttp__internal__n_req_or_res_method_3:
6585 s_n_llhttp__internal__n_req_or_res_method_3: {
6586 llparse_match_t match_seq;
6587
6588 if (p == endp) {
6589 return s_n_llhttp__internal__n_req_or_res_method_3;
6590 }
6591 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob60, 3);
6592 p = match_seq.current;
6593 switch (match_seq.status) {
6594 case kMatchComplete: {
6595 p++;
6596 goto s_n_llhttp__internal__n_span_end_llhttp__on_method_1;
6597 }
6598 case kMatchPause: {
6599 return s_n_llhttp__internal__n_req_or_res_method_3;
6600 }
6601 case kMatchMismatch: {
6602 goto s_n_llhttp__internal__n_error_106;
6603 }
6604 }
6605 /* UNREACHABLE */;
6606 abort();
6607 }
6608 case s_n_llhttp__internal__n_req_or_res_method_1:
6609 s_n_llhttp__internal__n_req_or_res_method_1: {
6610 if (p == endp) {
6611 return s_n_llhttp__internal__n_req_or_res_method_1;
6612 }
6613 switch (*p) {
6614 case 'E': {
6615 p++;
6616 goto s_n_llhttp__internal__n_req_or_res_method_2;
6617 }
6618 case 'T': {
6619 p++;
6620 goto s_n_llhttp__internal__n_req_or_res_method_3;
6621 }
6622 default: {
6623 goto s_n_llhttp__internal__n_error_106;
6624 }
6625 }
6626 /* UNREACHABLE */;
6627 abort();
6628 }
6629 case s_n_llhttp__internal__n_req_or_res_method:
6630 s_n_llhttp__internal__n_req_or_res_method: {
6631 if (p == endp) {
6632 return s_n_llhttp__internal__n_req_or_res_method;
6633 }
6634 switch (*p) {
6635 case 'H': {
6636 p++;
6637 goto s_n_llhttp__internal__n_req_or_res_method_1;
6638 }
6639 default: {
6640 goto s_n_llhttp__internal__n_error_106;
6641 }
6642 }
6643 /* UNREACHABLE */;
6644 abort();
6645 }
6646 case s_n_llhttp__internal__n_span_start_llhttp__on_method:
6647 s_n_llhttp__internal__n_span_start_llhttp__on_method: {
6648 if (p == endp) {
6649 return s_n_llhttp__internal__n_span_start_llhttp__on_method;
6650 }
6651 state->_span_pos0 = (void*) p;
6652 state->_span_cb0 = llhttp__on_method;
6653 goto s_n_llhttp__internal__n_req_or_res_method;
6654 /* UNREACHABLE */;
6655 abort();
6656 }
6657 case s_n_llhttp__internal__n_start_req_or_res:
6658 s_n_llhttp__internal__n_start_req_or_res: {
6659 if (p == endp) {
6660 return s_n_llhttp__internal__n_start_req_or_res;
6661 }
6662 switch (*p) {
6663 case 'H': {
6664 goto s_n_llhttp__internal__n_span_start_llhttp__on_method;
6665 }
6666 default: {
6667 goto s_n_llhttp__internal__n_invoke_update_type_2;
6668 }
6669 }
6670 /* UNREACHABLE */;
6671 abort();
6672 }
6673 case s_n_llhttp__internal__n_invoke_load_type:
6674 s_n_llhttp__internal__n_invoke_load_type: {
6675 switch (llhttp__internal__c_load_type(state, p, endp)) {
6676 case 1:
6677 goto s_n_llhttp__internal__n_span_start_llhttp__on_method_1;
6678 case 2:
6679 goto s_n_llhttp__internal__n_start_res;
6680 default:
6681 goto s_n_llhttp__internal__n_start_req_or_res;
6682 }
6683 /* UNREACHABLE */;
6684 abort();
6685 }
6686 case s_n_llhttp__internal__n_invoke_update_finish:
6687 s_n_llhttp__internal__n_invoke_update_finish: {
6688 switch (llhttp__internal__c_update_finish(state, p, endp)) {
6689 default:
6690 goto s_n_llhttp__internal__n_invoke_llhttp__on_message_begin;
6691 }
6692 /* UNREACHABLE */;
6693 abort();
6694 }
6695 case s_n_llhttp__internal__n_start:
6696 s_n_llhttp__internal__n_start: {
6697 if (p == endp) {
6698 return s_n_llhttp__internal__n_start;
6699 }
6700 switch (*p) {
6701 case 10: {
6702 p++;
6703 goto s_n_llhttp__internal__n_start;
6704 }
6705 case 13: {
6706 p++;
6707 goto s_n_llhttp__internal__n_start;
6708 }
6709 default: {
6710 goto s_n_llhttp__internal__n_invoke_load_initial_message_completed;
6711 }
6712 }
6713 /* UNREACHABLE */;
6714 abort();
6715 }
6716 default:
6717 /* UNREACHABLE */
6718 abort();
6719 }
6720 s_n_llhttp__internal__n_error_2: {
6721 state->error = 0x7;
6722 state->reason = "Invalid characters in url";
6723 state->error_pos = (const char*) p;
6724 state->_current = (void*) (intptr_t) s_error;
6725 return s_error;
6726 /* UNREACHABLE */;
6727 abort();
6728 }
6729 s_n_llhttp__internal__n_invoke_update_finish_2: {
6730 switch (llhttp__internal__c_update_finish_1(state, p, endp)) {
6731 default:
6732 goto s_n_llhttp__internal__n_start;
6733 }
6734 /* UNREACHABLE */;
6735 abort();
6736 }
6737 s_n_llhttp__internal__n_invoke_update_initial_message_completed: {
6738 switch (llhttp__internal__c_update_initial_message_completed(state, p, endp)) {
6739 default:
6740 goto s_n_llhttp__internal__n_invoke_update_finish_2;
6741 }
6742 /* UNREACHABLE */;
6743 abort();
6744 }
6745 s_n_llhttp__internal__n_invoke_update_content_length: {
6746 switch (llhttp__internal__c_update_content_length(state, p, endp)) {
6747 default:
6748 goto s_n_llhttp__internal__n_invoke_update_initial_message_completed;
6749 }
6750 /* UNREACHABLE */;
6751 abort();
6752 }
6753 s_n_llhttp__internal__n_error_8: {
6754 state->error = 0x5;
6755 state->reason = "Data after `Connection: close`";
6756 state->error_pos = (const char*) p;
6757 state->_current = (void*) (intptr_t) s_error;
6758 return s_error;
6759 /* UNREACHABLE */;
6760 abort();
6761 }
6762 s_n_llhttp__internal__n_invoke_test_lenient_flags_3: {
6763 switch (llhttp__internal__c_test_lenient_flags_3(state, p, endp)) {
6764 case 1:
6765 goto s_n_llhttp__internal__n_closed;
6766 default:
6767 goto s_n_llhttp__internal__n_error_8;
6768 }
6769 /* UNREACHABLE */;
6770 abort();
6771 }
6772 s_n_llhttp__internal__n_invoke_test_lenient_flags_2: {
6773 switch (llhttp__internal__c_test_lenient_flags_2(state, p, endp)) {
6774 case 1:
6775 goto s_n_llhttp__internal__n_invoke_update_initial_message_completed;
6776 default:
6777 goto s_n_llhttp__internal__n_closed;
6778 }
6779 /* UNREACHABLE */;
6780 abort();
6781 }
6782 s_n_llhttp__internal__n_invoke_update_finish_1: {
6783 switch (llhttp__internal__c_update_finish_1(state, p, endp)) {
6784 default:
6785 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_2;
6786 }
6787 /* UNREACHABLE */;
6788 abort();
6789 }
6790 s_n_llhttp__internal__n_pause_13: {
6791 state->error = 0x15;
6792 state->reason = "on_message_complete pause";
6793 state->error_pos = (const char*) p;
6794 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_is_equal_upgrade;
6795 return s_error;
6796 /* UNREACHABLE */;
6797 abort();
6798 }
6799 s_n_llhttp__internal__n_error_38: {
6800 state->error = 0x12;
6801 state->reason = "`on_message_complete` callback error";
6802 state->error_pos = (const char*) p;
6803 state->_current = (void*) (intptr_t) s_error;
6804 return s_error;
6805 /* UNREACHABLE */;
6806 abort();
6807 }
6808 s_n_llhttp__internal__n_pause_15: {
6809 state->error = 0x15;
6810 state->reason = "on_chunk_complete pause";
6811 state->error_pos = (const char*) p;
6812 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
6813 return s_error;
6814 /* UNREACHABLE */;
6815 abort();
6816 }
6817 s_n_llhttp__internal__n_error_40: {
6818 state->error = 0x14;
6819 state->reason = "`on_chunk_complete` callback error";
6820 state->error_pos = (const char*) p;
6821 state->_current = (void*) (intptr_t) s_error;
6822 return s_error;
6823 /* UNREACHABLE */;
6824 abort();
6825 }
6826 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete_1: {
6827 switch (llhttp__on_chunk_complete(state, p, endp)) {
6828 case 0:
6829 goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
6830 case 21:
6831 goto s_n_llhttp__internal__n_pause_15;
6832 default:
6833 goto s_n_llhttp__internal__n_error_40;
6834 }
6835 /* UNREACHABLE */;
6836 abort();
6837 }
6838 s_n_llhttp__internal__n_pause_2: {
6839 state->error = 0x15;
6840 state->reason = "on_message_complete pause";
6841 state->error_pos = (const char*) p;
6842 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_pause_1;
6843 return s_error;
6844 /* UNREACHABLE */;
6845 abort();
6846 }
6847 s_n_llhttp__internal__n_error_9: {
6848 state->error = 0x12;
6849 state->reason = "`on_message_complete` callback error";
6850 state->error_pos = (const char*) p;
6851 state->_current = (void*) (intptr_t) s_error;
6852 return s_error;
6853 /* UNREACHABLE */;
6854 abort();
6855 }
6856 s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_1: {
6857 switch (llhttp__on_message_complete(state, p, endp)) {
6858 case 0:
6859 goto s_n_llhttp__internal__n_pause_1;
6860 case 21:
6861 goto s_n_llhttp__internal__n_pause_2;
6862 default:
6863 goto s_n_llhttp__internal__n_error_9;
6864 }
6865 /* UNREACHABLE */;
6866 abort();
6867 }
6868 s_n_llhttp__internal__n_error_36: {
6869 state->error = 0xc;
6870 state->reason = "Chunk size overflow";
6871 state->error_pos = (const char*) p;
6872 state->_current = (void*) (intptr_t) s_error;
6873 return s_error;
6874 /* UNREACHABLE */;
6875 abort();
6876 }
6877 s_n_llhttp__internal__n_error_10: {
6878 state->error = 0xc;
6879 state->reason = "Invalid character in chunk size";
6880 state->error_pos = (const char*) p;
6881 state->_current = (void*) (intptr_t) s_error;
6882 return s_error;
6883 /* UNREACHABLE */;
6884 abort();
6885 }
6886 s_n_llhttp__internal__n_invoke_test_lenient_flags_4: {
6887 switch (llhttp__internal__c_test_lenient_flags_4(state, p, endp)) {
6888 case 1:
6889 goto s_n_llhttp__internal__n_chunk_size_otherwise;
6890 default:
6891 goto s_n_llhttp__internal__n_error_10;
6892 }
6893 /* UNREACHABLE */;
6894 abort();
6895 }
6896 s_n_llhttp__internal__n_pause_3: {
6897 state->error = 0x15;
6898 state->reason = "on_chunk_complete pause";
6899 state->error_pos = (const char*) p;
6900 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_update_content_length_1;
6901 return s_error;
6902 /* UNREACHABLE */;
6903 abort();
6904 }
6905 s_n_llhttp__internal__n_error_14: {
6906 state->error = 0x14;
6907 state->reason = "`on_chunk_complete` callback error";
6908 state->error_pos = (const char*) p;
6909 state->_current = (void*) (intptr_t) s_error;
6910 return s_error;
6911 /* UNREACHABLE */;
6912 abort();
6913 }
6914 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete: {
6915 switch (llhttp__on_chunk_complete(state, p, endp)) {
6916 case 0:
6917 goto s_n_llhttp__internal__n_invoke_update_content_length_1;
6918 case 21:
6919 goto s_n_llhttp__internal__n_pause_3;
6920 default:
6921 goto s_n_llhttp__internal__n_error_14;
6922 }
6923 /* UNREACHABLE */;
6924 abort();
6925 }
6926 s_n_llhttp__internal__n_error_13: {
6927 state->error = 0x19;
6928 state->reason = "Missing expected CR after chunk data";
6929 state->error_pos = (const char*) p;
6930 state->_current = (void*) (intptr_t) s_error;
6931 return s_error;
6932 /* UNREACHABLE */;
6933 abort();
6934 }
6935 s_n_llhttp__internal__n_invoke_test_lenient_flags_6: {
6936 switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
6937 case 1:
6938 goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete;
6939 default:
6940 goto s_n_llhttp__internal__n_error_13;
6941 }
6942 /* UNREACHABLE */;
6943 abort();
6944 }
6945 s_n_llhttp__internal__n_error_15: {
6946 state->error = 0x2;
6947 state->reason = "Expected LF after chunk data";
6948 state->error_pos = (const char*) p;
6949 state->_current = (void*) (intptr_t) s_error;
6950 return s_error;
6951 /* UNREACHABLE */;
6952 abort();
6953 }
6954 s_n_llhttp__internal__n_invoke_test_lenient_flags_7: {
6955 switch (llhttp__internal__c_test_lenient_flags_7(state, p, endp)) {
6956 case 1:
6957 goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete;
6958 default:
6959 goto s_n_llhttp__internal__n_error_15;
6960 }
6961 /* UNREACHABLE */;
6962 abort();
6963 }
6964 s_n_llhttp__internal__n_span_end_llhttp__on_body: {
6965 const unsigned char* start;
6966 int err;
6967
6968 start = state->_span_pos0;
6969 state->_span_pos0 = NULL;
6970 err = llhttp__on_body(state, start, p);
6971 if (err != 0) {
6972 state->error = err;
6973 state->error_pos = (const char*) p;
6974 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_data_almost_done;
6975 return s_error;
6976 }
6977 goto s_n_llhttp__internal__n_chunk_data_almost_done;
6978 /* UNREACHABLE */;
6979 abort();
6980 }
6981 s_n_llhttp__internal__n_invoke_or_flags: {
6982 switch (llhttp__internal__c_or_flags(state, p, endp)) {
6983 default:
6984 goto s_n_llhttp__internal__n_header_field_start;
6985 }
6986 /* UNREACHABLE */;
6987 abort();
6988 }
6989 s_n_llhttp__internal__n_pause_4: {
6990 state->error = 0x15;
6991 state->reason = "on_chunk_header pause";
6992 state->error_pos = (const char*) p;
6993 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_is_equal_content_length;
6994 return s_error;
6995 /* UNREACHABLE */;
6996 abort();
6997 }
6998 s_n_llhttp__internal__n_error_12: {
6999 state->error = 0x13;
7000 state->reason = "`on_chunk_header` callback error";
7001 state->error_pos = (const char*) p;
7002 state->_current = (void*) (intptr_t) s_error;
7003 return s_error;
7004 /* UNREACHABLE */;
7005 abort();
7006 }
7007 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_header: {
7008 switch (llhttp__on_chunk_header(state, p, endp)) {
7009 case 0:
7010 goto s_n_llhttp__internal__n_invoke_is_equal_content_length;
7011 case 21:
7012 goto s_n_llhttp__internal__n_pause_4;
7013 default:
7014 goto s_n_llhttp__internal__n_error_12;
7015 }
7016 /* UNREACHABLE */;
7017 abort();
7018 }
7019 s_n_llhttp__internal__n_error_16: {
7020 state->error = 0x2;
7021 state->reason = "Expected LF after chunk size";
7022 state->error_pos = (const char*) p;
7023 state->_current = (void*) (intptr_t) s_error;
7024 return s_error;
7025 /* UNREACHABLE */;
7026 abort();
7027 }
7028 s_n_llhttp__internal__n_invoke_test_lenient_flags_8: {
7029 switch (llhttp__internal__c_test_lenient_flags_8(state, p, endp)) {
7030 case 1:
7031 goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_header;
7032 default:
7033 goto s_n_llhttp__internal__n_error_16;
7034 }
7035 /* UNREACHABLE */;
7036 abort();
7037 }
7038 s_n_llhttp__internal__n_error_11: {
7039 state->error = 0x19;
7040 state->reason = "Missing expected CR after chunk size";
7041 state->error_pos = (const char*) p;
7042 state->_current = (void*) (intptr_t) s_error;
7043 return s_error;
7044 /* UNREACHABLE */;
7045 abort();
7046 }
7047 s_n_llhttp__internal__n_invoke_test_lenient_flags_5: {
7048 switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
7049 case 1:
7050 goto s_n_llhttp__internal__n_chunk_size_almost_done;
7051 default:
7052 goto s_n_llhttp__internal__n_error_11;
7053 }
7054 /* UNREACHABLE */;
7055 abort();
7056 }
7057 s_n_llhttp__internal__n_error_17: {
7058 state->error = 0x2;
7059 state->reason = "Invalid character in chunk extensions";
7060 state->error_pos = (const char*) p;
7061 state->_current = (void*) (intptr_t) s_error;
7062 return s_error;
7063 /* UNREACHABLE */;
7064 abort();
7065 }
7066 s_n_llhttp__internal__n_error_18: {
7067 state->error = 0x2;
7068 state->reason = "Invalid character in chunk extensions";
7069 state->error_pos = (const char*) p;
7070 state->_current = (void*) (intptr_t) s_error;
7071 return s_error;
7072 /* UNREACHABLE */;
7073 abort();
7074 }
7075 s_n_llhttp__internal__n_error_20: {
7076 state->error = 0x19;
7077 state->reason = "Missing expected CR after chunk extension name";
7078 state->error_pos = (const char*) p;
7079 state->_current = (void*) (intptr_t) s_error;
7080 return s_error;
7081 /* UNREACHABLE */;
7082 abort();
7083 }
7084 s_n_llhttp__internal__n_pause_5: {
7085 state->error = 0x15;
7086 state->reason = "on_chunk_extension_name pause";
7087 state->error_pos = (const char*) p;
7088 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_test_lenient_flags_9;
7089 return s_error;
7090 /* UNREACHABLE */;
7091 abort();
7092 }
7093 s_n_llhttp__internal__n_error_19: {
7094 state->error = 0x22;
7095 state->reason = "`on_chunk_extension_name` callback error";
7096 state->error_pos = (const char*) p;
7097 state->_current = (void*) (intptr_t) s_error;
7098 return s_error;
7099 /* UNREACHABLE */;
7100 abort();
7101 }
7102 s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name: {
7103 const unsigned char* start;
7104 int err;
7105
7106 start = state->_span_pos0;
7107 state->_span_pos0 = NULL;
7108 err = llhttp__on_chunk_extension_name(state, start, p);
7109 if (err != 0) {
7110 state->error = err;
7111 state->error_pos = (const char*) p;
7112 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete;
7113 return s_error;
7114 }
7115 goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete;
7116 /* UNREACHABLE */;
7117 abort();
7118 }
7119 s_n_llhttp__internal__n_pause_6: {
7120 state->error = 0x15;
7121 state->reason = "on_chunk_extension_name pause";
7122 state->error_pos = (const char*) p;
7123 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_size_almost_done;
7124 return s_error;
7125 /* UNREACHABLE */;
7126 abort();
7127 }
7128 s_n_llhttp__internal__n_error_21: {
7129 state->error = 0x22;
7130 state->reason = "`on_chunk_extension_name` callback error";
7131 state->error_pos = (const char*) p;
7132 state->_current = (void*) (intptr_t) s_error;
7133 return s_error;
7134 /* UNREACHABLE */;
7135 abort();
7136 }
7137 s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name_1: {
7138 const unsigned char* start;
7139 int err;
7140
7141 start = state->_span_pos0;
7142 state->_span_pos0 = NULL;
7143 err = llhttp__on_chunk_extension_name(state, start, p);
7144 if (err != 0) {
7145 state->error = err;
7146 state->error_pos = (const char*) (p + 1);
7147 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_1;
7148 return s_error;
7149 }
7150 p++;
7151 goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_1;
7152 /* UNREACHABLE */;
7153 abort();
7154 }
7155 s_n_llhttp__internal__n_pause_7: {
7156 state->error = 0x15;
7157 state->reason = "on_chunk_extension_name pause";
7158 state->error_pos = (const char*) p;
7159 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_extensions;
7160 return s_error;
7161 /* UNREACHABLE */;
7162 abort();
7163 }
7164 s_n_llhttp__internal__n_error_22: {
7165 state->error = 0x22;
7166 state->reason = "`on_chunk_extension_name` callback error";
7167 state->error_pos = (const char*) p;
7168 state->_current = (void*) (intptr_t) s_error;
7169 return s_error;
7170 /* UNREACHABLE */;
7171 abort();
7172 }
7173 s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name_2: {
7174 const unsigned char* start;
7175 int err;
7176
7177 start = state->_span_pos0;
7178 state->_span_pos0 = NULL;
7179 err = llhttp__on_chunk_extension_name(state, start, p);
7180 if (err != 0) {
7181 state->error = err;
7182 state->error_pos = (const char*) (p + 1);
7183 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_2;
7184 return s_error;
7185 }
7186 p++;
7187 goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_2;
7188 /* UNREACHABLE */;
7189 abort();
7190 }
7191 s_n_llhttp__internal__n_error_25: {
7192 state->error = 0x19;
7193 state->reason = "Missing expected CR after chunk extension value";
7194 state->error_pos = (const char*) p;
7195 state->_current = (void*) (intptr_t) s_error;
7196 return s_error;
7197 /* UNREACHABLE */;
7198 abort();
7199 }
7200 s_n_llhttp__internal__n_pause_8: {
7201 state->error = 0x15;
7202 state->reason = "on_chunk_extension_value pause";
7203 state->error_pos = (const char*) p;
7204 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_test_lenient_flags_10;
7205 return s_error;
7206 /* UNREACHABLE */;
7207 abort();
7208 }
7209 s_n_llhttp__internal__n_error_24: {
7210 state->error = 0x23;
7211 state->reason = "`on_chunk_extension_value` callback error";
7212 state->error_pos = (const char*) p;
7213 state->_current = (void*) (intptr_t) s_error;
7214 return s_error;
7215 /* UNREACHABLE */;
7216 abort();
7217 }
7218 s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value: {
7219 const unsigned char* start;
7220 int err;
7221
7222 start = state->_span_pos0;
7223 state->_span_pos0 = NULL;
7224 err = llhttp__on_chunk_extension_value(state, start, p);
7225 if (err != 0) {
7226 state->error = err;
7227 state->error_pos = (const char*) p;
7228 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete;
7229 return s_error;
7230 }
7231 goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete;
7232 /* UNREACHABLE */;
7233 abort();
7234 }
7235 s_n_llhttp__internal__n_pause_9: {
7236 state->error = 0x15;
7237 state->reason = "on_chunk_extension_value pause";
7238 state->error_pos = (const char*) p;
7239 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_size_almost_done;
7240 return s_error;
7241 /* UNREACHABLE */;
7242 abort();
7243 }
7244 s_n_llhttp__internal__n_error_26: {
7245 state->error = 0x23;
7246 state->reason = "`on_chunk_extension_value` callback error";
7247 state->error_pos = (const char*) p;
7248 state->_current = (void*) (intptr_t) s_error;
7249 return s_error;
7250 /* UNREACHABLE */;
7251 abort();
7252 }
7253 s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_1: {
7254 const unsigned char* start;
7255 int err;
7256
7257 start = state->_span_pos0;
7258 state->_span_pos0 = NULL;
7259 err = llhttp__on_chunk_extension_value(state, start, p);
7260 if (err != 0) {
7261 state->error = err;
7262 state->error_pos = (const char*) (p + 1);
7263 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_1;
7264 return s_error;
7265 }
7266 p++;
7267 goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_1;
7268 /* UNREACHABLE */;
7269 abort();
7270 }
7271 s_n_llhttp__internal__n_error_28: {
7272 state->error = 0x19;
7273 state->reason = "Missing expected CR after chunk extension value";
7274 state->error_pos = (const char*) p;
7275 state->_current = (void*) (intptr_t) s_error;
7276 return s_error;
7277 /* UNREACHABLE */;
7278 abort();
7279 }
7280 s_n_llhttp__internal__n_invoke_test_lenient_flags_11: {
7281 switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
7282 case 1:
7283 goto s_n_llhttp__internal__n_chunk_size_almost_done;
7284 default:
7285 goto s_n_llhttp__internal__n_error_28;
7286 }
7287 /* UNREACHABLE */;
7288 abort();
7289 }
7290 s_n_llhttp__internal__n_error_29: {
7291 state->error = 0x2;
7292 state->reason = "Invalid character in chunk extensions quote value";
7293 state->error_pos = (const char*) p;
7294 state->_current = (void*) (intptr_t) s_error;
7295 return s_error;
7296 /* UNREACHABLE */;
7297 abort();
7298 }
7299 s_n_llhttp__internal__n_pause_10: {
7300 state->error = 0x15;
7301 state->reason = "on_chunk_extension_value pause";
7302 state->error_pos = (const char*) p;
7303 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_extension_quoted_value_done;
7304 return s_error;
7305 /* UNREACHABLE */;
7306 abort();
7307 }
7308 s_n_llhttp__internal__n_error_27: {
7309 state->error = 0x23;
7310 state->reason = "`on_chunk_extension_value` callback error";
7311 state->error_pos = (const char*) p;
7312 state->_current = (void*) (intptr_t) s_error;
7313 return s_error;
7314 /* UNREACHABLE */;
7315 abort();
7316 }
7317 s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_2: {
7318 const unsigned char* start;
7319 int err;
7320
7321 start = state->_span_pos0;
7322 state->_span_pos0 = NULL;
7323 err = llhttp__on_chunk_extension_value(state, start, p);
7324 if (err != 0) {
7325 state->error = err;
7326 state->error_pos = (const char*) p;
7327 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_2;
7328 return s_error;
7329 }
7330 goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_2;
7331 /* UNREACHABLE */;
7332 abort();
7333 }
7334 s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_3: {
7335 const unsigned char* start;
7336 int err;
7337
7338 start = state->_span_pos0;
7339 state->_span_pos0 = NULL;
7340 err = llhttp__on_chunk_extension_value(state, start, p);
7341 if (err != 0) {
7342 state->error = err;
7343 state->error_pos = (const char*) (p + 1);
7344 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_30;
7345 return s_error;
7346 }
7347 p++;
7348 goto s_n_llhttp__internal__n_error_30;
7349 /* UNREACHABLE */;
7350 abort();
7351 }
7352 s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_4: {
7353 const unsigned char* start;
7354 int err;
7355
7356 start = state->_span_pos0;
7357 state->_span_pos0 = NULL;
7358 err = llhttp__on_chunk_extension_value(state, start, p);
7359 if (err != 0) {
7360 state->error = err;
7361 state->error_pos = (const char*) (p + 1);
7362 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_31;
7363 return s_error;
7364 }
7365 p++;
7366 goto s_n_llhttp__internal__n_error_31;
7367 /* UNREACHABLE */;
7368 abort();
7369 }
7370 s_n_llhttp__internal__n_pause_11: {
7371 state->error = 0x15;
7372 state->reason = "on_chunk_extension_value pause";
7373 state->error_pos = (const char*) p;
7374 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_extensions;
7375 return s_error;
7376 /* UNREACHABLE */;
7377 abort();
7378 }
7379 s_n_llhttp__internal__n_error_32: {
7380 state->error = 0x23;
7381 state->reason = "`on_chunk_extension_value` callback error";
7382 state->error_pos = (const char*) p;
7383 state->_current = (void*) (intptr_t) s_error;
7384 return s_error;
7385 /* UNREACHABLE */;
7386 abort();
7387 }
7388 s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_5: {
7389 const unsigned char* start;
7390 int err;
7391
7392 start = state->_span_pos0;
7393 state->_span_pos0 = NULL;
7394 err = llhttp__on_chunk_extension_value(state, start, p);
7395 if (err != 0) {
7396 state->error = err;
7397 state->error_pos = (const char*) (p + 1);
7398 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_3;
7399 return s_error;
7400 }
7401 p++;
7402 goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_value_complete_3;
7403 /* UNREACHABLE */;
7404 abort();
7405 }
7406 s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_value_6: {
7407 const unsigned char* start;
7408 int err;
7409
7410 start = state->_span_pos0;
7411 state->_span_pos0 = NULL;
7412 err = llhttp__on_chunk_extension_value(state, start, p);
7413 if (err != 0) {
7414 state->error = err;
7415 state->error_pos = (const char*) (p + 1);
7416 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_33;
7417 return s_error;
7418 }
7419 p++;
7420 goto s_n_llhttp__internal__n_error_33;
7421 /* UNREACHABLE */;
7422 abort();
7423 }
7424 s_n_llhttp__internal__n_pause_12: {
7425 state->error = 0x15;
7426 state->reason = "on_chunk_extension_name pause";
7427 state->error_pos = (const char*) p;
7428 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_extension_value;
7429 return s_error;
7430 /* UNREACHABLE */;
7431 abort();
7432 }
7433 s_n_llhttp__internal__n_error_23: {
7434 state->error = 0x22;
7435 state->reason = "`on_chunk_extension_name` callback error";
7436 state->error_pos = (const char*) p;
7437 state->_current = (void*) (intptr_t) s_error;
7438 return s_error;
7439 /* UNREACHABLE */;
7440 abort();
7441 }
7442 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_extension_name_complete_3: {
7443 switch (llhttp__on_chunk_extension_name_complete(state, p, endp)) {
7444 case 0:
7445 goto s_n_llhttp__internal__n_chunk_extension_value;
7446 case 21:
7447 goto s_n_llhttp__internal__n_pause_12;
7448 default:
7449 goto s_n_llhttp__internal__n_error_23;
7450 }
7451 /* UNREACHABLE */;
7452 abort();
7453 }
7454 s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name_3: {
7455 const unsigned char* start;
7456 int err;
7457
7458 start = state->_span_pos0;
7459 state->_span_pos0 = NULL;
7460 err = llhttp__on_chunk_extension_name(state, start, p);
7461 if (err != 0) {
7462 state->error = err;
7463 state->error_pos = (const char*) (p + 1);
7464 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_value;
7465 return s_error;
7466 }
7467 p++;
7468 goto s_n_llhttp__internal__n_span_start_llhttp__on_chunk_extension_value;
7469 /* UNREACHABLE */;
7470 abort();
7471 }
7472 s_n_llhttp__internal__n_span_end_llhttp__on_chunk_extension_name_4: {
7473 const unsigned char* start;
7474 int err;
7475
7476 start = state->_span_pos0;
7477 state->_span_pos0 = NULL;
7478 err = llhttp__on_chunk_extension_name(state, start, p);
7479 if (err != 0) {
7480 state->error = err;
7481 state->error_pos = (const char*) (p + 1);
7482 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_34;
7483 return s_error;
7484 }
7485 p++;
7486 goto s_n_llhttp__internal__n_error_34;
7487 /* UNREACHABLE */;
7488 abort();
7489 }
7490 s_n_llhttp__internal__n_error_35: {
7491 state->error = 0xc;
7492 state->reason = "Invalid character in chunk size";
7493 state->error_pos = (const char*) p;
7494 state->_current = (void*) (intptr_t) s_error;
7495 return s_error;
7496 /* UNREACHABLE */;
7497 abort();
7498 }
7499 s_n_llhttp__internal__n_invoke_mul_add_content_length: {
7500 switch (llhttp__internal__c_mul_add_content_length(state, p, endp, match)) {
7501 case 1:
7502 goto s_n_llhttp__internal__n_error_36;
7503 default:
7504 goto s_n_llhttp__internal__n_chunk_size;
7505 }
7506 /* UNREACHABLE */;
7507 abort();
7508 }
7509 s_n_llhttp__internal__n_error_37: {
7510 state->error = 0xc;
7511 state->reason = "Invalid character in chunk size";
7512 state->error_pos = (const char*) p;
7513 state->_current = (void*) (intptr_t) s_error;
7514 return s_error;
7515 /* UNREACHABLE */;
7516 abort();
7517 }
7518 s_n_llhttp__internal__n_span_end_llhttp__on_body_1: {
7519 const unsigned char* start;
7520 int err;
7521
7522 start = state->_span_pos0;
7523 state->_span_pos0 = NULL;
7524 err = llhttp__on_body(state, start, p);
7525 if (err != 0) {
7526 state->error = err;
7527 state->error_pos = (const char*) p;
7528 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
7529 return s_error;
7530 }
7531 goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
7532 /* UNREACHABLE */;
7533 abort();
7534 }
7535 s_n_llhttp__internal__n_invoke_update_finish_3: {
7536 switch (llhttp__internal__c_update_finish_3(state, p, endp)) {
7537 default:
7538 goto s_n_llhttp__internal__n_span_start_llhttp__on_body_2;
7539 }
7540 /* UNREACHABLE */;
7541 abort();
7542 }
7543 s_n_llhttp__internal__n_error_39: {
7544 state->error = 0xf;
7545 state->reason = "Request has invalid `Transfer-Encoding`";
7546 state->error_pos = (const char*) p;
7547 state->_current = (void*) (intptr_t) s_error;
7548 return s_error;
7549 /* UNREACHABLE */;
7550 abort();
7551 }
7552 s_n_llhttp__internal__n_pause: {
7553 state->error = 0x15;
7554 state->reason = "on_message_complete pause";
7555 state->error_pos = (const char*) p;
7556 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
7557 return s_error;
7558 /* UNREACHABLE */;
7559 abort();
7560 }
7561 s_n_llhttp__internal__n_error_7: {
7562 state->error = 0x12;
7563 state->reason = "`on_message_complete` callback error";
7564 state->error_pos = (const char*) p;
7565 state->_current = (void*) (intptr_t) s_error;
7566 return s_error;
7567 /* UNREACHABLE */;
7568 abort();
7569 }
7570 s_n_llhttp__internal__n_invoke_llhttp__on_message_complete: {
7571 switch (llhttp__on_message_complete(state, p, endp)) {
7572 case 0:
7573 goto s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
7574 case 21:
7575 goto s_n_llhttp__internal__n_pause;
7576 default:
7577 goto s_n_llhttp__internal__n_error_7;
7578 }
7579 /* UNREACHABLE */;
7580 abort();
7581 }
7582 s_n_llhttp__internal__n_invoke_or_flags_1: {
7583 switch (llhttp__internal__c_or_flags_1(state, p, endp)) {
7584 default:
7585 goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
7586 }
7587 /* UNREACHABLE */;
7588 abort();
7589 }
7590 s_n_llhttp__internal__n_invoke_or_flags_2: {
7591 switch (llhttp__internal__c_or_flags_1(state, p, endp)) {
7592 default:
7593 goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
7594 }
7595 /* UNREACHABLE */;
7596 abort();
7597 }
7598 s_n_llhttp__internal__n_invoke_update_upgrade: {
7599 switch (llhttp__internal__c_update_upgrade(state, p, endp)) {
7600 default:
7601 goto s_n_llhttp__internal__n_invoke_or_flags_2;
7602 }
7603 /* UNREACHABLE */;
7604 abort();
7605 }
7606 s_n_llhttp__internal__n_pause_14: {
7607 state->error = 0x15;
7608 state->reason = "Paused by on_headers_complete";
7609 state->error_pos = (const char*) p;
7610 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
7611 return s_error;
7612 /* UNREACHABLE */;
7613 abort();
7614 }
7615 s_n_llhttp__internal__n_error_6: {
7616 state->error = 0x11;
7617 state->reason = "User callback error";
7618 state->error_pos = (const char*) p;
7619 state->_current = (void*) (intptr_t) s_error;
7620 return s_error;
7621 /* UNREACHABLE */;
7622 abort();
7623 }
7624 s_n_llhttp__internal__n_invoke_llhttp__on_headers_complete: {
7625 switch (llhttp__on_headers_complete(state, p, endp)) {
7626 case 0:
7627 goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
7628 case 1:
7629 goto s_n_llhttp__internal__n_invoke_or_flags_1;
7630 case 2:
7631 goto s_n_llhttp__internal__n_invoke_update_upgrade;
7632 case 21:
7633 goto s_n_llhttp__internal__n_pause_14;
7634 default:
7635 goto s_n_llhttp__internal__n_error_6;
7636 }
7637 /* UNREACHABLE */;
7638 abort();
7639 }
7640 s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete: {
7641 switch (llhttp__before_headers_complete(state, p, endp)) {
7642 default:
7643 goto s_n_llhttp__internal__n_invoke_llhttp__on_headers_complete;
7644 }
7645 /* UNREACHABLE */;
7646 abort();
7647 }
7648 s_n_llhttp__internal__n_invoke_test_flags: {
7649 switch (llhttp__internal__c_test_flags(state, p, endp)) {
7650 case 1:
7651 goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete_1;
7652 default:
7653 goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete;
7654 }
7655 /* UNREACHABLE */;
7656 abort();
7657 }
7658 s_n_llhttp__internal__n_invoke_test_lenient_flags_1: {
7659 switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
7660 case 1:
7661 goto s_n_llhttp__internal__n_invoke_test_flags;
7662 default:
7663 goto s_n_llhttp__internal__n_error_5;
7664 }
7665 /* UNREACHABLE */;
7666 abort();
7667 }
7668 s_n_llhttp__internal__n_pause_17: {
7669 state->error = 0x15;
7670 state->reason = "on_chunk_complete pause";
7671 state->error_pos = (const char*) p;
7672 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
7673 return s_error;
7674 /* UNREACHABLE */;
7675 abort();
7676 }
7677 s_n_llhttp__internal__n_error_42: {
7678 state->error = 0x14;
7679 state->reason = "`on_chunk_complete` callback error";
7680 state->error_pos = (const char*) p;
7681 state->_current = (void*) (intptr_t) s_error;
7682 return s_error;
7683 /* UNREACHABLE */;
7684 abort();
7685 }
7686 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete_2: {
7687 switch (llhttp__on_chunk_complete(state, p, endp)) {
7688 case 0:
7689 goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
7690 case 21:
7691 goto s_n_llhttp__internal__n_pause_17;
7692 default:
7693 goto s_n_llhttp__internal__n_error_42;
7694 }
7695 /* UNREACHABLE */;
7696 abort();
7697 }
7698 s_n_llhttp__internal__n_invoke_or_flags_3: {
7699 switch (llhttp__internal__c_or_flags_1(state, p, endp)) {
7700 default:
7701 goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
7702 }
7703 /* UNREACHABLE */;
7704 abort();
7705 }
7706 s_n_llhttp__internal__n_invoke_or_flags_4: {
7707 switch (llhttp__internal__c_or_flags_1(state, p, endp)) {
7708 default:
7709 goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
7710 }
7711 /* UNREACHABLE */;
7712 abort();
7713 }
7714 s_n_llhttp__internal__n_invoke_update_upgrade_1: {
7715 switch (llhttp__internal__c_update_upgrade(state, p, endp)) {
7716 default:
7717 goto s_n_llhttp__internal__n_invoke_or_flags_4;
7718 }
7719 /* UNREACHABLE */;
7720 abort();
7721 }
7722 s_n_llhttp__internal__n_pause_16: {
7723 state->error = 0x15;
7724 state->reason = "Paused by on_headers_complete";
7725 state->error_pos = (const char*) p;
7726 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
7727 return s_error;
7728 /* UNREACHABLE */;
7729 abort();
7730 }
7731 s_n_llhttp__internal__n_error_41: {
7732 state->error = 0x11;
7733 state->reason = "User callback error";
7734 state->error_pos = (const char*) p;
7735 state->_current = (void*) (intptr_t) s_error;
7736 return s_error;
7737 /* UNREACHABLE */;
7738 abort();
7739 }
7740 s_n_llhttp__internal__n_invoke_llhttp__on_headers_complete_1: {
7741 switch (llhttp__on_headers_complete(state, p, endp)) {
7742 case 0:
7743 goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
7744 case 1:
7745 goto s_n_llhttp__internal__n_invoke_or_flags_3;
7746 case 2:
7747 goto s_n_llhttp__internal__n_invoke_update_upgrade_1;
7748 case 21:
7749 goto s_n_llhttp__internal__n_pause_16;
7750 default:
7751 goto s_n_llhttp__internal__n_error_41;
7752 }
7753 /* UNREACHABLE */;
7754 abort();
7755 }
7756 s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete_1: {
7757 switch (llhttp__before_headers_complete(state, p, endp)) {
7758 default:
7759 goto s_n_llhttp__internal__n_invoke_llhttp__on_headers_complete_1;
7760 }
7761 /* UNREACHABLE */;
7762 abort();
7763 }
7764 s_n_llhttp__internal__n_invoke_test_flags_1: {
7765 switch (llhttp__internal__c_test_flags(state, p, endp)) {
7766 case 1:
7767 goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete_2;
7768 default:
7769 goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete_1;
7770 }
7771 /* UNREACHABLE */;
7772 abort();
7773 }
7774 s_n_llhttp__internal__n_error_43: {
7775 state->error = 0x2;
7776 state->reason = "Expected LF after headers";
7777 state->error_pos = (const char*) p;
7778 state->_current = (void*) (intptr_t) s_error;
7779 return s_error;
7780 /* UNREACHABLE */;
7781 abort();
7782 }
7783 s_n_llhttp__internal__n_invoke_test_lenient_flags_12: {
7784 switch (llhttp__internal__c_test_lenient_flags_8(state, p, endp)) {
7785 case 1:
7786 goto s_n_llhttp__internal__n_invoke_test_flags_1;
7787 default:
7788 goto s_n_llhttp__internal__n_error_43;
7789 }
7790 /* UNREACHABLE */;
7791 abort();
7792 }
7793 s_n_llhttp__internal__n_error_44: {
7794 state->error = 0xa;
7795 state->reason = "Invalid header token";
7796 state->error_pos = (const char*) p;
7797 state->_current = (void*) (intptr_t) s_error;
7798 return s_error;
7799 /* UNREACHABLE */;
7800 abort();
7801 }
7802 s_n_llhttp__internal__n_span_end_llhttp__on_header_field: {
7803 const unsigned char* start;
7804 int err;
7805
7806 start = state->_span_pos0;
7807 state->_span_pos0 = NULL;
7808 err = llhttp__on_header_field(state, start, p);
7809 if (err != 0) {
7810 state->error = err;
7811 state->error_pos = (const char*) (p + 1);
7812 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_5;
7813 return s_error;
7814 }
7815 p++;
7816 goto s_n_llhttp__internal__n_error_5;
7817 /* UNREACHABLE */;
7818 abort();
7819 }
7820 s_n_llhttp__internal__n_invoke_test_lenient_flags_13: {
7821 switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) {
7822 case 1:
7823 goto s_n_llhttp__internal__n_header_field_colon_discard_ws;
7824 default:
7825 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field;
7826 }
7827 /* UNREACHABLE */;
7828 abort();
7829 }
7830 s_n_llhttp__internal__n_error_60: {
7831 state->error = 0xb;
7832 state->reason = "Content-Length can't be present with Transfer-Encoding";
7833 state->error_pos = (const char*) p;
7834 state->_current = (void*) (intptr_t) s_error;
7835 return s_error;
7836 /* UNREACHABLE */;
7837 abort();
7838 }
7839 s_n_llhttp__internal__n_error_47: {
7840 state->error = 0xa;
7841 state->reason = "Invalid header value char";
7842 state->error_pos = (const char*) p;
7843 state->_current = (void*) (intptr_t) s_error;
7844 return s_error;
7845 /* UNREACHABLE */;
7846 abort();
7847 }
7848 s_n_llhttp__internal__n_invoke_test_lenient_flags_15: {
7849 switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) {
7850 case 1:
7851 goto s_n_llhttp__internal__n_header_value_discard_ws;
7852 default:
7853 goto s_n_llhttp__internal__n_error_47;
7854 }
7855 /* UNREACHABLE */;
7856 abort();
7857 }
7858 s_n_llhttp__internal__n_error_49: {
7859 state->error = 0xb;
7860 state->reason = "Empty Content-Length";
7861 state->error_pos = (const char*) p;
7862 state->_current = (void*) (intptr_t) s_error;
7863 return s_error;
7864 /* UNREACHABLE */;
7865 abort();
7866 }
7867 s_n_llhttp__internal__n_pause_18: {
7868 state->error = 0x15;
7869 state->reason = "on_header_value_complete pause";
7870 state->error_pos = (const char*) p;
7871 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_field_start;
7872 return s_error;
7873 /* UNREACHABLE */;
7874 abort();
7875 }
7876 s_n_llhttp__internal__n_error_48: {
7877 state->error = 0x1d;
7878 state->reason = "`on_header_value_complete` callback error";
7879 state->error_pos = (const char*) p;
7880 state->_current = (void*) (intptr_t) s_error;
7881 return s_error;
7882 /* UNREACHABLE */;
7883 abort();
7884 }
7885 s_n_llhttp__internal__n_span_end_llhttp__on_header_value: {
7886 const unsigned char* start;
7887 int err;
7888
7889 start = state->_span_pos0;
7890 state->_span_pos0 = NULL;
7891 err = llhttp__on_header_value(state, start, p);
7892 if (err != 0) {
7893 state->error = err;
7894 state->error_pos = (const char*) p;
7895 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete;
7896 return s_error;
7897 }
7898 goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete;
7899 /* UNREACHABLE */;
7900 abort();
7901 }
7902 s_n_llhttp__internal__n_invoke_update_header_state: {
7903 switch (llhttp__internal__c_update_header_state(state, p, endp)) {
7904 default:
7905 goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value;
7906 }
7907 /* UNREACHABLE */;
7908 abort();
7909 }
7910 s_n_llhttp__internal__n_invoke_or_flags_5: {
7911 switch (llhttp__internal__c_or_flags_5(state, p, endp)) {
7912 default:
7913 goto s_n_llhttp__internal__n_invoke_update_header_state;
7914 }
7915 /* UNREACHABLE */;
7916 abort();
7917 }
7918 s_n_llhttp__internal__n_invoke_or_flags_6: {
7919 switch (llhttp__internal__c_or_flags_6(state, p, endp)) {
7920 default:
7921 goto s_n_llhttp__internal__n_invoke_update_header_state;
7922 }
7923 /* UNREACHABLE */;
7924 abort();
7925 }
7926 s_n_llhttp__internal__n_invoke_or_flags_7: {
7927 switch (llhttp__internal__c_or_flags_7(state, p, endp)) {
7928 default:
7929 goto s_n_llhttp__internal__n_invoke_update_header_state;
7930 }
7931 /* UNREACHABLE */;
7932 abort();
7933 }
7934 s_n_llhttp__internal__n_invoke_or_flags_8: {
7935 switch (llhttp__internal__c_or_flags_8(state, p, endp)) {
7936 default:
7937 goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value;
7938 }
7939 /* UNREACHABLE */;
7940 abort();
7941 }
7942 s_n_llhttp__internal__n_invoke_load_header_state_2: {
7943 switch (llhttp__internal__c_load_header_state(state, p, endp)) {
7944 case 5:
7945 goto s_n_llhttp__internal__n_invoke_or_flags_5;
7946 case 6:
7947 goto s_n_llhttp__internal__n_invoke_or_flags_6;
7948 case 7:
7949 goto s_n_llhttp__internal__n_invoke_or_flags_7;
7950 case 8:
7951 goto s_n_llhttp__internal__n_invoke_or_flags_8;
7952 default:
7953 goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value;
7954 }
7955 /* UNREACHABLE */;
7956 abort();
7957 }
7958 s_n_llhttp__internal__n_invoke_load_header_state_1: {
7959 switch (llhttp__internal__c_load_header_state(state, p, endp)) {
7960 case 2:
7961 goto s_n_llhttp__internal__n_error_49;
7962 default:
7963 goto s_n_llhttp__internal__n_invoke_load_header_state_2;
7964 }
7965 /* UNREACHABLE */;
7966 abort();
7967 }
7968 s_n_llhttp__internal__n_error_46: {
7969 state->error = 0xa;
7970 state->reason = "Invalid header value char";
7971 state->error_pos = (const char*) p;
7972 state->_current = (void*) (intptr_t) s_error;
7973 return s_error;
7974 /* UNREACHABLE */;
7975 abort();
7976 }
7977 s_n_llhttp__internal__n_invoke_test_lenient_flags_14: {
7978 switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
7979 case 1:
7980 goto s_n_llhttp__internal__n_header_value_discard_lws;
7981 default:
7982 goto s_n_llhttp__internal__n_error_46;
7983 }
7984 /* UNREACHABLE */;
7985 abort();
7986 }
7987 s_n_llhttp__internal__n_error_50: {
7988 state->error = 0x2;
7989 state->reason = "Expected LF after CR";
7990 state->error_pos = (const char*) p;
7991 state->_current = (void*) (intptr_t) s_error;
7992 return s_error;
7993 /* UNREACHABLE */;
7994 abort();
7995 }
7996 s_n_llhttp__internal__n_invoke_test_lenient_flags_16: {
7997 switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) {
7998 case 1:
7999 goto s_n_llhttp__internal__n_header_value_discard_lws;
8000 default:
8001 goto s_n_llhttp__internal__n_error_50;
8002 }
8003 /* UNREACHABLE */;
8004 abort();
8005 }
8006 s_n_llhttp__internal__n_invoke_update_header_state_1: {
8007 switch (llhttp__internal__c_update_header_state_1(state, p, endp)) {
8008 default:
8009 goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
8010 }
8011 /* UNREACHABLE */;
8012 abort();
8013 }
8014 s_n_llhttp__internal__n_invoke_load_header_state_4: {
8015 switch (llhttp__internal__c_load_header_state(state, p, endp)) {
8016 case 8:
8017 goto s_n_llhttp__internal__n_invoke_update_header_state_1;
8018 default:
8019 goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
8020 }
8021 /* UNREACHABLE */;
8022 abort();
8023 }
8024 s_n_llhttp__internal__n_error_52: {
8025 state->error = 0xa;
8026 state->reason = "Unexpected whitespace after header value";
8027 state->error_pos = (const char*) p;
8028 state->_current = (void*) (intptr_t) s_error;
8029 return s_error;
8030 /* UNREACHABLE */;
8031 abort();
8032 }
8033 s_n_llhttp__internal__n_invoke_test_lenient_flags_18: {
8034 switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) {
8035 case 1:
8036 goto s_n_llhttp__internal__n_invoke_load_header_state_4;
8037 default:
8038 goto s_n_llhttp__internal__n_error_52;
8039 }
8040 /* UNREACHABLE */;
8041 abort();
8042 }
8043 s_n_llhttp__internal__n_invoke_update_header_state_2: {
8044 switch (llhttp__internal__c_update_header_state(state, p, endp)) {
8045 default:
8046 goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete;
8047 }
8048 /* UNREACHABLE */;
8049 abort();
8050 }
8051 s_n_llhttp__internal__n_invoke_or_flags_9: {
8052 switch (llhttp__internal__c_or_flags_5(state, p, endp)) {
8053 default:
8054 goto s_n_llhttp__internal__n_invoke_update_header_state_2;
8055 }
8056 /* UNREACHABLE */;
8057 abort();
8058 }
8059 s_n_llhttp__internal__n_invoke_or_flags_10: {
8060 switch (llhttp__internal__c_or_flags_6(state, p, endp)) {
8061 default:
8062 goto s_n_llhttp__internal__n_invoke_update_header_state_2;
8063 }
8064 /* UNREACHABLE */;
8065 abort();
8066 }
8067 s_n_llhttp__internal__n_invoke_or_flags_11: {
8068 switch (llhttp__internal__c_or_flags_7(state, p, endp)) {
8069 default:
8070 goto s_n_llhttp__internal__n_invoke_update_header_state_2;
8071 }
8072 /* UNREACHABLE */;
8073 abort();
8074 }
8075 s_n_llhttp__internal__n_invoke_or_flags_12: {
8076 switch (llhttp__internal__c_or_flags_8(state, p, endp)) {
8077 default:
8078 goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete;
8079 }
8080 /* UNREACHABLE */;
8081 abort();
8082 }
8083 s_n_llhttp__internal__n_invoke_load_header_state_5: {
8084 switch (llhttp__internal__c_load_header_state(state, p, endp)) {
8085 case 5:
8086 goto s_n_llhttp__internal__n_invoke_or_flags_9;
8087 case 6:
8088 goto s_n_llhttp__internal__n_invoke_or_flags_10;
8089 case 7:
8090 goto s_n_llhttp__internal__n_invoke_or_flags_11;
8091 case 8:
8092 goto s_n_llhttp__internal__n_invoke_or_flags_12;
8093 default:
8094 goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete;
8095 }
8096 /* UNREACHABLE */;
8097 abort();
8098 }
8099 s_n_llhttp__internal__n_error_53: {
8100 state->error = 0x3;
8101 state->reason = "Missing expected LF after header value";
8102 state->error_pos = (const char*) p;
8103 state->_current = (void*) (intptr_t) s_error;
8104 return s_error;
8105 /* UNREACHABLE */;
8106 abort();
8107 }
8108 s_n_llhttp__internal__n_error_51: {
8109 state->error = 0x19;
8110 state->reason = "Missing expected CR after header value";
8111 state->error_pos = (const char*) p;
8112 state->_current = (void*) (intptr_t) s_error;
8113 return s_error;
8114 /* UNREACHABLE */;
8115 abort();
8116 }
8117 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_1: {
8118 const unsigned char* start;
8119 int err;
8120
8121 start = state->_span_pos0;
8122 state->_span_pos0 = NULL;
8123 err = llhttp__on_header_value(state, start, p);
8124 if (err != 0) {
8125 state->error = err;
8126 state->error_pos = (const char*) p;
8127 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_test_lenient_flags_17;
8128 return s_error;
8129 }
8130 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_17;
8131 /* UNREACHABLE */;
8132 abort();
8133 }
8134 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_2: {
8135 const unsigned char* start;
8136 int err;
8137
8138 start = state->_span_pos0;
8139 state->_span_pos0 = NULL;
8140 err = llhttp__on_header_value(state, start, p);
8141 if (err != 0) {
8142 state->error = err;
8143 state->error_pos = (const char*) (p + 1);
8144 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_almost_done;
8145 return s_error;
8146 }
8147 p++;
8148 goto s_n_llhttp__internal__n_header_value_almost_done;
8149 /* UNREACHABLE */;
8150 abort();
8151 }
8152 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_4: {
8153 const unsigned char* start;
8154 int err;
8155
8156 start = state->_span_pos0;
8157 state->_span_pos0 = NULL;
8158 err = llhttp__on_header_value(state, start, p);
8159 if (err != 0) {
8160 state->error = err;
8161 state->error_pos = (const char*) p;
8162 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_almost_done;
8163 return s_error;
8164 }
8165 goto s_n_llhttp__internal__n_header_value_almost_done;
8166 /* UNREACHABLE */;
8167 abort();
8168 }
8169 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_5: {
8170 const unsigned char* start;
8171 int err;
8172
8173 start = state->_span_pos0;
8174 state->_span_pos0 = NULL;
8175 err = llhttp__on_header_value(state, start, p);
8176 if (err != 0) {
8177 state->error = err;
8178 state->error_pos = (const char*) (p + 1);
8179 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_almost_done;
8180 return s_error;
8181 }
8182 p++;
8183 goto s_n_llhttp__internal__n_header_value_almost_done;
8184 /* UNREACHABLE */;
8185 abort();
8186 }
8187 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_3: {
8188 const unsigned char* start;
8189 int err;
8190
8191 start = state->_span_pos0;
8192 state->_span_pos0 = NULL;
8193 err = llhttp__on_header_value(state, start, p);
8194 if (err != 0) {
8195 state->error = err;
8196 state->error_pos = (const char*) p;
8197 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_54;
8198 return s_error;
8199 }
8200 goto s_n_llhttp__internal__n_error_54;
8201 /* UNREACHABLE */;
8202 abort();
8203 }
8204 s_n_llhttp__internal__n_invoke_test_lenient_flags_19: {
8205 switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) {
8206 case 1:
8207 goto s_n_llhttp__internal__n_header_value_lenient;
8208 default:
8209 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_3;
8210 }
8211 /* UNREACHABLE */;
8212 abort();
8213 }
8214 s_n_llhttp__internal__n_invoke_update_header_state_4: {
8215 switch (llhttp__internal__c_update_header_state(state, p, endp)) {
8216 default:
8217 goto s_n_llhttp__internal__n_header_value_connection;
8218 }
8219 /* UNREACHABLE */;
8220 abort();
8221 }
8222 s_n_llhttp__internal__n_invoke_or_flags_13: {
8223 switch (llhttp__internal__c_or_flags_5(state, p, endp)) {
8224 default:
8225 goto s_n_llhttp__internal__n_invoke_update_header_state_4;
8226 }
8227 /* UNREACHABLE */;
8228 abort();
8229 }
8230 s_n_llhttp__internal__n_invoke_or_flags_14: {
8231 switch (llhttp__internal__c_or_flags_6(state, p, endp)) {
8232 default:
8233 goto s_n_llhttp__internal__n_invoke_update_header_state_4;
8234 }
8235 /* UNREACHABLE */;
8236 abort();
8237 }
8238 s_n_llhttp__internal__n_invoke_or_flags_15: {
8239 switch (llhttp__internal__c_or_flags_7(state, p, endp)) {
8240 default:
8241 goto s_n_llhttp__internal__n_invoke_update_header_state_4;
8242 }
8243 /* UNREACHABLE */;
8244 abort();
8245 }
8246 s_n_llhttp__internal__n_invoke_or_flags_16: {
8247 switch (llhttp__internal__c_or_flags_8(state, p, endp)) {
8248 default:
8249 goto s_n_llhttp__internal__n_header_value_connection;
8250 }
8251 /* UNREACHABLE */;
8252 abort();
8253 }
8254 s_n_llhttp__internal__n_invoke_load_header_state_6: {
8255 switch (llhttp__internal__c_load_header_state(state, p, endp)) {
8256 case 5:
8257 goto s_n_llhttp__internal__n_invoke_or_flags_13;
8258 case 6:
8259 goto s_n_llhttp__internal__n_invoke_or_flags_14;
8260 case 7:
8261 goto s_n_llhttp__internal__n_invoke_or_flags_15;
8262 case 8:
8263 goto s_n_llhttp__internal__n_invoke_or_flags_16;
8264 default:
8265 goto s_n_llhttp__internal__n_header_value_connection;
8266 }
8267 /* UNREACHABLE */;
8268 abort();
8269 }
8270 s_n_llhttp__internal__n_invoke_update_header_state_5: {
8271 switch (llhttp__internal__c_update_header_state_1(state, p, endp)) {
8272 default:
8273 goto s_n_llhttp__internal__n_header_value_connection_token;
8274 }
8275 /* UNREACHABLE */;
8276 abort();
8277 }
8278 s_n_llhttp__internal__n_invoke_update_header_state_3: {
8279 switch (llhttp__internal__c_update_header_state_3(state, p, endp)) {
8280 default:
8281 goto s_n_llhttp__internal__n_header_value_connection_ws;
8282 }
8283 /* UNREACHABLE */;
8284 abort();
8285 }
8286 s_n_llhttp__internal__n_invoke_update_header_state_6: {
8287 switch (llhttp__internal__c_update_header_state_6(state, p, endp)) {
8288 default:
8289 goto s_n_llhttp__internal__n_header_value_connection_ws;
8290 }
8291 /* UNREACHABLE */;
8292 abort();
8293 }
8294 s_n_llhttp__internal__n_invoke_update_header_state_7: {
8295 switch (llhttp__internal__c_update_header_state_7(state, p, endp)) {
8296 default:
8297 goto s_n_llhttp__internal__n_header_value_connection_ws;
8298 }
8299 /* UNREACHABLE */;
8300 abort();
8301 }
8302 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_6: {
8303 const unsigned char* start;
8304 int err;
8305
8306 start = state->_span_pos0;
8307 state->_span_pos0 = NULL;
8308 err = llhttp__on_header_value(state, start, p);
8309 if (err != 0) {
8310 state->error = err;
8311 state->error_pos = (const char*) p;
8312 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_56;
8313 return s_error;
8314 }
8315 goto s_n_llhttp__internal__n_error_56;
8316 /* UNREACHABLE */;
8317 abort();
8318 }
8319 s_n_llhttp__internal__n_invoke_mul_add_content_length_1: {
8320 switch (llhttp__internal__c_mul_add_content_length_1(state, p, endp, match)) {
8321 case 1:
8322 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_6;
8323 default:
8324 goto s_n_llhttp__internal__n_header_value_content_length;
8325 }
8326 /* UNREACHABLE */;
8327 abort();
8328 }
8329 s_n_llhttp__internal__n_invoke_or_flags_17: {
8330 switch (llhttp__internal__c_or_flags_17(state, p, endp)) {
8331 default:
8332 goto s_n_llhttp__internal__n_header_value_otherwise;
8333 }
8334 /* UNREACHABLE */;
8335 abort();
8336 }
8337 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_7: {
8338 const unsigned char* start;
8339 int err;
8340
8341 start = state->_span_pos0;
8342 state->_span_pos0 = NULL;
8343 err = llhttp__on_header_value(state, start, p);
8344 if (err != 0) {
8345 state->error = err;
8346 state->error_pos = (const char*) p;
8347 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_57;
8348 return s_error;
8349 }
8350 goto s_n_llhttp__internal__n_error_57;
8351 /* UNREACHABLE */;
8352 abort();
8353 }
8354 s_n_llhttp__internal__n_error_55: {
8355 state->error = 0x4;
8356 state->reason = "Duplicate Content-Length";
8357 state->error_pos = (const char*) p;
8358 state->_current = (void*) (intptr_t) s_error;
8359 return s_error;
8360 /* UNREACHABLE */;
8361 abort();
8362 }
8363 s_n_llhttp__internal__n_invoke_test_flags_2: {
8364 switch (llhttp__internal__c_test_flags_2(state, p, endp)) {
8365 case 0:
8366 goto s_n_llhttp__internal__n_header_value_content_length;
8367 default:
8368 goto s_n_llhttp__internal__n_error_55;
8369 }
8370 /* UNREACHABLE */;
8371 abort();
8372 }
8373 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_9: {
8374 const unsigned char* start;
8375 int err;
8376
8377 start = state->_span_pos0;
8378 state->_span_pos0 = NULL;
8379 err = llhttp__on_header_value(state, start, p);
8380 if (err != 0) {
8381 state->error = err;
8382 state->error_pos = (const char*) (p + 1);
8383 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_59;
8384 return s_error;
8385 }
8386 p++;
8387 goto s_n_llhttp__internal__n_error_59;
8388 /* UNREACHABLE */;
8389 abort();
8390 }
8391 s_n_llhttp__internal__n_invoke_update_header_state_8: {
8392 switch (llhttp__internal__c_update_header_state_8(state, p, endp)) {
8393 default:
8394 goto s_n_llhttp__internal__n_header_value_otherwise;
8395 }
8396 /* UNREACHABLE */;
8397 abort();
8398 }
8399 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_8: {
8400 const unsigned char* start;
8401 int err;
8402
8403 start = state->_span_pos0;
8404 state->_span_pos0 = NULL;
8405 err = llhttp__on_header_value(state, start, p);
8406 if (err != 0) {
8407 state->error = err;
8408 state->error_pos = (const char*) (p + 1);
8409 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_58;
8410 return s_error;
8411 }
8412 p++;
8413 goto s_n_llhttp__internal__n_error_58;
8414 /* UNREACHABLE */;
8415 abort();
8416 }
8417 s_n_llhttp__internal__n_invoke_test_lenient_flags_20: {
8418 switch (llhttp__internal__c_test_lenient_flags_20(state, p, endp)) {
8419 case 0:
8420 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_8;
8421 default:
8422 goto s_n_llhttp__internal__n_header_value_te_chunked;
8423 }
8424 /* UNREACHABLE */;
8425 abort();
8426 }
8427 s_n_llhttp__internal__n_invoke_load_type_1: {
8428 switch (llhttp__internal__c_load_type(state, p, endp)) {
8429 case 1:
8430 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_20;
8431 default:
8432 goto s_n_llhttp__internal__n_header_value_te_chunked;
8433 }
8434 /* UNREACHABLE */;
8435 abort();
8436 }
8437 s_n_llhttp__internal__n_invoke_update_header_state_9: {
8438 switch (llhttp__internal__c_update_header_state_1(state, p, endp)) {
8439 default:
8440 goto s_n_llhttp__internal__n_header_value;
8441 }
8442 /* UNREACHABLE */;
8443 abort();
8444 }
8445 s_n_llhttp__internal__n_invoke_and_flags: {
8446 switch (llhttp__internal__c_and_flags(state, p, endp)) {
8447 default:
8448 goto s_n_llhttp__internal__n_header_value_te_chunked;
8449 }
8450 /* UNREACHABLE */;
8451 abort();
8452 }
8453 s_n_llhttp__internal__n_invoke_or_flags_19: {
8454 switch (llhttp__internal__c_or_flags_18(state, p, endp)) {
8455 default:
8456 goto s_n_llhttp__internal__n_invoke_and_flags;
8457 }
8458 /* UNREACHABLE */;
8459 abort();
8460 }
8461 s_n_llhttp__internal__n_invoke_test_lenient_flags_21: {
8462 switch (llhttp__internal__c_test_lenient_flags_20(state, p, endp)) {
8463 case 0:
8464 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_9;
8465 default:
8466 goto s_n_llhttp__internal__n_invoke_or_flags_19;
8467 }
8468 /* UNREACHABLE */;
8469 abort();
8470 }
8471 s_n_llhttp__internal__n_invoke_load_type_2: {
8472 switch (llhttp__internal__c_load_type(state, p, endp)) {
8473 case 1:
8474 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_21;
8475 default:
8476 goto s_n_llhttp__internal__n_invoke_or_flags_19;
8477 }
8478 /* UNREACHABLE */;
8479 abort();
8480 }
8481 s_n_llhttp__internal__n_invoke_or_flags_18: {
8482 switch (llhttp__internal__c_or_flags_18(state, p, endp)) {
8483 default:
8484 goto s_n_llhttp__internal__n_invoke_and_flags;
8485 }
8486 /* UNREACHABLE */;
8487 abort();
8488 }
8489 s_n_llhttp__internal__n_invoke_test_flags_3: {
8490 switch (llhttp__internal__c_test_flags_3(state, p, endp)) {
8491 case 1:
8492 goto s_n_llhttp__internal__n_invoke_load_type_2;
8493 default:
8494 goto s_n_llhttp__internal__n_invoke_or_flags_18;
8495 }
8496 /* UNREACHABLE */;
8497 abort();
8498 }
8499 s_n_llhttp__internal__n_invoke_or_flags_20: {
8500 switch (llhttp__internal__c_or_flags_20(state, p, endp)) {
8501 default:
8502 goto s_n_llhttp__internal__n_invoke_update_header_state_9;
8503 }
8504 /* UNREACHABLE */;
8505 abort();
8506 }
8507 s_n_llhttp__internal__n_invoke_load_header_state_3: {
8508 switch (llhttp__internal__c_load_header_state(state, p, endp)) {
8509 case 1:
8510 goto s_n_llhttp__internal__n_header_value_connection;
8511 case 2:
8512 goto s_n_llhttp__internal__n_invoke_test_flags_2;
8513 case 3:
8514 goto s_n_llhttp__internal__n_invoke_test_flags_3;
8515 case 4:
8516 goto s_n_llhttp__internal__n_invoke_or_flags_20;
8517 default:
8518 goto s_n_llhttp__internal__n_header_value;
8519 }
8520 /* UNREACHABLE */;
8521 abort();
8522 }
8523 s_n_llhttp__internal__n_invoke_test_lenient_flags_22: {
8524 switch (llhttp__internal__c_test_lenient_flags_22(state, p, endp)) {
8525 case 0:
8526 goto s_n_llhttp__internal__n_error_60;
8527 default:
8528 goto s_n_llhttp__internal__n_header_value_discard_ws;
8529 }
8530 /* UNREACHABLE */;
8531 abort();
8532 }
8533 s_n_llhttp__internal__n_invoke_test_flags_4: {
8534 switch (llhttp__internal__c_test_flags_4(state, p, endp)) {
8535 case 1:
8536 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_22;
8537 default:
8538 goto s_n_llhttp__internal__n_header_value_discard_ws;
8539 }
8540 /* UNREACHABLE */;
8541 abort();
8542 }
8543 s_n_llhttp__internal__n_error_61: {
8544 state->error = 0xf;
8545 state->reason = "Transfer-Encoding can't be present with Content-Length";
8546 state->error_pos = (const char*) p;
8547 state->_current = (void*) (intptr_t) s_error;
8548 return s_error;
8549 /* UNREACHABLE */;
8550 abort();
8551 }
8552 s_n_llhttp__internal__n_invoke_test_lenient_flags_23: {
8553 switch (llhttp__internal__c_test_lenient_flags_22(state, p, endp)) {
8554 case 0:
8555 goto s_n_llhttp__internal__n_error_61;
8556 default:
8557 goto s_n_llhttp__internal__n_header_value_discard_ws;
8558 }
8559 /* UNREACHABLE */;
8560 abort();
8561 }
8562 s_n_llhttp__internal__n_invoke_test_flags_5: {
8563 switch (llhttp__internal__c_test_flags_2(state, p, endp)) {
8564 case 1:
8565 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_23;
8566 default:
8567 goto s_n_llhttp__internal__n_header_value_discard_ws;
8568 }
8569 /* UNREACHABLE */;
8570 abort();
8571 }
8572 s_n_llhttp__internal__n_pause_19: {
8573 state->error = 0x15;
8574 state->reason = "on_header_field_complete pause";
8575 state->error_pos = (const char*) p;
8576 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_load_header_state;
8577 return s_error;
8578 /* UNREACHABLE */;
8579 abort();
8580 }
8581 s_n_llhttp__internal__n_error_45: {
8582 state->error = 0x1c;
8583 state->reason = "`on_header_field_complete` callback error";
8584 state->error_pos = (const char*) p;
8585 state->_current = (void*) (intptr_t) s_error;
8586 return s_error;
8587 /* UNREACHABLE */;
8588 abort();
8589 }
8590 s_n_llhttp__internal__n_span_end_llhttp__on_header_field_1: {
8591 const unsigned char* start;
8592 int err;
8593
8594 start = state->_span_pos0;
8595 state->_span_pos0 = NULL;
8596 err = llhttp__on_header_field(state, start, p);
8597 if (err != 0) {
8598 state->error = err;
8599 state->error_pos = (const char*) (p + 1);
8600 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete;
8601 return s_error;
8602 }
8603 p++;
8604 goto s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete;
8605 /* UNREACHABLE */;
8606 abort();
8607 }
8608 s_n_llhttp__internal__n_span_end_llhttp__on_header_field_2: {
8609 const unsigned char* start;
8610 int err;
8611
8612 start = state->_span_pos0;
8613 state->_span_pos0 = NULL;
8614 err = llhttp__on_header_field(state, start, p);
8615 if (err != 0) {
8616 state->error = err;
8617 state->error_pos = (const char*) (p + 1);
8618 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete;
8619 return s_error;
8620 }
8621 p++;
8622 goto s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete;
8623 /* UNREACHABLE */;
8624 abort();
8625 }
8626 s_n_llhttp__internal__n_error_62: {
8627 state->error = 0xa;
8628 state->reason = "Invalid header token";
8629 state->error_pos = (const char*) p;
8630 state->_current = (void*) (intptr_t) s_error;
8631 return s_error;
8632 /* UNREACHABLE */;
8633 abort();
8634 }
8635 s_n_llhttp__internal__n_invoke_update_header_state_10: {
8636 switch (llhttp__internal__c_update_header_state_1(state, p, endp)) {
8637 default:
8638 goto s_n_llhttp__internal__n_header_field_general;
8639 }
8640 /* UNREACHABLE */;
8641 abort();
8642 }
8643 s_n_llhttp__internal__n_invoke_store_header_state: {
8644 switch (llhttp__internal__c_store_header_state(state, p, endp, match)) {
8645 default:
8646 goto s_n_llhttp__internal__n_header_field_colon;
8647 }
8648 /* UNREACHABLE */;
8649 abort();
8650 }
8651 s_n_llhttp__internal__n_invoke_update_header_state_11: {
8652 switch (llhttp__internal__c_update_header_state_1(state, p, endp)) {
8653 default:
8654 goto s_n_llhttp__internal__n_header_field_general;
8655 }
8656 /* UNREACHABLE */;
8657 abort();
8658 }
8659 s_n_llhttp__internal__n_error_4: {
8660 state->error = 0x1e;
8661 state->reason = "Unexpected space after start line";
8662 state->error_pos = (const char*) p;
8663 state->_current = (void*) (intptr_t) s_error;
8664 return s_error;
8665 /* UNREACHABLE */;
8666 abort();
8667 }
8668 s_n_llhttp__internal__n_invoke_test_lenient_flags: {
8669 switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) {
8670 case 1:
8671 goto s_n_llhttp__internal__n_header_field_start;
8672 default:
8673 goto s_n_llhttp__internal__n_error_4;
8674 }
8675 /* UNREACHABLE */;
8676 abort();
8677 }
8678 s_n_llhttp__internal__n_pause_20: {
8679 state->error = 0x15;
8680 state->reason = "on_url_complete pause";
8681 state->error_pos = (const char*) p;
8682 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_headers_start;
8683 return s_error;
8684 /* UNREACHABLE */;
8685 abort();
8686 }
8687 s_n_llhttp__internal__n_error_3: {
8688 state->error = 0x1a;
8689 state->reason = "`on_url_complete` callback error";
8690 state->error_pos = (const char*) p;
8691 state->_current = (void*) (intptr_t) s_error;
8692 return s_error;
8693 /* UNREACHABLE */;
8694 abort();
8695 }
8696 s_n_llhttp__internal__n_invoke_llhttp__on_url_complete: {
8697 switch (llhttp__on_url_complete(state, p, endp)) {
8698 case 0:
8699 goto s_n_llhttp__internal__n_headers_start;
8700 case 21:
8701 goto s_n_llhttp__internal__n_pause_20;
8702 default:
8703 goto s_n_llhttp__internal__n_error_3;
8704 }
8705 /* UNREACHABLE */;
8706 abort();
8707 }
8708 s_n_llhttp__internal__n_invoke_update_http_minor: {
8709 switch (llhttp__internal__c_update_http_minor(state, p, endp)) {
8710 default:
8711 goto s_n_llhttp__internal__n_invoke_llhttp__on_url_complete;
8712 }
8713 /* UNREACHABLE */;
8714 abort();
8715 }
8716 s_n_llhttp__internal__n_invoke_update_http_major: {
8717 switch (llhttp__internal__c_update_http_major(state, p, endp)) {
8718 default:
8719 goto s_n_llhttp__internal__n_invoke_update_http_minor;
8720 }
8721 /* UNREACHABLE */;
8722 abort();
8723 }
8724 s_n_llhttp__internal__n_span_end_llhttp__on_url_3: {
8725 const unsigned char* start;
8726 int err;
8727
8728 start = state->_span_pos0;
8729 state->_span_pos0 = NULL;
8730 err = llhttp__on_url(state, start, p);
8731 if (err != 0) {
8732 state->error = err;
8733 state->error_pos = (const char*) p;
8734 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
8735 return s_error;
8736 }
8737 goto s_n_llhttp__internal__n_url_skip_to_http09;
8738 /* UNREACHABLE */;
8739 abort();
8740 }
8741 s_n_llhttp__internal__n_error_63: {
8742 state->error = 0x7;
8743 state->reason = "Expected CRLF";
8744 state->error_pos = (const char*) p;
8745 state->_current = (void*) (intptr_t) s_error;
8746 return s_error;
8747 /* UNREACHABLE */;
8748 abort();
8749 }
8750 s_n_llhttp__internal__n_span_end_llhttp__on_url_4: {
8751 const unsigned char* start;
8752 int err;
8753
8754 start = state->_span_pos0;
8755 state->_span_pos0 = NULL;
8756 err = llhttp__on_url(state, start, p);
8757 if (err != 0) {
8758 state->error = err;
8759 state->error_pos = (const char*) p;
8760 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
8761 return s_error;
8762 }
8763 goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
8764 /* UNREACHABLE */;
8765 abort();
8766 }
8767 s_n_llhttp__internal__n_error_71: {
8768 state->error = 0x17;
8769 state->reason = "Pause on PRI/Upgrade";
8770 state->error_pos = (const char*) p;
8771 state->_current = (void*) (intptr_t) s_error;
8772 return s_error;
8773 /* UNREACHABLE */;
8774 abort();
8775 }
8776 s_n_llhttp__internal__n_error_72: {
8777 state->error = 0x9;
8778 state->reason = "Expected HTTP/2 Connection Preface";
8779 state->error_pos = (const char*) p;
8780 state->_current = (void*) (intptr_t) s_error;
8781 return s_error;
8782 /* UNREACHABLE */;
8783 abort();
8784 }
8785 s_n_llhttp__internal__n_error_69: {
8786 state->error = 0x2;
8787 state->reason = "Expected CRLF after version";
8788 state->error_pos = (const char*) p;
8789 state->_current = (void*) (intptr_t) s_error;
8790 return s_error;
8791 /* UNREACHABLE */;
8792 abort();
8793 }
8794 s_n_llhttp__internal__n_invoke_test_lenient_flags_26: {
8795 switch (llhttp__internal__c_test_lenient_flags_8(state, p, endp)) {
8796 case 1:
8797 goto s_n_llhttp__internal__n_headers_start;
8798 default:
8799 goto s_n_llhttp__internal__n_error_69;
8800 }
8801 /* UNREACHABLE */;
8802 abort();
8803 }
8804 s_n_llhttp__internal__n_error_68: {
8805 state->error = 0x9;
8806 state->reason = "Expected CRLF after version";
8807 state->error_pos = (const char*) p;
8808 state->_current = (void*) (intptr_t) s_error;
8809 return s_error;
8810 /* UNREACHABLE */;
8811 abort();
8812 }
8813 s_n_llhttp__internal__n_invoke_test_lenient_flags_25: {
8814 switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
8815 case 1:
8816 goto s_n_llhttp__internal__n_req_http_complete_crlf;
8817 default:
8818 goto s_n_llhttp__internal__n_error_68;
8819 }
8820 /* UNREACHABLE */;
8821 abort();
8822 }
8823 s_n_llhttp__internal__n_error_70: {
8824 state->error = 0x9;
8825 state->reason = "Expected CRLF after version";
8826 state->error_pos = (const char*) p;
8827 state->_current = (void*) (intptr_t) s_error;
8828 return s_error;
8829 /* UNREACHABLE */;
8830 abort();
8831 }
8832 s_n_llhttp__internal__n_pause_21: {
8833 state->error = 0x15;
8834 state->reason = "on_version_complete pause";
8835 state->error_pos = (const char*) p;
8836 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_load_method_1;
8837 return s_error;
8838 /* UNREACHABLE */;
8839 abort();
8840 }
8841 s_n_llhttp__internal__n_error_67: {
8842 state->error = 0x21;
8843 state->reason = "`on_version_complete` callback error";
8844 state->error_pos = (const char*) p;
8845 state->_current = (void*) (intptr_t) s_error;
8846 return s_error;
8847 /* UNREACHABLE */;
8848 abort();
8849 }
8850 s_n_llhttp__internal__n_span_end_llhttp__on_version_1: {
8851 const unsigned char* start;
8852 int err;
8853
8854 start = state->_span_pos0;
8855 state->_span_pos0 = NULL;
8856 err = llhttp__on_version(state, start, p);
8857 if (err != 0) {
8858 state->error = err;
8859 state->error_pos = (const char*) p;
8860 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_version_complete;
8861 return s_error;
8862 }
8863 goto s_n_llhttp__internal__n_invoke_llhttp__on_version_complete;
8864 /* UNREACHABLE */;
8865 abort();
8866 }
8867 s_n_llhttp__internal__n_span_end_llhttp__on_version: {
8868 const unsigned char* start;
8869 int err;
8870
8871 start = state->_span_pos0;
8872 state->_span_pos0 = NULL;
8873 err = llhttp__on_version(state, start, p);
8874 if (err != 0) {
8875 state->error = err;
8876 state->error_pos = (const char*) p;
8877 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_66;
8878 return s_error;
8879 }
8880 goto s_n_llhttp__internal__n_error_66;
8881 /* UNREACHABLE */;
8882 abort();
8883 }
8884 s_n_llhttp__internal__n_invoke_load_http_minor: {
8885 switch (llhttp__internal__c_load_http_minor(state, p, endp)) {
8886 case 9:
8887 goto s_n_llhttp__internal__n_span_end_llhttp__on_version_1;
8888 default:
8889 goto s_n_llhttp__internal__n_span_end_llhttp__on_version;
8890 }
8891 /* UNREACHABLE */;
8892 abort();
8893 }
8894 s_n_llhttp__internal__n_invoke_load_http_minor_1: {
8895 switch (llhttp__internal__c_load_http_minor(state, p, endp)) {
8896 case 0:
8897 goto s_n_llhttp__internal__n_span_end_llhttp__on_version_1;
8898 case 1:
8899 goto s_n_llhttp__internal__n_span_end_llhttp__on_version_1;
8900 default:
8901 goto s_n_llhttp__internal__n_span_end_llhttp__on_version;
8902 }
8903 /* UNREACHABLE */;
8904 abort();
8905 }
8906 s_n_llhttp__internal__n_invoke_load_http_minor_2: {
8907 switch (llhttp__internal__c_load_http_minor(state, p, endp)) {
8908 case 0:
8909 goto s_n_llhttp__internal__n_span_end_llhttp__on_version_1;
8910 default:
8911 goto s_n_llhttp__internal__n_span_end_llhttp__on_version;
8912 }
8913 /* UNREACHABLE */;
8914 abort();
8915 }
8916 s_n_llhttp__internal__n_invoke_load_http_major: {
8917 switch (llhttp__internal__c_load_http_major(state, p, endp)) {
8918 case 0:
8919 goto s_n_llhttp__internal__n_invoke_load_http_minor;
8920 case 1:
8921 goto s_n_llhttp__internal__n_invoke_load_http_minor_1;
8922 case 2:
8923 goto s_n_llhttp__internal__n_invoke_load_http_minor_2;
8924 default:
8925 goto s_n_llhttp__internal__n_span_end_llhttp__on_version;
8926 }
8927 /* UNREACHABLE */;
8928 abort();
8929 }
8930 s_n_llhttp__internal__n_invoke_test_lenient_flags_24: {
8931 switch (llhttp__internal__c_test_lenient_flags_24(state, p, endp)) {
8932 case 1:
8933 goto s_n_llhttp__internal__n_span_end_llhttp__on_version_1;
8934 default:
8935 goto s_n_llhttp__internal__n_invoke_load_http_major;
8936 }
8937 /* UNREACHABLE */;
8938 abort();
8939 }
8940 s_n_llhttp__internal__n_invoke_store_http_minor: {
8941 switch (llhttp__internal__c_store_http_minor(state, p, endp, match)) {
8942 default:
8943 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_24;
8944 }
8945 /* UNREACHABLE */;
8946 abort();
8947 }
8948 s_n_llhttp__internal__n_span_end_llhttp__on_version_2: {
8949 const unsigned char* start;
8950 int err;
8951
8952 start = state->_span_pos0;
8953 state->_span_pos0 = NULL;
8954 err = llhttp__on_version(state, start, p);
8955 if (err != 0) {
8956 state->error = err;
8957 state->error_pos = (const char*) p;
8958 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_73;
8959 return s_error;
8960 }
8961 goto s_n_llhttp__internal__n_error_73;
8962 /* UNREACHABLE */;
8963 abort();
8964 }
8965 s_n_llhttp__internal__n_span_end_llhttp__on_version_3: {
8966 const unsigned char* start;
8967 int err;
8968
8969 start = state->_span_pos0;
8970 state->_span_pos0 = NULL;
8971 err = llhttp__on_version(state, start, p);
8972 if (err != 0) {
8973 state->error = err;
8974 state->error_pos = (const char*) p;
8975 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_74;
8976 return s_error;
8977 }
8978 goto s_n_llhttp__internal__n_error_74;
8979 /* UNREACHABLE */;
8980 abort();
8981 }
8982 s_n_llhttp__internal__n_invoke_store_http_major: {
8983 switch (llhttp__internal__c_store_http_major(state, p, endp, match)) {
8984 default:
8985 goto s_n_llhttp__internal__n_req_http_dot;
8986 }
8987 /* UNREACHABLE */;
8988 abort();
8989 }
8990 s_n_llhttp__internal__n_span_end_llhttp__on_version_4: {
8991 const unsigned char* start;
8992 int err;
8993
8994 start = state->_span_pos0;
8995 state->_span_pos0 = NULL;
8996 err = llhttp__on_version(state, start, p);
8997 if (err != 0) {
8998 state->error = err;
8999 state->error_pos = (const char*) p;
9000 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_75;
9001 return s_error;
9002 }
9003 goto s_n_llhttp__internal__n_error_75;
9004 /* UNREACHABLE */;
9005 abort();
9006 }
9007 s_n_llhttp__internal__n_error_65: {
9008 state->error = 0x8;
9009 state->reason = "Invalid method for HTTP/x.x request";
9010 state->error_pos = (const char*) p;
9011 state->_current = (void*) (intptr_t) s_error;
9012 return s_error;
9013 /* UNREACHABLE */;
9014 abort();
9015 }
9016 s_n_llhttp__internal__n_invoke_load_method: {
9017 switch (llhttp__internal__c_load_method(state, p, endp)) {
9018 case 0:
9019 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9020 case 1:
9021 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9022 case 2:
9023 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9024 case 3:
9025 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9026 case 4:
9027 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9028 case 5:
9029 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9030 case 6:
9031 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9032 case 7:
9033 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9034 case 8:
9035 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9036 case 9:
9037 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9038 case 10:
9039 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9040 case 11:
9041 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9042 case 12:
9043 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9044 case 13:
9045 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9046 case 14:
9047 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9048 case 15:
9049 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9050 case 16:
9051 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9052 case 17:
9053 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9054 case 18:
9055 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9056 case 19:
9057 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9058 case 20:
9059 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9060 case 21:
9061 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9062 case 22:
9063 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9064 case 23:
9065 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9066 case 24:
9067 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9068 case 25:
9069 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9070 case 26:
9071 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9072 case 27:
9073 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9074 case 28:
9075 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9076 case 29:
9077 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9078 case 30:
9079 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9080 case 31:
9081 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9082 case 32:
9083 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9084 case 33:
9085 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9086 case 34:
9087 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9088 case 46:
9089 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9090 default:
9091 goto s_n_llhttp__internal__n_error_65;
9092 }
9093 /* UNREACHABLE */;
9094 abort();
9095 }
9096 s_n_llhttp__internal__n_error_78: {
9097 state->error = 0x8;
9098 state->reason = "Expected HTTP/";
9099 state->error_pos = (const char*) p;
9100 state->_current = (void*) (intptr_t) s_error;
9101 return s_error;
9102 /* UNREACHABLE */;
9103 abort();
9104 }
9105 s_n_llhttp__internal__n_error_76: {
9106 state->error = 0x8;
9107 state->reason = "Expected SOURCE method for ICE/x.x request";
9108 state->error_pos = (const char*) p;
9109 state->_current = (void*) (intptr_t) s_error;
9110 return s_error;
9111 /* UNREACHABLE */;
9112 abort();
9113 }
9114 s_n_llhttp__internal__n_invoke_load_method_2: {
9115 switch (llhttp__internal__c_load_method(state, p, endp)) {
9116 case 33:
9117 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9118 default:
9119 goto s_n_llhttp__internal__n_error_76;
9120 }
9121 /* UNREACHABLE */;
9122 abort();
9123 }
9124 s_n_llhttp__internal__n_error_77: {
9125 state->error = 0x8;
9126 state->reason = "Invalid method for RTSP/x.x request";
9127 state->error_pos = (const char*) p;
9128 state->_current = (void*) (intptr_t) s_error;
9129 return s_error;
9130 /* UNREACHABLE */;
9131 abort();
9132 }
9133 s_n_llhttp__internal__n_invoke_load_method_3: {
9134 switch (llhttp__internal__c_load_method(state, p, endp)) {
9135 case 1:
9136 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9137 case 3:
9138 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9139 case 6:
9140 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9141 case 35:
9142 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9143 case 36:
9144 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9145 case 37:
9146 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9147 case 38:
9148 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9149 case 39:
9150 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9151 case 40:
9152 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9153 case 41:
9154 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9155 case 42:
9156 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9157 case 43:
9158 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9159 case 44:
9160 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9161 case 45:
9162 goto s_n_llhttp__internal__n_span_start_llhttp__on_version;
9163 default:
9164 goto s_n_llhttp__internal__n_error_77;
9165 }
9166 /* UNREACHABLE */;
9167 abort();
9168 }
9169 s_n_llhttp__internal__n_pause_22: {
9170 state->error = 0x15;
9171 state->reason = "on_url_complete pause";
9172 state->error_pos = (const char*) p;
9173 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_req_http_start;
9174 return s_error;
9175 /* UNREACHABLE */;
9176 abort();
9177 }
9178 s_n_llhttp__internal__n_error_64: {
9179 state->error = 0x1a;
9180 state->reason = "`on_url_complete` callback error";
9181 state->error_pos = (const char*) p;
9182 state->_current = (void*) (intptr_t) s_error;
9183 return s_error;
9184 /* UNREACHABLE */;
9185 abort();
9186 }
9187 s_n_llhttp__internal__n_invoke_llhttp__on_url_complete_1: {
9188 switch (llhttp__on_url_complete(state, p, endp)) {
9189 case 0:
9190 goto s_n_llhttp__internal__n_req_http_start;
9191 case 21:
9192 goto s_n_llhttp__internal__n_pause_22;
9193 default:
9194 goto s_n_llhttp__internal__n_error_64;
9195 }
9196 /* UNREACHABLE */;
9197 abort();
9198 }
9199 s_n_llhttp__internal__n_span_end_llhttp__on_url_5: {
9200 const unsigned char* start;
9201 int err;
9202
9203 start = state->_span_pos0;
9204 state->_span_pos0 = NULL;
9205 err = llhttp__on_url(state, start, p);
9206 if (err != 0) {
9207 state->error = err;
9208 state->error_pos = (const char*) p;
9209 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
9210 return s_error;
9211 }
9212 goto s_n_llhttp__internal__n_url_skip_to_http;
9213 /* UNREACHABLE */;
9214 abort();
9215 }
9216 s_n_llhttp__internal__n_span_end_llhttp__on_url_6: {
9217 const unsigned char* start;
9218 int err;
9219
9220 start = state->_span_pos0;
9221 state->_span_pos0 = NULL;
9222 err = llhttp__on_url(state, start, p);
9223 if (err != 0) {
9224 state->error = err;
9225 state->error_pos = (const char*) p;
9226 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
9227 return s_error;
9228 }
9229 goto s_n_llhttp__internal__n_url_skip_to_http09;
9230 /* UNREACHABLE */;
9231 abort();
9232 }
9233 s_n_llhttp__internal__n_span_end_llhttp__on_url_7: {
9234 const unsigned char* start;
9235 int err;
9236
9237 start = state->_span_pos0;
9238 state->_span_pos0 = NULL;
9239 err = llhttp__on_url(state, start, p);
9240 if (err != 0) {
9241 state->error = err;
9242 state->error_pos = (const char*) p;
9243 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
9244 return s_error;
9245 }
9246 goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
9247 /* UNREACHABLE */;
9248 abort();
9249 }
9250 s_n_llhttp__internal__n_span_end_llhttp__on_url_8: {
9251 const unsigned char* start;
9252 int err;
9253
9254 start = state->_span_pos0;
9255 state->_span_pos0 = NULL;
9256 err = llhttp__on_url(state, start, p);
9257 if (err != 0) {
9258 state->error = err;
9259 state->error_pos = (const char*) p;
9260 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
9261 return s_error;
9262 }
9263 goto s_n_llhttp__internal__n_url_skip_to_http;
9264 /* UNREACHABLE */;
9265 abort();
9266 }
9267 s_n_llhttp__internal__n_error_79: {
9268 state->error = 0x7;
9269 state->reason = "Invalid char in url fragment start";
9270 state->error_pos = (const char*) p;
9271 state->_current = (void*) (intptr_t) s_error;
9272 return s_error;
9273 /* UNREACHABLE */;
9274 abort();
9275 }
9276 s_n_llhttp__internal__n_span_end_llhttp__on_url_9: {
9277 const unsigned char* start;
9278 int err;
9279
9280 start = state->_span_pos0;
9281 state->_span_pos0 = NULL;
9282 err = llhttp__on_url(state, start, p);
9283 if (err != 0) {
9284 state->error = err;
9285 state->error_pos = (const char*) p;
9286 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
9287 return s_error;
9288 }
9289 goto s_n_llhttp__internal__n_url_skip_to_http09;
9290 /* UNREACHABLE */;
9291 abort();
9292 }
9293 s_n_llhttp__internal__n_span_end_llhttp__on_url_10: {
9294 const unsigned char* start;
9295 int err;
9296
9297 start = state->_span_pos0;
9298 state->_span_pos0 = NULL;
9299 err = llhttp__on_url(state, start, p);
9300 if (err != 0) {
9301 state->error = err;
9302 state->error_pos = (const char*) p;
9303 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
9304 return s_error;
9305 }
9306 goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
9307 /* UNREACHABLE */;
9308 abort();
9309 }
9310 s_n_llhttp__internal__n_span_end_llhttp__on_url_11: {
9311 const unsigned char* start;
9312 int err;
9313
9314 start = state->_span_pos0;
9315 state->_span_pos0 = NULL;
9316 err = llhttp__on_url(state, start, p);
9317 if (err != 0) {
9318 state->error = err;
9319 state->error_pos = (const char*) p;
9320 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
9321 return s_error;
9322 }
9323 goto s_n_llhttp__internal__n_url_skip_to_http;
9324 /* UNREACHABLE */;
9325 abort();
9326 }
9327 s_n_llhttp__internal__n_error_80: {
9328 state->error = 0x7;
9329 state->reason = "Invalid char in url query";
9330 state->error_pos = (const char*) p;
9331 state->_current = (void*) (intptr_t) s_error;
9332 return s_error;
9333 /* UNREACHABLE */;
9334 abort();
9335 }
9336 s_n_llhttp__internal__n_error_81: {
9337 state->error = 0x7;
9338 state->reason = "Invalid char in url path";
9339 state->error_pos = (const char*) p;
9340 state->_current = (void*) (intptr_t) s_error;
9341 return s_error;
9342 /* UNREACHABLE */;
9343 abort();
9344 }
9345 s_n_llhttp__internal__n_span_end_llhttp__on_url: {
9346 const unsigned char* start;
9347 int err;
9348
9349 start = state->_span_pos0;
9350 state->_span_pos0 = NULL;
9351 err = llhttp__on_url(state, start, p);
9352 if (err != 0) {
9353 state->error = err;
9354 state->error_pos = (const char*) p;
9355 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
9356 return s_error;
9357 }
9358 goto s_n_llhttp__internal__n_url_skip_to_http09;
9359 /* UNREACHABLE */;
9360 abort();
9361 }
9362 s_n_llhttp__internal__n_span_end_llhttp__on_url_1: {
9363 const unsigned char* start;
9364 int err;
9365
9366 start = state->_span_pos0;
9367 state->_span_pos0 = NULL;
9368 err = llhttp__on_url(state, start, p);
9369 if (err != 0) {
9370 state->error = err;
9371 state->error_pos = (const char*) p;
9372 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
9373 return s_error;
9374 }
9375 goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
9376 /* UNREACHABLE */;
9377 abort();
9378 }
9379 s_n_llhttp__internal__n_span_end_llhttp__on_url_2: {
9380 const unsigned char* start;
9381 int err;
9382
9383 start = state->_span_pos0;
9384 state->_span_pos0 = NULL;
9385 err = llhttp__on_url(state, start, p);
9386 if (err != 0) {
9387 state->error = err;
9388 state->error_pos = (const char*) p;
9389 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
9390 return s_error;
9391 }
9392 goto s_n_llhttp__internal__n_url_skip_to_http;
9393 /* UNREACHABLE */;
9394 abort();
9395 }
9396 s_n_llhttp__internal__n_span_end_llhttp__on_url_12: {
9397 const unsigned char* start;
9398 int err;
9399
9400 start = state->_span_pos0;
9401 state->_span_pos0 = NULL;
9402 err = llhttp__on_url(state, start, p);
9403 if (err != 0) {
9404 state->error = err;
9405 state->error_pos = (const char*) p;
9406 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
9407 return s_error;
9408 }
9409 goto s_n_llhttp__internal__n_url_skip_to_http09;
9410 /* UNREACHABLE */;
9411 abort();
9412 }
9413 s_n_llhttp__internal__n_span_end_llhttp__on_url_13: {
9414 const unsigned char* start;
9415 int err;
9416
9417 start = state->_span_pos0;
9418 state->_span_pos0 = NULL;
9419 err = llhttp__on_url(state, start, p);
9420 if (err != 0) {
9421 state->error = err;
9422 state->error_pos = (const char*) p;
9423 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
9424 return s_error;
9425 }
9426 goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
9427 /* UNREACHABLE */;
9428 abort();
9429 }
9430 s_n_llhttp__internal__n_span_end_llhttp__on_url_14: {
9431 const unsigned char* start;
9432 int err;
9433
9434 start = state->_span_pos0;
9435 state->_span_pos0 = NULL;
9436 err = llhttp__on_url(state, start, p);
9437 if (err != 0) {
9438 state->error = err;
9439 state->error_pos = (const char*) p;
9440 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
9441 return s_error;
9442 }
9443 goto s_n_llhttp__internal__n_url_skip_to_http;
9444 /* UNREACHABLE */;
9445 abort();
9446 }
9447 s_n_llhttp__internal__n_error_82: {
9448 state->error = 0x7;
9449 state->reason = "Double @ in url";
9450 state->error_pos = (const char*) p;
9451 state->_current = (void*) (intptr_t) s_error;
9452 return s_error;
9453 /* UNREACHABLE */;
9454 abort();
9455 }
9456 s_n_llhttp__internal__n_error_83: {
9457 state->error = 0x7;
9458 state->reason = "Unexpected char in url server";
9459 state->error_pos = (const char*) p;
9460 state->_current = (void*) (intptr_t) s_error;
9461 return s_error;
9462 /* UNREACHABLE */;
9463 abort();
9464 }
9465 s_n_llhttp__internal__n_error_84: {
9466 state->error = 0x7;
9467 state->reason = "Unexpected char in url server";
9468 state->error_pos = (const char*) p;
9469 state->_current = (void*) (intptr_t) s_error;
9470 return s_error;
9471 /* UNREACHABLE */;
9472 abort();
9473 }
9474 s_n_llhttp__internal__n_error_85: {
9475 state->error = 0x7;
9476 state->reason = "Unexpected char in url schema";
9477 state->error_pos = (const char*) p;
9478 state->_current = (void*) (intptr_t) s_error;
9479 return s_error;
9480 /* UNREACHABLE */;
9481 abort();
9482 }
9483 s_n_llhttp__internal__n_error_86: {
9484 state->error = 0x7;
9485 state->reason = "Unexpected char in url schema";
9486 state->error_pos = (const char*) p;
9487 state->_current = (void*) (intptr_t) s_error;
9488 return s_error;
9489 /* UNREACHABLE */;
9490 abort();
9491 }
9492 s_n_llhttp__internal__n_error_87: {
9493 state->error = 0x7;
9494 state->reason = "Unexpected start char in url";
9495 state->error_pos = (const char*) p;
9496 state->_current = (void*) (intptr_t) s_error;
9497 return s_error;
9498 /* UNREACHABLE */;
9499 abort();
9500 }
9501 s_n_llhttp__internal__n_invoke_is_equal_method: {
9502 switch (llhttp__internal__c_is_equal_method(state, p, endp)) {
9503 case 0:
9504 goto s_n_llhttp__internal__n_url_entry_normal;
9505 default:
9506 goto s_n_llhttp__internal__n_url_entry_connect;
9507 }
9508 /* UNREACHABLE */;
9509 abort();
9510 }
9511 s_n_llhttp__internal__n_error_88: {
9512 state->error = 0x6;
9513 state->reason = "Expected space after method";
9514 state->error_pos = (const char*) p;
9515 state->_current = (void*) (intptr_t) s_error;
9516 return s_error;
9517 /* UNREACHABLE */;
9518 abort();
9519 }
9520 s_n_llhttp__internal__n_pause_26: {
9521 state->error = 0x15;
9522 state->reason = "on_method_complete pause";
9523 state->error_pos = (const char*) p;
9524 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_req_first_space_before_url;
9525 return s_error;
9526 /* UNREACHABLE */;
9527 abort();
9528 }
9529 s_n_llhttp__internal__n_error_107: {
9530 state->error = 0x20;
9531 state->reason = "`on_method_complete` callback error";
9532 state->error_pos = (const char*) p;
9533 state->_current = (void*) (intptr_t) s_error;
9534 return s_error;
9535 /* UNREACHABLE */;
9536 abort();
9537 }
9538 s_n_llhttp__internal__n_span_end_llhttp__on_method_2: {
9539 const unsigned char* start;
9540 int err;
9541
9542 start = state->_span_pos0;
9543 state->_span_pos0 = NULL;
9544 err = llhttp__on_method(state, start, p);
9545 if (err != 0) {
9546 state->error = err;
9547 state->error_pos = (const char*) p;
9548 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_method_complete_1;
9549 return s_error;
9550 }
9551 goto s_n_llhttp__internal__n_invoke_llhttp__on_method_complete_1;
9552 /* UNREACHABLE */;
9553 abort();
9554 }
9555 s_n_llhttp__internal__n_invoke_store_method_1: {
9556 switch (llhttp__internal__c_store_method(state, p, endp, match)) {
9557 default:
9558 goto s_n_llhttp__internal__n_span_end_llhttp__on_method_2;
9559 }
9560 /* UNREACHABLE */;
9561 abort();
9562 }
9563 s_n_llhttp__internal__n_error_108: {
9564 state->error = 0x6;
9565 state->reason = "Invalid method encountered";
9566 state->error_pos = (const char*) p;
9567 state->_current = (void*) (intptr_t) s_error;
9568 return s_error;
9569 /* UNREACHABLE */;
9570 abort();
9571 }
9572 s_n_llhttp__internal__n_error_100: {
9573 state->error = 0xd;
9574 state->reason = "Invalid status code";
9575 state->error_pos = (const char*) p;
9576 state->_current = (void*) (intptr_t) s_error;
9577 return s_error;
9578 /* UNREACHABLE */;
9579 abort();
9580 }
9581 s_n_llhttp__internal__n_error_98: {
9582 state->error = 0xd;
9583 state->reason = "Invalid status code";
9584 state->error_pos = (const char*) p;
9585 state->_current = (void*) (intptr_t) s_error;
9586 return s_error;
9587 /* UNREACHABLE */;
9588 abort();
9589 }
9590 s_n_llhttp__internal__n_error_96: {
9591 state->error = 0xd;
9592 state->reason = "Invalid status code";
9593 state->error_pos = (const char*) p;
9594 state->_current = (void*) (intptr_t) s_error;
9595 return s_error;
9596 /* UNREACHABLE */;
9597 abort();
9598 }
9599 s_n_llhttp__internal__n_pause_24: {
9600 state->error = 0x15;
9601 state->reason = "on_status_complete pause";
9602 state->error_pos = (const char*) p;
9603 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_headers_start;
9604 return s_error;
9605 /* UNREACHABLE */;
9606 abort();
9607 }
9608 s_n_llhttp__internal__n_error_92: {
9609 state->error = 0x1b;
9610 state->reason = "`on_status_complete` callback error";
9611 state->error_pos = (const char*) p;
9612 state->_current = (void*) (intptr_t) s_error;
9613 return s_error;
9614 /* UNREACHABLE */;
9615 abort();
9616 }
9617 s_n_llhttp__internal__n_invoke_llhttp__on_status_complete: {
9618 switch (llhttp__on_status_complete(state, p, endp)) {
9619 case 0:
9620 goto s_n_llhttp__internal__n_headers_start;
9621 case 21:
9622 goto s_n_llhttp__internal__n_pause_24;
9623 default:
9624 goto s_n_llhttp__internal__n_error_92;
9625 }
9626 /* UNREACHABLE */;
9627 abort();
9628 }
9629 s_n_llhttp__internal__n_error_91: {
9630 state->error = 0xd;
9631 state->reason = "Invalid response status";
9632 state->error_pos = (const char*) p;
9633 state->_current = (void*) (intptr_t) s_error;
9634 return s_error;
9635 /* UNREACHABLE */;
9636 abort();
9637 }
9638 s_n_llhttp__internal__n_invoke_test_lenient_flags_28: {
9639 switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
9640 case 1:
9641 goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete;
9642 default:
9643 goto s_n_llhttp__internal__n_error_91;
9644 }
9645 /* UNREACHABLE */;
9646 abort();
9647 }
9648 s_n_llhttp__internal__n_error_93: {
9649 state->error = 0x2;
9650 state->reason = "Expected LF after CR";
9651 state->error_pos = (const char*) p;
9652 state->_current = (void*) (intptr_t) s_error;
9653 return s_error;
9654 /* UNREACHABLE */;
9655 abort();
9656 }
9657 s_n_llhttp__internal__n_invoke_test_lenient_flags_29: {
9658 switch (llhttp__internal__c_test_lenient_flags_8(state, p, endp)) {
9659 case 1:
9660 goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete;
9661 default:
9662 goto s_n_llhttp__internal__n_error_93;
9663 }
9664 /* UNREACHABLE */;
9665 abort();
9666 }
9667 s_n_llhttp__internal__n_error_94: {
9668 state->error = 0x19;
9669 state->reason = "Missing expected CR after response line";
9670 state->error_pos = (const char*) p;
9671 state->_current = (void*) (intptr_t) s_error;
9672 return s_error;
9673 /* UNREACHABLE */;
9674 abort();
9675 }
9676 s_n_llhttp__internal__n_span_end_llhttp__on_status: {
9677 const unsigned char* start;
9678 int err;
9679
9680 start = state->_span_pos0;
9681 state->_span_pos0 = NULL;
9682 err = llhttp__on_status(state, start, p);
9683 if (err != 0) {
9684 state->error = err;
9685 state->error_pos = (const char*) (p + 1);
9686 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_test_lenient_flags_30;
9687 return s_error;
9688 }
9689 p++;
9690 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_30;
9691 /* UNREACHABLE */;
9692 abort();
9693 }
9694 s_n_llhttp__internal__n_span_end_llhttp__on_status_1: {
9695 const unsigned char* start;
9696 int err;
9697
9698 start = state->_span_pos0;
9699 state->_span_pos0 = NULL;
9700 err = llhttp__on_status(state, start, p);
9701 if (err != 0) {
9702 state->error = err;
9703 state->error_pos = (const char*) (p + 1);
9704 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_res_line_almost_done;
9705 return s_error;
9706 }
9707 p++;
9708 goto s_n_llhttp__internal__n_res_line_almost_done;
9709 /* UNREACHABLE */;
9710 abort();
9711 }
9712 s_n_llhttp__internal__n_error_95: {
9713 state->error = 0xd;
9714 state->reason = "Invalid response status";
9715 state->error_pos = (const char*) p;
9716 state->_current = (void*) (intptr_t) s_error;
9717 return s_error;
9718 /* UNREACHABLE */;
9719 abort();
9720 }
9721 s_n_llhttp__internal__n_invoke_mul_add_status_code_2: {
9722 switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) {
9723 case 1:
9724 goto s_n_llhttp__internal__n_error_96;
9725 default:
9726 goto s_n_llhttp__internal__n_res_status_code_otherwise;
9727 }
9728 /* UNREACHABLE */;
9729 abort();
9730 }
9731 s_n_llhttp__internal__n_error_97: {
9732 state->error = 0xd;
9733 state->reason = "Invalid status code";
9734 state->error_pos = (const char*) p;
9735 state->_current = (void*) (intptr_t) s_error;
9736 return s_error;
9737 /* UNREACHABLE */;
9738 abort();
9739 }
9740 s_n_llhttp__internal__n_invoke_mul_add_status_code_1: {
9741 switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) {
9742 case 1:
9743 goto s_n_llhttp__internal__n_error_98;
9744 default:
9745 goto s_n_llhttp__internal__n_res_status_code_digit_3;
9746 }
9747 /* UNREACHABLE */;
9748 abort();
9749 }
9750 s_n_llhttp__internal__n_error_99: {
9751 state->error = 0xd;
9752 state->reason = "Invalid status code";
9753 state->error_pos = (const char*) p;
9754 state->_current = (void*) (intptr_t) s_error;
9755 return s_error;
9756 /* UNREACHABLE */;
9757 abort();
9758 }
9759 s_n_llhttp__internal__n_invoke_mul_add_status_code: {
9760 switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) {
9761 case 1:
9762 goto s_n_llhttp__internal__n_error_100;
9763 default:
9764 goto s_n_llhttp__internal__n_res_status_code_digit_2;
9765 }
9766 /* UNREACHABLE */;
9767 abort();
9768 }
9769 s_n_llhttp__internal__n_error_101: {
9770 state->error = 0xd;
9771 state->reason = "Invalid status code";
9772 state->error_pos = (const char*) p;
9773 state->_current = (void*) (intptr_t) s_error;
9774 return s_error;
9775 /* UNREACHABLE */;
9776 abort();
9777 }
9778 s_n_llhttp__internal__n_invoke_update_status_code: {
9779 switch (llhttp__internal__c_update_status_code(state, p, endp)) {
9780 default:
9781 goto s_n_llhttp__internal__n_res_status_code_digit_1;
9782 }
9783 /* UNREACHABLE */;
9784 abort();
9785 }
9786 s_n_llhttp__internal__n_error_102: {
9787 state->error = 0x9;
9788 state->reason = "Expected space after version";
9789 state->error_pos = (const char*) p;
9790 state->_current = (void*) (intptr_t) s_error;
9791 return s_error;
9792 /* UNREACHABLE */;
9793 abort();
9794 }
9795 s_n_llhttp__internal__n_pause_25: {
9796 state->error = 0x15;
9797 state->reason = "on_version_complete pause";
9798 state->error_pos = (const char*) p;
9799 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_res_after_version;
9800 return s_error;
9801 /* UNREACHABLE */;
9802 abort();
9803 }
9804 s_n_llhttp__internal__n_error_90: {
9805 state->error = 0x21;
9806 state->reason = "`on_version_complete` callback error";
9807 state->error_pos = (const char*) p;
9808 state->_current = (void*) (intptr_t) s_error;
9809 return s_error;
9810 /* UNREACHABLE */;
9811 abort();
9812 }
9813 s_n_llhttp__internal__n_span_end_llhttp__on_version_6: {
9814 const unsigned char* start;
9815 int err;
9816
9817 start = state->_span_pos0;
9818 state->_span_pos0 = NULL;
9819 err = llhttp__on_version(state, start, p);
9820 if (err != 0) {
9821 state->error = err;
9822 state->error_pos = (const char*) p;
9823 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_version_complete_1;
9824 return s_error;
9825 }
9826 goto s_n_llhttp__internal__n_invoke_llhttp__on_version_complete_1;
9827 /* UNREACHABLE */;
9828 abort();
9829 }
9830 s_n_llhttp__internal__n_span_end_llhttp__on_version_5: {
9831 const unsigned char* start;
9832 int err;
9833
9834 start = state->_span_pos0;
9835 state->_span_pos0 = NULL;
9836 err = llhttp__on_version(state, start, p);
9837 if (err != 0) {
9838 state->error = err;
9839 state->error_pos = (const char*) p;
9840 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_89;
9841 return s_error;
9842 }
9843 goto s_n_llhttp__internal__n_error_89;
9844 /* UNREACHABLE */;
9845 abort();
9846 }
9847 s_n_llhttp__internal__n_invoke_load_http_minor_3: {
9848 switch (llhttp__internal__c_load_http_minor(state, p, endp)) {
9849 case 9:
9850 goto s_n_llhttp__internal__n_span_end_llhttp__on_version_6;
9851 default:
9852 goto s_n_llhttp__internal__n_span_end_llhttp__on_version_5;
9853 }
9854 /* UNREACHABLE */;
9855 abort();
9856 }
9857 s_n_llhttp__internal__n_invoke_load_http_minor_4: {
9858 switch (llhttp__internal__c_load_http_minor(state, p, endp)) {
9859 case 0:
9860 goto s_n_llhttp__internal__n_span_end_llhttp__on_version_6;
9861 case 1:
9862 goto s_n_llhttp__internal__n_span_end_llhttp__on_version_6;
9863 default:
9864 goto s_n_llhttp__internal__n_span_end_llhttp__on_version_5;
9865 }
9866 /* UNREACHABLE */;
9867 abort();
9868 }
9869 s_n_llhttp__internal__n_invoke_load_http_minor_5: {
9870 switch (llhttp__internal__c_load_http_minor(state, p, endp)) {
9871 case 0:
9872 goto s_n_llhttp__internal__n_span_end_llhttp__on_version_6;
9873 default:
9874 goto s_n_llhttp__internal__n_span_end_llhttp__on_version_5;
9875 }
9876 /* UNREACHABLE */;
9877 abort();
9878 }
9879 s_n_llhttp__internal__n_invoke_load_http_major_1: {
9880 switch (llhttp__internal__c_load_http_major(state, p, endp)) {
9881 case 0:
9882 goto s_n_llhttp__internal__n_invoke_load_http_minor_3;
9883 case 1:
9884 goto s_n_llhttp__internal__n_invoke_load_http_minor_4;
9885 case 2:
9886 goto s_n_llhttp__internal__n_invoke_load_http_minor_5;
9887 default:
9888 goto s_n_llhttp__internal__n_span_end_llhttp__on_version_5;
9889 }
9890 /* UNREACHABLE */;
9891 abort();
9892 }
9893 s_n_llhttp__internal__n_invoke_test_lenient_flags_27: {
9894 switch (llhttp__internal__c_test_lenient_flags_24(state, p, endp)) {
9895 case 1:
9896 goto s_n_llhttp__internal__n_span_end_llhttp__on_version_6;
9897 default:
9898 goto s_n_llhttp__internal__n_invoke_load_http_major_1;
9899 }
9900 /* UNREACHABLE */;
9901 abort();
9902 }
9903 s_n_llhttp__internal__n_invoke_store_http_minor_1: {
9904 switch (llhttp__internal__c_store_http_minor(state, p, endp, match)) {
9905 default:
9906 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_27;
9907 }
9908 /* UNREACHABLE */;
9909 abort();
9910 }
9911 s_n_llhttp__internal__n_span_end_llhttp__on_version_7: {
9912 const unsigned char* start;
9913 int err;
9914
9915 start = state->_span_pos0;
9916 state->_span_pos0 = NULL;
9917 err = llhttp__on_version(state, start, p);
9918 if (err != 0) {
9919 state->error = err;
9920 state->error_pos = (const char*) p;
9921 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_103;
9922 return s_error;
9923 }
9924 goto s_n_llhttp__internal__n_error_103;
9925 /* UNREACHABLE */;
9926 abort();
9927 }
9928 s_n_llhttp__internal__n_span_end_llhttp__on_version_8: {
9929 const unsigned char* start;
9930 int err;
9931
9932 start = state->_span_pos0;
9933 state->_span_pos0 = NULL;
9934 err = llhttp__on_version(state, start, p);
9935 if (err != 0) {
9936 state->error = err;
9937 state->error_pos = (const char*) p;
9938 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_104;
9939 return s_error;
9940 }
9941 goto s_n_llhttp__internal__n_error_104;
9942 /* UNREACHABLE */;
9943 abort();
9944 }
9945 s_n_llhttp__internal__n_invoke_store_http_major_1: {
9946 switch (llhttp__internal__c_store_http_major(state, p, endp, match)) {
9947 default:
9948 goto s_n_llhttp__internal__n_res_http_dot;
9949 }
9950 /* UNREACHABLE */;
9951 abort();
9952 }
9953 s_n_llhttp__internal__n_span_end_llhttp__on_version_9: {
9954 const unsigned char* start;
9955 int err;
9956
9957 start = state->_span_pos0;
9958 state->_span_pos0 = NULL;
9959 err = llhttp__on_version(state, start, p);
9960 if (err != 0) {
9961 state->error = err;
9962 state->error_pos = (const char*) p;
9963 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_105;
9964 return s_error;
9965 }
9966 goto s_n_llhttp__internal__n_error_105;
9967 /* UNREACHABLE */;
9968 abort();
9969 }
9970 s_n_llhttp__internal__n_error_109: {
9971 state->error = 0x8;
9972 state->reason = "Expected HTTP/";
9973 state->error_pos = (const char*) p;
9974 state->_current = (void*) (intptr_t) s_error;
9975 return s_error;
9976 /* UNREACHABLE */;
9977 abort();
9978 }
9979 s_n_llhttp__internal__n_pause_23: {
9980 state->error = 0x15;
9981 state->reason = "on_method_complete pause";
9982 state->error_pos = (const char*) p;
9983 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_req_first_space_before_url;
9984 return s_error;
9985 /* UNREACHABLE */;
9986 abort();
9987 }
9988 s_n_llhttp__internal__n_error_1: {
9989 state->error = 0x20;
9990 state->reason = "`on_method_complete` callback error";
9991 state->error_pos = (const char*) p;
9992 state->_current = (void*) (intptr_t) s_error;
9993 return s_error;
9994 /* UNREACHABLE */;
9995 abort();
9996 }
9997 s_n_llhttp__internal__n_span_end_llhttp__on_method: {
9998 const unsigned char* start;
9999 int err;
10000
10001 start = state->_span_pos0;
10002 state->_span_pos0 = NULL;
10003 err = llhttp__on_method(state, start, p);
10004 if (err != 0) {
10005 state->error = err;
10006 state->error_pos = (const char*) p;
10007 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_method_complete;
10008 return s_error;
10009 }
10010 goto s_n_llhttp__internal__n_invoke_llhttp__on_method_complete;
10011 /* UNREACHABLE */;
10012 abort();
10013 }
10014 s_n_llhttp__internal__n_invoke_update_type: {
10015 switch (llhttp__internal__c_update_type(state, p, endp)) {
10016 default:
10017 goto s_n_llhttp__internal__n_span_end_llhttp__on_method;
10018 }
10019 /* UNREACHABLE */;
10020 abort();
10021 }
10022 s_n_llhttp__internal__n_invoke_store_method: {
10023 switch (llhttp__internal__c_store_method(state, p, endp, match)) {
10024 default:
10025 goto s_n_llhttp__internal__n_invoke_update_type;
10026 }
10027 /* UNREACHABLE */;
10028 abort();
10029 }
10030 s_n_llhttp__internal__n_error_106: {
10031 state->error = 0x8;
10032 state->reason = "Invalid word encountered";
10033 state->error_pos = (const char*) p;
10034 state->_current = (void*) (intptr_t) s_error;
10035 return s_error;
10036 /* UNREACHABLE */;
10037 abort();
10038 }
10039 s_n_llhttp__internal__n_span_end_llhttp__on_method_1: {
10040 const unsigned char* start;
10041 int err;
10042
10043 start = state->_span_pos0;
10044 state->_span_pos0 = NULL;
10045 err = llhttp__on_method(state, start, p);
10046 if (err != 0) {
10047 state->error = err;
10048 state->error_pos = (const char*) p;
10049 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_update_type_1;
10050 return s_error;
10051 }
10052 goto s_n_llhttp__internal__n_invoke_update_type_1;
10053 /* UNREACHABLE */;
10054 abort();
10055 }
10056 s_n_llhttp__internal__n_invoke_update_type_2: {
10057 switch (llhttp__internal__c_update_type(state, p, endp)) {
10058 default:
10059 goto s_n_llhttp__internal__n_span_start_llhttp__on_method_1;
10060 }
10061 /* UNREACHABLE */;
10062 abort();
10063 }
10064 s_n_llhttp__internal__n_pause_27: {
10065 state->error = 0x15;
10066 state->reason = "on_message_begin pause";
10067 state->error_pos = (const char*) p;
10068 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_load_type;
10069 return s_error;
10070 /* UNREACHABLE */;
10071 abort();
10072 }
10073 s_n_llhttp__internal__n_error: {
10074 state->error = 0x10;
10075 state->reason = "`on_message_begin` callback error";
10076 state->error_pos = (const char*) p;
10077 state->_current = (void*) (intptr_t) s_error;
10078 return s_error;
10079 /* UNREACHABLE */;
10080 abort();
10081 }
10082 s_n_llhttp__internal__n_invoke_llhttp__on_message_begin: {
10083 switch (llhttp__on_message_begin(state, p, endp)) {
10084 case 0:
10085 goto s_n_llhttp__internal__n_invoke_load_type;
10086 case 21:
10087 goto s_n_llhttp__internal__n_pause_27;
10088 default:
10089 goto s_n_llhttp__internal__n_error;
10090 }
10091 /* UNREACHABLE */;
10092 abort();
10093 }
10094 s_n_llhttp__internal__n_pause_28: {
10095 state->error = 0x15;
10096 state->reason = "on_reset pause";
10097 state->error_pos = (const char*) p;
10098 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_update_finish;
10099 return s_error;
10100 /* UNREACHABLE */;
10101 abort();
10102 }
10103 s_n_llhttp__internal__n_error_110: {
10104 state->error = 0x1f;
10105 state->reason = "`on_reset` callback error";
10106 state->error_pos = (const char*) p;
10107 state->_current = (void*) (intptr_t) s_error;
10108 return s_error;
10109 /* UNREACHABLE */;
10110 abort();
10111 }
10112 s_n_llhttp__internal__n_invoke_llhttp__on_reset: {
10113 switch (llhttp__on_reset(state, p, endp)) {
10114 case 0:
10115 goto s_n_llhttp__internal__n_invoke_update_finish;
10116 case 21:
10117 goto s_n_llhttp__internal__n_pause_28;
10118 default:
10119 goto s_n_llhttp__internal__n_error_110;
10120 }
10121 /* UNREACHABLE */;
10122 abort();
10123 }
10124 s_n_llhttp__internal__n_invoke_load_initial_message_completed: {
10125 switch (llhttp__internal__c_load_initial_message_completed(state, p, endp)) {
10126 case 1:
10127 goto s_n_llhttp__internal__n_invoke_llhttp__on_reset;
10128 default:
10129 goto s_n_llhttp__internal__n_invoke_update_finish;
10130 }
10131 /* UNREACHABLE */;
10132 abort();
10133 }
10134 }
10135
llhttp__internal_execute(llhttp__internal_t * state,const char * p,const char * endp)10136 int llhttp__internal_execute(llhttp__internal_t* state, const char* p, const char* endp) {
10137 llparse_state_t next;
10138
10139 /* check lingering errors */
10140 if (state->error != 0) {
10141 return state->error;
10142 }
10143
10144 /* restart spans */
10145 if (state->_span_pos0 != NULL) {
10146 state->_span_pos0 = (void*) p;
10147 }
10148
10149 next = llhttp__internal__run(state, (const unsigned char*) p, (const unsigned char*) endp);
10150 if (next == s_error) {
10151 return state->error;
10152 }
10153 state->_current = (void*) (intptr_t) next;
10154
10155 /* execute spans */
10156 if (state->_span_pos0 != NULL) {
10157 int error;
10158
10159 error = ((llhttp__internal__span_cb) state->_span_cb0)(state, state->_span_pos0, (const char*) endp);
10160 if (error != 0) {
10161 state->error = error;
10162 state->error_pos = endp;
10163 return error;
10164 }
10165 }
10166
10167 return 0;
10168 }