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