1 #if LLHTTP_STRICT_MODE
2
3 #include <stdlib.h>
4 #include <stdint.h>
5 #include <string.h>
6
7 #ifdef __SSE4_2__
8 #ifdef _MSC_VER
9 #include <nmmintrin.h>
10 #else /* !_MSC_VER */
11 #include <x86intrin.h>
12 #endif /* _MSC_VER */
13 #endif /* __SSE4_2__ */
14
15 #ifdef _MSC_VER
16 #define ALIGN(n) _declspec(align(n))
17 #else /* !_MSC_VER */
18 #define ALIGN(n) __attribute__((aligned(n)))
19 #endif /* _MSC_VER */
20
21 #include "llhttp.h"
22
23 typedef int (*llhttp__internal__span_cb)(
24 llhttp__internal_t*, const char*, const char*);
25
26 static const unsigned char llparse_blob0[] = {
27 0xd, 0xa
28 };
29 static const unsigned char llparse_blob1[] = {
30 'o', 'n'
31 };
32 static const unsigned char llparse_blob2[] = {
33 'e', 'c', 't', 'i', 'o', 'n'
34 };
35 static const unsigned char llparse_blob3[] = {
36 'l', 'o', 's', 'e'
37 };
38 static const unsigned char llparse_blob4[] = {
39 'e', 'e', 'p', '-', 'a', 'l', 'i', 'v', 'e'
40 };
41 static const unsigned char llparse_blob5[] = {
42 'p', 'g', 'r', 'a', 'd', 'e'
43 };
44 static const unsigned char llparse_blob6[] = {
45 'c', 'h', 'u', 'n', 'k', 'e', 'd'
46 };
47 #ifdef __SSE4_2__
48 static const unsigned char ALIGN(16) llparse_blob7[] = {
49 0x9, 0x9, ' ', '~', 0x80, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0,
50 0x0, 0x0, 0x0, 0x0, 0x0
51 };
52 #endif /* __SSE4_2__ */
53 #ifdef __SSE4_2__
54 static const unsigned char ALIGN(16) llparse_blob8[] = {
55 '!', '!', '#', '\'', '*', '+', '-', '.', '0', '9', 'A',
56 'Z', '^', 'z', '|', '|'
57 };
58 #endif /* __SSE4_2__ */
59 #ifdef __SSE4_2__
60 static const unsigned char ALIGN(16) llparse_blob9[] = {
61 '~', '~', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
62 0x0, 0x0, 0x0, 0x0, 0x0
63 };
64 #endif /* __SSE4_2__ */
65 static const unsigned char llparse_blob10[] = {
66 'e', 'n', 't', '-', 'l', 'e', 'n', 'g', 't', 'h'
67 };
68 static const unsigned char llparse_blob11[] = {
69 'r', 'o', 'x', 'y', '-', 'c', 'o', 'n', 'n', 'e', 'c',
70 't', 'i', 'o', 'n'
71 };
72 static const unsigned char llparse_blob12[] = {
73 'r', 'a', 'n', 's', 'f', 'e', 'r', '-', 'e', 'n', 'c',
74 'o', 'd', 'i', 'n', 'g'
75 };
76 static const unsigned char llparse_blob13[] = {
77 'p', 'g', 'r', 'a', 'd', 'e'
78 };
79 static const unsigned char llparse_blob14[] = {
80 'T', 'T', 'P', '/'
81 };
82 static const unsigned char llparse_blob15[] = {
83 0xd, 0xa, 0xd, 0xa, 'S', 'M', 0xd, 0xa, 0xd, 0xa
84 };
85 static const unsigned char llparse_blob16[] = {
86 'C', 'E', '/'
87 };
88 static const unsigned char llparse_blob17[] = {
89 'T', 'S', 'P', '/'
90 };
91 static const unsigned char llparse_blob18[] = {
92 'N', 'O', 'U', 'N', 'C', 'E'
93 };
94 static const unsigned char llparse_blob19[] = {
95 'I', 'N', 'D'
96 };
97 static const unsigned char llparse_blob20[] = {
98 'E', 'C', 'K', 'O', 'U', 'T'
99 };
100 static const unsigned char llparse_blob21[] = {
101 'N', 'E', 'C', 'T'
102 };
103 static const unsigned char llparse_blob22[] = {
104 'E', 'T', 'E'
105 };
106 static const unsigned char llparse_blob23[] = {
107 'C', 'R', 'I', 'B', 'E'
108 };
109 static const unsigned char llparse_blob24[] = {
110 'L', 'U', 'S', 'H'
111 };
112 static const unsigned char llparse_blob25[] = {
113 'E', 'T'
114 };
115 static const unsigned char llparse_blob26[] = {
116 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R'
117 };
118 static const unsigned char llparse_blob27[] = {
119 'E', 'A', 'D'
120 };
121 static const unsigned char llparse_blob28[] = {
122 'N', 'K'
123 };
124 static const unsigned char llparse_blob29[] = {
125 'C', 'K'
126 };
127 static const unsigned char llparse_blob30[] = {
128 'S', 'E', 'A', 'R', 'C', 'H'
129 };
130 static const unsigned char llparse_blob31[] = {
131 'R', 'G', 'E'
132 };
133 static const unsigned char llparse_blob32[] = {
134 'C', 'T', 'I', 'V', 'I', 'T', 'Y'
135 };
136 static const unsigned char llparse_blob33[] = {
137 'L', 'E', 'N', 'D', 'A', 'R'
138 };
139 static const unsigned char llparse_blob34[] = {
140 'V', 'E'
141 };
142 static const unsigned char llparse_blob35[] = {
143 'O', 'T', 'I', 'F', 'Y'
144 };
145 static const unsigned char llparse_blob36[] = {
146 'P', 'T', 'I', 'O', 'N', 'S'
147 };
148 static const unsigned char llparse_blob37[] = {
149 'C', 'H'
150 };
151 static const unsigned char llparse_blob38[] = {
152 'S', 'E'
153 };
154 static const unsigned char llparse_blob39[] = {
155 'A', 'Y'
156 };
157 static const unsigned char llparse_blob40[] = {
158 'S', 'T'
159 };
160 static const unsigned char llparse_blob41[] = {
161 'I', 'N', 'D'
162 };
163 static const unsigned char llparse_blob42[] = {
164 'A', 'T', 'C', 'H'
165 };
166 static const unsigned char llparse_blob43[] = {
167 'G', 'E'
168 };
169 static const unsigned char llparse_blob44[] = {
170 'I', 'N', 'D'
171 };
172 static const unsigned char llparse_blob45[] = {
173 'O', 'R', 'D'
174 };
175 static const unsigned char llparse_blob46[] = {
176 'I', 'R', 'E', 'C', 'T'
177 };
178 static const unsigned char llparse_blob47[] = {
179 'O', 'R', 'T'
180 };
181 static const unsigned char llparse_blob48[] = {
182 'R', 'C', 'H'
183 };
184 static const unsigned char llparse_blob49[] = {
185 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R'
186 };
187 static const unsigned char llparse_blob50[] = {
188 'U', 'R', 'C', 'E'
189 };
190 static const unsigned char llparse_blob51[] = {
191 'B', 'S', 'C', 'R', 'I', 'B', 'E'
192 };
193 static const unsigned char llparse_blob52[] = {
194 'A', 'R', 'D', 'O', 'W', 'N'
195 };
196 static const unsigned char llparse_blob53[] = {
197 'A', 'C', 'E'
198 };
199 static const unsigned char llparse_blob54[] = {
200 'I', 'N', 'D'
201 };
202 static const unsigned char llparse_blob55[] = {
203 'N', 'K'
204 };
205 static const unsigned char llparse_blob56[] = {
206 'C', 'K'
207 };
208 static const unsigned char llparse_blob57[] = {
209 'U', 'B', 'S', 'C', 'R', 'I', 'B', 'E'
210 };
211 static const unsigned char llparse_blob58[] = {
212 'H', 'T', 'T', 'P', '/'
213 };
214 static const unsigned char llparse_blob59[] = {
215 'A', 'D'
216 };
217 static const unsigned char llparse_blob60[] = {
218 'T', 'P', '/'
219 };
220
221 enum llparse_match_status_e {
222 kMatchComplete,
223 kMatchPause,
224 kMatchMismatch
225 };
226 typedef enum llparse_match_status_e llparse_match_status_t;
227
228 struct llparse_match_s {
229 llparse_match_status_t status;
230 const unsigned char* current;
231 };
232 typedef struct llparse_match_s llparse_match_t;
233
llparse__match_sequence_id(llhttp__internal_t * s,const unsigned char * p,const unsigned char * endp,const unsigned char * seq,uint32_t seq_len)234 static llparse_match_t llparse__match_sequence_id(
235 llhttp__internal_t* s, const unsigned char* p,
236 const unsigned char* endp,
237 const unsigned char* seq, uint32_t seq_len) {
238 uint32_t index;
239 llparse_match_t res;
240
241 index = s->_index;
242 for (; p != endp; p++) {
243 unsigned char current;
244
245 current = *p;
246 if (current == seq[index]) {
247 if (++index == seq_len) {
248 res.status = kMatchComplete;
249 goto reset;
250 }
251 } else {
252 res.status = kMatchMismatch;
253 goto reset;
254 }
255 }
256 s->_index = index;
257 res.status = kMatchPause;
258 res.current = p;
259 return res;
260 reset:
261 s->_index = 0;
262 res.current = p;
263 return res;
264 }
265
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)266 static llparse_match_t llparse__match_sequence_to_lower(
267 llhttp__internal_t* s, const unsigned char* p,
268 const unsigned char* endp,
269 const unsigned char* seq, uint32_t seq_len) {
270 uint32_t index;
271 llparse_match_t res;
272
273 index = s->_index;
274 for (; p != endp; p++) {
275 unsigned char current;
276
277 current = ((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p));
278 if (current == seq[index]) {
279 if (++index == seq_len) {
280 res.status = kMatchComplete;
281 goto reset;
282 }
283 } else {
284 res.status = kMatchMismatch;
285 goto reset;
286 }
287 }
288 s->_index = index;
289 res.status = kMatchPause;
290 res.current = p;
291 return res;
292 reset:
293 s->_index = 0;
294 res.current = p;
295 return res;
296 }
297
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)298 static llparse_match_t llparse__match_sequence_to_lower_unsafe(
299 llhttp__internal_t* s, const unsigned char* p,
300 const unsigned char* endp,
301 const unsigned char* seq, uint32_t seq_len) {
302 uint32_t index;
303 llparse_match_t res;
304
305 index = s->_index;
306 for (; p != endp; p++) {
307 unsigned char current;
308
309 current = ((*p) | 0x20);
310 if (current == seq[index]) {
311 if (++index == seq_len) {
312 res.status = kMatchComplete;
313 goto reset;
314 }
315 } else {
316 res.status = kMatchMismatch;
317 goto reset;
318 }
319 }
320 s->_index = index;
321 res.status = kMatchPause;
322 res.current = p;
323 return res;
324 reset:
325 s->_index = 0;
326 res.current = p;
327 return res;
328 }
329
330 enum llparse_state_e {
331 s_error,
332 s_n_llhttp__internal__n_closed,
333 s_n_llhttp__internal__n_invoke_llhttp__after_message_complete,
334 s_n_llhttp__internal__n_pause_1,
335 s_n_llhttp__internal__n_invoke_is_equal_upgrade,
336 s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2,
337 s_n_llhttp__internal__n_chunk_data_almost_done,
338 s_n_llhttp__internal__n_consume_content_length,
339 s_n_llhttp__internal__n_span_start_llhttp__on_body,
340 s_n_llhttp__internal__n_invoke_is_equal_content_length,
341 s_n_llhttp__internal__n_chunk_size_almost_done,
342 s_n_llhttp__internal__n_chunk_parameters,
343 s_n_llhttp__internal__n_chunk_size_otherwise,
344 s_n_llhttp__internal__n_chunk_size,
345 s_n_llhttp__internal__n_chunk_size_digit,
346 s_n_llhttp__internal__n_invoke_update_content_length,
347 s_n_llhttp__internal__n_consume_content_length_1,
348 s_n_llhttp__internal__n_span_start_llhttp__on_body_1,
349 s_n_llhttp__internal__n_eof,
350 s_n_llhttp__internal__n_span_start_llhttp__on_body_2,
351 s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete,
352 s_n_llhttp__internal__n_headers_almost_done,
353 s_n_llhttp__internal__n_header_field_colon_discard_ws,
354 s_n_llhttp__internal__n_error_19,
355 s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete,
356 s_n_llhttp__internal__n_span_start_llhttp__on_header_value,
357 s_n_llhttp__internal__n_header_value_discard_lws,
358 s_n_llhttp__internal__n_header_value_discard_ws_almost_done,
359 s_n_llhttp__internal__n_header_value_lws,
360 s_n_llhttp__internal__n_header_value_almost_done,
361 s_n_llhttp__internal__n_header_value_lenient,
362 s_n_llhttp__internal__n_error_25,
363 s_n_llhttp__internal__n_header_value_otherwise,
364 s_n_llhttp__internal__n_header_value_connection_token,
365 s_n_llhttp__internal__n_header_value_connection_ws,
366 s_n_llhttp__internal__n_header_value_connection_1,
367 s_n_llhttp__internal__n_header_value_connection_2,
368 s_n_llhttp__internal__n_header_value_connection_3,
369 s_n_llhttp__internal__n_header_value_connection,
370 s_n_llhttp__internal__n_error_27,
371 s_n_llhttp__internal__n_error_28,
372 s_n_llhttp__internal__n_header_value_content_length_ws,
373 s_n_llhttp__internal__n_header_value_content_length,
374 s_n_llhttp__internal__n_error_30,
375 s_n_llhttp__internal__n_error_29,
376 s_n_llhttp__internal__n_header_value_te_token_ows,
377 s_n_llhttp__internal__n_header_value,
378 s_n_llhttp__internal__n_header_value_te_token,
379 s_n_llhttp__internal__n_header_value_te_chunked_last,
380 s_n_llhttp__internal__n_header_value_te_chunked,
381 s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1,
382 s_n_llhttp__internal__n_header_value_discard_ws,
383 s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete,
384 s_n_llhttp__internal__n_header_field_general_otherwise,
385 s_n_llhttp__internal__n_header_field_general,
386 s_n_llhttp__internal__n_header_field_colon,
387 s_n_llhttp__internal__n_header_field_3,
388 s_n_llhttp__internal__n_header_field_4,
389 s_n_llhttp__internal__n_header_field_2,
390 s_n_llhttp__internal__n_header_field_1,
391 s_n_llhttp__internal__n_header_field_5,
392 s_n_llhttp__internal__n_header_field_6,
393 s_n_llhttp__internal__n_header_field_7,
394 s_n_llhttp__internal__n_header_field,
395 s_n_llhttp__internal__n_span_start_llhttp__on_header_field,
396 s_n_llhttp__internal__n_header_field_start,
397 s_n_llhttp__internal__n_url_to_http_09,
398 s_n_llhttp__internal__n_url_skip_to_http09,
399 s_n_llhttp__internal__n_url_skip_lf_to_http09_1,
400 s_n_llhttp__internal__n_url_skip_lf_to_http09,
401 s_n_llhttp__internal__n_req_pri_upgrade,
402 s_n_llhttp__internal__n_req_http_complete_1,
403 s_n_llhttp__internal__n_req_http_complete,
404 s_n_llhttp__internal__n_req_http_minor,
405 s_n_llhttp__internal__n_req_http_dot,
406 s_n_llhttp__internal__n_req_http_major,
407 s_n_llhttp__internal__n_req_http_start_1,
408 s_n_llhttp__internal__n_req_http_start_2,
409 s_n_llhttp__internal__n_req_http_start_3,
410 s_n_llhttp__internal__n_req_http_start,
411 s_n_llhttp__internal__n_url_to_http,
412 s_n_llhttp__internal__n_url_skip_to_http,
413 s_n_llhttp__internal__n_url_fragment,
414 s_n_llhttp__internal__n_span_end_stub_query_3,
415 s_n_llhttp__internal__n_url_query,
416 s_n_llhttp__internal__n_url_query_or_fragment,
417 s_n_llhttp__internal__n_url_path,
418 s_n_llhttp__internal__n_span_start_stub_path_2,
419 s_n_llhttp__internal__n_span_start_stub_path,
420 s_n_llhttp__internal__n_span_start_stub_path_1,
421 s_n_llhttp__internal__n_url_server_with_at,
422 s_n_llhttp__internal__n_url_server,
423 s_n_llhttp__internal__n_url_schema_delim_1,
424 s_n_llhttp__internal__n_url_schema_delim,
425 s_n_llhttp__internal__n_span_end_stub_schema,
426 s_n_llhttp__internal__n_url_schema,
427 s_n_llhttp__internal__n_url_start,
428 s_n_llhttp__internal__n_span_start_llhttp__on_url_1,
429 s_n_llhttp__internal__n_url_entry_normal,
430 s_n_llhttp__internal__n_span_start_llhttp__on_url,
431 s_n_llhttp__internal__n_url_entry_connect,
432 s_n_llhttp__internal__n_req_spaces_before_url,
433 s_n_llhttp__internal__n_req_first_space_before_url,
434 s_n_llhttp__internal__n_start_req_2,
435 s_n_llhttp__internal__n_start_req_3,
436 s_n_llhttp__internal__n_start_req_1,
437 s_n_llhttp__internal__n_start_req_4,
438 s_n_llhttp__internal__n_start_req_6,
439 s_n_llhttp__internal__n_start_req_8,
440 s_n_llhttp__internal__n_start_req_9,
441 s_n_llhttp__internal__n_start_req_7,
442 s_n_llhttp__internal__n_start_req_5,
443 s_n_llhttp__internal__n_start_req_12,
444 s_n_llhttp__internal__n_start_req_13,
445 s_n_llhttp__internal__n_start_req_11,
446 s_n_llhttp__internal__n_start_req_10,
447 s_n_llhttp__internal__n_start_req_14,
448 s_n_llhttp__internal__n_start_req_17,
449 s_n_llhttp__internal__n_start_req_16,
450 s_n_llhttp__internal__n_start_req_15,
451 s_n_llhttp__internal__n_start_req_18,
452 s_n_llhttp__internal__n_start_req_20,
453 s_n_llhttp__internal__n_start_req_21,
454 s_n_llhttp__internal__n_start_req_19,
455 s_n_llhttp__internal__n_start_req_23,
456 s_n_llhttp__internal__n_start_req_24,
457 s_n_llhttp__internal__n_start_req_26,
458 s_n_llhttp__internal__n_start_req_28,
459 s_n_llhttp__internal__n_start_req_29,
460 s_n_llhttp__internal__n_start_req_27,
461 s_n_llhttp__internal__n_start_req_25,
462 s_n_llhttp__internal__n_start_req_30,
463 s_n_llhttp__internal__n_start_req_22,
464 s_n_llhttp__internal__n_start_req_31,
465 s_n_llhttp__internal__n_start_req_32,
466 s_n_llhttp__internal__n_start_req_35,
467 s_n_llhttp__internal__n_start_req_36,
468 s_n_llhttp__internal__n_start_req_34,
469 s_n_llhttp__internal__n_start_req_37,
470 s_n_llhttp__internal__n_start_req_38,
471 s_n_llhttp__internal__n_start_req_42,
472 s_n_llhttp__internal__n_start_req_43,
473 s_n_llhttp__internal__n_start_req_41,
474 s_n_llhttp__internal__n_start_req_40,
475 s_n_llhttp__internal__n_start_req_39,
476 s_n_llhttp__internal__n_start_req_45,
477 s_n_llhttp__internal__n_start_req_44,
478 s_n_llhttp__internal__n_start_req_33,
479 s_n_llhttp__internal__n_start_req_48,
480 s_n_llhttp__internal__n_start_req_49,
481 s_n_llhttp__internal__n_start_req_50,
482 s_n_llhttp__internal__n_start_req_51,
483 s_n_llhttp__internal__n_start_req_47,
484 s_n_llhttp__internal__n_start_req_46,
485 s_n_llhttp__internal__n_start_req_54,
486 s_n_llhttp__internal__n_start_req_56,
487 s_n_llhttp__internal__n_start_req_57,
488 s_n_llhttp__internal__n_start_req_55,
489 s_n_llhttp__internal__n_start_req_53,
490 s_n_llhttp__internal__n_start_req_58,
491 s_n_llhttp__internal__n_start_req_59,
492 s_n_llhttp__internal__n_start_req_52,
493 s_n_llhttp__internal__n_start_req_61,
494 s_n_llhttp__internal__n_start_req_62,
495 s_n_llhttp__internal__n_start_req_60,
496 s_n_llhttp__internal__n_start_req_65,
497 s_n_llhttp__internal__n_start_req_67,
498 s_n_llhttp__internal__n_start_req_68,
499 s_n_llhttp__internal__n_start_req_66,
500 s_n_llhttp__internal__n_start_req_69,
501 s_n_llhttp__internal__n_start_req_64,
502 s_n_llhttp__internal__n_start_req_63,
503 s_n_llhttp__internal__n_start_req,
504 s_n_llhttp__internal__n_invoke_llhttp__on_status_complete,
505 s_n_llhttp__internal__n_res_line_almost_done,
506 s_n_llhttp__internal__n_res_status,
507 s_n_llhttp__internal__n_span_start_llhttp__on_status,
508 s_n_llhttp__internal__n_res_status_start,
509 s_n_llhttp__internal__n_res_status_code_otherwise,
510 s_n_llhttp__internal__n_res_status_code,
511 s_n_llhttp__internal__n_res_http_end,
512 s_n_llhttp__internal__n_res_http_minor,
513 s_n_llhttp__internal__n_res_http_dot,
514 s_n_llhttp__internal__n_res_http_major,
515 s_n_llhttp__internal__n_start_res,
516 s_n_llhttp__internal__n_req_or_res_method_2,
517 s_n_llhttp__internal__n_req_or_res_method_3,
518 s_n_llhttp__internal__n_req_or_res_method_1,
519 s_n_llhttp__internal__n_req_or_res_method,
520 s_n_llhttp__internal__n_start_req_or_res,
521 s_n_llhttp__internal__n_invoke_load_type,
522 s_n_llhttp__internal__n_start,
523 };
524 typedef enum llparse_state_e llparse_state_t;
525
526 int llhttp__on_url(
527 llhttp__internal_t* s, const unsigned char* p,
528 const unsigned char* endp);
529
530 int llhttp__on_header_field(
531 llhttp__internal_t* s, const unsigned char* p,
532 const unsigned char* endp);
533
534 int llhttp__on_header_value(
535 llhttp__internal_t* s, const unsigned char* p,
536 const unsigned char* endp);
537
538 int llhttp__on_body(
539 llhttp__internal_t* s, const unsigned char* p,
540 const unsigned char* endp);
541
542 int llhttp__on_status(
543 llhttp__internal_t* s, const unsigned char* p,
544 const unsigned char* endp);
545
llhttp__internal__c_update_finish(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)546 int llhttp__internal__c_update_finish(
547 llhttp__internal_t* state,
548 const unsigned char* p,
549 const unsigned char* endp) {
550 state->finish = 2;
551 return 0;
552 }
553
554 int llhttp__on_message_begin(
555 llhttp__internal_t* s, const unsigned char* p,
556 const unsigned char* endp);
557
llhttp__internal__c_load_type(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)558 int llhttp__internal__c_load_type(
559 llhttp__internal_t* state,
560 const unsigned char* p,
561 const unsigned char* endp) {
562 return state->type;
563 }
564
llhttp__internal__c_store_method(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)565 int llhttp__internal__c_store_method(
566 llhttp__internal_t* state,
567 const unsigned char* p,
568 const unsigned char* endp,
569 int match) {
570 state->method = match;
571 return 0;
572 }
573
llhttp__internal__c_is_equal_method(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)574 int llhttp__internal__c_is_equal_method(
575 llhttp__internal_t* state,
576 const unsigned char* p,
577 const unsigned char* endp) {
578 return state->method == 5;
579 }
580
llhttp__internal__c_update_http_major(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)581 int llhttp__internal__c_update_http_major(
582 llhttp__internal_t* state,
583 const unsigned char* p,
584 const unsigned char* endp) {
585 state->http_major = 0;
586 return 0;
587 }
588
llhttp__internal__c_update_http_minor(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)589 int llhttp__internal__c_update_http_minor(
590 llhttp__internal_t* state,
591 const unsigned char* p,
592 const unsigned char* endp) {
593 state->http_minor = 9;
594 return 0;
595 }
596
597 int llhttp__on_url_complete(
598 llhttp__internal_t* s, const unsigned char* p,
599 const unsigned char* endp);
600
llhttp__internal__c_test_flags(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)601 int llhttp__internal__c_test_flags(
602 llhttp__internal_t* state,
603 const unsigned char* p,
604 const unsigned char* endp) {
605 return (state->flags & 128) == 128;
606 }
607
608 int llhttp__on_chunk_complete(
609 llhttp__internal_t* s, const unsigned char* p,
610 const unsigned char* endp);
611
612 int llhttp__on_message_complete(
613 llhttp__internal_t* s, const unsigned char* p,
614 const unsigned char* endp);
615
llhttp__internal__c_is_equal_upgrade(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)616 int llhttp__internal__c_is_equal_upgrade(
617 llhttp__internal_t* state,
618 const unsigned char* p,
619 const unsigned char* endp) {
620 return state->upgrade == 1;
621 }
622
623 int llhttp__after_message_complete(
624 llhttp__internal_t* s, const unsigned char* p,
625 const unsigned char* endp);
626
llhttp__internal__c_update_finish_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)627 int llhttp__internal__c_update_finish_1(
628 llhttp__internal_t* state,
629 const unsigned char* p,
630 const unsigned char* endp) {
631 state->finish = 0;
632 return 0;
633 }
634
llhttp__internal__c_test_lenient_flags(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)635 int llhttp__internal__c_test_lenient_flags(
636 llhttp__internal_t* state,
637 const unsigned char* p,
638 const unsigned char* endp) {
639 return (state->lenient_flags & 4) == 4;
640 }
641
llhttp__internal__c_test_flags_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)642 int llhttp__internal__c_test_flags_1(
643 llhttp__internal_t* state,
644 const unsigned char* p,
645 const unsigned char* endp) {
646 return (state->flags & 544) == 544;
647 }
648
llhttp__internal__c_test_lenient_flags_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)649 int llhttp__internal__c_test_lenient_flags_1(
650 llhttp__internal_t* state,
651 const unsigned char* p,
652 const unsigned char* endp) {
653 return (state->lenient_flags & 2) == 2;
654 }
655
656 int llhttp__before_headers_complete(
657 llhttp__internal_t* s, const unsigned char* p,
658 const unsigned char* endp);
659
660 int llhttp__on_headers_complete(
661 llhttp__internal_t* s, const unsigned char* p,
662 const unsigned char* endp);
663
664 int llhttp__after_headers_complete(
665 llhttp__internal_t* s, const unsigned char* p,
666 const unsigned char* endp);
667
llhttp__internal__c_update_content_length(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)668 int llhttp__internal__c_update_content_length(
669 llhttp__internal_t* state,
670 const unsigned char* p,
671 const unsigned char* endp) {
672 state->content_length = 0;
673 return 0;
674 }
675
llhttp__internal__c_mul_add_content_length(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)676 int llhttp__internal__c_mul_add_content_length(
677 llhttp__internal_t* state,
678 const unsigned char* p,
679 const unsigned char* endp,
680 int match) {
681 /* Multiplication overflow */
682 if (state->content_length > 0xffffffffffffffffULL / 16) {
683 return 1;
684 }
685
686 state->content_length *= 16;
687
688 /* Addition overflow */
689 if (match >= 0) {
690 if (state->content_length > 0xffffffffffffffffULL - match) {
691 return 1;
692 }
693 } else {
694 if (state->content_length < 0ULL - match) {
695 return 1;
696 }
697 }
698 state->content_length += match;
699 return 0;
700 }
701
702 int llhttp__on_chunk_header(
703 llhttp__internal_t* s, const unsigned char* p,
704 const unsigned char* endp);
705
llhttp__internal__c_is_equal_content_length(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)706 int llhttp__internal__c_is_equal_content_length(
707 llhttp__internal_t* state,
708 const unsigned char* p,
709 const unsigned char* endp) {
710 return state->content_length == 0;
711 }
712
llhttp__internal__c_or_flags(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)713 int llhttp__internal__c_or_flags(
714 llhttp__internal_t* state,
715 const unsigned char* p,
716 const unsigned char* endp) {
717 state->flags |= 128;
718 return 0;
719 }
720
llhttp__internal__c_update_finish_3(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)721 int llhttp__internal__c_update_finish_3(
722 llhttp__internal_t* state,
723 const unsigned char* p,
724 const unsigned char* endp) {
725 state->finish = 1;
726 return 0;
727 }
728
llhttp__internal__c_or_flags_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)729 int llhttp__internal__c_or_flags_1(
730 llhttp__internal_t* state,
731 const unsigned char* p,
732 const unsigned char* endp) {
733 state->flags |= 64;
734 return 0;
735 }
736
llhttp__internal__c_update_upgrade(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)737 int llhttp__internal__c_update_upgrade(
738 llhttp__internal_t* state,
739 const unsigned char* p,
740 const unsigned char* endp) {
741 state->upgrade = 1;
742 return 0;
743 }
744
llhttp__internal__c_store_header_state(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)745 int llhttp__internal__c_store_header_state(
746 llhttp__internal_t* state,
747 const unsigned char* p,
748 const unsigned char* endp,
749 int match) {
750 state->header_state = match;
751 return 0;
752 }
753
llhttp__internal__c_test_lenient_flags_2(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)754 int llhttp__internal__c_test_lenient_flags_2(
755 llhttp__internal_t* state,
756 const unsigned char* p,
757 const unsigned char* endp) {
758 return (state->lenient_flags & 1) == 1;
759 }
760
761 int llhttp__on_header_field_complete(
762 llhttp__internal_t* s, const unsigned char* p,
763 const unsigned char* endp);
764
llhttp__internal__c_load_header_state(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)765 int llhttp__internal__c_load_header_state(
766 llhttp__internal_t* state,
767 const unsigned char* p,
768 const unsigned char* endp) {
769 return state->header_state;
770 }
771
llhttp__internal__c_or_flags_3(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)772 int llhttp__internal__c_or_flags_3(
773 llhttp__internal_t* state,
774 const unsigned char* p,
775 const unsigned char* endp) {
776 state->flags |= 1;
777 return 0;
778 }
779
llhttp__internal__c_update_header_state(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)780 int llhttp__internal__c_update_header_state(
781 llhttp__internal_t* state,
782 const unsigned char* p,
783 const unsigned char* endp) {
784 state->header_state = 1;
785 return 0;
786 }
787
788 int llhttp__on_header_value_complete(
789 llhttp__internal_t* s, const unsigned char* p,
790 const unsigned char* endp);
791
llhttp__internal__c_or_flags_4(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)792 int llhttp__internal__c_or_flags_4(
793 llhttp__internal_t* state,
794 const unsigned char* p,
795 const unsigned char* endp) {
796 state->flags |= 2;
797 return 0;
798 }
799
llhttp__internal__c_or_flags_5(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)800 int llhttp__internal__c_or_flags_5(
801 llhttp__internal_t* state,
802 const unsigned char* p,
803 const unsigned char* endp) {
804 state->flags |= 4;
805 return 0;
806 }
807
llhttp__internal__c_or_flags_6(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)808 int llhttp__internal__c_or_flags_6(
809 llhttp__internal_t* state,
810 const unsigned char* p,
811 const unsigned char* endp) {
812 state->flags |= 8;
813 return 0;
814 }
815
llhttp__internal__c_update_header_state_3(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)816 int llhttp__internal__c_update_header_state_3(
817 llhttp__internal_t* state,
818 const unsigned char* p,
819 const unsigned char* endp) {
820 state->header_state = 6;
821 return 0;
822 }
823
llhttp__internal__c_update_header_state_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)824 int llhttp__internal__c_update_header_state_1(
825 llhttp__internal_t* state,
826 const unsigned char* p,
827 const unsigned char* endp) {
828 state->header_state = 0;
829 return 0;
830 }
831
llhttp__internal__c_update_header_state_6(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)832 int llhttp__internal__c_update_header_state_6(
833 llhttp__internal_t* state,
834 const unsigned char* p,
835 const unsigned char* endp) {
836 state->header_state = 5;
837 return 0;
838 }
839
llhttp__internal__c_update_header_state_7(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)840 int llhttp__internal__c_update_header_state_7(
841 llhttp__internal_t* state,
842 const unsigned char* p,
843 const unsigned char* endp) {
844 state->header_state = 7;
845 return 0;
846 }
847
llhttp__internal__c_test_flags_2(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)848 int llhttp__internal__c_test_flags_2(
849 llhttp__internal_t* state,
850 const unsigned char* p,
851 const unsigned char* endp) {
852 return (state->flags & 32) == 32;
853 }
854
llhttp__internal__c_mul_add_content_length_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)855 int llhttp__internal__c_mul_add_content_length_1(
856 llhttp__internal_t* state,
857 const unsigned char* p,
858 const unsigned char* endp,
859 int match) {
860 /* Multiplication overflow */
861 if (state->content_length > 0xffffffffffffffffULL / 10) {
862 return 1;
863 }
864
865 state->content_length *= 10;
866
867 /* Addition overflow */
868 if (match >= 0) {
869 if (state->content_length > 0xffffffffffffffffULL - match) {
870 return 1;
871 }
872 } else {
873 if (state->content_length < 0ULL - match) {
874 return 1;
875 }
876 }
877 state->content_length += match;
878 return 0;
879 }
880
llhttp__internal__c_or_flags_15(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)881 int llhttp__internal__c_or_flags_15(
882 llhttp__internal_t* state,
883 const unsigned char* p,
884 const unsigned char* endp) {
885 state->flags |= 32;
886 return 0;
887 }
888
llhttp__internal__c_test_flags_3(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)889 int llhttp__internal__c_test_flags_3(
890 llhttp__internal_t* state,
891 const unsigned char* p,
892 const unsigned char* endp) {
893 return (state->flags & 8) == 8;
894 }
895
llhttp__internal__c_test_lenient_flags_7(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)896 int llhttp__internal__c_test_lenient_flags_7(
897 llhttp__internal_t* state,
898 const unsigned char* p,
899 const unsigned char* endp) {
900 return (state->lenient_flags & 8) == 8;
901 }
902
llhttp__internal__c_or_flags_16(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)903 int llhttp__internal__c_or_flags_16(
904 llhttp__internal_t* state,
905 const unsigned char* p,
906 const unsigned char* endp) {
907 state->flags |= 512;
908 return 0;
909 }
910
llhttp__internal__c_and_flags(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)911 int llhttp__internal__c_and_flags(
912 llhttp__internal_t* state,
913 const unsigned char* p,
914 const unsigned char* endp) {
915 state->flags &= -9;
916 return 0;
917 }
918
llhttp__internal__c_update_header_state_8(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)919 int llhttp__internal__c_update_header_state_8(
920 llhttp__internal_t* state,
921 const unsigned char* p,
922 const unsigned char* endp) {
923 state->header_state = 8;
924 return 0;
925 }
926
llhttp__internal__c_or_flags_18(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)927 int llhttp__internal__c_or_flags_18(
928 llhttp__internal_t* state,
929 const unsigned char* p,
930 const unsigned char* endp) {
931 state->flags |= 16;
932 return 0;
933 }
934
llhttp__internal__c_load_method(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)935 int llhttp__internal__c_load_method(
936 llhttp__internal_t* state,
937 const unsigned char* p,
938 const unsigned char* endp) {
939 return state->method;
940 }
941
llhttp__internal__c_store_http_major(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)942 int llhttp__internal__c_store_http_major(
943 llhttp__internal_t* state,
944 const unsigned char* p,
945 const unsigned char* endp,
946 int match) {
947 state->http_major = match;
948 return 0;
949 }
950
llhttp__internal__c_store_http_minor(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)951 int llhttp__internal__c_store_http_minor(
952 llhttp__internal_t* state,
953 const unsigned char* p,
954 const unsigned char* endp,
955 int match) {
956 state->http_minor = match;
957 return 0;
958 }
959
llhttp__internal__c_test_lenient_flags_9(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)960 int llhttp__internal__c_test_lenient_flags_9(
961 llhttp__internal_t* state,
962 const unsigned char* p,
963 const unsigned char* endp) {
964 return (state->lenient_flags & 16) == 16;
965 }
966
llhttp__internal__c_load_http_major(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)967 int llhttp__internal__c_load_http_major(
968 llhttp__internal_t* state,
969 const unsigned char* p,
970 const unsigned char* endp) {
971 return state->http_major;
972 }
973
llhttp__internal__c_load_http_minor(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)974 int llhttp__internal__c_load_http_minor(
975 llhttp__internal_t* state,
976 const unsigned char* p,
977 const unsigned char* endp) {
978 return state->http_minor;
979 }
980
llhttp__internal__c_update_status_code(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)981 int llhttp__internal__c_update_status_code(
982 llhttp__internal_t* state,
983 const unsigned char* p,
984 const unsigned char* endp) {
985 state->status_code = 0;
986 return 0;
987 }
988
llhttp__internal__c_mul_add_status_code(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)989 int llhttp__internal__c_mul_add_status_code(
990 llhttp__internal_t* state,
991 const unsigned char* p,
992 const unsigned char* endp,
993 int match) {
994 /* Multiplication overflow */
995 if (state->status_code > 0xffff / 10) {
996 return 1;
997 }
998
999 state->status_code *= 10;
1000
1001 /* Addition overflow */
1002 if (match >= 0) {
1003 if (state->status_code > 0xffff - match) {
1004 return 1;
1005 }
1006 } else {
1007 if (state->status_code < 0 - match) {
1008 return 1;
1009 }
1010 }
1011 state->status_code += match;
1012
1013 /* Enforce maximum */
1014 if (state->status_code > 999) {
1015 return 1;
1016 }
1017 return 0;
1018 }
1019
1020 int llhttp__on_status_complete(
1021 llhttp__internal_t* s, const unsigned char* p,
1022 const unsigned char* endp);
1023
llhttp__internal__c_update_type(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)1024 int llhttp__internal__c_update_type(
1025 llhttp__internal_t* state,
1026 const unsigned char* p,
1027 const unsigned char* endp) {
1028 state->type = 1;
1029 return 0;
1030 }
1031
llhttp__internal__c_update_type_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)1032 int llhttp__internal__c_update_type_1(
1033 llhttp__internal_t* state,
1034 const unsigned char* p,
1035 const unsigned char* endp) {
1036 state->type = 2;
1037 return 0;
1038 }
1039
llhttp__internal_init(llhttp__internal_t * state)1040 int llhttp__internal_init(llhttp__internal_t* state) {
1041 memset(state, 0, sizeof(*state));
1042 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_start;
1043 return 0;
1044 }
1045
llhttp__internal__run(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)1046 static llparse_state_t llhttp__internal__run(
1047 llhttp__internal_t* state,
1048 const unsigned char* p,
1049 const unsigned char* endp) {
1050 int match;
1051 switch ((llparse_state_t) (intptr_t) state->_current) {
1052 case s_n_llhttp__internal__n_closed:
1053 s_n_llhttp__internal__n_closed: {
1054 if (p == endp) {
1055 return s_n_llhttp__internal__n_closed;
1056 }
1057 switch (*p) {
1058 case 10: {
1059 p++;
1060 goto s_n_llhttp__internal__n_closed;
1061 }
1062 case 13: {
1063 p++;
1064 goto s_n_llhttp__internal__n_closed;
1065 }
1066 default: {
1067 p++;
1068 goto s_n_llhttp__internal__n_error_4;
1069 }
1070 }
1071 /* UNREACHABLE */;
1072 abort();
1073 }
1074 case s_n_llhttp__internal__n_invoke_llhttp__after_message_complete:
1075 s_n_llhttp__internal__n_invoke_llhttp__after_message_complete: {
1076 switch (llhttp__after_message_complete(state, p, endp)) {
1077 case 1:
1078 goto s_n_llhttp__internal__n_invoke_update_finish_2;
1079 default:
1080 goto s_n_llhttp__internal__n_invoke_update_finish_1;
1081 }
1082 /* UNREACHABLE */;
1083 abort();
1084 }
1085 case s_n_llhttp__internal__n_pause_1:
1086 s_n_llhttp__internal__n_pause_1: {
1087 state->error = 0x16;
1088 state->reason = "Pause on CONNECT/Upgrade";
1089 state->error_pos = (const char*) p;
1090 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
1091 return s_error;
1092 /* UNREACHABLE */;
1093 abort();
1094 }
1095 case s_n_llhttp__internal__n_invoke_is_equal_upgrade:
1096 s_n_llhttp__internal__n_invoke_is_equal_upgrade: {
1097 switch (llhttp__internal__c_is_equal_upgrade(state, p, endp)) {
1098 case 0:
1099 goto s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
1100 default:
1101 goto s_n_llhttp__internal__n_pause_1;
1102 }
1103 /* UNREACHABLE */;
1104 abort();
1105 }
1106 case s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2:
1107 s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2: {
1108 switch (llhttp__on_message_complete(state, p, endp)) {
1109 case 0:
1110 goto s_n_llhttp__internal__n_invoke_is_equal_upgrade;
1111 case 21:
1112 goto s_n_llhttp__internal__n_pause_5;
1113 default:
1114 goto s_n_llhttp__internal__n_error_14;
1115 }
1116 /* UNREACHABLE */;
1117 abort();
1118 }
1119 case s_n_llhttp__internal__n_chunk_data_almost_done:
1120 s_n_llhttp__internal__n_chunk_data_almost_done: {
1121 llparse_match_t match_seq;
1122
1123 if (p == endp) {
1124 return s_n_llhttp__internal__n_chunk_data_almost_done;
1125 }
1126 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob0, 2);
1127 p = match_seq.current;
1128 switch (match_seq.status) {
1129 case kMatchComplete: {
1130 p++;
1131 goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete;
1132 }
1133 case kMatchPause: {
1134 return s_n_llhttp__internal__n_chunk_data_almost_done;
1135 }
1136 case kMatchMismatch: {
1137 goto s_n_llhttp__internal__n_error_8;
1138 }
1139 }
1140 /* UNREACHABLE */;
1141 abort();
1142 }
1143 case s_n_llhttp__internal__n_consume_content_length:
1144 s_n_llhttp__internal__n_consume_content_length: {
1145 size_t avail;
1146 uint64_t need;
1147
1148 avail = endp - p;
1149 need = state->content_length;
1150 if (avail >= need) {
1151 p += need;
1152 state->content_length = 0;
1153 goto s_n_llhttp__internal__n_span_end_llhttp__on_body;
1154 }
1155
1156 state->content_length -= avail;
1157 return s_n_llhttp__internal__n_consume_content_length;
1158 /* UNREACHABLE */;
1159 abort();
1160 }
1161 case s_n_llhttp__internal__n_span_start_llhttp__on_body:
1162 s_n_llhttp__internal__n_span_start_llhttp__on_body: {
1163 if (p == endp) {
1164 return s_n_llhttp__internal__n_span_start_llhttp__on_body;
1165 }
1166 state->_span_pos0 = (void*) p;
1167 state->_span_cb0 = llhttp__on_body;
1168 goto s_n_llhttp__internal__n_consume_content_length;
1169 /* UNREACHABLE */;
1170 abort();
1171 }
1172 case s_n_llhttp__internal__n_invoke_is_equal_content_length:
1173 s_n_llhttp__internal__n_invoke_is_equal_content_length: {
1174 switch (llhttp__internal__c_is_equal_content_length(state, p, endp)) {
1175 case 0:
1176 goto s_n_llhttp__internal__n_span_start_llhttp__on_body;
1177 default:
1178 goto s_n_llhttp__internal__n_invoke_or_flags;
1179 }
1180 /* UNREACHABLE */;
1181 abort();
1182 }
1183 case s_n_llhttp__internal__n_chunk_size_almost_done:
1184 s_n_llhttp__internal__n_chunk_size_almost_done: {
1185 if (p == endp) {
1186 return s_n_llhttp__internal__n_chunk_size_almost_done;
1187 }
1188 switch (*p) {
1189 case 10: {
1190 p++;
1191 goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_header;
1192 }
1193 default: {
1194 goto s_n_llhttp__internal__n_error_9;
1195 }
1196 }
1197 /* UNREACHABLE */;
1198 abort();
1199 }
1200 case s_n_llhttp__internal__n_chunk_parameters:
1201 s_n_llhttp__internal__n_chunk_parameters: {
1202 static uint8_t lookup_table[] = {
1203 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0,
1204 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1205 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1206 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1207 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1208 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1209 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1210 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
1211 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1212 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1213 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1214 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1215 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1216 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1217 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1218 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
1219 };
1220 if (p == endp) {
1221 return s_n_llhttp__internal__n_chunk_parameters;
1222 }
1223 switch (lookup_table[(uint8_t) *p]) {
1224 case 1: {
1225 p++;
1226 goto s_n_llhttp__internal__n_chunk_parameters;
1227 }
1228 case 2: {
1229 p++;
1230 goto s_n_llhttp__internal__n_chunk_size_almost_done;
1231 }
1232 default: {
1233 goto s_n_llhttp__internal__n_error_10;
1234 }
1235 }
1236 /* UNREACHABLE */;
1237 abort();
1238 }
1239 case s_n_llhttp__internal__n_chunk_size_otherwise:
1240 s_n_llhttp__internal__n_chunk_size_otherwise: {
1241 if (p == endp) {
1242 return s_n_llhttp__internal__n_chunk_size_otherwise;
1243 }
1244 switch (*p) {
1245 case 13: {
1246 p++;
1247 goto s_n_llhttp__internal__n_chunk_size_almost_done;
1248 }
1249 case ' ': {
1250 p++;
1251 goto s_n_llhttp__internal__n_chunk_parameters;
1252 }
1253 case ';': {
1254 p++;
1255 goto s_n_llhttp__internal__n_chunk_parameters;
1256 }
1257 default: {
1258 goto s_n_llhttp__internal__n_error_11;
1259 }
1260 }
1261 /* UNREACHABLE */;
1262 abort();
1263 }
1264 case s_n_llhttp__internal__n_chunk_size:
1265 s_n_llhttp__internal__n_chunk_size: {
1266 if (p == endp) {
1267 return s_n_llhttp__internal__n_chunk_size;
1268 }
1269 switch (*p) {
1270 case '0': {
1271 p++;
1272 match = 0;
1273 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1274 }
1275 case '1': {
1276 p++;
1277 match = 1;
1278 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1279 }
1280 case '2': {
1281 p++;
1282 match = 2;
1283 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1284 }
1285 case '3': {
1286 p++;
1287 match = 3;
1288 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1289 }
1290 case '4': {
1291 p++;
1292 match = 4;
1293 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1294 }
1295 case '5': {
1296 p++;
1297 match = 5;
1298 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1299 }
1300 case '6': {
1301 p++;
1302 match = 6;
1303 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1304 }
1305 case '7': {
1306 p++;
1307 match = 7;
1308 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1309 }
1310 case '8': {
1311 p++;
1312 match = 8;
1313 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1314 }
1315 case '9': {
1316 p++;
1317 match = 9;
1318 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1319 }
1320 case 'A': {
1321 p++;
1322 match = 10;
1323 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1324 }
1325 case 'B': {
1326 p++;
1327 match = 11;
1328 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1329 }
1330 case 'C': {
1331 p++;
1332 match = 12;
1333 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1334 }
1335 case 'D': {
1336 p++;
1337 match = 13;
1338 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1339 }
1340 case 'E': {
1341 p++;
1342 match = 14;
1343 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1344 }
1345 case 'F': {
1346 p++;
1347 match = 15;
1348 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1349 }
1350 case 'a': {
1351 p++;
1352 match = 10;
1353 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1354 }
1355 case 'b': {
1356 p++;
1357 match = 11;
1358 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1359 }
1360 case 'c': {
1361 p++;
1362 match = 12;
1363 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1364 }
1365 case 'd': {
1366 p++;
1367 match = 13;
1368 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1369 }
1370 case 'e': {
1371 p++;
1372 match = 14;
1373 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1374 }
1375 case 'f': {
1376 p++;
1377 match = 15;
1378 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1379 }
1380 default: {
1381 goto s_n_llhttp__internal__n_chunk_size_otherwise;
1382 }
1383 }
1384 /* UNREACHABLE */;
1385 abort();
1386 }
1387 case s_n_llhttp__internal__n_chunk_size_digit:
1388 s_n_llhttp__internal__n_chunk_size_digit: {
1389 if (p == endp) {
1390 return s_n_llhttp__internal__n_chunk_size_digit;
1391 }
1392 switch (*p) {
1393 case '0': {
1394 p++;
1395 match = 0;
1396 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1397 }
1398 case '1': {
1399 p++;
1400 match = 1;
1401 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1402 }
1403 case '2': {
1404 p++;
1405 match = 2;
1406 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1407 }
1408 case '3': {
1409 p++;
1410 match = 3;
1411 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1412 }
1413 case '4': {
1414 p++;
1415 match = 4;
1416 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1417 }
1418 case '5': {
1419 p++;
1420 match = 5;
1421 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1422 }
1423 case '6': {
1424 p++;
1425 match = 6;
1426 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1427 }
1428 case '7': {
1429 p++;
1430 match = 7;
1431 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1432 }
1433 case '8': {
1434 p++;
1435 match = 8;
1436 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1437 }
1438 case '9': {
1439 p++;
1440 match = 9;
1441 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1442 }
1443 case 'A': {
1444 p++;
1445 match = 10;
1446 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1447 }
1448 case 'B': {
1449 p++;
1450 match = 11;
1451 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1452 }
1453 case 'C': {
1454 p++;
1455 match = 12;
1456 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1457 }
1458 case 'D': {
1459 p++;
1460 match = 13;
1461 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1462 }
1463 case 'E': {
1464 p++;
1465 match = 14;
1466 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1467 }
1468 case 'F': {
1469 p++;
1470 match = 15;
1471 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1472 }
1473 case 'a': {
1474 p++;
1475 match = 10;
1476 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1477 }
1478 case 'b': {
1479 p++;
1480 match = 11;
1481 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1482 }
1483 case 'c': {
1484 p++;
1485 match = 12;
1486 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1487 }
1488 case 'd': {
1489 p++;
1490 match = 13;
1491 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1492 }
1493 case 'e': {
1494 p++;
1495 match = 14;
1496 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1497 }
1498 case 'f': {
1499 p++;
1500 match = 15;
1501 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
1502 }
1503 default: {
1504 goto s_n_llhttp__internal__n_error_13;
1505 }
1506 }
1507 /* UNREACHABLE */;
1508 abort();
1509 }
1510 case s_n_llhttp__internal__n_invoke_update_content_length:
1511 s_n_llhttp__internal__n_invoke_update_content_length: {
1512 switch (llhttp__internal__c_update_content_length(state, p, endp)) {
1513 default:
1514 goto s_n_llhttp__internal__n_chunk_size_digit;
1515 }
1516 /* UNREACHABLE */;
1517 abort();
1518 }
1519 case s_n_llhttp__internal__n_consume_content_length_1:
1520 s_n_llhttp__internal__n_consume_content_length_1: {
1521 size_t avail;
1522 uint64_t need;
1523
1524 avail = endp - p;
1525 need = state->content_length;
1526 if (avail >= need) {
1527 p += need;
1528 state->content_length = 0;
1529 goto s_n_llhttp__internal__n_span_end_llhttp__on_body_1;
1530 }
1531
1532 state->content_length -= avail;
1533 return s_n_llhttp__internal__n_consume_content_length_1;
1534 /* UNREACHABLE */;
1535 abort();
1536 }
1537 case s_n_llhttp__internal__n_span_start_llhttp__on_body_1:
1538 s_n_llhttp__internal__n_span_start_llhttp__on_body_1: {
1539 if (p == endp) {
1540 return s_n_llhttp__internal__n_span_start_llhttp__on_body_1;
1541 }
1542 state->_span_pos0 = (void*) p;
1543 state->_span_cb0 = llhttp__on_body;
1544 goto s_n_llhttp__internal__n_consume_content_length_1;
1545 /* UNREACHABLE */;
1546 abort();
1547 }
1548 case s_n_llhttp__internal__n_eof:
1549 s_n_llhttp__internal__n_eof: {
1550 if (p == endp) {
1551 return s_n_llhttp__internal__n_eof;
1552 }
1553 p++;
1554 goto s_n_llhttp__internal__n_eof;
1555 /* UNREACHABLE */;
1556 abort();
1557 }
1558 case s_n_llhttp__internal__n_span_start_llhttp__on_body_2:
1559 s_n_llhttp__internal__n_span_start_llhttp__on_body_2: {
1560 if (p == endp) {
1561 return s_n_llhttp__internal__n_span_start_llhttp__on_body_2;
1562 }
1563 state->_span_pos0 = (void*) p;
1564 state->_span_cb0 = llhttp__on_body;
1565 goto s_n_llhttp__internal__n_eof;
1566 /* UNREACHABLE */;
1567 abort();
1568 }
1569 case s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete:
1570 s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete: {
1571 switch (llhttp__after_headers_complete(state, p, endp)) {
1572 case 1:
1573 goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_1;
1574 case 2:
1575 goto s_n_llhttp__internal__n_invoke_update_content_length;
1576 case 3:
1577 goto s_n_llhttp__internal__n_span_start_llhttp__on_body_1;
1578 case 4:
1579 goto s_n_llhttp__internal__n_invoke_update_finish_3;
1580 case 5:
1581 goto s_n_llhttp__internal__n_error_15;
1582 default:
1583 goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete;
1584 }
1585 /* UNREACHABLE */;
1586 abort();
1587 }
1588 case s_n_llhttp__internal__n_headers_almost_done:
1589 s_n_llhttp__internal__n_headers_almost_done: {
1590 if (p == endp) {
1591 return s_n_llhttp__internal__n_headers_almost_done;
1592 }
1593 switch (*p) {
1594 case 10: {
1595 p++;
1596 goto s_n_llhttp__internal__n_invoke_test_flags;
1597 }
1598 default: {
1599 goto s_n_llhttp__internal__n_error_18;
1600 }
1601 }
1602 /* UNREACHABLE */;
1603 abort();
1604 }
1605 case s_n_llhttp__internal__n_header_field_colon_discard_ws:
1606 s_n_llhttp__internal__n_header_field_colon_discard_ws: {
1607 if (p == endp) {
1608 return s_n_llhttp__internal__n_header_field_colon_discard_ws;
1609 }
1610 switch (*p) {
1611 case ' ': {
1612 p++;
1613 goto s_n_llhttp__internal__n_header_field_colon_discard_ws;
1614 }
1615 default: {
1616 goto s_n_llhttp__internal__n_header_field_colon;
1617 }
1618 }
1619 /* UNREACHABLE */;
1620 abort();
1621 }
1622 case s_n_llhttp__internal__n_error_19:
1623 s_n_llhttp__internal__n_error_19: {
1624 state->error = 0xa;
1625 state->reason = "Invalid header field char";
1626 state->error_pos = (const char*) p;
1627 state->_current = (void*) (intptr_t) s_error;
1628 return s_error;
1629 /* UNREACHABLE */;
1630 abort();
1631 }
1632 case s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete:
1633 s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete: {
1634 switch (llhttp__on_header_value_complete(state, p, endp)) {
1635 default:
1636 goto s_n_llhttp__internal__n_header_field_start;
1637 }
1638 /* UNREACHABLE */;
1639 abort();
1640 }
1641 case s_n_llhttp__internal__n_span_start_llhttp__on_header_value:
1642 s_n_llhttp__internal__n_span_start_llhttp__on_header_value: {
1643 if (p == endp) {
1644 return s_n_llhttp__internal__n_span_start_llhttp__on_header_value;
1645 }
1646 state->_span_pos0 = (void*) p;
1647 state->_span_cb0 = llhttp__on_header_value;
1648 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value;
1649 /* UNREACHABLE */;
1650 abort();
1651 }
1652 case s_n_llhttp__internal__n_header_value_discard_lws:
1653 s_n_llhttp__internal__n_header_value_discard_lws: {
1654 if (p == endp) {
1655 return s_n_llhttp__internal__n_header_value_discard_lws;
1656 }
1657 switch (*p) {
1658 case 9: {
1659 p++;
1660 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_4;
1661 }
1662 case ' ': {
1663 p++;
1664 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_4;
1665 }
1666 default: {
1667 goto s_n_llhttp__internal__n_invoke_load_header_state;
1668 }
1669 }
1670 /* UNREACHABLE */;
1671 abort();
1672 }
1673 case s_n_llhttp__internal__n_header_value_discard_ws_almost_done:
1674 s_n_llhttp__internal__n_header_value_discard_ws_almost_done: {
1675 if (p == endp) {
1676 return s_n_llhttp__internal__n_header_value_discard_ws_almost_done;
1677 }
1678 switch (*p) {
1679 case 10: {
1680 p++;
1681 goto s_n_llhttp__internal__n_header_value_discard_lws;
1682 }
1683 default: {
1684 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_5;
1685 }
1686 }
1687 /* UNREACHABLE */;
1688 abort();
1689 }
1690 case s_n_llhttp__internal__n_header_value_lws:
1691 s_n_llhttp__internal__n_header_value_lws: {
1692 if (p == endp) {
1693 return s_n_llhttp__internal__n_header_value_lws;
1694 }
1695 switch (*p) {
1696 case 9: {
1697 goto s_n_llhttp__internal__n_invoke_load_header_state_3;
1698 }
1699 case ' ': {
1700 goto s_n_llhttp__internal__n_invoke_load_header_state_3;
1701 }
1702 default: {
1703 goto s_n_llhttp__internal__n_invoke_load_header_state_4;
1704 }
1705 }
1706 /* UNREACHABLE */;
1707 abort();
1708 }
1709 case s_n_llhttp__internal__n_header_value_almost_done:
1710 s_n_llhttp__internal__n_header_value_almost_done: {
1711 if (p == endp) {
1712 return s_n_llhttp__internal__n_header_value_almost_done;
1713 }
1714 switch (*p) {
1715 case 10: {
1716 p++;
1717 goto s_n_llhttp__internal__n_header_value_lws;
1718 }
1719 default: {
1720 goto s_n_llhttp__internal__n_error_24;
1721 }
1722 }
1723 /* UNREACHABLE */;
1724 abort();
1725 }
1726 case s_n_llhttp__internal__n_header_value_lenient:
1727 s_n_llhttp__internal__n_header_value_lenient: {
1728 if (p == endp) {
1729 return s_n_llhttp__internal__n_header_value_lenient;
1730 }
1731 switch (*p) {
1732 case 10: {
1733 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_3;
1734 }
1735 case 13: {
1736 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_4;
1737 }
1738 default: {
1739 p++;
1740 goto s_n_llhttp__internal__n_header_value_lenient;
1741 }
1742 }
1743 /* UNREACHABLE */;
1744 abort();
1745 }
1746 case s_n_llhttp__internal__n_error_25:
1747 s_n_llhttp__internal__n_error_25: {
1748 state->error = 0xa;
1749 state->reason = "Invalid header value char";
1750 state->error_pos = (const char*) p;
1751 state->_current = (void*) (intptr_t) s_error;
1752 return s_error;
1753 /* UNREACHABLE */;
1754 abort();
1755 }
1756 case s_n_llhttp__internal__n_header_value_otherwise:
1757 s_n_llhttp__internal__n_header_value_otherwise: {
1758 if (p == endp) {
1759 return s_n_llhttp__internal__n_header_value_otherwise;
1760 }
1761 switch (*p) {
1762 case 13: {
1763 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_1;
1764 }
1765 default: {
1766 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_6;
1767 }
1768 }
1769 /* UNREACHABLE */;
1770 abort();
1771 }
1772 case s_n_llhttp__internal__n_header_value_connection_token:
1773 s_n_llhttp__internal__n_header_value_connection_token: {
1774 static uint8_t lookup_table[] = {
1775 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
1776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1777 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
1778 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1779 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1780 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1781 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1782 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
1783 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1784 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1785 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1786 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1787 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1788 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1789 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1790 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
1791 };
1792 if (p == endp) {
1793 return s_n_llhttp__internal__n_header_value_connection_token;
1794 }
1795 switch (lookup_table[(uint8_t) *p]) {
1796 case 1: {
1797 p++;
1798 goto s_n_llhttp__internal__n_header_value_connection_token;
1799 }
1800 case 2: {
1801 p++;
1802 goto s_n_llhttp__internal__n_header_value_connection;
1803 }
1804 default: {
1805 goto s_n_llhttp__internal__n_header_value_otherwise;
1806 }
1807 }
1808 /* UNREACHABLE */;
1809 abort();
1810 }
1811 case s_n_llhttp__internal__n_header_value_connection_ws:
1812 s_n_llhttp__internal__n_header_value_connection_ws: {
1813 if (p == endp) {
1814 return s_n_llhttp__internal__n_header_value_connection_ws;
1815 }
1816 switch (*p) {
1817 case 10: {
1818 goto s_n_llhttp__internal__n_header_value_otherwise;
1819 }
1820 case 13: {
1821 goto s_n_llhttp__internal__n_header_value_otherwise;
1822 }
1823 case ' ': {
1824 p++;
1825 goto s_n_llhttp__internal__n_header_value_connection_ws;
1826 }
1827 case ',': {
1828 p++;
1829 goto s_n_llhttp__internal__n_invoke_load_header_state_5;
1830 }
1831 default: {
1832 goto s_n_llhttp__internal__n_invoke_update_header_state_5;
1833 }
1834 }
1835 /* UNREACHABLE */;
1836 abort();
1837 }
1838 case s_n_llhttp__internal__n_header_value_connection_1:
1839 s_n_llhttp__internal__n_header_value_connection_1: {
1840 llparse_match_t match_seq;
1841
1842 if (p == endp) {
1843 return s_n_llhttp__internal__n_header_value_connection_1;
1844 }
1845 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob3, 4);
1846 p = match_seq.current;
1847 switch (match_seq.status) {
1848 case kMatchComplete: {
1849 p++;
1850 goto s_n_llhttp__internal__n_invoke_update_header_state_3;
1851 }
1852 case kMatchPause: {
1853 return s_n_llhttp__internal__n_header_value_connection_1;
1854 }
1855 case kMatchMismatch: {
1856 goto s_n_llhttp__internal__n_header_value_connection_token;
1857 }
1858 }
1859 /* UNREACHABLE */;
1860 abort();
1861 }
1862 case s_n_llhttp__internal__n_header_value_connection_2:
1863 s_n_llhttp__internal__n_header_value_connection_2: {
1864 llparse_match_t match_seq;
1865
1866 if (p == endp) {
1867 return s_n_llhttp__internal__n_header_value_connection_2;
1868 }
1869 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob4, 9);
1870 p = match_seq.current;
1871 switch (match_seq.status) {
1872 case kMatchComplete: {
1873 p++;
1874 goto s_n_llhttp__internal__n_invoke_update_header_state_6;
1875 }
1876 case kMatchPause: {
1877 return s_n_llhttp__internal__n_header_value_connection_2;
1878 }
1879 case kMatchMismatch: {
1880 goto s_n_llhttp__internal__n_header_value_connection_token;
1881 }
1882 }
1883 /* UNREACHABLE */;
1884 abort();
1885 }
1886 case s_n_llhttp__internal__n_header_value_connection_3:
1887 s_n_llhttp__internal__n_header_value_connection_3: {
1888 llparse_match_t match_seq;
1889
1890 if (p == endp) {
1891 return s_n_llhttp__internal__n_header_value_connection_3;
1892 }
1893 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob5, 6);
1894 p = match_seq.current;
1895 switch (match_seq.status) {
1896 case kMatchComplete: {
1897 p++;
1898 goto s_n_llhttp__internal__n_invoke_update_header_state_7;
1899 }
1900 case kMatchPause: {
1901 return s_n_llhttp__internal__n_header_value_connection_3;
1902 }
1903 case kMatchMismatch: {
1904 goto s_n_llhttp__internal__n_header_value_connection_token;
1905 }
1906 }
1907 /* UNREACHABLE */;
1908 abort();
1909 }
1910 case s_n_llhttp__internal__n_header_value_connection:
1911 s_n_llhttp__internal__n_header_value_connection: {
1912 if (p == endp) {
1913 return s_n_llhttp__internal__n_header_value_connection;
1914 }
1915 switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) {
1916 case 9: {
1917 p++;
1918 goto s_n_llhttp__internal__n_header_value_connection;
1919 }
1920 case ' ': {
1921 p++;
1922 goto s_n_llhttp__internal__n_header_value_connection;
1923 }
1924 case 'c': {
1925 p++;
1926 goto s_n_llhttp__internal__n_header_value_connection_1;
1927 }
1928 case 'k': {
1929 p++;
1930 goto s_n_llhttp__internal__n_header_value_connection_2;
1931 }
1932 case 'u': {
1933 p++;
1934 goto s_n_llhttp__internal__n_header_value_connection_3;
1935 }
1936 default: {
1937 goto s_n_llhttp__internal__n_header_value_connection_token;
1938 }
1939 }
1940 /* UNREACHABLE */;
1941 abort();
1942 }
1943 case s_n_llhttp__internal__n_error_27:
1944 s_n_llhttp__internal__n_error_27: {
1945 state->error = 0xb;
1946 state->reason = "Content-Length overflow";
1947 state->error_pos = (const char*) p;
1948 state->_current = (void*) (intptr_t) s_error;
1949 return s_error;
1950 /* UNREACHABLE */;
1951 abort();
1952 }
1953 case s_n_llhttp__internal__n_error_28:
1954 s_n_llhttp__internal__n_error_28: {
1955 state->error = 0xb;
1956 state->reason = "Invalid character in Content-Length";
1957 state->error_pos = (const char*) p;
1958 state->_current = (void*) (intptr_t) s_error;
1959 return s_error;
1960 /* UNREACHABLE */;
1961 abort();
1962 }
1963 case s_n_llhttp__internal__n_header_value_content_length_ws:
1964 s_n_llhttp__internal__n_header_value_content_length_ws: {
1965 if (p == endp) {
1966 return s_n_llhttp__internal__n_header_value_content_length_ws;
1967 }
1968 switch (*p) {
1969 case 10: {
1970 goto s_n_llhttp__internal__n_invoke_or_flags_15;
1971 }
1972 case 13: {
1973 goto s_n_llhttp__internal__n_invoke_or_flags_15;
1974 }
1975 case ' ': {
1976 p++;
1977 goto s_n_llhttp__internal__n_header_value_content_length_ws;
1978 }
1979 default: {
1980 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_6;
1981 }
1982 }
1983 /* UNREACHABLE */;
1984 abort();
1985 }
1986 case s_n_llhttp__internal__n_header_value_content_length:
1987 s_n_llhttp__internal__n_header_value_content_length: {
1988 if (p == endp) {
1989 return s_n_llhttp__internal__n_header_value_content_length;
1990 }
1991 switch (*p) {
1992 case '0': {
1993 p++;
1994 match = 0;
1995 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
1996 }
1997 case '1': {
1998 p++;
1999 match = 1;
2000 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
2001 }
2002 case '2': {
2003 p++;
2004 match = 2;
2005 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
2006 }
2007 case '3': {
2008 p++;
2009 match = 3;
2010 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
2011 }
2012 case '4': {
2013 p++;
2014 match = 4;
2015 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
2016 }
2017 case '5': {
2018 p++;
2019 match = 5;
2020 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
2021 }
2022 case '6': {
2023 p++;
2024 match = 6;
2025 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
2026 }
2027 case '7': {
2028 p++;
2029 match = 7;
2030 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
2031 }
2032 case '8': {
2033 p++;
2034 match = 8;
2035 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
2036 }
2037 case '9': {
2038 p++;
2039 match = 9;
2040 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
2041 }
2042 default: {
2043 goto s_n_llhttp__internal__n_header_value_content_length_ws;
2044 }
2045 }
2046 /* UNREACHABLE */;
2047 abort();
2048 }
2049 case s_n_llhttp__internal__n_error_30:
2050 s_n_llhttp__internal__n_error_30: {
2051 state->error = 0xf;
2052 state->reason = "Invalid `Transfer-Encoding` header value";
2053 state->error_pos = (const char*) p;
2054 state->_current = (void*) (intptr_t) s_error;
2055 return s_error;
2056 /* UNREACHABLE */;
2057 abort();
2058 }
2059 case s_n_llhttp__internal__n_error_29:
2060 s_n_llhttp__internal__n_error_29: {
2061 state->error = 0xf;
2062 state->reason = "Invalid `Transfer-Encoding` header value";
2063 state->error_pos = (const char*) p;
2064 state->_current = (void*) (intptr_t) s_error;
2065 return s_error;
2066 /* UNREACHABLE */;
2067 abort();
2068 }
2069 case s_n_llhttp__internal__n_header_value_te_token_ows:
2070 s_n_llhttp__internal__n_header_value_te_token_ows: {
2071 if (p == endp) {
2072 return s_n_llhttp__internal__n_header_value_te_token_ows;
2073 }
2074 switch (*p) {
2075 case 9: {
2076 p++;
2077 goto s_n_llhttp__internal__n_header_value_te_token_ows;
2078 }
2079 case ' ': {
2080 p++;
2081 goto s_n_llhttp__internal__n_header_value_te_token_ows;
2082 }
2083 default: {
2084 goto s_n_llhttp__internal__n_header_value_te_chunked;
2085 }
2086 }
2087 /* UNREACHABLE */;
2088 abort();
2089 }
2090 case s_n_llhttp__internal__n_header_value:
2091 s_n_llhttp__internal__n_header_value: {
2092 static uint8_t lookup_table[] = {
2093 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
2094 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2095 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2096 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2097 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2098 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2099 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2100 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
2101 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2102 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2103 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2104 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2105 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2106 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2107 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2108 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
2109 };
2110 if (p == endp) {
2111 return s_n_llhttp__internal__n_header_value;
2112 }
2113 #ifdef __SSE4_2__
2114 if (endp - p >= 16) {
2115 __m128i ranges;
2116 __m128i input;
2117 int avail;
2118 int match_len;
2119
2120 /* Load input */
2121 input = _mm_loadu_si128((__m128i const*) p);
2122 ranges = _mm_loadu_si128((__m128i const*) llparse_blob7);
2123
2124 /* Find first character that does not match `ranges` */
2125 match_len = _mm_cmpestri(ranges, 6,
2126 input, 16,
2127 _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES |
2128 _SIDD_NEGATIVE_POLARITY);
2129
2130 if (match_len != 0) {
2131 p += match_len;
2132 goto s_n_llhttp__internal__n_header_value;
2133 }
2134 goto s_n_llhttp__internal__n_header_value_otherwise;
2135 }
2136 #endif /* __SSE4_2__ */
2137 switch (lookup_table[(uint8_t) *p]) {
2138 case 1: {
2139 p++;
2140 goto s_n_llhttp__internal__n_header_value;
2141 }
2142 default: {
2143 goto s_n_llhttp__internal__n_header_value_otherwise;
2144 }
2145 }
2146 /* UNREACHABLE */;
2147 abort();
2148 }
2149 case s_n_llhttp__internal__n_header_value_te_token:
2150 s_n_llhttp__internal__n_header_value_te_token: {
2151 static uint8_t lookup_table[] = {
2152 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
2153 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2154 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
2155 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2156 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2157 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2158 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2159 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
2160 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2161 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2162 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2163 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2164 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2165 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2166 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2167 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
2168 };
2169 if (p == endp) {
2170 return s_n_llhttp__internal__n_header_value_te_token;
2171 }
2172 switch (lookup_table[(uint8_t) *p]) {
2173 case 1: {
2174 p++;
2175 goto s_n_llhttp__internal__n_header_value_te_token;
2176 }
2177 case 2: {
2178 p++;
2179 goto s_n_llhttp__internal__n_header_value_te_token_ows;
2180 }
2181 default: {
2182 goto s_n_llhttp__internal__n_invoke_update_header_state_9;
2183 }
2184 }
2185 /* UNREACHABLE */;
2186 abort();
2187 }
2188 case s_n_llhttp__internal__n_header_value_te_chunked_last:
2189 s_n_llhttp__internal__n_header_value_te_chunked_last: {
2190 if (p == endp) {
2191 return s_n_llhttp__internal__n_header_value_te_chunked_last;
2192 }
2193 switch (*p) {
2194 case 10: {
2195 goto s_n_llhttp__internal__n_invoke_update_header_state_8;
2196 }
2197 case 13: {
2198 goto s_n_llhttp__internal__n_invoke_update_header_state_8;
2199 }
2200 case ' ': {
2201 p++;
2202 goto s_n_llhttp__internal__n_header_value_te_chunked_last;
2203 }
2204 case ',': {
2205 goto s_n_llhttp__internal__n_invoke_load_type_1;
2206 }
2207 default: {
2208 goto s_n_llhttp__internal__n_header_value_te_token;
2209 }
2210 }
2211 /* UNREACHABLE */;
2212 abort();
2213 }
2214 case s_n_llhttp__internal__n_header_value_te_chunked:
2215 s_n_llhttp__internal__n_header_value_te_chunked: {
2216 llparse_match_t match_seq;
2217
2218 if (p == endp) {
2219 return s_n_llhttp__internal__n_header_value_te_chunked;
2220 }
2221 match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob6, 7);
2222 p = match_seq.current;
2223 switch (match_seq.status) {
2224 case kMatchComplete: {
2225 p++;
2226 goto s_n_llhttp__internal__n_header_value_te_chunked_last;
2227 }
2228 case kMatchPause: {
2229 return s_n_llhttp__internal__n_header_value_te_chunked;
2230 }
2231 case kMatchMismatch: {
2232 goto s_n_llhttp__internal__n_header_value_te_token;
2233 }
2234 }
2235 /* UNREACHABLE */;
2236 abort();
2237 }
2238 case s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1:
2239 s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1: {
2240 if (p == endp) {
2241 return s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
2242 }
2243 state->_span_pos0 = (void*) p;
2244 state->_span_cb0 = llhttp__on_header_value;
2245 goto s_n_llhttp__internal__n_invoke_load_header_state_2;
2246 /* UNREACHABLE */;
2247 abort();
2248 }
2249 case s_n_llhttp__internal__n_header_value_discard_ws:
2250 s_n_llhttp__internal__n_header_value_discard_ws: {
2251 if (p == endp) {
2252 return s_n_llhttp__internal__n_header_value_discard_ws;
2253 }
2254 switch (*p) {
2255 case 9: {
2256 p++;
2257 goto s_n_llhttp__internal__n_header_value_discard_ws;
2258 }
2259 case 10: {
2260 p++;
2261 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_3;
2262 }
2263 case 13: {
2264 p++;
2265 goto s_n_llhttp__internal__n_header_value_discard_ws_almost_done;
2266 }
2267 case ' ': {
2268 p++;
2269 goto s_n_llhttp__internal__n_header_value_discard_ws;
2270 }
2271 default: {
2272 goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
2273 }
2274 }
2275 /* UNREACHABLE */;
2276 abort();
2277 }
2278 case s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete:
2279 s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete: {
2280 switch (llhttp__on_header_field_complete(state, p, endp)) {
2281 default:
2282 goto s_n_llhttp__internal__n_header_value_discard_ws;
2283 }
2284 /* UNREACHABLE */;
2285 abort();
2286 }
2287 case s_n_llhttp__internal__n_header_field_general_otherwise:
2288 s_n_llhttp__internal__n_header_field_general_otherwise: {
2289 if (p == endp) {
2290 return s_n_llhttp__internal__n_header_field_general_otherwise;
2291 }
2292 switch (*p) {
2293 case ':': {
2294 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field_2;
2295 }
2296 default: {
2297 goto s_n_llhttp__internal__n_error_31;
2298 }
2299 }
2300 /* UNREACHABLE */;
2301 abort();
2302 }
2303 case s_n_llhttp__internal__n_header_field_general:
2304 s_n_llhttp__internal__n_header_field_general: {
2305 static uint8_t lookup_table[] = {
2306 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2307 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2308 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,
2309 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
2310 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2311 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,
2312 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2313 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,
2314 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2315 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2316 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2317 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2318 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2319 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2320 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2321 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
2322 };
2323 if (p == endp) {
2324 return s_n_llhttp__internal__n_header_field_general;
2325 }
2326 #ifdef __SSE4_2__
2327 if (endp - p >= 16) {
2328 __m128i ranges;
2329 __m128i input;
2330 int avail;
2331 int match_len;
2332
2333 /* Load input */
2334 input = _mm_loadu_si128((__m128i const*) p);
2335 ranges = _mm_loadu_si128((__m128i const*) llparse_blob8);
2336
2337 /* Find first character that does not match `ranges` */
2338 match_len = _mm_cmpestri(ranges, 16,
2339 input, 16,
2340 _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES |
2341 _SIDD_NEGATIVE_POLARITY);
2342
2343 if (match_len != 0) {
2344 p += match_len;
2345 goto s_n_llhttp__internal__n_header_field_general;
2346 }
2347 ranges = _mm_loadu_si128((__m128i const*) llparse_blob9);
2348
2349 /* Find first character that does not match `ranges` */
2350 match_len = _mm_cmpestri(ranges, 2,
2351 input, 16,
2352 _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES |
2353 _SIDD_NEGATIVE_POLARITY);
2354
2355 if (match_len != 0) {
2356 p += match_len;
2357 goto s_n_llhttp__internal__n_header_field_general;
2358 }
2359 goto s_n_llhttp__internal__n_header_field_general_otherwise;
2360 }
2361 #endif /* __SSE4_2__ */
2362 switch (lookup_table[(uint8_t) *p]) {
2363 case 1: {
2364 p++;
2365 goto s_n_llhttp__internal__n_header_field_general;
2366 }
2367 default: {
2368 goto s_n_llhttp__internal__n_header_field_general_otherwise;
2369 }
2370 }
2371 /* UNREACHABLE */;
2372 abort();
2373 }
2374 case s_n_llhttp__internal__n_header_field_colon:
2375 s_n_llhttp__internal__n_header_field_colon: {
2376 if (p == endp) {
2377 return s_n_llhttp__internal__n_header_field_colon;
2378 }
2379 switch (*p) {
2380 case ' ': {
2381 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_2;
2382 }
2383 case ':': {
2384 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field_1;
2385 }
2386 default: {
2387 goto s_n_llhttp__internal__n_invoke_update_header_state_10;
2388 }
2389 }
2390 /* UNREACHABLE */;
2391 abort();
2392 }
2393 case s_n_llhttp__internal__n_header_field_3:
2394 s_n_llhttp__internal__n_header_field_3: {
2395 llparse_match_t match_seq;
2396
2397 if (p == endp) {
2398 return s_n_llhttp__internal__n_header_field_3;
2399 }
2400 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob2, 6);
2401 p = match_seq.current;
2402 switch (match_seq.status) {
2403 case kMatchComplete: {
2404 p++;
2405 match = 1;
2406 goto s_n_llhttp__internal__n_invoke_store_header_state;
2407 }
2408 case kMatchPause: {
2409 return s_n_llhttp__internal__n_header_field_3;
2410 }
2411 case kMatchMismatch: {
2412 goto s_n_llhttp__internal__n_invoke_update_header_state_11;
2413 }
2414 }
2415 /* UNREACHABLE */;
2416 abort();
2417 }
2418 case s_n_llhttp__internal__n_header_field_4:
2419 s_n_llhttp__internal__n_header_field_4: {
2420 llparse_match_t match_seq;
2421
2422 if (p == endp) {
2423 return s_n_llhttp__internal__n_header_field_4;
2424 }
2425 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob10, 10);
2426 p = match_seq.current;
2427 switch (match_seq.status) {
2428 case kMatchComplete: {
2429 p++;
2430 match = 2;
2431 goto s_n_llhttp__internal__n_invoke_store_header_state;
2432 }
2433 case kMatchPause: {
2434 return s_n_llhttp__internal__n_header_field_4;
2435 }
2436 case kMatchMismatch: {
2437 goto s_n_llhttp__internal__n_invoke_update_header_state_11;
2438 }
2439 }
2440 /* UNREACHABLE */;
2441 abort();
2442 }
2443 case s_n_llhttp__internal__n_header_field_2:
2444 s_n_llhttp__internal__n_header_field_2: {
2445 if (p == endp) {
2446 return s_n_llhttp__internal__n_header_field_2;
2447 }
2448 switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) {
2449 case 'n': {
2450 p++;
2451 goto s_n_llhttp__internal__n_header_field_3;
2452 }
2453 case 't': {
2454 p++;
2455 goto s_n_llhttp__internal__n_header_field_4;
2456 }
2457 default: {
2458 goto s_n_llhttp__internal__n_invoke_update_header_state_11;
2459 }
2460 }
2461 /* UNREACHABLE */;
2462 abort();
2463 }
2464 case s_n_llhttp__internal__n_header_field_1:
2465 s_n_llhttp__internal__n_header_field_1: {
2466 llparse_match_t match_seq;
2467
2468 if (p == endp) {
2469 return s_n_llhttp__internal__n_header_field_1;
2470 }
2471 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob1, 2);
2472 p = match_seq.current;
2473 switch (match_seq.status) {
2474 case kMatchComplete: {
2475 p++;
2476 goto s_n_llhttp__internal__n_header_field_2;
2477 }
2478 case kMatchPause: {
2479 return s_n_llhttp__internal__n_header_field_1;
2480 }
2481 case kMatchMismatch: {
2482 goto s_n_llhttp__internal__n_invoke_update_header_state_11;
2483 }
2484 }
2485 /* UNREACHABLE */;
2486 abort();
2487 }
2488 case s_n_llhttp__internal__n_header_field_5:
2489 s_n_llhttp__internal__n_header_field_5: {
2490 llparse_match_t match_seq;
2491
2492 if (p == endp) {
2493 return s_n_llhttp__internal__n_header_field_5;
2494 }
2495 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob11, 15);
2496 p = match_seq.current;
2497 switch (match_seq.status) {
2498 case kMatchComplete: {
2499 p++;
2500 match = 1;
2501 goto s_n_llhttp__internal__n_invoke_store_header_state;
2502 }
2503 case kMatchPause: {
2504 return s_n_llhttp__internal__n_header_field_5;
2505 }
2506 case kMatchMismatch: {
2507 goto s_n_llhttp__internal__n_invoke_update_header_state_11;
2508 }
2509 }
2510 /* UNREACHABLE */;
2511 abort();
2512 }
2513 case s_n_llhttp__internal__n_header_field_6:
2514 s_n_llhttp__internal__n_header_field_6: {
2515 llparse_match_t match_seq;
2516
2517 if (p == endp) {
2518 return s_n_llhttp__internal__n_header_field_6;
2519 }
2520 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob12, 16);
2521 p = match_seq.current;
2522 switch (match_seq.status) {
2523 case kMatchComplete: {
2524 p++;
2525 match = 3;
2526 goto s_n_llhttp__internal__n_invoke_store_header_state;
2527 }
2528 case kMatchPause: {
2529 return s_n_llhttp__internal__n_header_field_6;
2530 }
2531 case kMatchMismatch: {
2532 goto s_n_llhttp__internal__n_invoke_update_header_state_11;
2533 }
2534 }
2535 /* UNREACHABLE */;
2536 abort();
2537 }
2538 case s_n_llhttp__internal__n_header_field_7:
2539 s_n_llhttp__internal__n_header_field_7: {
2540 llparse_match_t match_seq;
2541
2542 if (p == endp) {
2543 return s_n_llhttp__internal__n_header_field_7;
2544 }
2545 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob13, 6);
2546 p = match_seq.current;
2547 switch (match_seq.status) {
2548 case kMatchComplete: {
2549 p++;
2550 match = 4;
2551 goto s_n_llhttp__internal__n_invoke_store_header_state;
2552 }
2553 case kMatchPause: {
2554 return s_n_llhttp__internal__n_header_field_7;
2555 }
2556 case kMatchMismatch: {
2557 goto s_n_llhttp__internal__n_invoke_update_header_state_11;
2558 }
2559 }
2560 /* UNREACHABLE */;
2561 abort();
2562 }
2563 case s_n_llhttp__internal__n_header_field:
2564 s_n_llhttp__internal__n_header_field: {
2565 if (p == endp) {
2566 return s_n_llhttp__internal__n_header_field;
2567 }
2568 switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) {
2569 case 'c': {
2570 p++;
2571 goto s_n_llhttp__internal__n_header_field_1;
2572 }
2573 case 'p': {
2574 p++;
2575 goto s_n_llhttp__internal__n_header_field_5;
2576 }
2577 case 't': {
2578 p++;
2579 goto s_n_llhttp__internal__n_header_field_6;
2580 }
2581 case 'u': {
2582 p++;
2583 goto s_n_llhttp__internal__n_header_field_7;
2584 }
2585 default: {
2586 goto s_n_llhttp__internal__n_invoke_update_header_state_11;
2587 }
2588 }
2589 /* UNREACHABLE */;
2590 abort();
2591 }
2592 case s_n_llhttp__internal__n_span_start_llhttp__on_header_field:
2593 s_n_llhttp__internal__n_span_start_llhttp__on_header_field: {
2594 if (p == endp) {
2595 return s_n_llhttp__internal__n_span_start_llhttp__on_header_field;
2596 }
2597 state->_span_pos0 = (void*) p;
2598 state->_span_cb0 = llhttp__on_header_field;
2599 goto s_n_llhttp__internal__n_header_field;
2600 /* UNREACHABLE */;
2601 abort();
2602 }
2603 case s_n_llhttp__internal__n_header_field_start:
2604 s_n_llhttp__internal__n_header_field_start: {
2605 if (p == endp) {
2606 return s_n_llhttp__internal__n_header_field_start;
2607 }
2608 switch (*p) {
2609 case 10: {
2610 goto s_n_llhttp__internal__n_headers_almost_done;
2611 }
2612 case 13: {
2613 p++;
2614 goto s_n_llhttp__internal__n_headers_almost_done;
2615 }
2616 default: {
2617 goto s_n_llhttp__internal__n_span_start_llhttp__on_header_field;
2618 }
2619 }
2620 /* UNREACHABLE */;
2621 abort();
2622 }
2623 case s_n_llhttp__internal__n_url_to_http_09:
2624 s_n_llhttp__internal__n_url_to_http_09: {
2625 if (p == endp) {
2626 return s_n_llhttp__internal__n_url_to_http_09;
2627 }
2628 switch (*p) {
2629 case 9: {
2630 p++;
2631 goto s_n_llhttp__internal__n_error_1;
2632 }
2633 case 12: {
2634 p++;
2635 goto s_n_llhttp__internal__n_error_1;
2636 }
2637 default: {
2638 goto s_n_llhttp__internal__n_invoke_update_http_major;
2639 }
2640 }
2641 /* UNREACHABLE */;
2642 abort();
2643 }
2644 case s_n_llhttp__internal__n_url_skip_to_http09:
2645 s_n_llhttp__internal__n_url_skip_to_http09: {
2646 if (p == endp) {
2647 return s_n_llhttp__internal__n_url_skip_to_http09;
2648 }
2649 switch (*p) {
2650 case 9: {
2651 p++;
2652 goto s_n_llhttp__internal__n_error_1;
2653 }
2654 case 12: {
2655 p++;
2656 goto s_n_llhttp__internal__n_error_1;
2657 }
2658 default: {
2659 p++;
2660 goto s_n_llhttp__internal__n_url_to_http_09;
2661 }
2662 }
2663 /* UNREACHABLE */;
2664 abort();
2665 }
2666 case s_n_llhttp__internal__n_url_skip_lf_to_http09_1:
2667 s_n_llhttp__internal__n_url_skip_lf_to_http09_1: {
2668 if (p == endp) {
2669 return s_n_llhttp__internal__n_url_skip_lf_to_http09_1;
2670 }
2671 switch (*p) {
2672 case 10: {
2673 p++;
2674 goto s_n_llhttp__internal__n_url_to_http_09;
2675 }
2676 default: {
2677 goto s_n_llhttp__internal__n_error_32;
2678 }
2679 }
2680 /* UNREACHABLE */;
2681 abort();
2682 }
2683 case s_n_llhttp__internal__n_url_skip_lf_to_http09:
2684 s_n_llhttp__internal__n_url_skip_lf_to_http09: {
2685 if (p == endp) {
2686 return s_n_llhttp__internal__n_url_skip_lf_to_http09;
2687 }
2688 switch (*p) {
2689 case 9: {
2690 p++;
2691 goto s_n_llhttp__internal__n_error_1;
2692 }
2693 case 12: {
2694 p++;
2695 goto s_n_llhttp__internal__n_error_1;
2696 }
2697 case 13: {
2698 p++;
2699 goto s_n_llhttp__internal__n_url_skip_lf_to_http09_1;
2700 }
2701 default: {
2702 goto s_n_llhttp__internal__n_error_32;
2703 }
2704 }
2705 /* UNREACHABLE */;
2706 abort();
2707 }
2708 case s_n_llhttp__internal__n_req_pri_upgrade:
2709 s_n_llhttp__internal__n_req_pri_upgrade: {
2710 llparse_match_t match_seq;
2711
2712 if (p == endp) {
2713 return s_n_llhttp__internal__n_req_pri_upgrade;
2714 }
2715 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob15, 10);
2716 p = match_seq.current;
2717 switch (match_seq.status) {
2718 case kMatchComplete: {
2719 p++;
2720 goto s_n_llhttp__internal__n_error_37;
2721 }
2722 case kMatchPause: {
2723 return s_n_llhttp__internal__n_req_pri_upgrade;
2724 }
2725 case kMatchMismatch: {
2726 goto s_n_llhttp__internal__n_error_38;
2727 }
2728 }
2729 /* UNREACHABLE */;
2730 abort();
2731 }
2732 case s_n_llhttp__internal__n_req_http_complete_1:
2733 s_n_llhttp__internal__n_req_http_complete_1: {
2734 if (p == endp) {
2735 return s_n_llhttp__internal__n_req_http_complete_1;
2736 }
2737 switch (*p) {
2738 case 10: {
2739 p++;
2740 goto s_n_llhttp__internal__n_header_field_start;
2741 }
2742 default: {
2743 goto s_n_llhttp__internal__n_error_36;
2744 }
2745 }
2746 /* UNREACHABLE */;
2747 abort();
2748 }
2749 case s_n_llhttp__internal__n_req_http_complete:
2750 s_n_llhttp__internal__n_req_http_complete: {
2751 if (p == endp) {
2752 return s_n_llhttp__internal__n_req_http_complete;
2753 }
2754 switch (*p) {
2755 case 10: {
2756 p++;
2757 goto s_n_llhttp__internal__n_header_field_start;
2758 }
2759 case 13: {
2760 p++;
2761 goto s_n_llhttp__internal__n_req_http_complete_1;
2762 }
2763 default: {
2764 goto s_n_llhttp__internal__n_error_36;
2765 }
2766 }
2767 /* UNREACHABLE */;
2768 abort();
2769 }
2770 case s_n_llhttp__internal__n_req_http_minor:
2771 s_n_llhttp__internal__n_req_http_minor: {
2772 if (p == endp) {
2773 return s_n_llhttp__internal__n_req_http_minor;
2774 }
2775 switch (*p) {
2776 case '0': {
2777 p++;
2778 match = 0;
2779 goto s_n_llhttp__internal__n_invoke_store_http_minor;
2780 }
2781 case '1': {
2782 p++;
2783 match = 1;
2784 goto s_n_llhttp__internal__n_invoke_store_http_minor;
2785 }
2786 case '2': {
2787 p++;
2788 match = 2;
2789 goto s_n_llhttp__internal__n_invoke_store_http_minor;
2790 }
2791 case '3': {
2792 p++;
2793 match = 3;
2794 goto s_n_llhttp__internal__n_invoke_store_http_minor;
2795 }
2796 case '4': {
2797 p++;
2798 match = 4;
2799 goto s_n_llhttp__internal__n_invoke_store_http_minor;
2800 }
2801 case '5': {
2802 p++;
2803 match = 5;
2804 goto s_n_llhttp__internal__n_invoke_store_http_minor;
2805 }
2806 case '6': {
2807 p++;
2808 match = 6;
2809 goto s_n_llhttp__internal__n_invoke_store_http_minor;
2810 }
2811 case '7': {
2812 p++;
2813 match = 7;
2814 goto s_n_llhttp__internal__n_invoke_store_http_minor;
2815 }
2816 case '8': {
2817 p++;
2818 match = 8;
2819 goto s_n_llhttp__internal__n_invoke_store_http_minor;
2820 }
2821 case '9': {
2822 p++;
2823 match = 9;
2824 goto s_n_llhttp__internal__n_invoke_store_http_minor;
2825 }
2826 default: {
2827 goto s_n_llhttp__internal__n_error_41;
2828 }
2829 }
2830 /* UNREACHABLE */;
2831 abort();
2832 }
2833 case s_n_llhttp__internal__n_req_http_dot:
2834 s_n_llhttp__internal__n_req_http_dot: {
2835 if (p == endp) {
2836 return s_n_llhttp__internal__n_req_http_dot;
2837 }
2838 switch (*p) {
2839 case '.': {
2840 p++;
2841 goto s_n_llhttp__internal__n_req_http_minor;
2842 }
2843 default: {
2844 goto s_n_llhttp__internal__n_error_42;
2845 }
2846 }
2847 /* UNREACHABLE */;
2848 abort();
2849 }
2850 case s_n_llhttp__internal__n_req_http_major:
2851 s_n_llhttp__internal__n_req_http_major: {
2852 if (p == endp) {
2853 return s_n_llhttp__internal__n_req_http_major;
2854 }
2855 switch (*p) {
2856 case '0': {
2857 p++;
2858 match = 0;
2859 goto s_n_llhttp__internal__n_invoke_store_http_major;
2860 }
2861 case '1': {
2862 p++;
2863 match = 1;
2864 goto s_n_llhttp__internal__n_invoke_store_http_major;
2865 }
2866 case '2': {
2867 p++;
2868 match = 2;
2869 goto s_n_llhttp__internal__n_invoke_store_http_major;
2870 }
2871 case '3': {
2872 p++;
2873 match = 3;
2874 goto s_n_llhttp__internal__n_invoke_store_http_major;
2875 }
2876 case '4': {
2877 p++;
2878 match = 4;
2879 goto s_n_llhttp__internal__n_invoke_store_http_major;
2880 }
2881 case '5': {
2882 p++;
2883 match = 5;
2884 goto s_n_llhttp__internal__n_invoke_store_http_major;
2885 }
2886 case '6': {
2887 p++;
2888 match = 6;
2889 goto s_n_llhttp__internal__n_invoke_store_http_major;
2890 }
2891 case '7': {
2892 p++;
2893 match = 7;
2894 goto s_n_llhttp__internal__n_invoke_store_http_major;
2895 }
2896 case '8': {
2897 p++;
2898 match = 8;
2899 goto s_n_llhttp__internal__n_invoke_store_http_major;
2900 }
2901 case '9': {
2902 p++;
2903 match = 9;
2904 goto s_n_llhttp__internal__n_invoke_store_http_major;
2905 }
2906 default: {
2907 goto s_n_llhttp__internal__n_error_43;
2908 }
2909 }
2910 /* UNREACHABLE */;
2911 abort();
2912 }
2913 case s_n_llhttp__internal__n_req_http_start_1:
2914 s_n_llhttp__internal__n_req_http_start_1: {
2915 llparse_match_t match_seq;
2916
2917 if (p == endp) {
2918 return s_n_llhttp__internal__n_req_http_start_1;
2919 }
2920 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob14, 4);
2921 p = match_seq.current;
2922 switch (match_seq.status) {
2923 case kMatchComplete: {
2924 p++;
2925 goto s_n_llhttp__internal__n_invoke_load_method;
2926 }
2927 case kMatchPause: {
2928 return s_n_llhttp__internal__n_req_http_start_1;
2929 }
2930 case kMatchMismatch: {
2931 goto s_n_llhttp__internal__n_error_46;
2932 }
2933 }
2934 /* UNREACHABLE */;
2935 abort();
2936 }
2937 case s_n_llhttp__internal__n_req_http_start_2:
2938 s_n_llhttp__internal__n_req_http_start_2: {
2939 llparse_match_t match_seq;
2940
2941 if (p == endp) {
2942 return s_n_llhttp__internal__n_req_http_start_2;
2943 }
2944 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob16, 3);
2945 p = match_seq.current;
2946 switch (match_seq.status) {
2947 case kMatchComplete: {
2948 p++;
2949 goto s_n_llhttp__internal__n_invoke_load_method_2;
2950 }
2951 case kMatchPause: {
2952 return s_n_llhttp__internal__n_req_http_start_2;
2953 }
2954 case kMatchMismatch: {
2955 goto s_n_llhttp__internal__n_error_46;
2956 }
2957 }
2958 /* UNREACHABLE */;
2959 abort();
2960 }
2961 case s_n_llhttp__internal__n_req_http_start_3:
2962 s_n_llhttp__internal__n_req_http_start_3: {
2963 llparse_match_t match_seq;
2964
2965 if (p == endp) {
2966 return s_n_llhttp__internal__n_req_http_start_3;
2967 }
2968 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob17, 4);
2969 p = match_seq.current;
2970 switch (match_seq.status) {
2971 case kMatchComplete: {
2972 p++;
2973 goto s_n_llhttp__internal__n_invoke_load_method_3;
2974 }
2975 case kMatchPause: {
2976 return s_n_llhttp__internal__n_req_http_start_3;
2977 }
2978 case kMatchMismatch: {
2979 goto s_n_llhttp__internal__n_error_46;
2980 }
2981 }
2982 /* UNREACHABLE */;
2983 abort();
2984 }
2985 case s_n_llhttp__internal__n_req_http_start:
2986 s_n_llhttp__internal__n_req_http_start: {
2987 if (p == endp) {
2988 return s_n_llhttp__internal__n_req_http_start;
2989 }
2990 switch (*p) {
2991 case ' ': {
2992 p++;
2993 goto s_n_llhttp__internal__n_req_http_start;
2994 }
2995 case 'H': {
2996 p++;
2997 goto s_n_llhttp__internal__n_req_http_start_1;
2998 }
2999 case 'I': {
3000 p++;
3001 goto s_n_llhttp__internal__n_req_http_start_2;
3002 }
3003 case 'R': {
3004 p++;
3005 goto s_n_llhttp__internal__n_req_http_start_3;
3006 }
3007 default: {
3008 goto s_n_llhttp__internal__n_error_46;
3009 }
3010 }
3011 /* UNREACHABLE */;
3012 abort();
3013 }
3014 case s_n_llhttp__internal__n_url_to_http:
3015 s_n_llhttp__internal__n_url_to_http: {
3016 if (p == endp) {
3017 return s_n_llhttp__internal__n_url_to_http;
3018 }
3019 switch (*p) {
3020 case 9: {
3021 p++;
3022 goto s_n_llhttp__internal__n_error_1;
3023 }
3024 case 12: {
3025 p++;
3026 goto s_n_llhttp__internal__n_error_1;
3027 }
3028 default: {
3029 goto s_n_llhttp__internal__n_invoke_llhttp__on_url_complete_1;
3030 }
3031 }
3032 /* UNREACHABLE */;
3033 abort();
3034 }
3035 case s_n_llhttp__internal__n_url_skip_to_http:
3036 s_n_llhttp__internal__n_url_skip_to_http: {
3037 if (p == endp) {
3038 return s_n_llhttp__internal__n_url_skip_to_http;
3039 }
3040 switch (*p) {
3041 case 9: {
3042 p++;
3043 goto s_n_llhttp__internal__n_error_1;
3044 }
3045 case 12: {
3046 p++;
3047 goto s_n_llhttp__internal__n_error_1;
3048 }
3049 default: {
3050 p++;
3051 goto s_n_llhttp__internal__n_url_to_http;
3052 }
3053 }
3054 /* UNREACHABLE */;
3055 abort();
3056 }
3057 case s_n_llhttp__internal__n_url_fragment:
3058 s_n_llhttp__internal__n_url_fragment: {
3059 static uint8_t lookup_table[] = {
3060 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0,
3061 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3062 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3063 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3064 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3065 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3066 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3067 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0,
3068 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3069 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3070 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3071 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3072 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3073 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3074 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3075 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3076 };
3077 if (p == endp) {
3078 return s_n_llhttp__internal__n_url_fragment;
3079 }
3080 switch (lookup_table[(uint8_t) *p]) {
3081 case 1: {
3082 p++;
3083 goto s_n_llhttp__internal__n_error_1;
3084 }
3085 case 2: {
3086 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_6;
3087 }
3088 case 3: {
3089 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_7;
3090 }
3091 case 4: {
3092 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_8;
3093 }
3094 case 5: {
3095 p++;
3096 goto s_n_llhttp__internal__n_url_fragment;
3097 }
3098 default: {
3099 goto s_n_llhttp__internal__n_error_47;
3100 }
3101 }
3102 /* UNREACHABLE */;
3103 abort();
3104 }
3105 case s_n_llhttp__internal__n_span_end_stub_query_3:
3106 s_n_llhttp__internal__n_span_end_stub_query_3: {
3107 if (p == endp) {
3108 return s_n_llhttp__internal__n_span_end_stub_query_3;
3109 }
3110 p++;
3111 goto s_n_llhttp__internal__n_url_fragment;
3112 /* UNREACHABLE */;
3113 abort();
3114 }
3115 case s_n_llhttp__internal__n_url_query:
3116 s_n_llhttp__internal__n_url_query: {
3117 static uint8_t lookup_table[] = {
3118 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0,
3119 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3120 4, 5, 5, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3121 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3122 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3123 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3124 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3125 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0,
3126 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3127 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3128 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3129 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3130 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3131 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3132 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3133 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3134 };
3135 if (p == endp) {
3136 return s_n_llhttp__internal__n_url_query;
3137 }
3138 switch (lookup_table[(uint8_t) *p]) {
3139 case 1: {
3140 p++;
3141 goto s_n_llhttp__internal__n_error_1;
3142 }
3143 case 2: {
3144 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_9;
3145 }
3146 case 3: {
3147 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_10;
3148 }
3149 case 4: {
3150 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_11;
3151 }
3152 case 5: {
3153 p++;
3154 goto s_n_llhttp__internal__n_url_query;
3155 }
3156 case 6: {
3157 goto s_n_llhttp__internal__n_span_end_stub_query_3;
3158 }
3159 default: {
3160 goto s_n_llhttp__internal__n_error_48;
3161 }
3162 }
3163 /* UNREACHABLE */;
3164 abort();
3165 }
3166 case s_n_llhttp__internal__n_url_query_or_fragment:
3167 s_n_llhttp__internal__n_url_query_or_fragment: {
3168 if (p == endp) {
3169 return s_n_llhttp__internal__n_url_query_or_fragment;
3170 }
3171 switch (*p) {
3172 case 9: {
3173 p++;
3174 goto s_n_llhttp__internal__n_error_1;
3175 }
3176 case 10: {
3177 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_3;
3178 }
3179 case 12: {
3180 p++;
3181 goto s_n_llhttp__internal__n_error_1;
3182 }
3183 case 13: {
3184 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_4;
3185 }
3186 case ' ': {
3187 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_5;
3188 }
3189 case '#': {
3190 p++;
3191 goto s_n_llhttp__internal__n_url_fragment;
3192 }
3193 case '?': {
3194 p++;
3195 goto s_n_llhttp__internal__n_url_query;
3196 }
3197 default: {
3198 goto s_n_llhttp__internal__n_error_49;
3199 }
3200 }
3201 /* UNREACHABLE */;
3202 abort();
3203 }
3204 case s_n_llhttp__internal__n_url_path:
3205 s_n_llhttp__internal__n_url_path: {
3206 static uint8_t lookup_table[] = {
3207 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
3208 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3209 0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3210 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0,
3211 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3212 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3213 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3214 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0,
3215 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3216 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3217 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3218 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3222 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3223 };
3224 if (p == endp) {
3225 return s_n_llhttp__internal__n_url_path;
3226 }
3227 switch (lookup_table[(uint8_t) *p]) {
3228 case 1: {
3229 p++;
3230 goto s_n_llhttp__internal__n_error_1;
3231 }
3232 case 2: {
3233 p++;
3234 goto s_n_llhttp__internal__n_url_path;
3235 }
3236 default: {
3237 goto s_n_llhttp__internal__n_url_query_or_fragment;
3238 }
3239 }
3240 /* UNREACHABLE */;
3241 abort();
3242 }
3243 case s_n_llhttp__internal__n_span_start_stub_path_2:
3244 s_n_llhttp__internal__n_span_start_stub_path_2: {
3245 if (p == endp) {
3246 return s_n_llhttp__internal__n_span_start_stub_path_2;
3247 }
3248 p++;
3249 goto s_n_llhttp__internal__n_url_path;
3250 /* UNREACHABLE */;
3251 abort();
3252 }
3253 case s_n_llhttp__internal__n_span_start_stub_path:
3254 s_n_llhttp__internal__n_span_start_stub_path: {
3255 if (p == endp) {
3256 return s_n_llhttp__internal__n_span_start_stub_path;
3257 }
3258 p++;
3259 goto s_n_llhttp__internal__n_url_path;
3260 /* UNREACHABLE */;
3261 abort();
3262 }
3263 case s_n_llhttp__internal__n_span_start_stub_path_1:
3264 s_n_llhttp__internal__n_span_start_stub_path_1: {
3265 if (p == endp) {
3266 return s_n_llhttp__internal__n_span_start_stub_path_1;
3267 }
3268 p++;
3269 goto s_n_llhttp__internal__n_url_path;
3270 /* UNREACHABLE */;
3271 abort();
3272 }
3273 case s_n_llhttp__internal__n_url_server_with_at:
3274 s_n_llhttp__internal__n_url_server_with_at: {
3275 static uint8_t lookup_table[] = {
3276 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0,
3277 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3278 4, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6,
3279 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 7,
3280 8, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3281 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 5,
3282 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3283 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 5, 0,
3284 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3286 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3287 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3288 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3289 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3290 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3291 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3292 };
3293 if (p == endp) {
3294 return s_n_llhttp__internal__n_url_server_with_at;
3295 }
3296 switch (lookup_table[(uint8_t) *p]) {
3297 case 1: {
3298 p++;
3299 goto s_n_llhttp__internal__n_error_1;
3300 }
3301 case 2: {
3302 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_12;
3303 }
3304 case 3: {
3305 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_13;
3306 }
3307 case 4: {
3308 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_14;
3309 }
3310 case 5: {
3311 p++;
3312 goto s_n_llhttp__internal__n_url_server;
3313 }
3314 case 6: {
3315 goto s_n_llhttp__internal__n_span_start_stub_path_1;
3316 }
3317 case 7: {
3318 p++;
3319 goto s_n_llhttp__internal__n_url_query;
3320 }
3321 case 8: {
3322 p++;
3323 goto s_n_llhttp__internal__n_error_50;
3324 }
3325 default: {
3326 goto s_n_llhttp__internal__n_error_51;
3327 }
3328 }
3329 /* UNREACHABLE */;
3330 abort();
3331 }
3332 case s_n_llhttp__internal__n_url_server:
3333 s_n_llhttp__internal__n_url_server: {
3334 static uint8_t lookup_table[] = {
3335 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0,
3336 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3337 4, 5, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6,
3338 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 7,
3339 8, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3340 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 5, 0, 5,
3341 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3342 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 5, 0,
3343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3344 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3345 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3346 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3348 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3349 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3351 };
3352 if (p == endp) {
3353 return s_n_llhttp__internal__n_url_server;
3354 }
3355 switch (lookup_table[(uint8_t) *p]) {
3356 case 1: {
3357 p++;
3358 goto s_n_llhttp__internal__n_error_1;
3359 }
3360 case 2: {
3361 goto s_n_llhttp__internal__n_span_end_llhttp__on_url;
3362 }
3363 case 3: {
3364 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_1;
3365 }
3366 case 4: {
3367 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_2;
3368 }
3369 case 5: {
3370 p++;
3371 goto s_n_llhttp__internal__n_url_server;
3372 }
3373 case 6: {
3374 goto s_n_llhttp__internal__n_span_start_stub_path;
3375 }
3376 case 7: {
3377 p++;
3378 goto s_n_llhttp__internal__n_url_query;
3379 }
3380 case 8: {
3381 p++;
3382 goto s_n_llhttp__internal__n_url_server_with_at;
3383 }
3384 default: {
3385 goto s_n_llhttp__internal__n_error_52;
3386 }
3387 }
3388 /* UNREACHABLE */;
3389 abort();
3390 }
3391 case s_n_llhttp__internal__n_url_schema_delim_1:
3392 s_n_llhttp__internal__n_url_schema_delim_1: {
3393 if (p == endp) {
3394 return s_n_llhttp__internal__n_url_schema_delim_1;
3395 }
3396 switch (*p) {
3397 case '/': {
3398 p++;
3399 goto s_n_llhttp__internal__n_url_server;
3400 }
3401 default: {
3402 goto s_n_llhttp__internal__n_error_54;
3403 }
3404 }
3405 /* UNREACHABLE */;
3406 abort();
3407 }
3408 case s_n_llhttp__internal__n_url_schema_delim:
3409 s_n_llhttp__internal__n_url_schema_delim: {
3410 if (p == endp) {
3411 return s_n_llhttp__internal__n_url_schema_delim;
3412 }
3413 switch (*p) {
3414 case 9: {
3415 p++;
3416 goto s_n_llhttp__internal__n_error_1;
3417 }
3418 case 10: {
3419 p++;
3420 goto s_n_llhttp__internal__n_error_53;
3421 }
3422 case 12: {
3423 p++;
3424 goto s_n_llhttp__internal__n_error_1;
3425 }
3426 case 13: {
3427 p++;
3428 goto s_n_llhttp__internal__n_error_53;
3429 }
3430 case ' ': {
3431 p++;
3432 goto s_n_llhttp__internal__n_error_53;
3433 }
3434 case '/': {
3435 p++;
3436 goto s_n_llhttp__internal__n_url_schema_delim_1;
3437 }
3438 default: {
3439 goto s_n_llhttp__internal__n_error_54;
3440 }
3441 }
3442 /* UNREACHABLE */;
3443 abort();
3444 }
3445 case s_n_llhttp__internal__n_span_end_stub_schema:
3446 s_n_llhttp__internal__n_span_end_stub_schema: {
3447 if (p == endp) {
3448 return s_n_llhttp__internal__n_span_end_stub_schema;
3449 }
3450 p++;
3451 goto s_n_llhttp__internal__n_url_schema_delim;
3452 /* UNREACHABLE */;
3453 abort();
3454 }
3455 case s_n_llhttp__internal__n_url_schema:
3456 s_n_llhttp__internal__n_url_schema: {
3457 static uint8_t lookup_table[] = {
3458 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 2, 0, 0,
3459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3460 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
3462 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
3463 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0,
3464 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
3465 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0,
3466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3467 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3470 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3471 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3472 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3474 };
3475 if (p == endp) {
3476 return s_n_llhttp__internal__n_url_schema;
3477 }
3478 switch (lookup_table[(uint8_t) *p]) {
3479 case 1: {
3480 p++;
3481 goto s_n_llhttp__internal__n_error_1;
3482 }
3483 case 2: {
3484 p++;
3485 goto s_n_llhttp__internal__n_error_53;
3486 }
3487 case 3: {
3488 goto s_n_llhttp__internal__n_span_end_stub_schema;
3489 }
3490 case 4: {
3491 p++;
3492 goto s_n_llhttp__internal__n_url_schema;
3493 }
3494 default: {
3495 goto s_n_llhttp__internal__n_error_55;
3496 }
3497 }
3498 /* UNREACHABLE */;
3499 abort();
3500 }
3501 case s_n_llhttp__internal__n_url_start:
3502 s_n_llhttp__internal__n_url_start: {
3503 static uint8_t lookup_table[] = {
3504 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 2, 0, 0,
3505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3506 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3,
3507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3508 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
3509 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0,
3510 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
3511 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0,
3512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3520 };
3521 if (p == endp) {
3522 return s_n_llhttp__internal__n_url_start;
3523 }
3524 switch (lookup_table[(uint8_t) *p]) {
3525 case 1: {
3526 p++;
3527 goto s_n_llhttp__internal__n_error_1;
3528 }
3529 case 2: {
3530 p++;
3531 goto s_n_llhttp__internal__n_error_53;
3532 }
3533 case 3: {
3534 goto s_n_llhttp__internal__n_span_start_stub_path_2;
3535 }
3536 case 4: {
3537 goto s_n_llhttp__internal__n_url_schema;
3538 }
3539 default: {
3540 goto s_n_llhttp__internal__n_error_56;
3541 }
3542 }
3543 /* UNREACHABLE */;
3544 abort();
3545 }
3546 case s_n_llhttp__internal__n_span_start_llhttp__on_url_1:
3547 s_n_llhttp__internal__n_span_start_llhttp__on_url_1: {
3548 if (p == endp) {
3549 return s_n_llhttp__internal__n_span_start_llhttp__on_url_1;
3550 }
3551 state->_span_pos0 = (void*) p;
3552 state->_span_cb0 = llhttp__on_url;
3553 goto s_n_llhttp__internal__n_url_start;
3554 /* UNREACHABLE */;
3555 abort();
3556 }
3557 case s_n_llhttp__internal__n_url_entry_normal:
3558 s_n_llhttp__internal__n_url_entry_normal: {
3559 if (p == endp) {
3560 return s_n_llhttp__internal__n_url_entry_normal;
3561 }
3562 switch (*p) {
3563 case 9: {
3564 p++;
3565 goto s_n_llhttp__internal__n_error_1;
3566 }
3567 case 12: {
3568 p++;
3569 goto s_n_llhttp__internal__n_error_1;
3570 }
3571 default: {
3572 goto s_n_llhttp__internal__n_span_start_llhttp__on_url_1;
3573 }
3574 }
3575 /* UNREACHABLE */;
3576 abort();
3577 }
3578 case s_n_llhttp__internal__n_span_start_llhttp__on_url:
3579 s_n_llhttp__internal__n_span_start_llhttp__on_url: {
3580 if (p == endp) {
3581 return s_n_llhttp__internal__n_span_start_llhttp__on_url;
3582 }
3583 state->_span_pos0 = (void*) p;
3584 state->_span_cb0 = llhttp__on_url;
3585 goto s_n_llhttp__internal__n_url_server;
3586 /* UNREACHABLE */;
3587 abort();
3588 }
3589 case s_n_llhttp__internal__n_url_entry_connect:
3590 s_n_llhttp__internal__n_url_entry_connect: {
3591 if (p == endp) {
3592 return s_n_llhttp__internal__n_url_entry_connect;
3593 }
3594 switch (*p) {
3595 case 9: {
3596 p++;
3597 goto s_n_llhttp__internal__n_error_1;
3598 }
3599 case 12: {
3600 p++;
3601 goto s_n_llhttp__internal__n_error_1;
3602 }
3603 default: {
3604 goto s_n_llhttp__internal__n_span_start_llhttp__on_url;
3605 }
3606 }
3607 /* UNREACHABLE */;
3608 abort();
3609 }
3610 case s_n_llhttp__internal__n_req_spaces_before_url:
3611 s_n_llhttp__internal__n_req_spaces_before_url: {
3612 if (p == endp) {
3613 return s_n_llhttp__internal__n_req_spaces_before_url;
3614 }
3615 switch (*p) {
3616 case ' ': {
3617 p++;
3618 goto s_n_llhttp__internal__n_req_spaces_before_url;
3619 }
3620 default: {
3621 goto s_n_llhttp__internal__n_invoke_is_equal_method;
3622 }
3623 }
3624 /* UNREACHABLE */;
3625 abort();
3626 }
3627 case s_n_llhttp__internal__n_req_first_space_before_url:
3628 s_n_llhttp__internal__n_req_first_space_before_url: {
3629 if (p == endp) {
3630 return s_n_llhttp__internal__n_req_first_space_before_url;
3631 }
3632 switch (*p) {
3633 case ' ': {
3634 p++;
3635 goto s_n_llhttp__internal__n_req_spaces_before_url;
3636 }
3637 default: {
3638 goto s_n_llhttp__internal__n_error_57;
3639 }
3640 }
3641 /* UNREACHABLE */;
3642 abort();
3643 }
3644 case s_n_llhttp__internal__n_start_req_2:
3645 s_n_llhttp__internal__n_start_req_2: {
3646 if (p == endp) {
3647 return s_n_llhttp__internal__n_start_req_2;
3648 }
3649 switch (*p) {
3650 case 'L': {
3651 p++;
3652 match = 19;
3653 goto s_n_llhttp__internal__n_invoke_store_method_1;
3654 }
3655 default: {
3656 goto s_n_llhttp__internal__n_error_70;
3657 }
3658 }
3659 /* UNREACHABLE */;
3660 abort();
3661 }
3662 case s_n_llhttp__internal__n_start_req_3:
3663 s_n_llhttp__internal__n_start_req_3: {
3664 llparse_match_t match_seq;
3665
3666 if (p == endp) {
3667 return s_n_llhttp__internal__n_start_req_3;
3668 }
3669 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob18, 6);
3670 p = match_seq.current;
3671 switch (match_seq.status) {
3672 case kMatchComplete: {
3673 p++;
3674 match = 36;
3675 goto s_n_llhttp__internal__n_invoke_store_method_1;
3676 }
3677 case kMatchPause: {
3678 return s_n_llhttp__internal__n_start_req_3;
3679 }
3680 case kMatchMismatch: {
3681 goto s_n_llhttp__internal__n_error_70;
3682 }
3683 }
3684 /* UNREACHABLE */;
3685 abort();
3686 }
3687 case s_n_llhttp__internal__n_start_req_1:
3688 s_n_llhttp__internal__n_start_req_1: {
3689 if (p == endp) {
3690 return s_n_llhttp__internal__n_start_req_1;
3691 }
3692 switch (*p) {
3693 case 'C': {
3694 p++;
3695 goto s_n_llhttp__internal__n_start_req_2;
3696 }
3697 case 'N': {
3698 p++;
3699 goto s_n_llhttp__internal__n_start_req_3;
3700 }
3701 default: {
3702 goto s_n_llhttp__internal__n_error_70;
3703 }
3704 }
3705 /* UNREACHABLE */;
3706 abort();
3707 }
3708 case s_n_llhttp__internal__n_start_req_4:
3709 s_n_llhttp__internal__n_start_req_4: {
3710 llparse_match_t match_seq;
3711
3712 if (p == endp) {
3713 return s_n_llhttp__internal__n_start_req_4;
3714 }
3715 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob19, 3);
3716 p = match_seq.current;
3717 switch (match_seq.status) {
3718 case kMatchComplete: {
3719 p++;
3720 match = 16;
3721 goto s_n_llhttp__internal__n_invoke_store_method_1;
3722 }
3723 case kMatchPause: {
3724 return s_n_llhttp__internal__n_start_req_4;
3725 }
3726 case kMatchMismatch: {
3727 goto s_n_llhttp__internal__n_error_70;
3728 }
3729 }
3730 /* UNREACHABLE */;
3731 abort();
3732 }
3733 case s_n_llhttp__internal__n_start_req_6:
3734 s_n_llhttp__internal__n_start_req_6: {
3735 llparse_match_t match_seq;
3736
3737 if (p == endp) {
3738 return s_n_llhttp__internal__n_start_req_6;
3739 }
3740 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob20, 6);
3741 p = match_seq.current;
3742 switch (match_seq.status) {
3743 case kMatchComplete: {
3744 p++;
3745 match = 22;
3746 goto s_n_llhttp__internal__n_invoke_store_method_1;
3747 }
3748 case kMatchPause: {
3749 return s_n_llhttp__internal__n_start_req_6;
3750 }
3751 case kMatchMismatch: {
3752 goto s_n_llhttp__internal__n_error_70;
3753 }
3754 }
3755 /* UNREACHABLE */;
3756 abort();
3757 }
3758 case s_n_llhttp__internal__n_start_req_8:
3759 s_n_llhttp__internal__n_start_req_8: {
3760 llparse_match_t match_seq;
3761
3762 if (p == endp) {
3763 return s_n_llhttp__internal__n_start_req_8;
3764 }
3765 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob21, 4);
3766 p = match_seq.current;
3767 switch (match_seq.status) {
3768 case kMatchComplete: {
3769 p++;
3770 match = 5;
3771 goto s_n_llhttp__internal__n_invoke_store_method_1;
3772 }
3773 case kMatchPause: {
3774 return s_n_llhttp__internal__n_start_req_8;
3775 }
3776 case kMatchMismatch: {
3777 goto s_n_llhttp__internal__n_error_70;
3778 }
3779 }
3780 /* UNREACHABLE */;
3781 abort();
3782 }
3783 case s_n_llhttp__internal__n_start_req_9:
3784 s_n_llhttp__internal__n_start_req_9: {
3785 if (p == endp) {
3786 return s_n_llhttp__internal__n_start_req_9;
3787 }
3788 switch (*p) {
3789 case 'Y': {
3790 p++;
3791 match = 8;
3792 goto s_n_llhttp__internal__n_invoke_store_method_1;
3793 }
3794 default: {
3795 goto s_n_llhttp__internal__n_error_70;
3796 }
3797 }
3798 /* UNREACHABLE */;
3799 abort();
3800 }
3801 case s_n_llhttp__internal__n_start_req_7:
3802 s_n_llhttp__internal__n_start_req_7: {
3803 if (p == endp) {
3804 return s_n_llhttp__internal__n_start_req_7;
3805 }
3806 switch (*p) {
3807 case 'N': {
3808 p++;
3809 goto s_n_llhttp__internal__n_start_req_8;
3810 }
3811 case 'P': {
3812 p++;
3813 goto s_n_llhttp__internal__n_start_req_9;
3814 }
3815 default: {
3816 goto s_n_llhttp__internal__n_error_70;
3817 }
3818 }
3819 /* UNREACHABLE */;
3820 abort();
3821 }
3822 case s_n_llhttp__internal__n_start_req_5:
3823 s_n_llhttp__internal__n_start_req_5: {
3824 if (p == endp) {
3825 return s_n_llhttp__internal__n_start_req_5;
3826 }
3827 switch (*p) {
3828 case 'H': {
3829 p++;
3830 goto s_n_llhttp__internal__n_start_req_6;
3831 }
3832 case 'O': {
3833 p++;
3834 goto s_n_llhttp__internal__n_start_req_7;
3835 }
3836 default: {
3837 goto s_n_llhttp__internal__n_error_70;
3838 }
3839 }
3840 /* UNREACHABLE */;
3841 abort();
3842 }
3843 case s_n_llhttp__internal__n_start_req_12:
3844 s_n_llhttp__internal__n_start_req_12: {
3845 llparse_match_t match_seq;
3846
3847 if (p == endp) {
3848 return s_n_llhttp__internal__n_start_req_12;
3849 }
3850 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob22, 3);
3851 p = match_seq.current;
3852 switch (match_seq.status) {
3853 case kMatchComplete: {
3854 p++;
3855 match = 0;
3856 goto s_n_llhttp__internal__n_invoke_store_method_1;
3857 }
3858 case kMatchPause: {
3859 return s_n_llhttp__internal__n_start_req_12;
3860 }
3861 case kMatchMismatch: {
3862 goto s_n_llhttp__internal__n_error_70;
3863 }
3864 }
3865 /* UNREACHABLE */;
3866 abort();
3867 }
3868 case s_n_llhttp__internal__n_start_req_13:
3869 s_n_llhttp__internal__n_start_req_13: {
3870 llparse_match_t match_seq;
3871
3872 if (p == endp) {
3873 return s_n_llhttp__internal__n_start_req_13;
3874 }
3875 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob23, 5);
3876 p = match_seq.current;
3877 switch (match_seq.status) {
3878 case kMatchComplete: {
3879 p++;
3880 match = 35;
3881 goto s_n_llhttp__internal__n_invoke_store_method_1;
3882 }
3883 case kMatchPause: {
3884 return s_n_llhttp__internal__n_start_req_13;
3885 }
3886 case kMatchMismatch: {
3887 goto s_n_llhttp__internal__n_error_70;
3888 }
3889 }
3890 /* UNREACHABLE */;
3891 abort();
3892 }
3893 case s_n_llhttp__internal__n_start_req_11:
3894 s_n_llhttp__internal__n_start_req_11: {
3895 if (p == endp) {
3896 return s_n_llhttp__internal__n_start_req_11;
3897 }
3898 switch (*p) {
3899 case 'L': {
3900 p++;
3901 goto s_n_llhttp__internal__n_start_req_12;
3902 }
3903 case 'S': {
3904 p++;
3905 goto s_n_llhttp__internal__n_start_req_13;
3906 }
3907 default: {
3908 goto s_n_llhttp__internal__n_error_70;
3909 }
3910 }
3911 /* UNREACHABLE */;
3912 abort();
3913 }
3914 case s_n_llhttp__internal__n_start_req_10:
3915 s_n_llhttp__internal__n_start_req_10: {
3916 if (p == endp) {
3917 return s_n_llhttp__internal__n_start_req_10;
3918 }
3919 switch (*p) {
3920 case 'E': {
3921 p++;
3922 goto s_n_llhttp__internal__n_start_req_11;
3923 }
3924 default: {
3925 goto s_n_llhttp__internal__n_error_70;
3926 }
3927 }
3928 /* UNREACHABLE */;
3929 abort();
3930 }
3931 case s_n_llhttp__internal__n_start_req_14:
3932 s_n_llhttp__internal__n_start_req_14: {
3933 llparse_match_t match_seq;
3934
3935 if (p == endp) {
3936 return s_n_llhttp__internal__n_start_req_14;
3937 }
3938 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob24, 4);
3939 p = match_seq.current;
3940 switch (match_seq.status) {
3941 case kMatchComplete: {
3942 p++;
3943 match = 45;
3944 goto s_n_llhttp__internal__n_invoke_store_method_1;
3945 }
3946 case kMatchPause: {
3947 return s_n_llhttp__internal__n_start_req_14;
3948 }
3949 case kMatchMismatch: {
3950 goto s_n_llhttp__internal__n_error_70;
3951 }
3952 }
3953 /* UNREACHABLE */;
3954 abort();
3955 }
3956 case s_n_llhttp__internal__n_start_req_17:
3957 s_n_llhttp__internal__n_start_req_17: {
3958 llparse_match_t match_seq;
3959
3960 if (p == endp) {
3961 return s_n_llhttp__internal__n_start_req_17;
3962 }
3963 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob26, 9);
3964 p = match_seq.current;
3965 switch (match_seq.status) {
3966 case kMatchComplete: {
3967 p++;
3968 match = 41;
3969 goto s_n_llhttp__internal__n_invoke_store_method_1;
3970 }
3971 case kMatchPause: {
3972 return s_n_llhttp__internal__n_start_req_17;
3973 }
3974 case kMatchMismatch: {
3975 goto s_n_llhttp__internal__n_error_70;
3976 }
3977 }
3978 /* UNREACHABLE */;
3979 abort();
3980 }
3981 case s_n_llhttp__internal__n_start_req_16:
3982 s_n_llhttp__internal__n_start_req_16: {
3983 if (p == endp) {
3984 return s_n_llhttp__internal__n_start_req_16;
3985 }
3986 switch (*p) {
3987 case '_': {
3988 p++;
3989 goto s_n_llhttp__internal__n_start_req_17;
3990 }
3991 default: {
3992 match = 1;
3993 goto s_n_llhttp__internal__n_invoke_store_method_1;
3994 }
3995 }
3996 /* UNREACHABLE */;
3997 abort();
3998 }
3999 case s_n_llhttp__internal__n_start_req_15:
4000 s_n_llhttp__internal__n_start_req_15: {
4001 llparse_match_t match_seq;
4002
4003 if (p == endp) {
4004 return s_n_llhttp__internal__n_start_req_15;
4005 }
4006 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob25, 2);
4007 p = match_seq.current;
4008 switch (match_seq.status) {
4009 case kMatchComplete: {
4010 p++;
4011 goto s_n_llhttp__internal__n_start_req_16;
4012 }
4013 case kMatchPause: {
4014 return s_n_llhttp__internal__n_start_req_15;
4015 }
4016 case kMatchMismatch: {
4017 goto s_n_llhttp__internal__n_error_70;
4018 }
4019 }
4020 /* UNREACHABLE */;
4021 abort();
4022 }
4023 case s_n_llhttp__internal__n_start_req_18:
4024 s_n_llhttp__internal__n_start_req_18: {
4025 llparse_match_t match_seq;
4026
4027 if (p == endp) {
4028 return s_n_llhttp__internal__n_start_req_18;
4029 }
4030 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob27, 3);
4031 p = match_seq.current;
4032 switch (match_seq.status) {
4033 case kMatchComplete: {
4034 p++;
4035 match = 2;
4036 goto s_n_llhttp__internal__n_invoke_store_method_1;
4037 }
4038 case kMatchPause: {
4039 return s_n_llhttp__internal__n_start_req_18;
4040 }
4041 case kMatchMismatch: {
4042 goto s_n_llhttp__internal__n_error_70;
4043 }
4044 }
4045 /* UNREACHABLE */;
4046 abort();
4047 }
4048 case s_n_llhttp__internal__n_start_req_20:
4049 s_n_llhttp__internal__n_start_req_20: {
4050 llparse_match_t match_seq;
4051
4052 if (p == endp) {
4053 return s_n_llhttp__internal__n_start_req_20;
4054 }
4055 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob28, 2);
4056 p = match_seq.current;
4057 switch (match_seq.status) {
4058 case kMatchComplete: {
4059 p++;
4060 match = 31;
4061 goto s_n_llhttp__internal__n_invoke_store_method_1;
4062 }
4063 case kMatchPause: {
4064 return s_n_llhttp__internal__n_start_req_20;
4065 }
4066 case kMatchMismatch: {
4067 goto s_n_llhttp__internal__n_error_70;
4068 }
4069 }
4070 /* UNREACHABLE */;
4071 abort();
4072 }
4073 case s_n_llhttp__internal__n_start_req_21:
4074 s_n_llhttp__internal__n_start_req_21: {
4075 llparse_match_t match_seq;
4076
4077 if (p == endp) {
4078 return s_n_llhttp__internal__n_start_req_21;
4079 }
4080 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob29, 2);
4081 p = match_seq.current;
4082 switch (match_seq.status) {
4083 case kMatchComplete: {
4084 p++;
4085 match = 9;
4086 goto s_n_llhttp__internal__n_invoke_store_method_1;
4087 }
4088 case kMatchPause: {
4089 return s_n_llhttp__internal__n_start_req_21;
4090 }
4091 case kMatchMismatch: {
4092 goto s_n_llhttp__internal__n_error_70;
4093 }
4094 }
4095 /* UNREACHABLE */;
4096 abort();
4097 }
4098 case s_n_llhttp__internal__n_start_req_19:
4099 s_n_llhttp__internal__n_start_req_19: {
4100 if (p == endp) {
4101 return s_n_llhttp__internal__n_start_req_19;
4102 }
4103 switch (*p) {
4104 case 'I': {
4105 p++;
4106 goto s_n_llhttp__internal__n_start_req_20;
4107 }
4108 case 'O': {
4109 p++;
4110 goto s_n_llhttp__internal__n_start_req_21;
4111 }
4112 default: {
4113 goto s_n_llhttp__internal__n_error_70;
4114 }
4115 }
4116 /* UNREACHABLE */;
4117 abort();
4118 }
4119 case s_n_llhttp__internal__n_start_req_23:
4120 s_n_llhttp__internal__n_start_req_23: {
4121 llparse_match_t match_seq;
4122
4123 if (p == endp) {
4124 return s_n_llhttp__internal__n_start_req_23;
4125 }
4126 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob30, 6);
4127 p = match_seq.current;
4128 switch (match_seq.status) {
4129 case kMatchComplete: {
4130 p++;
4131 match = 24;
4132 goto s_n_llhttp__internal__n_invoke_store_method_1;
4133 }
4134 case kMatchPause: {
4135 return s_n_llhttp__internal__n_start_req_23;
4136 }
4137 case kMatchMismatch: {
4138 goto s_n_llhttp__internal__n_error_70;
4139 }
4140 }
4141 /* UNREACHABLE */;
4142 abort();
4143 }
4144 case s_n_llhttp__internal__n_start_req_24:
4145 s_n_llhttp__internal__n_start_req_24: {
4146 llparse_match_t match_seq;
4147
4148 if (p == endp) {
4149 return s_n_llhttp__internal__n_start_req_24;
4150 }
4151 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob31, 3);
4152 p = match_seq.current;
4153 switch (match_seq.status) {
4154 case kMatchComplete: {
4155 p++;
4156 match = 23;
4157 goto s_n_llhttp__internal__n_invoke_store_method_1;
4158 }
4159 case kMatchPause: {
4160 return s_n_llhttp__internal__n_start_req_24;
4161 }
4162 case kMatchMismatch: {
4163 goto s_n_llhttp__internal__n_error_70;
4164 }
4165 }
4166 /* UNREACHABLE */;
4167 abort();
4168 }
4169 case s_n_llhttp__internal__n_start_req_26:
4170 s_n_llhttp__internal__n_start_req_26: {
4171 llparse_match_t match_seq;
4172
4173 if (p == endp) {
4174 return s_n_llhttp__internal__n_start_req_26;
4175 }
4176 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob32, 7);
4177 p = match_seq.current;
4178 switch (match_seq.status) {
4179 case kMatchComplete: {
4180 p++;
4181 match = 21;
4182 goto s_n_llhttp__internal__n_invoke_store_method_1;
4183 }
4184 case kMatchPause: {
4185 return s_n_llhttp__internal__n_start_req_26;
4186 }
4187 case kMatchMismatch: {
4188 goto s_n_llhttp__internal__n_error_70;
4189 }
4190 }
4191 /* UNREACHABLE */;
4192 abort();
4193 }
4194 case s_n_llhttp__internal__n_start_req_28:
4195 s_n_llhttp__internal__n_start_req_28: {
4196 llparse_match_t match_seq;
4197
4198 if (p == endp) {
4199 return s_n_llhttp__internal__n_start_req_28;
4200 }
4201 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob33, 6);
4202 p = match_seq.current;
4203 switch (match_seq.status) {
4204 case kMatchComplete: {
4205 p++;
4206 match = 30;
4207 goto s_n_llhttp__internal__n_invoke_store_method_1;
4208 }
4209 case kMatchPause: {
4210 return s_n_llhttp__internal__n_start_req_28;
4211 }
4212 case kMatchMismatch: {
4213 goto s_n_llhttp__internal__n_error_70;
4214 }
4215 }
4216 /* UNREACHABLE */;
4217 abort();
4218 }
4219 case s_n_llhttp__internal__n_start_req_29:
4220 s_n_llhttp__internal__n_start_req_29: {
4221 if (p == endp) {
4222 return s_n_llhttp__internal__n_start_req_29;
4223 }
4224 switch (*p) {
4225 case 'L': {
4226 p++;
4227 match = 10;
4228 goto s_n_llhttp__internal__n_invoke_store_method_1;
4229 }
4230 default: {
4231 goto s_n_llhttp__internal__n_error_70;
4232 }
4233 }
4234 /* UNREACHABLE */;
4235 abort();
4236 }
4237 case s_n_llhttp__internal__n_start_req_27:
4238 s_n_llhttp__internal__n_start_req_27: {
4239 if (p == endp) {
4240 return s_n_llhttp__internal__n_start_req_27;
4241 }
4242 switch (*p) {
4243 case 'A': {
4244 p++;
4245 goto s_n_llhttp__internal__n_start_req_28;
4246 }
4247 case 'O': {
4248 p++;
4249 goto s_n_llhttp__internal__n_start_req_29;
4250 }
4251 default: {
4252 goto s_n_llhttp__internal__n_error_70;
4253 }
4254 }
4255 /* UNREACHABLE */;
4256 abort();
4257 }
4258 case s_n_llhttp__internal__n_start_req_25:
4259 s_n_llhttp__internal__n_start_req_25: {
4260 if (p == endp) {
4261 return s_n_llhttp__internal__n_start_req_25;
4262 }
4263 switch (*p) {
4264 case 'A': {
4265 p++;
4266 goto s_n_llhttp__internal__n_start_req_26;
4267 }
4268 case 'C': {
4269 p++;
4270 goto s_n_llhttp__internal__n_start_req_27;
4271 }
4272 default: {
4273 goto s_n_llhttp__internal__n_error_70;
4274 }
4275 }
4276 /* UNREACHABLE */;
4277 abort();
4278 }
4279 case s_n_llhttp__internal__n_start_req_30:
4280 s_n_llhttp__internal__n_start_req_30: {
4281 llparse_match_t match_seq;
4282
4283 if (p == endp) {
4284 return s_n_llhttp__internal__n_start_req_30;
4285 }
4286 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob34, 2);
4287 p = match_seq.current;
4288 switch (match_seq.status) {
4289 case kMatchComplete: {
4290 p++;
4291 match = 11;
4292 goto s_n_llhttp__internal__n_invoke_store_method_1;
4293 }
4294 case kMatchPause: {
4295 return s_n_llhttp__internal__n_start_req_30;
4296 }
4297 case kMatchMismatch: {
4298 goto s_n_llhttp__internal__n_error_70;
4299 }
4300 }
4301 /* UNREACHABLE */;
4302 abort();
4303 }
4304 case s_n_llhttp__internal__n_start_req_22:
4305 s_n_llhttp__internal__n_start_req_22: {
4306 if (p == endp) {
4307 return s_n_llhttp__internal__n_start_req_22;
4308 }
4309 switch (*p) {
4310 case '-': {
4311 p++;
4312 goto s_n_llhttp__internal__n_start_req_23;
4313 }
4314 case 'E': {
4315 p++;
4316 goto s_n_llhttp__internal__n_start_req_24;
4317 }
4318 case 'K': {
4319 p++;
4320 goto s_n_llhttp__internal__n_start_req_25;
4321 }
4322 case 'O': {
4323 p++;
4324 goto s_n_llhttp__internal__n_start_req_30;
4325 }
4326 default: {
4327 goto s_n_llhttp__internal__n_error_70;
4328 }
4329 }
4330 /* UNREACHABLE */;
4331 abort();
4332 }
4333 case s_n_llhttp__internal__n_start_req_31:
4334 s_n_llhttp__internal__n_start_req_31: {
4335 llparse_match_t match_seq;
4336
4337 if (p == endp) {
4338 return s_n_llhttp__internal__n_start_req_31;
4339 }
4340 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob35, 5);
4341 p = match_seq.current;
4342 switch (match_seq.status) {
4343 case kMatchComplete: {
4344 p++;
4345 match = 25;
4346 goto s_n_llhttp__internal__n_invoke_store_method_1;
4347 }
4348 case kMatchPause: {
4349 return s_n_llhttp__internal__n_start_req_31;
4350 }
4351 case kMatchMismatch: {
4352 goto s_n_llhttp__internal__n_error_70;
4353 }
4354 }
4355 /* UNREACHABLE */;
4356 abort();
4357 }
4358 case s_n_llhttp__internal__n_start_req_32:
4359 s_n_llhttp__internal__n_start_req_32: {
4360 llparse_match_t match_seq;
4361
4362 if (p == endp) {
4363 return s_n_llhttp__internal__n_start_req_32;
4364 }
4365 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob36, 6);
4366 p = match_seq.current;
4367 switch (match_seq.status) {
4368 case kMatchComplete: {
4369 p++;
4370 match = 6;
4371 goto s_n_llhttp__internal__n_invoke_store_method_1;
4372 }
4373 case kMatchPause: {
4374 return s_n_llhttp__internal__n_start_req_32;
4375 }
4376 case kMatchMismatch: {
4377 goto s_n_llhttp__internal__n_error_70;
4378 }
4379 }
4380 /* UNREACHABLE */;
4381 abort();
4382 }
4383 case s_n_llhttp__internal__n_start_req_35:
4384 s_n_llhttp__internal__n_start_req_35: {
4385 llparse_match_t match_seq;
4386
4387 if (p == endp) {
4388 return s_n_llhttp__internal__n_start_req_35;
4389 }
4390 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob37, 2);
4391 p = match_seq.current;
4392 switch (match_seq.status) {
4393 case kMatchComplete: {
4394 p++;
4395 match = 28;
4396 goto s_n_llhttp__internal__n_invoke_store_method_1;
4397 }
4398 case kMatchPause: {
4399 return s_n_llhttp__internal__n_start_req_35;
4400 }
4401 case kMatchMismatch: {
4402 goto s_n_llhttp__internal__n_error_70;
4403 }
4404 }
4405 /* UNREACHABLE */;
4406 abort();
4407 }
4408 case s_n_llhttp__internal__n_start_req_36:
4409 s_n_llhttp__internal__n_start_req_36: {
4410 llparse_match_t match_seq;
4411
4412 if (p == endp) {
4413 return s_n_llhttp__internal__n_start_req_36;
4414 }
4415 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob38, 2);
4416 p = match_seq.current;
4417 switch (match_seq.status) {
4418 case kMatchComplete: {
4419 p++;
4420 match = 39;
4421 goto s_n_llhttp__internal__n_invoke_store_method_1;
4422 }
4423 case kMatchPause: {
4424 return s_n_llhttp__internal__n_start_req_36;
4425 }
4426 case kMatchMismatch: {
4427 goto s_n_llhttp__internal__n_error_70;
4428 }
4429 }
4430 /* UNREACHABLE */;
4431 abort();
4432 }
4433 case s_n_llhttp__internal__n_start_req_34:
4434 s_n_llhttp__internal__n_start_req_34: {
4435 if (p == endp) {
4436 return s_n_llhttp__internal__n_start_req_34;
4437 }
4438 switch (*p) {
4439 case 'T': {
4440 p++;
4441 goto s_n_llhttp__internal__n_start_req_35;
4442 }
4443 case 'U': {
4444 p++;
4445 goto s_n_llhttp__internal__n_start_req_36;
4446 }
4447 default: {
4448 goto s_n_llhttp__internal__n_error_70;
4449 }
4450 }
4451 /* UNREACHABLE */;
4452 abort();
4453 }
4454 case s_n_llhttp__internal__n_start_req_37:
4455 s_n_llhttp__internal__n_start_req_37: {
4456 llparse_match_t match_seq;
4457
4458 if (p == endp) {
4459 return s_n_llhttp__internal__n_start_req_37;
4460 }
4461 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob39, 2);
4462 p = match_seq.current;
4463 switch (match_seq.status) {
4464 case kMatchComplete: {
4465 p++;
4466 match = 38;
4467 goto s_n_llhttp__internal__n_invoke_store_method_1;
4468 }
4469 case kMatchPause: {
4470 return s_n_llhttp__internal__n_start_req_37;
4471 }
4472 case kMatchMismatch: {
4473 goto s_n_llhttp__internal__n_error_70;
4474 }
4475 }
4476 /* UNREACHABLE */;
4477 abort();
4478 }
4479 case s_n_llhttp__internal__n_start_req_38:
4480 s_n_llhttp__internal__n_start_req_38: {
4481 llparse_match_t match_seq;
4482
4483 if (p == endp) {
4484 return s_n_llhttp__internal__n_start_req_38;
4485 }
4486 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob40, 2);
4487 p = match_seq.current;
4488 switch (match_seq.status) {
4489 case kMatchComplete: {
4490 p++;
4491 match = 3;
4492 goto s_n_llhttp__internal__n_invoke_store_method_1;
4493 }
4494 case kMatchPause: {
4495 return s_n_llhttp__internal__n_start_req_38;
4496 }
4497 case kMatchMismatch: {
4498 goto s_n_llhttp__internal__n_error_70;
4499 }
4500 }
4501 /* UNREACHABLE */;
4502 abort();
4503 }
4504 case s_n_llhttp__internal__n_start_req_42:
4505 s_n_llhttp__internal__n_start_req_42: {
4506 llparse_match_t match_seq;
4507
4508 if (p == endp) {
4509 return s_n_llhttp__internal__n_start_req_42;
4510 }
4511 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob41, 3);
4512 p = match_seq.current;
4513 switch (match_seq.status) {
4514 case kMatchComplete: {
4515 p++;
4516 match = 12;
4517 goto s_n_llhttp__internal__n_invoke_store_method_1;
4518 }
4519 case kMatchPause: {
4520 return s_n_llhttp__internal__n_start_req_42;
4521 }
4522 case kMatchMismatch: {
4523 goto s_n_llhttp__internal__n_error_70;
4524 }
4525 }
4526 /* UNREACHABLE */;
4527 abort();
4528 }
4529 case s_n_llhttp__internal__n_start_req_43:
4530 s_n_llhttp__internal__n_start_req_43: {
4531 llparse_match_t match_seq;
4532
4533 if (p == endp) {
4534 return s_n_llhttp__internal__n_start_req_43;
4535 }
4536 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob42, 4);
4537 p = match_seq.current;
4538 switch (match_seq.status) {
4539 case kMatchComplete: {
4540 p++;
4541 match = 13;
4542 goto s_n_llhttp__internal__n_invoke_store_method_1;
4543 }
4544 case kMatchPause: {
4545 return s_n_llhttp__internal__n_start_req_43;
4546 }
4547 case kMatchMismatch: {
4548 goto s_n_llhttp__internal__n_error_70;
4549 }
4550 }
4551 /* UNREACHABLE */;
4552 abort();
4553 }
4554 case s_n_llhttp__internal__n_start_req_41:
4555 s_n_llhttp__internal__n_start_req_41: {
4556 if (p == endp) {
4557 return s_n_llhttp__internal__n_start_req_41;
4558 }
4559 switch (*p) {
4560 case 'F': {
4561 p++;
4562 goto s_n_llhttp__internal__n_start_req_42;
4563 }
4564 case 'P': {
4565 p++;
4566 goto s_n_llhttp__internal__n_start_req_43;
4567 }
4568 default: {
4569 goto s_n_llhttp__internal__n_error_70;
4570 }
4571 }
4572 /* UNREACHABLE */;
4573 abort();
4574 }
4575 case s_n_llhttp__internal__n_start_req_40:
4576 s_n_llhttp__internal__n_start_req_40: {
4577 if (p == endp) {
4578 return s_n_llhttp__internal__n_start_req_40;
4579 }
4580 switch (*p) {
4581 case 'P': {
4582 p++;
4583 goto s_n_llhttp__internal__n_start_req_41;
4584 }
4585 default: {
4586 goto s_n_llhttp__internal__n_error_70;
4587 }
4588 }
4589 /* UNREACHABLE */;
4590 abort();
4591 }
4592 case s_n_llhttp__internal__n_start_req_39:
4593 s_n_llhttp__internal__n_start_req_39: {
4594 if (p == endp) {
4595 return s_n_llhttp__internal__n_start_req_39;
4596 }
4597 switch (*p) {
4598 case 'I': {
4599 p++;
4600 match = 34;
4601 goto s_n_llhttp__internal__n_invoke_store_method_1;
4602 }
4603 case 'O': {
4604 p++;
4605 goto s_n_llhttp__internal__n_start_req_40;
4606 }
4607 default: {
4608 goto s_n_llhttp__internal__n_error_70;
4609 }
4610 }
4611 /* UNREACHABLE */;
4612 abort();
4613 }
4614 case s_n_llhttp__internal__n_start_req_45:
4615 s_n_llhttp__internal__n_start_req_45: {
4616 llparse_match_t match_seq;
4617
4618 if (p == endp) {
4619 return s_n_llhttp__internal__n_start_req_45;
4620 }
4621 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob43, 2);
4622 p = match_seq.current;
4623 switch (match_seq.status) {
4624 case kMatchComplete: {
4625 p++;
4626 match = 29;
4627 goto s_n_llhttp__internal__n_invoke_store_method_1;
4628 }
4629 case kMatchPause: {
4630 return s_n_llhttp__internal__n_start_req_45;
4631 }
4632 case kMatchMismatch: {
4633 goto s_n_llhttp__internal__n_error_70;
4634 }
4635 }
4636 /* UNREACHABLE */;
4637 abort();
4638 }
4639 case s_n_llhttp__internal__n_start_req_44:
4640 s_n_llhttp__internal__n_start_req_44: {
4641 if (p == endp) {
4642 return s_n_llhttp__internal__n_start_req_44;
4643 }
4644 switch (*p) {
4645 case 'R': {
4646 p++;
4647 goto s_n_llhttp__internal__n_start_req_45;
4648 }
4649 case 'T': {
4650 p++;
4651 match = 4;
4652 goto s_n_llhttp__internal__n_invoke_store_method_1;
4653 }
4654 default: {
4655 goto s_n_llhttp__internal__n_error_70;
4656 }
4657 }
4658 /* UNREACHABLE */;
4659 abort();
4660 }
4661 case s_n_llhttp__internal__n_start_req_33:
4662 s_n_llhttp__internal__n_start_req_33: {
4663 if (p == endp) {
4664 return s_n_llhttp__internal__n_start_req_33;
4665 }
4666 switch (*p) {
4667 case 'A': {
4668 p++;
4669 goto s_n_llhttp__internal__n_start_req_34;
4670 }
4671 case 'L': {
4672 p++;
4673 goto s_n_llhttp__internal__n_start_req_37;
4674 }
4675 case 'O': {
4676 p++;
4677 goto s_n_llhttp__internal__n_start_req_38;
4678 }
4679 case 'R': {
4680 p++;
4681 goto s_n_llhttp__internal__n_start_req_39;
4682 }
4683 case 'U': {
4684 p++;
4685 goto s_n_llhttp__internal__n_start_req_44;
4686 }
4687 default: {
4688 goto s_n_llhttp__internal__n_error_70;
4689 }
4690 }
4691 /* UNREACHABLE */;
4692 abort();
4693 }
4694 case s_n_llhttp__internal__n_start_req_48:
4695 s_n_llhttp__internal__n_start_req_48: {
4696 llparse_match_t match_seq;
4697
4698 if (p == endp) {
4699 return s_n_llhttp__internal__n_start_req_48;
4700 }
4701 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob44, 3);
4702 p = match_seq.current;
4703 switch (match_seq.status) {
4704 case kMatchComplete: {
4705 p++;
4706 match = 17;
4707 goto s_n_llhttp__internal__n_invoke_store_method_1;
4708 }
4709 case kMatchPause: {
4710 return s_n_llhttp__internal__n_start_req_48;
4711 }
4712 case kMatchMismatch: {
4713 goto s_n_llhttp__internal__n_error_70;
4714 }
4715 }
4716 /* UNREACHABLE */;
4717 abort();
4718 }
4719 case s_n_llhttp__internal__n_start_req_49:
4720 s_n_llhttp__internal__n_start_req_49: {
4721 llparse_match_t match_seq;
4722
4723 if (p == endp) {
4724 return s_n_llhttp__internal__n_start_req_49;
4725 }
4726 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob45, 3);
4727 p = match_seq.current;
4728 switch (match_seq.status) {
4729 case kMatchComplete: {
4730 p++;
4731 match = 44;
4732 goto s_n_llhttp__internal__n_invoke_store_method_1;
4733 }
4734 case kMatchPause: {
4735 return s_n_llhttp__internal__n_start_req_49;
4736 }
4737 case kMatchMismatch: {
4738 goto s_n_llhttp__internal__n_error_70;
4739 }
4740 }
4741 /* UNREACHABLE */;
4742 abort();
4743 }
4744 case s_n_llhttp__internal__n_start_req_50:
4745 s_n_llhttp__internal__n_start_req_50: {
4746 llparse_match_t match_seq;
4747
4748 if (p == endp) {
4749 return s_n_llhttp__internal__n_start_req_50;
4750 }
4751 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob46, 5);
4752 p = match_seq.current;
4753 switch (match_seq.status) {
4754 case kMatchComplete: {
4755 p++;
4756 match = 43;
4757 goto s_n_llhttp__internal__n_invoke_store_method_1;
4758 }
4759 case kMatchPause: {
4760 return s_n_llhttp__internal__n_start_req_50;
4761 }
4762 case kMatchMismatch: {
4763 goto s_n_llhttp__internal__n_error_70;
4764 }
4765 }
4766 /* UNREACHABLE */;
4767 abort();
4768 }
4769 case s_n_llhttp__internal__n_start_req_51:
4770 s_n_llhttp__internal__n_start_req_51: {
4771 llparse_match_t match_seq;
4772
4773 if (p == endp) {
4774 return s_n_llhttp__internal__n_start_req_51;
4775 }
4776 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob47, 3);
4777 p = match_seq.current;
4778 switch (match_seq.status) {
4779 case kMatchComplete: {
4780 p++;
4781 match = 20;
4782 goto s_n_llhttp__internal__n_invoke_store_method_1;
4783 }
4784 case kMatchPause: {
4785 return s_n_llhttp__internal__n_start_req_51;
4786 }
4787 case kMatchMismatch: {
4788 goto s_n_llhttp__internal__n_error_70;
4789 }
4790 }
4791 /* UNREACHABLE */;
4792 abort();
4793 }
4794 case s_n_llhttp__internal__n_start_req_47:
4795 s_n_llhttp__internal__n_start_req_47: {
4796 if (p == endp) {
4797 return s_n_llhttp__internal__n_start_req_47;
4798 }
4799 switch (*p) {
4800 case 'B': {
4801 p++;
4802 goto s_n_llhttp__internal__n_start_req_48;
4803 }
4804 case 'C': {
4805 p++;
4806 goto s_n_llhttp__internal__n_start_req_49;
4807 }
4808 case 'D': {
4809 p++;
4810 goto s_n_llhttp__internal__n_start_req_50;
4811 }
4812 case 'P': {
4813 p++;
4814 goto s_n_llhttp__internal__n_start_req_51;
4815 }
4816 default: {
4817 goto s_n_llhttp__internal__n_error_70;
4818 }
4819 }
4820 /* UNREACHABLE */;
4821 abort();
4822 }
4823 case s_n_llhttp__internal__n_start_req_46:
4824 s_n_llhttp__internal__n_start_req_46: {
4825 if (p == endp) {
4826 return s_n_llhttp__internal__n_start_req_46;
4827 }
4828 switch (*p) {
4829 case 'E': {
4830 p++;
4831 goto s_n_llhttp__internal__n_start_req_47;
4832 }
4833 default: {
4834 goto s_n_llhttp__internal__n_error_70;
4835 }
4836 }
4837 /* UNREACHABLE */;
4838 abort();
4839 }
4840 case s_n_llhttp__internal__n_start_req_54:
4841 s_n_llhttp__internal__n_start_req_54: {
4842 llparse_match_t match_seq;
4843
4844 if (p == endp) {
4845 return s_n_llhttp__internal__n_start_req_54;
4846 }
4847 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob48, 3);
4848 p = match_seq.current;
4849 switch (match_seq.status) {
4850 case kMatchComplete: {
4851 p++;
4852 match = 14;
4853 goto s_n_llhttp__internal__n_invoke_store_method_1;
4854 }
4855 case kMatchPause: {
4856 return s_n_llhttp__internal__n_start_req_54;
4857 }
4858 case kMatchMismatch: {
4859 goto s_n_llhttp__internal__n_error_70;
4860 }
4861 }
4862 /* UNREACHABLE */;
4863 abort();
4864 }
4865 case s_n_llhttp__internal__n_start_req_56:
4866 s_n_llhttp__internal__n_start_req_56: {
4867 if (p == endp) {
4868 return s_n_llhttp__internal__n_start_req_56;
4869 }
4870 switch (*p) {
4871 case 'P': {
4872 p++;
4873 match = 37;
4874 goto s_n_llhttp__internal__n_invoke_store_method_1;
4875 }
4876 default: {
4877 goto s_n_llhttp__internal__n_error_70;
4878 }
4879 }
4880 /* UNREACHABLE */;
4881 abort();
4882 }
4883 case s_n_llhttp__internal__n_start_req_57:
4884 s_n_llhttp__internal__n_start_req_57: {
4885 llparse_match_t match_seq;
4886
4887 if (p == endp) {
4888 return s_n_llhttp__internal__n_start_req_57;
4889 }
4890 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob49, 9);
4891 p = match_seq.current;
4892 switch (match_seq.status) {
4893 case kMatchComplete: {
4894 p++;
4895 match = 42;
4896 goto s_n_llhttp__internal__n_invoke_store_method_1;
4897 }
4898 case kMatchPause: {
4899 return s_n_llhttp__internal__n_start_req_57;
4900 }
4901 case kMatchMismatch: {
4902 goto s_n_llhttp__internal__n_error_70;
4903 }
4904 }
4905 /* UNREACHABLE */;
4906 abort();
4907 }
4908 case s_n_llhttp__internal__n_start_req_55:
4909 s_n_llhttp__internal__n_start_req_55: {
4910 if (p == endp) {
4911 return s_n_llhttp__internal__n_start_req_55;
4912 }
4913 switch (*p) {
4914 case 'U': {
4915 p++;
4916 goto s_n_llhttp__internal__n_start_req_56;
4917 }
4918 case '_': {
4919 p++;
4920 goto s_n_llhttp__internal__n_start_req_57;
4921 }
4922 default: {
4923 goto s_n_llhttp__internal__n_error_70;
4924 }
4925 }
4926 /* UNREACHABLE */;
4927 abort();
4928 }
4929 case s_n_llhttp__internal__n_start_req_53:
4930 s_n_llhttp__internal__n_start_req_53: {
4931 if (p == endp) {
4932 return s_n_llhttp__internal__n_start_req_53;
4933 }
4934 switch (*p) {
4935 case 'A': {
4936 p++;
4937 goto s_n_llhttp__internal__n_start_req_54;
4938 }
4939 case 'T': {
4940 p++;
4941 goto s_n_llhttp__internal__n_start_req_55;
4942 }
4943 default: {
4944 goto s_n_llhttp__internal__n_error_70;
4945 }
4946 }
4947 /* UNREACHABLE */;
4948 abort();
4949 }
4950 case s_n_llhttp__internal__n_start_req_58:
4951 s_n_llhttp__internal__n_start_req_58: {
4952 llparse_match_t match_seq;
4953
4954 if (p == endp) {
4955 return s_n_llhttp__internal__n_start_req_58;
4956 }
4957 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob50, 4);
4958 p = match_seq.current;
4959 switch (match_seq.status) {
4960 case kMatchComplete: {
4961 p++;
4962 match = 33;
4963 goto s_n_llhttp__internal__n_invoke_store_method_1;
4964 }
4965 case kMatchPause: {
4966 return s_n_llhttp__internal__n_start_req_58;
4967 }
4968 case kMatchMismatch: {
4969 goto s_n_llhttp__internal__n_error_70;
4970 }
4971 }
4972 /* UNREACHABLE */;
4973 abort();
4974 }
4975 case s_n_llhttp__internal__n_start_req_59:
4976 s_n_llhttp__internal__n_start_req_59: {
4977 llparse_match_t match_seq;
4978
4979 if (p == endp) {
4980 return s_n_llhttp__internal__n_start_req_59;
4981 }
4982 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob51, 7);
4983 p = match_seq.current;
4984 switch (match_seq.status) {
4985 case kMatchComplete: {
4986 p++;
4987 match = 26;
4988 goto s_n_llhttp__internal__n_invoke_store_method_1;
4989 }
4990 case kMatchPause: {
4991 return s_n_llhttp__internal__n_start_req_59;
4992 }
4993 case kMatchMismatch: {
4994 goto s_n_llhttp__internal__n_error_70;
4995 }
4996 }
4997 /* UNREACHABLE */;
4998 abort();
4999 }
5000 case s_n_llhttp__internal__n_start_req_52:
5001 s_n_llhttp__internal__n_start_req_52: {
5002 if (p == endp) {
5003 return s_n_llhttp__internal__n_start_req_52;
5004 }
5005 switch (*p) {
5006 case 'E': {
5007 p++;
5008 goto s_n_llhttp__internal__n_start_req_53;
5009 }
5010 case 'O': {
5011 p++;
5012 goto s_n_llhttp__internal__n_start_req_58;
5013 }
5014 case 'U': {
5015 p++;
5016 goto s_n_llhttp__internal__n_start_req_59;
5017 }
5018 default: {
5019 goto s_n_llhttp__internal__n_error_70;
5020 }
5021 }
5022 /* UNREACHABLE */;
5023 abort();
5024 }
5025 case s_n_llhttp__internal__n_start_req_61:
5026 s_n_llhttp__internal__n_start_req_61: {
5027 llparse_match_t match_seq;
5028
5029 if (p == endp) {
5030 return s_n_llhttp__internal__n_start_req_61;
5031 }
5032 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob52, 6);
5033 p = match_seq.current;
5034 switch (match_seq.status) {
5035 case kMatchComplete: {
5036 p++;
5037 match = 40;
5038 goto s_n_llhttp__internal__n_invoke_store_method_1;
5039 }
5040 case kMatchPause: {
5041 return s_n_llhttp__internal__n_start_req_61;
5042 }
5043 case kMatchMismatch: {
5044 goto s_n_llhttp__internal__n_error_70;
5045 }
5046 }
5047 /* UNREACHABLE */;
5048 abort();
5049 }
5050 case s_n_llhttp__internal__n_start_req_62:
5051 s_n_llhttp__internal__n_start_req_62: {
5052 llparse_match_t match_seq;
5053
5054 if (p == endp) {
5055 return s_n_llhttp__internal__n_start_req_62;
5056 }
5057 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob53, 3);
5058 p = match_seq.current;
5059 switch (match_seq.status) {
5060 case kMatchComplete: {
5061 p++;
5062 match = 7;
5063 goto s_n_llhttp__internal__n_invoke_store_method_1;
5064 }
5065 case kMatchPause: {
5066 return s_n_llhttp__internal__n_start_req_62;
5067 }
5068 case kMatchMismatch: {
5069 goto s_n_llhttp__internal__n_error_70;
5070 }
5071 }
5072 /* UNREACHABLE */;
5073 abort();
5074 }
5075 case s_n_llhttp__internal__n_start_req_60:
5076 s_n_llhttp__internal__n_start_req_60: {
5077 if (p == endp) {
5078 return s_n_llhttp__internal__n_start_req_60;
5079 }
5080 switch (*p) {
5081 case 'E': {
5082 p++;
5083 goto s_n_llhttp__internal__n_start_req_61;
5084 }
5085 case 'R': {
5086 p++;
5087 goto s_n_llhttp__internal__n_start_req_62;
5088 }
5089 default: {
5090 goto s_n_llhttp__internal__n_error_70;
5091 }
5092 }
5093 /* UNREACHABLE */;
5094 abort();
5095 }
5096 case s_n_llhttp__internal__n_start_req_65:
5097 s_n_llhttp__internal__n_start_req_65: {
5098 llparse_match_t match_seq;
5099
5100 if (p == endp) {
5101 return s_n_llhttp__internal__n_start_req_65;
5102 }
5103 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob54, 3);
5104 p = match_seq.current;
5105 switch (match_seq.status) {
5106 case kMatchComplete: {
5107 p++;
5108 match = 18;
5109 goto s_n_llhttp__internal__n_invoke_store_method_1;
5110 }
5111 case kMatchPause: {
5112 return s_n_llhttp__internal__n_start_req_65;
5113 }
5114 case kMatchMismatch: {
5115 goto s_n_llhttp__internal__n_error_70;
5116 }
5117 }
5118 /* UNREACHABLE */;
5119 abort();
5120 }
5121 case s_n_llhttp__internal__n_start_req_67:
5122 s_n_llhttp__internal__n_start_req_67: {
5123 llparse_match_t match_seq;
5124
5125 if (p == endp) {
5126 return s_n_llhttp__internal__n_start_req_67;
5127 }
5128 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob55, 2);
5129 p = match_seq.current;
5130 switch (match_seq.status) {
5131 case kMatchComplete: {
5132 p++;
5133 match = 32;
5134 goto s_n_llhttp__internal__n_invoke_store_method_1;
5135 }
5136 case kMatchPause: {
5137 return s_n_llhttp__internal__n_start_req_67;
5138 }
5139 case kMatchMismatch: {
5140 goto s_n_llhttp__internal__n_error_70;
5141 }
5142 }
5143 /* UNREACHABLE */;
5144 abort();
5145 }
5146 case s_n_llhttp__internal__n_start_req_68:
5147 s_n_llhttp__internal__n_start_req_68: {
5148 llparse_match_t match_seq;
5149
5150 if (p == endp) {
5151 return s_n_llhttp__internal__n_start_req_68;
5152 }
5153 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob56, 2);
5154 p = match_seq.current;
5155 switch (match_seq.status) {
5156 case kMatchComplete: {
5157 p++;
5158 match = 15;
5159 goto s_n_llhttp__internal__n_invoke_store_method_1;
5160 }
5161 case kMatchPause: {
5162 return s_n_llhttp__internal__n_start_req_68;
5163 }
5164 case kMatchMismatch: {
5165 goto s_n_llhttp__internal__n_error_70;
5166 }
5167 }
5168 /* UNREACHABLE */;
5169 abort();
5170 }
5171 case s_n_llhttp__internal__n_start_req_66:
5172 s_n_llhttp__internal__n_start_req_66: {
5173 if (p == endp) {
5174 return s_n_llhttp__internal__n_start_req_66;
5175 }
5176 switch (*p) {
5177 case 'I': {
5178 p++;
5179 goto s_n_llhttp__internal__n_start_req_67;
5180 }
5181 case 'O': {
5182 p++;
5183 goto s_n_llhttp__internal__n_start_req_68;
5184 }
5185 default: {
5186 goto s_n_llhttp__internal__n_error_70;
5187 }
5188 }
5189 /* UNREACHABLE */;
5190 abort();
5191 }
5192 case s_n_llhttp__internal__n_start_req_69:
5193 s_n_llhttp__internal__n_start_req_69: {
5194 llparse_match_t match_seq;
5195
5196 if (p == endp) {
5197 return s_n_llhttp__internal__n_start_req_69;
5198 }
5199 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob57, 8);
5200 p = match_seq.current;
5201 switch (match_seq.status) {
5202 case kMatchComplete: {
5203 p++;
5204 match = 27;
5205 goto s_n_llhttp__internal__n_invoke_store_method_1;
5206 }
5207 case kMatchPause: {
5208 return s_n_llhttp__internal__n_start_req_69;
5209 }
5210 case kMatchMismatch: {
5211 goto s_n_llhttp__internal__n_error_70;
5212 }
5213 }
5214 /* UNREACHABLE */;
5215 abort();
5216 }
5217 case s_n_llhttp__internal__n_start_req_64:
5218 s_n_llhttp__internal__n_start_req_64: {
5219 if (p == endp) {
5220 return s_n_llhttp__internal__n_start_req_64;
5221 }
5222 switch (*p) {
5223 case 'B': {
5224 p++;
5225 goto s_n_llhttp__internal__n_start_req_65;
5226 }
5227 case 'L': {
5228 p++;
5229 goto s_n_llhttp__internal__n_start_req_66;
5230 }
5231 case 'S': {
5232 p++;
5233 goto s_n_llhttp__internal__n_start_req_69;
5234 }
5235 default: {
5236 goto s_n_llhttp__internal__n_error_70;
5237 }
5238 }
5239 /* UNREACHABLE */;
5240 abort();
5241 }
5242 case s_n_llhttp__internal__n_start_req_63:
5243 s_n_llhttp__internal__n_start_req_63: {
5244 if (p == endp) {
5245 return s_n_llhttp__internal__n_start_req_63;
5246 }
5247 switch (*p) {
5248 case 'N': {
5249 p++;
5250 goto s_n_llhttp__internal__n_start_req_64;
5251 }
5252 default: {
5253 goto s_n_llhttp__internal__n_error_70;
5254 }
5255 }
5256 /* UNREACHABLE */;
5257 abort();
5258 }
5259 case s_n_llhttp__internal__n_start_req:
5260 s_n_llhttp__internal__n_start_req: {
5261 if (p == endp) {
5262 return s_n_llhttp__internal__n_start_req;
5263 }
5264 switch (*p) {
5265 case 'A': {
5266 p++;
5267 goto s_n_llhttp__internal__n_start_req_1;
5268 }
5269 case 'B': {
5270 p++;
5271 goto s_n_llhttp__internal__n_start_req_4;
5272 }
5273 case 'C': {
5274 p++;
5275 goto s_n_llhttp__internal__n_start_req_5;
5276 }
5277 case 'D': {
5278 p++;
5279 goto s_n_llhttp__internal__n_start_req_10;
5280 }
5281 case 'F': {
5282 p++;
5283 goto s_n_llhttp__internal__n_start_req_14;
5284 }
5285 case 'G': {
5286 p++;
5287 goto s_n_llhttp__internal__n_start_req_15;
5288 }
5289 case 'H': {
5290 p++;
5291 goto s_n_llhttp__internal__n_start_req_18;
5292 }
5293 case 'L': {
5294 p++;
5295 goto s_n_llhttp__internal__n_start_req_19;
5296 }
5297 case 'M': {
5298 p++;
5299 goto s_n_llhttp__internal__n_start_req_22;
5300 }
5301 case 'N': {
5302 p++;
5303 goto s_n_llhttp__internal__n_start_req_31;
5304 }
5305 case 'O': {
5306 p++;
5307 goto s_n_llhttp__internal__n_start_req_32;
5308 }
5309 case 'P': {
5310 p++;
5311 goto s_n_llhttp__internal__n_start_req_33;
5312 }
5313 case 'R': {
5314 p++;
5315 goto s_n_llhttp__internal__n_start_req_46;
5316 }
5317 case 'S': {
5318 p++;
5319 goto s_n_llhttp__internal__n_start_req_52;
5320 }
5321 case 'T': {
5322 p++;
5323 goto s_n_llhttp__internal__n_start_req_60;
5324 }
5325 case 'U': {
5326 p++;
5327 goto s_n_llhttp__internal__n_start_req_63;
5328 }
5329 default: {
5330 goto s_n_llhttp__internal__n_error_70;
5331 }
5332 }
5333 /* UNREACHABLE */;
5334 abort();
5335 }
5336 case s_n_llhttp__internal__n_invoke_llhttp__on_status_complete:
5337 s_n_llhttp__internal__n_invoke_llhttp__on_status_complete: {
5338 switch (llhttp__on_status_complete(state, p, endp)) {
5339 default:
5340 goto s_n_llhttp__internal__n_header_field_start;
5341 }
5342 /* UNREACHABLE */;
5343 abort();
5344 }
5345 case s_n_llhttp__internal__n_res_line_almost_done:
5346 s_n_llhttp__internal__n_res_line_almost_done: {
5347 if (p == endp) {
5348 return s_n_llhttp__internal__n_res_line_almost_done;
5349 }
5350 switch (*p) {
5351 case 10: {
5352 p++;
5353 goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete;
5354 }
5355 default: {
5356 goto s_n_llhttp__internal__n_error_61;
5357 }
5358 }
5359 /* UNREACHABLE */;
5360 abort();
5361 }
5362 case s_n_llhttp__internal__n_res_status:
5363 s_n_llhttp__internal__n_res_status: {
5364 if (p == endp) {
5365 return s_n_llhttp__internal__n_res_status;
5366 }
5367 switch (*p) {
5368 case 10: {
5369 goto s_n_llhttp__internal__n_span_end_llhttp__on_status;
5370 }
5371 case 13: {
5372 goto s_n_llhttp__internal__n_span_end_llhttp__on_status_1;
5373 }
5374 default: {
5375 p++;
5376 goto s_n_llhttp__internal__n_res_status;
5377 }
5378 }
5379 /* UNREACHABLE */;
5380 abort();
5381 }
5382 case s_n_llhttp__internal__n_span_start_llhttp__on_status:
5383 s_n_llhttp__internal__n_span_start_llhttp__on_status: {
5384 if (p == endp) {
5385 return s_n_llhttp__internal__n_span_start_llhttp__on_status;
5386 }
5387 state->_span_pos0 = (void*) p;
5388 state->_span_cb0 = llhttp__on_status;
5389 goto s_n_llhttp__internal__n_res_status;
5390 /* UNREACHABLE */;
5391 abort();
5392 }
5393 case s_n_llhttp__internal__n_res_status_start:
5394 s_n_llhttp__internal__n_res_status_start: {
5395 if (p == endp) {
5396 return s_n_llhttp__internal__n_res_status_start;
5397 }
5398 switch (*p) {
5399 case 10: {
5400 p++;
5401 goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete;
5402 }
5403 case 13: {
5404 p++;
5405 goto s_n_llhttp__internal__n_res_line_almost_done;
5406 }
5407 default: {
5408 goto s_n_llhttp__internal__n_span_start_llhttp__on_status;
5409 }
5410 }
5411 /* UNREACHABLE */;
5412 abort();
5413 }
5414 case s_n_llhttp__internal__n_res_status_code_otherwise:
5415 s_n_llhttp__internal__n_res_status_code_otherwise: {
5416 if (p == endp) {
5417 return s_n_llhttp__internal__n_res_status_code_otherwise;
5418 }
5419 switch (*p) {
5420 case 10: {
5421 goto s_n_llhttp__internal__n_res_status_start;
5422 }
5423 case 13: {
5424 goto s_n_llhttp__internal__n_res_status_start;
5425 }
5426 case ' ': {
5427 p++;
5428 goto s_n_llhttp__internal__n_res_status_start;
5429 }
5430 default: {
5431 goto s_n_llhttp__internal__n_error_62;
5432 }
5433 }
5434 /* UNREACHABLE */;
5435 abort();
5436 }
5437 case s_n_llhttp__internal__n_res_status_code:
5438 s_n_llhttp__internal__n_res_status_code: {
5439 if (p == endp) {
5440 return s_n_llhttp__internal__n_res_status_code;
5441 }
5442 switch (*p) {
5443 case '0': {
5444 p++;
5445 match = 0;
5446 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
5447 }
5448 case '1': {
5449 p++;
5450 match = 1;
5451 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
5452 }
5453 case '2': {
5454 p++;
5455 match = 2;
5456 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
5457 }
5458 case '3': {
5459 p++;
5460 match = 3;
5461 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
5462 }
5463 case '4': {
5464 p++;
5465 match = 4;
5466 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
5467 }
5468 case '5': {
5469 p++;
5470 match = 5;
5471 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
5472 }
5473 case '6': {
5474 p++;
5475 match = 6;
5476 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
5477 }
5478 case '7': {
5479 p++;
5480 match = 7;
5481 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
5482 }
5483 case '8': {
5484 p++;
5485 match = 8;
5486 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
5487 }
5488 case '9': {
5489 p++;
5490 match = 9;
5491 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
5492 }
5493 default: {
5494 goto s_n_llhttp__internal__n_res_status_code_otherwise;
5495 }
5496 }
5497 /* UNREACHABLE */;
5498 abort();
5499 }
5500 case s_n_llhttp__internal__n_res_http_end:
5501 s_n_llhttp__internal__n_res_http_end: {
5502 if (p == endp) {
5503 return s_n_llhttp__internal__n_res_http_end;
5504 }
5505 switch (*p) {
5506 case ' ': {
5507 p++;
5508 goto s_n_llhttp__internal__n_invoke_update_status_code;
5509 }
5510 default: {
5511 goto s_n_llhttp__internal__n_error_63;
5512 }
5513 }
5514 /* UNREACHABLE */;
5515 abort();
5516 }
5517 case s_n_llhttp__internal__n_res_http_minor:
5518 s_n_llhttp__internal__n_res_http_minor: {
5519 if (p == endp) {
5520 return s_n_llhttp__internal__n_res_http_minor;
5521 }
5522 switch (*p) {
5523 case '0': {
5524 p++;
5525 match = 0;
5526 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
5527 }
5528 case '1': {
5529 p++;
5530 match = 1;
5531 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
5532 }
5533 case '2': {
5534 p++;
5535 match = 2;
5536 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
5537 }
5538 case '3': {
5539 p++;
5540 match = 3;
5541 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
5542 }
5543 case '4': {
5544 p++;
5545 match = 4;
5546 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
5547 }
5548 case '5': {
5549 p++;
5550 match = 5;
5551 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
5552 }
5553 case '6': {
5554 p++;
5555 match = 6;
5556 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
5557 }
5558 case '7': {
5559 p++;
5560 match = 7;
5561 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
5562 }
5563 case '8': {
5564 p++;
5565 match = 8;
5566 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
5567 }
5568 case '9': {
5569 p++;
5570 match = 9;
5571 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
5572 }
5573 default: {
5574 goto s_n_llhttp__internal__n_error_66;
5575 }
5576 }
5577 /* UNREACHABLE */;
5578 abort();
5579 }
5580 case s_n_llhttp__internal__n_res_http_dot:
5581 s_n_llhttp__internal__n_res_http_dot: {
5582 if (p == endp) {
5583 return s_n_llhttp__internal__n_res_http_dot;
5584 }
5585 switch (*p) {
5586 case '.': {
5587 p++;
5588 goto s_n_llhttp__internal__n_res_http_minor;
5589 }
5590 default: {
5591 goto s_n_llhttp__internal__n_error_67;
5592 }
5593 }
5594 /* UNREACHABLE */;
5595 abort();
5596 }
5597 case s_n_llhttp__internal__n_res_http_major:
5598 s_n_llhttp__internal__n_res_http_major: {
5599 if (p == endp) {
5600 return s_n_llhttp__internal__n_res_http_major;
5601 }
5602 switch (*p) {
5603 case '0': {
5604 p++;
5605 match = 0;
5606 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
5607 }
5608 case '1': {
5609 p++;
5610 match = 1;
5611 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
5612 }
5613 case '2': {
5614 p++;
5615 match = 2;
5616 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
5617 }
5618 case '3': {
5619 p++;
5620 match = 3;
5621 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
5622 }
5623 case '4': {
5624 p++;
5625 match = 4;
5626 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
5627 }
5628 case '5': {
5629 p++;
5630 match = 5;
5631 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
5632 }
5633 case '6': {
5634 p++;
5635 match = 6;
5636 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
5637 }
5638 case '7': {
5639 p++;
5640 match = 7;
5641 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
5642 }
5643 case '8': {
5644 p++;
5645 match = 8;
5646 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
5647 }
5648 case '9': {
5649 p++;
5650 match = 9;
5651 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
5652 }
5653 default: {
5654 goto s_n_llhttp__internal__n_error_68;
5655 }
5656 }
5657 /* UNREACHABLE */;
5658 abort();
5659 }
5660 case s_n_llhttp__internal__n_start_res:
5661 s_n_llhttp__internal__n_start_res: {
5662 llparse_match_t match_seq;
5663
5664 if (p == endp) {
5665 return s_n_llhttp__internal__n_start_res;
5666 }
5667 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob58, 5);
5668 p = match_seq.current;
5669 switch (match_seq.status) {
5670 case kMatchComplete: {
5671 p++;
5672 goto s_n_llhttp__internal__n_res_http_major;
5673 }
5674 case kMatchPause: {
5675 return s_n_llhttp__internal__n_start_res;
5676 }
5677 case kMatchMismatch: {
5678 goto s_n_llhttp__internal__n_error_71;
5679 }
5680 }
5681 /* UNREACHABLE */;
5682 abort();
5683 }
5684 case s_n_llhttp__internal__n_req_or_res_method_2:
5685 s_n_llhttp__internal__n_req_or_res_method_2: {
5686 llparse_match_t match_seq;
5687
5688 if (p == endp) {
5689 return s_n_llhttp__internal__n_req_or_res_method_2;
5690 }
5691 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob59, 2);
5692 p = match_seq.current;
5693 switch (match_seq.status) {
5694 case kMatchComplete: {
5695 p++;
5696 match = 2;
5697 goto s_n_llhttp__internal__n_invoke_store_method;
5698 }
5699 case kMatchPause: {
5700 return s_n_llhttp__internal__n_req_or_res_method_2;
5701 }
5702 case kMatchMismatch: {
5703 goto s_n_llhttp__internal__n_error_69;
5704 }
5705 }
5706 /* UNREACHABLE */;
5707 abort();
5708 }
5709 case s_n_llhttp__internal__n_req_or_res_method_3:
5710 s_n_llhttp__internal__n_req_or_res_method_3: {
5711 llparse_match_t match_seq;
5712
5713 if (p == endp) {
5714 return s_n_llhttp__internal__n_req_or_res_method_3;
5715 }
5716 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob60, 3);
5717 p = match_seq.current;
5718 switch (match_seq.status) {
5719 case kMatchComplete: {
5720 p++;
5721 goto s_n_llhttp__internal__n_invoke_update_type_1;
5722 }
5723 case kMatchPause: {
5724 return s_n_llhttp__internal__n_req_or_res_method_3;
5725 }
5726 case kMatchMismatch: {
5727 goto s_n_llhttp__internal__n_error_69;
5728 }
5729 }
5730 /* UNREACHABLE */;
5731 abort();
5732 }
5733 case s_n_llhttp__internal__n_req_or_res_method_1:
5734 s_n_llhttp__internal__n_req_or_res_method_1: {
5735 if (p == endp) {
5736 return s_n_llhttp__internal__n_req_or_res_method_1;
5737 }
5738 switch (*p) {
5739 case 'E': {
5740 p++;
5741 goto s_n_llhttp__internal__n_req_or_res_method_2;
5742 }
5743 case 'T': {
5744 p++;
5745 goto s_n_llhttp__internal__n_req_or_res_method_3;
5746 }
5747 default: {
5748 goto s_n_llhttp__internal__n_error_69;
5749 }
5750 }
5751 /* UNREACHABLE */;
5752 abort();
5753 }
5754 case s_n_llhttp__internal__n_req_or_res_method:
5755 s_n_llhttp__internal__n_req_or_res_method: {
5756 if (p == endp) {
5757 return s_n_llhttp__internal__n_req_or_res_method;
5758 }
5759 switch (*p) {
5760 case 'H': {
5761 p++;
5762 goto s_n_llhttp__internal__n_req_or_res_method_1;
5763 }
5764 default: {
5765 goto s_n_llhttp__internal__n_error_69;
5766 }
5767 }
5768 /* UNREACHABLE */;
5769 abort();
5770 }
5771 case s_n_llhttp__internal__n_start_req_or_res:
5772 s_n_llhttp__internal__n_start_req_or_res: {
5773 if (p == endp) {
5774 return s_n_llhttp__internal__n_start_req_or_res;
5775 }
5776 switch (*p) {
5777 case 'H': {
5778 goto s_n_llhttp__internal__n_req_or_res_method;
5779 }
5780 default: {
5781 goto s_n_llhttp__internal__n_invoke_update_type_2;
5782 }
5783 }
5784 /* UNREACHABLE */;
5785 abort();
5786 }
5787 case s_n_llhttp__internal__n_invoke_load_type:
5788 s_n_llhttp__internal__n_invoke_load_type: {
5789 switch (llhttp__internal__c_load_type(state, p, endp)) {
5790 case 1:
5791 goto s_n_llhttp__internal__n_start_req;
5792 case 2:
5793 goto s_n_llhttp__internal__n_start_res;
5794 default:
5795 goto s_n_llhttp__internal__n_start_req_or_res;
5796 }
5797 /* UNREACHABLE */;
5798 abort();
5799 }
5800 case s_n_llhttp__internal__n_start:
5801 s_n_llhttp__internal__n_start: {
5802 if (p == endp) {
5803 return s_n_llhttp__internal__n_start;
5804 }
5805 switch (*p) {
5806 case 10: {
5807 p++;
5808 goto s_n_llhttp__internal__n_start;
5809 }
5810 case 13: {
5811 p++;
5812 goto s_n_llhttp__internal__n_start;
5813 }
5814 default: {
5815 goto s_n_llhttp__internal__n_invoke_update_finish;
5816 }
5817 }
5818 /* UNREACHABLE */;
5819 abort();
5820 }
5821 default:
5822 /* UNREACHABLE */
5823 abort();
5824 }
5825 s_n_llhttp__internal__n_error_1: {
5826 state->error = 0x7;
5827 state->reason = "Invalid characters in url (strict mode)";
5828 state->error_pos = (const char*) p;
5829 state->_current = (void*) (intptr_t) s_error;
5830 return s_error;
5831 /* UNREACHABLE */;
5832 abort();
5833 }
5834 s_n_llhttp__internal__n_error_53: {
5835 state->error = 0x7;
5836 state->reason = "Invalid characters in url";
5837 state->error_pos = (const char*) p;
5838 state->_current = (void*) (intptr_t) s_error;
5839 return s_error;
5840 /* UNREACHABLE */;
5841 abort();
5842 }
5843 s_n_llhttp__internal__n_invoke_update_finish_2: {
5844 switch (llhttp__internal__c_update_finish_1(state, p, endp)) {
5845 default:
5846 goto s_n_llhttp__internal__n_start;
5847 }
5848 /* UNREACHABLE */;
5849 abort();
5850 }
5851 s_n_llhttp__internal__n_error_4: {
5852 state->error = 0x5;
5853 state->reason = "Data after `Connection: close`";
5854 state->error_pos = (const char*) p;
5855 state->_current = (void*) (intptr_t) s_error;
5856 return s_error;
5857 /* UNREACHABLE */;
5858 abort();
5859 }
5860 s_n_llhttp__internal__n_invoke_test_lenient_flags: {
5861 switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) {
5862 case 1:
5863 goto s_n_llhttp__internal__n_invoke_update_finish_2;
5864 default:
5865 goto s_n_llhttp__internal__n_closed;
5866 }
5867 /* UNREACHABLE */;
5868 abort();
5869 }
5870 s_n_llhttp__internal__n_invoke_update_finish_1: {
5871 switch (llhttp__internal__c_update_finish_1(state, p, endp)) {
5872 default:
5873 goto s_n_llhttp__internal__n_invoke_test_lenient_flags;
5874 }
5875 /* UNREACHABLE */;
5876 abort();
5877 }
5878 s_n_llhttp__internal__n_pause_5: {
5879 state->error = 0x15;
5880 state->reason = "on_message_complete pause";
5881 state->error_pos = (const char*) p;
5882 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_is_equal_upgrade;
5883 return s_error;
5884 /* UNREACHABLE */;
5885 abort();
5886 }
5887 s_n_llhttp__internal__n_error_14: {
5888 state->error = 0x12;
5889 state->reason = "`on_message_complete` callback error";
5890 state->error_pos = (const char*) p;
5891 state->_current = (void*) (intptr_t) s_error;
5892 return s_error;
5893 /* UNREACHABLE */;
5894 abort();
5895 }
5896 s_n_llhttp__internal__n_pause_7: {
5897 state->error = 0x15;
5898 state->reason = "on_chunk_complete pause";
5899 state->error_pos = (const char*) p;
5900 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
5901 return s_error;
5902 /* UNREACHABLE */;
5903 abort();
5904 }
5905 s_n_llhttp__internal__n_error_17: {
5906 state->error = 0x14;
5907 state->reason = "`on_chunk_complete` callback error";
5908 state->error_pos = (const char*) p;
5909 state->_current = (void*) (intptr_t) s_error;
5910 return s_error;
5911 /* UNREACHABLE */;
5912 abort();
5913 }
5914 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete_1: {
5915 switch (llhttp__on_chunk_complete(state, p, endp)) {
5916 case 0:
5917 goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
5918 case 21:
5919 goto s_n_llhttp__internal__n_pause_7;
5920 default:
5921 goto s_n_llhttp__internal__n_error_17;
5922 }
5923 /* UNREACHABLE */;
5924 abort();
5925 }
5926 s_n_llhttp__internal__n_error_16: {
5927 state->error = 0x4;
5928 state->reason = "Content-Length can't be present with Transfer-Encoding";
5929 state->error_pos = (const char*) p;
5930 state->_current = (void*) (intptr_t) s_error;
5931 return s_error;
5932 /* UNREACHABLE */;
5933 abort();
5934 }
5935 s_n_llhttp__internal__n_pause_2: {
5936 state->error = 0x15;
5937 state->reason = "on_message_complete pause";
5938 state->error_pos = (const char*) p;
5939 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_pause_1;
5940 return s_error;
5941 /* UNREACHABLE */;
5942 abort();
5943 }
5944 s_n_llhttp__internal__n_error_5: {
5945 state->error = 0x12;
5946 state->reason = "`on_message_complete` callback error";
5947 state->error_pos = (const char*) p;
5948 state->_current = (void*) (intptr_t) s_error;
5949 return s_error;
5950 /* UNREACHABLE */;
5951 abort();
5952 }
5953 s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_1: {
5954 switch (llhttp__on_message_complete(state, p, endp)) {
5955 case 0:
5956 goto s_n_llhttp__internal__n_pause_1;
5957 case 21:
5958 goto s_n_llhttp__internal__n_pause_2;
5959 default:
5960 goto s_n_llhttp__internal__n_error_5;
5961 }
5962 /* UNREACHABLE */;
5963 abort();
5964 }
5965 s_n_llhttp__internal__n_error_12: {
5966 state->error = 0xc;
5967 state->reason = "Chunk size overflow";
5968 state->error_pos = (const char*) p;
5969 state->_current = (void*) (intptr_t) s_error;
5970 return s_error;
5971 /* UNREACHABLE */;
5972 abort();
5973 }
5974 s_n_llhttp__internal__n_pause_3: {
5975 state->error = 0x15;
5976 state->reason = "on_chunk_complete pause";
5977 state->error_pos = (const char*) p;
5978 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_update_content_length;
5979 return s_error;
5980 /* UNREACHABLE */;
5981 abort();
5982 }
5983 s_n_llhttp__internal__n_error_7: {
5984 state->error = 0x14;
5985 state->reason = "`on_chunk_complete` callback error";
5986 state->error_pos = (const char*) p;
5987 state->_current = (void*) (intptr_t) s_error;
5988 return s_error;
5989 /* UNREACHABLE */;
5990 abort();
5991 }
5992 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete: {
5993 switch (llhttp__on_chunk_complete(state, p, endp)) {
5994 case 0:
5995 goto s_n_llhttp__internal__n_invoke_update_content_length;
5996 case 21:
5997 goto s_n_llhttp__internal__n_pause_3;
5998 default:
5999 goto s_n_llhttp__internal__n_error_7;
6000 }
6001 /* UNREACHABLE */;
6002 abort();
6003 }
6004 s_n_llhttp__internal__n_error_8: {
6005 state->error = 0x2;
6006 state->reason = "Expected CRLF after chunk";
6007 state->error_pos = (const char*) p;
6008 state->_current = (void*) (intptr_t) s_error;
6009 return s_error;
6010 /* UNREACHABLE */;
6011 abort();
6012 }
6013 s_n_llhttp__internal__n_span_end_llhttp__on_body: {
6014 const unsigned char* start;
6015 int err;
6016
6017 start = state->_span_pos0;
6018 state->_span_pos0 = NULL;
6019 err = llhttp__on_body(state, start, p);
6020 if (err != 0) {
6021 state->error = err;
6022 state->error_pos = (const char*) p;
6023 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_data_almost_done;
6024 return s_error;
6025 }
6026 goto s_n_llhttp__internal__n_chunk_data_almost_done;
6027 /* UNREACHABLE */;
6028 abort();
6029 }
6030 s_n_llhttp__internal__n_invoke_or_flags: {
6031 switch (llhttp__internal__c_or_flags(state, p, endp)) {
6032 default:
6033 goto s_n_llhttp__internal__n_header_field_start;
6034 }
6035 /* UNREACHABLE */;
6036 abort();
6037 }
6038 s_n_llhttp__internal__n_pause_4: {
6039 state->error = 0x15;
6040 state->reason = "on_chunk_header pause";
6041 state->error_pos = (const char*) p;
6042 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_is_equal_content_length;
6043 return s_error;
6044 /* UNREACHABLE */;
6045 abort();
6046 }
6047 s_n_llhttp__internal__n_error_6: {
6048 state->error = 0x13;
6049 state->reason = "`on_chunk_header` callback error";
6050 state->error_pos = (const char*) p;
6051 state->_current = (void*) (intptr_t) s_error;
6052 return s_error;
6053 /* UNREACHABLE */;
6054 abort();
6055 }
6056 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_header: {
6057 switch (llhttp__on_chunk_header(state, p, endp)) {
6058 case 0:
6059 goto s_n_llhttp__internal__n_invoke_is_equal_content_length;
6060 case 21:
6061 goto s_n_llhttp__internal__n_pause_4;
6062 default:
6063 goto s_n_llhttp__internal__n_error_6;
6064 }
6065 /* UNREACHABLE */;
6066 abort();
6067 }
6068 s_n_llhttp__internal__n_error_9: {
6069 state->error = 0x2;
6070 state->reason = "Expected LF after chunk size";
6071 state->error_pos = (const char*) p;
6072 state->_current = (void*) (intptr_t) s_error;
6073 return s_error;
6074 /* UNREACHABLE */;
6075 abort();
6076 }
6077 s_n_llhttp__internal__n_error_10: {
6078 state->error = 0x2;
6079 state->reason = "Invalid character in chunk parameters";
6080 state->error_pos = (const char*) p;
6081 state->_current = (void*) (intptr_t) s_error;
6082 return s_error;
6083 /* UNREACHABLE */;
6084 abort();
6085 }
6086 s_n_llhttp__internal__n_error_11: {
6087 state->error = 0xc;
6088 state->reason = "Invalid character in chunk size";
6089 state->error_pos = (const char*) p;
6090 state->_current = (void*) (intptr_t) s_error;
6091 return s_error;
6092 /* UNREACHABLE */;
6093 abort();
6094 }
6095 s_n_llhttp__internal__n_invoke_mul_add_content_length: {
6096 switch (llhttp__internal__c_mul_add_content_length(state, p, endp, match)) {
6097 case 1:
6098 goto s_n_llhttp__internal__n_error_12;
6099 default:
6100 goto s_n_llhttp__internal__n_chunk_size;
6101 }
6102 /* UNREACHABLE */;
6103 abort();
6104 }
6105 s_n_llhttp__internal__n_error_13: {
6106 state->error = 0xc;
6107 state->reason = "Invalid character in chunk size";
6108 state->error_pos = (const char*) p;
6109 state->_current = (void*) (intptr_t) s_error;
6110 return s_error;
6111 /* UNREACHABLE */;
6112 abort();
6113 }
6114 s_n_llhttp__internal__n_span_end_llhttp__on_body_1: {
6115 const unsigned char* start;
6116 int err;
6117
6118 start = state->_span_pos0;
6119 state->_span_pos0 = NULL;
6120 err = llhttp__on_body(state, start, p);
6121 if (err != 0) {
6122 state->error = err;
6123 state->error_pos = (const char*) p;
6124 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
6125 return s_error;
6126 }
6127 goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
6128 /* UNREACHABLE */;
6129 abort();
6130 }
6131 s_n_llhttp__internal__n_invoke_update_finish_3: {
6132 switch (llhttp__internal__c_update_finish_3(state, p, endp)) {
6133 default:
6134 goto s_n_llhttp__internal__n_span_start_llhttp__on_body_2;
6135 }
6136 /* UNREACHABLE */;
6137 abort();
6138 }
6139 s_n_llhttp__internal__n_error_15: {
6140 state->error = 0xf;
6141 state->reason = "Request has invalid `Transfer-Encoding`";
6142 state->error_pos = (const char*) p;
6143 state->_current = (void*) (intptr_t) s_error;
6144 return s_error;
6145 /* UNREACHABLE */;
6146 abort();
6147 }
6148 s_n_llhttp__internal__n_pause: {
6149 state->error = 0x15;
6150 state->reason = "on_message_complete pause";
6151 state->error_pos = (const char*) p;
6152 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
6153 return s_error;
6154 /* UNREACHABLE */;
6155 abort();
6156 }
6157 s_n_llhttp__internal__n_error_3: {
6158 state->error = 0x12;
6159 state->reason = "`on_message_complete` callback error";
6160 state->error_pos = (const char*) p;
6161 state->_current = (void*) (intptr_t) s_error;
6162 return s_error;
6163 /* UNREACHABLE */;
6164 abort();
6165 }
6166 s_n_llhttp__internal__n_invoke_llhttp__on_message_complete: {
6167 switch (llhttp__on_message_complete(state, p, endp)) {
6168 case 0:
6169 goto s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
6170 case 21:
6171 goto s_n_llhttp__internal__n_pause;
6172 default:
6173 goto s_n_llhttp__internal__n_error_3;
6174 }
6175 /* UNREACHABLE */;
6176 abort();
6177 }
6178 s_n_llhttp__internal__n_invoke_or_flags_1: {
6179 switch (llhttp__internal__c_or_flags_1(state, p, endp)) {
6180 default:
6181 goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
6182 }
6183 /* UNREACHABLE */;
6184 abort();
6185 }
6186 s_n_llhttp__internal__n_invoke_or_flags_2: {
6187 switch (llhttp__internal__c_or_flags_1(state, p, endp)) {
6188 default:
6189 goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
6190 }
6191 /* UNREACHABLE */;
6192 abort();
6193 }
6194 s_n_llhttp__internal__n_invoke_update_upgrade: {
6195 switch (llhttp__internal__c_update_upgrade(state, p, endp)) {
6196 default:
6197 goto s_n_llhttp__internal__n_invoke_or_flags_2;
6198 }
6199 /* UNREACHABLE */;
6200 abort();
6201 }
6202 s_n_llhttp__internal__n_pause_6: {
6203 state->error = 0x15;
6204 state->reason = "Paused by on_headers_complete";
6205 state->error_pos = (const char*) p;
6206 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
6207 return s_error;
6208 /* UNREACHABLE */;
6209 abort();
6210 }
6211 s_n_llhttp__internal__n_error_2: {
6212 state->error = 0x11;
6213 state->reason = "User callback error";
6214 state->error_pos = (const char*) p;
6215 state->_current = (void*) (intptr_t) s_error;
6216 return s_error;
6217 /* UNREACHABLE */;
6218 abort();
6219 }
6220 s_n_llhttp__internal__n_invoke_llhttp__on_headers_complete: {
6221 switch (llhttp__on_headers_complete(state, p, endp)) {
6222 case 0:
6223 goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
6224 case 1:
6225 goto s_n_llhttp__internal__n_invoke_or_flags_1;
6226 case 2:
6227 goto s_n_llhttp__internal__n_invoke_update_upgrade;
6228 case 21:
6229 goto s_n_llhttp__internal__n_pause_6;
6230 default:
6231 goto s_n_llhttp__internal__n_error_2;
6232 }
6233 /* UNREACHABLE */;
6234 abort();
6235 }
6236 s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete: {
6237 switch (llhttp__before_headers_complete(state, p, endp)) {
6238 default:
6239 goto s_n_llhttp__internal__n_invoke_llhttp__on_headers_complete;
6240 }
6241 /* UNREACHABLE */;
6242 abort();
6243 }
6244 s_n_llhttp__internal__n_invoke_test_lenient_flags_1: {
6245 switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
6246 case 0:
6247 goto s_n_llhttp__internal__n_error_16;
6248 default:
6249 goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete;
6250 }
6251 /* UNREACHABLE */;
6252 abort();
6253 }
6254 s_n_llhttp__internal__n_invoke_test_flags_1: {
6255 switch (llhttp__internal__c_test_flags_1(state, p, endp)) {
6256 case 1:
6257 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_1;
6258 default:
6259 goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete;
6260 }
6261 /* UNREACHABLE */;
6262 abort();
6263 }
6264 s_n_llhttp__internal__n_invoke_test_flags: {
6265 switch (llhttp__internal__c_test_flags(state, p, endp)) {
6266 case 1:
6267 goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete_1;
6268 default:
6269 goto s_n_llhttp__internal__n_invoke_test_flags_1;
6270 }
6271 /* UNREACHABLE */;
6272 abort();
6273 }
6274 s_n_llhttp__internal__n_error_18: {
6275 state->error = 0x2;
6276 state->reason = "Expected LF after headers";
6277 state->error_pos = (const char*) p;
6278 state->_current = (void*) (intptr_t) s_error;
6279 return s_error;
6280 /* UNREACHABLE */;
6281 abort();
6282 }
6283 s_n_llhttp__internal__n_span_end_llhttp__on_header_field: {
6284 const unsigned char* start;
6285 int err;
6286
6287 start = state->_span_pos0;
6288 state->_span_pos0 = NULL;
6289 err = llhttp__on_header_field(state, start, p);
6290 if (err != 0) {
6291 state->error = err;
6292 state->error_pos = (const char*) (p + 1);
6293 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_19;
6294 return s_error;
6295 }
6296 p++;
6297 goto s_n_llhttp__internal__n_error_19;
6298 /* UNREACHABLE */;
6299 abort();
6300 }
6301 s_n_llhttp__internal__n_invoke_test_lenient_flags_2: {
6302 switch (llhttp__internal__c_test_lenient_flags_2(state, p, endp)) {
6303 case 1:
6304 goto s_n_llhttp__internal__n_header_field_colon_discard_ws;
6305 default:
6306 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field;
6307 }
6308 /* UNREACHABLE */;
6309 abort();
6310 }
6311 s_n_llhttp__internal__n_error_21: {
6312 state->error = 0xa;
6313 state->reason = "Invalid header value char";
6314 state->error_pos = (const char*) p;
6315 state->_current = (void*) (intptr_t) s_error;
6316 return s_error;
6317 /* UNREACHABLE */;
6318 abort();
6319 }
6320 s_n_llhttp__internal__n_invoke_test_lenient_flags_4: {
6321 switch (llhttp__internal__c_test_lenient_flags_2(state, p, endp)) {
6322 case 1:
6323 goto s_n_llhttp__internal__n_header_value_discard_ws;
6324 default:
6325 goto s_n_llhttp__internal__n_error_21;
6326 }
6327 /* UNREACHABLE */;
6328 abort();
6329 }
6330 s_n_llhttp__internal__n_error_22: {
6331 state->error = 0xb;
6332 state->reason = "Empty Content-Length";
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 s_n_llhttp__internal__n_span_end_llhttp__on_header_value: {
6340 const unsigned char* start;
6341 int err;
6342
6343 start = state->_span_pos0;
6344 state->_span_pos0 = NULL;
6345 err = llhttp__on_header_value(state, start, p);
6346 if (err != 0) {
6347 state->error = err;
6348 state->error_pos = (const char*) p;
6349 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete;
6350 return s_error;
6351 }
6352 goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete;
6353 /* UNREACHABLE */;
6354 abort();
6355 }
6356 s_n_llhttp__internal__n_invoke_update_header_state: {
6357 switch (llhttp__internal__c_update_header_state(state, p, endp)) {
6358 default:
6359 goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value;
6360 }
6361 /* UNREACHABLE */;
6362 abort();
6363 }
6364 s_n_llhttp__internal__n_invoke_or_flags_3: {
6365 switch (llhttp__internal__c_or_flags_3(state, p, endp)) {
6366 default:
6367 goto s_n_llhttp__internal__n_invoke_update_header_state;
6368 }
6369 /* UNREACHABLE */;
6370 abort();
6371 }
6372 s_n_llhttp__internal__n_invoke_or_flags_4: {
6373 switch (llhttp__internal__c_or_flags_4(state, p, endp)) {
6374 default:
6375 goto s_n_llhttp__internal__n_invoke_update_header_state;
6376 }
6377 /* UNREACHABLE */;
6378 abort();
6379 }
6380 s_n_llhttp__internal__n_invoke_or_flags_5: {
6381 switch (llhttp__internal__c_or_flags_5(state, p, endp)) {
6382 default:
6383 goto s_n_llhttp__internal__n_invoke_update_header_state;
6384 }
6385 /* UNREACHABLE */;
6386 abort();
6387 }
6388 s_n_llhttp__internal__n_invoke_or_flags_6: {
6389 switch (llhttp__internal__c_or_flags_6(state, p, endp)) {
6390 default:
6391 goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value;
6392 }
6393 /* UNREACHABLE */;
6394 abort();
6395 }
6396 s_n_llhttp__internal__n_invoke_load_header_state_1: {
6397 switch (llhttp__internal__c_load_header_state(state, p, endp)) {
6398 case 5:
6399 goto s_n_llhttp__internal__n_invoke_or_flags_3;
6400 case 6:
6401 goto s_n_llhttp__internal__n_invoke_or_flags_4;
6402 case 7:
6403 goto s_n_llhttp__internal__n_invoke_or_flags_5;
6404 case 8:
6405 goto s_n_llhttp__internal__n_invoke_or_flags_6;
6406 default:
6407 goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value;
6408 }
6409 /* UNREACHABLE */;
6410 abort();
6411 }
6412 s_n_llhttp__internal__n_invoke_load_header_state: {
6413 switch (llhttp__internal__c_load_header_state(state, p, endp)) {
6414 case 2:
6415 goto s_n_llhttp__internal__n_error_22;
6416 default:
6417 goto s_n_llhttp__internal__n_invoke_load_header_state_1;
6418 }
6419 /* UNREACHABLE */;
6420 abort();
6421 }
6422 s_n_llhttp__internal__n_error_20: {
6423 state->error = 0xa;
6424 state->reason = "Invalid header value char";
6425 state->error_pos = (const char*) p;
6426 state->_current = (void*) (intptr_t) s_error;
6427 return s_error;
6428 /* UNREACHABLE */;
6429 abort();
6430 }
6431 s_n_llhttp__internal__n_invoke_test_lenient_flags_3: {
6432 switch (llhttp__internal__c_test_lenient_flags_2(state, p, endp)) {
6433 case 1:
6434 goto s_n_llhttp__internal__n_header_value_discard_lws;
6435 default:
6436 goto s_n_llhttp__internal__n_error_20;
6437 }
6438 /* UNREACHABLE */;
6439 abort();
6440 }
6441 s_n_llhttp__internal__n_error_23: {
6442 state->error = 0x2;
6443 state->reason = "Expected LF after CR";
6444 state->error_pos = (const char*) p;
6445 state->_current = (void*) (intptr_t) s_error;
6446 return s_error;
6447 /* UNREACHABLE */;
6448 abort();
6449 }
6450 s_n_llhttp__internal__n_invoke_test_lenient_flags_5: {
6451 switch (llhttp__internal__c_test_lenient_flags_2(state, p, endp)) {
6452 case 1:
6453 goto s_n_llhttp__internal__n_header_value_discard_lws;
6454 default:
6455 goto s_n_llhttp__internal__n_error_23;
6456 }
6457 /* UNREACHABLE */;
6458 abort();
6459 }
6460 s_n_llhttp__internal__n_invoke_update_header_state_1: {
6461 switch (llhttp__internal__c_update_header_state_1(state, p, endp)) {
6462 default:
6463 goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
6464 }
6465 /* UNREACHABLE */;
6466 abort();
6467 }
6468 s_n_llhttp__internal__n_invoke_load_header_state_3: {
6469 switch (llhttp__internal__c_load_header_state(state, p, endp)) {
6470 case 8:
6471 goto s_n_llhttp__internal__n_invoke_update_header_state_1;
6472 default:
6473 goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
6474 }
6475 /* UNREACHABLE */;
6476 abort();
6477 }
6478 s_n_llhttp__internal__n_invoke_update_header_state_2: {
6479 switch (llhttp__internal__c_update_header_state(state, p, endp)) {
6480 default:
6481 goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete;
6482 }
6483 /* UNREACHABLE */;
6484 abort();
6485 }
6486 s_n_llhttp__internal__n_invoke_or_flags_7: {
6487 switch (llhttp__internal__c_or_flags_3(state, p, endp)) {
6488 default:
6489 goto s_n_llhttp__internal__n_invoke_update_header_state_2;
6490 }
6491 /* UNREACHABLE */;
6492 abort();
6493 }
6494 s_n_llhttp__internal__n_invoke_or_flags_8: {
6495 switch (llhttp__internal__c_or_flags_4(state, p, endp)) {
6496 default:
6497 goto s_n_llhttp__internal__n_invoke_update_header_state_2;
6498 }
6499 /* UNREACHABLE */;
6500 abort();
6501 }
6502 s_n_llhttp__internal__n_invoke_or_flags_9: {
6503 switch (llhttp__internal__c_or_flags_5(state, p, endp)) {
6504 default:
6505 goto s_n_llhttp__internal__n_invoke_update_header_state_2;
6506 }
6507 /* UNREACHABLE */;
6508 abort();
6509 }
6510 s_n_llhttp__internal__n_invoke_or_flags_10: {
6511 switch (llhttp__internal__c_or_flags_6(state, p, endp)) {
6512 default:
6513 goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete;
6514 }
6515 /* UNREACHABLE */;
6516 abort();
6517 }
6518 s_n_llhttp__internal__n_invoke_load_header_state_4: {
6519 switch (llhttp__internal__c_load_header_state(state, p, endp)) {
6520 case 5:
6521 goto s_n_llhttp__internal__n_invoke_or_flags_7;
6522 case 6:
6523 goto s_n_llhttp__internal__n_invoke_or_flags_8;
6524 case 7:
6525 goto s_n_llhttp__internal__n_invoke_or_flags_9;
6526 case 8:
6527 goto s_n_llhttp__internal__n_invoke_or_flags_10;
6528 default:
6529 goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete;
6530 }
6531 /* UNREACHABLE */;
6532 abort();
6533 }
6534 s_n_llhttp__internal__n_error_24: {
6535 state->error = 0x3;
6536 state->reason = "Missing expected LF after header value";
6537 state->error_pos = (const char*) p;
6538 state->_current = (void*) (intptr_t) s_error;
6539 return s_error;
6540 /* UNREACHABLE */;
6541 abort();
6542 }
6543 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_1: {
6544 const unsigned char* start;
6545 int err;
6546
6547 start = state->_span_pos0;
6548 state->_span_pos0 = NULL;
6549 err = llhttp__on_header_value(state, start, p);
6550 if (err != 0) {
6551 state->error = err;
6552 state->error_pos = (const char*) (p + 1);
6553 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_almost_done;
6554 return s_error;
6555 }
6556 p++;
6557 goto s_n_llhttp__internal__n_header_value_almost_done;
6558 /* UNREACHABLE */;
6559 abort();
6560 }
6561 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_3: {
6562 const unsigned char* start;
6563 int err;
6564
6565 start = state->_span_pos0;
6566 state->_span_pos0 = NULL;
6567 err = llhttp__on_header_value(state, start, p);
6568 if (err != 0) {
6569 state->error = err;
6570 state->error_pos = (const char*) p;
6571 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_almost_done;
6572 return s_error;
6573 }
6574 goto s_n_llhttp__internal__n_header_value_almost_done;
6575 /* UNREACHABLE */;
6576 abort();
6577 }
6578 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_4: {
6579 const unsigned char* start;
6580 int err;
6581
6582 start = state->_span_pos0;
6583 state->_span_pos0 = NULL;
6584 err = llhttp__on_header_value(state, start, p);
6585 if (err != 0) {
6586 state->error = err;
6587 state->error_pos = (const char*) (p + 1);
6588 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_almost_done;
6589 return s_error;
6590 }
6591 p++;
6592 goto s_n_llhttp__internal__n_header_value_almost_done;
6593 /* UNREACHABLE */;
6594 abort();
6595 }
6596 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_2: {
6597 const unsigned char* start;
6598 int err;
6599
6600 start = state->_span_pos0;
6601 state->_span_pos0 = NULL;
6602 err = llhttp__on_header_value(state, start, p);
6603 if (err != 0) {
6604 state->error = err;
6605 state->error_pos = (const char*) p;
6606 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_25;
6607 return s_error;
6608 }
6609 goto s_n_llhttp__internal__n_error_25;
6610 /* UNREACHABLE */;
6611 abort();
6612 }
6613 s_n_llhttp__internal__n_invoke_test_lenient_flags_6: {
6614 switch (llhttp__internal__c_test_lenient_flags_2(state, p, endp)) {
6615 case 1:
6616 goto s_n_llhttp__internal__n_header_value_lenient;
6617 default:
6618 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_2;
6619 }
6620 /* UNREACHABLE */;
6621 abort();
6622 }
6623 s_n_llhttp__internal__n_invoke_update_header_state_4: {
6624 switch (llhttp__internal__c_update_header_state(state, p, endp)) {
6625 default:
6626 goto s_n_llhttp__internal__n_header_value_connection;
6627 }
6628 /* UNREACHABLE */;
6629 abort();
6630 }
6631 s_n_llhttp__internal__n_invoke_or_flags_11: {
6632 switch (llhttp__internal__c_or_flags_3(state, p, endp)) {
6633 default:
6634 goto s_n_llhttp__internal__n_invoke_update_header_state_4;
6635 }
6636 /* UNREACHABLE */;
6637 abort();
6638 }
6639 s_n_llhttp__internal__n_invoke_or_flags_12: {
6640 switch (llhttp__internal__c_or_flags_4(state, p, endp)) {
6641 default:
6642 goto s_n_llhttp__internal__n_invoke_update_header_state_4;
6643 }
6644 /* UNREACHABLE */;
6645 abort();
6646 }
6647 s_n_llhttp__internal__n_invoke_or_flags_13: {
6648 switch (llhttp__internal__c_or_flags_5(state, p, endp)) {
6649 default:
6650 goto s_n_llhttp__internal__n_invoke_update_header_state_4;
6651 }
6652 /* UNREACHABLE */;
6653 abort();
6654 }
6655 s_n_llhttp__internal__n_invoke_or_flags_14: {
6656 switch (llhttp__internal__c_or_flags_6(state, p, endp)) {
6657 default:
6658 goto s_n_llhttp__internal__n_header_value_connection;
6659 }
6660 /* UNREACHABLE */;
6661 abort();
6662 }
6663 s_n_llhttp__internal__n_invoke_load_header_state_5: {
6664 switch (llhttp__internal__c_load_header_state(state, p, endp)) {
6665 case 5:
6666 goto s_n_llhttp__internal__n_invoke_or_flags_11;
6667 case 6:
6668 goto s_n_llhttp__internal__n_invoke_or_flags_12;
6669 case 7:
6670 goto s_n_llhttp__internal__n_invoke_or_flags_13;
6671 case 8:
6672 goto s_n_llhttp__internal__n_invoke_or_flags_14;
6673 default:
6674 goto s_n_llhttp__internal__n_header_value_connection;
6675 }
6676 /* UNREACHABLE */;
6677 abort();
6678 }
6679 s_n_llhttp__internal__n_invoke_update_header_state_5: {
6680 switch (llhttp__internal__c_update_header_state_1(state, p, endp)) {
6681 default:
6682 goto s_n_llhttp__internal__n_header_value_connection_token;
6683 }
6684 /* UNREACHABLE */;
6685 abort();
6686 }
6687 s_n_llhttp__internal__n_invoke_update_header_state_3: {
6688 switch (llhttp__internal__c_update_header_state_3(state, p, endp)) {
6689 default:
6690 goto s_n_llhttp__internal__n_header_value_connection_ws;
6691 }
6692 /* UNREACHABLE */;
6693 abort();
6694 }
6695 s_n_llhttp__internal__n_invoke_update_header_state_6: {
6696 switch (llhttp__internal__c_update_header_state_6(state, p, endp)) {
6697 default:
6698 goto s_n_llhttp__internal__n_header_value_connection_ws;
6699 }
6700 /* UNREACHABLE */;
6701 abort();
6702 }
6703 s_n_llhttp__internal__n_invoke_update_header_state_7: {
6704 switch (llhttp__internal__c_update_header_state_7(state, p, endp)) {
6705 default:
6706 goto s_n_llhttp__internal__n_header_value_connection_ws;
6707 }
6708 /* UNREACHABLE */;
6709 abort();
6710 }
6711 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_5: {
6712 const unsigned char* start;
6713 int err;
6714
6715 start = state->_span_pos0;
6716 state->_span_pos0 = NULL;
6717 err = llhttp__on_header_value(state, start, p);
6718 if (err != 0) {
6719 state->error = err;
6720 state->error_pos = (const char*) p;
6721 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_27;
6722 return s_error;
6723 }
6724 goto s_n_llhttp__internal__n_error_27;
6725 /* UNREACHABLE */;
6726 abort();
6727 }
6728 s_n_llhttp__internal__n_invoke_mul_add_content_length_1: {
6729 switch (llhttp__internal__c_mul_add_content_length_1(state, p, endp, match)) {
6730 case 1:
6731 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_5;
6732 default:
6733 goto s_n_llhttp__internal__n_header_value_content_length;
6734 }
6735 /* UNREACHABLE */;
6736 abort();
6737 }
6738 s_n_llhttp__internal__n_invoke_or_flags_15: {
6739 switch (llhttp__internal__c_or_flags_15(state, p, endp)) {
6740 default:
6741 goto s_n_llhttp__internal__n_header_value_otherwise;
6742 }
6743 /* UNREACHABLE */;
6744 abort();
6745 }
6746 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_6: {
6747 const unsigned char* start;
6748 int err;
6749
6750 start = state->_span_pos0;
6751 state->_span_pos0 = NULL;
6752 err = llhttp__on_header_value(state, start, p);
6753 if (err != 0) {
6754 state->error = err;
6755 state->error_pos = (const char*) p;
6756 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_28;
6757 return s_error;
6758 }
6759 goto s_n_llhttp__internal__n_error_28;
6760 /* UNREACHABLE */;
6761 abort();
6762 }
6763 s_n_llhttp__internal__n_error_26: {
6764 state->error = 0x4;
6765 state->reason = "Duplicate Content-Length";
6766 state->error_pos = (const char*) p;
6767 state->_current = (void*) (intptr_t) s_error;
6768 return s_error;
6769 /* UNREACHABLE */;
6770 abort();
6771 }
6772 s_n_llhttp__internal__n_invoke_test_flags_2: {
6773 switch (llhttp__internal__c_test_flags_2(state, p, endp)) {
6774 case 0:
6775 goto s_n_llhttp__internal__n_header_value_content_length;
6776 default:
6777 goto s_n_llhttp__internal__n_error_26;
6778 }
6779 /* UNREACHABLE */;
6780 abort();
6781 }
6782 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_8: {
6783 const unsigned char* start;
6784 int err;
6785
6786 start = state->_span_pos0;
6787 state->_span_pos0 = NULL;
6788 err = llhttp__on_header_value(state, start, p);
6789 if (err != 0) {
6790 state->error = err;
6791 state->error_pos = (const char*) (p + 1);
6792 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_30;
6793 return s_error;
6794 }
6795 p++;
6796 goto s_n_llhttp__internal__n_error_30;
6797 /* UNREACHABLE */;
6798 abort();
6799 }
6800 s_n_llhttp__internal__n_invoke_update_header_state_8: {
6801 switch (llhttp__internal__c_update_header_state_8(state, p, endp)) {
6802 default:
6803 goto s_n_llhttp__internal__n_header_value_otherwise;
6804 }
6805 /* UNREACHABLE */;
6806 abort();
6807 }
6808 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_7: {
6809 const unsigned char* start;
6810 int err;
6811
6812 start = state->_span_pos0;
6813 state->_span_pos0 = NULL;
6814 err = llhttp__on_header_value(state, start, p);
6815 if (err != 0) {
6816 state->error = err;
6817 state->error_pos = (const char*) (p + 1);
6818 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_29;
6819 return s_error;
6820 }
6821 p++;
6822 goto s_n_llhttp__internal__n_error_29;
6823 /* UNREACHABLE */;
6824 abort();
6825 }
6826 s_n_llhttp__internal__n_invoke_test_lenient_flags_7: {
6827 switch (llhttp__internal__c_test_lenient_flags_7(state, p, endp)) {
6828 case 0:
6829 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_7;
6830 default:
6831 goto s_n_llhttp__internal__n_header_value_te_chunked;
6832 }
6833 /* UNREACHABLE */;
6834 abort();
6835 }
6836 s_n_llhttp__internal__n_invoke_load_type_1: {
6837 switch (llhttp__internal__c_load_type(state, p, endp)) {
6838 case 1:
6839 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_7;
6840 default:
6841 goto s_n_llhttp__internal__n_header_value_te_chunked;
6842 }
6843 /* UNREACHABLE */;
6844 abort();
6845 }
6846 s_n_llhttp__internal__n_invoke_update_header_state_9: {
6847 switch (llhttp__internal__c_update_header_state_1(state, p, endp)) {
6848 default:
6849 goto s_n_llhttp__internal__n_header_value;
6850 }
6851 /* UNREACHABLE */;
6852 abort();
6853 }
6854 s_n_llhttp__internal__n_invoke_and_flags: {
6855 switch (llhttp__internal__c_and_flags(state, p, endp)) {
6856 default:
6857 goto s_n_llhttp__internal__n_header_value_te_chunked;
6858 }
6859 /* UNREACHABLE */;
6860 abort();
6861 }
6862 s_n_llhttp__internal__n_invoke_or_flags_17: {
6863 switch (llhttp__internal__c_or_flags_16(state, p, endp)) {
6864 default:
6865 goto s_n_llhttp__internal__n_invoke_and_flags;
6866 }
6867 /* UNREACHABLE */;
6868 abort();
6869 }
6870 s_n_llhttp__internal__n_invoke_test_lenient_flags_8: {
6871 switch (llhttp__internal__c_test_lenient_flags_7(state, p, endp)) {
6872 case 0:
6873 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_8;
6874 default:
6875 goto s_n_llhttp__internal__n_invoke_or_flags_17;
6876 }
6877 /* UNREACHABLE */;
6878 abort();
6879 }
6880 s_n_llhttp__internal__n_invoke_load_type_2: {
6881 switch (llhttp__internal__c_load_type(state, p, endp)) {
6882 case 1:
6883 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_8;
6884 default:
6885 goto s_n_llhttp__internal__n_invoke_or_flags_17;
6886 }
6887 /* UNREACHABLE */;
6888 abort();
6889 }
6890 s_n_llhttp__internal__n_invoke_or_flags_16: {
6891 switch (llhttp__internal__c_or_flags_16(state, p, endp)) {
6892 default:
6893 goto s_n_llhttp__internal__n_invoke_and_flags;
6894 }
6895 /* UNREACHABLE */;
6896 abort();
6897 }
6898 s_n_llhttp__internal__n_invoke_test_flags_3: {
6899 switch (llhttp__internal__c_test_flags_3(state, p, endp)) {
6900 case 1:
6901 goto s_n_llhttp__internal__n_invoke_load_type_2;
6902 default:
6903 goto s_n_llhttp__internal__n_invoke_or_flags_16;
6904 }
6905 /* UNREACHABLE */;
6906 abort();
6907 }
6908 s_n_llhttp__internal__n_invoke_or_flags_18: {
6909 switch (llhttp__internal__c_or_flags_18(state, p, endp)) {
6910 default:
6911 goto s_n_llhttp__internal__n_invoke_update_header_state_9;
6912 }
6913 /* UNREACHABLE */;
6914 abort();
6915 }
6916 s_n_llhttp__internal__n_invoke_load_header_state_2: {
6917 switch (llhttp__internal__c_load_header_state(state, p, endp)) {
6918 case 1:
6919 goto s_n_llhttp__internal__n_header_value_connection;
6920 case 2:
6921 goto s_n_llhttp__internal__n_invoke_test_flags_2;
6922 case 3:
6923 goto s_n_llhttp__internal__n_invoke_test_flags_3;
6924 case 4:
6925 goto s_n_llhttp__internal__n_invoke_or_flags_18;
6926 default:
6927 goto s_n_llhttp__internal__n_header_value;
6928 }
6929 /* UNREACHABLE */;
6930 abort();
6931 }
6932 s_n_llhttp__internal__n_span_end_llhttp__on_header_field_1: {
6933 const unsigned char* start;
6934 int err;
6935
6936 start = state->_span_pos0;
6937 state->_span_pos0 = NULL;
6938 err = llhttp__on_header_field(state, start, p);
6939 if (err != 0) {
6940 state->error = err;
6941 state->error_pos = (const char*) (p + 1);
6942 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete;
6943 return s_error;
6944 }
6945 p++;
6946 goto s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete;
6947 /* UNREACHABLE */;
6948 abort();
6949 }
6950 s_n_llhttp__internal__n_span_end_llhttp__on_header_field_2: {
6951 const unsigned char* start;
6952 int err;
6953
6954 start = state->_span_pos0;
6955 state->_span_pos0 = NULL;
6956 err = llhttp__on_header_field(state, start, p);
6957 if (err != 0) {
6958 state->error = err;
6959 state->error_pos = (const char*) (p + 1);
6960 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete;
6961 return s_error;
6962 }
6963 p++;
6964 goto s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete;
6965 /* UNREACHABLE */;
6966 abort();
6967 }
6968 s_n_llhttp__internal__n_error_31: {
6969 state->error = 0xa;
6970 state->reason = "Invalid header token";
6971 state->error_pos = (const char*) p;
6972 state->_current = (void*) (intptr_t) s_error;
6973 return s_error;
6974 /* UNREACHABLE */;
6975 abort();
6976 }
6977 s_n_llhttp__internal__n_invoke_update_header_state_10: {
6978 switch (llhttp__internal__c_update_header_state_1(state, p, endp)) {
6979 default:
6980 goto s_n_llhttp__internal__n_header_field_general;
6981 }
6982 /* UNREACHABLE */;
6983 abort();
6984 }
6985 s_n_llhttp__internal__n_invoke_store_header_state: {
6986 switch (llhttp__internal__c_store_header_state(state, p, endp, match)) {
6987 default:
6988 goto s_n_llhttp__internal__n_header_field_colon;
6989 }
6990 /* UNREACHABLE */;
6991 abort();
6992 }
6993 s_n_llhttp__internal__n_invoke_update_header_state_11: {
6994 switch (llhttp__internal__c_update_header_state_1(state, p, endp)) {
6995 default:
6996 goto s_n_llhttp__internal__n_header_field_general;
6997 }
6998 /* UNREACHABLE */;
6999 abort();
7000 }
7001 s_n_llhttp__internal__n_invoke_llhttp__on_url_complete: {
7002 switch (llhttp__on_url_complete(state, p, endp)) {
7003 default:
7004 goto s_n_llhttp__internal__n_header_field_start;
7005 }
7006 /* UNREACHABLE */;
7007 abort();
7008 }
7009 s_n_llhttp__internal__n_invoke_update_http_minor: {
7010 switch (llhttp__internal__c_update_http_minor(state, p, endp)) {
7011 default:
7012 goto s_n_llhttp__internal__n_invoke_llhttp__on_url_complete;
7013 }
7014 /* UNREACHABLE */;
7015 abort();
7016 }
7017 s_n_llhttp__internal__n_invoke_update_http_major: {
7018 switch (llhttp__internal__c_update_http_major(state, p, endp)) {
7019 default:
7020 goto s_n_llhttp__internal__n_invoke_update_http_minor;
7021 }
7022 /* UNREACHABLE */;
7023 abort();
7024 }
7025 s_n_llhttp__internal__n_span_end_llhttp__on_url_3: {
7026 const unsigned char* start;
7027 int err;
7028
7029 start = state->_span_pos0;
7030 state->_span_pos0 = NULL;
7031 err = llhttp__on_url(state, start, p);
7032 if (err != 0) {
7033 state->error = err;
7034 state->error_pos = (const char*) p;
7035 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
7036 return s_error;
7037 }
7038 goto s_n_llhttp__internal__n_url_skip_to_http09;
7039 /* UNREACHABLE */;
7040 abort();
7041 }
7042 s_n_llhttp__internal__n_error_32: {
7043 state->error = 0x7;
7044 state->reason = "Expected CRLF";
7045 state->error_pos = (const char*) p;
7046 state->_current = (void*) (intptr_t) s_error;
7047 return s_error;
7048 /* UNREACHABLE */;
7049 abort();
7050 }
7051 s_n_llhttp__internal__n_span_end_llhttp__on_url_4: {
7052 const unsigned char* start;
7053 int err;
7054
7055 start = state->_span_pos0;
7056 state->_span_pos0 = NULL;
7057 err = llhttp__on_url(state, start, p);
7058 if (err != 0) {
7059 state->error = err;
7060 state->error_pos = (const char*) p;
7061 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
7062 return s_error;
7063 }
7064 goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
7065 /* UNREACHABLE */;
7066 abort();
7067 }
7068 s_n_llhttp__internal__n_error_37: {
7069 state->error = 0x17;
7070 state->reason = "Pause on PRI/Upgrade";
7071 state->error_pos = (const char*) p;
7072 state->_current = (void*) (intptr_t) s_error;
7073 return s_error;
7074 /* UNREACHABLE */;
7075 abort();
7076 }
7077 s_n_llhttp__internal__n_error_38: {
7078 state->error = 0x9;
7079 state->reason = "Expected HTTP/2 Connection Preface";
7080 state->error_pos = (const char*) p;
7081 state->_current = (void*) (intptr_t) s_error;
7082 return s_error;
7083 /* UNREACHABLE */;
7084 abort();
7085 }
7086 s_n_llhttp__internal__n_error_36: {
7087 state->error = 0x9;
7088 state->reason = "Expected CRLF after version";
7089 state->error_pos = (const char*) p;
7090 state->_current = (void*) (intptr_t) s_error;
7091 return s_error;
7092 /* UNREACHABLE */;
7093 abort();
7094 }
7095 s_n_llhttp__internal__n_invoke_load_method_1: {
7096 switch (llhttp__internal__c_load_method(state, p, endp)) {
7097 case 34:
7098 goto s_n_llhttp__internal__n_req_pri_upgrade;
7099 default:
7100 goto s_n_llhttp__internal__n_req_http_complete;
7101 }
7102 /* UNREACHABLE */;
7103 abort();
7104 }
7105 s_n_llhttp__internal__n_error_35: {
7106 state->error = 0x9;
7107 state->reason = "Invalid HTTP version";
7108 state->error_pos = (const char*) p;
7109 state->_current = (void*) (intptr_t) s_error;
7110 return s_error;
7111 /* UNREACHABLE */;
7112 abort();
7113 }
7114 s_n_llhttp__internal__n_invoke_load_http_minor: {
7115 switch (llhttp__internal__c_load_http_minor(state, p, endp)) {
7116 case 9:
7117 goto s_n_llhttp__internal__n_invoke_load_method_1;
7118 default:
7119 goto s_n_llhttp__internal__n_error_35;
7120 }
7121 /* UNREACHABLE */;
7122 abort();
7123 }
7124 s_n_llhttp__internal__n_error_39: {
7125 state->error = 0x9;
7126 state->reason = "Invalid HTTP version";
7127 state->error_pos = (const char*) p;
7128 state->_current = (void*) (intptr_t) s_error;
7129 return s_error;
7130 /* UNREACHABLE */;
7131 abort();
7132 }
7133 s_n_llhttp__internal__n_invoke_load_http_minor_1: {
7134 switch (llhttp__internal__c_load_http_minor(state, p, endp)) {
7135 case 0:
7136 goto s_n_llhttp__internal__n_invoke_load_method_1;
7137 case 1:
7138 goto s_n_llhttp__internal__n_invoke_load_method_1;
7139 default:
7140 goto s_n_llhttp__internal__n_error_39;
7141 }
7142 /* UNREACHABLE */;
7143 abort();
7144 }
7145 s_n_llhttp__internal__n_error_40: {
7146 state->error = 0x9;
7147 state->reason = "Invalid HTTP version";
7148 state->error_pos = (const char*) p;
7149 state->_current = (void*) (intptr_t) s_error;
7150 return s_error;
7151 /* UNREACHABLE */;
7152 abort();
7153 }
7154 s_n_llhttp__internal__n_invoke_load_http_minor_2: {
7155 switch (llhttp__internal__c_load_http_minor(state, p, endp)) {
7156 case 0:
7157 goto s_n_llhttp__internal__n_invoke_load_method_1;
7158 default:
7159 goto s_n_llhttp__internal__n_error_40;
7160 }
7161 /* UNREACHABLE */;
7162 abort();
7163 }
7164 s_n_llhttp__internal__n_error_34: {
7165 state->error = 0x9;
7166 state->reason = "Invalid HTTP version";
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_invoke_load_http_major: {
7174 switch (llhttp__internal__c_load_http_major(state, p, endp)) {
7175 case 0:
7176 goto s_n_llhttp__internal__n_invoke_load_http_minor;
7177 case 1:
7178 goto s_n_llhttp__internal__n_invoke_load_http_minor_1;
7179 case 2:
7180 goto s_n_llhttp__internal__n_invoke_load_http_minor_2;
7181 default:
7182 goto s_n_llhttp__internal__n_error_34;
7183 }
7184 /* UNREACHABLE */;
7185 abort();
7186 }
7187 s_n_llhttp__internal__n_invoke_test_lenient_flags_9: {
7188 switch (llhttp__internal__c_test_lenient_flags_9(state, p, endp)) {
7189 case 1:
7190 goto s_n_llhttp__internal__n_invoke_load_method_1;
7191 default:
7192 goto s_n_llhttp__internal__n_invoke_load_http_major;
7193 }
7194 /* UNREACHABLE */;
7195 abort();
7196 }
7197 s_n_llhttp__internal__n_invoke_store_http_minor: {
7198 switch (llhttp__internal__c_store_http_minor(state, p, endp, match)) {
7199 default:
7200 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_9;
7201 }
7202 /* UNREACHABLE */;
7203 abort();
7204 }
7205 s_n_llhttp__internal__n_error_41: {
7206 state->error = 0x9;
7207 state->reason = "Invalid minor version";
7208 state->error_pos = (const char*) p;
7209 state->_current = (void*) (intptr_t) s_error;
7210 return s_error;
7211 /* UNREACHABLE */;
7212 abort();
7213 }
7214 s_n_llhttp__internal__n_error_42: {
7215 state->error = 0x9;
7216 state->reason = "Expected dot";
7217 state->error_pos = (const char*) p;
7218 state->_current = (void*) (intptr_t) s_error;
7219 return s_error;
7220 /* UNREACHABLE */;
7221 abort();
7222 }
7223 s_n_llhttp__internal__n_invoke_store_http_major: {
7224 switch (llhttp__internal__c_store_http_major(state, p, endp, match)) {
7225 default:
7226 goto s_n_llhttp__internal__n_req_http_dot;
7227 }
7228 /* UNREACHABLE */;
7229 abort();
7230 }
7231 s_n_llhttp__internal__n_error_43: {
7232 state->error = 0x9;
7233 state->reason = "Invalid major version";
7234 state->error_pos = (const char*) p;
7235 state->_current = (void*) (intptr_t) s_error;
7236 return s_error;
7237 /* UNREACHABLE */;
7238 abort();
7239 }
7240 s_n_llhttp__internal__n_error_33: {
7241 state->error = 0x8;
7242 state->reason = "Invalid method for HTTP/x.x request";
7243 state->error_pos = (const char*) p;
7244 state->_current = (void*) (intptr_t) s_error;
7245 return s_error;
7246 /* UNREACHABLE */;
7247 abort();
7248 }
7249 s_n_llhttp__internal__n_invoke_load_method: {
7250 switch (llhttp__internal__c_load_method(state, p, endp)) {
7251 case 0:
7252 goto s_n_llhttp__internal__n_req_http_major;
7253 case 1:
7254 goto s_n_llhttp__internal__n_req_http_major;
7255 case 2:
7256 goto s_n_llhttp__internal__n_req_http_major;
7257 case 3:
7258 goto s_n_llhttp__internal__n_req_http_major;
7259 case 4:
7260 goto s_n_llhttp__internal__n_req_http_major;
7261 case 5:
7262 goto s_n_llhttp__internal__n_req_http_major;
7263 case 6:
7264 goto s_n_llhttp__internal__n_req_http_major;
7265 case 7:
7266 goto s_n_llhttp__internal__n_req_http_major;
7267 case 8:
7268 goto s_n_llhttp__internal__n_req_http_major;
7269 case 9:
7270 goto s_n_llhttp__internal__n_req_http_major;
7271 case 10:
7272 goto s_n_llhttp__internal__n_req_http_major;
7273 case 11:
7274 goto s_n_llhttp__internal__n_req_http_major;
7275 case 12:
7276 goto s_n_llhttp__internal__n_req_http_major;
7277 case 13:
7278 goto s_n_llhttp__internal__n_req_http_major;
7279 case 14:
7280 goto s_n_llhttp__internal__n_req_http_major;
7281 case 15:
7282 goto s_n_llhttp__internal__n_req_http_major;
7283 case 16:
7284 goto s_n_llhttp__internal__n_req_http_major;
7285 case 17:
7286 goto s_n_llhttp__internal__n_req_http_major;
7287 case 18:
7288 goto s_n_llhttp__internal__n_req_http_major;
7289 case 19:
7290 goto s_n_llhttp__internal__n_req_http_major;
7291 case 20:
7292 goto s_n_llhttp__internal__n_req_http_major;
7293 case 21:
7294 goto s_n_llhttp__internal__n_req_http_major;
7295 case 22:
7296 goto s_n_llhttp__internal__n_req_http_major;
7297 case 23:
7298 goto s_n_llhttp__internal__n_req_http_major;
7299 case 24:
7300 goto s_n_llhttp__internal__n_req_http_major;
7301 case 25:
7302 goto s_n_llhttp__internal__n_req_http_major;
7303 case 26:
7304 goto s_n_llhttp__internal__n_req_http_major;
7305 case 27:
7306 goto s_n_llhttp__internal__n_req_http_major;
7307 case 28:
7308 goto s_n_llhttp__internal__n_req_http_major;
7309 case 29:
7310 goto s_n_llhttp__internal__n_req_http_major;
7311 case 30:
7312 goto s_n_llhttp__internal__n_req_http_major;
7313 case 31:
7314 goto s_n_llhttp__internal__n_req_http_major;
7315 case 32:
7316 goto s_n_llhttp__internal__n_req_http_major;
7317 case 33:
7318 goto s_n_llhttp__internal__n_req_http_major;
7319 case 34:
7320 goto s_n_llhttp__internal__n_req_http_major;
7321 default:
7322 goto s_n_llhttp__internal__n_error_33;
7323 }
7324 /* UNREACHABLE */;
7325 abort();
7326 }
7327 s_n_llhttp__internal__n_error_46: {
7328 state->error = 0x8;
7329 state->reason = "Expected HTTP/";
7330 state->error_pos = (const char*) p;
7331 state->_current = (void*) (intptr_t) s_error;
7332 return s_error;
7333 /* UNREACHABLE */;
7334 abort();
7335 }
7336 s_n_llhttp__internal__n_error_44: {
7337 state->error = 0x8;
7338 state->reason = "Expected SOURCE method for ICE/x.x request";
7339 state->error_pos = (const char*) p;
7340 state->_current = (void*) (intptr_t) s_error;
7341 return s_error;
7342 /* UNREACHABLE */;
7343 abort();
7344 }
7345 s_n_llhttp__internal__n_invoke_load_method_2: {
7346 switch (llhttp__internal__c_load_method(state, p, endp)) {
7347 case 33:
7348 goto s_n_llhttp__internal__n_req_http_major;
7349 default:
7350 goto s_n_llhttp__internal__n_error_44;
7351 }
7352 /* UNREACHABLE */;
7353 abort();
7354 }
7355 s_n_llhttp__internal__n_error_45: {
7356 state->error = 0x8;
7357 state->reason = "Invalid method for RTSP/x.x request";
7358 state->error_pos = (const char*) p;
7359 state->_current = (void*) (intptr_t) s_error;
7360 return s_error;
7361 /* UNREACHABLE */;
7362 abort();
7363 }
7364 s_n_llhttp__internal__n_invoke_load_method_3: {
7365 switch (llhttp__internal__c_load_method(state, p, endp)) {
7366 case 1:
7367 goto s_n_llhttp__internal__n_req_http_major;
7368 case 3:
7369 goto s_n_llhttp__internal__n_req_http_major;
7370 case 6:
7371 goto s_n_llhttp__internal__n_req_http_major;
7372 case 35:
7373 goto s_n_llhttp__internal__n_req_http_major;
7374 case 36:
7375 goto s_n_llhttp__internal__n_req_http_major;
7376 case 37:
7377 goto s_n_llhttp__internal__n_req_http_major;
7378 case 38:
7379 goto s_n_llhttp__internal__n_req_http_major;
7380 case 39:
7381 goto s_n_llhttp__internal__n_req_http_major;
7382 case 40:
7383 goto s_n_llhttp__internal__n_req_http_major;
7384 case 41:
7385 goto s_n_llhttp__internal__n_req_http_major;
7386 case 42:
7387 goto s_n_llhttp__internal__n_req_http_major;
7388 case 43:
7389 goto s_n_llhttp__internal__n_req_http_major;
7390 case 44:
7391 goto s_n_llhttp__internal__n_req_http_major;
7392 case 45:
7393 goto s_n_llhttp__internal__n_req_http_major;
7394 default:
7395 goto s_n_llhttp__internal__n_error_45;
7396 }
7397 /* UNREACHABLE */;
7398 abort();
7399 }
7400 s_n_llhttp__internal__n_invoke_llhttp__on_url_complete_1: {
7401 switch (llhttp__on_url_complete(state, p, endp)) {
7402 default:
7403 goto s_n_llhttp__internal__n_req_http_start;
7404 }
7405 /* UNREACHABLE */;
7406 abort();
7407 }
7408 s_n_llhttp__internal__n_span_end_llhttp__on_url_5: {
7409 const unsigned char* start;
7410 int err;
7411
7412 start = state->_span_pos0;
7413 state->_span_pos0 = NULL;
7414 err = llhttp__on_url(state, start, p);
7415 if (err != 0) {
7416 state->error = err;
7417 state->error_pos = (const char*) p;
7418 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
7419 return s_error;
7420 }
7421 goto s_n_llhttp__internal__n_url_skip_to_http;
7422 /* UNREACHABLE */;
7423 abort();
7424 }
7425 s_n_llhttp__internal__n_span_end_llhttp__on_url_6: {
7426 const unsigned char* start;
7427 int err;
7428
7429 start = state->_span_pos0;
7430 state->_span_pos0 = NULL;
7431 err = llhttp__on_url(state, start, p);
7432 if (err != 0) {
7433 state->error = err;
7434 state->error_pos = (const char*) p;
7435 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
7436 return s_error;
7437 }
7438 goto s_n_llhttp__internal__n_url_skip_to_http09;
7439 /* UNREACHABLE */;
7440 abort();
7441 }
7442 s_n_llhttp__internal__n_span_end_llhttp__on_url_7: {
7443 const unsigned char* start;
7444 int err;
7445
7446 start = state->_span_pos0;
7447 state->_span_pos0 = NULL;
7448 err = llhttp__on_url(state, start, p);
7449 if (err != 0) {
7450 state->error = err;
7451 state->error_pos = (const char*) p;
7452 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
7453 return s_error;
7454 }
7455 goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
7456 /* UNREACHABLE */;
7457 abort();
7458 }
7459 s_n_llhttp__internal__n_span_end_llhttp__on_url_8: {
7460 const unsigned char* start;
7461 int err;
7462
7463 start = state->_span_pos0;
7464 state->_span_pos0 = NULL;
7465 err = llhttp__on_url(state, start, p);
7466 if (err != 0) {
7467 state->error = err;
7468 state->error_pos = (const char*) p;
7469 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
7470 return s_error;
7471 }
7472 goto s_n_llhttp__internal__n_url_skip_to_http;
7473 /* UNREACHABLE */;
7474 abort();
7475 }
7476 s_n_llhttp__internal__n_error_47: {
7477 state->error = 0x7;
7478 state->reason = "Invalid char in url fragment start";
7479 state->error_pos = (const char*) p;
7480 state->_current = (void*) (intptr_t) s_error;
7481 return s_error;
7482 /* UNREACHABLE */;
7483 abort();
7484 }
7485 s_n_llhttp__internal__n_span_end_llhttp__on_url_9: {
7486 const unsigned char* start;
7487 int err;
7488
7489 start = state->_span_pos0;
7490 state->_span_pos0 = NULL;
7491 err = llhttp__on_url(state, start, p);
7492 if (err != 0) {
7493 state->error = err;
7494 state->error_pos = (const char*) p;
7495 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
7496 return s_error;
7497 }
7498 goto s_n_llhttp__internal__n_url_skip_to_http09;
7499 /* UNREACHABLE */;
7500 abort();
7501 }
7502 s_n_llhttp__internal__n_span_end_llhttp__on_url_10: {
7503 const unsigned char* start;
7504 int err;
7505
7506 start = state->_span_pos0;
7507 state->_span_pos0 = NULL;
7508 err = llhttp__on_url(state, start, p);
7509 if (err != 0) {
7510 state->error = err;
7511 state->error_pos = (const char*) p;
7512 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
7513 return s_error;
7514 }
7515 goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
7516 /* UNREACHABLE */;
7517 abort();
7518 }
7519 s_n_llhttp__internal__n_span_end_llhttp__on_url_11: {
7520 const unsigned char* start;
7521 int err;
7522
7523 start = state->_span_pos0;
7524 state->_span_pos0 = NULL;
7525 err = llhttp__on_url(state, start, p);
7526 if (err != 0) {
7527 state->error = err;
7528 state->error_pos = (const char*) p;
7529 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
7530 return s_error;
7531 }
7532 goto s_n_llhttp__internal__n_url_skip_to_http;
7533 /* UNREACHABLE */;
7534 abort();
7535 }
7536 s_n_llhttp__internal__n_error_48: {
7537 state->error = 0x7;
7538 state->reason = "Invalid char in url query";
7539 state->error_pos = (const char*) p;
7540 state->_current = (void*) (intptr_t) s_error;
7541 return s_error;
7542 /* UNREACHABLE */;
7543 abort();
7544 }
7545 s_n_llhttp__internal__n_error_49: {
7546 state->error = 0x7;
7547 state->reason = "Invalid char in url path";
7548 state->error_pos = (const char*) p;
7549 state->_current = (void*) (intptr_t) s_error;
7550 return s_error;
7551 /* UNREACHABLE */;
7552 abort();
7553 }
7554 s_n_llhttp__internal__n_span_end_llhttp__on_url: {
7555 const unsigned char* start;
7556 int err;
7557
7558 start = state->_span_pos0;
7559 state->_span_pos0 = NULL;
7560 err = llhttp__on_url(state, start, p);
7561 if (err != 0) {
7562 state->error = err;
7563 state->error_pos = (const char*) p;
7564 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
7565 return s_error;
7566 }
7567 goto s_n_llhttp__internal__n_url_skip_to_http09;
7568 /* UNREACHABLE */;
7569 abort();
7570 }
7571 s_n_llhttp__internal__n_span_end_llhttp__on_url_1: {
7572 const unsigned char* start;
7573 int err;
7574
7575 start = state->_span_pos0;
7576 state->_span_pos0 = NULL;
7577 err = llhttp__on_url(state, start, p);
7578 if (err != 0) {
7579 state->error = err;
7580 state->error_pos = (const char*) p;
7581 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
7582 return s_error;
7583 }
7584 goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
7585 /* UNREACHABLE */;
7586 abort();
7587 }
7588 s_n_llhttp__internal__n_span_end_llhttp__on_url_2: {
7589 const unsigned char* start;
7590 int err;
7591
7592 start = state->_span_pos0;
7593 state->_span_pos0 = NULL;
7594 err = llhttp__on_url(state, start, p);
7595 if (err != 0) {
7596 state->error = err;
7597 state->error_pos = (const char*) p;
7598 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
7599 return s_error;
7600 }
7601 goto s_n_llhttp__internal__n_url_skip_to_http;
7602 /* UNREACHABLE */;
7603 abort();
7604 }
7605 s_n_llhttp__internal__n_span_end_llhttp__on_url_12: {
7606 const unsigned char* start;
7607 int err;
7608
7609 start = state->_span_pos0;
7610 state->_span_pos0 = NULL;
7611 err = llhttp__on_url(state, start, p);
7612 if (err != 0) {
7613 state->error = err;
7614 state->error_pos = (const char*) p;
7615 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
7616 return s_error;
7617 }
7618 goto s_n_llhttp__internal__n_url_skip_to_http09;
7619 /* UNREACHABLE */;
7620 abort();
7621 }
7622 s_n_llhttp__internal__n_span_end_llhttp__on_url_13: {
7623 const unsigned char* start;
7624 int err;
7625
7626 start = state->_span_pos0;
7627 state->_span_pos0 = NULL;
7628 err = llhttp__on_url(state, start, p);
7629 if (err != 0) {
7630 state->error = err;
7631 state->error_pos = (const char*) p;
7632 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
7633 return s_error;
7634 }
7635 goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
7636 /* UNREACHABLE */;
7637 abort();
7638 }
7639 s_n_llhttp__internal__n_span_end_llhttp__on_url_14: {
7640 const unsigned char* start;
7641 int err;
7642
7643 start = state->_span_pos0;
7644 state->_span_pos0 = NULL;
7645 err = llhttp__on_url(state, start, p);
7646 if (err != 0) {
7647 state->error = err;
7648 state->error_pos = (const char*) p;
7649 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
7650 return s_error;
7651 }
7652 goto s_n_llhttp__internal__n_url_skip_to_http;
7653 /* UNREACHABLE */;
7654 abort();
7655 }
7656 s_n_llhttp__internal__n_error_50: {
7657 state->error = 0x7;
7658 state->reason = "Double @ in url";
7659 state->error_pos = (const char*) p;
7660 state->_current = (void*) (intptr_t) s_error;
7661 return s_error;
7662 /* UNREACHABLE */;
7663 abort();
7664 }
7665 s_n_llhttp__internal__n_error_51: {
7666 state->error = 0x7;
7667 state->reason = "Unexpected char in url server";
7668 state->error_pos = (const char*) p;
7669 state->_current = (void*) (intptr_t) s_error;
7670 return s_error;
7671 /* UNREACHABLE */;
7672 abort();
7673 }
7674 s_n_llhttp__internal__n_error_52: {
7675 state->error = 0x7;
7676 state->reason = "Unexpected char in url server";
7677 state->error_pos = (const char*) p;
7678 state->_current = (void*) (intptr_t) s_error;
7679 return s_error;
7680 /* UNREACHABLE */;
7681 abort();
7682 }
7683 s_n_llhttp__internal__n_error_54: {
7684 state->error = 0x7;
7685 state->reason = "Unexpected char in url schema";
7686 state->error_pos = (const char*) p;
7687 state->_current = (void*) (intptr_t) s_error;
7688 return s_error;
7689 /* UNREACHABLE */;
7690 abort();
7691 }
7692 s_n_llhttp__internal__n_error_55: {
7693 state->error = 0x7;
7694 state->reason = "Unexpected char in url schema";
7695 state->error_pos = (const char*) p;
7696 state->_current = (void*) (intptr_t) s_error;
7697 return s_error;
7698 /* UNREACHABLE */;
7699 abort();
7700 }
7701 s_n_llhttp__internal__n_error_56: {
7702 state->error = 0x7;
7703 state->reason = "Unexpected start char in url";
7704 state->error_pos = (const char*) p;
7705 state->_current = (void*) (intptr_t) s_error;
7706 return s_error;
7707 /* UNREACHABLE */;
7708 abort();
7709 }
7710 s_n_llhttp__internal__n_invoke_is_equal_method: {
7711 switch (llhttp__internal__c_is_equal_method(state, p, endp)) {
7712 case 0:
7713 goto s_n_llhttp__internal__n_url_entry_normal;
7714 default:
7715 goto s_n_llhttp__internal__n_url_entry_connect;
7716 }
7717 /* UNREACHABLE */;
7718 abort();
7719 }
7720 s_n_llhttp__internal__n_error_57: {
7721 state->error = 0x6;
7722 state->reason = "Expected space after method";
7723 state->error_pos = (const char*) p;
7724 state->_current = (void*) (intptr_t) s_error;
7725 return s_error;
7726 /* UNREACHABLE */;
7727 abort();
7728 }
7729 s_n_llhttp__internal__n_invoke_store_method_1: {
7730 switch (llhttp__internal__c_store_method(state, p, endp, match)) {
7731 default:
7732 goto s_n_llhttp__internal__n_req_first_space_before_url;
7733 }
7734 /* UNREACHABLE */;
7735 abort();
7736 }
7737 s_n_llhttp__internal__n_error_70: {
7738 state->error = 0x6;
7739 state->reason = "Invalid method encountered";
7740 state->error_pos = (const char*) p;
7741 state->_current = (void*) (intptr_t) s_error;
7742 return s_error;
7743 /* UNREACHABLE */;
7744 abort();
7745 }
7746 s_n_llhttp__internal__n_error_60: {
7747 state->error = 0xd;
7748 state->reason = "Response overflow";
7749 state->error_pos = (const char*) p;
7750 state->_current = (void*) (intptr_t) s_error;
7751 return s_error;
7752 /* UNREACHABLE */;
7753 abort();
7754 }
7755 s_n_llhttp__internal__n_invoke_mul_add_status_code: {
7756 switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) {
7757 case 1:
7758 goto s_n_llhttp__internal__n_error_60;
7759 default:
7760 goto s_n_llhttp__internal__n_res_status_code;
7761 }
7762 /* UNREACHABLE */;
7763 abort();
7764 }
7765 s_n_llhttp__internal__n_error_61: {
7766 state->error = 0x2;
7767 state->reason = "Expected LF after CR";
7768 state->error_pos = (const char*) p;
7769 state->_current = (void*) (intptr_t) s_error;
7770 return s_error;
7771 /* UNREACHABLE */;
7772 abort();
7773 }
7774 s_n_llhttp__internal__n_span_end_llhttp__on_status: {
7775 const unsigned char* start;
7776 int err;
7777
7778 start = state->_span_pos0;
7779 state->_span_pos0 = NULL;
7780 err = llhttp__on_status(state, start, p);
7781 if (err != 0) {
7782 state->error = err;
7783 state->error_pos = (const char*) (p + 1);
7784 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_status_complete;
7785 return s_error;
7786 }
7787 p++;
7788 goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete;
7789 /* UNREACHABLE */;
7790 abort();
7791 }
7792 s_n_llhttp__internal__n_span_end_llhttp__on_status_1: {
7793 const unsigned char* start;
7794 int err;
7795
7796 start = state->_span_pos0;
7797 state->_span_pos0 = NULL;
7798 err = llhttp__on_status(state, start, p);
7799 if (err != 0) {
7800 state->error = err;
7801 state->error_pos = (const char*) (p + 1);
7802 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_res_line_almost_done;
7803 return s_error;
7804 }
7805 p++;
7806 goto s_n_llhttp__internal__n_res_line_almost_done;
7807 /* UNREACHABLE */;
7808 abort();
7809 }
7810 s_n_llhttp__internal__n_error_62: {
7811 state->error = 0xd;
7812 state->reason = "Invalid response status";
7813 state->error_pos = (const char*) p;
7814 state->_current = (void*) (intptr_t) s_error;
7815 return s_error;
7816 /* UNREACHABLE */;
7817 abort();
7818 }
7819 s_n_llhttp__internal__n_invoke_update_status_code: {
7820 switch (llhttp__internal__c_update_status_code(state, p, endp)) {
7821 default:
7822 goto s_n_llhttp__internal__n_res_status_code;
7823 }
7824 /* UNREACHABLE */;
7825 abort();
7826 }
7827 s_n_llhttp__internal__n_error_63: {
7828 state->error = 0x9;
7829 state->reason = "Expected space after version";
7830 state->error_pos = (const char*) p;
7831 state->_current = (void*) (intptr_t) s_error;
7832 return s_error;
7833 /* UNREACHABLE */;
7834 abort();
7835 }
7836 s_n_llhttp__internal__n_error_59: {
7837 state->error = 0x9;
7838 state->reason = "Invalid HTTP version";
7839 state->error_pos = (const char*) p;
7840 state->_current = (void*) (intptr_t) s_error;
7841 return s_error;
7842 /* UNREACHABLE */;
7843 abort();
7844 }
7845 s_n_llhttp__internal__n_invoke_load_http_minor_3: {
7846 switch (llhttp__internal__c_load_http_minor(state, p, endp)) {
7847 case 9:
7848 goto s_n_llhttp__internal__n_res_http_end;
7849 default:
7850 goto s_n_llhttp__internal__n_error_59;
7851 }
7852 /* UNREACHABLE */;
7853 abort();
7854 }
7855 s_n_llhttp__internal__n_error_64: {
7856 state->error = 0x9;
7857 state->reason = "Invalid HTTP version";
7858 state->error_pos = (const char*) p;
7859 state->_current = (void*) (intptr_t) s_error;
7860 return s_error;
7861 /* UNREACHABLE */;
7862 abort();
7863 }
7864 s_n_llhttp__internal__n_invoke_load_http_minor_4: {
7865 switch (llhttp__internal__c_load_http_minor(state, p, endp)) {
7866 case 0:
7867 goto s_n_llhttp__internal__n_res_http_end;
7868 case 1:
7869 goto s_n_llhttp__internal__n_res_http_end;
7870 default:
7871 goto s_n_llhttp__internal__n_error_64;
7872 }
7873 /* UNREACHABLE */;
7874 abort();
7875 }
7876 s_n_llhttp__internal__n_error_65: {
7877 state->error = 0x9;
7878 state->reason = "Invalid HTTP version";
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_invoke_load_http_minor_5: {
7886 switch (llhttp__internal__c_load_http_minor(state, p, endp)) {
7887 case 0:
7888 goto s_n_llhttp__internal__n_res_http_end;
7889 default:
7890 goto s_n_llhttp__internal__n_error_65;
7891 }
7892 /* UNREACHABLE */;
7893 abort();
7894 }
7895 s_n_llhttp__internal__n_error_58: {
7896 state->error = 0x9;
7897 state->reason = "Invalid HTTP version";
7898 state->error_pos = (const char*) p;
7899 state->_current = (void*) (intptr_t) s_error;
7900 return s_error;
7901 /* UNREACHABLE */;
7902 abort();
7903 }
7904 s_n_llhttp__internal__n_invoke_load_http_major_1: {
7905 switch (llhttp__internal__c_load_http_major(state, p, endp)) {
7906 case 0:
7907 goto s_n_llhttp__internal__n_invoke_load_http_minor_3;
7908 case 1:
7909 goto s_n_llhttp__internal__n_invoke_load_http_minor_4;
7910 case 2:
7911 goto s_n_llhttp__internal__n_invoke_load_http_minor_5;
7912 default:
7913 goto s_n_llhttp__internal__n_error_58;
7914 }
7915 /* UNREACHABLE */;
7916 abort();
7917 }
7918 s_n_llhttp__internal__n_invoke_test_lenient_flags_10: {
7919 switch (llhttp__internal__c_test_lenient_flags_9(state, p, endp)) {
7920 case 1:
7921 goto s_n_llhttp__internal__n_res_http_end;
7922 default:
7923 goto s_n_llhttp__internal__n_invoke_load_http_major_1;
7924 }
7925 /* UNREACHABLE */;
7926 abort();
7927 }
7928 s_n_llhttp__internal__n_invoke_store_http_minor_1: {
7929 switch (llhttp__internal__c_store_http_minor(state, p, endp, match)) {
7930 default:
7931 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_10;
7932 }
7933 /* UNREACHABLE */;
7934 abort();
7935 }
7936 s_n_llhttp__internal__n_error_66: {
7937 state->error = 0x9;
7938 state->reason = "Invalid minor version";
7939 state->error_pos = (const char*) p;
7940 state->_current = (void*) (intptr_t) s_error;
7941 return s_error;
7942 /* UNREACHABLE */;
7943 abort();
7944 }
7945 s_n_llhttp__internal__n_error_67: {
7946 state->error = 0x9;
7947 state->reason = "Expected dot";
7948 state->error_pos = (const char*) p;
7949 state->_current = (void*) (intptr_t) s_error;
7950 return s_error;
7951 /* UNREACHABLE */;
7952 abort();
7953 }
7954 s_n_llhttp__internal__n_invoke_store_http_major_1: {
7955 switch (llhttp__internal__c_store_http_major(state, p, endp, match)) {
7956 default:
7957 goto s_n_llhttp__internal__n_res_http_dot;
7958 }
7959 /* UNREACHABLE */;
7960 abort();
7961 }
7962 s_n_llhttp__internal__n_error_68: {
7963 state->error = 0x9;
7964 state->reason = "Invalid major version";
7965 state->error_pos = (const char*) p;
7966 state->_current = (void*) (intptr_t) s_error;
7967 return s_error;
7968 /* UNREACHABLE */;
7969 abort();
7970 }
7971 s_n_llhttp__internal__n_error_71: {
7972 state->error = 0x8;
7973 state->reason = "Expected HTTP/";
7974 state->error_pos = (const char*) p;
7975 state->_current = (void*) (intptr_t) s_error;
7976 return s_error;
7977 /* UNREACHABLE */;
7978 abort();
7979 }
7980 s_n_llhttp__internal__n_invoke_update_type: {
7981 switch (llhttp__internal__c_update_type(state, p, endp)) {
7982 default:
7983 goto s_n_llhttp__internal__n_req_first_space_before_url;
7984 }
7985 /* UNREACHABLE */;
7986 abort();
7987 }
7988 s_n_llhttp__internal__n_invoke_store_method: {
7989 switch (llhttp__internal__c_store_method(state, p, endp, match)) {
7990 default:
7991 goto s_n_llhttp__internal__n_invoke_update_type;
7992 }
7993 /* UNREACHABLE */;
7994 abort();
7995 }
7996 s_n_llhttp__internal__n_error_69: {
7997 state->error = 0x8;
7998 state->reason = "Invalid word encountered";
7999 state->error_pos = (const char*) p;
8000 state->_current = (void*) (intptr_t) s_error;
8001 return s_error;
8002 /* UNREACHABLE */;
8003 abort();
8004 }
8005 s_n_llhttp__internal__n_invoke_update_type_1: {
8006 switch (llhttp__internal__c_update_type_1(state, p, endp)) {
8007 default:
8008 goto s_n_llhttp__internal__n_res_http_major;
8009 }
8010 /* UNREACHABLE */;
8011 abort();
8012 }
8013 s_n_llhttp__internal__n_invoke_update_type_2: {
8014 switch (llhttp__internal__c_update_type(state, p, endp)) {
8015 default:
8016 goto s_n_llhttp__internal__n_start_req;
8017 }
8018 /* UNREACHABLE */;
8019 abort();
8020 }
8021 s_n_llhttp__internal__n_pause_8: {
8022 state->error = 0x15;
8023 state->reason = "on_message_begin pause";
8024 state->error_pos = (const char*) p;
8025 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_load_type;
8026 return s_error;
8027 /* UNREACHABLE */;
8028 abort();
8029 }
8030 s_n_llhttp__internal__n_error: {
8031 state->error = 0x10;
8032 state->reason = "`on_message_begin` callback error";
8033 state->error_pos = (const char*) p;
8034 state->_current = (void*) (intptr_t) s_error;
8035 return s_error;
8036 /* UNREACHABLE */;
8037 abort();
8038 }
8039 s_n_llhttp__internal__n_invoke_llhttp__on_message_begin: {
8040 switch (llhttp__on_message_begin(state, p, endp)) {
8041 case 0:
8042 goto s_n_llhttp__internal__n_invoke_load_type;
8043 case 21:
8044 goto s_n_llhttp__internal__n_pause_8;
8045 default:
8046 goto s_n_llhttp__internal__n_error;
8047 }
8048 /* UNREACHABLE */;
8049 abort();
8050 }
8051 s_n_llhttp__internal__n_invoke_update_finish: {
8052 switch (llhttp__internal__c_update_finish(state, p, endp)) {
8053 default:
8054 goto s_n_llhttp__internal__n_invoke_llhttp__on_message_begin;
8055 }
8056 /* UNREACHABLE */;
8057 abort();
8058 }
8059 }
8060
llhttp__internal_execute(llhttp__internal_t * state,const char * p,const char * endp)8061 int llhttp__internal_execute(llhttp__internal_t* state, const char* p, const char* endp) {
8062 llparse_state_t next;
8063
8064 /* check lingering errors */
8065 if (state->error != 0) {
8066 return state->error;
8067 }
8068
8069 /* restart spans */
8070 if (state->_span_pos0 != NULL) {
8071 state->_span_pos0 = (void*) p;
8072 }
8073
8074 next = llhttp__internal__run(state, (const unsigned char*) p, (const unsigned char*) endp);
8075 if (next == s_error) {
8076 return state->error;
8077 }
8078 state->_current = (void*) (intptr_t) next;
8079
8080 /* execute spans */
8081 if (state->_span_pos0 != NULL) {
8082 int error;
8083
8084 error = ((llhttp__internal__span_cb) state->_span_cb0)(state, state->_span_pos0, (const char*) endp);
8085 if (error != 0) {
8086 state->error = error;
8087 state->error_pos = endp;
8088 return error;
8089 }
8090 }
8091
8092 return 0;
8093 }
8094
8095 #else /* !LLHTTP_STRICT_MODE */
8096
8097 #include <stdlib.h>
8098 #include <stdint.h>
8099 #include <string.h>
8100
8101 #ifdef __SSE4_2__
8102 #ifdef _MSC_VER
8103 #include <nmmintrin.h>
8104 #else /* !_MSC_VER */
8105 #include <x86intrin.h>
8106 #endif /* _MSC_VER */
8107 #endif /* __SSE4_2__ */
8108
8109 #ifdef _MSC_VER
8110 #define ALIGN(n) _declspec(align(n))
8111 #else /* !_MSC_VER */
8112 #define ALIGN(n) __attribute__((aligned(n)))
8113 #endif /* _MSC_VER */
8114
8115 #include "llhttp.h"
8116
8117 typedef int (*llhttp__internal__span_cb)(
8118 llhttp__internal_t*, const char*, const char*);
8119
8120 #ifdef __SSE4_2__
8121 static const unsigned char ALIGN(16) llparse_blob0[] = {
8122 0x9, 0x9, 0xc, 0xc, '!', '"', '$', '>', '@', '~', 0x80,
8123 0xff, 0x0, 0x0, 0x0, 0x0
8124 };
8125 #endif /* __SSE4_2__ */
8126 static const unsigned char llparse_blob1[] = {
8127 'o', 'n'
8128 };
8129 static const unsigned char llparse_blob2[] = {
8130 'e', 'c', 't', 'i', 'o', 'n'
8131 };
8132 static const unsigned char llparse_blob3[] = {
8133 'l', 'o', 's', 'e'
8134 };
8135 static const unsigned char llparse_blob4[] = {
8136 'e', 'e', 'p', '-', 'a', 'l', 'i', 'v', 'e'
8137 };
8138 static const unsigned char llparse_blob5[] = {
8139 'p', 'g', 'r', 'a', 'd', 'e'
8140 };
8141 static const unsigned char llparse_blob6[] = {
8142 'c', 'h', 'u', 'n', 'k', 'e', 'd'
8143 };
8144 #ifdef __SSE4_2__
8145 static const unsigned char ALIGN(16) llparse_blob7[] = {
8146 0x9, 0x9, ' ', '~', 0x80, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0,
8147 0x0, 0x0, 0x0, 0x0, 0x0
8148 };
8149 #endif /* __SSE4_2__ */
8150 #ifdef __SSE4_2__
8151 static const unsigned char ALIGN(16) llparse_blob8[] = {
8152 ' ', '!', '#', '\'', '*', '+', '-', '.', '0', '9', 'A',
8153 'Z', '^', 'z', '|', '|'
8154 };
8155 #endif /* __SSE4_2__ */
8156 #ifdef __SSE4_2__
8157 static const unsigned char ALIGN(16) llparse_blob9[] = {
8158 '~', '~', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
8159 0x0, 0x0, 0x0, 0x0, 0x0
8160 };
8161 #endif /* __SSE4_2__ */
8162 static const unsigned char llparse_blob10[] = {
8163 'e', 'n', 't', '-', 'l', 'e', 'n', 'g', 't', 'h'
8164 };
8165 static const unsigned char llparse_blob11[] = {
8166 'r', 'o', 'x', 'y', '-', 'c', 'o', 'n', 'n', 'e', 'c',
8167 't', 'i', 'o', 'n'
8168 };
8169 static const unsigned char llparse_blob12[] = {
8170 'r', 'a', 'n', 's', 'f', 'e', 'r', '-', 'e', 'n', 'c',
8171 'o', 'd', 'i', 'n', 'g'
8172 };
8173 static const unsigned char llparse_blob13[] = {
8174 'p', 'g', 'r', 'a', 'd', 'e'
8175 };
8176 static const unsigned char llparse_blob14[] = {
8177 0xd, 0xa
8178 };
8179 static const unsigned char llparse_blob15[] = {
8180 'T', 'T', 'P', '/'
8181 };
8182 static const unsigned char llparse_blob16[] = {
8183 0xd, 0xa, 0xd, 0xa, 'S', 'M', 0xd, 0xa, 0xd, 0xa
8184 };
8185 static const unsigned char llparse_blob17[] = {
8186 'C', 'E', '/'
8187 };
8188 static const unsigned char llparse_blob18[] = {
8189 'T', 'S', 'P', '/'
8190 };
8191 static const unsigned char llparse_blob19[] = {
8192 'N', 'O', 'U', 'N', 'C', 'E'
8193 };
8194 static const unsigned char llparse_blob20[] = {
8195 'I', 'N', 'D'
8196 };
8197 static const unsigned char llparse_blob21[] = {
8198 'E', 'C', 'K', 'O', 'U', 'T'
8199 };
8200 static const unsigned char llparse_blob22[] = {
8201 'N', 'E', 'C', 'T'
8202 };
8203 static const unsigned char llparse_blob23[] = {
8204 'E', 'T', 'E'
8205 };
8206 static const unsigned char llparse_blob24[] = {
8207 'C', 'R', 'I', 'B', 'E'
8208 };
8209 static const unsigned char llparse_blob25[] = {
8210 'L', 'U', 'S', 'H'
8211 };
8212 static const unsigned char llparse_blob26[] = {
8213 'E', 'T'
8214 };
8215 static const unsigned char llparse_blob27[] = {
8216 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R'
8217 };
8218 static const unsigned char llparse_blob28[] = {
8219 'E', 'A', 'D'
8220 };
8221 static const unsigned char llparse_blob29[] = {
8222 'N', 'K'
8223 };
8224 static const unsigned char llparse_blob30[] = {
8225 'C', 'K'
8226 };
8227 static const unsigned char llparse_blob31[] = {
8228 'S', 'E', 'A', 'R', 'C', 'H'
8229 };
8230 static const unsigned char llparse_blob32[] = {
8231 'R', 'G', 'E'
8232 };
8233 static const unsigned char llparse_blob33[] = {
8234 'C', 'T', 'I', 'V', 'I', 'T', 'Y'
8235 };
8236 static const unsigned char llparse_blob34[] = {
8237 'L', 'E', 'N', 'D', 'A', 'R'
8238 };
8239 static const unsigned char llparse_blob35[] = {
8240 'V', 'E'
8241 };
8242 static const unsigned char llparse_blob36[] = {
8243 'O', 'T', 'I', 'F', 'Y'
8244 };
8245 static const unsigned char llparse_blob37[] = {
8246 'P', 'T', 'I', 'O', 'N', 'S'
8247 };
8248 static const unsigned char llparse_blob38[] = {
8249 'C', 'H'
8250 };
8251 static const unsigned char llparse_blob39[] = {
8252 'S', 'E'
8253 };
8254 static const unsigned char llparse_blob40[] = {
8255 'A', 'Y'
8256 };
8257 static const unsigned char llparse_blob41[] = {
8258 'S', 'T'
8259 };
8260 static const unsigned char llparse_blob42[] = {
8261 'I', 'N', 'D'
8262 };
8263 static const unsigned char llparse_blob43[] = {
8264 'A', 'T', 'C', 'H'
8265 };
8266 static const unsigned char llparse_blob44[] = {
8267 'G', 'E'
8268 };
8269 static const unsigned char llparse_blob45[] = {
8270 'I', 'N', 'D'
8271 };
8272 static const unsigned char llparse_blob46[] = {
8273 'O', 'R', 'D'
8274 };
8275 static const unsigned char llparse_blob47[] = {
8276 'I', 'R', 'E', 'C', 'T'
8277 };
8278 static const unsigned char llparse_blob48[] = {
8279 'O', 'R', 'T'
8280 };
8281 static const unsigned char llparse_blob49[] = {
8282 'R', 'C', 'H'
8283 };
8284 static const unsigned char llparse_blob50[] = {
8285 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R'
8286 };
8287 static const unsigned char llparse_blob51[] = {
8288 'U', 'R', 'C', 'E'
8289 };
8290 static const unsigned char llparse_blob52[] = {
8291 'B', 'S', 'C', 'R', 'I', 'B', 'E'
8292 };
8293 static const unsigned char llparse_blob53[] = {
8294 'A', 'R', 'D', 'O', 'W', 'N'
8295 };
8296 static const unsigned char llparse_blob54[] = {
8297 'A', 'C', 'E'
8298 };
8299 static const unsigned char llparse_blob55[] = {
8300 'I', 'N', 'D'
8301 };
8302 static const unsigned char llparse_blob56[] = {
8303 'N', 'K'
8304 };
8305 static const unsigned char llparse_blob57[] = {
8306 'C', 'K'
8307 };
8308 static const unsigned char llparse_blob58[] = {
8309 'U', 'B', 'S', 'C', 'R', 'I', 'B', 'E'
8310 };
8311 static const unsigned char llparse_blob59[] = {
8312 'H', 'T', 'T', 'P', '/'
8313 };
8314 static const unsigned char llparse_blob60[] = {
8315 'A', 'D'
8316 };
8317 static const unsigned char llparse_blob61[] = {
8318 'T', 'P', '/'
8319 };
8320
8321 enum llparse_match_status_e {
8322 kMatchComplete,
8323 kMatchPause,
8324 kMatchMismatch
8325 };
8326 typedef enum llparse_match_status_e llparse_match_status_t;
8327
8328 struct llparse_match_s {
8329 llparse_match_status_t status;
8330 const unsigned char* current;
8331 };
8332 typedef struct llparse_match_s llparse_match_t;
8333
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)8334 static llparse_match_t llparse__match_sequence_to_lower(
8335 llhttp__internal_t* s, const unsigned char* p,
8336 const unsigned char* endp,
8337 const unsigned char* seq, uint32_t seq_len) {
8338 uint32_t index;
8339 llparse_match_t res;
8340
8341 index = s->_index;
8342 for (; p != endp; p++) {
8343 unsigned char current;
8344
8345 current = ((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p));
8346 if (current == seq[index]) {
8347 if (++index == seq_len) {
8348 res.status = kMatchComplete;
8349 goto reset;
8350 }
8351 } else {
8352 res.status = kMatchMismatch;
8353 goto reset;
8354 }
8355 }
8356 s->_index = index;
8357 res.status = kMatchPause;
8358 res.current = p;
8359 return res;
8360 reset:
8361 s->_index = 0;
8362 res.current = p;
8363 return res;
8364 }
8365
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)8366 static llparse_match_t llparse__match_sequence_to_lower_unsafe(
8367 llhttp__internal_t* s, const unsigned char* p,
8368 const unsigned char* endp,
8369 const unsigned char* seq, uint32_t seq_len) {
8370 uint32_t index;
8371 llparse_match_t res;
8372
8373 index = s->_index;
8374 for (; p != endp; p++) {
8375 unsigned char current;
8376
8377 current = ((*p) | 0x20);
8378 if (current == seq[index]) {
8379 if (++index == seq_len) {
8380 res.status = kMatchComplete;
8381 goto reset;
8382 }
8383 } else {
8384 res.status = kMatchMismatch;
8385 goto reset;
8386 }
8387 }
8388 s->_index = index;
8389 res.status = kMatchPause;
8390 res.current = p;
8391 return res;
8392 reset:
8393 s->_index = 0;
8394 res.current = p;
8395 return res;
8396 }
8397
llparse__match_sequence_id(llhttp__internal_t * s,const unsigned char * p,const unsigned char * endp,const unsigned char * seq,uint32_t seq_len)8398 static llparse_match_t llparse__match_sequence_id(
8399 llhttp__internal_t* s, const unsigned char* p,
8400 const unsigned char* endp,
8401 const unsigned char* seq, uint32_t seq_len) {
8402 uint32_t index;
8403 llparse_match_t res;
8404
8405 index = s->_index;
8406 for (; p != endp; p++) {
8407 unsigned char current;
8408
8409 current = *p;
8410 if (current == seq[index]) {
8411 if (++index == seq_len) {
8412 res.status = kMatchComplete;
8413 goto reset;
8414 }
8415 } else {
8416 res.status = kMatchMismatch;
8417 goto reset;
8418 }
8419 }
8420 s->_index = index;
8421 res.status = kMatchPause;
8422 res.current = p;
8423 return res;
8424 reset:
8425 s->_index = 0;
8426 res.current = p;
8427 return res;
8428 }
8429
8430 enum llparse_state_e {
8431 s_error,
8432 s_n_llhttp__internal__n_closed,
8433 s_n_llhttp__internal__n_invoke_llhttp__after_message_complete,
8434 s_n_llhttp__internal__n_pause_1,
8435 s_n_llhttp__internal__n_invoke_is_equal_upgrade,
8436 s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2,
8437 s_n_llhttp__internal__n_chunk_data_almost_done_skip,
8438 s_n_llhttp__internal__n_chunk_data_almost_done,
8439 s_n_llhttp__internal__n_consume_content_length,
8440 s_n_llhttp__internal__n_span_start_llhttp__on_body,
8441 s_n_llhttp__internal__n_invoke_is_equal_content_length,
8442 s_n_llhttp__internal__n_chunk_size_almost_done,
8443 s_n_llhttp__internal__n_chunk_parameters,
8444 s_n_llhttp__internal__n_chunk_size_otherwise,
8445 s_n_llhttp__internal__n_chunk_size,
8446 s_n_llhttp__internal__n_chunk_size_digit,
8447 s_n_llhttp__internal__n_invoke_update_content_length,
8448 s_n_llhttp__internal__n_consume_content_length_1,
8449 s_n_llhttp__internal__n_span_start_llhttp__on_body_1,
8450 s_n_llhttp__internal__n_eof,
8451 s_n_llhttp__internal__n_span_start_llhttp__on_body_2,
8452 s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete,
8453 s_n_llhttp__internal__n_headers_almost_done,
8454 s_n_llhttp__internal__n_header_field_colon_discard_ws,
8455 s_n_llhttp__internal__n_error_14,
8456 s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete,
8457 s_n_llhttp__internal__n_span_start_llhttp__on_header_value,
8458 s_n_llhttp__internal__n_header_value_discard_lws,
8459 s_n_llhttp__internal__n_header_value_discard_ws_almost_done,
8460 s_n_llhttp__internal__n_header_value_lws,
8461 s_n_llhttp__internal__n_header_value_almost_done,
8462 s_n_llhttp__internal__n_header_value_lenient,
8463 s_n_llhttp__internal__n_error_20,
8464 s_n_llhttp__internal__n_header_value_otherwise,
8465 s_n_llhttp__internal__n_header_value_connection_token,
8466 s_n_llhttp__internal__n_header_value_connection_ws,
8467 s_n_llhttp__internal__n_header_value_connection_1,
8468 s_n_llhttp__internal__n_header_value_connection_2,
8469 s_n_llhttp__internal__n_header_value_connection_3,
8470 s_n_llhttp__internal__n_header_value_connection,
8471 s_n_llhttp__internal__n_error_22,
8472 s_n_llhttp__internal__n_error_23,
8473 s_n_llhttp__internal__n_header_value_content_length_ws,
8474 s_n_llhttp__internal__n_header_value_content_length,
8475 s_n_llhttp__internal__n_error_25,
8476 s_n_llhttp__internal__n_error_24,
8477 s_n_llhttp__internal__n_header_value_te_token_ows,
8478 s_n_llhttp__internal__n_header_value,
8479 s_n_llhttp__internal__n_header_value_te_token,
8480 s_n_llhttp__internal__n_header_value_te_chunked_last,
8481 s_n_llhttp__internal__n_header_value_te_chunked,
8482 s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1,
8483 s_n_llhttp__internal__n_header_value_discard_ws,
8484 s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete,
8485 s_n_llhttp__internal__n_header_field_general_otherwise,
8486 s_n_llhttp__internal__n_header_field_general,
8487 s_n_llhttp__internal__n_header_field_colon,
8488 s_n_llhttp__internal__n_header_field_3,
8489 s_n_llhttp__internal__n_header_field_4,
8490 s_n_llhttp__internal__n_header_field_2,
8491 s_n_llhttp__internal__n_header_field_1,
8492 s_n_llhttp__internal__n_header_field_5,
8493 s_n_llhttp__internal__n_header_field_6,
8494 s_n_llhttp__internal__n_header_field_7,
8495 s_n_llhttp__internal__n_header_field,
8496 s_n_llhttp__internal__n_span_start_llhttp__on_header_field,
8497 s_n_llhttp__internal__n_header_field_start,
8498 s_n_llhttp__internal__n_url_skip_to_http09,
8499 s_n_llhttp__internal__n_url_skip_lf_to_http09,
8500 s_n_llhttp__internal__n_req_pri_upgrade,
8501 s_n_llhttp__internal__n_req_http_complete_1,
8502 s_n_llhttp__internal__n_req_http_complete,
8503 s_n_llhttp__internal__n_req_http_minor,
8504 s_n_llhttp__internal__n_req_http_dot,
8505 s_n_llhttp__internal__n_req_http_major,
8506 s_n_llhttp__internal__n_req_http_start_1,
8507 s_n_llhttp__internal__n_req_http_start_2,
8508 s_n_llhttp__internal__n_req_http_start_3,
8509 s_n_llhttp__internal__n_req_http_start,
8510 s_n_llhttp__internal__n_url_skip_to_http,
8511 s_n_llhttp__internal__n_url_fragment,
8512 s_n_llhttp__internal__n_span_end_stub_query_3,
8513 s_n_llhttp__internal__n_url_query,
8514 s_n_llhttp__internal__n_url_query_or_fragment,
8515 s_n_llhttp__internal__n_url_path,
8516 s_n_llhttp__internal__n_span_start_stub_path_2,
8517 s_n_llhttp__internal__n_span_start_stub_path,
8518 s_n_llhttp__internal__n_span_start_stub_path_1,
8519 s_n_llhttp__internal__n_url_server_with_at,
8520 s_n_llhttp__internal__n_url_server,
8521 s_n_llhttp__internal__n_url_schema_delim_1,
8522 s_n_llhttp__internal__n_url_schema_delim,
8523 s_n_llhttp__internal__n_span_end_stub_schema,
8524 s_n_llhttp__internal__n_url_schema,
8525 s_n_llhttp__internal__n_url_start,
8526 s_n_llhttp__internal__n_span_start_llhttp__on_url_1,
8527 s_n_llhttp__internal__n_span_start_llhttp__on_url,
8528 s_n_llhttp__internal__n_req_spaces_before_url,
8529 s_n_llhttp__internal__n_req_first_space_before_url,
8530 s_n_llhttp__internal__n_start_req_2,
8531 s_n_llhttp__internal__n_start_req_3,
8532 s_n_llhttp__internal__n_start_req_1,
8533 s_n_llhttp__internal__n_start_req_4,
8534 s_n_llhttp__internal__n_start_req_6,
8535 s_n_llhttp__internal__n_start_req_8,
8536 s_n_llhttp__internal__n_start_req_9,
8537 s_n_llhttp__internal__n_start_req_7,
8538 s_n_llhttp__internal__n_start_req_5,
8539 s_n_llhttp__internal__n_start_req_12,
8540 s_n_llhttp__internal__n_start_req_13,
8541 s_n_llhttp__internal__n_start_req_11,
8542 s_n_llhttp__internal__n_start_req_10,
8543 s_n_llhttp__internal__n_start_req_14,
8544 s_n_llhttp__internal__n_start_req_17,
8545 s_n_llhttp__internal__n_start_req_16,
8546 s_n_llhttp__internal__n_start_req_15,
8547 s_n_llhttp__internal__n_start_req_18,
8548 s_n_llhttp__internal__n_start_req_20,
8549 s_n_llhttp__internal__n_start_req_21,
8550 s_n_llhttp__internal__n_start_req_19,
8551 s_n_llhttp__internal__n_start_req_23,
8552 s_n_llhttp__internal__n_start_req_24,
8553 s_n_llhttp__internal__n_start_req_26,
8554 s_n_llhttp__internal__n_start_req_28,
8555 s_n_llhttp__internal__n_start_req_29,
8556 s_n_llhttp__internal__n_start_req_27,
8557 s_n_llhttp__internal__n_start_req_25,
8558 s_n_llhttp__internal__n_start_req_30,
8559 s_n_llhttp__internal__n_start_req_22,
8560 s_n_llhttp__internal__n_start_req_31,
8561 s_n_llhttp__internal__n_start_req_32,
8562 s_n_llhttp__internal__n_start_req_35,
8563 s_n_llhttp__internal__n_start_req_36,
8564 s_n_llhttp__internal__n_start_req_34,
8565 s_n_llhttp__internal__n_start_req_37,
8566 s_n_llhttp__internal__n_start_req_38,
8567 s_n_llhttp__internal__n_start_req_42,
8568 s_n_llhttp__internal__n_start_req_43,
8569 s_n_llhttp__internal__n_start_req_41,
8570 s_n_llhttp__internal__n_start_req_40,
8571 s_n_llhttp__internal__n_start_req_39,
8572 s_n_llhttp__internal__n_start_req_45,
8573 s_n_llhttp__internal__n_start_req_44,
8574 s_n_llhttp__internal__n_start_req_33,
8575 s_n_llhttp__internal__n_start_req_48,
8576 s_n_llhttp__internal__n_start_req_49,
8577 s_n_llhttp__internal__n_start_req_50,
8578 s_n_llhttp__internal__n_start_req_51,
8579 s_n_llhttp__internal__n_start_req_47,
8580 s_n_llhttp__internal__n_start_req_46,
8581 s_n_llhttp__internal__n_start_req_54,
8582 s_n_llhttp__internal__n_start_req_56,
8583 s_n_llhttp__internal__n_start_req_57,
8584 s_n_llhttp__internal__n_start_req_55,
8585 s_n_llhttp__internal__n_start_req_53,
8586 s_n_llhttp__internal__n_start_req_58,
8587 s_n_llhttp__internal__n_start_req_59,
8588 s_n_llhttp__internal__n_start_req_52,
8589 s_n_llhttp__internal__n_start_req_61,
8590 s_n_llhttp__internal__n_start_req_62,
8591 s_n_llhttp__internal__n_start_req_60,
8592 s_n_llhttp__internal__n_start_req_65,
8593 s_n_llhttp__internal__n_start_req_67,
8594 s_n_llhttp__internal__n_start_req_68,
8595 s_n_llhttp__internal__n_start_req_66,
8596 s_n_llhttp__internal__n_start_req_69,
8597 s_n_llhttp__internal__n_start_req_64,
8598 s_n_llhttp__internal__n_start_req_63,
8599 s_n_llhttp__internal__n_start_req,
8600 s_n_llhttp__internal__n_invoke_llhttp__on_status_complete,
8601 s_n_llhttp__internal__n_res_line_almost_done,
8602 s_n_llhttp__internal__n_res_status,
8603 s_n_llhttp__internal__n_span_start_llhttp__on_status,
8604 s_n_llhttp__internal__n_res_status_start,
8605 s_n_llhttp__internal__n_res_status_code_otherwise,
8606 s_n_llhttp__internal__n_res_status_code,
8607 s_n_llhttp__internal__n_res_http_end,
8608 s_n_llhttp__internal__n_res_http_minor,
8609 s_n_llhttp__internal__n_res_http_dot,
8610 s_n_llhttp__internal__n_res_http_major,
8611 s_n_llhttp__internal__n_start_res,
8612 s_n_llhttp__internal__n_req_or_res_method_2,
8613 s_n_llhttp__internal__n_req_or_res_method_3,
8614 s_n_llhttp__internal__n_req_or_res_method_1,
8615 s_n_llhttp__internal__n_req_or_res_method,
8616 s_n_llhttp__internal__n_start_req_or_res,
8617 s_n_llhttp__internal__n_invoke_load_type,
8618 s_n_llhttp__internal__n_start,
8619 };
8620 typedef enum llparse_state_e llparse_state_t;
8621
8622 int llhttp__on_url(
8623 llhttp__internal_t* s, const unsigned char* p,
8624 const unsigned char* endp);
8625
8626 int llhttp__on_header_field(
8627 llhttp__internal_t* s, const unsigned char* p,
8628 const unsigned char* endp);
8629
8630 int llhttp__on_header_value(
8631 llhttp__internal_t* s, const unsigned char* p,
8632 const unsigned char* endp);
8633
8634 int llhttp__on_body(
8635 llhttp__internal_t* s, const unsigned char* p,
8636 const unsigned char* endp);
8637
8638 int llhttp__on_status(
8639 llhttp__internal_t* s, const unsigned char* p,
8640 const unsigned char* endp);
8641
llhttp__internal__c_update_finish(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8642 int llhttp__internal__c_update_finish(
8643 llhttp__internal_t* state,
8644 const unsigned char* p,
8645 const unsigned char* endp) {
8646 state->finish = 2;
8647 return 0;
8648 }
8649
8650 int llhttp__on_message_begin(
8651 llhttp__internal_t* s, const unsigned char* p,
8652 const unsigned char* endp);
8653
llhttp__internal__c_load_type(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8654 int llhttp__internal__c_load_type(
8655 llhttp__internal_t* state,
8656 const unsigned char* p,
8657 const unsigned char* endp) {
8658 return state->type;
8659 }
8660
llhttp__internal__c_store_method(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)8661 int llhttp__internal__c_store_method(
8662 llhttp__internal_t* state,
8663 const unsigned char* p,
8664 const unsigned char* endp,
8665 int match) {
8666 state->method = match;
8667 return 0;
8668 }
8669
llhttp__internal__c_is_equal_method(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8670 int llhttp__internal__c_is_equal_method(
8671 llhttp__internal_t* state,
8672 const unsigned char* p,
8673 const unsigned char* endp) {
8674 return state->method == 5;
8675 }
8676
llhttp__internal__c_update_http_major(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8677 int llhttp__internal__c_update_http_major(
8678 llhttp__internal_t* state,
8679 const unsigned char* p,
8680 const unsigned char* endp) {
8681 state->http_major = 0;
8682 return 0;
8683 }
8684
llhttp__internal__c_update_http_minor(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8685 int llhttp__internal__c_update_http_minor(
8686 llhttp__internal_t* state,
8687 const unsigned char* p,
8688 const unsigned char* endp) {
8689 state->http_minor = 9;
8690 return 0;
8691 }
8692
8693 int llhttp__on_url_complete(
8694 llhttp__internal_t* s, const unsigned char* p,
8695 const unsigned char* endp);
8696
llhttp__internal__c_test_flags(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8697 int llhttp__internal__c_test_flags(
8698 llhttp__internal_t* state,
8699 const unsigned char* p,
8700 const unsigned char* endp) {
8701 return (state->flags & 128) == 128;
8702 }
8703
8704 int llhttp__on_chunk_complete(
8705 llhttp__internal_t* s, const unsigned char* p,
8706 const unsigned char* endp);
8707
8708 int llhttp__on_message_complete(
8709 llhttp__internal_t* s, const unsigned char* p,
8710 const unsigned char* endp);
8711
llhttp__internal__c_is_equal_upgrade(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8712 int llhttp__internal__c_is_equal_upgrade(
8713 llhttp__internal_t* state,
8714 const unsigned char* p,
8715 const unsigned char* endp) {
8716 return state->upgrade == 1;
8717 }
8718
8719 int llhttp__after_message_complete(
8720 llhttp__internal_t* s, const unsigned char* p,
8721 const unsigned char* endp);
8722
llhttp__internal__c_update_finish_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8723 int llhttp__internal__c_update_finish_1(
8724 llhttp__internal_t* state,
8725 const unsigned char* p,
8726 const unsigned char* endp) {
8727 state->finish = 0;
8728 return 0;
8729 }
8730
llhttp__internal__c_test_lenient_flags(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8731 int llhttp__internal__c_test_lenient_flags(
8732 llhttp__internal_t* state,
8733 const unsigned char* p,
8734 const unsigned char* endp) {
8735 return (state->lenient_flags & 4) == 4;
8736 }
8737
llhttp__internal__c_test_flags_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8738 int llhttp__internal__c_test_flags_1(
8739 llhttp__internal_t* state,
8740 const unsigned char* p,
8741 const unsigned char* endp) {
8742 return (state->flags & 544) == 544;
8743 }
8744
llhttp__internal__c_test_lenient_flags_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8745 int llhttp__internal__c_test_lenient_flags_1(
8746 llhttp__internal_t* state,
8747 const unsigned char* p,
8748 const unsigned char* endp) {
8749 return (state->lenient_flags & 2) == 2;
8750 }
8751
8752 int llhttp__before_headers_complete(
8753 llhttp__internal_t* s, const unsigned char* p,
8754 const unsigned char* endp);
8755
8756 int llhttp__on_headers_complete(
8757 llhttp__internal_t* s, const unsigned char* p,
8758 const unsigned char* endp);
8759
8760 int llhttp__after_headers_complete(
8761 llhttp__internal_t* s, const unsigned char* p,
8762 const unsigned char* endp);
8763
llhttp__internal__c_update_content_length(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8764 int llhttp__internal__c_update_content_length(
8765 llhttp__internal_t* state,
8766 const unsigned char* p,
8767 const unsigned char* endp) {
8768 state->content_length = 0;
8769 return 0;
8770 }
8771
llhttp__internal__c_mul_add_content_length(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)8772 int llhttp__internal__c_mul_add_content_length(
8773 llhttp__internal_t* state,
8774 const unsigned char* p,
8775 const unsigned char* endp,
8776 int match) {
8777 /* Multiplication overflow */
8778 if (state->content_length > 0xffffffffffffffffULL / 16) {
8779 return 1;
8780 }
8781
8782 state->content_length *= 16;
8783
8784 /* Addition overflow */
8785 if (match >= 0) {
8786 if (state->content_length > 0xffffffffffffffffULL - match) {
8787 return 1;
8788 }
8789 } else {
8790 if (state->content_length < 0ULL - match) {
8791 return 1;
8792 }
8793 }
8794 state->content_length += match;
8795 return 0;
8796 }
8797
8798 int llhttp__on_chunk_header(
8799 llhttp__internal_t* s, const unsigned char* p,
8800 const unsigned char* endp);
8801
llhttp__internal__c_is_equal_content_length(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8802 int llhttp__internal__c_is_equal_content_length(
8803 llhttp__internal_t* state,
8804 const unsigned char* p,
8805 const unsigned char* endp) {
8806 return state->content_length == 0;
8807 }
8808
llhttp__internal__c_or_flags(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8809 int llhttp__internal__c_or_flags(
8810 llhttp__internal_t* state,
8811 const unsigned char* p,
8812 const unsigned char* endp) {
8813 state->flags |= 128;
8814 return 0;
8815 }
8816
llhttp__internal__c_update_finish_3(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8817 int llhttp__internal__c_update_finish_3(
8818 llhttp__internal_t* state,
8819 const unsigned char* p,
8820 const unsigned char* endp) {
8821 state->finish = 1;
8822 return 0;
8823 }
8824
llhttp__internal__c_or_flags_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8825 int llhttp__internal__c_or_flags_1(
8826 llhttp__internal_t* state,
8827 const unsigned char* p,
8828 const unsigned char* endp) {
8829 state->flags |= 64;
8830 return 0;
8831 }
8832
llhttp__internal__c_update_upgrade(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8833 int llhttp__internal__c_update_upgrade(
8834 llhttp__internal_t* state,
8835 const unsigned char* p,
8836 const unsigned char* endp) {
8837 state->upgrade = 1;
8838 return 0;
8839 }
8840
llhttp__internal__c_store_header_state(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)8841 int llhttp__internal__c_store_header_state(
8842 llhttp__internal_t* state,
8843 const unsigned char* p,
8844 const unsigned char* endp,
8845 int match) {
8846 state->header_state = match;
8847 return 0;
8848 }
8849
llhttp__internal__c_test_lenient_flags_2(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8850 int llhttp__internal__c_test_lenient_flags_2(
8851 llhttp__internal_t* state,
8852 const unsigned char* p,
8853 const unsigned char* endp) {
8854 return (state->lenient_flags & 1) == 1;
8855 }
8856
8857 int llhttp__on_header_field_complete(
8858 llhttp__internal_t* s, const unsigned char* p,
8859 const unsigned char* endp);
8860
llhttp__internal__c_load_header_state(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8861 int llhttp__internal__c_load_header_state(
8862 llhttp__internal_t* state,
8863 const unsigned char* p,
8864 const unsigned char* endp) {
8865 return state->header_state;
8866 }
8867
llhttp__internal__c_or_flags_3(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8868 int llhttp__internal__c_or_flags_3(
8869 llhttp__internal_t* state,
8870 const unsigned char* p,
8871 const unsigned char* endp) {
8872 state->flags |= 1;
8873 return 0;
8874 }
8875
llhttp__internal__c_update_header_state(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8876 int llhttp__internal__c_update_header_state(
8877 llhttp__internal_t* state,
8878 const unsigned char* p,
8879 const unsigned char* endp) {
8880 state->header_state = 1;
8881 return 0;
8882 }
8883
8884 int llhttp__on_header_value_complete(
8885 llhttp__internal_t* s, const unsigned char* p,
8886 const unsigned char* endp);
8887
llhttp__internal__c_or_flags_4(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8888 int llhttp__internal__c_or_flags_4(
8889 llhttp__internal_t* state,
8890 const unsigned char* p,
8891 const unsigned char* endp) {
8892 state->flags |= 2;
8893 return 0;
8894 }
8895
llhttp__internal__c_or_flags_5(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8896 int llhttp__internal__c_or_flags_5(
8897 llhttp__internal_t* state,
8898 const unsigned char* p,
8899 const unsigned char* endp) {
8900 state->flags |= 4;
8901 return 0;
8902 }
8903
llhttp__internal__c_or_flags_6(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8904 int llhttp__internal__c_or_flags_6(
8905 llhttp__internal_t* state,
8906 const unsigned char* p,
8907 const unsigned char* endp) {
8908 state->flags |= 8;
8909 return 0;
8910 }
8911
llhttp__internal__c_update_header_state_3(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8912 int llhttp__internal__c_update_header_state_3(
8913 llhttp__internal_t* state,
8914 const unsigned char* p,
8915 const unsigned char* endp) {
8916 state->header_state = 6;
8917 return 0;
8918 }
8919
llhttp__internal__c_update_header_state_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8920 int llhttp__internal__c_update_header_state_1(
8921 llhttp__internal_t* state,
8922 const unsigned char* p,
8923 const unsigned char* endp) {
8924 state->header_state = 0;
8925 return 0;
8926 }
8927
llhttp__internal__c_update_header_state_6(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8928 int llhttp__internal__c_update_header_state_6(
8929 llhttp__internal_t* state,
8930 const unsigned char* p,
8931 const unsigned char* endp) {
8932 state->header_state = 5;
8933 return 0;
8934 }
8935
llhttp__internal__c_update_header_state_7(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8936 int llhttp__internal__c_update_header_state_7(
8937 llhttp__internal_t* state,
8938 const unsigned char* p,
8939 const unsigned char* endp) {
8940 state->header_state = 7;
8941 return 0;
8942 }
8943
llhttp__internal__c_test_flags_2(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8944 int llhttp__internal__c_test_flags_2(
8945 llhttp__internal_t* state,
8946 const unsigned char* p,
8947 const unsigned char* endp) {
8948 return (state->flags & 32) == 32;
8949 }
8950
llhttp__internal__c_mul_add_content_length_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)8951 int llhttp__internal__c_mul_add_content_length_1(
8952 llhttp__internal_t* state,
8953 const unsigned char* p,
8954 const unsigned char* endp,
8955 int match) {
8956 /* Multiplication overflow */
8957 if (state->content_length > 0xffffffffffffffffULL / 10) {
8958 return 1;
8959 }
8960
8961 state->content_length *= 10;
8962
8963 /* Addition overflow */
8964 if (match >= 0) {
8965 if (state->content_length > 0xffffffffffffffffULL - match) {
8966 return 1;
8967 }
8968 } else {
8969 if (state->content_length < 0ULL - match) {
8970 return 1;
8971 }
8972 }
8973 state->content_length += match;
8974 return 0;
8975 }
8976
llhttp__internal__c_or_flags_15(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8977 int llhttp__internal__c_or_flags_15(
8978 llhttp__internal_t* state,
8979 const unsigned char* p,
8980 const unsigned char* endp) {
8981 state->flags |= 32;
8982 return 0;
8983 }
8984
llhttp__internal__c_test_flags_3(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8985 int llhttp__internal__c_test_flags_3(
8986 llhttp__internal_t* state,
8987 const unsigned char* p,
8988 const unsigned char* endp) {
8989 return (state->flags & 8) == 8;
8990 }
8991
llhttp__internal__c_test_lenient_flags_7(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8992 int llhttp__internal__c_test_lenient_flags_7(
8993 llhttp__internal_t* state,
8994 const unsigned char* p,
8995 const unsigned char* endp) {
8996 return (state->lenient_flags & 8) == 8;
8997 }
8998
llhttp__internal__c_or_flags_16(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)8999 int llhttp__internal__c_or_flags_16(
9000 llhttp__internal_t* state,
9001 const unsigned char* p,
9002 const unsigned char* endp) {
9003 state->flags |= 512;
9004 return 0;
9005 }
9006
llhttp__internal__c_and_flags(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)9007 int llhttp__internal__c_and_flags(
9008 llhttp__internal_t* state,
9009 const unsigned char* p,
9010 const unsigned char* endp) {
9011 state->flags &= -9;
9012 return 0;
9013 }
9014
llhttp__internal__c_update_header_state_8(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)9015 int llhttp__internal__c_update_header_state_8(
9016 llhttp__internal_t* state,
9017 const unsigned char* p,
9018 const unsigned char* endp) {
9019 state->header_state = 8;
9020 return 0;
9021 }
9022
llhttp__internal__c_or_flags_18(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)9023 int llhttp__internal__c_or_flags_18(
9024 llhttp__internal_t* state,
9025 const unsigned char* p,
9026 const unsigned char* endp) {
9027 state->flags |= 16;
9028 return 0;
9029 }
9030
llhttp__internal__c_load_method(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)9031 int llhttp__internal__c_load_method(
9032 llhttp__internal_t* state,
9033 const unsigned char* p,
9034 const unsigned char* endp) {
9035 return state->method;
9036 }
9037
llhttp__internal__c_store_http_major(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)9038 int llhttp__internal__c_store_http_major(
9039 llhttp__internal_t* state,
9040 const unsigned char* p,
9041 const unsigned char* endp,
9042 int match) {
9043 state->http_major = match;
9044 return 0;
9045 }
9046
llhttp__internal__c_store_http_minor(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)9047 int llhttp__internal__c_store_http_minor(
9048 llhttp__internal_t* state,
9049 const unsigned char* p,
9050 const unsigned char* endp,
9051 int match) {
9052 state->http_minor = match;
9053 return 0;
9054 }
9055
llhttp__internal__c_test_lenient_flags_9(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)9056 int llhttp__internal__c_test_lenient_flags_9(
9057 llhttp__internal_t* state,
9058 const unsigned char* p,
9059 const unsigned char* endp) {
9060 return (state->lenient_flags & 16) == 16;
9061 }
9062
llhttp__internal__c_load_http_major(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)9063 int llhttp__internal__c_load_http_major(
9064 llhttp__internal_t* state,
9065 const unsigned char* p,
9066 const unsigned char* endp) {
9067 return state->http_major;
9068 }
9069
llhttp__internal__c_load_http_minor(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)9070 int llhttp__internal__c_load_http_minor(
9071 llhttp__internal_t* state,
9072 const unsigned char* p,
9073 const unsigned char* endp) {
9074 return state->http_minor;
9075 }
9076
llhttp__internal__c_update_status_code(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)9077 int llhttp__internal__c_update_status_code(
9078 llhttp__internal_t* state,
9079 const unsigned char* p,
9080 const unsigned char* endp) {
9081 state->status_code = 0;
9082 return 0;
9083 }
9084
llhttp__internal__c_mul_add_status_code(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp,int match)9085 int llhttp__internal__c_mul_add_status_code(
9086 llhttp__internal_t* state,
9087 const unsigned char* p,
9088 const unsigned char* endp,
9089 int match) {
9090 /* Multiplication overflow */
9091 if (state->status_code > 0xffff / 10) {
9092 return 1;
9093 }
9094
9095 state->status_code *= 10;
9096
9097 /* Addition overflow */
9098 if (match >= 0) {
9099 if (state->status_code > 0xffff - match) {
9100 return 1;
9101 }
9102 } else {
9103 if (state->status_code < 0 - match) {
9104 return 1;
9105 }
9106 }
9107 state->status_code += match;
9108
9109 /* Enforce maximum */
9110 if (state->status_code > 999) {
9111 return 1;
9112 }
9113 return 0;
9114 }
9115
9116 int llhttp__on_status_complete(
9117 llhttp__internal_t* s, const unsigned char* p,
9118 const unsigned char* endp);
9119
llhttp__internal__c_update_type(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)9120 int llhttp__internal__c_update_type(
9121 llhttp__internal_t* state,
9122 const unsigned char* p,
9123 const unsigned char* endp) {
9124 state->type = 1;
9125 return 0;
9126 }
9127
llhttp__internal__c_update_type_1(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)9128 int llhttp__internal__c_update_type_1(
9129 llhttp__internal_t* state,
9130 const unsigned char* p,
9131 const unsigned char* endp) {
9132 state->type = 2;
9133 return 0;
9134 }
9135
llhttp__internal_init(llhttp__internal_t * state)9136 int llhttp__internal_init(llhttp__internal_t* state) {
9137 memset(state, 0, sizeof(*state));
9138 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_start;
9139 return 0;
9140 }
9141
llhttp__internal__run(llhttp__internal_t * state,const unsigned char * p,const unsigned char * endp)9142 static llparse_state_t llhttp__internal__run(
9143 llhttp__internal_t* state,
9144 const unsigned char* p,
9145 const unsigned char* endp) {
9146 int match;
9147 switch ((llparse_state_t) (intptr_t) state->_current) {
9148 case s_n_llhttp__internal__n_closed:
9149 s_n_llhttp__internal__n_closed: {
9150 if (p == endp) {
9151 return s_n_llhttp__internal__n_closed;
9152 }
9153 p++;
9154 goto s_n_llhttp__internal__n_closed;
9155 /* UNREACHABLE */;
9156 abort();
9157 }
9158 case s_n_llhttp__internal__n_invoke_llhttp__after_message_complete:
9159 s_n_llhttp__internal__n_invoke_llhttp__after_message_complete: {
9160 switch (llhttp__after_message_complete(state, p, endp)) {
9161 case 1:
9162 goto s_n_llhttp__internal__n_invoke_update_finish_2;
9163 default:
9164 goto s_n_llhttp__internal__n_invoke_update_finish_1;
9165 }
9166 /* UNREACHABLE */;
9167 abort();
9168 }
9169 case s_n_llhttp__internal__n_pause_1:
9170 s_n_llhttp__internal__n_pause_1: {
9171 state->error = 0x16;
9172 state->reason = "Pause on CONNECT/Upgrade";
9173 state->error_pos = (const char*) p;
9174 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
9175 return s_error;
9176 /* UNREACHABLE */;
9177 abort();
9178 }
9179 case s_n_llhttp__internal__n_invoke_is_equal_upgrade:
9180 s_n_llhttp__internal__n_invoke_is_equal_upgrade: {
9181 switch (llhttp__internal__c_is_equal_upgrade(state, p, endp)) {
9182 case 0:
9183 goto s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
9184 default:
9185 goto s_n_llhttp__internal__n_pause_1;
9186 }
9187 /* UNREACHABLE */;
9188 abort();
9189 }
9190 case s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2:
9191 s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2: {
9192 switch (llhttp__on_message_complete(state, p, endp)) {
9193 case 0:
9194 goto s_n_llhttp__internal__n_invoke_is_equal_upgrade;
9195 case 21:
9196 goto s_n_llhttp__internal__n_pause_5;
9197 default:
9198 goto s_n_llhttp__internal__n_error_10;
9199 }
9200 /* UNREACHABLE */;
9201 abort();
9202 }
9203 case s_n_llhttp__internal__n_chunk_data_almost_done_skip:
9204 s_n_llhttp__internal__n_chunk_data_almost_done_skip: {
9205 if (p == endp) {
9206 return s_n_llhttp__internal__n_chunk_data_almost_done_skip;
9207 }
9208 p++;
9209 goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete;
9210 /* UNREACHABLE */;
9211 abort();
9212 }
9213 case s_n_llhttp__internal__n_chunk_data_almost_done:
9214 s_n_llhttp__internal__n_chunk_data_almost_done: {
9215 if (p == endp) {
9216 return s_n_llhttp__internal__n_chunk_data_almost_done;
9217 }
9218 p++;
9219 goto s_n_llhttp__internal__n_chunk_data_almost_done_skip;
9220 /* UNREACHABLE */;
9221 abort();
9222 }
9223 case s_n_llhttp__internal__n_consume_content_length:
9224 s_n_llhttp__internal__n_consume_content_length: {
9225 size_t avail;
9226 uint64_t need;
9227
9228 avail = endp - p;
9229 need = state->content_length;
9230 if (avail >= need) {
9231 p += need;
9232 state->content_length = 0;
9233 goto s_n_llhttp__internal__n_span_end_llhttp__on_body;
9234 }
9235
9236 state->content_length -= avail;
9237 return s_n_llhttp__internal__n_consume_content_length;
9238 /* UNREACHABLE */;
9239 abort();
9240 }
9241 case s_n_llhttp__internal__n_span_start_llhttp__on_body:
9242 s_n_llhttp__internal__n_span_start_llhttp__on_body: {
9243 if (p == endp) {
9244 return s_n_llhttp__internal__n_span_start_llhttp__on_body;
9245 }
9246 state->_span_pos0 = (void*) p;
9247 state->_span_cb0 = llhttp__on_body;
9248 goto s_n_llhttp__internal__n_consume_content_length;
9249 /* UNREACHABLE */;
9250 abort();
9251 }
9252 case s_n_llhttp__internal__n_invoke_is_equal_content_length:
9253 s_n_llhttp__internal__n_invoke_is_equal_content_length: {
9254 switch (llhttp__internal__c_is_equal_content_length(state, p, endp)) {
9255 case 0:
9256 goto s_n_llhttp__internal__n_span_start_llhttp__on_body;
9257 default:
9258 goto s_n_llhttp__internal__n_invoke_or_flags;
9259 }
9260 /* UNREACHABLE */;
9261 abort();
9262 }
9263 case s_n_llhttp__internal__n_chunk_size_almost_done:
9264 s_n_llhttp__internal__n_chunk_size_almost_done: {
9265 if (p == endp) {
9266 return s_n_llhttp__internal__n_chunk_size_almost_done;
9267 }
9268 p++;
9269 goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_header;
9270 /* UNREACHABLE */;
9271 abort();
9272 }
9273 case s_n_llhttp__internal__n_chunk_parameters:
9274 s_n_llhttp__internal__n_chunk_parameters: {
9275 static uint8_t lookup_table[] = {
9276 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0,
9277 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9278 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9279 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9280 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9281 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9282 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9283 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
9284 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9285 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9286 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9287 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9288 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9289 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9290 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9291 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
9292 };
9293 if (p == endp) {
9294 return s_n_llhttp__internal__n_chunk_parameters;
9295 }
9296 switch (lookup_table[(uint8_t) *p]) {
9297 case 1: {
9298 p++;
9299 goto s_n_llhttp__internal__n_chunk_parameters;
9300 }
9301 case 2: {
9302 p++;
9303 goto s_n_llhttp__internal__n_chunk_size_almost_done;
9304 }
9305 default: {
9306 goto s_n_llhttp__internal__n_error_6;
9307 }
9308 }
9309 /* UNREACHABLE */;
9310 abort();
9311 }
9312 case s_n_llhttp__internal__n_chunk_size_otherwise:
9313 s_n_llhttp__internal__n_chunk_size_otherwise: {
9314 if (p == endp) {
9315 return s_n_llhttp__internal__n_chunk_size_otherwise;
9316 }
9317 switch (*p) {
9318 case 13: {
9319 p++;
9320 goto s_n_llhttp__internal__n_chunk_size_almost_done;
9321 }
9322 case ' ': {
9323 p++;
9324 goto s_n_llhttp__internal__n_chunk_parameters;
9325 }
9326 case ';': {
9327 p++;
9328 goto s_n_llhttp__internal__n_chunk_parameters;
9329 }
9330 default: {
9331 goto s_n_llhttp__internal__n_error_7;
9332 }
9333 }
9334 /* UNREACHABLE */;
9335 abort();
9336 }
9337 case s_n_llhttp__internal__n_chunk_size:
9338 s_n_llhttp__internal__n_chunk_size: {
9339 if (p == endp) {
9340 return s_n_llhttp__internal__n_chunk_size;
9341 }
9342 switch (*p) {
9343 case '0': {
9344 p++;
9345 match = 0;
9346 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9347 }
9348 case '1': {
9349 p++;
9350 match = 1;
9351 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9352 }
9353 case '2': {
9354 p++;
9355 match = 2;
9356 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9357 }
9358 case '3': {
9359 p++;
9360 match = 3;
9361 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9362 }
9363 case '4': {
9364 p++;
9365 match = 4;
9366 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9367 }
9368 case '5': {
9369 p++;
9370 match = 5;
9371 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9372 }
9373 case '6': {
9374 p++;
9375 match = 6;
9376 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9377 }
9378 case '7': {
9379 p++;
9380 match = 7;
9381 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9382 }
9383 case '8': {
9384 p++;
9385 match = 8;
9386 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9387 }
9388 case '9': {
9389 p++;
9390 match = 9;
9391 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9392 }
9393 case 'A': {
9394 p++;
9395 match = 10;
9396 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9397 }
9398 case 'B': {
9399 p++;
9400 match = 11;
9401 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9402 }
9403 case 'C': {
9404 p++;
9405 match = 12;
9406 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9407 }
9408 case 'D': {
9409 p++;
9410 match = 13;
9411 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9412 }
9413 case 'E': {
9414 p++;
9415 match = 14;
9416 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9417 }
9418 case 'F': {
9419 p++;
9420 match = 15;
9421 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9422 }
9423 case 'a': {
9424 p++;
9425 match = 10;
9426 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9427 }
9428 case 'b': {
9429 p++;
9430 match = 11;
9431 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9432 }
9433 case 'c': {
9434 p++;
9435 match = 12;
9436 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9437 }
9438 case 'd': {
9439 p++;
9440 match = 13;
9441 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9442 }
9443 case 'e': {
9444 p++;
9445 match = 14;
9446 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9447 }
9448 case 'f': {
9449 p++;
9450 match = 15;
9451 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9452 }
9453 default: {
9454 goto s_n_llhttp__internal__n_chunk_size_otherwise;
9455 }
9456 }
9457 /* UNREACHABLE */;
9458 abort();
9459 }
9460 case s_n_llhttp__internal__n_chunk_size_digit:
9461 s_n_llhttp__internal__n_chunk_size_digit: {
9462 if (p == endp) {
9463 return s_n_llhttp__internal__n_chunk_size_digit;
9464 }
9465 switch (*p) {
9466 case '0': {
9467 p++;
9468 match = 0;
9469 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9470 }
9471 case '1': {
9472 p++;
9473 match = 1;
9474 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9475 }
9476 case '2': {
9477 p++;
9478 match = 2;
9479 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9480 }
9481 case '3': {
9482 p++;
9483 match = 3;
9484 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9485 }
9486 case '4': {
9487 p++;
9488 match = 4;
9489 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9490 }
9491 case '5': {
9492 p++;
9493 match = 5;
9494 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9495 }
9496 case '6': {
9497 p++;
9498 match = 6;
9499 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9500 }
9501 case '7': {
9502 p++;
9503 match = 7;
9504 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9505 }
9506 case '8': {
9507 p++;
9508 match = 8;
9509 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9510 }
9511 case '9': {
9512 p++;
9513 match = 9;
9514 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9515 }
9516 case 'A': {
9517 p++;
9518 match = 10;
9519 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9520 }
9521 case 'B': {
9522 p++;
9523 match = 11;
9524 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9525 }
9526 case 'C': {
9527 p++;
9528 match = 12;
9529 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9530 }
9531 case 'D': {
9532 p++;
9533 match = 13;
9534 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9535 }
9536 case 'E': {
9537 p++;
9538 match = 14;
9539 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9540 }
9541 case 'F': {
9542 p++;
9543 match = 15;
9544 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9545 }
9546 case 'a': {
9547 p++;
9548 match = 10;
9549 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9550 }
9551 case 'b': {
9552 p++;
9553 match = 11;
9554 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9555 }
9556 case 'c': {
9557 p++;
9558 match = 12;
9559 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9560 }
9561 case 'd': {
9562 p++;
9563 match = 13;
9564 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9565 }
9566 case 'e': {
9567 p++;
9568 match = 14;
9569 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9570 }
9571 case 'f': {
9572 p++;
9573 match = 15;
9574 goto s_n_llhttp__internal__n_invoke_mul_add_content_length;
9575 }
9576 default: {
9577 goto s_n_llhttp__internal__n_error_9;
9578 }
9579 }
9580 /* UNREACHABLE */;
9581 abort();
9582 }
9583 case s_n_llhttp__internal__n_invoke_update_content_length:
9584 s_n_llhttp__internal__n_invoke_update_content_length: {
9585 switch (llhttp__internal__c_update_content_length(state, p, endp)) {
9586 default:
9587 goto s_n_llhttp__internal__n_chunk_size_digit;
9588 }
9589 /* UNREACHABLE */;
9590 abort();
9591 }
9592 case s_n_llhttp__internal__n_consume_content_length_1:
9593 s_n_llhttp__internal__n_consume_content_length_1: {
9594 size_t avail;
9595 uint64_t need;
9596
9597 avail = endp - p;
9598 need = state->content_length;
9599 if (avail >= need) {
9600 p += need;
9601 state->content_length = 0;
9602 goto s_n_llhttp__internal__n_span_end_llhttp__on_body_1;
9603 }
9604
9605 state->content_length -= avail;
9606 return s_n_llhttp__internal__n_consume_content_length_1;
9607 /* UNREACHABLE */;
9608 abort();
9609 }
9610 case s_n_llhttp__internal__n_span_start_llhttp__on_body_1:
9611 s_n_llhttp__internal__n_span_start_llhttp__on_body_1: {
9612 if (p == endp) {
9613 return s_n_llhttp__internal__n_span_start_llhttp__on_body_1;
9614 }
9615 state->_span_pos0 = (void*) p;
9616 state->_span_cb0 = llhttp__on_body;
9617 goto s_n_llhttp__internal__n_consume_content_length_1;
9618 /* UNREACHABLE */;
9619 abort();
9620 }
9621 case s_n_llhttp__internal__n_eof:
9622 s_n_llhttp__internal__n_eof: {
9623 if (p == endp) {
9624 return s_n_llhttp__internal__n_eof;
9625 }
9626 p++;
9627 goto s_n_llhttp__internal__n_eof;
9628 /* UNREACHABLE */;
9629 abort();
9630 }
9631 case s_n_llhttp__internal__n_span_start_llhttp__on_body_2:
9632 s_n_llhttp__internal__n_span_start_llhttp__on_body_2: {
9633 if (p == endp) {
9634 return s_n_llhttp__internal__n_span_start_llhttp__on_body_2;
9635 }
9636 state->_span_pos0 = (void*) p;
9637 state->_span_cb0 = llhttp__on_body;
9638 goto s_n_llhttp__internal__n_eof;
9639 /* UNREACHABLE */;
9640 abort();
9641 }
9642 case s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete:
9643 s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete: {
9644 switch (llhttp__after_headers_complete(state, p, endp)) {
9645 case 1:
9646 goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_1;
9647 case 2:
9648 goto s_n_llhttp__internal__n_invoke_update_content_length;
9649 case 3:
9650 goto s_n_llhttp__internal__n_span_start_llhttp__on_body_1;
9651 case 4:
9652 goto s_n_llhttp__internal__n_invoke_update_finish_3;
9653 case 5:
9654 goto s_n_llhttp__internal__n_error_11;
9655 default:
9656 goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete;
9657 }
9658 /* UNREACHABLE */;
9659 abort();
9660 }
9661 case s_n_llhttp__internal__n_headers_almost_done:
9662 s_n_llhttp__internal__n_headers_almost_done: {
9663 if (p == endp) {
9664 return s_n_llhttp__internal__n_headers_almost_done;
9665 }
9666 p++;
9667 goto s_n_llhttp__internal__n_invoke_test_flags;
9668 /* UNREACHABLE */;
9669 abort();
9670 }
9671 case s_n_llhttp__internal__n_header_field_colon_discard_ws:
9672 s_n_llhttp__internal__n_header_field_colon_discard_ws: {
9673 if (p == endp) {
9674 return s_n_llhttp__internal__n_header_field_colon_discard_ws;
9675 }
9676 switch (*p) {
9677 case ' ': {
9678 p++;
9679 goto s_n_llhttp__internal__n_header_field_colon_discard_ws;
9680 }
9681 default: {
9682 goto s_n_llhttp__internal__n_header_field_colon;
9683 }
9684 }
9685 /* UNREACHABLE */;
9686 abort();
9687 }
9688 case s_n_llhttp__internal__n_error_14:
9689 s_n_llhttp__internal__n_error_14: {
9690 state->error = 0xa;
9691 state->reason = "Invalid header field char";
9692 state->error_pos = (const char*) p;
9693 state->_current = (void*) (intptr_t) s_error;
9694 return s_error;
9695 /* UNREACHABLE */;
9696 abort();
9697 }
9698 case s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete:
9699 s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete: {
9700 switch (llhttp__on_header_value_complete(state, p, endp)) {
9701 default:
9702 goto s_n_llhttp__internal__n_header_field_start;
9703 }
9704 /* UNREACHABLE */;
9705 abort();
9706 }
9707 case s_n_llhttp__internal__n_span_start_llhttp__on_header_value:
9708 s_n_llhttp__internal__n_span_start_llhttp__on_header_value: {
9709 if (p == endp) {
9710 return s_n_llhttp__internal__n_span_start_llhttp__on_header_value;
9711 }
9712 state->_span_pos0 = (void*) p;
9713 state->_span_cb0 = llhttp__on_header_value;
9714 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value;
9715 /* UNREACHABLE */;
9716 abort();
9717 }
9718 case s_n_llhttp__internal__n_header_value_discard_lws:
9719 s_n_llhttp__internal__n_header_value_discard_lws: {
9720 if (p == endp) {
9721 return s_n_llhttp__internal__n_header_value_discard_lws;
9722 }
9723 switch (*p) {
9724 case 9: {
9725 p++;
9726 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_4;
9727 }
9728 case ' ': {
9729 p++;
9730 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_4;
9731 }
9732 default: {
9733 goto s_n_llhttp__internal__n_invoke_load_header_state;
9734 }
9735 }
9736 /* UNREACHABLE */;
9737 abort();
9738 }
9739 case s_n_llhttp__internal__n_header_value_discard_ws_almost_done:
9740 s_n_llhttp__internal__n_header_value_discard_ws_almost_done: {
9741 if (p == endp) {
9742 return s_n_llhttp__internal__n_header_value_discard_ws_almost_done;
9743 }
9744 switch (*p) {
9745 case 10: {
9746 p++;
9747 goto s_n_llhttp__internal__n_header_value_discard_lws;
9748 }
9749 default: {
9750 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_5;
9751 }
9752 }
9753 /* UNREACHABLE */;
9754 abort();
9755 }
9756 case s_n_llhttp__internal__n_header_value_lws:
9757 s_n_llhttp__internal__n_header_value_lws: {
9758 if (p == endp) {
9759 return s_n_llhttp__internal__n_header_value_lws;
9760 }
9761 switch (*p) {
9762 case 9: {
9763 goto s_n_llhttp__internal__n_invoke_load_header_state_3;
9764 }
9765 case ' ': {
9766 goto s_n_llhttp__internal__n_invoke_load_header_state_3;
9767 }
9768 default: {
9769 goto s_n_llhttp__internal__n_invoke_load_header_state_4;
9770 }
9771 }
9772 /* UNREACHABLE */;
9773 abort();
9774 }
9775 case s_n_llhttp__internal__n_header_value_almost_done:
9776 s_n_llhttp__internal__n_header_value_almost_done: {
9777 if (p == endp) {
9778 return s_n_llhttp__internal__n_header_value_almost_done;
9779 }
9780 switch (*p) {
9781 case 10: {
9782 p++;
9783 goto s_n_llhttp__internal__n_header_value_lws;
9784 }
9785 default: {
9786 goto s_n_llhttp__internal__n_error_19;
9787 }
9788 }
9789 /* UNREACHABLE */;
9790 abort();
9791 }
9792 case s_n_llhttp__internal__n_header_value_lenient:
9793 s_n_llhttp__internal__n_header_value_lenient: {
9794 if (p == endp) {
9795 return s_n_llhttp__internal__n_header_value_lenient;
9796 }
9797 switch (*p) {
9798 case 10: {
9799 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_3;
9800 }
9801 case 13: {
9802 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_4;
9803 }
9804 default: {
9805 p++;
9806 goto s_n_llhttp__internal__n_header_value_lenient;
9807 }
9808 }
9809 /* UNREACHABLE */;
9810 abort();
9811 }
9812 case s_n_llhttp__internal__n_error_20:
9813 s_n_llhttp__internal__n_error_20: {
9814 state->error = 0xa;
9815 state->reason = "Invalid header value char";
9816 state->error_pos = (const char*) p;
9817 state->_current = (void*) (intptr_t) s_error;
9818 return s_error;
9819 /* UNREACHABLE */;
9820 abort();
9821 }
9822 case s_n_llhttp__internal__n_header_value_otherwise:
9823 s_n_llhttp__internal__n_header_value_otherwise: {
9824 if (p == endp) {
9825 return s_n_llhttp__internal__n_header_value_otherwise;
9826 }
9827 switch (*p) {
9828 case 13: {
9829 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_1;
9830 }
9831 default: {
9832 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_6;
9833 }
9834 }
9835 /* UNREACHABLE */;
9836 abort();
9837 }
9838 case s_n_llhttp__internal__n_header_value_connection_token:
9839 s_n_llhttp__internal__n_header_value_connection_token: {
9840 static uint8_t lookup_table[] = {
9841 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
9842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9843 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
9844 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9845 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9846 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9847 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9848 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
9849 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9850 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9851 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9852 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9853 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9854 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9855 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9856 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
9857 };
9858 if (p == endp) {
9859 return s_n_llhttp__internal__n_header_value_connection_token;
9860 }
9861 switch (lookup_table[(uint8_t) *p]) {
9862 case 1: {
9863 p++;
9864 goto s_n_llhttp__internal__n_header_value_connection_token;
9865 }
9866 case 2: {
9867 p++;
9868 goto s_n_llhttp__internal__n_header_value_connection;
9869 }
9870 default: {
9871 goto s_n_llhttp__internal__n_header_value_otherwise;
9872 }
9873 }
9874 /* UNREACHABLE */;
9875 abort();
9876 }
9877 case s_n_llhttp__internal__n_header_value_connection_ws:
9878 s_n_llhttp__internal__n_header_value_connection_ws: {
9879 if (p == endp) {
9880 return s_n_llhttp__internal__n_header_value_connection_ws;
9881 }
9882 switch (*p) {
9883 case 10: {
9884 goto s_n_llhttp__internal__n_header_value_otherwise;
9885 }
9886 case 13: {
9887 goto s_n_llhttp__internal__n_header_value_otherwise;
9888 }
9889 case ' ': {
9890 p++;
9891 goto s_n_llhttp__internal__n_header_value_connection_ws;
9892 }
9893 case ',': {
9894 p++;
9895 goto s_n_llhttp__internal__n_invoke_load_header_state_5;
9896 }
9897 default: {
9898 goto s_n_llhttp__internal__n_invoke_update_header_state_5;
9899 }
9900 }
9901 /* UNREACHABLE */;
9902 abort();
9903 }
9904 case s_n_llhttp__internal__n_header_value_connection_1:
9905 s_n_llhttp__internal__n_header_value_connection_1: {
9906 llparse_match_t match_seq;
9907
9908 if (p == endp) {
9909 return s_n_llhttp__internal__n_header_value_connection_1;
9910 }
9911 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob3, 4);
9912 p = match_seq.current;
9913 switch (match_seq.status) {
9914 case kMatchComplete: {
9915 p++;
9916 goto s_n_llhttp__internal__n_invoke_update_header_state_3;
9917 }
9918 case kMatchPause: {
9919 return s_n_llhttp__internal__n_header_value_connection_1;
9920 }
9921 case kMatchMismatch: {
9922 goto s_n_llhttp__internal__n_header_value_connection_token;
9923 }
9924 }
9925 /* UNREACHABLE */;
9926 abort();
9927 }
9928 case s_n_llhttp__internal__n_header_value_connection_2:
9929 s_n_llhttp__internal__n_header_value_connection_2: {
9930 llparse_match_t match_seq;
9931
9932 if (p == endp) {
9933 return s_n_llhttp__internal__n_header_value_connection_2;
9934 }
9935 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob4, 9);
9936 p = match_seq.current;
9937 switch (match_seq.status) {
9938 case kMatchComplete: {
9939 p++;
9940 goto s_n_llhttp__internal__n_invoke_update_header_state_6;
9941 }
9942 case kMatchPause: {
9943 return s_n_llhttp__internal__n_header_value_connection_2;
9944 }
9945 case kMatchMismatch: {
9946 goto s_n_llhttp__internal__n_header_value_connection_token;
9947 }
9948 }
9949 /* UNREACHABLE */;
9950 abort();
9951 }
9952 case s_n_llhttp__internal__n_header_value_connection_3:
9953 s_n_llhttp__internal__n_header_value_connection_3: {
9954 llparse_match_t match_seq;
9955
9956 if (p == endp) {
9957 return s_n_llhttp__internal__n_header_value_connection_3;
9958 }
9959 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob5, 6);
9960 p = match_seq.current;
9961 switch (match_seq.status) {
9962 case kMatchComplete: {
9963 p++;
9964 goto s_n_llhttp__internal__n_invoke_update_header_state_7;
9965 }
9966 case kMatchPause: {
9967 return s_n_llhttp__internal__n_header_value_connection_3;
9968 }
9969 case kMatchMismatch: {
9970 goto s_n_llhttp__internal__n_header_value_connection_token;
9971 }
9972 }
9973 /* UNREACHABLE */;
9974 abort();
9975 }
9976 case s_n_llhttp__internal__n_header_value_connection:
9977 s_n_llhttp__internal__n_header_value_connection: {
9978 if (p == endp) {
9979 return s_n_llhttp__internal__n_header_value_connection;
9980 }
9981 switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) {
9982 case 9: {
9983 p++;
9984 goto s_n_llhttp__internal__n_header_value_connection;
9985 }
9986 case ' ': {
9987 p++;
9988 goto s_n_llhttp__internal__n_header_value_connection;
9989 }
9990 case 'c': {
9991 p++;
9992 goto s_n_llhttp__internal__n_header_value_connection_1;
9993 }
9994 case 'k': {
9995 p++;
9996 goto s_n_llhttp__internal__n_header_value_connection_2;
9997 }
9998 case 'u': {
9999 p++;
10000 goto s_n_llhttp__internal__n_header_value_connection_3;
10001 }
10002 default: {
10003 goto s_n_llhttp__internal__n_header_value_connection_token;
10004 }
10005 }
10006 /* UNREACHABLE */;
10007 abort();
10008 }
10009 case s_n_llhttp__internal__n_error_22:
10010 s_n_llhttp__internal__n_error_22: {
10011 state->error = 0xb;
10012 state->reason = "Content-Length overflow";
10013 state->error_pos = (const char*) p;
10014 state->_current = (void*) (intptr_t) s_error;
10015 return s_error;
10016 /* UNREACHABLE */;
10017 abort();
10018 }
10019 case s_n_llhttp__internal__n_error_23:
10020 s_n_llhttp__internal__n_error_23: {
10021 state->error = 0xb;
10022 state->reason = "Invalid character in Content-Length";
10023 state->error_pos = (const char*) p;
10024 state->_current = (void*) (intptr_t) s_error;
10025 return s_error;
10026 /* UNREACHABLE */;
10027 abort();
10028 }
10029 case s_n_llhttp__internal__n_header_value_content_length_ws:
10030 s_n_llhttp__internal__n_header_value_content_length_ws: {
10031 if (p == endp) {
10032 return s_n_llhttp__internal__n_header_value_content_length_ws;
10033 }
10034 switch (*p) {
10035 case 10: {
10036 goto s_n_llhttp__internal__n_invoke_or_flags_15;
10037 }
10038 case 13: {
10039 goto s_n_llhttp__internal__n_invoke_or_flags_15;
10040 }
10041 case ' ': {
10042 p++;
10043 goto s_n_llhttp__internal__n_header_value_content_length_ws;
10044 }
10045 default: {
10046 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_6;
10047 }
10048 }
10049 /* UNREACHABLE */;
10050 abort();
10051 }
10052 case s_n_llhttp__internal__n_header_value_content_length:
10053 s_n_llhttp__internal__n_header_value_content_length: {
10054 if (p == endp) {
10055 return s_n_llhttp__internal__n_header_value_content_length;
10056 }
10057 switch (*p) {
10058 case '0': {
10059 p++;
10060 match = 0;
10061 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
10062 }
10063 case '1': {
10064 p++;
10065 match = 1;
10066 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
10067 }
10068 case '2': {
10069 p++;
10070 match = 2;
10071 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
10072 }
10073 case '3': {
10074 p++;
10075 match = 3;
10076 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
10077 }
10078 case '4': {
10079 p++;
10080 match = 4;
10081 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
10082 }
10083 case '5': {
10084 p++;
10085 match = 5;
10086 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
10087 }
10088 case '6': {
10089 p++;
10090 match = 6;
10091 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
10092 }
10093 case '7': {
10094 p++;
10095 match = 7;
10096 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
10097 }
10098 case '8': {
10099 p++;
10100 match = 8;
10101 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
10102 }
10103 case '9': {
10104 p++;
10105 match = 9;
10106 goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1;
10107 }
10108 default: {
10109 goto s_n_llhttp__internal__n_header_value_content_length_ws;
10110 }
10111 }
10112 /* UNREACHABLE */;
10113 abort();
10114 }
10115 case s_n_llhttp__internal__n_error_25:
10116 s_n_llhttp__internal__n_error_25: {
10117 state->error = 0xf;
10118 state->reason = "Invalid `Transfer-Encoding` header value";
10119 state->error_pos = (const char*) p;
10120 state->_current = (void*) (intptr_t) s_error;
10121 return s_error;
10122 /* UNREACHABLE */;
10123 abort();
10124 }
10125 case s_n_llhttp__internal__n_error_24:
10126 s_n_llhttp__internal__n_error_24: {
10127 state->error = 0xf;
10128 state->reason = "Invalid `Transfer-Encoding` header value";
10129 state->error_pos = (const char*) p;
10130 state->_current = (void*) (intptr_t) s_error;
10131 return s_error;
10132 /* UNREACHABLE */;
10133 abort();
10134 }
10135 case s_n_llhttp__internal__n_header_value_te_token_ows:
10136 s_n_llhttp__internal__n_header_value_te_token_ows: {
10137 if (p == endp) {
10138 return s_n_llhttp__internal__n_header_value_te_token_ows;
10139 }
10140 switch (*p) {
10141 case 9: {
10142 p++;
10143 goto s_n_llhttp__internal__n_header_value_te_token_ows;
10144 }
10145 case ' ': {
10146 p++;
10147 goto s_n_llhttp__internal__n_header_value_te_token_ows;
10148 }
10149 default: {
10150 goto s_n_llhttp__internal__n_header_value_te_chunked;
10151 }
10152 }
10153 /* UNREACHABLE */;
10154 abort();
10155 }
10156 case s_n_llhttp__internal__n_header_value:
10157 s_n_llhttp__internal__n_header_value: {
10158 static uint8_t lookup_table[] = {
10159 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
10160 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10161 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10162 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10163 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10164 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10165 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10166 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
10167 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10168 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10169 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10170 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10171 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10172 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10173 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10174 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
10175 };
10176 if (p == endp) {
10177 return s_n_llhttp__internal__n_header_value;
10178 }
10179 #ifdef __SSE4_2__
10180 if (endp - p >= 16) {
10181 __m128i ranges;
10182 __m128i input;
10183 int avail;
10184 int match_len;
10185
10186 /* Load input */
10187 input = _mm_loadu_si128((__m128i const*) p);
10188 ranges = _mm_loadu_si128((__m128i const*) llparse_blob7);
10189
10190 /* Find first character that does not match `ranges` */
10191 match_len = _mm_cmpestri(ranges, 6,
10192 input, 16,
10193 _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES |
10194 _SIDD_NEGATIVE_POLARITY);
10195
10196 if (match_len != 0) {
10197 p += match_len;
10198 goto s_n_llhttp__internal__n_header_value;
10199 }
10200 goto s_n_llhttp__internal__n_header_value_otherwise;
10201 }
10202 #endif /* __SSE4_2__ */
10203 switch (lookup_table[(uint8_t) *p]) {
10204 case 1: {
10205 p++;
10206 goto s_n_llhttp__internal__n_header_value;
10207 }
10208 default: {
10209 goto s_n_llhttp__internal__n_header_value_otherwise;
10210 }
10211 }
10212 /* UNREACHABLE */;
10213 abort();
10214 }
10215 case s_n_llhttp__internal__n_header_value_te_token:
10216 s_n_llhttp__internal__n_header_value_te_token: {
10217 static uint8_t lookup_table[] = {
10218 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
10219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10220 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
10221 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10222 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10223 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10224 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10225 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
10226 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10227 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10228 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10229 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10230 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10231 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10232 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10233 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
10234 };
10235 if (p == endp) {
10236 return s_n_llhttp__internal__n_header_value_te_token;
10237 }
10238 switch (lookup_table[(uint8_t) *p]) {
10239 case 1: {
10240 p++;
10241 goto s_n_llhttp__internal__n_header_value_te_token;
10242 }
10243 case 2: {
10244 p++;
10245 goto s_n_llhttp__internal__n_header_value_te_token_ows;
10246 }
10247 default: {
10248 goto s_n_llhttp__internal__n_invoke_update_header_state_9;
10249 }
10250 }
10251 /* UNREACHABLE */;
10252 abort();
10253 }
10254 case s_n_llhttp__internal__n_header_value_te_chunked_last:
10255 s_n_llhttp__internal__n_header_value_te_chunked_last: {
10256 if (p == endp) {
10257 return s_n_llhttp__internal__n_header_value_te_chunked_last;
10258 }
10259 switch (*p) {
10260 case 10: {
10261 goto s_n_llhttp__internal__n_invoke_update_header_state_8;
10262 }
10263 case 13: {
10264 goto s_n_llhttp__internal__n_invoke_update_header_state_8;
10265 }
10266 case ' ': {
10267 p++;
10268 goto s_n_llhttp__internal__n_header_value_te_chunked_last;
10269 }
10270 case ',': {
10271 goto s_n_llhttp__internal__n_invoke_load_type_1;
10272 }
10273 default: {
10274 goto s_n_llhttp__internal__n_header_value_te_token;
10275 }
10276 }
10277 /* UNREACHABLE */;
10278 abort();
10279 }
10280 case s_n_llhttp__internal__n_header_value_te_chunked:
10281 s_n_llhttp__internal__n_header_value_te_chunked: {
10282 llparse_match_t match_seq;
10283
10284 if (p == endp) {
10285 return s_n_llhttp__internal__n_header_value_te_chunked;
10286 }
10287 match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob6, 7);
10288 p = match_seq.current;
10289 switch (match_seq.status) {
10290 case kMatchComplete: {
10291 p++;
10292 goto s_n_llhttp__internal__n_header_value_te_chunked_last;
10293 }
10294 case kMatchPause: {
10295 return s_n_llhttp__internal__n_header_value_te_chunked;
10296 }
10297 case kMatchMismatch: {
10298 goto s_n_llhttp__internal__n_header_value_te_token;
10299 }
10300 }
10301 /* UNREACHABLE */;
10302 abort();
10303 }
10304 case s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1:
10305 s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1: {
10306 if (p == endp) {
10307 return s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
10308 }
10309 state->_span_pos0 = (void*) p;
10310 state->_span_cb0 = llhttp__on_header_value;
10311 goto s_n_llhttp__internal__n_invoke_load_header_state_2;
10312 /* UNREACHABLE */;
10313 abort();
10314 }
10315 case s_n_llhttp__internal__n_header_value_discard_ws:
10316 s_n_llhttp__internal__n_header_value_discard_ws: {
10317 if (p == endp) {
10318 return s_n_llhttp__internal__n_header_value_discard_ws;
10319 }
10320 switch (*p) {
10321 case 9: {
10322 p++;
10323 goto s_n_llhttp__internal__n_header_value_discard_ws;
10324 }
10325 case 10: {
10326 p++;
10327 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_3;
10328 }
10329 case 13: {
10330 p++;
10331 goto s_n_llhttp__internal__n_header_value_discard_ws_almost_done;
10332 }
10333 case ' ': {
10334 p++;
10335 goto s_n_llhttp__internal__n_header_value_discard_ws;
10336 }
10337 default: {
10338 goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
10339 }
10340 }
10341 /* UNREACHABLE */;
10342 abort();
10343 }
10344 case s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete:
10345 s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete: {
10346 switch (llhttp__on_header_field_complete(state, p, endp)) {
10347 default:
10348 goto s_n_llhttp__internal__n_header_value_discard_ws;
10349 }
10350 /* UNREACHABLE */;
10351 abort();
10352 }
10353 case s_n_llhttp__internal__n_header_field_general_otherwise:
10354 s_n_llhttp__internal__n_header_field_general_otherwise: {
10355 if (p == endp) {
10356 return s_n_llhttp__internal__n_header_field_general_otherwise;
10357 }
10358 switch (*p) {
10359 case ':': {
10360 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field_2;
10361 }
10362 default: {
10363 goto s_n_llhttp__internal__n_error_26;
10364 }
10365 }
10366 /* UNREACHABLE */;
10367 abort();
10368 }
10369 case s_n_llhttp__internal__n_header_field_general:
10370 s_n_llhttp__internal__n_header_field_general: {
10371 static uint8_t lookup_table[] = {
10372 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10373 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10374 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,
10375 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
10376 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10377 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,
10378 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10379 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,
10380 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10381 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10382 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10384 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10385 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10386 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10387 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
10388 };
10389 if (p == endp) {
10390 return s_n_llhttp__internal__n_header_field_general;
10391 }
10392 #ifdef __SSE4_2__
10393 if (endp - p >= 16) {
10394 __m128i ranges;
10395 __m128i input;
10396 int avail;
10397 int match_len;
10398
10399 /* Load input */
10400 input = _mm_loadu_si128((__m128i const*) p);
10401 ranges = _mm_loadu_si128((__m128i const*) llparse_blob8);
10402
10403 /* Find first character that does not match `ranges` */
10404 match_len = _mm_cmpestri(ranges, 16,
10405 input, 16,
10406 _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES |
10407 _SIDD_NEGATIVE_POLARITY);
10408
10409 if (match_len != 0) {
10410 p += match_len;
10411 goto s_n_llhttp__internal__n_header_field_general;
10412 }
10413 ranges = _mm_loadu_si128((__m128i const*) llparse_blob9);
10414
10415 /* Find first character that does not match `ranges` */
10416 match_len = _mm_cmpestri(ranges, 2,
10417 input, 16,
10418 _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES |
10419 _SIDD_NEGATIVE_POLARITY);
10420
10421 if (match_len != 0) {
10422 p += match_len;
10423 goto s_n_llhttp__internal__n_header_field_general;
10424 }
10425 goto s_n_llhttp__internal__n_header_field_general_otherwise;
10426 }
10427 #endif /* __SSE4_2__ */
10428 switch (lookup_table[(uint8_t) *p]) {
10429 case 1: {
10430 p++;
10431 goto s_n_llhttp__internal__n_header_field_general;
10432 }
10433 default: {
10434 goto s_n_llhttp__internal__n_header_field_general_otherwise;
10435 }
10436 }
10437 /* UNREACHABLE */;
10438 abort();
10439 }
10440 case s_n_llhttp__internal__n_header_field_colon:
10441 s_n_llhttp__internal__n_header_field_colon: {
10442 if (p == endp) {
10443 return s_n_llhttp__internal__n_header_field_colon;
10444 }
10445 switch (*p) {
10446 case ' ': {
10447 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_2;
10448 }
10449 case ':': {
10450 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field_1;
10451 }
10452 default: {
10453 goto s_n_llhttp__internal__n_invoke_update_header_state_10;
10454 }
10455 }
10456 /* UNREACHABLE */;
10457 abort();
10458 }
10459 case s_n_llhttp__internal__n_header_field_3:
10460 s_n_llhttp__internal__n_header_field_3: {
10461 llparse_match_t match_seq;
10462
10463 if (p == endp) {
10464 return s_n_llhttp__internal__n_header_field_3;
10465 }
10466 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob2, 6);
10467 p = match_seq.current;
10468 switch (match_seq.status) {
10469 case kMatchComplete: {
10470 p++;
10471 match = 1;
10472 goto s_n_llhttp__internal__n_invoke_store_header_state;
10473 }
10474 case kMatchPause: {
10475 return s_n_llhttp__internal__n_header_field_3;
10476 }
10477 case kMatchMismatch: {
10478 goto s_n_llhttp__internal__n_invoke_update_header_state_11;
10479 }
10480 }
10481 /* UNREACHABLE */;
10482 abort();
10483 }
10484 case s_n_llhttp__internal__n_header_field_4:
10485 s_n_llhttp__internal__n_header_field_4: {
10486 llparse_match_t match_seq;
10487
10488 if (p == endp) {
10489 return s_n_llhttp__internal__n_header_field_4;
10490 }
10491 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob10, 10);
10492 p = match_seq.current;
10493 switch (match_seq.status) {
10494 case kMatchComplete: {
10495 p++;
10496 match = 2;
10497 goto s_n_llhttp__internal__n_invoke_store_header_state;
10498 }
10499 case kMatchPause: {
10500 return s_n_llhttp__internal__n_header_field_4;
10501 }
10502 case kMatchMismatch: {
10503 goto s_n_llhttp__internal__n_invoke_update_header_state_11;
10504 }
10505 }
10506 /* UNREACHABLE */;
10507 abort();
10508 }
10509 case s_n_llhttp__internal__n_header_field_2:
10510 s_n_llhttp__internal__n_header_field_2: {
10511 if (p == endp) {
10512 return s_n_llhttp__internal__n_header_field_2;
10513 }
10514 switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) {
10515 case 'n': {
10516 p++;
10517 goto s_n_llhttp__internal__n_header_field_3;
10518 }
10519 case 't': {
10520 p++;
10521 goto s_n_llhttp__internal__n_header_field_4;
10522 }
10523 default: {
10524 goto s_n_llhttp__internal__n_invoke_update_header_state_11;
10525 }
10526 }
10527 /* UNREACHABLE */;
10528 abort();
10529 }
10530 case s_n_llhttp__internal__n_header_field_1:
10531 s_n_llhttp__internal__n_header_field_1: {
10532 llparse_match_t match_seq;
10533
10534 if (p == endp) {
10535 return s_n_llhttp__internal__n_header_field_1;
10536 }
10537 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob1, 2);
10538 p = match_seq.current;
10539 switch (match_seq.status) {
10540 case kMatchComplete: {
10541 p++;
10542 goto s_n_llhttp__internal__n_header_field_2;
10543 }
10544 case kMatchPause: {
10545 return s_n_llhttp__internal__n_header_field_1;
10546 }
10547 case kMatchMismatch: {
10548 goto s_n_llhttp__internal__n_invoke_update_header_state_11;
10549 }
10550 }
10551 /* UNREACHABLE */;
10552 abort();
10553 }
10554 case s_n_llhttp__internal__n_header_field_5:
10555 s_n_llhttp__internal__n_header_field_5: {
10556 llparse_match_t match_seq;
10557
10558 if (p == endp) {
10559 return s_n_llhttp__internal__n_header_field_5;
10560 }
10561 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob11, 15);
10562 p = match_seq.current;
10563 switch (match_seq.status) {
10564 case kMatchComplete: {
10565 p++;
10566 match = 1;
10567 goto s_n_llhttp__internal__n_invoke_store_header_state;
10568 }
10569 case kMatchPause: {
10570 return s_n_llhttp__internal__n_header_field_5;
10571 }
10572 case kMatchMismatch: {
10573 goto s_n_llhttp__internal__n_invoke_update_header_state_11;
10574 }
10575 }
10576 /* UNREACHABLE */;
10577 abort();
10578 }
10579 case s_n_llhttp__internal__n_header_field_6:
10580 s_n_llhttp__internal__n_header_field_6: {
10581 llparse_match_t match_seq;
10582
10583 if (p == endp) {
10584 return s_n_llhttp__internal__n_header_field_6;
10585 }
10586 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob12, 16);
10587 p = match_seq.current;
10588 switch (match_seq.status) {
10589 case kMatchComplete: {
10590 p++;
10591 match = 3;
10592 goto s_n_llhttp__internal__n_invoke_store_header_state;
10593 }
10594 case kMatchPause: {
10595 return s_n_llhttp__internal__n_header_field_6;
10596 }
10597 case kMatchMismatch: {
10598 goto s_n_llhttp__internal__n_invoke_update_header_state_11;
10599 }
10600 }
10601 /* UNREACHABLE */;
10602 abort();
10603 }
10604 case s_n_llhttp__internal__n_header_field_7:
10605 s_n_llhttp__internal__n_header_field_7: {
10606 llparse_match_t match_seq;
10607
10608 if (p == endp) {
10609 return s_n_llhttp__internal__n_header_field_7;
10610 }
10611 match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob13, 6);
10612 p = match_seq.current;
10613 switch (match_seq.status) {
10614 case kMatchComplete: {
10615 p++;
10616 match = 4;
10617 goto s_n_llhttp__internal__n_invoke_store_header_state;
10618 }
10619 case kMatchPause: {
10620 return s_n_llhttp__internal__n_header_field_7;
10621 }
10622 case kMatchMismatch: {
10623 goto s_n_llhttp__internal__n_invoke_update_header_state_11;
10624 }
10625 }
10626 /* UNREACHABLE */;
10627 abort();
10628 }
10629 case s_n_llhttp__internal__n_header_field:
10630 s_n_llhttp__internal__n_header_field: {
10631 if (p == endp) {
10632 return s_n_llhttp__internal__n_header_field;
10633 }
10634 switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) {
10635 case 'c': {
10636 p++;
10637 goto s_n_llhttp__internal__n_header_field_1;
10638 }
10639 case 'p': {
10640 p++;
10641 goto s_n_llhttp__internal__n_header_field_5;
10642 }
10643 case 't': {
10644 p++;
10645 goto s_n_llhttp__internal__n_header_field_6;
10646 }
10647 case 'u': {
10648 p++;
10649 goto s_n_llhttp__internal__n_header_field_7;
10650 }
10651 default: {
10652 goto s_n_llhttp__internal__n_invoke_update_header_state_11;
10653 }
10654 }
10655 /* UNREACHABLE */;
10656 abort();
10657 }
10658 case s_n_llhttp__internal__n_span_start_llhttp__on_header_field:
10659 s_n_llhttp__internal__n_span_start_llhttp__on_header_field: {
10660 if (p == endp) {
10661 return s_n_llhttp__internal__n_span_start_llhttp__on_header_field;
10662 }
10663 state->_span_pos0 = (void*) p;
10664 state->_span_cb0 = llhttp__on_header_field;
10665 goto s_n_llhttp__internal__n_header_field;
10666 /* UNREACHABLE */;
10667 abort();
10668 }
10669 case s_n_llhttp__internal__n_header_field_start:
10670 s_n_llhttp__internal__n_header_field_start: {
10671 if (p == endp) {
10672 return s_n_llhttp__internal__n_header_field_start;
10673 }
10674 switch (*p) {
10675 case 10: {
10676 goto s_n_llhttp__internal__n_headers_almost_done;
10677 }
10678 case 13: {
10679 p++;
10680 goto s_n_llhttp__internal__n_headers_almost_done;
10681 }
10682 default: {
10683 goto s_n_llhttp__internal__n_span_start_llhttp__on_header_field;
10684 }
10685 }
10686 /* UNREACHABLE */;
10687 abort();
10688 }
10689 case s_n_llhttp__internal__n_url_skip_to_http09:
10690 s_n_llhttp__internal__n_url_skip_to_http09: {
10691 if (p == endp) {
10692 return s_n_llhttp__internal__n_url_skip_to_http09;
10693 }
10694 p++;
10695 goto s_n_llhttp__internal__n_invoke_update_http_major;
10696 /* UNREACHABLE */;
10697 abort();
10698 }
10699 case s_n_llhttp__internal__n_url_skip_lf_to_http09:
10700 s_n_llhttp__internal__n_url_skip_lf_to_http09: {
10701 llparse_match_t match_seq;
10702
10703 if (p == endp) {
10704 return s_n_llhttp__internal__n_url_skip_lf_to_http09;
10705 }
10706 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob14, 2);
10707 p = match_seq.current;
10708 switch (match_seq.status) {
10709 case kMatchComplete: {
10710 p++;
10711 goto s_n_llhttp__internal__n_invoke_update_http_major;
10712 }
10713 case kMatchPause: {
10714 return s_n_llhttp__internal__n_url_skip_lf_to_http09;
10715 }
10716 case kMatchMismatch: {
10717 goto s_n_llhttp__internal__n_error_27;
10718 }
10719 }
10720 /* UNREACHABLE */;
10721 abort();
10722 }
10723 case s_n_llhttp__internal__n_req_pri_upgrade:
10724 s_n_llhttp__internal__n_req_pri_upgrade: {
10725 llparse_match_t match_seq;
10726
10727 if (p == endp) {
10728 return s_n_llhttp__internal__n_req_pri_upgrade;
10729 }
10730 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob16, 10);
10731 p = match_seq.current;
10732 switch (match_seq.status) {
10733 case kMatchComplete: {
10734 p++;
10735 goto s_n_llhttp__internal__n_error_32;
10736 }
10737 case kMatchPause: {
10738 return s_n_llhttp__internal__n_req_pri_upgrade;
10739 }
10740 case kMatchMismatch: {
10741 goto s_n_llhttp__internal__n_error_33;
10742 }
10743 }
10744 /* UNREACHABLE */;
10745 abort();
10746 }
10747 case s_n_llhttp__internal__n_req_http_complete_1:
10748 s_n_llhttp__internal__n_req_http_complete_1: {
10749 if (p == endp) {
10750 return s_n_llhttp__internal__n_req_http_complete_1;
10751 }
10752 switch (*p) {
10753 case 10: {
10754 p++;
10755 goto s_n_llhttp__internal__n_header_field_start;
10756 }
10757 default: {
10758 goto s_n_llhttp__internal__n_error_31;
10759 }
10760 }
10761 /* UNREACHABLE */;
10762 abort();
10763 }
10764 case s_n_llhttp__internal__n_req_http_complete:
10765 s_n_llhttp__internal__n_req_http_complete: {
10766 if (p == endp) {
10767 return s_n_llhttp__internal__n_req_http_complete;
10768 }
10769 switch (*p) {
10770 case 10: {
10771 p++;
10772 goto s_n_llhttp__internal__n_header_field_start;
10773 }
10774 case 13: {
10775 p++;
10776 goto s_n_llhttp__internal__n_req_http_complete_1;
10777 }
10778 default: {
10779 goto s_n_llhttp__internal__n_error_31;
10780 }
10781 }
10782 /* UNREACHABLE */;
10783 abort();
10784 }
10785 case s_n_llhttp__internal__n_req_http_minor:
10786 s_n_llhttp__internal__n_req_http_minor: {
10787 if (p == endp) {
10788 return s_n_llhttp__internal__n_req_http_minor;
10789 }
10790 switch (*p) {
10791 case '0': {
10792 p++;
10793 match = 0;
10794 goto s_n_llhttp__internal__n_invoke_store_http_minor;
10795 }
10796 case '1': {
10797 p++;
10798 match = 1;
10799 goto s_n_llhttp__internal__n_invoke_store_http_minor;
10800 }
10801 case '2': {
10802 p++;
10803 match = 2;
10804 goto s_n_llhttp__internal__n_invoke_store_http_minor;
10805 }
10806 case '3': {
10807 p++;
10808 match = 3;
10809 goto s_n_llhttp__internal__n_invoke_store_http_minor;
10810 }
10811 case '4': {
10812 p++;
10813 match = 4;
10814 goto s_n_llhttp__internal__n_invoke_store_http_minor;
10815 }
10816 case '5': {
10817 p++;
10818 match = 5;
10819 goto s_n_llhttp__internal__n_invoke_store_http_minor;
10820 }
10821 case '6': {
10822 p++;
10823 match = 6;
10824 goto s_n_llhttp__internal__n_invoke_store_http_minor;
10825 }
10826 case '7': {
10827 p++;
10828 match = 7;
10829 goto s_n_llhttp__internal__n_invoke_store_http_minor;
10830 }
10831 case '8': {
10832 p++;
10833 match = 8;
10834 goto s_n_llhttp__internal__n_invoke_store_http_minor;
10835 }
10836 case '9': {
10837 p++;
10838 match = 9;
10839 goto s_n_llhttp__internal__n_invoke_store_http_minor;
10840 }
10841 default: {
10842 goto s_n_llhttp__internal__n_error_36;
10843 }
10844 }
10845 /* UNREACHABLE */;
10846 abort();
10847 }
10848 case s_n_llhttp__internal__n_req_http_dot:
10849 s_n_llhttp__internal__n_req_http_dot: {
10850 if (p == endp) {
10851 return s_n_llhttp__internal__n_req_http_dot;
10852 }
10853 switch (*p) {
10854 case '.': {
10855 p++;
10856 goto s_n_llhttp__internal__n_req_http_minor;
10857 }
10858 default: {
10859 goto s_n_llhttp__internal__n_error_37;
10860 }
10861 }
10862 /* UNREACHABLE */;
10863 abort();
10864 }
10865 case s_n_llhttp__internal__n_req_http_major:
10866 s_n_llhttp__internal__n_req_http_major: {
10867 if (p == endp) {
10868 return s_n_llhttp__internal__n_req_http_major;
10869 }
10870 switch (*p) {
10871 case '0': {
10872 p++;
10873 match = 0;
10874 goto s_n_llhttp__internal__n_invoke_store_http_major;
10875 }
10876 case '1': {
10877 p++;
10878 match = 1;
10879 goto s_n_llhttp__internal__n_invoke_store_http_major;
10880 }
10881 case '2': {
10882 p++;
10883 match = 2;
10884 goto s_n_llhttp__internal__n_invoke_store_http_major;
10885 }
10886 case '3': {
10887 p++;
10888 match = 3;
10889 goto s_n_llhttp__internal__n_invoke_store_http_major;
10890 }
10891 case '4': {
10892 p++;
10893 match = 4;
10894 goto s_n_llhttp__internal__n_invoke_store_http_major;
10895 }
10896 case '5': {
10897 p++;
10898 match = 5;
10899 goto s_n_llhttp__internal__n_invoke_store_http_major;
10900 }
10901 case '6': {
10902 p++;
10903 match = 6;
10904 goto s_n_llhttp__internal__n_invoke_store_http_major;
10905 }
10906 case '7': {
10907 p++;
10908 match = 7;
10909 goto s_n_llhttp__internal__n_invoke_store_http_major;
10910 }
10911 case '8': {
10912 p++;
10913 match = 8;
10914 goto s_n_llhttp__internal__n_invoke_store_http_major;
10915 }
10916 case '9': {
10917 p++;
10918 match = 9;
10919 goto s_n_llhttp__internal__n_invoke_store_http_major;
10920 }
10921 default: {
10922 goto s_n_llhttp__internal__n_error_38;
10923 }
10924 }
10925 /* UNREACHABLE */;
10926 abort();
10927 }
10928 case s_n_llhttp__internal__n_req_http_start_1:
10929 s_n_llhttp__internal__n_req_http_start_1: {
10930 llparse_match_t match_seq;
10931
10932 if (p == endp) {
10933 return s_n_llhttp__internal__n_req_http_start_1;
10934 }
10935 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob15, 4);
10936 p = match_seq.current;
10937 switch (match_seq.status) {
10938 case kMatchComplete: {
10939 p++;
10940 goto s_n_llhttp__internal__n_invoke_load_method;
10941 }
10942 case kMatchPause: {
10943 return s_n_llhttp__internal__n_req_http_start_1;
10944 }
10945 case kMatchMismatch: {
10946 goto s_n_llhttp__internal__n_error_41;
10947 }
10948 }
10949 /* UNREACHABLE */;
10950 abort();
10951 }
10952 case s_n_llhttp__internal__n_req_http_start_2:
10953 s_n_llhttp__internal__n_req_http_start_2: {
10954 llparse_match_t match_seq;
10955
10956 if (p == endp) {
10957 return s_n_llhttp__internal__n_req_http_start_2;
10958 }
10959 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob17, 3);
10960 p = match_seq.current;
10961 switch (match_seq.status) {
10962 case kMatchComplete: {
10963 p++;
10964 goto s_n_llhttp__internal__n_invoke_load_method_2;
10965 }
10966 case kMatchPause: {
10967 return s_n_llhttp__internal__n_req_http_start_2;
10968 }
10969 case kMatchMismatch: {
10970 goto s_n_llhttp__internal__n_error_41;
10971 }
10972 }
10973 /* UNREACHABLE */;
10974 abort();
10975 }
10976 case s_n_llhttp__internal__n_req_http_start_3:
10977 s_n_llhttp__internal__n_req_http_start_3: {
10978 llparse_match_t match_seq;
10979
10980 if (p == endp) {
10981 return s_n_llhttp__internal__n_req_http_start_3;
10982 }
10983 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob18, 4);
10984 p = match_seq.current;
10985 switch (match_seq.status) {
10986 case kMatchComplete: {
10987 p++;
10988 goto s_n_llhttp__internal__n_invoke_load_method_3;
10989 }
10990 case kMatchPause: {
10991 return s_n_llhttp__internal__n_req_http_start_3;
10992 }
10993 case kMatchMismatch: {
10994 goto s_n_llhttp__internal__n_error_41;
10995 }
10996 }
10997 /* UNREACHABLE */;
10998 abort();
10999 }
11000 case s_n_llhttp__internal__n_req_http_start:
11001 s_n_llhttp__internal__n_req_http_start: {
11002 if (p == endp) {
11003 return s_n_llhttp__internal__n_req_http_start;
11004 }
11005 switch (*p) {
11006 case ' ': {
11007 p++;
11008 goto s_n_llhttp__internal__n_req_http_start;
11009 }
11010 case 'H': {
11011 p++;
11012 goto s_n_llhttp__internal__n_req_http_start_1;
11013 }
11014 case 'I': {
11015 p++;
11016 goto s_n_llhttp__internal__n_req_http_start_2;
11017 }
11018 case 'R': {
11019 p++;
11020 goto s_n_llhttp__internal__n_req_http_start_3;
11021 }
11022 default: {
11023 goto s_n_llhttp__internal__n_error_41;
11024 }
11025 }
11026 /* UNREACHABLE */;
11027 abort();
11028 }
11029 case s_n_llhttp__internal__n_url_skip_to_http:
11030 s_n_llhttp__internal__n_url_skip_to_http: {
11031 if (p == endp) {
11032 return s_n_llhttp__internal__n_url_skip_to_http;
11033 }
11034 p++;
11035 goto s_n_llhttp__internal__n_invoke_llhttp__on_url_complete_1;
11036 /* UNREACHABLE */;
11037 abort();
11038 }
11039 case s_n_llhttp__internal__n_url_fragment:
11040 s_n_llhttp__internal__n_url_fragment: {
11041 static uint8_t lookup_table[] = {
11042 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0,
11043 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11044 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11045 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11046 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11047 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11048 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11049 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
11050 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11051 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11052 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11053 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11054 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11055 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11056 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11057 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
11058 };
11059 if (p == endp) {
11060 return s_n_llhttp__internal__n_url_fragment;
11061 }
11062 switch (lookup_table[(uint8_t) *p]) {
11063 case 1: {
11064 p++;
11065 goto s_n_llhttp__internal__n_url_fragment;
11066 }
11067 case 2: {
11068 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_6;
11069 }
11070 case 3: {
11071 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_7;
11072 }
11073 case 4: {
11074 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_8;
11075 }
11076 default: {
11077 goto s_n_llhttp__internal__n_error_42;
11078 }
11079 }
11080 /* UNREACHABLE */;
11081 abort();
11082 }
11083 case s_n_llhttp__internal__n_span_end_stub_query_3:
11084 s_n_llhttp__internal__n_span_end_stub_query_3: {
11085 if (p == endp) {
11086 return s_n_llhttp__internal__n_span_end_stub_query_3;
11087 }
11088 p++;
11089 goto s_n_llhttp__internal__n_url_fragment;
11090 /* UNREACHABLE */;
11091 abort();
11092 }
11093 case s_n_llhttp__internal__n_url_query:
11094 s_n_llhttp__internal__n_url_query: {
11095 static uint8_t lookup_table[] = {
11096 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0,
11097 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11098 4, 1, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11099 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11100 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11101 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11102 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11103 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
11104 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11105 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11106 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11107 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11108 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11109 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11110 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11111 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
11112 };
11113 if (p == endp) {
11114 return s_n_llhttp__internal__n_url_query;
11115 }
11116 switch (lookup_table[(uint8_t) *p]) {
11117 case 1: {
11118 p++;
11119 goto s_n_llhttp__internal__n_url_query;
11120 }
11121 case 2: {
11122 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_9;
11123 }
11124 case 3: {
11125 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_10;
11126 }
11127 case 4: {
11128 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_11;
11129 }
11130 case 5: {
11131 goto s_n_llhttp__internal__n_span_end_stub_query_3;
11132 }
11133 default: {
11134 goto s_n_llhttp__internal__n_error_43;
11135 }
11136 }
11137 /* UNREACHABLE */;
11138 abort();
11139 }
11140 case s_n_llhttp__internal__n_url_query_or_fragment:
11141 s_n_llhttp__internal__n_url_query_or_fragment: {
11142 if (p == endp) {
11143 return s_n_llhttp__internal__n_url_query_or_fragment;
11144 }
11145 switch (*p) {
11146 case 10: {
11147 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_3;
11148 }
11149 case 13: {
11150 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_4;
11151 }
11152 case ' ': {
11153 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_5;
11154 }
11155 case '#': {
11156 p++;
11157 goto s_n_llhttp__internal__n_url_fragment;
11158 }
11159 case '?': {
11160 p++;
11161 goto s_n_llhttp__internal__n_url_query;
11162 }
11163 default: {
11164 goto s_n_llhttp__internal__n_error_44;
11165 }
11166 }
11167 /* UNREACHABLE */;
11168 abort();
11169 }
11170 case s_n_llhttp__internal__n_url_path:
11171 s_n_llhttp__internal__n_url_path: {
11172 static uint8_t lookup_table[] = {
11173 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
11174 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11175 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11176 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
11177 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11178 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11179 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11180 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
11181 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11182 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11183 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11184 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11185 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11186 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11187 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11188 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
11189 };
11190 if (p == endp) {
11191 return s_n_llhttp__internal__n_url_path;
11192 }
11193 #ifdef __SSE4_2__
11194 if (endp - p >= 16) {
11195 __m128i ranges;
11196 __m128i input;
11197 int avail;
11198 int match_len;
11199
11200 /* Load input */
11201 input = _mm_loadu_si128((__m128i const*) p);
11202 ranges = _mm_loadu_si128((__m128i const*) llparse_blob0);
11203
11204 /* Find first character that does not match `ranges` */
11205 match_len = _mm_cmpestri(ranges, 12,
11206 input, 16,
11207 _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES |
11208 _SIDD_NEGATIVE_POLARITY);
11209
11210 if (match_len != 0) {
11211 p += match_len;
11212 goto s_n_llhttp__internal__n_url_path;
11213 }
11214 goto s_n_llhttp__internal__n_url_query_or_fragment;
11215 }
11216 #endif /* __SSE4_2__ */
11217 switch (lookup_table[(uint8_t) *p]) {
11218 case 1: {
11219 p++;
11220 goto s_n_llhttp__internal__n_url_path;
11221 }
11222 default: {
11223 goto s_n_llhttp__internal__n_url_query_or_fragment;
11224 }
11225 }
11226 /* UNREACHABLE */;
11227 abort();
11228 }
11229 case s_n_llhttp__internal__n_span_start_stub_path_2:
11230 s_n_llhttp__internal__n_span_start_stub_path_2: {
11231 if (p == endp) {
11232 return s_n_llhttp__internal__n_span_start_stub_path_2;
11233 }
11234 p++;
11235 goto s_n_llhttp__internal__n_url_path;
11236 /* UNREACHABLE */;
11237 abort();
11238 }
11239 case s_n_llhttp__internal__n_span_start_stub_path:
11240 s_n_llhttp__internal__n_span_start_stub_path: {
11241 if (p == endp) {
11242 return s_n_llhttp__internal__n_span_start_stub_path;
11243 }
11244 p++;
11245 goto s_n_llhttp__internal__n_url_path;
11246 /* UNREACHABLE */;
11247 abort();
11248 }
11249 case s_n_llhttp__internal__n_span_start_stub_path_1:
11250 s_n_llhttp__internal__n_span_start_stub_path_1: {
11251 if (p == endp) {
11252 return s_n_llhttp__internal__n_span_start_stub_path_1;
11253 }
11254 p++;
11255 goto s_n_llhttp__internal__n_url_path;
11256 /* UNREACHABLE */;
11257 abort();
11258 }
11259 case s_n_llhttp__internal__n_url_server_with_at:
11260 s_n_llhttp__internal__n_url_server_with_at: {
11261 static uint8_t lookup_table[] = {
11262 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0,
11263 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11264 3, 4, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5,
11265 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 0, 6,
11266 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
11267 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 0, 4,
11268 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
11269 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 4, 0,
11270 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11271 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11272 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11273 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11274 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11275 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11276 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11277 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
11278 };
11279 if (p == endp) {
11280 return s_n_llhttp__internal__n_url_server_with_at;
11281 }
11282 switch (lookup_table[(uint8_t) *p]) {
11283 case 1: {
11284 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_12;
11285 }
11286 case 2: {
11287 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_13;
11288 }
11289 case 3: {
11290 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_14;
11291 }
11292 case 4: {
11293 p++;
11294 goto s_n_llhttp__internal__n_url_server;
11295 }
11296 case 5: {
11297 goto s_n_llhttp__internal__n_span_start_stub_path_1;
11298 }
11299 case 6: {
11300 p++;
11301 goto s_n_llhttp__internal__n_url_query;
11302 }
11303 case 7: {
11304 p++;
11305 goto s_n_llhttp__internal__n_error_45;
11306 }
11307 default: {
11308 goto s_n_llhttp__internal__n_error_46;
11309 }
11310 }
11311 /* UNREACHABLE */;
11312 abort();
11313 }
11314 case s_n_llhttp__internal__n_url_server:
11315 s_n_llhttp__internal__n_url_server: {
11316 static uint8_t lookup_table[] = {
11317 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0,
11318 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11319 3, 4, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5,
11320 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 0, 6,
11321 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
11322 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 0, 4,
11323 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
11324 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 4, 0,
11325 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11326 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11327 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11328 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11329 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11330 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11331 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11332 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
11333 };
11334 if (p == endp) {
11335 return s_n_llhttp__internal__n_url_server;
11336 }
11337 switch (lookup_table[(uint8_t) *p]) {
11338 case 1: {
11339 goto s_n_llhttp__internal__n_span_end_llhttp__on_url;
11340 }
11341 case 2: {
11342 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_1;
11343 }
11344 case 3: {
11345 goto s_n_llhttp__internal__n_span_end_llhttp__on_url_2;
11346 }
11347 case 4: {
11348 p++;
11349 goto s_n_llhttp__internal__n_url_server;
11350 }
11351 case 5: {
11352 goto s_n_llhttp__internal__n_span_start_stub_path;
11353 }
11354 case 6: {
11355 p++;
11356 goto s_n_llhttp__internal__n_url_query;
11357 }
11358 case 7: {
11359 p++;
11360 goto s_n_llhttp__internal__n_url_server_with_at;
11361 }
11362 default: {
11363 goto s_n_llhttp__internal__n_error_47;
11364 }
11365 }
11366 /* UNREACHABLE */;
11367 abort();
11368 }
11369 case s_n_llhttp__internal__n_url_schema_delim_1:
11370 s_n_llhttp__internal__n_url_schema_delim_1: {
11371 if (p == endp) {
11372 return s_n_llhttp__internal__n_url_schema_delim_1;
11373 }
11374 switch (*p) {
11375 case '/': {
11376 p++;
11377 goto s_n_llhttp__internal__n_url_server;
11378 }
11379 default: {
11380 goto s_n_llhttp__internal__n_error_49;
11381 }
11382 }
11383 /* UNREACHABLE */;
11384 abort();
11385 }
11386 case s_n_llhttp__internal__n_url_schema_delim:
11387 s_n_llhttp__internal__n_url_schema_delim: {
11388 if (p == endp) {
11389 return s_n_llhttp__internal__n_url_schema_delim;
11390 }
11391 switch (*p) {
11392 case 10: {
11393 p++;
11394 goto s_n_llhttp__internal__n_error_48;
11395 }
11396 case 13: {
11397 p++;
11398 goto s_n_llhttp__internal__n_error_48;
11399 }
11400 case ' ': {
11401 p++;
11402 goto s_n_llhttp__internal__n_error_48;
11403 }
11404 case '/': {
11405 p++;
11406 goto s_n_llhttp__internal__n_url_schema_delim_1;
11407 }
11408 default: {
11409 goto s_n_llhttp__internal__n_error_49;
11410 }
11411 }
11412 /* UNREACHABLE */;
11413 abort();
11414 }
11415 case s_n_llhttp__internal__n_span_end_stub_schema:
11416 s_n_llhttp__internal__n_span_end_stub_schema: {
11417 if (p == endp) {
11418 return s_n_llhttp__internal__n_span_end_stub_schema;
11419 }
11420 p++;
11421 goto s_n_llhttp__internal__n_url_schema_delim;
11422 /* UNREACHABLE */;
11423 abort();
11424 }
11425 case s_n_llhttp__internal__n_url_schema:
11426 s_n_llhttp__internal__n_url_schema: {
11427 static uint8_t lookup_table[] = {
11428 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0,
11429 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11430 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11431 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
11432 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
11433 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
11434 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
11435 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
11436 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11437 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11438 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
11444 };
11445 if (p == endp) {
11446 return s_n_llhttp__internal__n_url_schema;
11447 }
11448 switch (lookup_table[(uint8_t) *p]) {
11449 case 1: {
11450 p++;
11451 goto s_n_llhttp__internal__n_error_48;
11452 }
11453 case 2: {
11454 goto s_n_llhttp__internal__n_span_end_stub_schema;
11455 }
11456 case 3: {
11457 p++;
11458 goto s_n_llhttp__internal__n_url_schema;
11459 }
11460 default: {
11461 goto s_n_llhttp__internal__n_error_50;
11462 }
11463 }
11464 /* UNREACHABLE */;
11465 abort();
11466 }
11467 case s_n_llhttp__internal__n_url_start:
11468 s_n_llhttp__internal__n_url_start: {
11469 static uint8_t lookup_table[] = {
11470 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0,
11471 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11472 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2,
11473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11474 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
11475 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
11476 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
11477 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
11478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
11486 };
11487 if (p == endp) {
11488 return s_n_llhttp__internal__n_url_start;
11489 }
11490 switch (lookup_table[(uint8_t) *p]) {
11491 case 1: {
11492 p++;
11493 goto s_n_llhttp__internal__n_error_48;
11494 }
11495 case 2: {
11496 goto s_n_llhttp__internal__n_span_start_stub_path_2;
11497 }
11498 case 3: {
11499 goto s_n_llhttp__internal__n_url_schema;
11500 }
11501 default: {
11502 goto s_n_llhttp__internal__n_error_51;
11503 }
11504 }
11505 /* UNREACHABLE */;
11506 abort();
11507 }
11508 case s_n_llhttp__internal__n_span_start_llhttp__on_url_1:
11509 s_n_llhttp__internal__n_span_start_llhttp__on_url_1: {
11510 if (p == endp) {
11511 return s_n_llhttp__internal__n_span_start_llhttp__on_url_1;
11512 }
11513 state->_span_pos0 = (void*) p;
11514 state->_span_cb0 = llhttp__on_url;
11515 goto s_n_llhttp__internal__n_url_start;
11516 /* UNREACHABLE */;
11517 abort();
11518 }
11519 case s_n_llhttp__internal__n_span_start_llhttp__on_url:
11520 s_n_llhttp__internal__n_span_start_llhttp__on_url: {
11521 if (p == endp) {
11522 return s_n_llhttp__internal__n_span_start_llhttp__on_url;
11523 }
11524 state->_span_pos0 = (void*) p;
11525 state->_span_cb0 = llhttp__on_url;
11526 goto s_n_llhttp__internal__n_url_server;
11527 /* UNREACHABLE */;
11528 abort();
11529 }
11530 case s_n_llhttp__internal__n_req_spaces_before_url:
11531 s_n_llhttp__internal__n_req_spaces_before_url: {
11532 if (p == endp) {
11533 return s_n_llhttp__internal__n_req_spaces_before_url;
11534 }
11535 switch (*p) {
11536 case ' ': {
11537 p++;
11538 goto s_n_llhttp__internal__n_req_spaces_before_url;
11539 }
11540 default: {
11541 goto s_n_llhttp__internal__n_invoke_is_equal_method;
11542 }
11543 }
11544 /* UNREACHABLE */;
11545 abort();
11546 }
11547 case s_n_llhttp__internal__n_req_first_space_before_url:
11548 s_n_llhttp__internal__n_req_first_space_before_url: {
11549 if (p == endp) {
11550 return s_n_llhttp__internal__n_req_first_space_before_url;
11551 }
11552 switch (*p) {
11553 case ' ': {
11554 p++;
11555 goto s_n_llhttp__internal__n_req_spaces_before_url;
11556 }
11557 default: {
11558 goto s_n_llhttp__internal__n_error_52;
11559 }
11560 }
11561 /* UNREACHABLE */;
11562 abort();
11563 }
11564 case s_n_llhttp__internal__n_start_req_2:
11565 s_n_llhttp__internal__n_start_req_2: {
11566 if (p == endp) {
11567 return s_n_llhttp__internal__n_start_req_2;
11568 }
11569 switch (*p) {
11570 case 'L': {
11571 p++;
11572 match = 19;
11573 goto s_n_llhttp__internal__n_invoke_store_method_1;
11574 }
11575 default: {
11576 goto s_n_llhttp__internal__n_error_64;
11577 }
11578 }
11579 /* UNREACHABLE */;
11580 abort();
11581 }
11582 case s_n_llhttp__internal__n_start_req_3:
11583 s_n_llhttp__internal__n_start_req_3: {
11584 llparse_match_t match_seq;
11585
11586 if (p == endp) {
11587 return s_n_llhttp__internal__n_start_req_3;
11588 }
11589 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob19, 6);
11590 p = match_seq.current;
11591 switch (match_seq.status) {
11592 case kMatchComplete: {
11593 p++;
11594 match = 36;
11595 goto s_n_llhttp__internal__n_invoke_store_method_1;
11596 }
11597 case kMatchPause: {
11598 return s_n_llhttp__internal__n_start_req_3;
11599 }
11600 case kMatchMismatch: {
11601 goto s_n_llhttp__internal__n_error_64;
11602 }
11603 }
11604 /* UNREACHABLE */;
11605 abort();
11606 }
11607 case s_n_llhttp__internal__n_start_req_1:
11608 s_n_llhttp__internal__n_start_req_1: {
11609 if (p == endp) {
11610 return s_n_llhttp__internal__n_start_req_1;
11611 }
11612 switch (*p) {
11613 case 'C': {
11614 p++;
11615 goto s_n_llhttp__internal__n_start_req_2;
11616 }
11617 case 'N': {
11618 p++;
11619 goto s_n_llhttp__internal__n_start_req_3;
11620 }
11621 default: {
11622 goto s_n_llhttp__internal__n_error_64;
11623 }
11624 }
11625 /* UNREACHABLE */;
11626 abort();
11627 }
11628 case s_n_llhttp__internal__n_start_req_4:
11629 s_n_llhttp__internal__n_start_req_4: {
11630 llparse_match_t match_seq;
11631
11632 if (p == endp) {
11633 return s_n_llhttp__internal__n_start_req_4;
11634 }
11635 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob20, 3);
11636 p = match_seq.current;
11637 switch (match_seq.status) {
11638 case kMatchComplete: {
11639 p++;
11640 match = 16;
11641 goto s_n_llhttp__internal__n_invoke_store_method_1;
11642 }
11643 case kMatchPause: {
11644 return s_n_llhttp__internal__n_start_req_4;
11645 }
11646 case kMatchMismatch: {
11647 goto s_n_llhttp__internal__n_error_64;
11648 }
11649 }
11650 /* UNREACHABLE */;
11651 abort();
11652 }
11653 case s_n_llhttp__internal__n_start_req_6:
11654 s_n_llhttp__internal__n_start_req_6: {
11655 llparse_match_t match_seq;
11656
11657 if (p == endp) {
11658 return s_n_llhttp__internal__n_start_req_6;
11659 }
11660 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob21, 6);
11661 p = match_seq.current;
11662 switch (match_seq.status) {
11663 case kMatchComplete: {
11664 p++;
11665 match = 22;
11666 goto s_n_llhttp__internal__n_invoke_store_method_1;
11667 }
11668 case kMatchPause: {
11669 return s_n_llhttp__internal__n_start_req_6;
11670 }
11671 case kMatchMismatch: {
11672 goto s_n_llhttp__internal__n_error_64;
11673 }
11674 }
11675 /* UNREACHABLE */;
11676 abort();
11677 }
11678 case s_n_llhttp__internal__n_start_req_8:
11679 s_n_llhttp__internal__n_start_req_8: {
11680 llparse_match_t match_seq;
11681
11682 if (p == endp) {
11683 return s_n_llhttp__internal__n_start_req_8;
11684 }
11685 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob22, 4);
11686 p = match_seq.current;
11687 switch (match_seq.status) {
11688 case kMatchComplete: {
11689 p++;
11690 match = 5;
11691 goto s_n_llhttp__internal__n_invoke_store_method_1;
11692 }
11693 case kMatchPause: {
11694 return s_n_llhttp__internal__n_start_req_8;
11695 }
11696 case kMatchMismatch: {
11697 goto s_n_llhttp__internal__n_error_64;
11698 }
11699 }
11700 /* UNREACHABLE */;
11701 abort();
11702 }
11703 case s_n_llhttp__internal__n_start_req_9:
11704 s_n_llhttp__internal__n_start_req_9: {
11705 if (p == endp) {
11706 return s_n_llhttp__internal__n_start_req_9;
11707 }
11708 switch (*p) {
11709 case 'Y': {
11710 p++;
11711 match = 8;
11712 goto s_n_llhttp__internal__n_invoke_store_method_1;
11713 }
11714 default: {
11715 goto s_n_llhttp__internal__n_error_64;
11716 }
11717 }
11718 /* UNREACHABLE */;
11719 abort();
11720 }
11721 case s_n_llhttp__internal__n_start_req_7:
11722 s_n_llhttp__internal__n_start_req_7: {
11723 if (p == endp) {
11724 return s_n_llhttp__internal__n_start_req_7;
11725 }
11726 switch (*p) {
11727 case 'N': {
11728 p++;
11729 goto s_n_llhttp__internal__n_start_req_8;
11730 }
11731 case 'P': {
11732 p++;
11733 goto s_n_llhttp__internal__n_start_req_9;
11734 }
11735 default: {
11736 goto s_n_llhttp__internal__n_error_64;
11737 }
11738 }
11739 /* UNREACHABLE */;
11740 abort();
11741 }
11742 case s_n_llhttp__internal__n_start_req_5:
11743 s_n_llhttp__internal__n_start_req_5: {
11744 if (p == endp) {
11745 return s_n_llhttp__internal__n_start_req_5;
11746 }
11747 switch (*p) {
11748 case 'H': {
11749 p++;
11750 goto s_n_llhttp__internal__n_start_req_6;
11751 }
11752 case 'O': {
11753 p++;
11754 goto s_n_llhttp__internal__n_start_req_7;
11755 }
11756 default: {
11757 goto s_n_llhttp__internal__n_error_64;
11758 }
11759 }
11760 /* UNREACHABLE */;
11761 abort();
11762 }
11763 case s_n_llhttp__internal__n_start_req_12:
11764 s_n_llhttp__internal__n_start_req_12: {
11765 llparse_match_t match_seq;
11766
11767 if (p == endp) {
11768 return s_n_llhttp__internal__n_start_req_12;
11769 }
11770 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob23, 3);
11771 p = match_seq.current;
11772 switch (match_seq.status) {
11773 case kMatchComplete: {
11774 p++;
11775 match = 0;
11776 goto s_n_llhttp__internal__n_invoke_store_method_1;
11777 }
11778 case kMatchPause: {
11779 return s_n_llhttp__internal__n_start_req_12;
11780 }
11781 case kMatchMismatch: {
11782 goto s_n_llhttp__internal__n_error_64;
11783 }
11784 }
11785 /* UNREACHABLE */;
11786 abort();
11787 }
11788 case s_n_llhttp__internal__n_start_req_13:
11789 s_n_llhttp__internal__n_start_req_13: {
11790 llparse_match_t match_seq;
11791
11792 if (p == endp) {
11793 return s_n_llhttp__internal__n_start_req_13;
11794 }
11795 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob24, 5);
11796 p = match_seq.current;
11797 switch (match_seq.status) {
11798 case kMatchComplete: {
11799 p++;
11800 match = 35;
11801 goto s_n_llhttp__internal__n_invoke_store_method_1;
11802 }
11803 case kMatchPause: {
11804 return s_n_llhttp__internal__n_start_req_13;
11805 }
11806 case kMatchMismatch: {
11807 goto s_n_llhttp__internal__n_error_64;
11808 }
11809 }
11810 /* UNREACHABLE */;
11811 abort();
11812 }
11813 case s_n_llhttp__internal__n_start_req_11:
11814 s_n_llhttp__internal__n_start_req_11: {
11815 if (p == endp) {
11816 return s_n_llhttp__internal__n_start_req_11;
11817 }
11818 switch (*p) {
11819 case 'L': {
11820 p++;
11821 goto s_n_llhttp__internal__n_start_req_12;
11822 }
11823 case 'S': {
11824 p++;
11825 goto s_n_llhttp__internal__n_start_req_13;
11826 }
11827 default: {
11828 goto s_n_llhttp__internal__n_error_64;
11829 }
11830 }
11831 /* UNREACHABLE */;
11832 abort();
11833 }
11834 case s_n_llhttp__internal__n_start_req_10:
11835 s_n_llhttp__internal__n_start_req_10: {
11836 if (p == endp) {
11837 return s_n_llhttp__internal__n_start_req_10;
11838 }
11839 switch (*p) {
11840 case 'E': {
11841 p++;
11842 goto s_n_llhttp__internal__n_start_req_11;
11843 }
11844 default: {
11845 goto s_n_llhttp__internal__n_error_64;
11846 }
11847 }
11848 /* UNREACHABLE */;
11849 abort();
11850 }
11851 case s_n_llhttp__internal__n_start_req_14:
11852 s_n_llhttp__internal__n_start_req_14: {
11853 llparse_match_t match_seq;
11854
11855 if (p == endp) {
11856 return s_n_llhttp__internal__n_start_req_14;
11857 }
11858 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob25, 4);
11859 p = match_seq.current;
11860 switch (match_seq.status) {
11861 case kMatchComplete: {
11862 p++;
11863 match = 45;
11864 goto s_n_llhttp__internal__n_invoke_store_method_1;
11865 }
11866 case kMatchPause: {
11867 return s_n_llhttp__internal__n_start_req_14;
11868 }
11869 case kMatchMismatch: {
11870 goto s_n_llhttp__internal__n_error_64;
11871 }
11872 }
11873 /* UNREACHABLE */;
11874 abort();
11875 }
11876 case s_n_llhttp__internal__n_start_req_17:
11877 s_n_llhttp__internal__n_start_req_17: {
11878 llparse_match_t match_seq;
11879
11880 if (p == endp) {
11881 return s_n_llhttp__internal__n_start_req_17;
11882 }
11883 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob27, 9);
11884 p = match_seq.current;
11885 switch (match_seq.status) {
11886 case kMatchComplete: {
11887 p++;
11888 match = 41;
11889 goto s_n_llhttp__internal__n_invoke_store_method_1;
11890 }
11891 case kMatchPause: {
11892 return s_n_llhttp__internal__n_start_req_17;
11893 }
11894 case kMatchMismatch: {
11895 goto s_n_llhttp__internal__n_error_64;
11896 }
11897 }
11898 /* UNREACHABLE */;
11899 abort();
11900 }
11901 case s_n_llhttp__internal__n_start_req_16:
11902 s_n_llhttp__internal__n_start_req_16: {
11903 if (p == endp) {
11904 return s_n_llhttp__internal__n_start_req_16;
11905 }
11906 switch (*p) {
11907 case '_': {
11908 p++;
11909 goto s_n_llhttp__internal__n_start_req_17;
11910 }
11911 default: {
11912 match = 1;
11913 goto s_n_llhttp__internal__n_invoke_store_method_1;
11914 }
11915 }
11916 /* UNREACHABLE */;
11917 abort();
11918 }
11919 case s_n_llhttp__internal__n_start_req_15:
11920 s_n_llhttp__internal__n_start_req_15: {
11921 llparse_match_t match_seq;
11922
11923 if (p == endp) {
11924 return s_n_llhttp__internal__n_start_req_15;
11925 }
11926 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob26, 2);
11927 p = match_seq.current;
11928 switch (match_seq.status) {
11929 case kMatchComplete: {
11930 p++;
11931 goto s_n_llhttp__internal__n_start_req_16;
11932 }
11933 case kMatchPause: {
11934 return s_n_llhttp__internal__n_start_req_15;
11935 }
11936 case kMatchMismatch: {
11937 goto s_n_llhttp__internal__n_error_64;
11938 }
11939 }
11940 /* UNREACHABLE */;
11941 abort();
11942 }
11943 case s_n_llhttp__internal__n_start_req_18:
11944 s_n_llhttp__internal__n_start_req_18: {
11945 llparse_match_t match_seq;
11946
11947 if (p == endp) {
11948 return s_n_llhttp__internal__n_start_req_18;
11949 }
11950 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob28, 3);
11951 p = match_seq.current;
11952 switch (match_seq.status) {
11953 case kMatchComplete: {
11954 p++;
11955 match = 2;
11956 goto s_n_llhttp__internal__n_invoke_store_method_1;
11957 }
11958 case kMatchPause: {
11959 return s_n_llhttp__internal__n_start_req_18;
11960 }
11961 case kMatchMismatch: {
11962 goto s_n_llhttp__internal__n_error_64;
11963 }
11964 }
11965 /* UNREACHABLE */;
11966 abort();
11967 }
11968 case s_n_llhttp__internal__n_start_req_20:
11969 s_n_llhttp__internal__n_start_req_20: {
11970 llparse_match_t match_seq;
11971
11972 if (p == endp) {
11973 return s_n_llhttp__internal__n_start_req_20;
11974 }
11975 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob29, 2);
11976 p = match_seq.current;
11977 switch (match_seq.status) {
11978 case kMatchComplete: {
11979 p++;
11980 match = 31;
11981 goto s_n_llhttp__internal__n_invoke_store_method_1;
11982 }
11983 case kMatchPause: {
11984 return s_n_llhttp__internal__n_start_req_20;
11985 }
11986 case kMatchMismatch: {
11987 goto s_n_llhttp__internal__n_error_64;
11988 }
11989 }
11990 /* UNREACHABLE */;
11991 abort();
11992 }
11993 case s_n_llhttp__internal__n_start_req_21:
11994 s_n_llhttp__internal__n_start_req_21: {
11995 llparse_match_t match_seq;
11996
11997 if (p == endp) {
11998 return s_n_llhttp__internal__n_start_req_21;
11999 }
12000 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob30, 2);
12001 p = match_seq.current;
12002 switch (match_seq.status) {
12003 case kMatchComplete: {
12004 p++;
12005 match = 9;
12006 goto s_n_llhttp__internal__n_invoke_store_method_1;
12007 }
12008 case kMatchPause: {
12009 return s_n_llhttp__internal__n_start_req_21;
12010 }
12011 case kMatchMismatch: {
12012 goto s_n_llhttp__internal__n_error_64;
12013 }
12014 }
12015 /* UNREACHABLE */;
12016 abort();
12017 }
12018 case s_n_llhttp__internal__n_start_req_19:
12019 s_n_llhttp__internal__n_start_req_19: {
12020 if (p == endp) {
12021 return s_n_llhttp__internal__n_start_req_19;
12022 }
12023 switch (*p) {
12024 case 'I': {
12025 p++;
12026 goto s_n_llhttp__internal__n_start_req_20;
12027 }
12028 case 'O': {
12029 p++;
12030 goto s_n_llhttp__internal__n_start_req_21;
12031 }
12032 default: {
12033 goto s_n_llhttp__internal__n_error_64;
12034 }
12035 }
12036 /* UNREACHABLE */;
12037 abort();
12038 }
12039 case s_n_llhttp__internal__n_start_req_23:
12040 s_n_llhttp__internal__n_start_req_23: {
12041 llparse_match_t match_seq;
12042
12043 if (p == endp) {
12044 return s_n_llhttp__internal__n_start_req_23;
12045 }
12046 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob31, 6);
12047 p = match_seq.current;
12048 switch (match_seq.status) {
12049 case kMatchComplete: {
12050 p++;
12051 match = 24;
12052 goto s_n_llhttp__internal__n_invoke_store_method_1;
12053 }
12054 case kMatchPause: {
12055 return s_n_llhttp__internal__n_start_req_23;
12056 }
12057 case kMatchMismatch: {
12058 goto s_n_llhttp__internal__n_error_64;
12059 }
12060 }
12061 /* UNREACHABLE */;
12062 abort();
12063 }
12064 case s_n_llhttp__internal__n_start_req_24:
12065 s_n_llhttp__internal__n_start_req_24: {
12066 llparse_match_t match_seq;
12067
12068 if (p == endp) {
12069 return s_n_llhttp__internal__n_start_req_24;
12070 }
12071 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob32, 3);
12072 p = match_seq.current;
12073 switch (match_seq.status) {
12074 case kMatchComplete: {
12075 p++;
12076 match = 23;
12077 goto s_n_llhttp__internal__n_invoke_store_method_1;
12078 }
12079 case kMatchPause: {
12080 return s_n_llhttp__internal__n_start_req_24;
12081 }
12082 case kMatchMismatch: {
12083 goto s_n_llhttp__internal__n_error_64;
12084 }
12085 }
12086 /* UNREACHABLE */;
12087 abort();
12088 }
12089 case s_n_llhttp__internal__n_start_req_26:
12090 s_n_llhttp__internal__n_start_req_26: {
12091 llparse_match_t match_seq;
12092
12093 if (p == endp) {
12094 return s_n_llhttp__internal__n_start_req_26;
12095 }
12096 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob33, 7);
12097 p = match_seq.current;
12098 switch (match_seq.status) {
12099 case kMatchComplete: {
12100 p++;
12101 match = 21;
12102 goto s_n_llhttp__internal__n_invoke_store_method_1;
12103 }
12104 case kMatchPause: {
12105 return s_n_llhttp__internal__n_start_req_26;
12106 }
12107 case kMatchMismatch: {
12108 goto s_n_llhttp__internal__n_error_64;
12109 }
12110 }
12111 /* UNREACHABLE */;
12112 abort();
12113 }
12114 case s_n_llhttp__internal__n_start_req_28:
12115 s_n_llhttp__internal__n_start_req_28: {
12116 llparse_match_t match_seq;
12117
12118 if (p == endp) {
12119 return s_n_llhttp__internal__n_start_req_28;
12120 }
12121 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob34, 6);
12122 p = match_seq.current;
12123 switch (match_seq.status) {
12124 case kMatchComplete: {
12125 p++;
12126 match = 30;
12127 goto s_n_llhttp__internal__n_invoke_store_method_1;
12128 }
12129 case kMatchPause: {
12130 return s_n_llhttp__internal__n_start_req_28;
12131 }
12132 case kMatchMismatch: {
12133 goto s_n_llhttp__internal__n_error_64;
12134 }
12135 }
12136 /* UNREACHABLE */;
12137 abort();
12138 }
12139 case s_n_llhttp__internal__n_start_req_29:
12140 s_n_llhttp__internal__n_start_req_29: {
12141 if (p == endp) {
12142 return s_n_llhttp__internal__n_start_req_29;
12143 }
12144 switch (*p) {
12145 case 'L': {
12146 p++;
12147 match = 10;
12148 goto s_n_llhttp__internal__n_invoke_store_method_1;
12149 }
12150 default: {
12151 goto s_n_llhttp__internal__n_error_64;
12152 }
12153 }
12154 /* UNREACHABLE */;
12155 abort();
12156 }
12157 case s_n_llhttp__internal__n_start_req_27:
12158 s_n_llhttp__internal__n_start_req_27: {
12159 if (p == endp) {
12160 return s_n_llhttp__internal__n_start_req_27;
12161 }
12162 switch (*p) {
12163 case 'A': {
12164 p++;
12165 goto s_n_llhttp__internal__n_start_req_28;
12166 }
12167 case 'O': {
12168 p++;
12169 goto s_n_llhttp__internal__n_start_req_29;
12170 }
12171 default: {
12172 goto s_n_llhttp__internal__n_error_64;
12173 }
12174 }
12175 /* UNREACHABLE */;
12176 abort();
12177 }
12178 case s_n_llhttp__internal__n_start_req_25:
12179 s_n_llhttp__internal__n_start_req_25: {
12180 if (p == endp) {
12181 return s_n_llhttp__internal__n_start_req_25;
12182 }
12183 switch (*p) {
12184 case 'A': {
12185 p++;
12186 goto s_n_llhttp__internal__n_start_req_26;
12187 }
12188 case 'C': {
12189 p++;
12190 goto s_n_llhttp__internal__n_start_req_27;
12191 }
12192 default: {
12193 goto s_n_llhttp__internal__n_error_64;
12194 }
12195 }
12196 /* UNREACHABLE */;
12197 abort();
12198 }
12199 case s_n_llhttp__internal__n_start_req_30:
12200 s_n_llhttp__internal__n_start_req_30: {
12201 llparse_match_t match_seq;
12202
12203 if (p == endp) {
12204 return s_n_llhttp__internal__n_start_req_30;
12205 }
12206 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob35, 2);
12207 p = match_seq.current;
12208 switch (match_seq.status) {
12209 case kMatchComplete: {
12210 p++;
12211 match = 11;
12212 goto s_n_llhttp__internal__n_invoke_store_method_1;
12213 }
12214 case kMatchPause: {
12215 return s_n_llhttp__internal__n_start_req_30;
12216 }
12217 case kMatchMismatch: {
12218 goto s_n_llhttp__internal__n_error_64;
12219 }
12220 }
12221 /* UNREACHABLE */;
12222 abort();
12223 }
12224 case s_n_llhttp__internal__n_start_req_22:
12225 s_n_llhttp__internal__n_start_req_22: {
12226 if (p == endp) {
12227 return s_n_llhttp__internal__n_start_req_22;
12228 }
12229 switch (*p) {
12230 case '-': {
12231 p++;
12232 goto s_n_llhttp__internal__n_start_req_23;
12233 }
12234 case 'E': {
12235 p++;
12236 goto s_n_llhttp__internal__n_start_req_24;
12237 }
12238 case 'K': {
12239 p++;
12240 goto s_n_llhttp__internal__n_start_req_25;
12241 }
12242 case 'O': {
12243 p++;
12244 goto s_n_llhttp__internal__n_start_req_30;
12245 }
12246 default: {
12247 goto s_n_llhttp__internal__n_error_64;
12248 }
12249 }
12250 /* UNREACHABLE */;
12251 abort();
12252 }
12253 case s_n_llhttp__internal__n_start_req_31:
12254 s_n_llhttp__internal__n_start_req_31: {
12255 llparse_match_t match_seq;
12256
12257 if (p == endp) {
12258 return s_n_llhttp__internal__n_start_req_31;
12259 }
12260 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob36, 5);
12261 p = match_seq.current;
12262 switch (match_seq.status) {
12263 case kMatchComplete: {
12264 p++;
12265 match = 25;
12266 goto s_n_llhttp__internal__n_invoke_store_method_1;
12267 }
12268 case kMatchPause: {
12269 return s_n_llhttp__internal__n_start_req_31;
12270 }
12271 case kMatchMismatch: {
12272 goto s_n_llhttp__internal__n_error_64;
12273 }
12274 }
12275 /* UNREACHABLE */;
12276 abort();
12277 }
12278 case s_n_llhttp__internal__n_start_req_32:
12279 s_n_llhttp__internal__n_start_req_32: {
12280 llparse_match_t match_seq;
12281
12282 if (p == endp) {
12283 return s_n_llhttp__internal__n_start_req_32;
12284 }
12285 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob37, 6);
12286 p = match_seq.current;
12287 switch (match_seq.status) {
12288 case kMatchComplete: {
12289 p++;
12290 match = 6;
12291 goto s_n_llhttp__internal__n_invoke_store_method_1;
12292 }
12293 case kMatchPause: {
12294 return s_n_llhttp__internal__n_start_req_32;
12295 }
12296 case kMatchMismatch: {
12297 goto s_n_llhttp__internal__n_error_64;
12298 }
12299 }
12300 /* UNREACHABLE */;
12301 abort();
12302 }
12303 case s_n_llhttp__internal__n_start_req_35:
12304 s_n_llhttp__internal__n_start_req_35: {
12305 llparse_match_t match_seq;
12306
12307 if (p == endp) {
12308 return s_n_llhttp__internal__n_start_req_35;
12309 }
12310 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob38, 2);
12311 p = match_seq.current;
12312 switch (match_seq.status) {
12313 case kMatchComplete: {
12314 p++;
12315 match = 28;
12316 goto s_n_llhttp__internal__n_invoke_store_method_1;
12317 }
12318 case kMatchPause: {
12319 return s_n_llhttp__internal__n_start_req_35;
12320 }
12321 case kMatchMismatch: {
12322 goto s_n_llhttp__internal__n_error_64;
12323 }
12324 }
12325 /* UNREACHABLE */;
12326 abort();
12327 }
12328 case s_n_llhttp__internal__n_start_req_36:
12329 s_n_llhttp__internal__n_start_req_36: {
12330 llparse_match_t match_seq;
12331
12332 if (p == endp) {
12333 return s_n_llhttp__internal__n_start_req_36;
12334 }
12335 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob39, 2);
12336 p = match_seq.current;
12337 switch (match_seq.status) {
12338 case kMatchComplete: {
12339 p++;
12340 match = 39;
12341 goto s_n_llhttp__internal__n_invoke_store_method_1;
12342 }
12343 case kMatchPause: {
12344 return s_n_llhttp__internal__n_start_req_36;
12345 }
12346 case kMatchMismatch: {
12347 goto s_n_llhttp__internal__n_error_64;
12348 }
12349 }
12350 /* UNREACHABLE */;
12351 abort();
12352 }
12353 case s_n_llhttp__internal__n_start_req_34:
12354 s_n_llhttp__internal__n_start_req_34: {
12355 if (p == endp) {
12356 return s_n_llhttp__internal__n_start_req_34;
12357 }
12358 switch (*p) {
12359 case 'T': {
12360 p++;
12361 goto s_n_llhttp__internal__n_start_req_35;
12362 }
12363 case 'U': {
12364 p++;
12365 goto s_n_llhttp__internal__n_start_req_36;
12366 }
12367 default: {
12368 goto s_n_llhttp__internal__n_error_64;
12369 }
12370 }
12371 /* UNREACHABLE */;
12372 abort();
12373 }
12374 case s_n_llhttp__internal__n_start_req_37:
12375 s_n_llhttp__internal__n_start_req_37: {
12376 llparse_match_t match_seq;
12377
12378 if (p == endp) {
12379 return s_n_llhttp__internal__n_start_req_37;
12380 }
12381 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob40, 2);
12382 p = match_seq.current;
12383 switch (match_seq.status) {
12384 case kMatchComplete: {
12385 p++;
12386 match = 38;
12387 goto s_n_llhttp__internal__n_invoke_store_method_1;
12388 }
12389 case kMatchPause: {
12390 return s_n_llhttp__internal__n_start_req_37;
12391 }
12392 case kMatchMismatch: {
12393 goto s_n_llhttp__internal__n_error_64;
12394 }
12395 }
12396 /* UNREACHABLE */;
12397 abort();
12398 }
12399 case s_n_llhttp__internal__n_start_req_38:
12400 s_n_llhttp__internal__n_start_req_38: {
12401 llparse_match_t match_seq;
12402
12403 if (p == endp) {
12404 return s_n_llhttp__internal__n_start_req_38;
12405 }
12406 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob41, 2);
12407 p = match_seq.current;
12408 switch (match_seq.status) {
12409 case kMatchComplete: {
12410 p++;
12411 match = 3;
12412 goto s_n_llhttp__internal__n_invoke_store_method_1;
12413 }
12414 case kMatchPause: {
12415 return s_n_llhttp__internal__n_start_req_38;
12416 }
12417 case kMatchMismatch: {
12418 goto s_n_llhttp__internal__n_error_64;
12419 }
12420 }
12421 /* UNREACHABLE */;
12422 abort();
12423 }
12424 case s_n_llhttp__internal__n_start_req_42:
12425 s_n_llhttp__internal__n_start_req_42: {
12426 llparse_match_t match_seq;
12427
12428 if (p == endp) {
12429 return s_n_llhttp__internal__n_start_req_42;
12430 }
12431 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob42, 3);
12432 p = match_seq.current;
12433 switch (match_seq.status) {
12434 case kMatchComplete: {
12435 p++;
12436 match = 12;
12437 goto s_n_llhttp__internal__n_invoke_store_method_1;
12438 }
12439 case kMatchPause: {
12440 return s_n_llhttp__internal__n_start_req_42;
12441 }
12442 case kMatchMismatch: {
12443 goto s_n_llhttp__internal__n_error_64;
12444 }
12445 }
12446 /* UNREACHABLE */;
12447 abort();
12448 }
12449 case s_n_llhttp__internal__n_start_req_43:
12450 s_n_llhttp__internal__n_start_req_43: {
12451 llparse_match_t match_seq;
12452
12453 if (p == endp) {
12454 return s_n_llhttp__internal__n_start_req_43;
12455 }
12456 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob43, 4);
12457 p = match_seq.current;
12458 switch (match_seq.status) {
12459 case kMatchComplete: {
12460 p++;
12461 match = 13;
12462 goto s_n_llhttp__internal__n_invoke_store_method_1;
12463 }
12464 case kMatchPause: {
12465 return s_n_llhttp__internal__n_start_req_43;
12466 }
12467 case kMatchMismatch: {
12468 goto s_n_llhttp__internal__n_error_64;
12469 }
12470 }
12471 /* UNREACHABLE */;
12472 abort();
12473 }
12474 case s_n_llhttp__internal__n_start_req_41:
12475 s_n_llhttp__internal__n_start_req_41: {
12476 if (p == endp) {
12477 return s_n_llhttp__internal__n_start_req_41;
12478 }
12479 switch (*p) {
12480 case 'F': {
12481 p++;
12482 goto s_n_llhttp__internal__n_start_req_42;
12483 }
12484 case 'P': {
12485 p++;
12486 goto s_n_llhttp__internal__n_start_req_43;
12487 }
12488 default: {
12489 goto s_n_llhttp__internal__n_error_64;
12490 }
12491 }
12492 /* UNREACHABLE */;
12493 abort();
12494 }
12495 case s_n_llhttp__internal__n_start_req_40:
12496 s_n_llhttp__internal__n_start_req_40: {
12497 if (p == endp) {
12498 return s_n_llhttp__internal__n_start_req_40;
12499 }
12500 switch (*p) {
12501 case 'P': {
12502 p++;
12503 goto s_n_llhttp__internal__n_start_req_41;
12504 }
12505 default: {
12506 goto s_n_llhttp__internal__n_error_64;
12507 }
12508 }
12509 /* UNREACHABLE */;
12510 abort();
12511 }
12512 case s_n_llhttp__internal__n_start_req_39:
12513 s_n_llhttp__internal__n_start_req_39: {
12514 if (p == endp) {
12515 return s_n_llhttp__internal__n_start_req_39;
12516 }
12517 switch (*p) {
12518 case 'I': {
12519 p++;
12520 match = 34;
12521 goto s_n_llhttp__internal__n_invoke_store_method_1;
12522 }
12523 case 'O': {
12524 p++;
12525 goto s_n_llhttp__internal__n_start_req_40;
12526 }
12527 default: {
12528 goto s_n_llhttp__internal__n_error_64;
12529 }
12530 }
12531 /* UNREACHABLE */;
12532 abort();
12533 }
12534 case s_n_llhttp__internal__n_start_req_45:
12535 s_n_llhttp__internal__n_start_req_45: {
12536 llparse_match_t match_seq;
12537
12538 if (p == endp) {
12539 return s_n_llhttp__internal__n_start_req_45;
12540 }
12541 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob44, 2);
12542 p = match_seq.current;
12543 switch (match_seq.status) {
12544 case kMatchComplete: {
12545 p++;
12546 match = 29;
12547 goto s_n_llhttp__internal__n_invoke_store_method_1;
12548 }
12549 case kMatchPause: {
12550 return s_n_llhttp__internal__n_start_req_45;
12551 }
12552 case kMatchMismatch: {
12553 goto s_n_llhttp__internal__n_error_64;
12554 }
12555 }
12556 /* UNREACHABLE */;
12557 abort();
12558 }
12559 case s_n_llhttp__internal__n_start_req_44:
12560 s_n_llhttp__internal__n_start_req_44: {
12561 if (p == endp) {
12562 return s_n_llhttp__internal__n_start_req_44;
12563 }
12564 switch (*p) {
12565 case 'R': {
12566 p++;
12567 goto s_n_llhttp__internal__n_start_req_45;
12568 }
12569 case 'T': {
12570 p++;
12571 match = 4;
12572 goto s_n_llhttp__internal__n_invoke_store_method_1;
12573 }
12574 default: {
12575 goto s_n_llhttp__internal__n_error_64;
12576 }
12577 }
12578 /* UNREACHABLE */;
12579 abort();
12580 }
12581 case s_n_llhttp__internal__n_start_req_33:
12582 s_n_llhttp__internal__n_start_req_33: {
12583 if (p == endp) {
12584 return s_n_llhttp__internal__n_start_req_33;
12585 }
12586 switch (*p) {
12587 case 'A': {
12588 p++;
12589 goto s_n_llhttp__internal__n_start_req_34;
12590 }
12591 case 'L': {
12592 p++;
12593 goto s_n_llhttp__internal__n_start_req_37;
12594 }
12595 case 'O': {
12596 p++;
12597 goto s_n_llhttp__internal__n_start_req_38;
12598 }
12599 case 'R': {
12600 p++;
12601 goto s_n_llhttp__internal__n_start_req_39;
12602 }
12603 case 'U': {
12604 p++;
12605 goto s_n_llhttp__internal__n_start_req_44;
12606 }
12607 default: {
12608 goto s_n_llhttp__internal__n_error_64;
12609 }
12610 }
12611 /* UNREACHABLE */;
12612 abort();
12613 }
12614 case s_n_llhttp__internal__n_start_req_48:
12615 s_n_llhttp__internal__n_start_req_48: {
12616 llparse_match_t match_seq;
12617
12618 if (p == endp) {
12619 return s_n_llhttp__internal__n_start_req_48;
12620 }
12621 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob45, 3);
12622 p = match_seq.current;
12623 switch (match_seq.status) {
12624 case kMatchComplete: {
12625 p++;
12626 match = 17;
12627 goto s_n_llhttp__internal__n_invoke_store_method_1;
12628 }
12629 case kMatchPause: {
12630 return s_n_llhttp__internal__n_start_req_48;
12631 }
12632 case kMatchMismatch: {
12633 goto s_n_llhttp__internal__n_error_64;
12634 }
12635 }
12636 /* UNREACHABLE */;
12637 abort();
12638 }
12639 case s_n_llhttp__internal__n_start_req_49:
12640 s_n_llhttp__internal__n_start_req_49: {
12641 llparse_match_t match_seq;
12642
12643 if (p == endp) {
12644 return s_n_llhttp__internal__n_start_req_49;
12645 }
12646 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob46, 3);
12647 p = match_seq.current;
12648 switch (match_seq.status) {
12649 case kMatchComplete: {
12650 p++;
12651 match = 44;
12652 goto s_n_llhttp__internal__n_invoke_store_method_1;
12653 }
12654 case kMatchPause: {
12655 return s_n_llhttp__internal__n_start_req_49;
12656 }
12657 case kMatchMismatch: {
12658 goto s_n_llhttp__internal__n_error_64;
12659 }
12660 }
12661 /* UNREACHABLE */;
12662 abort();
12663 }
12664 case s_n_llhttp__internal__n_start_req_50:
12665 s_n_llhttp__internal__n_start_req_50: {
12666 llparse_match_t match_seq;
12667
12668 if (p == endp) {
12669 return s_n_llhttp__internal__n_start_req_50;
12670 }
12671 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob47, 5);
12672 p = match_seq.current;
12673 switch (match_seq.status) {
12674 case kMatchComplete: {
12675 p++;
12676 match = 43;
12677 goto s_n_llhttp__internal__n_invoke_store_method_1;
12678 }
12679 case kMatchPause: {
12680 return s_n_llhttp__internal__n_start_req_50;
12681 }
12682 case kMatchMismatch: {
12683 goto s_n_llhttp__internal__n_error_64;
12684 }
12685 }
12686 /* UNREACHABLE */;
12687 abort();
12688 }
12689 case s_n_llhttp__internal__n_start_req_51:
12690 s_n_llhttp__internal__n_start_req_51: {
12691 llparse_match_t match_seq;
12692
12693 if (p == endp) {
12694 return s_n_llhttp__internal__n_start_req_51;
12695 }
12696 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob48, 3);
12697 p = match_seq.current;
12698 switch (match_seq.status) {
12699 case kMatchComplete: {
12700 p++;
12701 match = 20;
12702 goto s_n_llhttp__internal__n_invoke_store_method_1;
12703 }
12704 case kMatchPause: {
12705 return s_n_llhttp__internal__n_start_req_51;
12706 }
12707 case kMatchMismatch: {
12708 goto s_n_llhttp__internal__n_error_64;
12709 }
12710 }
12711 /* UNREACHABLE */;
12712 abort();
12713 }
12714 case s_n_llhttp__internal__n_start_req_47:
12715 s_n_llhttp__internal__n_start_req_47: {
12716 if (p == endp) {
12717 return s_n_llhttp__internal__n_start_req_47;
12718 }
12719 switch (*p) {
12720 case 'B': {
12721 p++;
12722 goto s_n_llhttp__internal__n_start_req_48;
12723 }
12724 case 'C': {
12725 p++;
12726 goto s_n_llhttp__internal__n_start_req_49;
12727 }
12728 case 'D': {
12729 p++;
12730 goto s_n_llhttp__internal__n_start_req_50;
12731 }
12732 case 'P': {
12733 p++;
12734 goto s_n_llhttp__internal__n_start_req_51;
12735 }
12736 default: {
12737 goto s_n_llhttp__internal__n_error_64;
12738 }
12739 }
12740 /* UNREACHABLE */;
12741 abort();
12742 }
12743 case s_n_llhttp__internal__n_start_req_46:
12744 s_n_llhttp__internal__n_start_req_46: {
12745 if (p == endp) {
12746 return s_n_llhttp__internal__n_start_req_46;
12747 }
12748 switch (*p) {
12749 case 'E': {
12750 p++;
12751 goto s_n_llhttp__internal__n_start_req_47;
12752 }
12753 default: {
12754 goto s_n_llhttp__internal__n_error_64;
12755 }
12756 }
12757 /* UNREACHABLE */;
12758 abort();
12759 }
12760 case s_n_llhttp__internal__n_start_req_54:
12761 s_n_llhttp__internal__n_start_req_54: {
12762 llparse_match_t match_seq;
12763
12764 if (p == endp) {
12765 return s_n_llhttp__internal__n_start_req_54;
12766 }
12767 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob49, 3);
12768 p = match_seq.current;
12769 switch (match_seq.status) {
12770 case kMatchComplete: {
12771 p++;
12772 match = 14;
12773 goto s_n_llhttp__internal__n_invoke_store_method_1;
12774 }
12775 case kMatchPause: {
12776 return s_n_llhttp__internal__n_start_req_54;
12777 }
12778 case kMatchMismatch: {
12779 goto s_n_llhttp__internal__n_error_64;
12780 }
12781 }
12782 /* UNREACHABLE */;
12783 abort();
12784 }
12785 case s_n_llhttp__internal__n_start_req_56:
12786 s_n_llhttp__internal__n_start_req_56: {
12787 if (p == endp) {
12788 return s_n_llhttp__internal__n_start_req_56;
12789 }
12790 switch (*p) {
12791 case 'P': {
12792 p++;
12793 match = 37;
12794 goto s_n_llhttp__internal__n_invoke_store_method_1;
12795 }
12796 default: {
12797 goto s_n_llhttp__internal__n_error_64;
12798 }
12799 }
12800 /* UNREACHABLE */;
12801 abort();
12802 }
12803 case s_n_llhttp__internal__n_start_req_57:
12804 s_n_llhttp__internal__n_start_req_57: {
12805 llparse_match_t match_seq;
12806
12807 if (p == endp) {
12808 return s_n_llhttp__internal__n_start_req_57;
12809 }
12810 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob50, 9);
12811 p = match_seq.current;
12812 switch (match_seq.status) {
12813 case kMatchComplete: {
12814 p++;
12815 match = 42;
12816 goto s_n_llhttp__internal__n_invoke_store_method_1;
12817 }
12818 case kMatchPause: {
12819 return s_n_llhttp__internal__n_start_req_57;
12820 }
12821 case kMatchMismatch: {
12822 goto s_n_llhttp__internal__n_error_64;
12823 }
12824 }
12825 /* UNREACHABLE */;
12826 abort();
12827 }
12828 case s_n_llhttp__internal__n_start_req_55:
12829 s_n_llhttp__internal__n_start_req_55: {
12830 if (p == endp) {
12831 return s_n_llhttp__internal__n_start_req_55;
12832 }
12833 switch (*p) {
12834 case 'U': {
12835 p++;
12836 goto s_n_llhttp__internal__n_start_req_56;
12837 }
12838 case '_': {
12839 p++;
12840 goto s_n_llhttp__internal__n_start_req_57;
12841 }
12842 default: {
12843 goto s_n_llhttp__internal__n_error_64;
12844 }
12845 }
12846 /* UNREACHABLE */;
12847 abort();
12848 }
12849 case s_n_llhttp__internal__n_start_req_53:
12850 s_n_llhttp__internal__n_start_req_53: {
12851 if (p == endp) {
12852 return s_n_llhttp__internal__n_start_req_53;
12853 }
12854 switch (*p) {
12855 case 'A': {
12856 p++;
12857 goto s_n_llhttp__internal__n_start_req_54;
12858 }
12859 case 'T': {
12860 p++;
12861 goto s_n_llhttp__internal__n_start_req_55;
12862 }
12863 default: {
12864 goto s_n_llhttp__internal__n_error_64;
12865 }
12866 }
12867 /* UNREACHABLE */;
12868 abort();
12869 }
12870 case s_n_llhttp__internal__n_start_req_58:
12871 s_n_llhttp__internal__n_start_req_58: {
12872 llparse_match_t match_seq;
12873
12874 if (p == endp) {
12875 return s_n_llhttp__internal__n_start_req_58;
12876 }
12877 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob51, 4);
12878 p = match_seq.current;
12879 switch (match_seq.status) {
12880 case kMatchComplete: {
12881 p++;
12882 match = 33;
12883 goto s_n_llhttp__internal__n_invoke_store_method_1;
12884 }
12885 case kMatchPause: {
12886 return s_n_llhttp__internal__n_start_req_58;
12887 }
12888 case kMatchMismatch: {
12889 goto s_n_llhttp__internal__n_error_64;
12890 }
12891 }
12892 /* UNREACHABLE */;
12893 abort();
12894 }
12895 case s_n_llhttp__internal__n_start_req_59:
12896 s_n_llhttp__internal__n_start_req_59: {
12897 llparse_match_t match_seq;
12898
12899 if (p == endp) {
12900 return s_n_llhttp__internal__n_start_req_59;
12901 }
12902 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob52, 7);
12903 p = match_seq.current;
12904 switch (match_seq.status) {
12905 case kMatchComplete: {
12906 p++;
12907 match = 26;
12908 goto s_n_llhttp__internal__n_invoke_store_method_1;
12909 }
12910 case kMatchPause: {
12911 return s_n_llhttp__internal__n_start_req_59;
12912 }
12913 case kMatchMismatch: {
12914 goto s_n_llhttp__internal__n_error_64;
12915 }
12916 }
12917 /* UNREACHABLE */;
12918 abort();
12919 }
12920 case s_n_llhttp__internal__n_start_req_52:
12921 s_n_llhttp__internal__n_start_req_52: {
12922 if (p == endp) {
12923 return s_n_llhttp__internal__n_start_req_52;
12924 }
12925 switch (*p) {
12926 case 'E': {
12927 p++;
12928 goto s_n_llhttp__internal__n_start_req_53;
12929 }
12930 case 'O': {
12931 p++;
12932 goto s_n_llhttp__internal__n_start_req_58;
12933 }
12934 case 'U': {
12935 p++;
12936 goto s_n_llhttp__internal__n_start_req_59;
12937 }
12938 default: {
12939 goto s_n_llhttp__internal__n_error_64;
12940 }
12941 }
12942 /* UNREACHABLE */;
12943 abort();
12944 }
12945 case s_n_llhttp__internal__n_start_req_61:
12946 s_n_llhttp__internal__n_start_req_61: {
12947 llparse_match_t match_seq;
12948
12949 if (p == endp) {
12950 return s_n_llhttp__internal__n_start_req_61;
12951 }
12952 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob53, 6);
12953 p = match_seq.current;
12954 switch (match_seq.status) {
12955 case kMatchComplete: {
12956 p++;
12957 match = 40;
12958 goto s_n_llhttp__internal__n_invoke_store_method_1;
12959 }
12960 case kMatchPause: {
12961 return s_n_llhttp__internal__n_start_req_61;
12962 }
12963 case kMatchMismatch: {
12964 goto s_n_llhttp__internal__n_error_64;
12965 }
12966 }
12967 /* UNREACHABLE */;
12968 abort();
12969 }
12970 case s_n_llhttp__internal__n_start_req_62:
12971 s_n_llhttp__internal__n_start_req_62: {
12972 llparse_match_t match_seq;
12973
12974 if (p == endp) {
12975 return s_n_llhttp__internal__n_start_req_62;
12976 }
12977 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob54, 3);
12978 p = match_seq.current;
12979 switch (match_seq.status) {
12980 case kMatchComplete: {
12981 p++;
12982 match = 7;
12983 goto s_n_llhttp__internal__n_invoke_store_method_1;
12984 }
12985 case kMatchPause: {
12986 return s_n_llhttp__internal__n_start_req_62;
12987 }
12988 case kMatchMismatch: {
12989 goto s_n_llhttp__internal__n_error_64;
12990 }
12991 }
12992 /* UNREACHABLE */;
12993 abort();
12994 }
12995 case s_n_llhttp__internal__n_start_req_60:
12996 s_n_llhttp__internal__n_start_req_60: {
12997 if (p == endp) {
12998 return s_n_llhttp__internal__n_start_req_60;
12999 }
13000 switch (*p) {
13001 case 'E': {
13002 p++;
13003 goto s_n_llhttp__internal__n_start_req_61;
13004 }
13005 case 'R': {
13006 p++;
13007 goto s_n_llhttp__internal__n_start_req_62;
13008 }
13009 default: {
13010 goto s_n_llhttp__internal__n_error_64;
13011 }
13012 }
13013 /* UNREACHABLE */;
13014 abort();
13015 }
13016 case s_n_llhttp__internal__n_start_req_65:
13017 s_n_llhttp__internal__n_start_req_65: {
13018 llparse_match_t match_seq;
13019
13020 if (p == endp) {
13021 return s_n_llhttp__internal__n_start_req_65;
13022 }
13023 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob55, 3);
13024 p = match_seq.current;
13025 switch (match_seq.status) {
13026 case kMatchComplete: {
13027 p++;
13028 match = 18;
13029 goto s_n_llhttp__internal__n_invoke_store_method_1;
13030 }
13031 case kMatchPause: {
13032 return s_n_llhttp__internal__n_start_req_65;
13033 }
13034 case kMatchMismatch: {
13035 goto s_n_llhttp__internal__n_error_64;
13036 }
13037 }
13038 /* UNREACHABLE */;
13039 abort();
13040 }
13041 case s_n_llhttp__internal__n_start_req_67:
13042 s_n_llhttp__internal__n_start_req_67: {
13043 llparse_match_t match_seq;
13044
13045 if (p == endp) {
13046 return s_n_llhttp__internal__n_start_req_67;
13047 }
13048 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob56, 2);
13049 p = match_seq.current;
13050 switch (match_seq.status) {
13051 case kMatchComplete: {
13052 p++;
13053 match = 32;
13054 goto s_n_llhttp__internal__n_invoke_store_method_1;
13055 }
13056 case kMatchPause: {
13057 return s_n_llhttp__internal__n_start_req_67;
13058 }
13059 case kMatchMismatch: {
13060 goto s_n_llhttp__internal__n_error_64;
13061 }
13062 }
13063 /* UNREACHABLE */;
13064 abort();
13065 }
13066 case s_n_llhttp__internal__n_start_req_68:
13067 s_n_llhttp__internal__n_start_req_68: {
13068 llparse_match_t match_seq;
13069
13070 if (p == endp) {
13071 return s_n_llhttp__internal__n_start_req_68;
13072 }
13073 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob57, 2);
13074 p = match_seq.current;
13075 switch (match_seq.status) {
13076 case kMatchComplete: {
13077 p++;
13078 match = 15;
13079 goto s_n_llhttp__internal__n_invoke_store_method_1;
13080 }
13081 case kMatchPause: {
13082 return s_n_llhttp__internal__n_start_req_68;
13083 }
13084 case kMatchMismatch: {
13085 goto s_n_llhttp__internal__n_error_64;
13086 }
13087 }
13088 /* UNREACHABLE */;
13089 abort();
13090 }
13091 case s_n_llhttp__internal__n_start_req_66:
13092 s_n_llhttp__internal__n_start_req_66: {
13093 if (p == endp) {
13094 return s_n_llhttp__internal__n_start_req_66;
13095 }
13096 switch (*p) {
13097 case 'I': {
13098 p++;
13099 goto s_n_llhttp__internal__n_start_req_67;
13100 }
13101 case 'O': {
13102 p++;
13103 goto s_n_llhttp__internal__n_start_req_68;
13104 }
13105 default: {
13106 goto s_n_llhttp__internal__n_error_64;
13107 }
13108 }
13109 /* UNREACHABLE */;
13110 abort();
13111 }
13112 case s_n_llhttp__internal__n_start_req_69:
13113 s_n_llhttp__internal__n_start_req_69: {
13114 llparse_match_t match_seq;
13115
13116 if (p == endp) {
13117 return s_n_llhttp__internal__n_start_req_69;
13118 }
13119 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob58, 8);
13120 p = match_seq.current;
13121 switch (match_seq.status) {
13122 case kMatchComplete: {
13123 p++;
13124 match = 27;
13125 goto s_n_llhttp__internal__n_invoke_store_method_1;
13126 }
13127 case kMatchPause: {
13128 return s_n_llhttp__internal__n_start_req_69;
13129 }
13130 case kMatchMismatch: {
13131 goto s_n_llhttp__internal__n_error_64;
13132 }
13133 }
13134 /* UNREACHABLE */;
13135 abort();
13136 }
13137 case s_n_llhttp__internal__n_start_req_64:
13138 s_n_llhttp__internal__n_start_req_64: {
13139 if (p == endp) {
13140 return s_n_llhttp__internal__n_start_req_64;
13141 }
13142 switch (*p) {
13143 case 'B': {
13144 p++;
13145 goto s_n_llhttp__internal__n_start_req_65;
13146 }
13147 case 'L': {
13148 p++;
13149 goto s_n_llhttp__internal__n_start_req_66;
13150 }
13151 case 'S': {
13152 p++;
13153 goto s_n_llhttp__internal__n_start_req_69;
13154 }
13155 default: {
13156 goto s_n_llhttp__internal__n_error_64;
13157 }
13158 }
13159 /* UNREACHABLE */;
13160 abort();
13161 }
13162 case s_n_llhttp__internal__n_start_req_63:
13163 s_n_llhttp__internal__n_start_req_63: {
13164 if (p == endp) {
13165 return s_n_llhttp__internal__n_start_req_63;
13166 }
13167 switch (*p) {
13168 case 'N': {
13169 p++;
13170 goto s_n_llhttp__internal__n_start_req_64;
13171 }
13172 default: {
13173 goto s_n_llhttp__internal__n_error_64;
13174 }
13175 }
13176 /* UNREACHABLE */;
13177 abort();
13178 }
13179 case s_n_llhttp__internal__n_start_req:
13180 s_n_llhttp__internal__n_start_req: {
13181 if (p == endp) {
13182 return s_n_llhttp__internal__n_start_req;
13183 }
13184 switch (*p) {
13185 case 'A': {
13186 p++;
13187 goto s_n_llhttp__internal__n_start_req_1;
13188 }
13189 case 'B': {
13190 p++;
13191 goto s_n_llhttp__internal__n_start_req_4;
13192 }
13193 case 'C': {
13194 p++;
13195 goto s_n_llhttp__internal__n_start_req_5;
13196 }
13197 case 'D': {
13198 p++;
13199 goto s_n_llhttp__internal__n_start_req_10;
13200 }
13201 case 'F': {
13202 p++;
13203 goto s_n_llhttp__internal__n_start_req_14;
13204 }
13205 case 'G': {
13206 p++;
13207 goto s_n_llhttp__internal__n_start_req_15;
13208 }
13209 case 'H': {
13210 p++;
13211 goto s_n_llhttp__internal__n_start_req_18;
13212 }
13213 case 'L': {
13214 p++;
13215 goto s_n_llhttp__internal__n_start_req_19;
13216 }
13217 case 'M': {
13218 p++;
13219 goto s_n_llhttp__internal__n_start_req_22;
13220 }
13221 case 'N': {
13222 p++;
13223 goto s_n_llhttp__internal__n_start_req_31;
13224 }
13225 case 'O': {
13226 p++;
13227 goto s_n_llhttp__internal__n_start_req_32;
13228 }
13229 case 'P': {
13230 p++;
13231 goto s_n_llhttp__internal__n_start_req_33;
13232 }
13233 case 'R': {
13234 p++;
13235 goto s_n_llhttp__internal__n_start_req_46;
13236 }
13237 case 'S': {
13238 p++;
13239 goto s_n_llhttp__internal__n_start_req_52;
13240 }
13241 case 'T': {
13242 p++;
13243 goto s_n_llhttp__internal__n_start_req_60;
13244 }
13245 case 'U': {
13246 p++;
13247 goto s_n_llhttp__internal__n_start_req_63;
13248 }
13249 default: {
13250 goto s_n_llhttp__internal__n_error_64;
13251 }
13252 }
13253 /* UNREACHABLE */;
13254 abort();
13255 }
13256 case s_n_llhttp__internal__n_invoke_llhttp__on_status_complete:
13257 s_n_llhttp__internal__n_invoke_llhttp__on_status_complete: {
13258 switch (llhttp__on_status_complete(state, p, endp)) {
13259 default:
13260 goto s_n_llhttp__internal__n_header_field_start;
13261 }
13262 /* UNREACHABLE */;
13263 abort();
13264 }
13265 case s_n_llhttp__internal__n_res_line_almost_done:
13266 s_n_llhttp__internal__n_res_line_almost_done: {
13267 if (p == endp) {
13268 return s_n_llhttp__internal__n_res_line_almost_done;
13269 }
13270 p++;
13271 goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete;
13272 /* UNREACHABLE */;
13273 abort();
13274 }
13275 case s_n_llhttp__internal__n_res_status:
13276 s_n_llhttp__internal__n_res_status: {
13277 if (p == endp) {
13278 return s_n_llhttp__internal__n_res_status;
13279 }
13280 switch (*p) {
13281 case 10: {
13282 goto s_n_llhttp__internal__n_span_end_llhttp__on_status;
13283 }
13284 case 13: {
13285 goto s_n_llhttp__internal__n_span_end_llhttp__on_status_1;
13286 }
13287 default: {
13288 p++;
13289 goto s_n_llhttp__internal__n_res_status;
13290 }
13291 }
13292 /* UNREACHABLE */;
13293 abort();
13294 }
13295 case s_n_llhttp__internal__n_span_start_llhttp__on_status:
13296 s_n_llhttp__internal__n_span_start_llhttp__on_status: {
13297 if (p == endp) {
13298 return s_n_llhttp__internal__n_span_start_llhttp__on_status;
13299 }
13300 state->_span_pos0 = (void*) p;
13301 state->_span_cb0 = llhttp__on_status;
13302 goto s_n_llhttp__internal__n_res_status;
13303 /* UNREACHABLE */;
13304 abort();
13305 }
13306 case s_n_llhttp__internal__n_res_status_start:
13307 s_n_llhttp__internal__n_res_status_start: {
13308 if (p == endp) {
13309 return s_n_llhttp__internal__n_res_status_start;
13310 }
13311 switch (*p) {
13312 case 10: {
13313 p++;
13314 goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete;
13315 }
13316 case 13: {
13317 p++;
13318 goto s_n_llhttp__internal__n_res_line_almost_done;
13319 }
13320 default: {
13321 goto s_n_llhttp__internal__n_span_start_llhttp__on_status;
13322 }
13323 }
13324 /* UNREACHABLE */;
13325 abort();
13326 }
13327 case s_n_llhttp__internal__n_res_status_code_otherwise:
13328 s_n_llhttp__internal__n_res_status_code_otherwise: {
13329 if (p == endp) {
13330 return s_n_llhttp__internal__n_res_status_code_otherwise;
13331 }
13332 switch (*p) {
13333 case 10: {
13334 goto s_n_llhttp__internal__n_res_status_start;
13335 }
13336 case 13: {
13337 goto s_n_llhttp__internal__n_res_status_start;
13338 }
13339 case ' ': {
13340 p++;
13341 goto s_n_llhttp__internal__n_res_status_start;
13342 }
13343 default: {
13344 goto s_n_llhttp__internal__n_error_56;
13345 }
13346 }
13347 /* UNREACHABLE */;
13348 abort();
13349 }
13350 case s_n_llhttp__internal__n_res_status_code:
13351 s_n_llhttp__internal__n_res_status_code: {
13352 if (p == endp) {
13353 return s_n_llhttp__internal__n_res_status_code;
13354 }
13355 switch (*p) {
13356 case '0': {
13357 p++;
13358 match = 0;
13359 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
13360 }
13361 case '1': {
13362 p++;
13363 match = 1;
13364 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
13365 }
13366 case '2': {
13367 p++;
13368 match = 2;
13369 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
13370 }
13371 case '3': {
13372 p++;
13373 match = 3;
13374 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
13375 }
13376 case '4': {
13377 p++;
13378 match = 4;
13379 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
13380 }
13381 case '5': {
13382 p++;
13383 match = 5;
13384 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
13385 }
13386 case '6': {
13387 p++;
13388 match = 6;
13389 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
13390 }
13391 case '7': {
13392 p++;
13393 match = 7;
13394 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
13395 }
13396 case '8': {
13397 p++;
13398 match = 8;
13399 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
13400 }
13401 case '9': {
13402 p++;
13403 match = 9;
13404 goto s_n_llhttp__internal__n_invoke_mul_add_status_code;
13405 }
13406 default: {
13407 goto s_n_llhttp__internal__n_res_status_code_otherwise;
13408 }
13409 }
13410 /* UNREACHABLE */;
13411 abort();
13412 }
13413 case s_n_llhttp__internal__n_res_http_end:
13414 s_n_llhttp__internal__n_res_http_end: {
13415 if (p == endp) {
13416 return s_n_llhttp__internal__n_res_http_end;
13417 }
13418 switch (*p) {
13419 case ' ': {
13420 p++;
13421 goto s_n_llhttp__internal__n_invoke_update_status_code;
13422 }
13423 default: {
13424 goto s_n_llhttp__internal__n_error_57;
13425 }
13426 }
13427 /* UNREACHABLE */;
13428 abort();
13429 }
13430 case s_n_llhttp__internal__n_res_http_minor:
13431 s_n_llhttp__internal__n_res_http_minor: {
13432 if (p == endp) {
13433 return s_n_llhttp__internal__n_res_http_minor;
13434 }
13435 switch (*p) {
13436 case '0': {
13437 p++;
13438 match = 0;
13439 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
13440 }
13441 case '1': {
13442 p++;
13443 match = 1;
13444 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
13445 }
13446 case '2': {
13447 p++;
13448 match = 2;
13449 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
13450 }
13451 case '3': {
13452 p++;
13453 match = 3;
13454 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
13455 }
13456 case '4': {
13457 p++;
13458 match = 4;
13459 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
13460 }
13461 case '5': {
13462 p++;
13463 match = 5;
13464 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
13465 }
13466 case '6': {
13467 p++;
13468 match = 6;
13469 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
13470 }
13471 case '7': {
13472 p++;
13473 match = 7;
13474 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
13475 }
13476 case '8': {
13477 p++;
13478 match = 8;
13479 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
13480 }
13481 case '9': {
13482 p++;
13483 match = 9;
13484 goto s_n_llhttp__internal__n_invoke_store_http_minor_1;
13485 }
13486 default: {
13487 goto s_n_llhttp__internal__n_error_60;
13488 }
13489 }
13490 /* UNREACHABLE */;
13491 abort();
13492 }
13493 case s_n_llhttp__internal__n_res_http_dot:
13494 s_n_llhttp__internal__n_res_http_dot: {
13495 if (p == endp) {
13496 return s_n_llhttp__internal__n_res_http_dot;
13497 }
13498 switch (*p) {
13499 case '.': {
13500 p++;
13501 goto s_n_llhttp__internal__n_res_http_minor;
13502 }
13503 default: {
13504 goto s_n_llhttp__internal__n_error_61;
13505 }
13506 }
13507 /* UNREACHABLE */;
13508 abort();
13509 }
13510 case s_n_llhttp__internal__n_res_http_major:
13511 s_n_llhttp__internal__n_res_http_major: {
13512 if (p == endp) {
13513 return s_n_llhttp__internal__n_res_http_major;
13514 }
13515 switch (*p) {
13516 case '0': {
13517 p++;
13518 match = 0;
13519 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
13520 }
13521 case '1': {
13522 p++;
13523 match = 1;
13524 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
13525 }
13526 case '2': {
13527 p++;
13528 match = 2;
13529 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
13530 }
13531 case '3': {
13532 p++;
13533 match = 3;
13534 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
13535 }
13536 case '4': {
13537 p++;
13538 match = 4;
13539 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
13540 }
13541 case '5': {
13542 p++;
13543 match = 5;
13544 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
13545 }
13546 case '6': {
13547 p++;
13548 match = 6;
13549 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
13550 }
13551 case '7': {
13552 p++;
13553 match = 7;
13554 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
13555 }
13556 case '8': {
13557 p++;
13558 match = 8;
13559 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
13560 }
13561 case '9': {
13562 p++;
13563 match = 9;
13564 goto s_n_llhttp__internal__n_invoke_store_http_major_1;
13565 }
13566 default: {
13567 goto s_n_llhttp__internal__n_error_62;
13568 }
13569 }
13570 /* UNREACHABLE */;
13571 abort();
13572 }
13573 case s_n_llhttp__internal__n_start_res:
13574 s_n_llhttp__internal__n_start_res: {
13575 llparse_match_t match_seq;
13576
13577 if (p == endp) {
13578 return s_n_llhttp__internal__n_start_res;
13579 }
13580 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob59, 5);
13581 p = match_seq.current;
13582 switch (match_seq.status) {
13583 case kMatchComplete: {
13584 p++;
13585 goto s_n_llhttp__internal__n_res_http_major;
13586 }
13587 case kMatchPause: {
13588 return s_n_llhttp__internal__n_start_res;
13589 }
13590 case kMatchMismatch: {
13591 goto s_n_llhttp__internal__n_error_65;
13592 }
13593 }
13594 /* UNREACHABLE */;
13595 abort();
13596 }
13597 case s_n_llhttp__internal__n_req_or_res_method_2:
13598 s_n_llhttp__internal__n_req_or_res_method_2: {
13599 llparse_match_t match_seq;
13600
13601 if (p == endp) {
13602 return s_n_llhttp__internal__n_req_or_res_method_2;
13603 }
13604 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob60, 2);
13605 p = match_seq.current;
13606 switch (match_seq.status) {
13607 case kMatchComplete: {
13608 p++;
13609 match = 2;
13610 goto s_n_llhttp__internal__n_invoke_store_method;
13611 }
13612 case kMatchPause: {
13613 return s_n_llhttp__internal__n_req_or_res_method_2;
13614 }
13615 case kMatchMismatch: {
13616 goto s_n_llhttp__internal__n_error_63;
13617 }
13618 }
13619 /* UNREACHABLE */;
13620 abort();
13621 }
13622 case s_n_llhttp__internal__n_req_or_res_method_3:
13623 s_n_llhttp__internal__n_req_or_res_method_3: {
13624 llparse_match_t match_seq;
13625
13626 if (p == endp) {
13627 return s_n_llhttp__internal__n_req_or_res_method_3;
13628 }
13629 match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob61, 3);
13630 p = match_seq.current;
13631 switch (match_seq.status) {
13632 case kMatchComplete: {
13633 p++;
13634 goto s_n_llhttp__internal__n_invoke_update_type_1;
13635 }
13636 case kMatchPause: {
13637 return s_n_llhttp__internal__n_req_or_res_method_3;
13638 }
13639 case kMatchMismatch: {
13640 goto s_n_llhttp__internal__n_error_63;
13641 }
13642 }
13643 /* UNREACHABLE */;
13644 abort();
13645 }
13646 case s_n_llhttp__internal__n_req_or_res_method_1:
13647 s_n_llhttp__internal__n_req_or_res_method_1: {
13648 if (p == endp) {
13649 return s_n_llhttp__internal__n_req_or_res_method_1;
13650 }
13651 switch (*p) {
13652 case 'E': {
13653 p++;
13654 goto s_n_llhttp__internal__n_req_or_res_method_2;
13655 }
13656 case 'T': {
13657 p++;
13658 goto s_n_llhttp__internal__n_req_or_res_method_3;
13659 }
13660 default: {
13661 goto s_n_llhttp__internal__n_error_63;
13662 }
13663 }
13664 /* UNREACHABLE */;
13665 abort();
13666 }
13667 case s_n_llhttp__internal__n_req_or_res_method:
13668 s_n_llhttp__internal__n_req_or_res_method: {
13669 if (p == endp) {
13670 return s_n_llhttp__internal__n_req_or_res_method;
13671 }
13672 switch (*p) {
13673 case 'H': {
13674 p++;
13675 goto s_n_llhttp__internal__n_req_or_res_method_1;
13676 }
13677 default: {
13678 goto s_n_llhttp__internal__n_error_63;
13679 }
13680 }
13681 /* UNREACHABLE */;
13682 abort();
13683 }
13684 case s_n_llhttp__internal__n_start_req_or_res:
13685 s_n_llhttp__internal__n_start_req_or_res: {
13686 if (p == endp) {
13687 return s_n_llhttp__internal__n_start_req_or_res;
13688 }
13689 switch (*p) {
13690 case 'H': {
13691 goto s_n_llhttp__internal__n_req_or_res_method;
13692 }
13693 default: {
13694 goto s_n_llhttp__internal__n_invoke_update_type_2;
13695 }
13696 }
13697 /* UNREACHABLE */;
13698 abort();
13699 }
13700 case s_n_llhttp__internal__n_invoke_load_type:
13701 s_n_llhttp__internal__n_invoke_load_type: {
13702 switch (llhttp__internal__c_load_type(state, p, endp)) {
13703 case 1:
13704 goto s_n_llhttp__internal__n_start_req;
13705 case 2:
13706 goto s_n_llhttp__internal__n_start_res;
13707 default:
13708 goto s_n_llhttp__internal__n_start_req_or_res;
13709 }
13710 /* UNREACHABLE */;
13711 abort();
13712 }
13713 case s_n_llhttp__internal__n_start:
13714 s_n_llhttp__internal__n_start: {
13715 if (p == endp) {
13716 return s_n_llhttp__internal__n_start;
13717 }
13718 switch (*p) {
13719 case 10: {
13720 p++;
13721 goto s_n_llhttp__internal__n_start;
13722 }
13723 case 13: {
13724 p++;
13725 goto s_n_llhttp__internal__n_start;
13726 }
13727 default: {
13728 goto s_n_llhttp__internal__n_invoke_update_finish;
13729 }
13730 }
13731 /* UNREACHABLE */;
13732 abort();
13733 }
13734 default:
13735 /* UNREACHABLE */
13736 abort();
13737 }
13738 s_n_llhttp__internal__n_error_48: {
13739 state->error = 0x7;
13740 state->reason = "Invalid characters in url";
13741 state->error_pos = (const char*) p;
13742 state->_current = (void*) (intptr_t) s_error;
13743 return s_error;
13744 /* UNREACHABLE */;
13745 abort();
13746 }
13747 s_n_llhttp__internal__n_invoke_update_finish_2: {
13748 switch (llhttp__internal__c_update_finish_1(state, p, endp)) {
13749 default:
13750 goto s_n_llhttp__internal__n_start;
13751 }
13752 /* UNREACHABLE */;
13753 abort();
13754 }
13755 s_n_llhttp__internal__n_invoke_test_lenient_flags: {
13756 switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) {
13757 case 1:
13758 goto s_n_llhttp__internal__n_invoke_update_finish_2;
13759 default:
13760 goto s_n_llhttp__internal__n_closed;
13761 }
13762 /* UNREACHABLE */;
13763 abort();
13764 }
13765 s_n_llhttp__internal__n_invoke_update_finish_1: {
13766 switch (llhttp__internal__c_update_finish_1(state, p, endp)) {
13767 default:
13768 goto s_n_llhttp__internal__n_invoke_test_lenient_flags;
13769 }
13770 /* UNREACHABLE */;
13771 abort();
13772 }
13773 s_n_llhttp__internal__n_pause_5: {
13774 state->error = 0x15;
13775 state->reason = "on_message_complete pause";
13776 state->error_pos = (const char*) p;
13777 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_is_equal_upgrade;
13778 return s_error;
13779 /* UNREACHABLE */;
13780 abort();
13781 }
13782 s_n_llhttp__internal__n_error_10: {
13783 state->error = 0x12;
13784 state->reason = "`on_message_complete` callback error";
13785 state->error_pos = (const char*) p;
13786 state->_current = (void*) (intptr_t) s_error;
13787 return s_error;
13788 /* UNREACHABLE */;
13789 abort();
13790 }
13791 s_n_llhttp__internal__n_pause_7: {
13792 state->error = 0x15;
13793 state->reason = "on_chunk_complete pause";
13794 state->error_pos = (const char*) p;
13795 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
13796 return s_error;
13797 /* UNREACHABLE */;
13798 abort();
13799 }
13800 s_n_llhttp__internal__n_error_13: {
13801 state->error = 0x14;
13802 state->reason = "`on_chunk_complete` callback error";
13803 state->error_pos = (const char*) p;
13804 state->_current = (void*) (intptr_t) s_error;
13805 return s_error;
13806 /* UNREACHABLE */;
13807 abort();
13808 }
13809 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete_1: {
13810 switch (llhttp__on_chunk_complete(state, p, endp)) {
13811 case 0:
13812 goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
13813 case 21:
13814 goto s_n_llhttp__internal__n_pause_7;
13815 default:
13816 goto s_n_llhttp__internal__n_error_13;
13817 }
13818 /* UNREACHABLE */;
13819 abort();
13820 }
13821 s_n_llhttp__internal__n_error_12: {
13822 state->error = 0x4;
13823 state->reason = "Content-Length can't be present with Transfer-Encoding";
13824 state->error_pos = (const char*) p;
13825 state->_current = (void*) (intptr_t) s_error;
13826 return s_error;
13827 /* UNREACHABLE */;
13828 abort();
13829 }
13830 s_n_llhttp__internal__n_pause_2: {
13831 state->error = 0x15;
13832 state->reason = "on_message_complete pause";
13833 state->error_pos = (const char*) p;
13834 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_pause_1;
13835 return s_error;
13836 /* UNREACHABLE */;
13837 abort();
13838 }
13839 s_n_llhttp__internal__n_error_3: {
13840 state->error = 0x12;
13841 state->reason = "`on_message_complete` callback error";
13842 state->error_pos = (const char*) p;
13843 state->_current = (void*) (intptr_t) s_error;
13844 return s_error;
13845 /* UNREACHABLE */;
13846 abort();
13847 }
13848 s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_1: {
13849 switch (llhttp__on_message_complete(state, p, endp)) {
13850 case 0:
13851 goto s_n_llhttp__internal__n_pause_1;
13852 case 21:
13853 goto s_n_llhttp__internal__n_pause_2;
13854 default:
13855 goto s_n_llhttp__internal__n_error_3;
13856 }
13857 /* UNREACHABLE */;
13858 abort();
13859 }
13860 s_n_llhttp__internal__n_error_8: {
13861 state->error = 0xc;
13862 state->reason = "Chunk size overflow";
13863 state->error_pos = (const char*) p;
13864 state->_current = (void*) (intptr_t) s_error;
13865 return s_error;
13866 /* UNREACHABLE */;
13867 abort();
13868 }
13869 s_n_llhttp__internal__n_pause_3: {
13870 state->error = 0x15;
13871 state->reason = "on_chunk_complete pause";
13872 state->error_pos = (const char*) p;
13873 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_update_content_length;
13874 return s_error;
13875 /* UNREACHABLE */;
13876 abort();
13877 }
13878 s_n_llhttp__internal__n_error_5: {
13879 state->error = 0x14;
13880 state->reason = "`on_chunk_complete` callback error";
13881 state->error_pos = (const char*) p;
13882 state->_current = (void*) (intptr_t) s_error;
13883 return s_error;
13884 /* UNREACHABLE */;
13885 abort();
13886 }
13887 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete: {
13888 switch (llhttp__on_chunk_complete(state, p, endp)) {
13889 case 0:
13890 goto s_n_llhttp__internal__n_invoke_update_content_length;
13891 case 21:
13892 goto s_n_llhttp__internal__n_pause_3;
13893 default:
13894 goto s_n_llhttp__internal__n_error_5;
13895 }
13896 /* UNREACHABLE */;
13897 abort();
13898 }
13899 s_n_llhttp__internal__n_span_end_llhttp__on_body: {
13900 const unsigned char* start;
13901 int err;
13902
13903 start = state->_span_pos0;
13904 state->_span_pos0 = NULL;
13905 err = llhttp__on_body(state, start, p);
13906 if (err != 0) {
13907 state->error = err;
13908 state->error_pos = (const char*) p;
13909 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_chunk_data_almost_done;
13910 return s_error;
13911 }
13912 goto s_n_llhttp__internal__n_chunk_data_almost_done;
13913 /* UNREACHABLE */;
13914 abort();
13915 }
13916 s_n_llhttp__internal__n_invoke_or_flags: {
13917 switch (llhttp__internal__c_or_flags(state, p, endp)) {
13918 default:
13919 goto s_n_llhttp__internal__n_header_field_start;
13920 }
13921 /* UNREACHABLE */;
13922 abort();
13923 }
13924 s_n_llhttp__internal__n_pause_4: {
13925 state->error = 0x15;
13926 state->reason = "on_chunk_header pause";
13927 state->error_pos = (const char*) p;
13928 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_is_equal_content_length;
13929 return s_error;
13930 /* UNREACHABLE */;
13931 abort();
13932 }
13933 s_n_llhttp__internal__n_error_4: {
13934 state->error = 0x13;
13935 state->reason = "`on_chunk_header` callback error";
13936 state->error_pos = (const char*) p;
13937 state->_current = (void*) (intptr_t) s_error;
13938 return s_error;
13939 /* UNREACHABLE */;
13940 abort();
13941 }
13942 s_n_llhttp__internal__n_invoke_llhttp__on_chunk_header: {
13943 switch (llhttp__on_chunk_header(state, p, endp)) {
13944 case 0:
13945 goto s_n_llhttp__internal__n_invoke_is_equal_content_length;
13946 case 21:
13947 goto s_n_llhttp__internal__n_pause_4;
13948 default:
13949 goto s_n_llhttp__internal__n_error_4;
13950 }
13951 /* UNREACHABLE */;
13952 abort();
13953 }
13954 s_n_llhttp__internal__n_error_6: {
13955 state->error = 0x2;
13956 state->reason = "Invalid character in chunk parameters";
13957 state->error_pos = (const char*) p;
13958 state->_current = (void*) (intptr_t) s_error;
13959 return s_error;
13960 /* UNREACHABLE */;
13961 abort();
13962 }
13963 s_n_llhttp__internal__n_error_7: {
13964 state->error = 0xc;
13965 state->reason = "Invalid character in chunk size";
13966 state->error_pos = (const char*) p;
13967 state->_current = (void*) (intptr_t) s_error;
13968 return s_error;
13969 /* UNREACHABLE */;
13970 abort();
13971 }
13972 s_n_llhttp__internal__n_invoke_mul_add_content_length: {
13973 switch (llhttp__internal__c_mul_add_content_length(state, p, endp, match)) {
13974 case 1:
13975 goto s_n_llhttp__internal__n_error_8;
13976 default:
13977 goto s_n_llhttp__internal__n_chunk_size;
13978 }
13979 /* UNREACHABLE */;
13980 abort();
13981 }
13982 s_n_llhttp__internal__n_error_9: {
13983 state->error = 0xc;
13984 state->reason = "Invalid character in chunk size";
13985 state->error_pos = (const char*) p;
13986 state->_current = (void*) (intptr_t) s_error;
13987 return s_error;
13988 /* UNREACHABLE */;
13989 abort();
13990 }
13991 s_n_llhttp__internal__n_span_end_llhttp__on_body_1: {
13992 const unsigned char* start;
13993 int err;
13994
13995 start = state->_span_pos0;
13996 state->_span_pos0 = NULL;
13997 err = llhttp__on_body(state, start, p);
13998 if (err != 0) {
13999 state->error = err;
14000 state->error_pos = (const char*) p;
14001 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
14002 return s_error;
14003 }
14004 goto s_n_llhttp__internal__n_invoke_llhttp__on_message_complete_2;
14005 /* UNREACHABLE */;
14006 abort();
14007 }
14008 s_n_llhttp__internal__n_invoke_update_finish_3: {
14009 switch (llhttp__internal__c_update_finish_3(state, p, endp)) {
14010 default:
14011 goto s_n_llhttp__internal__n_span_start_llhttp__on_body_2;
14012 }
14013 /* UNREACHABLE */;
14014 abort();
14015 }
14016 s_n_llhttp__internal__n_error_11: {
14017 state->error = 0xf;
14018 state->reason = "Request has invalid `Transfer-Encoding`";
14019 state->error_pos = (const char*) p;
14020 state->_current = (void*) (intptr_t) s_error;
14021 return s_error;
14022 /* UNREACHABLE */;
14023 abort();
14024 }
14025 s_n_llhttp__internal__n_pause: {
14026 state->error = 0x15;
14027 state->reason = "on_message_complete pause";
14028 state->error_pos = (const char*) p;
14029 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
14030 return s_error;
14031 /* UNREACHABLE */;
14032 abort();
14033 }
14034 s_n_llhttp__internal__n_error_2: {
14035 state->error = 0x12;
14036 state->reason = "`on_message_complete` callback error";
14037 state->error_pos = (const char*) p;
14038 state->_current = (void*) (intptr_t) s_error;
14039 return s_error;
14040 /* UNREACHABLE */;
14041 abort();
14042 }
14043 s_n_llhttp__internal__n_invoke_llhttp__on_message_complete: {
14044 switch (llhttp__on_message_complete(state, p, endp)) {
14045 case 0:
14046 goto s_n_llhttp__internal__n_invoke_llhttp__after_message_complete;
14047 case 21:
14048 goto s_n_llhttp__internal__n_pause;
14049 default:
14050 goto s_n_llhttp__internal__n_error_2;
14051 }
14052 /* UNREACHABLE */;
14053 abort();
14054 }
14055 s_n_llhttp__internal__n_invoke_or_flags_1: {
14056 switch (llhttp__internal__c_or_flags_1(state, p, endp)) {
14057 default:
14058 goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
14059 }
14060 /* UNREACHABLE */;
14061 abort();
14062 }
14063 s_n_llhttp__internal__n_invoke_or_flags_2: {
14064 switch (llhttp__internal__c_or_flags_1(state, p, endp)) {
14065 default:
14066 goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
14067 }
14068 /* UNREACHABLE */;
14069 abort();
14070 }
14071 s_n_llhttp__internal__n_invoke_update_upgrade: {
14072 switch (llhttp__internal__c_update_upgrade(state, p, endp)) {
14073 default:
14074 goto s_n_llhttp__internal__n_invoke_or_flags_2;
14075 }
14076 /* UNREACHABLE */;
14077 abort();
14078 }
14079 s_n_llhttp__internal__n_pause_6: {
14080 state->error = 0x15;
14081 state->reason = "Paused by on_headers_complete";
14082 state->error_pos = (const char*) p;
14083 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
14084 return s_error;
14085 /* UNREACHABLE */;
14086 abort();
14087 }
14088 s_n_llhttp__internal__n_error_1: {
14089 state->error = 0x11;
14090 state->reason = "User callback error";
14091 state->error_pos = (const char*) p;
14092 state->_current = (void*) (intptr_t) s_error;
14093 return s_error;
14094 /* UNREACHABLE */;
14095 abort();
14096 }
14097 s_n_llhttp__internal__n_invoke_llhttp__on_headers_complete: {
14098 switch (llhttp__on_headers_complete(state, p, endp)) {
14099 case 0:
14100 goto s_n_llhttp__internal__n_invoke_llhttp__after_headers_complete;
14101 case 1:
14102 goto s_n_llhttp__internal__n_invoke_or_flags_1;
14103 case 2:
14104 goto s_n_llhttp__internal__n_invoke_update_upgrade;
14105 case 21:
14106 goto s_n_llhttp__internal__n_pause_6;
14107 default:
14108 goto s_n_llhttp__internal__n_error_1;
14109 }
14110 /* UNREACHABLE */;
14111 abort();
14112 }
14113 s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete: {
14114 switch (llhttp__before_headers_complete(state, p, endp)) {
14115 default:
14116 goto s_n_llhttp__internal__n_invoke_llhttp__on_headers_complete;
14117 }
14118 /* UNREACHABLE */;
14119 abort();
14120 }
14121 s_n_llhttp__internal__n_invoke_test_lenient_flags_1: {
14122 switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) {
14123 case 0:
14124 goto s_n_llhttp__internal__n_error_12;
14125 default:
14126 goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete;
14127 }
14128 /* UNREACHABLE */;
14129 abort();
14130 }
14131 s_n_llhttp__internal__n_invoke_test_flags_1: {
14132 switch (llhttp__internal__c_test_flags_1(state, p, endp)) {
14133 case 1:
14134 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_1;
14135 default:
14136 goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete;
14137 }
14138 /* UNREACHABLE */;
14139 abort();
14140 }
14141 s_n_llhttp__internal__n_invoke_test_flags: {
14142 switch (llhttp__internal__c_test_flags(state, p, endp)) {
14143 case 1:
14144 goto s_n_llhttp__internal__n_invoke_llhttp__on_chunk_complete_1;
14145 default:
14146 goto s_n_llhttp__internal__n_invoke_test_flags_1;
14147 }
14148 /* UNREACHABLE */;
14149 abort();
14150 }
14151 s_n_llhttp__internal__n_span_end_llhttp__on_header_field: {
14152 const unsigned char* start;
14153 int err;
14154
14155 start = state->_span_pos0;
14156 state->_span_pos0 = NULL;
14157 err = llhttp__on_header_field(state, start, p);
14158 if (err != 0) {
14159 state->error = err;
14160 state->error_pos = (const char*) (p + 1);
14161 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_14;
14162 return s_error;
14163 }
14164 p++;
14165 goto s_n_llhttp__internal__n_error_14;
14166 /* UNREACHABLE */;
14167 abort();
14168 }
14169 s_n_llhttp__internal__n_invoke_test_lenient_flags_2: {
14170 switch (llhttp__internal__c_test_lenient_flags_2(state, p, endp)) {
14171 case 1:
14172 goto s_n_llhttp__internal__n_header_field_colon_discard_ws;
14173 default:
14174 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field;
14175 }
14176 /* UNREACHABLE */;
14177 abort();
14178 }
14179 s_n_llhttp__internal__n_error_16: {
14180 state->error = 0xa;
14181 state->reason = "Invalid header value char";
14182 state->error_pos = (const char*) p;
14183 state->_current = (void*) (intptr_t) s_error;
14184 return s_error;
14185 /* UNREACHABLE */;
14186 abort();
14187 }
14188 s_n_llhttp__internal__n_invoke_test_lenient_flags_4: {
14189 switch (llhttp__internal__c_test_lenient_flags_2(state, p, endp)) {
14190 case 1:
14191 goto s_n_llhttp__internal__n_header_value_discard_ws;
14192 default:
14193 goto s_n_llhttp__internal__n_error_16;
14194 }
14195 /* UNREACHABLE */;
14196 abort();
14197 }
14198 s_n_llhttp__internal__n_error_17: {
14199 state->error = 0xb;
14200 state->reason = "Empty Content-Length";
14201 state->error_pos = (const char*) p;
14202 state->_current = (void*) (intptr_t) s_error;
14203 return s_error;
14204 /* UNREACHABLE */;
14205 abort();
14206 }
14207 s_n_llhttp__internal__n_span_end_llhttp__on_header_value: {
14208 const unsigned char* start;
14209 int err;
14210
14211 start = state->_span_pos0;
14212 state->_span_pos0 = NULL;
14213 err = llhttp__on_header_value(state, start, p);
14214 if (err != 0) {
14215 state->error = err;
14216 state->error_pos = (const char*) p;
14217 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete;
14218 return s_error;
14219 }
14220 goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete;
14221 /* UNREACHABLE */;
14222 abort();
14223 }
14224 s_n_llhttp__internal__n_invoke_update_header_state: {
14225 switch (llhttp__internal__c_update_header_state(state, p, endp)) {
14226 default:
14227 goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value;
14228 }
14229 /* UNREACHABLE */;
14230 abort();
14231 }
14232 s_n_llhttp__internal__n_invoke_or_flags_3: {
14233 switch (llhttp__internal__c_or_flags_3(state, p, endp)) {
14234 default:
14235 goto s_n_llhttp__internal__n_invoke_update_header_state;
14236 }
14237 /* UNREACHABLE */;
14238 abort();
14239 }
14240 s_n_llhttp__internal__n_invoke_or_flags_4: {
14241 switch (llhttp__internal__c_or_flags_4(state, p, endp)) {
14242 default:
14243 goto s_n_llhttp__internal__n_invoke_update_header_state;
14244 }
14245 /* UNREACHABLE */;
14246 abort();
14247 }
14248 s_n_llhttp__internal__n_invoke_or_flags_5: {
14249 switch (llhttp__internal__c_or_flags_5(state, p, endp)) {
14250 default:
14251 goto s_n_llhttp__internal__n_invoke_update_header_state;
14252 }
14253 /* UNREACHABLE */;
14254 abort();
14255 }
14256 s_n_llhttp__internal__n_invoke_or_flags_6: {
14257 switch (llhttp__internal__c_or_flags_6(state, p, endp)) {
14258 default:
14259 goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value;
14260 }
14261 /* UNREACHABLE */;
14262 abort();
14263 }
14264 s_n_llhttp__internal__n_invoke_load_header_state_1: {
14265 switch (llhttp__internal__c_load_header_state(state, p, endp)) {
14266 case 5:
14267 goto s_n_llhttp__internal__n_invoke_or_flags_3;
14268 case 6:
14269 goto s_n_llhttp__internal__n_invoke_or_flags_4;
14270 case 7:
14271 goto s_n_llhttp__internal__n_invoke_or_flags_5;
14272 case 8:
14273 goto s_n_llhttp__internal__n_invoke_or_flags_6;
14274 default:
14275 goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value;
14276 }
14277 /* UNREACHABLE */;
14278 abort();
14279 }
14280 s_n_llhttp__internal__n_invoke_load_header_state: {
14281 switch (llhttp__internal__c_load_header_state(state, p, endp)) {
14282 case 2:
14283 goto s_n_llhttp__internal__n_error_17;
14284 default:
14285 goto s_n_llhttp__internal__n_invoke_load_header_state_1;
14286 }
14287 /* UNREACHABLE */;
14288 abort();
14289 }
14290 s_n_llhttp__internal__n_error_15: {
14291 state->error = 0xa;
14292 state->reason = "Invalid header value char";
14293 state->error_pos = (const char*) p;
14294 state->_current = (void*) (intptr_t) s_error;
14295 return s_error;
14296 /* UNREACHABLE */;
14297 abort();
14298 }
14299 s_n_llhttp__internal__n_invoke_test_lenient_flags_3: {
14300 switch (llhttp__internal__c_test_lenient_flags_2(state, p, endp)) {
14301 case 1:
14302 goto s_n_llhttp__internal__n_header_value_discard_lws;
14303 default:
14304 goto s_n_llhttp__internal__n_error_15;
14305 }
14306 /* UNREACHABLE */;
14307 abort();
14308 }
14309 s_n_llhttp__internal__n_error_18: {
14310 state->error = 0x2;
14311 state->reason = "Expected LF after CR";
14312 state->error_pos = (const char*) p;
14313 state->_current = (void*) (intptr_t) s_error;
14314 return s_error;
14315 /* UNREACHABLE */;
14316 abort();
14317 }
14318 s_n_llhttp__internal__n_invoke_test_lenient_flags_5: {
14319 switch (llhttp__internal__c_test_lenient_flags_2(state, p, endp)) {
14320 case 1:
14321 goto s_n_llhttp__internal__n_header_value_discard_lws;
14322 default:
14323 goto s_n_llhttp__internal__n_error_18;
14324 }
14325 /* UNREACHABLE */;
14326 abort();
14327 }
14328 s_n_llhttp__internal__n_invoke_update_header_state_1: {
14329 switch (llhttp__internal__c_update_header_state_1(state, p, endp)) {
14330 default:
14331 goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
14332 }
14333 /* UNREACHABLE */;
14334 abort();
14335 }
14336 s_n_llhttp__internal__n_invoke_load_header_state_3: {
14337 switch (llhttp__internal__c_load_header_state(state, p, endp)) {
14338 case 8:
14339 goto s_n_llhttp__internal__n_invoke_update_header_state_1;
14340 default:
14341 goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1;
14342 }
14343 /* UNREACHABLE */;
14344 abort();
14345 }
14346 s_n_llhttp__internal__n_invoke_update_header_state_2: {
14347 switch (llhttp__internal__c_update_header_state(state, p, endp)) {
14348 default:
14349 goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete;
14350 }
14351 /* UNREACHABLE */;
14352 abort();
14353 }
14354 s_n_llhttp__internal__n_invoke_or_flags_7: {
14355 switch (llhttp__internal__c_or_flags_3(state, p, endp)) {
14356 default:
14357 goto s_n_llhttp__internal__n_invoke_update_header_state_2;
14358 }
14359 /* UNREACHABLE */;
14360 abort();
14361 }
14362 s_n_llhttp__internal__n_invoke_or_flags_8: {
14363 switch (llhttp__internal__c_or_flags_4(state, p, endp)) {
14364 default:
14365 goto s_n_llhttp__internal__n_invoke_update_header_state_2;
14366 }
14367 /* UNREACHABLE */;
14368 abort();
14369 }
14370 s_n_llhttp__internal__n_invoke_or_flags_9: {
14371 switch (llhttp__internal__c_or_flags_5(state, p, endp)) {
14372 default:
14373 goto s_n_llhttp__internal__n_invoke_update_header_state_2;
14374 }
14375 /* UNREACHABLE */;
14376 abort();
14377 }
14378 s_n_llhttp__internal__n_invoke_or_flags_10: {
14379 switch (llhttp__internal__c_or_flags_6(state, p, endp)) {
14380 default:
14381 goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete;
14382 }
14383 /* UNREACHABLE */;
14384 abort();
14385 }
14386 s_n_llhttp__internal__n_invoke_load_header_state_4: {
14387 switch (llhttp__internal__c_load_header_state(state, p, endp)) {
14388 case 5:
14389 goto s_n_llhttp__internal__n_invoke_or_flags_7;
14390 case 6:
14391 goto s_n_llhttp__internal__n_invoke_or_flags_8;
14392 case 7:
14393 goto s_n_llhttp__internal__n_invoke_or_flags_9;
14394 case 8:
14395 goto s_n_llhttp__internal__n_invoke_or_flags_10;
14396 default:
14397 goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete;
14398 }
14399 /* UNREACHABLE */;
14400 abort();
14401 }
14402 s_n_llhttp__internal__n_error_19: {
14403 state->error = 0x3;
14404 state->reason = "Missing expected LF after header value";
14405 state->error_pos = (const char*) p;
14406 state->_current = (void*) (intptr_t) s_error;
14407 return s_error;
14408 /* UNREACHABLE */;
14409 abort();
14410 }
14411 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_1: {
14412 const unsigned char* start;
14413 int err;
14414
14415 start = state->_span_pos0;
14416 state->_span_pos0 = NULL;
14417 err = llhttp__on_header_value(state, start, p);
14418 if (err != 0) {
14419 state->error = err;
14420 state->error_pos = (const char*) (p + 1);
14421 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_almost_done;
14422 return s_error;
14423 }
14424 p++;
14425 goto s_n_llhttp__internal__n_header_value_almost_done;
14426 /* UNREACHABLE */;
14427 abort();
14428 }
14429 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_3: {
14430 const unsigned char* start;
14431 int err;
14432
14433 start = state->_span_pos0;
14434 state->_span_pos0 = NULL;
14435 err = llhttp__on_header_value(state, start, p);
14436 if (err != 0) {
14437 state->error = err;
14438 state->error_pos = (const char*) p;
14439 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_almost_done;
14440 return s_error;
14441 }
14442 goto s_n_llhttp__internal__n_header_value_almost_done;
14443 /* UNREACHABLE */;
14444 abort();
14445 }
14446 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_4: {
14447 const unsigned char* start;
14448 int err;
14449
14450 start = state->_span_pos0;
14451 state->_span_pos0 = NULL;
14452 err = llhttp__on_header_value(state, start, p);
14453 if (err != 0) {
14454 state->error = err;
14455 state->error_pos = (const char*) (p + 1);
14456 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_almost_done;
14457 return s_error;
14458 }
14459 p++;
14460 goto s_n_llhttp__internal__n_header_value_almost_done;
14461 /* UNREACHABLE */;
14462 abort();
14463 }
14464 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_2: {
14465 const unsigned char* start;
14466 int err;
14467
14468 start = state->_span_pos0;
14469 state->_span_pos0 = NULL;
14470 err = llhttp__on_header_value(state, start, p);
14471 if (err != 0) {
14472 state->error = err;
14473 state->error_pos = (const char*) p;
14474 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_20;
14475 return s_error;
14476 }
14477 goto s_n_llhttp__internal__n_error_20;
14478 /* UNREACHABLE */;
14479 abort();
14480 }
14481 s_n_llhttp__internal__n_invoke_test_lenient_flags_6: {
14482 switch (llhttp__internal__c_test_lenient_flags_2(state, p, endp)) {
14483 case 1:
14484 goto s_n_llhttp__internal__n_header_value_lenient;
14485 default:
14486 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_2;
14487 }
14488 /* UNREACHABLE */;
14489 abort();
14490 }
14491 s_n_llhttp__internal__n_invoke_update_header_state_4: {
14492 switch (llhttp__internal__c_update_header_state(state, p, endp)) {
14493 default:
14494 goto s_n_llhttp__internal__n_header_value_connection;
14495 }
14496 /* UNREACHABLE */;
14497 abort();
14498 }
14499 s_n_llhttp__internal__n_invoke_or_flags_11: {
14500 switch (llhttp__internal__c_or_flags_3(state, p, endp)) {
14501 default:
14502 goto s_n_llhttp__internal__n_invoke_update_header_state_4;
14503 }
14504 /* UNREACHABLE */;
14505 abort();
14506 }
14507 s_n_llhttp__internal__n_invoke_or_flags_12: {
14508 switch (llhttp__internal__c_or_flags_4(state, p, endp)) {
14509 default:
14510 goto s_n_llhttp__internal__n_invoke_update_header_state_4;
14511 }
14512 /* UNREACHABLE */;
14513 abort();
14514 }
14515 s_n_llhttp__internal__n_invoke_or_flags_13: {
14516 switch (llhttp__internal__c_or_flags_5(state, p, endp)) {
14517 default:
14518 goto s_n_llhttp__internal__n_invoke_update_header_state_4;
14519 }
14520 /* UNREACHABLE */;
14521 abort();
14522 }
14523 s_n_llhttp__internal__n_invoke_or_flags_14: {
14524 switch (llhttp__internal__c_or_flags_6(state, p, endp)) {
14525 default:
14526 goto s_n_llhttp__internal__n_header_value_connection;
14527 }
14528 /* UNREACHABLE */;
14529 abort();
14530 }
14531 s_n_llhttp__internal__n_invoke_load_header_state_5: {
14532 switch (llhttp__internal__c_load_header_state(state, p, endp)) {
14533 case 5:
14534 goto s_n_llhttp__internal__n_invoke_or_flags_11;
14535 case 6:
14536 goto s_n_llhttp__internal__n_invoke_or_flags_12;
14537 case 7:
14538 goto s_n_llhttp__internal__n_invoke_or_flags_13;
14539 case 8:
14540 goto s_n_llhttp__internal__n_invoke_or_flags_14;
14541 default:
14542 goto s_n_llhttp__internal__n_header_value_connection;
14543 }
14544 /* UNREACHABLE */;
14545 abort();
14546 }
14547 s_n_llhttp__internal__n_invoke_update_header_state_5: {
14548 switch (llhttp__internal__c_update_header_state_1(state, p, endp)) {
14549 default:
14550 goto s_n_llhttp__internal__n_header_value_connection_token;
14551 }
14552 /* UNREACHABLE */;
14553 abort();
14554 }
14555 s_n_llhttp__internal__n_invoke_update_header_state_3: {
14556 switch (llhttp__internal__c_update_header_state_3(state, p, endp)) {
14557 default:
14558 goto s_n_llhttp__internal__n_header_value_connection_ws;
14559 }
14560 /* UNREACHABLE */;
14561 abort();
14562 }
14563 s_n_llhttp__internal__n_invoke_update_header_state_6: {
14564 switch (llhttp__internal__c_update_header_state_6(state, p, endp)) {
14565 default:
14566 goto s_n_llhttp__internal__n_header_value_connection_ws;
14567 }
14568 /* UNREACHABLE */;
14569 abort();
14570 }
14571 s_n_llhttp__internal__n_invoke_update_header_state_7: {
14572 switch (llhttp__internal__c_update_header_state_7(state, p, endp)) {
14573 default:
14574 goto s_n_llhttp__internal__n_header_value_connection_ws;
14575 }
14576 /* UNREACHABLE */;
14577 abort();
14578 }
14579 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_5: {
14580 const unsigned char* start;
14581 int err;
14582
14583 start = state->_span_pos0;
14584 state->_span_pos0 = NULL;
14585 err = llhttp__on_header_value(state, start, p);
14586 if (err != 0) {
14587 state->error = err;
14588 state->error_pos = (const char*) p;
14589 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_22;
14590 return s_error;
14591 }
14592 goto s_n_llhttp__internal__n_error_22;
14593 /* UNREACHABLE */;
14594 abort();
14595 }
14596 s_n_llhttp__internal__n_invoke_mul_add_content_length_1: {
14597 switch (llhttp__internal__c_mul_add_content_length_1(state, p, endp, match)) {
14598 case 1:
14599 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_5;
14600 default:
14601 goto s_n_llhttp__internal__n_header_value_content_length;
14602 }
14603 /* UNREACHABLE */;
14604 abort();
14605 }
14606 s_n_llhttp__internal__n_invoke_or_flags_15: {
14607 switch (llhttp__internal__c_or_flags_15(state, p, endp)) {
14608 default:
14609 goto s_n_llhttp__internal__n_header_value_otherwise;
14610 }
14611 /* UNREACHABLE */;
14612 abort();
14613 }
14614 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_6: {
14615 const unsigned char* start;
14616 int err;
14617
14618 start = state->_span_pos0;
14619 state->_span_pos0 = NULL;
14620 err = llhttp__on_header_value(state, start, p);
14621 if (err != 0) {
14622 state->error = err;
14623 state->error_pos = (const char*) p;
14624 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_23;
14625 return s_error;
14626 }
14627 goto s_n_llhttp__internal__n_error_23;
14628 /* UNREACHABLE */;
14629 abort();
14630 }
14631 s_n_llhttp__internal__n_error_21: {
14632 state->error = 0x4;
14633 state->reason = "Duplicate Content-Length";
14634 state->error_pos = (const char*) p;
14635 state->_current = (void*) (intptr_t) s_error;
14636 return s_error;
14637 /* UNREACHABLE */;
14638 abort();
14639 }
14640 s_n_llhttp__internal__n_invoke_test_flags_2: {
14641 switch (llhttp__internal__c_test_flags_2(state, p, endp)) {
14642 case 0:
14643 goto s_n_llhttp__internal__n_header_value_content_length;
14644 default:
14645 goto s_n_llhttp__internal__n_error_21;
14646 }
14647 /* UNREACHABLE */;
14648 abort();
14649 }
14650 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_8: {
14651 const unsigned char* start;
14652 int err;
14653
14654 start = state->_span_pos0;
14655 state->_span_pos0 = NULL;
14656 err = llhttp__on_header_value(state, start, p);
14657 if (err != 0) {
14658 state->error = err;
14659 state->error_pos = (const char*) (p + 1);
14660 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_25;
14661 return s_error;
14662 }
14663 p++;
14664 goto s_n_llhttp__internal__n_error_25;
14665 /* UNREACHABLE */;
14666 abort();
14667 }
14668 s_n_llhttp__internal__n_invoke_update_header_state_8: {
14669 switch (llhttp__internal__c_update_header_state_8(state, p, endp)) {
14670 default:
14671 goto s_n_llhttp__internal__n_header_value_otherwise;
14672 }
14673 /* UNREACHABLE */;
14674 abort();
14675 }
14676 s_n_llhttp__internal__n_span_end_llhttp__on_header_value_7: {
14677 const unsigned char* start;
14678 int err;
14679
14680 start = state->_span_pos0;
14681 state->_span_pos0 = NULL;
14682 err = llhttp__on_header_value(state, start, p);
14683 if (err != 0) {
14684 state->error = err;
14685 state->error_pos = (const char*) (p + 1);
14686 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_24;
14687 return s_error;
14688 }
14689 p++;
14690 goto s_n_llhttp__internal__n_error_24;
14691 /* UNREACHABLE */;
14692 abort();
14693 }
14694 s_n_llhttp__internal__n_invoke_test_lenient_flags_7: {
14695 switch (llhttp__internal__c_test_lenient_flags_7(state, p, endp)) {
14696 case 0:
14697 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_7;
14698 default:
14699 goto s_n_llhttp__internal__n_header_value_te_chunked;
14700 }
14701 /* UNREACHABLE */;
14702 abort();
14703 }
14704 s_n_llhttp__internal__n_invoke_load_type_1: {
14705 switch (llhttp__internal__c_load_type(state, p, endp)) {
14706 case 1:
14707 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_7;
14708 default:
14709 goto s_n_llhttp__internal__n_header_value_te_chunked;
14710 }
14711 /* UNREACHABLE */;
14712 abort();
14713 }
14714 s_n_llhttp__internal__n_invoke_update_header_state_9: {
14715 switch (llhttp__internal__c_update_header_state_1(state, p, endp)) {
14716 default:
14717 goto s_n_llhttp__internal__n_header_value;
14718 }
14719 /* UNREACHABLE */;
14720 abort();
14721 }
14722 s_n_llhttp__internal__n_invoke_and_flags: {
14723 switch (llhttp__internal__c_and_flags(state, p, endp)) {
14724 default:
14725 goto s_n_llhttp__internal__n_header_value_te_chunked;
14726 }
14727 /* UNREACHABLE */;
14728 abort();
14729 }
14730 s_n_llhttp__internal__n_invoke_or_flags_17: {
14731 switch (llhttp__internal__c_or_flags_16(state, p, endp)) {
14732 default:
14733 goto s_n_llhttp__internal__n_invoke_and_flags;
14734 }
14735 /* UNREACHABLE */;
14736 abort();
14737 }
14738 s_n_llhttp__internal__n_invoke_test_lenient_flags_8: {
14739 switch (llhttp__internal__c_test_lenient_flags_7(state, p, endp)) {
14740 case 0:
14741 goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_8;
14742 default:
14743 goto s_n_llhttp__internal__n_invoke_or_flags_17;
14744 }
14745 /* UNREACHABLE */;
14746 abort();
14747 }
14748 s_n_llhttp__internal__n_invoke_load_type_2: {
14749 switch (llhttp__internal__c_load_type(state, p, endp)) {
14750 case 1:
14751 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_8;
14752 default:
14753 goto s_n_llhttp__internal__n_invoke_or_flags_17;
14754 }
14755 /* UNREACHABLE */;
14756 abort();
14757 }
14758 s_n_llhttp__internal__n_invoke_or_flags_16: {
14759 switch (llhttp__internal__c_or_flags_16(state, p, endp)) {
14760 default:
14761 goto s_n_llhttp__internal__n_invoke_and_flags;
14762 }
14763 /* UNREACHABLE */;
14764 abort();
14765 }
14766 s_n_llhttp__internal__n_invoke_test_flags_3: {
14767 switch (llhttp__internal__c_test_flags_3(state, p, endp)) {
14768 case 1:
14769 goto s_n_llhttp__internal__n_invoke_load_type_2;
14770 default:
14771 goto s_n_llhttp__internal__n_invoke_or_flags_16;
14772 }
14773 /* UNREACHABLE */;
14774 abort();
14775 }
14776 s_n_llhttp__internal__n_invoke_or_flags_18: {
14777 switch (llhttp__internal__c_or_flags_18(state, p, endp)) {
14778 default:
14779 goto s_n_llhttp__internal__n_invoke_update_header_state_9;
14780 }
14781 /* UNREACHABLE */;
14782 abort();
14783 }
14784 s_n_llhttp__internal__n_invoke_load_header_state_2: {
14785 switch (llhttp__internal__c_load_header_state(state, p, endp)) {
14786 case 1:
14787 goto s_n_llhttp__internal__n_header_value_connection;
14788 case 2:
14789 goto s_n_llhttp__internal__n_invoke_test_flags_2;
14790 case 3:
14791 goto s_n_llhttp__internal__n_invoke_test_flags_3;
14792 case 4:
14793 goto s_n_llhttp__internal__n_invoke_or_flags_18;
14794 default:
14795 goto s_n_llhttp__internal__n_header_value;
14796 }
14797 /* UNREACHABLE */;
14798 abort();
14799 }
14800 s_n_llhttp__internal__n_span_end_llhttp__on_header_field_1: {
14801 const unsigned char* start;
14802 int err;
14803
14804 start = state->_span_pos0;
14805 state->_span_pos0 = NULL;
14806 err = llhttp__on_header_field(state, start, p);
14807 if (err != 0) {
14808 state->error = err;
14809 state->error_pos = (const char*) (p + 1);
14810 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete;
14811 return s_error;
14812 }
14813 p++;
14814 goto s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete;
14815 /* UNREACHABLE */;
14816 abort();
14817 }
14818 s_n_llhttp__internal__n_span_end_llhttp__on_header_field_2: {
14819 const unsigned char* start;
14820 int err;
14821
14822 start = state->_span_pos0;
14823 state->_span_pos0 = NULL;
14824 err = llhttp__on_header_field(state, start, p);
14825 if (err != 0) {
14826 state->error = err;
14827 state->error_pos = (const char*) (p + 1);
14828 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete;
14829 return s_error;
14830 }
14831 p++;
14832 goto s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete;
14833 /* UNREACHABLE */;
14834 abort();
14835 }
14836 s_n_llhttp__internal__n_error_26: {
14837 state->error = 0xa;
14838 state->reason = "Invalid header token";
14839 state->error_pos = (const char*) p;
14840 state->_current = (void*) (intptr_t) s_error;
14841 return s_error;
14842 /* UNREACHABLE */;
14843 abort();
14844 }
14845 s_n_llhttp__internal__n_invoke_update_header_state_10: {
14846 switch (llhttp__internal__c_update_header_state_1(state, p, endp)) {
14847 default:
14848 goto s_n_llhttp__internal__n_header_field_general;
14849 }
14850 /* UNREACHABLE */;
14851 abort();
14852 }
14853 s_n_llhttp__internal__n_invoke_store_header_state: {
14854 switch (llhttp__internal__c_store_header_state(state, p, endp, match)) {
14855 default:
14856 goto s_n_llhttp__internal__n_header_field_colon;
14857 }
14858 /* UNREACHABLE */;
14859 abort();
14860 }
14861 s_n_llhttp__internal__n_invoke_update_header_state_11: {
14862 switch (llhttp__internal__c_update_header_state_1(state, p, endp)) {
14863 default:
14864 goto s_n_llhttp__internal__n_header_field_general;
14865 }
14866 /* UNREACHABLE */;
14867 abort();
14868 }
14869 s_n_llhttp__internal__n_invoke_llhttp__on_url_complete: {
14870 switch (llhttp__on_url_complete(state, p, endp)) {
14871 default:
14872 goto s_n_llhttp__internal__n_header_field_start;
14873 }
14874 /* UNREACHABLE */;
14875 abort();
14876 }
14877 s_n_llhttp__internal__n_invoke_update_http_minor: {
14878 switch (llhttp__internal__c_update_http_minor(state, p, endp)) {
14879 default:
14880 goto s_n_llhttp__internal__n_invoke_llhttp__on_url_complete;
14881 }
14882 /* UNREACHABLE */;
14883 abort();
14884 }
14885 s_n_llhttp__internal__n_invoke_update_http_major: {
14886 switch (llhttp__internal__c_update_http_major(state, p, endp)) {
14887 default:
14888 goto s_n_llhttp__internal__n_invoke_update_http_minor;
14889 }
14890 /* UNREACHABLE */;
14891 abort();
14892 }
14893 s_n_llhttp__internal__n_span_end_llhttp__on_url_3: {
14894 const unsigned char* start;
14895 int err;
14896
14897 start = state->_span_pos0;
14898 state->_span_pos0 = NULL;
14899 err = llhttp__on_url(state, start, p);
14900 if (err != 0) {
14901 state->error = err;
14902 state->error_pos = (const char*) p;
14903 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
14904 return s_error;
14905 }
14906 goto s_n_llhttp__internal__n_url_skip_to_http09;
14907 /* UNREACHABLE */;
14908 abort();
14909 }
14910 s_n_llhttp__internal__n_error_27: {
14911 state->error = 0x7;
14912 state->reason = "Expected CRLF";
14913 state->error_pos = (const char*) p;
14914 state->_current = (void*) (intptr_t) s_error;
14915 return s_error;
14916 /* UNREACHABLE */;
14917 abort();
14918 }
14919 s_n_llhttp__internal__n_span_end_llhttp__on_url_4: {
14920 const unsigned char* start;
14921 int err;
14922
14923 start = state->_span_pos0;
14924 state->_span_pos0 = NULL;
14925 err = llhttp__on_url(state, start, p);
14926 if (err != 0) {
14927 state->error = err;
14928 state->error_pos = (const char*) p;
14929 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
14930 return s_error;
14931 }
14932 goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
14933 /* UNREACHABLE */;
14934 abort();
14935 }
14936 s_n_llhttp__internal__n_error_32: {
14937 state->error = 0x17;
14938 state->reason = "Pause on PRI/Upgrade";
14939 state->error_pos = (const char*) p;
14940 state->_current = (void*) (intptr_t) s_error;
14941 return s_error;
14942 /* UNREACHABLE */;
14943 abort();
14944 }
14945 s_n_llhttp__internal__n_error_33: {
14946 state->error = 0x9;
14947 state->reason = "Expected HTTP/2 Connection Preface";
14948 state->error_pos = (const char*) p;
14949 state->_current = (void*) (intptr_t) s_error;
14950 return s_error;
14951 /* UNREACHABLE */;
14952 abort();
14953 }
14954 s_n_llhttp__internal__n_error_31: {
14955 state->error = 0x9;
14956 state->reason = "Expected CRLF after version";
14957 state->error_pos = (const char*) p;
14958 state->_current = (void*) (intptr_t) s_error;
14959 return s_error;
14960 /* UNREACHABLE */;
14961 abort();
14962 }
14963 s_n_llhttp__internal__n_invoke_load_method_1: {
14964 switch (llhttp__internal__c_load_method(state, p, endp)) {
14965 case 34:
14966 goto s_n_llhttp__internal__n_req_pri_upgrade;
14967 default:
14968 goto s_n_llhttp__internal__n_req_http_complete;
14969 }
14970 /* UNREACHABLE */;
14971 abort();
14972 }
14973 s_n_llhttp__internal__n_error_30: {
14974 state->error = 0x9;
14975 state->reason = "Invalid HTTP version";
14976 state->error_pos = (const char*) p;
14977 state->_current = (void*) (intptr_t) s_error;
14978 return s_error;
14979 /* UNREACHABLE */;
14980 abort();
14981 }
14982 s_n_llhttp__internal__n_invoke_load_http_minor: {
14983 switch (llhttp__internal__c_load_http_minor(state, p, endp)) {
14984 case 9:
14985 goto s_n_llhttp__internal__n_invoke_load_method_1;
14986 default:
14987 goto s_n_llhttp__internal__n_error_30;
14988 }
14989 /* UNREACHABLE */;
14990 abort();
14991 }
14992 s_n_llhttp__internal__n_error_34: {
14993 state->error = 0x9;
14994 state->reason = "Invalid HTTP version";
14995 state->error_pos = (const char*) p;
14996 state->_current = (void*) (intptr_t) s_error;
14997 return s_error;
14998 /* UNREACHABLE */;
14999 abort();
15000 }
15001 s_n_llhttp__internal__n_invoke_load_http_minor_1: {
15002 switch (llhttp__internal__c_load_http_minor(state, p, endp)) {
15003 case 0:
15004 goto s_n_llhttp__internal__n_invoke_load_method_1;
15005 case 1:
15006 goto s_n_llhttp__internal__n_invoke_load_method_1;
15007 default:
15008 goto s_n_llhttp__internal__n_error_34;
15009 }
15010 /* UNREACHABLE */;
15011 abort();
15012 }
15013 s_n_llhttp__internal__n_error_35: {
15014 state->error = 0x9;
15015 state->reason = "Invalid HTTP version";
15016 state->error_pos = (const char*) p;
15017 state->_current = (void*) (intptr_t) s_error;
15018 return s_error;
15019 /* UNREACHABLE */;
15020 abort();
15021 }
15022 s_n_llhttp__internal__n_invoke_load_http_minor_2: {
15023 switch (llhttp__internal__c_load_http_minor(state, p, endp)) {
15024 case 0:
15025 goto s_n_llhttp__internal__n_invoke_load_method_1;
15026 default:
15027 goto s_n_llhttp__internal__n_error_35;
15028 }
15029 /* UNREACHABLE */;
15030 abort();
15031 }
15032 s_n_llhttp__internal__n_error_29: {
15033 state->error = 0x9;
15034 state->reason = "Invalid HTTP version";
15035 state->error_pos = (const char*) p;
15036 state->_current = (void*) (intptr_t) s_error;
15037 return s_error;
15038 /* UNREACHABLE */;
15039 abort();
15040 }
15041 s_n_llhttp__internal__n_invoke_load_http_major: {
15042 switch (llhttp__internal__c_load_http_major(state, p, endp)) {
15043 case 0:
15044 goto s_n_llhttp__internal__n_invoke_load_http_minor;
15045 case 1:
15046 goto s_n_llhttp__internal__n_invoke_load_http_minor_1;
15047 case 2:
15048 goto s_n_llhttp__internal__n_invoke_load_http_minor_2;
15049 default:
15050 goto s_n_llhttp__internal__n_error_29;
15051 }
15052 /* UNREACHABLE */;
15053 abort();
15054 }
15055 s_n_llhttp__internal__n_invoke_test_lenient_flags_9: {
15056 switch (llhttp__internal__c_test_lenient_flags_9(state, p, endp)) {
15057 case 1:
15058 goto s_n_llhttp__internal__n_invoke_load_method_1;
15059 default:
15060 goto s_n_llhttp__internal__n_invoke_load_http_major;
15061 }
15062 /* UNREACHABLE */;
15063 abort();
15064 }
15065 s_n_llhttp__internal__n_invoke_store_http_minor: {
15066 switch (llhttp__internal__c_store_http_minor(state, p, endp, match)) {
15067 default:
15068 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_9;
15069 }
15070 /* UNREACHABLE */;
15071 abort();
15072 }
15073 s_n_llhttp__internal__n_error_36: {
15074 state->error = 0x9;
15075 state->reason = "Invalid minor version";
15076 state->error_pos = (const char*) p;
15077 state->_current = (void*) (intptr_t) s_error;
15078 return s_error;
15079 /* UNREACHABLE */;
15080 abort();
15081 }
15082 s_n_llhttp__internal__n_error_37: {
15083 state->error = 0x9;
15084 state->reason = "Expected dot";
15085 state->error_pos = (const char*) p;
15086 state->_current = (void*) (intptr_t) s_error;
15087 return s_error;
15088 /* UNREACHABLE */;
15089 abort();
15090 }
15091 s_n_llhttp__internal__n_invoke_store_http_major: {
15092 switch (llhttp__internal__c_store_http_major(state, p, endp, match)) {
15093 default:
15094 goto s_n_llhttp__internal__n_req_http_dot;
15095 }
15096 /* UNREACHABLE */;
15097 abort();
15098 }
15099 s_n_llhttp__internal__n_error_38: {
15100 state->error = 0x9;
15101 state->reason = "Invalid major version";
15102 state->error_pos = (const char*) p;
15103 state->_current = (void*) (intptr_t) s_error;
15104 return s_error;
15105 /* UNREACHABLE */;
15106 abort();
15107 }
15108 s_n_llhttp__internal__n_error_28: {
15109 state->error = 0x8;
15110 state->reason = "Invalid method for HTTP/x.x request";
15111 state->error_pos = (const char*) p;
15112 state->_current = (void*) (intptr_t) s_error;
15113 return s_error;
15114 /* UNREACHABLE */;
15115 abort();
15116 }
15117 s_n_llhttp__internal__n_invoke_load_method: {
15118 switch (llhttp__internal__c_load_method(state, p, endp)) {
15119 case 0:
15120 goto s_n_llhttp__internal__n_req_http_major;
15121 case 1:
15122 goto s_n_llhttp__internal__n_req_http_major;
15123 case 2:
15124 goto s_n_llhttp__internal__n_req_http_major;
15125 case 3:
15126 goto s_n_llhttp__internal__n_req_http_major;
15127 case 4:
15128 goto s_n_llhttp__internal__n_req_http_major;
15129 case 5:
15130 goto s_n_llhttp__internal__n_req_http_major;
15131 case 6:
15132 goto s_n_llhttp__internal__n_req_http_major;
15133 case 7:
15134 goto s_n_llhttp__internal__n_req_http_major;
15135 case 8:
15136 goto s_n_llhttp__internal__n_req_http_major;
15137 case 9:
15138 goto s_n_llhttp__internal__n_req_http_major;
15139 case 10:
15140 goto s_n_llhttp__internal__n_req_http_major;
15141 case 11:
15142 goto s_n_llhttp__internal__n_req_http_major;
15143 case 12:
15144 goto s_n_llhttp__internal__n_req_http_major;
15145 case 13:
15146 goto s_n_llhttp__internal__n_req_http_major;
15147 case 14:
15148 goto s_n_llhttp__internal__n_req_http_major;
15149 case 15:
15150 goto s_n_llhttp__internal__n_req_http_major;
15151 case 16:
15152 goto s_n_llhttp__internal__n_req_http_major;
15153 case 17:
15154 goto s_n_llhttp__internal__n_req_http_major;
15155 case 18:
15156 goto s_n_llhttp__internal__n_req_http_major;
15157 case 19:
15158 goto s_n_llhttp__internal__n_req_http_major;
15159 case 20:
15160 goto s_n_llhttp__internal__n_req_http_major;
15161 case 21:
15162 goto s_n_llhttp__internal__n_req_http_major;
15163 case 22:
15164 goto s_n_llhttp__internal__n_req_http_major;
15165 case 23:
15166 goto s_n_llhttp__internal__n_req_http_major;
15167 case 24:
15168 goto s_n_llhttp__internal__n_req_http_major;
15169 case 25:
15170 goto s_n_llhttp__internal__n_req_http_major;
15171 case 26:
15172 goto s_n_llhttp__internal__n_req_http_major;
15173 case 27:
15174 goto s_n_llhttp__internal__n_req_http_major;
15175 case 28:
15176 goto s_n_llhttp__internal__n_req_http_major;
15177 case 29:
15178 goto s_n_llhttp__internal__n_req_http_major;
15179 case 30:
15180 goto s_n_llhttp__internal__n_req_http_major;
15181 case 31:
15182 goto s_n_llhttp__internal__n_req_http_major;
15183 case 32:
15184 goto s_n_llhttp__internal__n_req_http_major;
15185 case 33:
15186 goto s_n_llhttp__internal__n_req_http_major;
15187 case 34:
15188 goto s_n_llhttp__internal__n_req_http_major;
15189 default:
15190 goto s_n_llhttp__internal__n_error_28;
15191 }
15192 /* UNREACHABLE */;
15193 abort();
15194 }
15195 s_n_llhttp__internal__n_error_41: {
15196 state->error = 0x8;
15197 state->reason = "Expected HTTP/";
15198 state->error_pos = (const char*) p;
15199 state->_current = (void*) (intptr_t) s_error;
15200 return s_error;
15201 /* UNREACHABLE */;
15202 abort();
15203 }
15204 s_n_llhttp__internal__n_error_39: {
15205 state->error = 0x8;
15206 state->reason = "Expected SOURCE method for ICE/x.x request";
15207 state->error_pos = (const char*) p;
15208 state->_current = (void*) (intptr_t) s_error;
15209 return s_error;
15210 /* UNREACHABLE */;
15211 abort();
15212 }
15213 s_n_llhttp__internal__n_invoke_load_method_2: {
15214 switch (llhttp__internal__c_load_method(state, p, endp)) {
15215 case 33:
15216 goto s_n_llhttp__internal__n_req_http_major;
15217 default:
15218 goto s_n_llhttp__internal__n_error_39;
15219 }
15220 /* UNREACHABLE */;
15221 abort();
15222 }
15223 s_n_llhttp__internal__n_error_40: {
15224 state->error = 0x8;
15225 state->reason = "Invalid method for RTSP/x.x request";
15226 state->error_pos = (const char*) p;
15227 state->_current = (void*) (intptr_t) s_error;
15228 return s_error;
15229 /* UNREACHABLE */;
15230 abort();
15231 }
15232 s_n_llhttp__internal__n_invoke_load_method_3: {
15233 switch (llhttp__internal__c_load_method(state, p, endp)) {
15234 case 1:
15235 goto s_n_llhttp__internal__n_req_http_major;
15236 case 3:
15237 goto s_n_llhttp__internal__n_req_http_major;
15238 case 6:
15239 goto s_n_llhttp__internal__n_req_http_major;
15240 case 35:
15241 goto s_n_llhttp__internal__n_req_http_major;
15242 case 36:
15243 goto s_n_llhttp__internal__n_req_http_major;
15244 case 37:
15245 goto s_n_llhttp__internal__n_req_http_major;
15246 case 38:
15247 goto s_n_llhttp__internal__n_req_http_major;
15248 case 39:
15249 goto s_n_llhttp__internal__n_req_http_major;
15250 case 40:
15251 goto s_n_llhttp__internal__n_req_http_major;
15252 case 41:
15253 goto s_n_llhttp__internal__n_req_http_major;
15254 case 42:
15255 goto s_n_llhttp__internal__n_req_http_major;
15256 case 43:
15257 goto s_n_llhttp__internal__n_req_http_major;
15258 case 44:
15259 goto s_n_llhttp__internal__n_req_http_major;
15260 case 45:
15261 goto s_n_llhttp__internal__n_req_http_major;
15262 default:
15263 goto s_n_llhttp__internal__n_error_40;
15264 }
15265 /* UNREACHABLE */;
15266 abort();
15267 }
15268 s_n_llhttp__internal__n_invoke_llhttp__on_url_complete_1: {
15269 switch (llhttp__on_url_complete(state, p, endp)) {
15270 default:
15271 goto s_n_llhttp__internal__n_req_http_start;
15272 }
15273 /* UNREACHABLE */;
15274 abort();
15275 }
15276 s_n_llhttp__internal__n_span_end_llhttp__on_url_5: {
15277 const unsigned char* start;
15278 int err;
15279
15280 start = state->_span_pos0;
15281 state->_span_pos0 = NULL;
15282 err = llhttp__on_url(state, start, p);
15283 if (err != 0) {
15284 state->error = err;
15285 state->error_pos = (const char*) p;
15286 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
15287 return s_error;
15288 }
15289 goto s_n_llhttp__internal__n_url_skip_to_http;
15290 /* UNREACHABLE */;
15291 abort();
15292 }
15293 s_n_llhttp__internal__n_span_end_llhttp__on_url_6: {
15294 const unsigned char* start;
15295 int err;
15296
15297 start = state->_span_pos0;
15298 state->_span_pos0 = NULL;
15299 err = llhttp__on_url(state, start, p);
15300 if (err != 0) {
15301 state->error = err;
15302 state->error_pos = (const char*) p;
15303 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
15304 return s_error;
15305 }
15306 goto s_n_llhttp__internal__n_url_skip_to_http09;
15307 /* UNREACHABLE */;
15308 abort();
15309 }
15310 s_n_llhttp__internal__n_span_end_llhttp__on_url_7: {
15311 const unsigned char* start;
15312 int err;
15313
15314 start = state->_span_pos0;
15315 state->_span_pos0 = NULL;
15316 err = llhttp__on_url(state, start, p);
15317 if (err != 0) {
15318 state->error = err;
15319 state->error_pos = (const char*) p;
15320 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
15321 return s_error;
15322 }
15323 goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
15324 /* UNREACHABLE */;
15325 abort();
15326 }
15327 s_n_llhttp__internal__n_span_end_llhttp__on_url_8: {
15328 const unsigned char* start;
15329 int err;
15330
15331 start = state->_span_pos0;
15332 state->_span_pos0 = NULL;
15333 err = llhttp__on_url(state, start, p);
15334 if (err != 0) {
15335 state->error = err;
15336 state->error_pos = (const char*) p;
15337 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
15338 return s_error;
15339 }
15340 goto s_n_llhttp__internal__n_url_skip_to_http;
15341 /* UNREACHABLE */;
15342 abort();
15343 }
15344 s_n_llhttp__internal__n_error_42: {
15345 state->error = 0x7;
15346 state->reason = "Invalid char in url fragment start";
15347 state->error_pos = (const char*) p;
15348 state->_current = (void*) (intptr_t) s_error;
15349 return s_error;
15350 /* UNREACHABLE */;
15351 abort();
15352 }
15353 s_n_llhttp__internal__n_span_end_llhttp__on_url_9: {
15354 const unsigned char* start;
15355 int err;
15356
15357 start = state->_span_pos0;
15358 state->_span_pos0 = NULL;
15359 err = llhttp__on_url(state, start, p);
15360 if (err != 0) {
15361 state->error = err;
15362 state->error_pos = (const char*) p;
15363 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
15364 return s_error;
15365 }
15366 goto s_n_llhttp__internal__n_url_skip_to_http09;
15367 /* UNREACHABLE */;
15368 abort();
15369 }
15370 s_n_llhttp__internal__n_span_end_llhttp__on_url_10: {
15371 const unsigned char* start;
15372 int err;
15373
15374 start = state->_span_pos0;
15375 state->_span_pos0 = NULL;
15376 err = llhttp__on_url(state, start, p);
15377 if (err != 0) {
15378 state->error = err;
15379 state->error_pos = (const char*) p;
15380 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
15381 return s_error;
15382 }
15383 goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
15384 /* UNREACHABLE */;
15385 abort();
15386 }
15387 s_n_llhttp__internal__n_span_end_llhttp__on_url_11: {
15388 const unsigned char* start;
15389 int err;
15390
15391 start = state->_span_pos0;
15392 state->_span_pos0 = NULL;
15393 err = llhttp__on_url(state, start, p);
15394 if (err != 0) {
15395 state->error = err;
15396 state->error_pos = (const char*) p;
15397 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
15398 return s_error;
15399 }
15400 goto s_n_llhttp__internal__n_url_skip_to_http;
15401 /* UNREACHABLE */;
15402 abort();
15403 }
15404 s_n_llhttp__internal__n_error_43: {
15405 state->error = 0x7;
15406 state->reason = "Invalid char in url query";
15407 state->error_pos = (const char*) p;
15408 state->_current = (void*) (intptr_t) s_error;
15409 return s_error;
15410 /* UNREACHABLE */;
15411 abort();
15412 }
15413 s_n_llhttp__internal__n_error_44: {
15414 state->error = 0x7;
15415 state->reason = "Invalid char in url path";
15416 state->error_pos = (const char*) p;
15417 state->_current = (void*) (intptr_t) s_error;
15418 return s_error;
15419 /* UNREACHABLE */;
15420 abort();
15421 }
15422 s_n_llhttp__internal__n_span_end_llhttp__on_url: {
15423 const unsigned char* start;
15424 int err;
15425
15426 start = state->_span_pos0;
15427 state->_span_pos0 = NULL;
15428 err = llhttp__on_url(state, start, p);
15429 if (err != 0) {
15430 state->error = err;
15431 state->error_pos = (const char*) p;
15432 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
15433 return s_error;
15434 }
15435 goto s_n_llhttp__internal__n_url_skip_to_http09;
15436 /* UNREACHABLE */;
15437 abort();
15438 }
15439 s_n_llhttp__internal__n_span_end_llhttp__on_url_1: {
15440 const unsigned char* start;
15441 int err;
15442
15443 start = state->_span_pos0;
15444 state->_span_pos0 = NULL;
15445 err = llhttp__on_url(state, start, p);
15446 if (err != 0) {
15447 state->error = err;
15448 state->error_pos = (const char*) p;
15449 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
15450 return s_error;
15451 }
15452 goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
15453 /* UNREACHABLE */;
15454 abort();
15455 }
15456 s_n_llhttp__internal__n_span_end_llhttp__on_url_2: {
15457 const unsigned char* start;
15458 int err;
15459
15460 start = state->_span_pos0;
15461 state->_span_pos0 = NULL;
15462 err = llhttp__on_url(state, start, p);
15463 if (err != 0) {
15464 state->error = err;
15465 state->error_pos = (const char*) p;
15466 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
15467 return s_error;
15468 }
15469 goto s_n_llhttp__internal__n_url_skip_to_http;
15470 /* UNREACHABLE */;
15471 abort();
15472 }
15473 s_n_llhttp__internal__n_span_end_llhttp__on_url_12: {
15474 const unsigned char* start;
15475 int err;
15476
15477 start = state->_span_pos0;
15478 state->_span_pos0 = NULL;
15479 err = llhttp__on_url(state, start, p);
15480 if (err != 0) {
15481 state->error = err;
15482 state->error_pos = (const char*) p;
15483 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http09;
15484 return s_error;
15485 }
15486 goto s_n_llhttp__internal__n_url_skip_to_http09;
15487 /* UNREACHABLE */;
15488 abort();
15489 }
15490 s_n_llhttp__internal__n_span_end_llhttp__on_url_13: {
15491 const unsigned char* start;
15492 int err;
15493
15494 start = state->_span_pos0;
15495 state->_span_pos0 = NULL;
15496 err = llhttp__on_url(state, start, p);
15497 if (err != 0) {
15498 state->error = err;
15499 state->error_pos = (const char*) p;
15500 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_lf_to_http09;
15501 return s_error;
15502 }
15503 goto s_n_llhttp__internal__n_url_skip_lf_to_http09;
15504 /* UNREACHABLE */;
15505 abort();
15506 }
15507 s_n_llhttp__internal__n_span_end_llhttp__on_url_14: {
15508 const unsigned char* start;
15509 int err;
15510
15511 start = state->_span_pos0;
15512 state->_span_pos0 = NULL;
15513 err = llhttp__on_url(state, start, p);
15514 if (err != 0) {
15515 state->error = err;
15516 state->error_pos = (const char*) p;
15517 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_url_skip_to_http;
15518 return s_error;
15519 }
15520 goto s_n_llhttp__internal__n_url_skip_to_http;
15521 /* UNREACHABLE */;
15522 abort();
15523 }
15524 s_n_llhttp__internal__n_error_45: {
15525 state->error = 0x7;
15526 state->reason = "Double @ in url";
15527 state->error_pos = (const char*) p;
15528 state->_current = (void*) (intptr_t) s_error;
15529 return s_error;
15530 /* UNREACHABLE */;
15531 abort();
15532 }
15533 s_n_llhttp__internal__n_error_46: {
15534 state->error = 0x7;
15535 state->reason = "Unexpected char in url server";
15536 state->error_pos = (const char*) p;
15537 state->_current = (void*) (intptr_t) s_error;
15538 return s_error;
15539 /* UNREACHABLE */;
15540 abort();
15541 }
15542 s_n_llhttp__internal__n_error_47: {
15543 state->error = 0x7;
15544 state->reason = "Unexpected char in url server";
15545 state->error_pos = (const char*) p;
15546 state->_current = (void*) (intptr_t) s_error;
15547 return s_error;
15548 /* UNREACHABLE */;
15549 abort();
15550 }
15551 s_n_llhttp__internal__n_error_49: {
15552 state->error = 0x7;
15553 state->reason = "Unexpected char in url schema";
15554 state->error_pos = (const char*) p;
15555 state->_current = (void*) (intptr_t) s_error;
15556 return s_error;
15557 /* UNREACHABLE */;
15558 abort();
15559 }
15560 s_n_llhttp__internal__n_error_50: {
15561 state->error = 0x7;
15562 state->reason = "Unexpected char in url schema";
15563 state->error_pos = (const char*) p;
15564 state->_current = (void*) (intptr_t) s_error;
15565 return s_error;
15566 /* UNREACHABLE */;
15567 abort();
15568 }
15569 s_n_llhttp__internal__n_error_51: {
15570 state->error = 0x7;
15571 state->reason = "Unexpected start char in url";
15572 state->error_pos = (const char*) p;
15573 state->_current = (void*) (intptr_t) s_error;
15574 return s_error;
15575 /* UNREACHABLE */;
15576 abort();
15577 }
15578 s_n_llhttp__internal__n_invoke_is_equal_method: {
15579 switch (llhttp__internal__c_is_equal_method(state, p, endp)) {
15580 case 0:
15581 goto s_n_llhttp__internal__n_span_start_llhttp__on_url_1;
15582 default:
15583 goto s_n_llhttp__internal__n_span_start_llhttp__on_url;
15584 }
15585 /* UNREACHABLE */;
15586 abort();
15587 }
15588 s_n_llhttp__internal__n_error_52: {
15589 state->error = 0x6;
15590 state->reason = "Expected space after method";
15591 state->error_pos = (const char*) p;
15592 state->_current = (void*) (intptr_t) s_error;
15593 return s_error;
15594 /* UNREACHABLE */;
15595 abort();
15596 }
15597 s_n_llhttp__internal__n_invoke_store_method_1: {
15598 switch (llhttp__internal__c_store_method(state, p, endp, match)) {
15599 default:
15600 goto s_n_llhttp__internal__n_req_first_space_before_url;
15601 }
15602 /* UNREACHABLE */;
15603 abort();
15604 }
15605 s_n_llhttp__internal__n_error_64: {
15606 state->error = 0x6;
15607 state->reason = "Invalid method encountered";
15608 state->error_pos = (const char*) p;
15609 state->_current = (void*) (intptr_t) s_error;
15610 return s_error;
15611 /* UNREACHABLE */;
15612 abort();
15613 }
15614 s_n_llhttp__internal__n_error_55: {
15615 state->error = 0xd;
15616 state->reason = "Response overflow";
15617 state->error_pos = (const char*) p;
15618 state->_current = (void*) (intptr_t) s_error;
15619 return s_error;
15620 /* UNREACHABLE */;
15621 abort();
15622 }
15623 s_n_llhttp__internal__n_invoke_mul_add_status_code: {
15624 switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) {
15625 case 1:
15626 goto s_n_llhttp__internal__n_error_55;
15627 default:
15628 goto s_n_llhttp__internal__n_res_status_code;
15629 }
15630 /* UNREACHABLE */;
15631 abort();
15632 }
15633 s_n_llhttp__internal__n_span_end_llhttp__on_status: {
15634 const unsigned char* start;
15635 int err;
15636
15637 start = state->_span_pos0;
15638 state->_span_pos0 = NULL;
15639 err = llhttp__on_status(state, start, p);
15640 if (err != 0) {
15641 state->error = err;
15642 state->error_pos = (const char*) (p + 1);
15643 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_status_complete;
15644 return s_error;
15645 }
15646 p++;
15647 goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete;
15648 /* UNREACHABLE */;
15649 abort();
15650 }
15651 s_n_llhttp__internal__n_span_end_llhttp__on_status_1: {
15652 const unsigned char* start;
15653 int err;
15654
15655 start = state->_span_pos0;
15656 state->_span_pos0 = NULL;
15657 err = llhttp__on_status(state, start, p);
15658 if (err != 0) {
15659 state->error = err;
15660 state->error_pos = (const char*) (p + 1);
15661 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_res_line_almost_done;
15662 return s_error;
15663 }
15664 p++;
15665 goto s_n_llhttp__internal__n_res_line_almost_done;
15666 /* UNREACHABLE */;
15667 abort();
15668 }
15669 s_n_llhttp__internal__n_error_56: {
15670 state->error = 0xd;
15671 state->reason = "Invalid response status";
15672 state->error_pos = (const char*) p;
15673 state->_current = (void*) (intptr_t) s_error;
15674 return s_error;
15675 /* UNREACHABLE */;
15676 abort();
15677 }
15678 s_n_llhttp__internal__n_invoke_update_status_code: {
15679 switch (llhttp__internal__c_update_status_code(state, p, endp)) {
15680 default:
15681 goto s_n_llhttp__internal__n_res_status_code;
15682 }
15683 /* UNREACHABLE */;
15684 abort();
15685 }
15686 s_n_llhttp__internal__n_error_57: {
15687 state->error = 0x9;
15688 state->reason = "Expected space after version";
15689 state->error_pos = (const char*) p;
15690 state->_current = (void*) (intptr_t) s_error;
15691 return s_error;
15692 /* UNREACHABLE */;
15693 abort();
15694 }
15695 s_n_llhttp__internal__n_error_54: {
15696 state->error = 0x9;
15697 state->reason = "Invalid HTTP version";
15698 state->error_pos = (const char*) p;
15699 state->_current = (void*) (intptr_t) s_error;
15700 return s_error;
15701 /* UNREACHABLE */;
15702 abort();
15703 }
15704 s_n_llhttp__internal__n_invoke_load_http_minor_3: {
15705 switch (llhttp__internal__c_load_http_minor(state, p, endp)) {
15706 case 9:
15707 goto s_n_llhttp__internal__n_res_http_end;
15708 default:
15709 goto s_n_llhttp__internal__n_error_54;
15710 }
15711 /* UNREACHABLE */;
15712 abort();
15713 }
15714 s_n_llhttp__internal__n_error_58: {
15715 state->error = 0x9;
15716 state->reason = "Invalid HTTP version";
15717 state->error_pos = (const char*) p;
15718 state->_current = (void*) (intptr_t) s_error;
15719 return s_error;
15720 /* UNREACHABLE */;
15721 abort();
15722 }
15723 s_n_llhttp__internal__n_invoke_load_http_minor_4: {
15724 switch (llhttp__internal__c_load_http_minor(state, p, endp)) {
15725 case 0:
15726 goto s_n_llhttp__internal__n_res_http_end;
15727 case 1:
15728 goto s_n_llhttp__internal__n_res_http_end;
15729 default:
15730 goto s_n_llhttp__internal__n_error_58;
15731 }
15732 /* UNREACHABLE */;
15733 abort();
15734 }
15735 s_n_llhttp__internal__n_error_59: {
15736 state->error = 0x9;
15737 state->reason = "Invalid HTTP version";
15738 state->error_pos = (const char*) p;
15739 state->_current = (void*) (intptr_t) s_error;
15740 return s_error;
15741 /* UNREACHABLE */;
15742 abort();
15743 }
15744 s_n_llhttp__internal__n_invoke_load_http_minor_5: {
15745 switch (llhttp__internal__c_load_http_minor(state, p, endp)) {
15746 case 0:
15747 goto s_n_llhttp__internal__n_res_http_end;
15748 default:
15749 goto s_n_llhttp__internal__n_error_59;
15750 }
15751 /* UNREACHABLE */;
15752 abort();
15753 }
15754 s_n_llhttp__internal__n_error_53: {
15755 state->error = 0x9;
15756 state->reason = "Invalid HTTP version";
15757 state->error_pos = (const char*) p;
15758 state->_current = (void*) (intptr_t) s_error;
15759 return s_error;
15760 /* UNREACHABLE */;
15761 abort();
15762 }
15763 s_n_llhttp__internal__n_invoke_load_http_major_1: {
15764 switch (llhttp__internal__c_load_http_major(state, p, endp)) {
15765 case 0:
15766 goto s_n_llhttp__internal__n_invoke_load_http_minor_3;
15767 case 1:
15768 goto s_n_llhttp__internal__n_invoke_load_http_minor_4;
15769 case 2:
15770 goto s_n_llhttp__internal__n_invoke_load_http_minor_5;
15771 default:
15772 goto s_n_llhttp__internal__n_error_53;
15773 }
15774 /* UNREACHABLE */;
15775 abort();
15776 }
15777 s_n_llhttp__internal__n_invoke_test_lenient_flags_10: {
15778 switch (llhttp__internal__c_test_lenient_flags_9(state, p, endp)) {
15779 case 1:
15780 goto s_n_llhttp__internal__n_res_http_end;
15781 default:
15782 goto s_n_llhttp__internal__n_invoke_load_http_major_1;
15783 }
15784 /* UNREACHABLE */;
15785 abort();
15786 }
15787 s_n_llhttp__internal__n_invoke_store_http_minor_1: {
15788 switch (llhttp__internal__c_store_http_minor(state, p, endp, match)) {
15789 default:
15790 goto s_n_llhttp__internal__n_invoke_test_lenient_flags_10;
15791 }
15792 /* UNREACHABLE */;
15793 abort();
15794 }
15795 s_n_llhttp__internal__n_error_60: {
15796 state->error = 0x9;
15797 state->reason = "Invalid minor version";
15798 state->error_pos = (const char*) p;
15799 state->_current = (void*) (intptr_t) s_error;
15800 return s_error;
15801 /* UNREACHABLE */;
15802 abort();
15803 }
15804 s_n_llhttp__internal__n_error_61: {
15805 state->error = 0x9;
15806 state->reason = "Expected dot";
15807 state->error_pos = (const char*) p;
15808 state->_current = (void*) (intptr_t) s_error;
15809 return s_error;
15810 /* UNREACHABLE */;
15811 abort();
15812 }
15813 s_n_llhttp__internal__n_invoke_store_http_major_1: {
15814 switch (llhttp__internal__c_store_http_major(state, p, endp, match)) {
15815 default:
15816 goto s_n_llhttp__internal__n_res_http_dot;
15817 }
15818 /* UNREACHABLE */;
15819 abort();
15820 }
15821 s_n_llhttp__internal__n_error_62: {
15822 state->error = 0x9;
15823 state->reason = "Invalid major version";
15824 state->error_pos = (const char*) p;
15825 state->_current = (void*) (intptr_t) s_error;
15826 return s_error;
15827 /* UNREACHABLE */;
15828 abort();
15829 }
15830 s_n_llhttp__internal__n_error_65: {
15831 state->error = 0x8;
15832 state->reason = "Expected HTTP/";
15833 state->error_pos = (const char*) p;
15834 state->_current = (void*) (intptr_t) s_error;
15835 return s_error;
15836 /* UNREACHABLE */;
15837 abort();
15838 }
15839 s_n_llhttp__internal__n_invoke_update_type: {
15840 switch (llhttp__internal__c_update_type(state, p, endp)) {
15841 default:
15842 goto s_n_llhttp__internal__n_req_first_space_before_url;
15843 }
15844 /* UNREACHABLE */;
15845 abort();
15846 }
15847 s_n_llhttp__internal__n_invoke_store_method: {
15848 switch (llhttp__internal__c_store_method(state, p, endp, match)) {
15849 default:
15850 goto s_n_llhttp__internal__n_invoke_update_type;
15851 }
15852 /* UNREACHABLE */;
15853 abort();
15854 }
15855 s_n_llhttp__internal__n_error_63: {
15856 state->error = 0x8;
15857 state->reason = "Invalid word encountered";
15858 state->error_pos = (const char*) p;
15859 state->_current = (void*) (intptr_t) s_error;
15860 return s_error;
15861 /* UNREACHABLE */;
15862 abort();
15863 }
15864 s_n_llhttp__internal__n_invoke_update_type_1: {
15865 switch (llhttp__internal__c_update_type_1(state, p, endp)) {
15866 default:
15867 goto s_n_llhttp__internal__n_res_http_major;
15868 }
15869 /* UNREACHABLE */;
15870 abort();
15871 }
15872 s_n_llhttp__internal__n_invoke_update_type_2: {
15873 switch (llhttp__internal__c_update_type(state, p, endp)) {
15874 default:
15875 goto s_n_llhttp__internal__n_start_req;
15876 }
15877 /* UNREACHABLE */;
15878 abort();
15879 }
15880 s_n_llhttp__internal__n_pause_8: {
15881 state->error = 0x15;
15882 state->reason = "on_message_begin pause";
15883 state->error_pos = (const char*) p;
15884 state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_load_type;
15885 return s_error;
15886 /* UNREACHABLE */;
15887 abort();
15888 }
15889 s_n_llhttp__internal__n_error: {
15890 state->error = 0x10;
15891 state->reason = "`on_message_begin` callback error";
15892 state->error_pos = (const char*) p;
15893 state->_current = (void*) (intptr_t) s_error;
15894 return s_error;
15895 /* UNREACHABLE */;
15896 abort();
15897 }
15898 s_n_llhttp__internal__n_invoke_llhttp__on_message_begin: {
15899 switch (llhttp__on_message_begin(state, p, endp)) {
15900 case 0:
15901 goto s_n_llhttp__internal__n_invoke_load_type;
15902 case 21:
15903 goto s_n_llhttp__internal__n_pause_8;
15904 default:
15905 goto s_n_llhttp__internal__n_error;
15906 }
15907 /* UNREACHABLE */;
15908 abort();
15909 }
15910 s_n_llhttp__internal__n_invoke_update_finish: {
15911 switch (llhttp__internal__c_update_finish(state, p, endp)) {
15912 default:
15913 goto s_n_llhttp__internal__n_invoke_llhttp__on_message_begin;
15914 }
15915 /* UNREACHABLE */;
15916 abort();
15917 }
15918 }
15919
llhttp__internal_execute(llhttp__internal_t * state,const char * p,const char * endp)15920 int llhttp__internal_execute(llhttp__internal_t* state, const char* p, const char* endp) {
15921 llparse_state_t next;
15922
15923 /* check lingering errors */
15924 if (state->error != 0) {
15925 return state->error;
15926 }
15927
15928 /* restart spans */
15929 if (state->_span_pos0 != NULL) {
15930 state->_span_pos0 = (void*) p;
15931 }
15932
15933 next = llhttp__internal__run(state, (const unsigned char*) p, (const unsigned char*) endp);
15934 if (next == s_error) {
15935 return state->error;
15936 }
15937 state->_current = (void*) (intptr_t) next;
15938
15939 /* execute spans */
15940 if (state->_span_pos0 != NULL) {
15941 int error;
15942
15943 error = ((llhttp__internal__span_cb) state->_span_cb0)(state, state->_span_pos0, (const char*) endp);
15944 if (error != 0) {
15945 state->error = error;
15946 state->error_pos = endp;
15947 return error;
15948 }
15949 }
15950
15951 return 0;
15952 }
15953
15954 #endif /* LLHTTP_STRICT_MODE */
15955