diff --git a/include/llhttp.h b/include/llhttp.h index e3a98d07..2fc6275a 100644 --- a/include/llhttp.h +++ b/include/llhttp.h @@ -1,8 +1,8 @@ #ifndef INCLUDE_LLHTTP_H_ #define INCLUDE_LLHTTP_H_ -#define LLHTTP_VERSION_MAJOR 2 -#define LLHTTP_VERSION_MINOR 2 +#define LLHTTP_VERSION_MAJOR 3 +#define LLHTTP_VERSION_MINOR 0 #define LLHTTP_VERSION_PATCH 0 #ifndef LLHTTP_STRICT_MODE @@ -33,10 +33,11 @@ struct llhttp__internal_s { uint8_t http_major; uint8_t http_minor; uint8_t header_state; - uint16_t flags; + uint8_t lenient_flags; uint8_t upgrade; - uint16_t status_code; uint8_t finish; + uint16_t flags; + uint16_t status_code; void* settings; }; @@ -91,11 +92,16 @@ enum llhttp_flags { F_CONTENT_LENGTH = 0x20, F_SKIPBODY = 0x40, F_TRAILING = 0x80, - F_LENIENT = 0x100, F_TRANSFER_ENCODING = 0x200 }; typedef enum llhttp_flags llhttp_flags_t; +enum llhttp_lenient_flags { + LENIENT_HEADERS = 0x1, + LENIENT_CHUNKED_LENGTH = 0x2 +}; +typedef enum llhttp_lenient_flags llhttp_lenient_flags_t; + enum llhttp_type { HTTP_BOTH = 0, HTTP_REQUEST = 1, @@ -286,6 +292,11 @@ struct llhttp_settings_s { */ llhttp_cb on_chunk_header; llhttp_cb on_chunk_complete; + + llhttp_cb on_url_complete; + llhttp_cb on_status_complete; + llhttp_cb on_header_field_complete; + llhttp_cb on_header_value_complete; }; /* Initialize the parser with specific type and user settings. @@ -400,7 +411,20 @@ const char* llhttp_method_name(llhttp_method_t method); * * **(USE AT YOUR OWN RISK)** */ -void llhttp_set_lenient(llhttp_t* parser, int enabled); +void llhttp_set_lenient_headers(llhttp_t* parser, int enabled); + + +/* Enables/disables lenient handling of conflicting `Transfer-Encoding` and + * `Content-Length` headers (disabled by default). + * + * Normally `llhttp` would error when `Transfer-Encoding` is present in + * conjunction with `Content-Length`. This error is important to prevent HTTP + * request smuggling, but may be less desirable for small number of cases + * involving legacy servers. + * + * **(USE AT YOUR OWN RISK)** + */ +void llhttp_set_lenient_chunked_length(llhttp_t* parser, int enabled); #ifdef __cplusplus } /* extern "C" */ diff --git a/src/api.c b/src/api.c index 6f724654..93f190fa 100644 --- a/src/api.c +++ b/src/api.c @@ -127,11 +127,19 @@ const char* llhttp_method_name(llhttp_method_t method) { } -void llhttp_set_lenient(llhttp_t* parser, int enabled) { +void llhttp_set_lenient_headers(llhttp_t* parser, int enabled) { if (enabled) { - parser->flags |= F_LENIENT; + parser->lenient_flags |= LENIENT_HEADERS; } else { - parser->flags &= ~F_LENIENT; + parser->lenient_flags &= ~LENIENT_HEADERS; + } +} + +void llhttp_set_lenient_chunked_length(llhttp_t* parser, int enabled) { + if (enabled) { + parser->lenient_flags |= LENIENT_CHUNKED_LENGTH; + } else { + parser->lenient_flags &= ~LENIENT_CHUNKED_LENGTH; } } @@ -153,6 +161,13 @@ int llhttp__on_url(llhttp_t* s, const char* p, const char* endp) { } +int llhttp__on_url_complete(llhttp_t* s, const char* p, const char* endp) { + int err; + CALLBACK_MAYBE(s, on_url_complete, s); + return err; +} + + int llhttp__on_status(llhttp_t* s, const char* p, const char* endp) { int err; CALLBACK_MAYBE(s, on_status, s, p, endp - p); @@ -160,6 +175,13 @@ int llhttp__on_status(llhttp_t* s, const char* p, const char* endp) { } +int llhttp__on_status_complete(llhttp_t* s, const char* p, const char* endp) { + int err; + CALLBACK_MAYBE(s, on_status_complete, s); + return err; +} + + int llhttp__on_header_field(llhttp_t* s, const char* p, const char* endp) { int err; CALLBACK_MAYBE(s, on_header_field, s, p, endp - p); @@ -167,6 +189,13 @@ int llhttp__on_header_field(llhttp_t* s, const char* p, const char* endp) { } +int llhttp__on_header_field_complete(llhttp_t* s, const char* p, const char* endp) { + int err; + CALLBACK_MAYBE(s, on_header_field_complete, s); + return err; +} + + int llhttp__on_header_value(llhttp_t* s, const char* p, const char* endp) { int err; CALLBACK_MAYBE(s, on_header_value, s, p, endp - p); @@ -174,6 +203,13 @@ int llhttp__on_header_value(llhttp_t* s, const char* p, const char* endp) { } +int llhttp__on_header_value_complete(llhttp_t* s, const char* p, const char* endp) { + int err; + CALLBACK_MAYBE(s, on_header_value_complete, s); + return err; +} + + int llhttp__on_headers_complete(llhttp_t* s, const char* p, const char* endp) { int err; CALLBACK_MAYBE(s, on_headers_complete, s); diff --git a/src/http.c b/src/http.c index 6e4906d8..e6279f3b 100644 --- a/src/http.c +++ b/src/http.c @@ -51,7 +51,8 @@ int llhttp__after_headers_complete(llhttp_t* parser, const char* p, /* chunked encoding - ignore Content-Length header, prepare for a chunk */ return 2; } else if (parser->flags & F_TRANSFER_ENCODING) { - if (parser->type == HTTP_REQUEST && (parser->flags & F_LENIENT) == 0) { + if (parser->type == HTTP_REQUEST && + (parser->lenient_flags & LENIENT_CHUNKED_LENGTH) == 0) { /* RFC 7230 3.3.3 */ /* If a Transfer-Encoding header field @@ -97,9 +98,7 @@ int llhttp__after_message_complete(llhttp_t* parser, const char* p, should_keep_alive = llhttp_should_keep_alive(parser); parser->finish = HTTP_FINISH_SAFE; - - /* Keep `F_LENIENT` flag between messages, but reset every other flag */ - parser->flags &= F_LENIENT; + parser->flags = 0; /* NOTE: this is ignored in loose parsing mode */ return should_keep_alive; diff --git a/src/llhttp.c b/src/llhttp.c index a9e88214..d8001656 100644 --- a/src/llhttp.c +++ b/src/llhttp.c @@ -360,8 +360,8 @@ enum llparse_state_e { s_n_llhttp__internal__n_header_value_connection_2, s_n_llhttp__internal__n_header_value_connection_3, s_n_llhttp__internal__n_header_value_connection, + s_n_llhttp__internal__n_error_23, s_n_llhttp__internal__n_error_24, - s_n_llhttp__internal__n_error_25, s_n_llhttp__internal__n_header_value_content_length_ws, s_n_llhttp__internal__n_header_value_content_length, s_n_llhttp__internal__n_header_value_te_chunked_last, @@ -371,6 +371,7 @@ enum llparse_state_e { s_n_llhttp__internal__n_header_value_te_chunked, s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1, s_n_llhttp__internal__n_header_value_discard_ws, + s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete, s_n_llhttp__internal__n_header_field_general_otherwise, s_n_llhttp__internal__n_header_field_general, s_n_llhttp__internal__n_header_field_colon, @@ -490,6 +491,7 @@ enum llparse_state_e { s_n_llhttp__internal__n_start_req_64, s_n_llhttp__internal__n_start_req_63, s_n_llhttp__internal__n_start_req, + s_n_llhttp__internal__n_invoke_llhttp__on_status_complete, s_n_llhttp__internal__n_res_line_almost_done, s_n_llhttp__internal__n_res_status, s_n_llhttp__internal__n_span_start_llhttp__on_status, @@ -582,6 +584,10 @@ int llhttp__internal__c_update_http_minor( return 0; } +int llhttp__on_url_complete( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + int llhttp__internal__c_test_flags( llhttp__internal_t* state, const unsigned char* p, @@ -623,18 +629,11 @@ int llhttp__internal__c_test_flags_1( return (state->flags & 544) == 544; } -int llhttp__internal__c_test_flags_2( - llhttp__internal_t* state, - const unsigned char* p, - const unsigned char* endp) { - return (state->flags & 256) == 256; -} - -int llhttp__internal__c_test_flags_3( +int llhttp__internal__c_test_lenient_flags( llhttp__internal_t* state, const unsigned char* p, const unsigned char* endp) { - return (state->flags & 40) == 40; + return (state->lenient_flags & 2) == 2; } int llhttp__before_headers_complete( @@ -790,6 +789,17 @@ int llhttp__internal__c_update_header_state_2( return 0; } +int llhttp__on_header_value_complete( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__internal__c_test_lenient_flags_1( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return (state->lenient_flags & 1) == 1; +} + int llhttp__internal__c_update_header_state_4( llhttp__internal_t* state, const unsigned char* p, @@ -814,7 +824,7 @@ int llhttp__internal__c_update_header_state_6( return 0; } -int llhttp__internal__c_test_flags_5( +int llhttp__internal__c_test_flags_2( llhttp__internal_t* state, const unsigned char* p, const unsigned char* endp) { @@ -879,6 +889,10 @@ int llhttp__internal__c_or_flags_17( return 0; } +int llhttp__on_header_field_complete( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + int llhttp__internal__c_load_method( llhttp__internal_t* state, const unsigned char* p, @@ -943,6 +957,10 @@ int llhttp__internal__c_mul_add_status_code( return 0; } +int llhttp__on_status_complete( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + int llhttp__internal__c_update_type( llhttp__internal_t* state, const unsigned char* p, @@ -1497,7 +1515,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_test_flags; } default: { - goto s_n_llhttp__internal__n_error_18; + goto s_n_llhttp__internal__n_error_17; } } /* UNREACHABLE */; @@ -1546,7 +1564,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_header_value_discard_lws; } default: { - goto s_n_llhttp__internal__n_error_20; + goto s_n_llhttp__internal__n_error_19; } } /* UNREACHABLE */; @@ -1582,7 +1600,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_header_value_lws; } default: { - goto s_n_llhttp__internal__n_error_21; + goto s_n_llhttp__internal__n_error_20; } } /* UNREACHABLE */; @@ -1621,7 +1639,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_2; } default: { - goto s_n_llhttp__internal__n_invoke_test_flags_4; + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_1; } } /* UNREACHABLE */; @@ -1798,8 +1816,8 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_error_24: - s_n_llhttp__internal__n_error_24: { + case s_n_llhttp__internal__n_error_23: + s_n_llhttp__internal__n_error_23: { state->error = 0xb; state->reason = "Content-Length overflow"; state->error_pos = (const char*) p; @@ -1808,8 +1826,8 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_error_25: - s_n_llhttp__internal__n_error_25: { + case s_n_llhttp__internal__n_error_24: + s_n_llhttp__internal__n_error_24: { state->error = 0xb; state->reason = "Invalid character in Content-Length"; state->error_pos = (const char*) p; @@ -2110,6 +2128,15 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } + case s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete: + s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete: { + switch (llhttp__on_header_field_complete(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_header_value_discard_ws; + } + /* UNREACHABLE */; + abort(); + } case s_n_llhttp__internal__n_header_field_general_otherwise: s_n_llhttp__internal__n_header_field_general_otherwise: { if (p == endp) { @@ -2120,7 +2147,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field_1; } default: { - goto s_n_llhttp__internal__n_error_26; + goto s_n_llhttp__internal__n_error_25; } } /* UNREACHABLE */; @@ -2501,7 +2528,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_to_http_09; } default: { - goto s_n_llhttp__internal__n_error_27; + goto s_n_llhttp__internal__n_error_26; } } /* UNREACHABLE */; @@ -2526,7 +2553,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_skip_lf_to_http09_1; } default: { - goto s_n_llhttp__internal__n_error_27; + goto s_n_llhttp__internal__n_error_26; } } /* UNREACHABLE */; @@ -2543,7 +2570,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_header_field_start; } default: { - goto s_n_llhttp__internal__n_error_29; + goto s_n_llhttp__internal__n_error_28; } } /* UNREACHABLE */; @@ -2564,7 +2591,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_req_http_end_1; } default: { - goto s_n_llhttp__internal__n_error_29; + goto s_n_llhttp__internal__n_error_28; } } /* UNREACHABLE */; @@ -2627,7 +2654,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_http_minor; } default: { - goto s_n_llhttp__internal__n_error_30; + goto s_n_llhttp__internal__n_error_29; } } /* UNREACHABLE */; @@ -2644,7 +2671,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_req_http_minor; } default: { - goto s_n_llhttp__internal__n_error_31; + goto s_n_llhttp__internal__n_error_30; } } /* UNREACHABLE */; @@ -2707,7 +2734,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_http_major; } default: { - goto s_n_llhttp__internal__n_error_32; + goto s_n_llhttp__internal__n_error_31; } } /* UNREACHABLE */; @@ -2731,7 +2758,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_req_http_start_1; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_35; + goto s_n_llhttp__internal__n_error_34; } } /* UNREACHABLE */; @@ -2755,7 +2782,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_req_http_start_2; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_35; + goto s_n_llhttp__internal__n_error_34; } } /* UNREACHABLE */; @@ -2779,7 +2806,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_req_http_start_3; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_35; + goto s_n_llhttp__internal__n_error_34; } } /* UNREACHABLE */; @@ -2808,7 +2835,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_req_http_start_3; } default: { - goto s_n_llhttp__internal__n_error_35; + goto s_n_llhttp__internal__n_error_34; } } /* UNREACHABLE */; @@ -2829,7 +2856,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_error_1; } default: { - goto s_n_llhttp__internal__n_req_http_start; + goto s_n_llhttp__internal__n_invoke_llhttp__on_url_complete_1; } } /* UNREACHABLE */; @@ -2899,7 +2926,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_fragment; } default: { - goto s_n_llhttp__internal__n_error_36; + goto s_n_llhttp__internal__n_error_35; } } /* UNREACHABLE */; @@ -2960,7 +2987,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_span_end_stub_query_3; } default: { - goto s_n_llhttp__internal__n_error_37; + goto s_n_llhttp__internal__n_error_36; } } /* UNREACHABLE */; @@ -2998,7 +3025,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_query; } default: { - goto s_n_llhttp__internal__n_error_38; + goto s_n_llhttp__internal__n_error_37; } } /* UNREACHABLE */; @@ -3123,10 +3150,10 @@ static llparse_state_t llhttp__internal__run( } case 8: { p++; - goto s_n_llhttp__internal__n_error_39; + goto s_n_llhttp__internal__n_error_38; } default: { - goto s_n_llhttp__internal__n_error_40; + goto s_n_llhttp__internal__n_error_39; } } /* UNREACHABLE */; @@ -3185,7 +3212,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_server_with_at; } default: { - goto s_n_llhttp__internal__n_error_41; + goto s_n_llhttp__internal__n_error_40; } } /* UNREACHABLE */; @@ -3202,7 +3229,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_server; } default: { - goto s_n_llhttp__internal__n_error_43; + goto s_n_llhttp__internal__n_error_42; } } /* UNREACHABLE */; @@ -3220,7 +3247,7 @@ static llparse_state_t llhttp__internal__run( } case 10: { p++; - goto s_n_llhttp__internal__n_error_42; + goto s_n_llhttp__internal__n_error_41; } case 12: { p++; @@ -3228,18 +3255,18 @@ static llparse_state_t llhttp__internal__run( } case 13: { p++; - goto s_n_llhttp__internal__n_error_42; + goto s_n_llhttp__internal__n_error_41; } case ' ': { p++; - goto s_n_llhttp__internal__n_error_42; + goto s_n_llhttp__internal__n_error_41; } case '/': { p++; goto s_n_llhttp__internal__n_url_schema_delim_1; } default: { - goto s_n_llhttp__internal__n_error_43; + goto s_n_llhttp__internal__n_error_42; } } /* UNREACHABLE */; @@ -3285,7 +3312,7 @@ static llparse_state_t llhttp__internal__run( } case 2: { p++; - goto s_n_llhttp__internal__n_error_42; + goto s_n_llhttp__internal__n_error_41; } case 3: { goto s_n_llhttp__internal__n_span_end_stub_schema; @@ -3295,7 +3322,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_schema; } default: { - goto s_n_llhttp__internal__n_error_44; + goto s_n_llhttp__internal__n_error_43; } } /* UNREACHABLE */; @@ -3331,7 +3358,7 @@ static llparse_state_t llhttp__internal__run( } case 2: { p++; - goto s_n_llhttp__internal__n_error_42; + goto s_n_llhttp__internal__n_error_41; } case 3: { goto s_n_llhttp__internal__n_span_start_stub_path_2; @@ -3340,7 +3367,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_schema; } default: { - goto s_n_llhttp__internal__n_error_45; + goto s_n_llhttp__internal__n_error_44; } } /* UNREACHABLE */; @@ -3438,7 +3465,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_req_spaces_before_url; } default: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_45; } } /* UNREACHABLE */; @@ -3456,7 +3483,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_method_1; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -3481,7 +3508,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_3; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -3502,7 +3529,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_3; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -3527,7 +3554,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_4; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -3552,7 +3579,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_6; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -3577,7 +3604,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_8; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -3595,7 +3622,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_method_1; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -3616,7 +3643,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_9; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -3637,7 +3664,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_7; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -3662,7 +3689,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_12; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -3687,7 +3714,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_13; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -3708,7 +3735,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_13; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -3725,7 +3752,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_11; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -3750,7 +3777,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_14; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -3775,7 +3802,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_17; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -3817,7 +3844,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_15; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -3842,7 +3869,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_18; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -3867,7 +3894,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_20; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -3892,7 +3919,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_21; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -3913,7 +3940,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_21; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -3938,7 +3965,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_23; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -3963,7 +3990,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_24; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -3988,7 +4015,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_26; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4013,7 +4040,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_28; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4031,7 +4058,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_method_1; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4052,7 +4079,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_29; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4073,7 +4100,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_27; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4098,7 +4125,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_30; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4127,7 +4154,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_30; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4152,7 +4179,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_31; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4177,7 +4204,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_32; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4202,7 +4229,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_35; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4227,7 +4254,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_36; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4248,7 +4275,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_36; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4273,7 +4300,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_37; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4298,7 +4325,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_38; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4323,7 +4350,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_42; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4348,7 +4375,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_43; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4369,7 +4396,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_43; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4386,7 +4413,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_41; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4408,7 +4435,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_40; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4433,7 +4460,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_45; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4455,7 +4482,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_method_1; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4488,7 +4515,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_44; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4513,7 +4540,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_48; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4538,7 +4565,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_49; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4563,7 +4590,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_50; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4588,7 +4615,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_51; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4617,7 +4644,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_51; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4634,7 +4661,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_47; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4659,7 +4686,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_54; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4677,7 +4704,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_method_1; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4702,7 +4729,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_57; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4723,7 +4750,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_57; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4744,7 +4771,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_55; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4769,7 +4796,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_58; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4794,7 +4821,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_59; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4819,7 +4846,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_59; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4844,7 +4871,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_61; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4869,7 +4896,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_62; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4890,7 +4917,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_62; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4915,7 +4942,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_65; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4940,7 +4967,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_67; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4965,7 +4992,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_68; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -4986,7 +5013,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_68; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -5011,7 +5038,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_69; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -5036,7 +5063,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_69; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -5053,7 +5080,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_64; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -5130,12 +5157,21 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_63; } default: { - goto s_n_llhttp__internal__n_error_55; + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; abort(); } + case s_n_llhttp__internal__n_invoke_llhttp__on_status_complete: + s_n_llhttp__internal__n_invoke_llhttp__on_status_complete: { + switch (llhttp__on_status_complete(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_header_field_start; + } + /* UNREACHABLE */; + abort(); + } case s_n_llhttp__internal__n_res_line_almost_done: s_n_llhttp__internal__n_res_line_almost_done: { if (p == endp) { @@ -5144,10 +5180,10 @@ static llparse_state_t llhttp__internal__run( switch (*p) { case 10: { p++; - goto s_n_llhttp__internal__n_header_field_start; + goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -5192,7 +5228,7 @@ static llparse_state_t llhttp__internal__run( switch (*p) { case 10: { p++; - goto s_n_llhttp__internal__n_header_field_start; + goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete; } case 13: { p++; @@ -5222,7 +5258,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_res_status_start; } default: { - goto s_n_llhttp__internal__n_error_49; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; @@ -5302,7 +5338,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_update_status_code; } default: { - goto s_n_llhttp__internal__n_error_50; + goto s_n_llhttp__internal__n_error_49; } } /* UNREACHABLE */; @@ -5365,7 +5401,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_http_minor_1; } default: { - goto s_n_llhttp__internal__n_error_51; + goto s_n_llhttp__internal__n_error_50; } } /* UNREACHABLE */; @@ -5382,7 +5418,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_res_http_minor; } default: { - goto s_n_llhttp__internal__n_error_52; + goto s_n_llhttp__internal__n_error_51; } } /* UNREACHABLE */; @@ -5445,7 +5481,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_http_major_1; } default: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_52; } } /* UNREACHABLE */; @@ -5469,7 +5505,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_res; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_56; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; @@ -5494,7 +5530,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_req_or_res_method_2; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_54; + goto s_n_llhttp__internal__n_error_53; } } /* UNREACHABLE */; @@ -5518,7 +5554,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_req_or_res_method_3; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_54; + goto s_n_llhttp__internal__n_error_53; } } /* UNREACHABLE */; @@ -5539,7 +5575,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_req_or_res_method_3; } default: { - goto s_n_llhttp__internal__n_error_54; + goto s_n_llhttp__internal__n_error_53; } } /* UNREACHABLE */; @@ -5556,7 +5592,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_req_or_res_method_1; } default: { - goto s_n_llhttp__internal__n_error_54; + goto s_n_llhttp__internal__n_error_53; } } /* UNREACHABLE */; @@ -5625,7 +5661,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_42: { + s_n_llhttp__internal__n_error_41: { state->error = 0x7; state->reason = "Invalid characters in url"; state->error_pos = (const char*) p; @@ -5686,7 +5722,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_17: { + s_n_llhttp__internal__n_error_16: { state->error = 0x14; state->reason = "`on_chunk_complete` callback error"; state->error_pos = (const char*) p; @@ -5702,7 +5738,7 @@ static llparse_state_t llhttp__internal__run( case 21: goto s_n_llhttp__internal__n_pause_7; default: - goto s_n_llhttp__internal__n_error_17; + goto s_n_llhttp__internal__n_error_16; } /* UNREACHABLE */; abort(); @@ -5716,15 +5752,6 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_16: { - state->error = 0x4; - state->reason = "Content-Length can't be present with chunked encoding"; - state->error_pos = (const char*) p; - state->_current = (void*) (intptr_t) s_error; - return s_error; - /* UNREACHABLE */; - abort(); - } s_n_llhttp__internal__n_pause_2: { state->error = 0x15; state->reason = "on_message_complete pause"; @@ -6025,22 +6052,10 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_invoke_test_flags_3: { - switch (llhttp__internal__c_test_flags_3(state, p, endp)) { - case 1: - goto s_n_llhttp__internal__n_error_16; - default: - goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete; - } - /* UNREACHABLE */; - abort(); - } - s_n_llhttp__internal__n_invoke_test_flags_2: { - switch (llhttp__internal__c_test_flags_2(state, p, endp)) { + s_n_llhttp__internal__n_invoke_test_lenient_flags: { + switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) { case 0: goto s_n_llhttp__internal__n_error_15; - case 1: - goto s_n_llhttp__internal__n_invoke_test_flags_3; default: goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete; } @@ -6050,7 +6065,7 @@ static llparse_state_t llhttp__internal__run( s_n_llhttp__internal__n_invoke_test_flags_1: { switch (llhttp__internal__c_test_flags_1(state, p, endp)) { case 1: - goto s_n_llhttp__internal__n_invoke_test_flags_2; + goto s_n_llhttp__internal__n_invoke_test_lenient_flags; default: goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete; } @@ -6067,7 +6082,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_18: { + s_n_llhttp__internal__n_error_17: { state->error = 0x2; state->reason = "Expected LF after headers"; state->error_pos = (const char*) p; @@ -6076,7 +6091,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_19: { + s_n_llhttp__internal__n_error_18: { state->error = 0xb; state->reason = "Empty Content-Length"; state->error_pos = (const char*) p; @@ -6161,14 +6176,14 @@ static llparse_state_t llhttp__internal__run( s_n_llhttp__internal__n_invoke_load_header_state: { switch (llhttp__internal__c_load_header_state(state, p, endp)) { case 2: - goto s_n_llhttp__internal__n_error_19; + goto s_n_llhttp__internal__n_error_18; default: goto s_n_llhttp__internal__n_invoke_load_header_state_1; } /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_20: { + s_n_llhttp__internal__n_error_19: { state->error = 0x2; state->reason = "Expected LF after CR"; state->error_pos = (const char*) p; @@ -6177,10 +6192,18 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } + s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete: { + switch (llhttp__on_header_value_complete(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_header_field_start; + } + /* UNREACHABLE */; + abort(); + } s_n_llhttp__internal__n_invoke_update_header_state_1: { switch (llhttp__internal__c_update_header_state(state, p, endp)) { default: - goto s_n_llhttp__internal__n_header_field_start; + goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete; } /* UNREACHABLE */; abort(); @@ -6212,7 +6235,7 @@ static llparse_state_t llhttp__internal__run( s_n_llhttp__internal__n_invoke_or_flags_10: { switch (llhttp__internal__c_or_flags_6(state, p, endp)) { default: - goto s_n_llhttp__internal__n_header_field_start; + goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete; } /* UNREACHABLE */; abort(); @@ -6228,12 +6251,12 @@ static llparse_state_t llhttp__internal__run( case 8: goto s_n_llhttp__internal__n_invoke_or_flags_10; default: - goto s_n_llhttp__internal__n_header_field_start; + goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete; } /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_21: { + s_n_llhttp__internal__n_error_20: { state->error = 0x3; state->reason = "Missing expected LF after header value"; state->error_pos = (const char*) p; @@ -6295,7 +6318,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_22: { + s_n_llhttp__internal__n_error_21: { state->error = 0xa; state->reason = "Invalid header value char"; state->error_pos = (const char*) p; @@ -6304,12 +6327,12 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_invoke_test_flags_4: { - switch (llhttp__internal__c_test_flags_2(state, p, endp)) { + s_n_llhttp__internal__n_invoke_test_lenient_flags_1: { + switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) { case 1: goto s_n_llhttp__internal__n_header_value_lenient; default: - goto s_n_llhttp__internal__n_error_22; + goto s_n_llhttp__internal__n_error_21; } /* UNREACHABLE */; abort(); @@ -6412,10 +6435,10 @@ static llparse_state_t llhttp__internal__run( if (err != 0) { state->error = err; state->error_pos = (const char*) p; - state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_24; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_23; return s_error; } - goto s_n_llhttp__internal__n_error_24; + goto s_n_llhttp__internal__n_error_23; /* UNREACHABLE */; abort(); } @@ -6447,14 +6470,14 @@ static llparse_state_t llhttp__internal__run( if (err != 0) { state->error = err; state->error_pos = (const char*) p; - state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_25; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_24; return s_error; } - goto s_n_llhttp__internal__n_error_25; + goto s_n_llhttp__internal__n_error_24; /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_23: { + s_n_llhttp__internal__n_error_22: { state->error = 0x4; state->reason = "Duplicate Content-Length"; state->error_pos = (const char*) p; @@ -6463,12 +6486,12 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_invoke_test_flags_5: { - switch (llhttp__internal__c_test_flags_5(state, p, endp)) { + s_n_llhttp__internal__n_invoke_test_flags_2: { + switch (llhttp__internal__c_test_flags_2(state, p, endp)) { case 0: goto s_n_llhttp__internal__n_header_value_content_length; default: - goto s_n_llhttp__internal__n_error_23; + goto s_n_llhttp__internal__n_error_22; } /* UNREACHABLE */; abort(); @@ -6510,7 +6533,7 @@ static llparse_state_t llhttp__internal__run( case 1: goto s_n_llhttp__internal__n_header_value_connection; case 2: - goto s_n_llhttp__internal__n_invoke_test_flags_5; + goto s_n_llhttp__internal__n_invoke_test_flags_2; case 3: goto s_n_llhttp__internal__n_invoke_or_flags_16; case 4: @@ -6549,15 +6572,15 @@ static llparse_state_t llhttp__internal__run( if (err != 0) { state->error = err; state->error_pos = (const char*) (p + 1); - state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_discard_ws; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete; return s_error; } p++; - goto s_n_llhttp__internal__n_header_value_discard_ws; + goto s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete; /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_26: { + s_n_llhttp__internal__n_error_25: { state->error = 0xa; state->reason = "Invalid header token"; state->error_pos = (const char*) p; @@ -6590,10 +6613,18 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } + s_n_llhttp__internal__n_invoke_llhttp__on_url_complete: { + switch (llhttp__on_url_complete(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_header_field_start; + } + /* UNREACHABLE */; + abort(); + } s_n_llhttp__internal__n_invoke_update_http_minor: { switch (llhttp__internal__c_update_http_minor(state, p, endp)) { default: - goto s_n_llhttp__internal__n_header_field_start; + goto s_n_llhttp__internal__n_invoke_llhttp__on_url_complete; } /* UNREACHABLE */; abort(); @@ -6623,7 +6654,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_27: { + s_n_llhttp__internal__n_error_26: { state->error = 0x7; state->reason = "Expected CRLF"; state->error_pos = (const char*) p; @@ -6649,7 +6680,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_29: { + s_n_llhttp__internal__n_error_28: { state->error = 0x9; state->reason = "Expected CRLF after version"; state->error_pos = (const char*) p; @@ -6666,7 +6697,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_30: { + s_n_llhttp__internal__n_error_29: { state->error = 0x9; state->reason = "Invalid minor version"; state->error_pos = (const char*) p; @@ -6675,7 +6706,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_31: { + s_n_llhttp__internal__n_error_30: { state->error = 0x9; state->reason = "Expected dot"; state->error_pos = (const char*) p; @@ -6692,7 +6723,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_32: { + s_n_llhttp__internal__n_error_31: { state->error = 0x9; state->reason = "Invalid major version"; state->error_pos = (const char*) p; @@ -6701,7 +6732,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_28: { + s_n_llhttp__internal__n_error_27: { state->error = 0x8; state->reason = "Invalid method for HTTP/x.x request"; state->error_pos = (const char*) p; @@ -6783,12 +6814,12 @@ static llparse_state_t llhttp__internal__run( case 34: goto s_n_llhttp__internal__n_req_http_major; default: - goto s_n_llhttp__internal__n_error_28; + goto s_n_llhttp__internal__n_error_27; } /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_35: { + s_n_llhttp__internal__n_error_34: { state->error = 0x8; state->reason = "Expected HTTP/"; state->error_pos = (const char*) p; @@ -6797,7 +6828,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_33: { + s_n_llhttp__internal__n_error_32: { state->error = 0x8; state->reason = "Expected SOURCE method for ICE/x.x request"; state->error_pos = (const char*) p; @@ -6811,12 +6842,12 @@ static llparse_state_t llhttp__internal__run( case 33: goto s_n_llhttp__internal__n_req_http_major; default: - goto s_n_llhttp__internal__n_error_33; + goto s_n_llhttp__internal__n_error_32; } /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_34: { + s_n_llhttp__internal__n_error_33: { state->error = 0x8; state->reason = "Invalid method for RTSP/x.x request"; state->error_pos = (const char*) p; @@ -6856,7 +6887,15 @@ static llparse_state_t llhttp__internal__run( case 45: goto s_n_llhttp__internal__n_req_http_major; default: - goto s_n_llhttp__internal__n_error_34; + goto s_n_llhttp__internal__n_error_33; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_llhttp__on_url_complete_1: { + switch (llhttp__on_url_complete(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_req_http_start; } /* UNREACHABLE */; abort(); @@ -6929,7 +6968,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_36: { + s_n_llhttp__internal__n_error_35: { state->error = 0x7; state->reason = "Invalid char in url fragment start"; state->error_pos = (const char*) p; @@ -6989,7 +7028,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_37: { + s_n_llhttp__internal__n_error_36: { state->error = 0x7; state->reason = "Invalid char in url query"; state->error_pos = (const char*) p; @@ -6998,7 +7037,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_38: { + s_n_llhttp__internal__n_error_37: { state->error = 0x7; state->reason = "Invalid char in url path"; state->error_pos = (const char*) p; @@ -7109,7 +7148,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_39: { + s_n_llhttp__internal__n_error_38: { state->error = 0x7; state->reason = "Double @ in url"; state->error_pos = (const char*) p; @@ -7118,7 +7157,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_40: { + s_n_llhttp__internal__n_error_39: { state->error = 0x7; state->reason = "Unexpected char in url server"; state->error_pos = (const char*) p; @@ -7127,7 +7166,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_41: { + s_n_llhttp__internal__n_error_40: { state->error = 0x7; state->reason = "Unexpected char in url server"; state->error_pos = (const char*) p; @@ -7136,7 +7175,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_43: { + s_n_llhttp__internal__n_error_42: { state->error = 0x7; state->reason = "Unexpected char in url schema"; state->error_pos = (const char*) p; @@ -7145,7 +7184,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_44: { + s_n_llhttp__internal__n_error_43: { state->error = 0x7; state->reason = "Unexpected char in url schema"; state->error_pos = (const char*) p; @@ -7154,7 +7193,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_45: { + s_n_llhttp__internal__n_error_44: { state->error = 0x7; state->reason = "Unexpected start char in url"; state->error_pos = (const char*) p; @@ -7173,7 +7212,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_46: { + s_n_llhttp__internal__n_error_45: { state->error = 0x6; state->reason = "Expected space after method"; state->error_pos = (const char*) p; @@ -7190,7 +7229,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_55: { + s_n_llhttp__internal__n_error_54: { state->error = 0x6; state->reason = "Invalid method encountered"; state->error_pos = (const char*) p; @@ -7199,7 +7238,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_47: { + s_n_llhttp__internal__n_error_46: { state->error = 0xd; state->reason = "Response overflow"; state->error_pos = (const char*) p; @@ -7211,14 +7250,14 @@ static llparse_state_t llhttp__internal__run( s_n_llhttp__internal__n_invoke_mul_add_status_code: { switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) { case 1: - goto s_n_llhttp__internal__n_error_47; + goto s_n_llhttp__internal__n_error_46; default: goto s_n_llhttp__internal__n_res_status_code; } /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_48: { + s_n_llhttp__internal__n_error_47: { state->error = 0x2; state->reason = "Expected LF after CR"; state->error_pos = (const char*) p; @@ -7237,11 +7276,11 @@ static llparse_state_t llhttp__internal__run( if (err != 0) { state->error = err; state->error_pos = (const char*) (p + 1); - state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_field_start; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_status_complete; return s_error; } p++; - goto s_n_llhttp__internal__n_header_field_start; + goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete; /* UNREACHABLE */; abort(); } @@ -7263,7 +7302,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_49: { + s_n_llhttp__internal__n_error_48: { state->error = 0xd; state->reason = "Invalid response status"; state->error_pos = (const char*) p; @@ -7280,7 +7319,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_50: { + s_n_llhttp__internal__n_error_49: { state->error = 0x9; state->reason = "Expected space after version"; state->error_pos = (const char*) p; @@ -7297,7 +7336,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_51: { + s_n_llhttp__internal__n_error_50: { state->error = 0x9; state->reason = "Invalid minor version"; state->error_pos = (const char*) p; @@ -7306,7 +7345,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_52: { + s_n_llhttp__internal__n_error_51: { state->error = 0x9; state->reason = "Expected dot"; state->error_pos = (const char*) p; @@ -7323,7 +7362,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_53: { + s_n_llhttp__internal__n_error_52: { state->error = 0x9; state->reason = "Invalid major version"; state->error_pos = (const char*) p; @@ -7332,7 +7371,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_56: { + s_n_llhttp__internal__n_error_55: { state->error = 0x8; state->reason = "Expected HTTP/"; state->error_pos = (const char*) p; @@ -7357,7 +7396,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_54: { + s_n_llhttp__internal__n_error_53: { state->error = 0x8; state->reason = "Invalid word encountered"; state->error_pos = (const char*) p; @@ -7824,8 +7863,8 @@ enum llparse_state_e { s_n_llhttp__internal__n_header_value_connection_2, s_n_llhttp__internal__n_header_value_connection_3, s_n_llhttp__internal__n_header_value_connection, + s_n_llhttp__internal__n_error_17, s_n_llhttp__internal__n_error_18, - s_n_llhttp__internal__n_error_19, s_n_llhttp__internal__n_header_value_content_length_ws, s_n_llhttp__internal__n_header_value_content_length, s_n_llhttp__internal__n_header_value_te_chunked_last, @@ -7835,6 +7874,7 @@ enum llparse_state_e { s_n_llhttp__internal__n_header_value_te_chunked, s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1, s_n_llhttp__internal__n_header_value_discard_ws, + s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete, s_n_llhttp__internal__n_header_field_general_otherwise, s_n_llhttp__internal__n_header_field_general, s_n_llhttp__internal__n_header_field_colon, @@ -7949,6 +7989,7 @@ enum llparse_state_e { s_n_llhttp__internal__n_start_req_64, s_n_llhttp__internal__n_start_req_63, s_n_llhttp__internal__n_start_req, + s_n_llhttp__internal__n_invoke_llhttp__on_status_complete, s_n_llhttp__internal__n_res_line_almost_done, s_n_llhttp__internal__n_res_status, s_n_llhttp__internal__n_span_start_llhttp__on_status, @@ -8041,6 +8082,10 @@ int llhttp__internal__c_update_http_minor( return 0; } +int llhttp__on_url_complete( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + int llhttp__internal__c_test_flags( llhttp__internal_t* state, const unsigned char* p, @@ -8082,18 +8127,11 @@ int llhttp__internal__c_test_flags_1( return (state->flags & 544) == 544; } -int llhttp__internal__c_test_flags_2( - llhttp__internal_t* state, - const unsigned char* p, - const unsigned char* endp) { - return (state->flags & 256) == 256; -} - -int llhttp__internal__c_test_flags_3( +int llhttp__internal__c_test_lenient_flags( llhttp__internal_t* state, const unsigned char* p, const unsigned char* endp) { - return (state->flags & 40) == 40; + return (state->lenient_flags & 2) == 2; } int llhttp__before_headers_complete( @@ -8249,6 +8287,17 @@ int llhttp__internal__c_update_header_state_2( return 0; } +int llhttp__on_header_value_complete( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + +int llhttp__internal__c_test_lenient_flags_1( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return (state->lenient_flags & 1) == 1; +} + int llhttp__internal__c_update_header_state_4( llhttp__internal_t* state, const unsigned char* p, @@ -8273,7 +8322,7 @@ int llhttp__internal__c_update_header_state_6( return 0; } -int llhttp__internal__c_test_flags_5( +int llhttp__internal__c_test_flags_2( llhttp__internal_t* state, const unsigned char* p, const unsigned char* endp) { @@ -8338,6 +8387,10 @@ int llhttp__internal__c_or_flags_17( return 0; } +int llhttp__on_header_field_complete( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + int llhttp__internal__c_load_method( llhttp__internal_t* state, const unsigned char* p, @@ -8402,6 +8455,10 @@ int llhttp__internal__c_mul_add_status_code( return 0; } +int llhttp__on_status_complete( + llhttp__internal_t* s, const unsigned char* p, + const unsigned char* endp); + int llhttp__internal__c_update_type( llhttp__internal_t* state, const unsigned char* p, @@ -8992,7 +9049,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_header_value_lws; } default: { - goto s_n_llhttp__internal__n_error_15; + goto s_n_llhttp__internal__n_error_14; } } /* UNREACHABLE */; @@ -9031,7 +9088,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_2; } default: { - goto s_n_llhttp__internal__n_invoke_test_flags_4; + goto s_n_llhttp__internal__n_invoke_test_lenient_flags_1; } } /* UNREACHABLE */; @@ -9208,8 +9265,8 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_error_18: - s_n_llhttp__internal__n_error_18: { + case s_n_llhttp__internal__n_error_17: + s_n_llhttp__internal__n_error_17: { state->error = 0xb; state->reason = "Content-Length overflow"; state->error_pos = (const char*) p; @@ -9218,8 +9275,8 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_error_19: - s_n_llhttp__internal__n_error_19: { + case s_n_llhttp__internal__n_error_18: + s_n_llhttp__internal__n_error_18: { state->error = 0xb; state->reason = "Invalid character in Content-Length"; state->error_pos = (const char*) p; @@ -9520,6 +9577,15 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } + case s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete: + s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete: { + switch (llhttp__on_header_field_complete(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_header_value_discard_ws; + } + /* UNREACHABLE */; + abort(); + } case s_n_llhttp__internal__n_header_field_general_otherwise: s_n_llhttp__internal__n_header_field_general_otherwise: { if (p == endp) { @@ -9530,7 +9596,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field_1; } default: { - goto s_n_llhttp__internal__n_error_20; + goto s_n_llhttp__internal__n_error_19; } } /* UNREACHABLE */; @@ -9885,7 +9951,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_url_skip_lf_to_http09; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_21; + goto s_n_llhttp__internal__n_error_20; } } /* UNREACHABLE */; @@ -9902,7 +9968,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_header_field_start; } default: { - goto s_n_llhttp__internal__n_error_23; + goto s_n_llhttp__internal__n_error_22; } } /* UNREACHABLE */; @@ -9923,7 +9989,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_req_http_end_1; } default: { - goto s_n_llhttp__internal__n_error_23; + goto s_n_llhttp__internal__n_error_22; } } /* UNREACHABLE */; @@ -9986,7 +10052,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_http_minor; } default: { - goto s_n_llhttp__internal__n_error_24; + goto s_n_llhttp__internal__n_error_23; } } /* UNREACHABLE */; @@ -10003,7 +10069,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_req_http_minor; } default: { - goto s_n_llhttp__internal__n_error_25; + goto s_n_llhttp__internal__n_error_24; } } /* UNREACHABLE */; @@ -10066,7 +10132,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_http_major; } default: { - goto s_n_llhttp__internal__n_error_26; + goto s_n_llhttp__internal__n_error_25; } } /* UNREACHABLE */; @@ -10090,7 +10156,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_req_http_start_1; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_29; + goto s_n_llhttp__internal__n_error_28; } } /* UNREACHABLE */; @@ -10114,7 +10180,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_req_http_start_2; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_29; + goto s_n_llhttp__internal__n_error_28; } } /* UNREACHABLE */; @@ -10138,7 +10204,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_req_http_start_3; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_29; + goto s_n_llhttp__internal__n_error_28; } } /* UNREACHABLE */; @@ -10167,7 +10233,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_req_http_start_3; } default: { - goto s_n_llhttp__internal__n_error_29; + goto s_n_llhttp__internal__n_error_28; } } /* UNREACHABLE */; @@ -10179,7 +10245,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_url_skip_to_http; } p++; - goto s_n_llhttp__internal__n_req_http_start; + goto s_n_llhttp__internal__n_invoke_llhttp__on_url_complete_1; /* UNREACHABLE */; abort(); } @@ -10221,7 +10287,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_span_end_llhttp__on_url_8; } default: { - goto s_n_llhttp__internal__n_error_30; + goto s_n_llhttp__internal__n_error_29; } } /* UNREACHABLE */; @@ -10278,7 +10344,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_span_end_stub_query_3; } default: { - goto s_n_llhttp__internal__n_error_31; + goto s_n_llhttp__internal__n_error_30; } } /* UNREACHABLE */; @@ -10308,7 +10374,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_query; } default: { - goto s_n_llhttp__internal__n_error_32; + goto s_n_llhttp__internal__n_error_31; } } /* UNREACHABLE */; @@ -10449,10 +10515,10 @@ static llparse_state_t llhttp__internal__run( } case 7: { p++; - goto s_n_llhttp__internal__n_error_33; + goto s_n_llhttp__internal__n_error_32; } default: { - goto s_n_llhttp__internal__n_error_34; + goto s_n_llhttp__internal__n_error_33; } } /* UNREACHABLE */; @@ -10507,7 +10573,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_server_with_at; } default: { - goto s_n_llhttp__internal__n_error_35; + goto s_n_llhttp__internal__n_error_34; } } /* UNREACHABLE */; @@ -10524,7 +10590,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_server; } default: { - goto s_n_llhttp__internal__n_error_37; + goto s_n_llhttp__internal__n_error_36; } } /* UNREACHABLE */; @@ -10538,22 +10604,22 @@ static llparse_state_t llhttp__internal__run( switch (*p) { case 10: { p++; - goto s_n_llhttp__internal__n_error_36; + goto s_n_llhttp__internal__n_error_35; } case 13: { p++; - goto s_n_llhttp__internal__n_error_36; + goto s_n_llhttp__internal__n_error_35; } case ' ': { p++; - goto s_n_llhttp__internal__n_error_36; + goto s_n_llhttp__internal__n_error_35; } case '/': { p++; goto s_n_llhttp__internal__n_url_schema_delim_1; } default: { - goto s_n_llhttp__internal__n_error_37; + goto s_n_llhttp__internal__n_error_36; } } /* UNREACHABLE */; @@ -10595,7 +10661,7 @@ static llparse_state_t llhttp__internal__run( switch (lookup_table[(uint8_t) *p]) { case 1: { p++; - goto s_n_llhttp__internal__n_error_36; + goto s_n_llhttp__internal__n_error_35; } case 2: { goto s_n_llhttp__internal__n_span_end_stub_schema; @@ -10605,7 +10671,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_schema; } default: { - goto s_n_llhttp__internal__n_error_38; + goto s_n_llhttp__internal__n_error_37; } } /* UNREACHABLE */; @@ -10637,7 +10703,7 @@ static llparse_state_t llhttp__internal__run( switch (lookup_table[(uint8_t) *p]) { case 1: { p++; - goto s_n_llhttp__internal__n_error_36; + goto s_n_llhttp__internal__n_error_35; } case 2: { goto s_n_llhttp__internal__n_span_start_stub_path_2; @@ -10646,7 +10712,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_schema; } default: { - goto s_n_llhttp__internal__n_error_39; + goto s_n_llhttp__internal__n_error_38; } } /* UNREACHABLE */; @@ -10702,7 +10768,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_req_spaces_before_url; } default: { - goto s_n_llhttp__internal__n_error_40; + goto s_n_llhttp__internal__n_error_39; } } /* UNREACHABLE */; @@ -10720,7 +10786,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_method_1; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -10745,7 +10811,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_3; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -10766,7 +10832,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_3; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -10791,7 +10857,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_4; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -10816,7 +10882,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_6; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -10841,7 +10907,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_8; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -10859,7 +10925,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_method_1; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -10880,7 +10946,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_9; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -10901,7 +10967,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_7; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -10926,7 +10992,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_12; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -10951,7 +11017,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_13; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -10972,7 +11038,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_13; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -10989,7 +11055,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_11; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11014,7 +11080,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_14; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11039,7 +11105,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_17; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11081,7 +11147,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_15; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11106,7 +11172,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_18; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11131,7 +11197,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_20; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11156,7 +11222,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_21; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11177,7 +11243,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_21; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11202,7 +11268,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_23; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11227,7 +11293,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_24; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11252,7 +11318,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_26; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11277,7 +11343,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_28; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11295,7 +11361,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_method_1; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11316,7 +11382,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_29; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11337,7 +11403,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_27; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11362,7 +11428,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_30; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11391,7 +11457,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_30; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11416,7 +11482,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_31; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11441,7 +11507,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_32; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11466,7 +11532,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_35; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11491,7 +11557,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_36; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11512,7 +11578,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_36; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11537,7 +11603,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_37; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11562,7 +11628,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_38; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11587,7 +11653,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_42; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11612,7 +11678,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_43; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11633,7 +11699,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_43; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11650,7 +11716,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_41; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11672,7 +11738,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_40; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11697,7 +11763,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_45; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11719,7 +11785,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_method_1; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11752,7 +11818,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_44; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11777,7 +11843,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_48; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11802,7 +11868,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_49; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11827,7 +11893,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_50; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11852,7 +11918,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_51; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11881,7 +11947,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_51; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11898,7 +11964,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_47; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11923,7 +11989,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_54; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11941,7 +12007,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_method_1; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11966,7 +12032,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_57; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11987,7 +12053,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_57; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -12008,7 +12074,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_55; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -12033,7 +12099,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_58; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -12058,7 +12124,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_59; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -12083,7 +12149,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_59; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -12108,7 +12174,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_61; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -12133,7 +12199,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_62; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -12154,7 +12220,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_62; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -12179,7 +12245,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_65; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -12204,7 +12270,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_67; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -12229,7 +12295,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_68; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -12250,7 +12316,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_68; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -12275,7 +12341,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_69; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -12300,7 +12366,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_69; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -12317,7 +12383,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_64; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -12394,19 +12460,28 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_63; } default: { - goto s_n_llhttp__internal__n_error_48; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; abort(); } + case s_n_llhttp__internal__n_invoke_llhttp__on_status_complete: + s_n_llhttp__internal__n_invoke_llhttp__on_status_complete: { + switch (llhttp__on_status_complete(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_header_field_start; + } + /* UNREACHABLE */; + abort(); + } case s_n_llhttp__internal__n_res_line_almost_done: s_n_llhttp__internal__n_res_line_almost_done: { if (p == endp) { return s_n_llhttp__internal__n_res_line_almost_done; } p++; - goto s_n_llhttp__internal__n_header_field_start; + goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete; /* UNREACHABLE */; abort(); } @@ -12449,7 +12524,7 @@ static llparse_state_t llhttp__internal__run( switch (*p) { case 10: { p++; - goto s_n_llhttp__internal__n_header_field_start; + goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete; } case 13: { p++; @@ -12479,7 +12554,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_res_status_start; } default: { - goto s_n_llhttp__internal__n_error_42; + goto s_n_llhttp__internal__n_error_41; } } /* UNREACHABLE */; @@ -12559,7 +12634,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_update_status_code; } default: { - goto s_n_llhttp__internal__n_error_43; + goto s_n_llhttp__internal__n_error_42; } } /* UNREACHABLE */; @@ -12622,7 +12697,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_http_minor_1; } default: { - goto s_n_llhttp__internal__n_error_44; + goto s_n_llhttp__internal__n_error_43; } } /* UNREACHABLE */; @@ -12639,7 +12714,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_res_http_minor; } default: { - goto s_n_llhttp__internal__n_error_45; + goto s_n_llhttp__internal__n_error_44; } } /* UNREACHABLE */; @@ -12702,7 +12777,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_http_major_1; } default: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_45; } } /* UNREACHABLE */; @@ -12726,7 +12801,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_res; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_49; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; @@ -12751,7 +12826,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_req_or_res_method_2; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_47; + goto s_n_llhttp__internal__n_error_46; } } /* UNREACHABLE */; @@ -12775,7 +12850,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_req_or_res_method_3; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_47; + goto s_n_llhttp__internal__n_error_46; } } /* UNREACHABLE */; @@ -12796,7 +12871,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_req_or_res_method_3; } default: { - goto s_n_llhttp__internal__n_error_47; + goto s_n_llhttp__internal__n_error_46; } } /* UNREACHABLE */; @@ -12813,7 +12888,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_req_or_res_method_1; } default: { - goto s_n_llhttp__internal__n_error_47; + goto s_n_llhttp__internal__n_error_46; } } /* UNREACHABLE */; @@ -12873,7 +12948,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */ abort(); } - s_n_llhttp__internal__n_error_36: { + s_n_llhttp__internal__n_error_35: { state->error = 0x7; state->reason = "Invalid characters in url"; state->error_pos = (const char*) p; @@ -12917,7 +12992,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_13: { + s_n_llhttp__internal__n_error_12: { state->error = 0x14; state->reason = "`on_chunk_complete` callback error"; state->error_pos = (const char*) p; @@ -12933,7 +13008,7 @@ static llparse_state_t llhttp__internal__run( case 21: goto s_n_llhttp__internal__n_pause_7; default: - goto s_n_llhttp__internal__n_error_13; + goto s_n_llhttp__internal__n_error_12; } /* UNREACHABLE */; abort(); @@ -12947,15 +13022,6 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_12: { - state->error = 0x4; - state->reason = "Content-Length can't be present with chunked encoding"; - state->error_pos = (const char*) p; - state->_current = (void*) (intptr_t) s_error; - return s_error; - /* UNREACHABLE */; - abort(); - } s_n_llhttp__internal__n_pause_2: { state->error = 0x15; state->reason = "on_message_complete pause"; @@ -13238,22 +13304,10 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_invoke_test_flags_3: { - switch (llhttp__internal__c_test_flags_3(state, p, endp)) { - case 1: - goto s_n_llhttp__internal__n_error_12; - default: - goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete; - } - /* UNREACHABLE */; - abort(); - } - s_n_llhttp__internal__n_invoke_test_flags_2: { - switch (llhttp__internal__c_test_flags_2(state, p, endp)) { + s_n_llhttp__internal__n_invoke_test_lenient_flags: { + switch (llhttp__internal__c_test_lenient_flags(state, p, endp)) { case 0: goto s_n_llhttp__internal__n_error_11; - case 1: - goto s_n_llhttp__internal__n_invoke_test_flags_3; default: goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete; } @@ -13263,7 +13317,7 @@ static llparse_state_t llhttp__internal__run( s_n_llhttp__internal__n_invoke_test_flags_1: { switch (llhttp__internal__c_test_flags_1(state, p, endp)) { case 1: - goto s_n_llhttp__internal__n_invoke_test_flags_2; + goto s_n_llhttp__internal__n_invoke_test_lenient_flags; default: goto s_n_llhttp__internal__n_invoke_llhttp__before_headers_complete; } @@ -13280,7 +13334,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_14: { + s_n_llhttp__internal__n_error_13: { state->error = 0xb; state->reason = "Empty Content-Length"; state->error_pos = (const char*) p; @@ -13365,17 +13419,25 @@ static llparse_state_t llhttp__internal__run( s_n_llhttp__internal__n_invoke_load_header_state: { switch (llhttp__internal__c_load_header_state(state, p, endp)) { case 2: - goto s_n_llhttp__internal__n_error_14; + goto s_n_llhttp__internal__n_error_13; default: goto s_n_llhttp__internal__n_invoke_load_header_state_1; } /* UNREACHABLE */; abort(); } + s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete: { + switch (llhttp__on_header_value_complete(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_header_field_start; + } + /* UNREACHABLE */; + abort(); + } s_n_llhttp__internal__n_invoke_update_header_state_1: { switch (llhttp__internal__c_update_header_state(state, p, endp)) { default: - goto s_n_llhttp__internal__n_header_field_start; + goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete; } /* UNREACHABLE */; abort(); @@ -13407,7 +13469,7 @@ static llparse_state_t llhttp__internal__run( s_n_llhttp__internal__n_invoke_or_flags_10: { switch (llhttp__internal__c_or_flags_6(state, p, endp)) { default: - goto s_n_llhttp__internal__n_header_field_start; + goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete; } /* UNREACHABLE */; abort(); @@ -13423,12 +13485,12 @@ static llparse_state_t llhttp__internal__run( case 8: goto s_n_llhttp__internal__n_invoke_or_flags_10; default: - goto s_n_llhttp__internal__n_header_field_start; + goto s_n_llhttp__internal__n_invoke_llhttp__on_header_value_complete; } /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_15: { + s_n_llhttp__internal__n_error_14: { state->error = 0x3; state->reason = "Missing expected LF after header value"; state->error_pos = (const char*) p; @@ -13490,7 +13552,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_16: { + s_n_llhttp__internal__n_error_15: { state->error = 0xa; state->reason = "Invalid header value char"; state->error_pos = (const char*) p; @@ -13499,12 +13561,12 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_invoke_test_flags_4: { - switch (llhttp__internal__c_test_flags_2(state, p, endp)) { + s_n_llhttp__internal__n_invoke_test_lenient_flags_1: { + switch (llhttp__internal__c_test_lenient_flags_1(state, p, endp)) { case 1: goto s_n_llhttp__internal__n_header_value_lenient; default: - goto s_n_llhttp__internal__n_error_16; + goto s_n_llhttp__internal__n_error_15; } /* UNREACHABLE */; abort(); @@ -13607,10 +13669,10 @@ static llparse_state_t llhttp__internal__run( if (err != 0) { state->error = err; state->error_pos = (const char*) p; - state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_18; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_17; return s_error; } - goto s_n_llhttp__internal__n_error_18; + goto s_n_llhttp__internal__n_error_17; /* UNREACHABLE */; abort(); } @@ -13642,14 +13704,14 @@ static llparse_state_t llhttp__internal__run( if (err != 0) { state->error = err; state->error_pos = (const char*) p; - state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_19; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_error_18; return s_error; } - goto s_n_llhttp__internal__n_error_19; + goto s_n_llhttp__internal__n_error_18; /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_17: { + s_n_llhttp__internal__n_error_16: { state->error = 0x4; state->reason = "Duplicate Content-Length"; state->error_pos = (const char*) p; @@ -13658,12 +13720,12 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_invoke_test_flags_5: { - switch (llhttp__internal__c_test_flags_5(state, p, endp)) { + s_n_llhttp__internal__n_invoke_test_flags_2: { + switch (llhttp__internal__c_test_flags_2(state, p, endp)) { case 0: goto s_n_llhttp__internal__n_header_value_content_length; default: - goto s_n_llhttp__internal__n_error_17; + goto s_n_llhttp__internal__n_error_16; } /* UNREACHABLE */; abort(); @@ -13705,7 +13767,7 @@ static llparse_state_t llhttp__internal__run( case 1: goto s_n_llhttp__internal__n_header_value_connection; case 2: - goto s_n_llhttp__internal__n_invoke_test_flags_5; + goto s_n_llhttp__internal__n_invoke_test_flags_2; case 3: goto s_n_llhttp__internal__n_invoke_or_flags_16; case 4: @@ -13744,15 +13806,15 @@ static llparse_state_t llhttp__internal__run( if (err != 0) { state->error = err; state->error_pos = (const char*) (p + 1); - state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_value_discard_ws; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete; return s_error; } p++; - goto s_n_llhttp__internal__n_header_value_discard_ws; + goto s_n_llhttp__internal__n_invoke_llhttp__on_header_field_complete; /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_20: { + s_n_llhttp__internal__n_error_19: { state->error = 0xa; state->reason = "Invalid header token"; state->error_pos = (const char*) p; @@ -13785,10 +13847,18 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } + s_n_llhttp__internal__n_invoke_llhttp__on_url_complete: { + switch (llhttp__on_url_complete(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_header_field_start; + } + /* UNREACHABLE */; + abort(); + } s_n_llhttp__internal__n_invoke_update_http_minor: { switch (llhttp__internal__c_update_http_minor(state, p, endp)) { default: - goto s_n_llhttp__internal__n_header_field_start; + goto s_n_llhttp__internal__n_invoke_llhttp__on_url_complete; } /* UNREACHABLE */; abort(); @@ -13818,7 +13888,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_21: { + s_n_llhttp__internal__n_error_20: { state->error = 0x7; state->reason = "Expected CRLF"; state->error_pos = (const char*) p; @@ -13844,7 +13914,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_23: { + s_n_llhttp__internal__n_error_22: { state->error = 0x9; state->reason = "Expected CRLF after version"; state->error_pos = (const char*) p; @@ -13861,7 +13931,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_24: { + s_n_llhttp__internal__n_error_23: { state->error = 0x9; state->reason = "Invalid minor version"; state->error_pos = (const char*) p; @@ -13870,7 +13940,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_25: { + s_n_llhttp__internal__n_error_24: { state->error = 0x9; state->reason = "Expected dot"; state->error_pos = (const char*) p; @@ -13887,7 +13957,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_26: { + s_n_llhttp__internal__n_error_25: { state->error = 0x9; state->reason = "Invalid major version"; state->error_pos = (const char*) p; @@ -13896,7 +13966,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_22: { + s_n_llhttp__internal__n_error_21: { state->error = 0x8; state->reason = "Invalid method for HTTP/x.x request"; state->error_pos = (const char*) p; @@ -13978,12 +14048,12 @@ static llparse_state_t llhttp__internal__run( case 34: goto s_n_llhttp__internal__n_req_http_major; default: - goto s_n_llhttp__internal__n_error_22; + goto s_n_llhttp__internal__n_error_21; } /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_29: { + s_n_llhttp__internal__n_error_28: { state->error = 0x8; state->reason = "Expected HTTP/"; state->error_pos = (const char*) p; @@ -13992,7 +14062,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_27: { + s_n_llhttp__internal__n_error_26: { state->error = 0x8; state->reason = "Expected SOURCE method for ICE/x.x request"; state->error_pos = (const char*) p; @@ -14006,12 +14076,12 @@ static llparse_state_t llhttp__internal__run( case 33: goto s_n_llhttp__internal__n_req_http_major; default: - goto s_n_llhttp__internal__n_error_27; + goto s_n_llhttp__internal__n_error_26; } /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_28: { + s_n_llhttp__internal__n_error_27: { state->error = 0x8; state->reason = "Invalid method for RTSP/x.x request"; state->error_pos = (const char*) p; @@ -14051,7 +14121,15 @@ static llparse_state_t llhttp__internal__run( case 45: goto s_n_llhttp__internal__n_req_http_major; default: - goto s_n_llhttp__internal__n_error_28; + goto s_n_llhttp__internal__n_error_27; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_llhttp__on_url_complete_1: { + switch (llhttp__on_url_complete(state, p, endp)) { + default: + goto s_n_llhttp__internal__n_req_http_start; } /* UNREACHABLE */; abort(); @@ -14124,7 +14202,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_30: { + s_n_llhttp__internal__n_error_29: { state->error = 0x7; state->reason = "Invalid char in url fragment start"; state->error_pos = (const char*) p; @@ -14184,7 +14262,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_31: { + s_n_llhttp__internal__n_error_30: { state->error = 0x7; state->reason = "Invalid char in url query"; state->error_pos = (const char*) p; @@ -14193,7 +14271,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_32: { + s_n_llhttp__internal__n_error_31: { state->error = 0x7; state->reason = "Invalid char in url path"; state->error_pos = (const char*) p; @@ -14304,7 +14382,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_33: { + s_n_llhttp__internal__n_error_32: { state->error = 0x7; state->reason = "Double @ in url"; state->error_pos = (const char*) p; @@ -14313,7 +14391,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_34: { + s_n_llhttp__internal__n_error_33: { state->error = 0x7; state->reason = "Unexpected char in url server"; state->error_pos = (const char*) p; @@ -14322,7 +14400,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_35: { + s_n_llhttp__internal__n_error_34: { state->error = 0x7; state->reason = "Unexpected char in url server"; state->error_pos = (const char*) p; @@ -14331,7 +14409,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_37: { + s_n_llhttp__internal__n_error_36: { state->error = 0x7; state->reason = "Unexpected char in url schema"; state->error_pos = (const char*) p; @@ -14340,7 +14418,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_38: { + s_n_llhttp__internal__n_error_37: { state->error = 0x7; state->reason = "Unexpected char in url schema"; state->error_pos = (const char*) p; @@ -14349,7 +14427,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_39: { + s_n_llhttp__internal__n_error_38: { state->error = 0x7; state->reason = "Unexpected start char in url"; state->error_pos = (const char*) p; @@ -14368,7 +14446,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_40: { + s_n_llhttp__internal__n_error_39: { state->error = 0x6; state->reason = "Expected space after method"; state->error_pos = (const char*) p; @@ -14385,7 +14463,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_48: { + s_n_llhttp__internal__n_error_47: { state->error = 0x6; state->reason = "Invalid method encountered"; state->error_pos = (const char*) p; @@ -14394,7 +14472,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_41: { + s_n_llhttp__internal__n_error_40: { state->error = 0xd; state->reason = "Response overflow"; state->error_pos = (const char*) p; @@ -14406,7 +14484,7 @@ static llparse_state_t llhttp__internal__run( s_n_llhttp__internal__n_invoke_mul_add_status_code: { switch (llhttp__internal__c_mul_add_status_code(state, p, endp, match)) { case 1: - goto s_n_llhttp__internal__n_error_41; + goto s_n_llhttp__internal__n_error_40; default: goto s_n_llhttp__internal__n_res_status_code; } @@ -14423,11 +14501,11 @@ static llparse_state_t llhttp__internal__run( if (err != 0) { state->error = err; state->error_pos = (const char*) (p + 1); - state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_header_field_start; + state->_current = (void*) (intptr_t) s_n_llhttp__internal__n_invoke_llhttp__on_status_complete; return s_error; } p++; - goto s_n_llhttp__internal__n_header_field_start; + goto s_n_llhttp__internal__n_invoke_llhttp__on_status_complete; /* UNREACHABLE */; abort(); } @@ -14449,7 +14527,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_42: { + s_n_llhttp__internal__n_error_41: { state->error = 0xd; state->reason = "Invalid response status"; state->error_pos = (const char*) p; @@ -14466,7 +14544,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_43: { + s_n_llhttp__internal__n_error_42: { state->error = 0x9; state->reason = "Expected space after version"; state->error_pos = (const char*) p; @@ -14483,7 +14561,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_44: { + s_n_llhttp__internal__n_error_43: { state->error = 0x9; state->reason = "Invalid minor version"; state->error_pos = (const char*) p; @@ -14492,7 +14570,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_45: { + s_n_llhttp__internal__n_error_44: { state->error = 0x9; state->reason = "Expected dot"; state->error_pos = (const char*) p; @@ -14509,7 +14587,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_46: { + s_n_llhttp__internal__n_error_45: { state->error = 0x9; state->reason = "Invalid major version"; state->error_pos = (const char*) p; @@ -14518,7 +14596,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_49: { + s_n_llhttp__internal__n_error_48: { state->error = 0x8; state->reason = "Expected HTTP/"; state->error_pos = (const char*) p; @@ -14543,7 +14621,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_47: { + s_n_llhttp__internal__n_error_46: { state->error = 0x8; state->reason = "Invalid word encountered"; state->error_pos = (const char*) p;