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