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