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