diff --git a/third-party/llhttp/include/llhttp.h b/third-party/llhttp/include/llhttp.h index 4bf4d8b0ce..e3a98d07e5 100644 --- a/third-party/llhttp/include/llhttp.h +++ b/third-party/llhttp/include/llhttp.h @@ -2,8 +2,8 @@ #define INCLUDE_LLHTTP_H_ #define LLHTTP_VERSION_MAJOR 2 -#define LLHTTP_VERSION_MINOR 1 -#define LLHTTP_VERSION_PATCH 3 +#define LLHTTP_VERSION_MINOR 2 +#define LLHTTP_VERSION_PATCH 0 #ifndef LLHTTP_STRICT_MODE # define LLHTTP_STRICT_MODE 0 @@ -145,7 +145,18 @@ enum llhttp_method { HTTP_LINK = 31, HTTP_UNLINK = 32, HTTP_SOURCE = 33, - HTTP_PRI = 34 + HTTP_PRI = 34, + HTTP_DESCRIBE = 35, + HTTP_ANNOUNCE = 36, + HTTP_SETUP = 37, + HTTP_PLAY = 38, + HTTP_PAUSE = 39, + HTTP_TEARDOWN = 40, + HTTP_GET_PARAMETER = 41, + HTTP_SET_PARAMETER = 42, + HTTP_REDIRECT = 43, + HTTP_RECORD = 44, + HTTP_FLUSH = 45 }; typedef enum llhttp_method llhttp_method_t; @@ -212,6 +223,17 @@ typedef enum llhttp_method llhttp_method_t; XX(32, UNLINK, UNLINK) \ XX(33, SOURCE, SOURCE) \ XX(34, PRI, PRI) \ + XX(35, DESCRIBE, DESCRIBE) \ + XX(36, ANNOUNCE, ANNOUNCE) \ + XX(37, SETUP, SETUP) \ + XX(38, PLAY, PLAY) \ + XX(39, PAUSE, PAUSE) \ + XX(40, TEARDOWN, TEARDOWN) \ + XX(41, GET_PARAMETER, GET_PARAMETER) \ + XX(42, SET_PARAMETER, SET_PARAMETER) \ + XX(43, REDIRECT, REDIRECT) \ + XX(44, RECORD, RECORD) \ + XX(45, FLUSH, FLUSH) \ @@ -266,7 +288,12 @@ struct llhttp_settings_s { llhttp_cb on_chunk_complete; }; -/* Initialize the parser with specific type and user settings */ +/* Initialize the parser with specific type and user settings. + * + * NOTE: lifetime of `settings` has to be at least the same as the lifetime of + * the `parser` here. In practice, `settings` has to be either a static + * variable or be allocated with `malloc`, `new`, etc. + */ void llhttp_init(llhttp_t* parser, llhttp_type_t type, const llhttp_settings_t* settings); diff --git a/third-party/llhttp/src/llhttp.c b/third-party/llhttp/src/llhttp.c index acc35479f8..a9e88214fc 100644 --- a/third-party/llhttp/src/llhttp.c +++ b/third-party/llhttp/src/llhttp.c @@ -24,164 +24,194 @@ typedef int (*llhttp__internal__span_cb)( llhttp__internal_t*, const char*, const char*); static const unsigned char llparse_blob0[] = { - 'C', 'L' -}; -static const unsigned char llparse_blob1[] = { 0xd, 0xa }; -static const unsigned char llparse_blob2[] = { +static const unsigned char llparse_blob1[] = { 'o', 'n' }; -static const unsigned char llparse_blob3[] = { +static const unsigned char llparse_blob2[] = { 'e', 'c', 't', 'i', 'o', 'n' }; -static const unsigned char llparse_blob4[] = { +static const unsigned char llparse_blob3[] = { 'l', 'o', 's', 'e' }; -static const unsigned char llparse_blob5[] = { +static const unsigned char llparse_blob4[] = { 'e', 'e', 'p', '-', 'a', 'l', 'i', 'v', 'e' }; -static const unsigned char llparse_blob6[] = { +static const unsigned char llparse_blob5[] = { 'p', 'g', 'r', 'a', 'd', 'e' }; -static const unsigned char llparse_blob7[] = { +static const unsigned char llparse_blob6[] = { 'c', 'h', 'u', 'n', 'k', 'e', 'd' }; #ifdef __SSE4_2__ -static const unsigned char ALIGN(16) llparse_blob8[] = { +static const unsigned char ALIGN(16) llparse_blob7[] = { 0x9, 0x9, ' ', '~', 0x80, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }; #endif /* __SSE4_2__ */ #ifdef __SSE4_2__ -static const unsigned char ALIGN(16) llparse_blob9[] = { +static const unsigned char ALIGN(16) llparse_blob8[] = { '!', '!', '#', '\'', '*', '+', '-', '.', '0', '9', 'A', 'Z', '^', 'z', '|', '|' }; #endif /* __SSE4_2__ */ #ifdef __SSE4_2__ -static const unsigned char ALIGN(16) llparse_blob10[] = { +static const unsigned char ALIGN(16) llparse_blob9[] = { '~', '~', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }; #endif /* __SSE4_2__ */ -static const unsigned char llparse_blob11[] = { +static const unsigned char llparse_blob10[] = { 'e', 'n', 't', '-', 'l', 'e', 'n', 'g', 't', 'h' }; -static const unsigned char llparse_blob12[] = { +static const unsigned char llparse_blob11[] = { 'r', 'o', 'x', 'y', '-', 'c', 'o', 'n', 'n', 'e', 'c', 't', 'i', 'o', 'n' }; -static const unsigned char llparse_blob13[] = { +static const unsigned char llparse_blob12[] = { 'r', 'a', 'n', 's', 'f', 'e', 'r', '-', 'e', 'n', 'c', 'o', 'd', 'i', 'n', 'g' }; -static const unsigned char llparse_blob14[] = { +static const unsigned char llparse_blob13[] = { 'p', 'g', 'r', 'a', 'd', 'e' }; -static const unsigned char llparse_blob15[] = { +static const unsigned char llparse_blob14[] = { 'T', 'T', 'P', '/' }; -static const unsigned char llparse_blob16[] = { +static const unsigned char llparse_blob15[] = { 'C', 'E', '/' }; +static const unsigned char llparse_blob16[] = { + 'T', 'S', 'P', '/' +}; static const unsigned char llparse_blob17[] = { - 'I', 'N', 'D' + 'N', 'O', 'U', 'N', 'C', 'E' }; static const unsigned char llparse_blob18[] = { - 'E', 'C', 'K', 'O', 'U', 'T' + 'I', 'N', 'D' }; static const unsigned char llparse_blob19[] = { - 'N', 'E', 'C', 'T' + 'E', 'C', 'K', 'O', 'U', 'T' }; static const unsigned char llparse_blob20[] = { - 'E', 'L', 'E', 'T', 'E' + 'N', 'E', 'C', 'T' }; static const unsigned char llparse_blob21[] = { - 'E', 'T' + 'E', 'T', 'E' }; static const unsigned char llparse_blob22[] = { - 'E', 'A', 'D' + 'C', 'R', 'I', 'B', 'E' }; static const unsigned char llparse_blob23[] = { - 'N', 'K' + 'L', 'U', 'S', 'H' }; static const unsigned char llparse_blob24[] = { - 'C', 'K' + 'E', 'T' }; static const unsigned char llparse_blob25[] = { - 'S', 'E', 'A', 'R', 'C', 'H' + 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R' }; static const unsigned char llparse_blob26[] = { - 'R', 'G', 'E' + 'E', 'A', 'D' }; static const unsigned char llparse_blob27[] = { - 'C', 'T', 'I', 'V', 'I', 'T', 'Y' + 'N', 'K' }; static const unsigned char llparse_blob28[] = { - 'L', 'E', 'N', 'D', 'A', 'R' + 'C', 'K' }; static const unsigned char llparse_blob29[] = { - 'V', 'E' + 'S', 'E', 'A', 'R', 'C', 'H' }; static const unsigned char llparse_blob30[] = { - 'O', 'T', 'I', 'F', 'Y' + 'R', 'G', 'E' }; static const unsigned char llparse_blob31[] = { - 'P', 'T', 'I', 'O', 'N', 'S' + 'C', 'T', 'I', 'V', 'I', 'T', 'Y' }; static const unsigned char llparse_blob32[] = { - 'T', 'C', 'H' + 'L', 'E', 'N', 'D', 'A', 'R' }; static const unsigned char llparse_blob33[] = { - 'S', 'T' + 'V', 'E' }; static const unsigned char llparse_blob34[] = { - 'I', 'N', 'D' + 'O', 'T', 'I', 'F', 'Y' }; static const unsigned char llparse_blob35[] = { - 'A', 'T', 'C', 'H' + 'P', 'T', 'I', 'O', 'N', 'S' }; static const unsigned char llparse_blob36[] = { - 'G', 'E' + 'C', 'H' }; static const unsigned char llparse_blob37[] = { - 'I', 'N', 'D' + 'S', 'E' }; static const unsigned char llparse_blob38[] = { - 'O', 'R', 'T' + 'A', 'Y' }; static const unsigned char llparse_blob39[] = { - 'A', 'R', 'C', 'H' + 'S', 'T' }; static const unsigned char llparse_blob40[] = { - 'U', 'R', 'C', 'E' + 'I', 'N', 'D' }; static const unsigned char llparse_blob41[] = { - 'B', 'S', 'C', 'R', 'I', 'B', 'E' + 'A', 'T', 'C', 'H' }; static const unsigned char llparse_blob42[] = { - 'R', 'A', 'C', 'E' + 'G', 'E' }; static const unsigned char llparse_blob43[] = { 'I', 'N', 'D' }; static const unsigned char llparse_blob44[] = { - 'N', 'K' + 'O', 'R', 'D' }; static const unsigned char llparse_blob45[] = { - 'C', 'K' + 'I', 'R', 'E', 'C', 'T' }; static const unsigned char llparse_blob46[] = { - 'U', 'B', 'S', 'C', 'R', 'I', 'B', 'E' + 'O', 'R', 'T' }; static const unsigned char llparse_blob47[] = { - 'H', 'T', 'T', 'P', '/' + 'R', 'C', 'H' }; static const unsigned char llparse_blob48[] = { - 'A', 'D' + 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R' }; static const unsigned char llparse_blob49[] = { + 'U', 'R', 'C', 'E' +}; +static const unsigned char llparse_blob50[] = { + 'B', 'S', 'C', 'R', 'I', 'B', 'E' +}; +static const unsigned char llparse_blob51[] = { + 'A', 'R', 'D', 'O', 'W', 'N' +}; +static const unsigned char llparse_blob52[] = { + 'A', 'C', 'E' +}; +static const unsigned char llparse_blob53[] = { + 'I', 'N', 'D' +}; +static const unsigned char llparse_blob54[] = { + 'N', 'K' +}; +static const unsigned char llparse_blob55[] = { + 'C', 'K' +}; +static const unsigned char llparse_blob56[] = { + 'U', 'B', 'S', 'C', 'R', 'I', 'B', 'E' +}; +static const unsigned char llparse_blob57[] = { + 'H', 'T', 'T', 'P', '/' +}; +static const unsigned char llparse_blob58[] = { + 'A', 'D' +}; +static const unsigned char llparse_blob59[] = { 'T', 'P', '/' }; @@ -365,6 +395,7 @@ enum llparse_state_e { s_n_llhttp__internal__n_req_http_major, s_n_llhttp__internal__n_req_http_start_1, s_n_llhttp__internal__n_req_http_start_2, + s_n_llhttp__internal__n_req_http_start_3, s_n_llhttp__internal__n_req_http_start, s_n_llhttp__internal__n_url_to_http, s_n_llhttp__internal__n_url_skip_to_http, @@ -389,56 +420,75 @@ enum llparse_state_e { s_n_llhttp__internal__n_url_entry_connect, s_n_llhttp__internal__n_req_spaces_before_url, s_n_llhttp__internal__n_req_first_space_before_url, - s_n_llhttp__internal__n_start_req_1, s_n_llhttp__internal__n_start_req_2, + s_n_llhttp__internal__n_start_req_3, + s_n_llhttp__internal__n_start_req_1, s_n_llhttp__internal__n_start_req_4, s_n_llhttp__internal__n_start_req_6, - s_n_llhttp__internal__n_start_req_7, - s_n_llhttp__internal__n_start_req_5, - s_n_llhttp__internal__n_start_req_3, s_n_llhttp__internal__n_start_req_8, s_n_llhttp__internal__n_start_req_9, - s_n_llhttp__internal__n_start_req_10, + s_n_llhttp__internal__n_start_req_7, + s_n_llhttp__internal__n_start_req_5, s_n_llhttp__internal__n_start_req_12, s_n_llhttp__internal__n_start_req_13, s_n_llhttp__internal__n_start_req_11, - s_n_llhttp__internal__n_start_req_15, + s_n_llhttp__internal__n_start_req_10, + s_n_llhttp__internal__n_start_req_14, + s_n_llhttp__internal__n_start_req_17, s_n_llhttp__internal__n_start_req_16, + s_n_llhttp__internal__n_start_req_15, s_n_llhttp__internal__n_start_req_18, s_n_llhttp__internal__n_start_req_20, s_n_llhttp__internal__n_start_req_21, s_n_llhttp__internal__n_start_req_19, - s_n_llhttp__internal__n_start_req_17, - s_n_llhttp__internal__n_start_req_22, - s_n_llhttp__internal__n_start_req_14, s_n_llhttp__internal__n_start_req_23, s_n_llhttp__internal__n_start_req_24, s_n_llhttp__internal__n_start_req_26, + s_n_llhttp__internal__n_start_req_28, + s_n_llhttp__internal__n_start_req_29, s_n_llhttp__internal__n_start_req_27, + s_n_llhttp__internal__n_start_req_25, + s_n_llhttp__internal__n_start_req_30, + s_n_llhttp__internal__n_start_req_22, s_n_llhttp__internal__n_start_req_31, s_n_llhttp__internal__n_start_req_32, - s_n_llhttp__internal__n_start_req_30, - s_n_llhttp__internal__n_start_req_29, - s_n_llhttp__internal__n_start_req_28, + s_n_llhttp__internal__n_start_req_35, + s_n_llhttp__internal__n_start_req_36, s_n_llhttp__internal__n_start_req_34, - s_n_llhttp__internal__n_start_req_33, - s_n_llhttp__internal__n_start_req_25, s_n_llhttp__internal__n_start_req_37, s_n_llhttp__internal__n_start_req_38, - s_n_llhttp__internal__n_start_req_36, - s_n_llhttp__internal__n_start_req_35, - s_n_llhttp__internal__n_start_req_40, - s_n_llhttp__internal__n_start_req_41, s_n_llhttp__internal__n_start_req_42, - s_n_llhttp__internal__n_start_req_39, s_n_llhttp__internal__n_start_req_43, - s_n_llhttp__internal__n_start_req_46, + s_n_llhttp__internal__n_start_req_41, + s_n_llhttp__internal__n_start_req_40, + s_n_llhttp__internal__n_start_req_39, + s_n_llhttp__internal__n_start_req_45, + s_n_llhttp__internal__n_start_req_44, + s_n_llhttp__internal__n_start_req_33, s_n_llhttp__internal__n_start_req_48, s_n_llhttp__internal__n_start_req_49, - s_n_llhttp__internal__n_start_req_47, s_n_llhttp__internal__n_start_req_50, - s_n_llhttp__internal__n_start_req_45, - s_n_llhttp__internal__n_start_req_44, + s_n_llhttp__internal__n_start_req_51, + s_n_llhttp__internal__n_start_req_47, + s_n_llhttp__internal__n_start_req_46, + s_n_llhttp__internal__n_start_req_54, + s_n_llhttp__internal__n_start_req_56, + s_n_llhttp__internal__n_start_req_57, + s_n_llhttp__internal__n_start_req_55, + s_n_llhttp__internal__n_start_req_53, + s_n_llhttp__internal__n_start_req_58, + s_n_llhttp__internal__n_start_req_59, + s_n_llhttp__internal__n_start_req_52, + s_n_llhttp__internal__n_start_req_61, + s_n_llhttp__internal__n_start_req_62, + s_n_llhttp__internal__n_start_req_60, + s_n_llhttp__internal__n_start_req_65, + s_n_llhttp__internal__n_start_req_67, + s_n_llhttp__internal__n_start_req_68, + s_n_llhttp__internal__n_start_req_66, + s_n_llhttp__internal__n_start_req_69, + 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_res_line_almost_done, s_n_llhttp__internal__n_res_status, @@ -829,6 +879,13 @@ int llhttp__internal__c_or_flags_17( return 0; } +int llhttp__internal__c_load_method( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return state->method; +} + int llhttp__internal__c_store_http_major( llhttp__internal_t* state, const unsigned char* p, @@ -847,13 +904,6 @@ int llhttp__internal__c_store_http_minor( return 0; } -int llhttp__internal__c_is_equal_method_1( - llhttp__internal_t* state, - const unsigned char* p, - const unsigned char* endp) { - return state->method == 33; -} - int llhttp__internal__c_update_status_code( llhttp__internal_t* state, const unsigned char* p, @@ -995,7 +1045,7 @@ static llparse_state_t llhttp__internal__run( if (p == endp) { return s_n_llhttp__internal__n_chunk_data_almost_done; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob1, 2); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob0, 2); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { @@ -1650,7 +1700,7 @@ static llparse_state_t llhttp__internal__run( if (p == endp) { return s_n_llhttp__internal__n_header_value_connection_1; } - match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob4, 4); + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob3, 4); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { @@ -1674,7 +1724,7 @@ static llparse_state_t llhttp__internal__run( if (p == endp) { return s_n_llhttp__internal__n_header_value_connection_2; } - match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob5, 9); + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob4, 9); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { @@ -1698,7 +1748,7 @@ static llparse_state_t llhttp__internal__run( if (p == endp) { return s_n_llhttp__internal__n_header_value_connection_3; } - match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob6, 6); + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob5, 6); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { @@ -1930,7 +1980,7 @@ static llparse_state_t llhttp__internal__run( /* Load input */ input = _mm_loadu_si128((__m128i const*) p); - ranges = _mm_loadu_si128((__m128i const*) llparse_blob8); + ranges = _mm_loadu_si128((__m128i const*) llparse_blob7); /* Find first character that does not match `ranges` */ match_len = _mm_cmpestri(ranges, 6, @@ -2003,7 +2053,7 @@ static llparse_state_t llhttp__internal__run( if (p == endp) { return s_n_llhttp__internal__n_header_value_te_chunked; } - match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob7, 7); + match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob6, 7); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { @@ -2108,7 +2158,7 @@ static llparse_state_t llhttp__internal__run( /* Load input */ input = _mm_loadu_si128((__m128i const*) p); - ranges = _mm_loadu_si128((__m128i const*) llparse_blob9); + ranges = _mm_loadu_si128((__m128i const*) llparse_blob8); /* Find first character that does not match `ranges` */ match_len = _mm_cmpestri(ranges, 16, @@ -2120,7 +2170,7 @@ static llparse_state_t llhttp__internal__run( p += match_len; goto s_n_llhttp__internal__n_header_field_general; } - ranges = _mm_loadu_si128((__m128i const*) llparse_blob10); + ranges = _mm_loadu_si128((__m128i const*) llparse_blob9); /* Find first character that does not match `ranges` */ match_len = _mm_cmpestri(ranges, 2, @@ -2174,7 +2224,7 @@ static llparse_state_t llhttp__internal__run( if (p == endp) { return s_n_llhttp__internal__n_header_field_3; } - match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob3, 6); + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob2, 6); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { @@ -2199,7 +2249,7 @@ static llparse_state_t llhttp__internal__run( if (p == endp) { return s_n_llhttp__internal__n_header_field_4; } - match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob11, 10); + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob10, 10); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { @@ -2245,7 +2295,7 @@ static llparse_state_t llhttp__internal__run( if (p == endp) { return s_n_llhttp__internal__n_header_field_1; } - match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob2, 2); + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob1, 2); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { @@ -2269,7 +2319,7 @@ static llparse_state_t llhttp__internal__run( if (p == endp) { return s_n_llhttp__internal__n_header_field_5; } - match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob12, 15); + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob11, 15); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { @@ -2294,7 +2344,7 @@ static llparse_state_t llhttp__internal__run( if (p == endp) { return s_n_llhttp__internal__n_header_field_6; } - match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob13, 16); + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob12, 16); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { @@ -2319,7 +2369,7 @@ static llparse_state_t llhttp__internal__run( if (p == endp) { return s_n_llhttp__internal__n_header_field_7; } - match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob14, 6); + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob13, 6); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { @@ -2493,7 +2543,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_28; + goto s_n_llhttp__internal__n_error_29; } } /* UNREACHABLE */; @@ -2514,7 +2564,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_28; + goto s_n_llhttp__internal__n_error_29; } } /* UNREACHABLE */; @@ -2577,7 +2627,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_29; + goto s_n_llhttp__internal__n_error_30; } } /* UNREACHABLE */; @@ -2594,7 +2644,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_30; + goto s_n_llhttp__internal__n_error_31; } } /* UNREACHABLE */; @@ -2657,7 +2707,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_31; + goto s_n_llhttp__internal__n_error_32; } } /* UNREACHABLE */; @@ -2670,18 +2720,18 @@ static llparse_state_t llhttp__internal__run( if (p == endp) { return s_n_llhttp__internal__n_req_http_start_1; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob15, 4); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob14, 4); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - goto s_n_llhttp__internal__n_req_http_major; + goto s_n_llhttp__internal__n_invoke_load_method; } case kMatchPause: { return s_n_llhttp__internal__n_req_http_start_1; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_33; + goto s_n_llhttp__internal__n_error_35; } } /* UNREACHABLE */; @@ -2694,18 +2744,42 @@ static llparse_state_t llhttp__internal__run( if (p == endp) { return s_n_llhttp__internal__n_req_http_start_2; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob16, 3); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob15, 3); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - goto s_n_llhttp__internal__n_invoke_is_equal_method_1; + goto s_n_llhttp__internal__n_invoke_load_method_1; } case kMatchPause: { return s_n_llhttp__internal__n_req_http_start_2; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_33; + goto s_n_llhttp__internal__n_error_35; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_req_http_start_3: + s_n_llhttp__internal__n_req_http_start_3: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_req_http_start_3; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob16, 4); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + goto s_n_llhttp__internal__n_invoke_load_method_2; + } + case kMatchPause: { + return s_n_llhttp__internal__n_req_http_start_3; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_35; } } /* UNREACHABLE */; @@ -2729,8 +2803,12 @@ static llparse_state_t llhttp__internal__run( p++; goto s_n_llhttp__internal__n_req_http_start_2; } + case 'R': { + p++; + goto s_n_llhttp__internal__n_req_http_start_3; + } default: { - goto s_n_llhttp__internal__n_error_33; + goto s_n_llhttp__internal__n_error_35; } } /* UNREACHABLE */; @@ -2821,7 +2899,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_fragment; } default: { - goto s_n_llhttp__internal__n_error_34; + goto s_n_llhttp__internal__n_error_36; } } /* UNREACHABLE */; @@ -2882,7 +2960,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_35; + goto s_n_llhttp__internal__n_error_37; } } /* UNREACHABLE */; @@ -2920,7 +2998,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_query; } default: { - goto s_n_llhttp__internal__n_error_36; + goto s_n_llhttp__internal__n_error_38; } } /* UNREACHABLE */; @@ -3045,10 +3123,10 @@ static llparse_state_t llhttp__internal__run( } case 8: { p++; - goto s_n_llhttp__internal__n_error_37; + goto s_n_llhttp__internal__n_error_39; } default: { - goto s_n_llhttp__internal__n_error_38; + goto s_n_llhttp__internal__n_error_40; } } /* UNREACHABLE */; @@ -3107,7 +3185,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_39; + goto s_n_llhttp__internal__n_error_41; } } /* UNREACHABLE */; @@ -3124,7 +3202,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_server; } default: { - goto s_n_llhttp__internal__n_error_41; + goto s_n_llhttp__internal__n_error_43; } } /* UNREACHABLE */; @@ -3142,7 +3220,7 @@ static llparse_state_t llhttp__internal__run( } case 10: { p++; - goto s_n_llhttp__internal__n_error_40; + goto s_n_llhttp__internal__n_error_42; } case 12: { p++; @@ -3150,18 +3228,18 @@ static llparse_state_t llhttp__internal__run( } case 13: { p++; - goto s_n_llhttp__internal__n_error_40; + goto s_n_llhttp__internal__n_error_42; } case ' ': { p++; - goto s_n_llhttp__internal__n_error_40; + goto s_n_llhttp__internal__n_error_42; } case '/': { p++; goto s_n_llhttp__internal__n_url_schema_delim_1; } default: { - goto s_n_llhttp__internal__n_error_41; + goto s_n_llhttp__internal__n_error_43; } } /* UNREACHABLE */; @@ -3207,7 +3285,7 @@ static llparse_state_t llhttp__internal__run( } case 2: { p++; - goto s_n_llhttp__internal__n_error_40; + goto s_n_llhttp__internal__n_error_42; } case 3: { goto s_n_llhttp__internal__n_span_end_stub_schema; @@ -3217,7 +3295,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_schema; } default: { - goto s_n_llhttp__internal__n_error_42; + goto s_n_llhttp__internal__n_error_44; } } /* UNREACHABLE */; @@ -3253,7 +3331,7 @@ static llparse_state_t llhttp__internal__run( } case 2: { p++; - goto s_n_llhttp__internal__n_error_40; + goto s_n_llhttp__internal__n_error_42; } case 3: { goto s_n_llhttp__internal__n_span_start_stub_path_2; @@ -3262,7 +3340,7 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_url_schema; } default: { - goto s_n_llhttp__internal__n_error_43; + goto s_n_llhttp__internal__n_error_45; } } /* UNREACHABLE */; @@ -3360,82 +3438,96 @@ 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_44; + goto s_n_llhttp__internal__n_error_46; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_1: - s_n_llhttp__internal__n_start_req_1: { - llparse_match_t match_seq; - + case s_n_llhttp__internal__n_start_req_2: + s_n_llhttp__internal__n_start_req_2: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_1; + return s_n_llhttp__internal__n_start_req_2; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob0, 2); - p = match_seq.current; - switch (match_seq.status) { - case kMatchComplete: { + switch (*p) { + case 'L': { p++; match = 19; goto s_n_llhttp__internal__n_invoke_store_method_1; } - case kMatchPause: { - return s_n_llhttp__internal__n_start_req_1; - } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + default: { + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_2: - s_n_llhttp__internal__n_start_req_2: { + case s_n_llhttp__internal__n_start_req_3: + s_n_llhttp__internal__n_start_req_3: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_2; + return s_n_llhttp__internal__n_start_req_3; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob17, 3); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob17, 6); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 16; + match = 36; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_2; + return s_n_llhttp__internal__n_start_req_3; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_4: - s_n_llhttp__internal__n_start_req_4: { - llparse_match_t match_seq; + case s_n_llhttp__internal__n_start_req_1: + s_n_llhttp__internal__n_start_req_1: { + if (p == endp) { + return s_n_llhttp__internal__n_start_req_1; + } + switch (*p) { + case 'C': { + p++; + goto s_n_llhttp__internal__n_start_req_2; + } + case 'N': { + p++; + goto s_n_llhttp__internal__n_start_req_3; + } + default: { + goto s_n_llhttp__internal__n_error_55; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_start_req_4: + s_n_llhttp__internal__n_start_req_4: { + llparse_match_t match_seq; if (p == endp) { return s_n_llhttp__internal__n_start_req_4; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob18, 6); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob18, 3); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 22; + match = 16; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { return s_n_llhttp__internal__n_start_req_4; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; @@ -3448,28 +3540,53 @@ static llparse_state_t llhttp__internal__run( if (p == endp) { return s_n_llhttp__internal__n_start_req_6; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob19, 4); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob19, 6); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 5; + match = 22; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { return s_n_llhttp__internal__n_start_req_6; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_7: - s_n_llhttp__internal__n_start_req_7: { + case s_n_llhttp__internal__n_start_req_8: + s_n_llhttp__internal__n_start_req_8: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_start_req_7; + return s_n_llhttp__internal__n_start_req_8; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob20, 4); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 5; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_8; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_55; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_start_req_9: + s_n_llhttp__internal__n_start_req_9: { + if (p == endp) { + return s_n_llhttp__internal__n_start_req_9; } switch (*p) { case 'Y': { @@ -3478,62 +3595,62 @@ 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_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_5: - s_n_llhttp__internal__n_start_req_5: { + case s_n_llhttp__internal__n_start_req_7: + s_n_llhttp__internal__n_start_req_7: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_5; + return s_n_llhttp__internal__n_start_req_7; } switch (*p) { case 'N': { p++; - goto s_n_llhttp__internal__n_start_req_6; + goto s_n_llhttp__internal__n_start_req_8; } case 'P': { p++; - goto s_n_llhttp__internal__n_start_req_7; + goto s_n_llhttp__internal__n_start_req_9; } default: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_3: - s_n_llhttp__internal__n_start_req_3: { + case s_n_llhttp__internal__n_start_req_5: + s_n_llhttp__internal__n_start_req_5: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_3; + return s_n_llhttp__internal__n_start_req_5; } switch (*p) { case 'H': { p++; - goto s_n_llhttp__internal__n_start_req_4; + goto s_n_llhttp__internal__n_start_req_6; } case 'O': { p++; - goto s_n_llhttp__internal__n_start_req_5; + goto s_n_llhttp__internal__n_start_req_7; } default: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_8: - s_n_llhttp__internal__n_start_req_8: { + case s_n_llhttp__internal__n_start_req_12: + s_n_llhttp__internal__n_start_req_12: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_8; + return s_n_llhttp__internal__n_start_req_12; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob20, 5); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob21, 3); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { @@ -3542,35 +3659,56 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_8; + return s_n_llhttp__internal__n_start_req_12; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_9: - s_n_llhttp__internal__n_start_req_9: { + case s_n_llhttp__internal__n_start_req_13: + s_n_llhttp__internal__n_start_req_13: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_9; + return s_n_llhttp__internal__n_start_req_13; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob21, 2); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob22, 5); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 1; + match = 35; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_9; + return s_n_llhttp__internal__n_start_req_13; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_start_req_11: + s_n_llhttp__internal__n_start_req_11: { + if (p == endp) { + return s_n_llhttp__internal__n_start_req_11; + } + switch (*p) { + case 'L': { + p++; + goto s_n_llhttp__internal__n_start_req_12; + } + case 'S': { + p++; + goto s_n_llhttp__internal__n_start_req_13; + } + default: { + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; @@ -3578,95 +3716,84 @@ static llparse_state_t llhttp__internal__run( } case s_n_llhttp__internal__n_start_req_10: s_n_llhttp__internal__n_start_req_10: { - llparse_match_t match_seq; - if (p == endp) { return s_n_llhttp__internal__n_start_req_10; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob22, 3); - p = match_seq.current; - switch (match_seq.status) { - case kMatchComplete: { + switch (*p) { + case 'E': { p++; - match = 2; - goto s_n_llhttp__internal__n_invoke_store_method_1; - } - case kMatchPause: { - return s_n_llhttp__internal__n_start_req_10; + goto s_n_llhttp__internal__n_start_req_11; } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + default: { + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_12: - s_n_llhttp__internal__n_start_req_12: { + case s_n_llhttp__internal__n_start_req_14: + s_n_llhttp__internal__n_start_req_14: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_12; + return s_n_llhttp__internal__n_start_req_14; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob23, 2); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob23, 4); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 31; + match = 45; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_12; + return s_n_llhttp__internal__n_start_req_14; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_13: - s_n_llhttp__internal__n_start_req_13: { + case s_n_llhttp__internal__n_start_req_17: + s_n_llhttp__internal__n_start_req_17: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_13; + return s_n_llhttp__internal__n_start_req_17; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob24, 2); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob25, 9); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 9; + match = 41; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_13; + return s_n_llhttp__internal__n_start_req_17; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_11: - s_n_llhttp__internal__n_start_req_11: { + case s_n_llhttp__internal__n_start_req_16: + s_n_llhttp__internal__n_start_req_16: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_11; + return s_n_llhttp__internal__n_start_req_16; } switch (*p) { - case 'I': { - p++; - goto s_n_llhttp__internal__n_start_req_12; - } - case 'O': { + case '_': { p++; - goto s_n_llhttp__internal__n_start_req_13; + goto s_n_llhttp__internal__n_start_req_17; } default: { - goto s_n_llhttp__internal__n_error_53; + match = 1; + goto s_n_llhttp__internal__n_invoke_store_method_1; } } /* UNREACHABLE */; @@ -3679,44 +3806,18 @@ static llparse_state_t llhttp__internal__run( if (p == endp) { return s_n_llhttp__internal__n_start_req_15; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob25, 6); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob24, 2); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 24; - goto s_n_llhttp__internal__n_invoke_store_method_1; + goto s_n_llhttp__internal__n_start_req_16; } case kMatchPause: { return s_n_llhttp__internal__n_start_req_15; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; - } - } - /* UNREACHABLE */; - abort(); - } - case s_n_llhttp__internal__n_start_req_16: - s_n_llhttp__internal__n_start_req_16: { - llparse_match_t match_seq; - - if (p == endp) { - return s_n_llhttp__internal__n_start_req_16; - } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob26, 3); - p = match_seq.current; - switch (match_seq.status) { - case kMatchComplete: { - p++; - match = 23; - goto s_n_llhttp__internal__n_invoke_store_method_1; - } - case kMatchPause: { - return s_n_llhttp__internal__n_start_req_16; - } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; @@ -3729,19 +3830,19 @@ static llparse_state_t llhttp__internal__run( if (p == endp) { return s_n_llhttp__internal__n_start_req_18; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob27, 7); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob26, 3); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 21; + match = 2; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { return s_n_llhttp__internal__n_start_req_18; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; @@ -3754,19 +3855,19 @@ static llparse_state_t llhttp__internal__run( if (p == endp) { return s_n_llhttp__internal__n_start_req_20; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob28, 6); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob27, 2); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 30; + match = 31; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { return s_n_llhttp__internal__n_start_req_20; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; @@ -3774,17 +3875,24 @@ static llparse_state_t llhttp__internal__run( } case s_n_llhttp__internal__n_start_req_21: s_n_llhttp__internal__n_start_req_21: { + llparse_match_t match_seq; + if (p == endp) { return s_n_llhttp__internal__n_start_req_21; } - switch (*p) { - case 'L': { + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob28, 2); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - match = 10; + match = 9; goto s_n_llhttp__internal__n_invoke_store_method_1; } - default: { - goto s_n_llhttp__internal__n_error_53; + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_21; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; @@ -3796,7 +3904,7 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_19; } switch (*p) { - case 'A': { + case 'I': { p++; goto s_n_llhttp__internal__n_start_req_20; } @@ -3805,157 +3913,125 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_start_req_21; } default: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_17: - s_n_llhttp__internal__n_start_req_17: { + case s_n_llhttp__internal__n_start_req_23: + s_n_llhttp__internal__n_start_req_23: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_start_req_17; + return s_n_llhttp__internal__n_start_req_23; } - switch (*p) { - case 'A': { + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob29, 6); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - goto s_n_llhttp__internal__n_start_req_18; + match = 24; + goto s_n_llhttp__internal__n_invoke_store_method_1; } - case 'C': { - p++; - goto s_n_llhttp__internal__n_start_req_19; + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_23; } - default: { - goto s_n_llhttp__internal__n_error_53; + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_22: - s_n_llhttp__internal__n_start_req_22: { + case s_n_llhttp__internal__n_start_req_24: + s_n_llhttp__internal__n_start_req_24: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_22; + return s_n_llhttp__internal__n_start_req_24; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob29, 2); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob30, 3); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 11; + match = 23; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_22; + return s_n_llhttp__internal__n_start_req_24; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; - } - } - /* UNREACHABLE */; - abort(); - } - case s_n_llhttp__internal__n_start_req_14: - s_n_llhttp__internal__n_start_req_14: { - if (p == endp) { - return s_n_llhttp__internal__n_start_req_14; - } - switch (*p) { - case '-': { - p++; - goto s_n_llhttp__internal__n_start_req_15; - } - case 'E': { - p++; - goto s_n_llhttp__internal__n_start_req_16; - } - case 'K': { - p++; - goto s_n_llhttp__internal__n_start_req_17; - } - case 'O': { - p++; - goto s_n_llhttp__internal__n_start_req_22; - } - default: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_23: - s_n_llhttp__internal__n_start_req_23: { + case s_n_llhttp__internal__n_start_req_26: + s_n_llhttp__internal__n_start_req_26: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_23; + return s_n_llhttp__internal__n_start_req_26; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob30, 5); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob31, 7); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 25; + match = 21; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_23; + return s_n_llhttp__internal__n_start_req_26; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_24: - s_n_llhttp__internal__n_start_req_24: { + case s_n_llhttp__internal__n_start_req_28: + s_n_llhttp__internal__n_start_req_28: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_24; + return s_n_llhttp__internal__n_start_req_28; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob31, 6); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob32, 6); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 6; + match = 30; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_24; + return s_n_llhttp__internal__n_start_req_28; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_26: - s_n_llhttp__internal__n_start_req_26: { - llparse_match_t match_seq; - + case s_n_llhttp__internal__n_start_req_29: + s_n_llhttp__internal__n_start_req_29: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_26; + return s_n_llhttp__internal__n_start_req_29; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob32, 3); - p = match_seq.current; - switch (match_seq.status) { - case kMatchComplete: { + switch (*p) { + case 'L': { p++; - match = 28; + match = 10; goto s_n_llhttp__internal__n_invoke_store_method_1; } - case kMatchPause: { - return s_n_llhttp__internal__n_start_req_26; - } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + default: { + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; @@ -3963,210 +4039,216 @@ static llparse_state_t llhttp__internal__run( } case s_n_llhttp__internal__n_start_req_27: s_n_llhttp__internal__n_start_req_27: { - llparse_match_t match_seq; - if (p == endp) { return s_n_llhttp__internal__n_start_req_27; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob33, 2); - p = match_seq.current; - switch (match_seq.status) { - case kMatchComplete: { + switch (*p) { + case 'A': { p++; - match = 3; - goto s_n_llhttp__internal__n_invoke_store_method_1; + goto s_n_llhttp__internal__n_start_req_28; } - case kMatchPause: { - return s_n_llhttp__internal__n_start_req_27; + case 'O': { + p++; + goto s_n_llhttp__internal__n_start_req_29; } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + default: { + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_31: - s_n_llhttp__internal__n_start_req_31: { - llparse_match_t match_seq; - + case s_n_llhttp__internal__n_start_req_25: + s_n_llhttp__internal__n_start_req_25: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_31; + return s_n_llhttp__internal__n_start_req_25; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob34, 3); - p = match_seq.current; - switch (match_seq.status) { - case kMatchComplete: { + switch (*p) { + case 'A': { p++; - match = 12; - goto s_n_llhttp__internal__n_invoke_store_method_1; + goto s_n_llhttp__internal__n_start_req_26; } - case kMatchPause: { - return s_n_llhttp__internal__n_start_req_31; + case 'C': { + p++; + goto s_n_llhttp__internal__n_start_req_27; } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + default: { + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_32: - s_n_llhttp__internal__n_start_req_32: { + case s_n_llhttp__internal__n_start_req_30: + s_n_llhttp__internal__n_start_req_30: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_32; + return s_n_llhttp__internal__n_start_req_30; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob35, 4); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob33, 2); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 13; + match = 11; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_32; + return s_n_llhttp__internal__n_start_req_30; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_30: - s_n_llhttp__internal__n_start_req_30: { + case s_n_llhttp__internal__n_start_req_22: + s_n_llhttp__internal__n_start_req_22: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_30; + return s_n_llhttp__internal__n_start_req_22; } switch (*p) { - case 'F': { + case '-': { p++; - goto s_n_llhttp__internal__n_start_req_31; + goto s_n_llhttp__internal__n_start_req_23; } - case 'P': { + case 'E': { p++; - goto s_n_llhttp__internal__n_start_req_32; + goto s_n_llhttp__internal__n_start_req_24; + } + case 'K': { + p++; + goto s_n_llhttp__internal__n_start_req_25; + } + case 'O': { + p++; + goto s_n_llhttp__internal__n_start_req_30; } default: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_29: - s_n_llhttp__internal__n_start_req_29: { + case s_n_llhttp__internal__n_start_req_31: + s_n_llhttp__internal__n_start_req_31: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_start_req_29; + return s_n_llhttp__internal__n_start_req_31; } - switch (*p) { - case 'P': { + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob34, 5); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - goto s_n_llhttp__internal__n_start_req_30; + match = 25; + goto s_n_llhttp__internal__n_invoke_store_method_1; } - default: { - goto s_n_llhttp__internal__n_error_53; + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_31; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_28: - s_n_llhttp__internal__n_start_req_28: { + case s_n_llhttp__internal__n_start_req_32: + s_n_llhttp__internal__n_start_req_32: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_start_req_28; + return s_n_llhttp__internal__n_start_req_32; } - switch (*p) { - case 'I': { + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob35, 6); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - match = 34; + match = 6; goto s_n_llhttp__internal__n_invoke_store_method_1; } - case 'O': { - p++; - goto s_n_llhttp__internal__n_start_req_29; + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_32; } - default: { - goto s_n_llhttp__internal__n_error_53; + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_34: - s_n_llhttp__internal__n_start_req_34: { + case s_n_llhttp__internal__n_start_req_35: + s_n_llhttp__internal__n_start_req_35: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_34; + return s_n_llhttp__internal__n_start_req_35; } match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob36, 2); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 29; + match = 28; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_34; + return s_n_llhttp__internal__n_start_req_35; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_33: - s_n_llhttp__internal__n_start_req_33: { + case s_n_llhttp__internal__n_start_req_36: + s_n_llhttp__internal__n_start_req_36: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_start_req_33; + return s_n_llhttp__internal__n_start_req_36; } - switch (*p) { - case 'R': { - p++; - goto s_n_llhttp__internal__n_start_req_34; - } - case 'T': { + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob37, 2); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - match = 4; + match = 39; goto s_n_llhttp__internal__n_invoke_store_method_1; } - default: { - goto s_n_llhttp__internal__n_error_53; + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_36; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_25: - s_n_llhttp__internal__n_start_req_25: { + case s_n_llhttp__internal__n_start_req_34: + s_n_llhttp__internal__n_start_req_34: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_25; + return s_n_llhttp__internal__n_start_req_34; } switch (*p) { - case 'A': { - p++; - goto s_n_llhttp__internal__n_start_req_26; - } - case 'O': { - p++; - goto s_n_llhttp__internal__n_start_req_27; - } - case 'R': { + case 'T': { p++; - goto s_n_llhttp__internal__n_start_req_28; + goto s_n_llhttp__internal__n_start_req_35; } case 'U': { p++; - goto s_n_llhttp__internal__n_start_req_33; + goto s_n_llhttp__internal__n_start_req_36; } default: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; @@ -4179,19 +4261,19 @@ static llparse_state_t llhttp__internal__run( if (p == endp) { return s_n_llhttp__internal__n_start_req_37; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob37, 3); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob38, 2); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 17; + match = 38; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { return s_n_llhttp__internal__n_start_req_37; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; @@ -4204,57 +4286,90 @@ static llparse_state_t llhttp__internal__run( if (p == endp) { return s_n_llhttp__internal__n_start_req_38; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob38, 3); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob39, 2); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 20; + match = 3; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { return s_n_llhttp__internal__n_start_req_38; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_36: - s_n_llhttp__internal__n_start_req_36: { + case s_n_llhttp__internal__n_start_req_42: + s_n_llhttp__internal__n_start_req_42: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_start_req_36; + return s_n_llhttp__internal__n_start_req_42; } - switch (*p) { - case 'B': { + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob40, 3); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - goto s_n_llhttp__internal__n_start_req_37; + match = 12; + goto s_n_llhttp__internal__n_invoke_store_method_1; } - case 'P': { + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_42; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_55; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_start_req_43: + s_n_llhttp__internal__n_start_req_43: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_start_req_43; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob41, 4); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - goto s_n_llhttp__internal__n_start_req_38; + match = 13; + goto s_n_llhttp__internal__n_invoke_store_method_1; } - default: { - goto s_n_llhttp__internal__n_error_53; + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_43; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_35: - s_n_llhttp__internal__n_start_req_35: { + case s_n_llhttp__internal__n_start_req_41: + s_n_llhttp__internal__n_start_req_41: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_35; + return s_n_llhttp__internal__n_start_req_41; } switch (*p) { - case 'E': { + case 'F': { p++; - goto s_n_llhttp__internal__n_start_req_36; + goto s_n_llhttp__internal__n_start_req_42; + } + case 'P': { + p++; + goto s_n_llhttp__internal__n_start_req_43; } default: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; @@ -4262,199 +4377,218 @@ static llparse_state_t llhttp__internal__run( } case s_n_llhttp__internal__n_start_req_40: s_n_llhttp__internal__n_start_req_40: { - llparse_match_t match_seq; - if (p == endp) { return s_n_llhttp__internal__n_start_req_40; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob39, 4); - p = match_seq.current; - switch (match_seq.status) { - case kMatchComplete: { + switch (*p) { + case 'P': { p++; - match = 14; + goto s_n_llhttp__internal__n_start_req_41; + } + default: { + goto s_n_llhttp__internal__n_error_55; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_start_req_39: + s_n_llhttp__internal__n_start_req_39: { + if (p == endp) { + return s_n_llhttp__internal__n_start_req_39; + } + switch (*p) { + case 'I': { + p++; + match = 34; goto s_n_llhttp__internal__n_invoke_store_method_1; } - case kMatchPause: { - return s_n_llhttp__internal__n_start_req_40; + case 'O': { + p++; + goto s_n_llhttp__internal__n_start_req_40; } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + default: { + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_41: - s_n_llhttp__internal__n_start_req_41: { + case s_n_llhttp__internal__n_start_req_45: + s_n_llhttp__internal__n_start_req_45: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_41; + return s_n_llhttp__internal__n_start_req_45; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob40, 4); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob42, 2); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 33; + match = 29; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_41; + return s_n_llhttp__internal__n_start_req_45; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_42: - s_n_llhttp__internal__n_start_req_42: { - llparse_match_t match_seq; - + case s_n_llhttp__internal__n_start_req_44: + s_n_llhttp__internal__n_start_req_44: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_42; + return s_n_llhttp__internal__n_start_req_44; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob41, 7); - p = match_seq.current; - switch (match_seq.status) { - case kMatchComplete: { + switch (*p) { + case 'R': { p++; - match = 26; - goto s_n_llhttp__internal__n_invoke_store_method_1; + goto s_n_llhttp__internal__n_start_req_45; } - case kMatchPause: { - return s_n_llhttp__internal__n_start_req_42; + case 'T': { + p++; + match = 4; + goto s_n_llhttp__internal__n_invoke_store_method_1; } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + default: { + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_39: - s_n_llhttp__internal__n_start_req_39: { + case s_n_llhttp__internal__n_start_req_33: + s_n_llhttp__internal__n_start_req_33: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_39; + return s_n_llhttp__internal__n_start_req_33; } switch (*p) { - case 'E': { + case 'A': { p++; - goto s_n_llhttp__internal__n_start_req_40; + goto s_n_llhttp__internal__n_start_req_34; + } + case 'L': { + p++; + goto s_n_llhttp__internal__n_start_req_37; } case 'O': { p++; - goto s_n_llhttp__internal__n_start_req_41; + goto s_n_llhttp__internal__n_start_req_38; + } + case 'R': { + p++; + goto s_n_llhttp__internal__n_start_req_39; } case 'U': { p++; - goto s_n_llhttp__internal__n_start_req_42; + goto s_n_llhttp__internal__n_start_req_44; } default: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_43: - s_n_llhttp__internal__n_start_req_43: { + case s_n_llhttp__internal__n_start_req_48: + s_n_llhttp__internal__n_start_req_48: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_43; + return s_n_llhttp__internal__n_start_req_48; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob42, 4); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob43, 3); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 7; + match = 17; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_43; + return s_n_llhttp__internal__n_start_req_48; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_46: - s_n_llhttp__internal__n_start_req_46: { + case s_n_llhttp__internal__n_start_req_49: + s_n_llhttp__internal__n_start_req_49: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_46; + return s_n_llhttp__internal__n_start_req_49; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob43, 3); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob44, 3); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 18; + match = 44; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_46; + return s_n_llhttp__internal__n_start_req_49; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_48: - s_n_llhttp__internal__n_start_req_48: { + case s_n_llhttp__internal__n_start_req_50: + s_n_llhttp__internal__n_start_req_50: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_48; + return s_n_llhttp__internal__n_start_req_50; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob44, 2); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob45, 5); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 32; + match = 43; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_48; + return s_n_llhttp__internal__n_start_req_50; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_49: - s_n_llhttp__internal__n_start_req_49: { + case s_n_llhttp__internal__n_start_req_51: + s_n_llhttp__internal__n_start_req_51: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_49; + return s_n_llhttp__internal__n_start_req_51; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob45, 2); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob46, 3); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 15; + match = 20; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_49; + return s_n_llhttp__internal__n_start_req_51; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; @@ -4466,582 +4600,963 @@ static llparse_state_t llhttp__internal__run( return s_n_llhttp__internal__n_start_req_47; } switch (*p) { - case 'I': { + case 'B': { p++; goto s_n_llhttp__internal__n_start_req_48; } - case 'O': { + case 'C': { p++; goto s_n_llhttp__internal__n_start_req_49; } + case 'D': { + p++; + goto s_n_llhttp__internal__n_start_req_50; + } + case 'P': { + p++; + goto s_n_llhttp__internal__n_start_req_51; + } default: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_50: - s_n_llhttp__internal__n_start_req_50: { + case s_n_llhttp__internal__n_start_req_46: + s_n_llhttp__internal__n_start_req_46: { + if (p == endp) { + return s_n_llhttp__internal__n_start_req_46; + } + switch (*p) { + case 'E': { + p++; + goto s_n_llhttp__internal__n_start_req_47; + } + default: { + goto s_n_llhttp__internal__n_error_55; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_start_req_54: + s_n_llhttp__internal__n_start_req_54: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_50; + return s_n_llhttp__internal__n_start_req_54; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob46, 8); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob47, 3); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 27; + match = 14; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_50; + return s_n_llhttp__internal__n_start_req_54; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_45: - s_n_llhttp__internal__n_start_req_45: { + case s_n_llhttp__internal__n_start_req_56: + s_n_llhttp__internal__n_start_req_56: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_45; + return s_n_llhttp__internal__n_start_req_56; } switch (*p) { - case 'B': { - p++; - goto s_n_llhttp__internal__n_start_req_46; - } - case 'L': { - p++; - goto s_n_llhttp__internal__n_start_req_47; - } - case 'S': { + case 'P': { p++; - goto s_n_llhttp__internal__n_start_req_50; + match = 37; + goto s_n_llhttp__internal__n_invoke_store_method_1; } default: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_44: - s_n_llhttp__internal__n_start_req_44: { + case s_n_llhttp__internal__n_start_req_57: + s_n_llhttp__internal__n_start_req_57: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_start_req_44; + return s_n_llhttp__internal__n_start_req_57; } - switch (*p) { - case 'N': { + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob48, 9); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - goto s_n_llhttp__internal__n_start_req_45; + match = 42; + goto s_n_llhttp__internal__n_invoke_store_method_1; } - default: { - goto s_n_llhttp__internal__n_error_53; + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_57; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req: - s_n_llhttp__internal__n_start_req: { + case s_n_llhttp__internal__n_start_req_55: + s_n_llhttp__internal__n_start_req_55: { if (p == endp) { - return s_n_llhttp__internal__n_start_req; + return s_n_llhttp__internal__n_start_req_55; } switch (*p) { - case 'A': { + case 'U': { p++; - goto s_n_llhttp__internal__n_start_req_1; + goto s_n_llhttp__internal__n_start_req_56; } - case 'B': { + case '_': { p++; - goto s_n_llhttp__internal__n_start_req_2; + goto s_n_llhttp__internal__n_start_req_57; } - case 'C': { - p++; - goto s_n_llhttp__internal__n_start_req_3; + default: { + goto s_n_llhttp__internal__n_error_55; } - case 'D': { + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_start_req_53: + s_n_llhttp__internal__n_start_req_53: { + if (p == endp) { + return s_n_llhttp__internal__n_start_req_53; + } + switch (*p) { + case 'A': { p++; - goto s_n_llhttp__internal__n_start_req_8; + goto s_n_llhttp__internal__n_start_req_54; } - case 'G': { + case 'T': { p++; - goto s_n_llhttp__internal__n_start_req_9; + goto s_n_llhttp__internal__n_start_req_55; } - case 'H': { - p++; - goto s_n_llhttp__internal__n_start_req_10; + default: { + goto s_n_llhttp__internal__n_error_55; } - case 'L': { + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_start_req_58: + s_n_llhttp__internal__n_start_req_58: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_start_req_58; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob49, 4); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - goto s_n_llhttp__internal__n_start_req_11; + match = 33; + goto s_n_llhttp__internal__n_invoke_store_method_1; } - case 'M': { - p++; - goto s_n_llhttp__internal__n_start_req_14; + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_58; } - case 'N': { - p++; - goto s_n_llhttp__internal__n_start_req_23; + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_55; } - case 'O': { + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_start_req_59: + s_n_llhttp__internal__n_start_req_59: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_start_req_59; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob50, 7); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - goto s_n_llhttp__internal__n_start_req_24; + match = 26; + goto s_n_llhttp__internal__n_invoke_store_method_1; } - case 'P': { - p++; - goto s_n_llhttp__internal__n_start_req_25; + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_59; } - case 'R': { - p++; - goto s_n_llhttp__internal__n_start_req_35; + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_55; } - case 'S': { + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_start_req_52: + s_n_llhttp__internal__n_start_req_52: { + if (p == endp) { + return s_n_llhttp__internal__n_start_req_52; + } + switch (*p) { + case 'E': { p++; - goto s_n_llhttp__internal__n_start_req_39; + goto s_n_llhttp__internal__n_start_req_53; } - case 'T': { + case 'O': { p++; - goto s_n_llhttp__internal__n_start_req_43; + goto s_n_llhttp__internal__n_start_req_58; } case 'U': { p++; - goto s_n_llhttp__internal__n_start_req_44; + goto s_n_llhttp__internal__n_start_req_59; } default: { - goto s_n_llhttp__internal__n_error_53; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_res_line_almost_done: - s_n_llhttp__internal__n_res_line_almost_done: { + case s_n_llhttp__internal__n_start_req_61: + s_n_llhttp__internal__n_start_req_61: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_res_line_almost_done; + return s_n_llhttp__internal__n_start_req_61; } - switch (*p) { - case 10: { + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob51, 6); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - goto s_n_llhttp__internal__n_header_field_start; + match = 40; + goto s_n_llhttp__internal__n_invoke_store_method_1; } - default: { - goto s_n_llhttp__internal__n_error_46; + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_61; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_res_status: - s_n_llhttp__internal__n_res_status: { + case s_n_llhttp__internal__n_start_req_62: + s_n_llhttp__internal__n_start_req_62: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_res_status; + return s_n_llhttp__internal__n_start_req_62; } - switch (*p) { - case 10: { - goto s_n_llhttp__internal__n_span_end_llhttp__on_status; + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob52, 3); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 7; + goto s_n_llhttp__internal__n_invoke_store_method_1; } - case 13: { - goto s_n_llhttp__internal__n_span_end_llhttp__on_status_1; + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_62; } - default: { - p++; - goto s_n_llhttp__internal__n_res_status; + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_span_start_llhttp__on_status: - s_n_llhttp__internal__n_span_start_llhttp__on_status: { - if (p == endp) { - return s_n_llhttp__internal__n_span_start_llhttp__on_status; - } - state->_span_pos0 = (void*) p; - state->_span_cb0 = llhttp__on_status; - goto s_n_llhttp__internal__n_res_status; - /* UNREACHABLE */; - abort(); - } - case s_n_llhttp__internal__n_res_status_start: - s_n_llhttp__internal__n_res_status_start: { + case s_n_llhttp__internal__n_start_req_60: + s_n_llhttp__internal__n_start_req_60: { if (p == endp) { - return s_n_llhttp__internal__n_res_status_start; + return s_n_llhttp__internal__n_start_req_60; } switch (*p) { - case 10: { + case 'E': { p++; - goto s_n_llhttp__internal__n_header_field_start; + goto s_n_llhttp__internal__n_start_req_61; } - case 13: { + case 'R': { p++; - goto s_n_llhttp__internal__n_res_line_almost_done; + goto s_n_llhttp__internal__n_start_req_62; } default: { - goto s_n_llhttp__internal__n_span_start_llhttp__on_status; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_res_status_code_otherwise: - s_n_llhttp__internal__n_res_status_code_otherwise: { + case s_n_llhttp__internal__n_start_req_65: + s_n_llhttp__internal__n_start_req_65: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_res_status_code_otherwise; + return s_n_llhttp__internal__n_start_req_65; } - switch (*p) { - case 10: { - goto s_n_llhttp__internal__n_res_status_start; - } - case 13: { - goto s_n_llhttp__internal__n_res_status_start; - } - case ' ': { + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob53, 3); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - goto s_n_llhttp__internal__n_res_status_start; + match = 18; + goto s_n_llhttp__internal__n_invoke_store_method_1; } - default: { - goto s_n_llhttp__internal__n_error_47; + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_65; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_res_status_code: - s_n_llhttp__internal__n_res_status_code: { + case s_n_llhttp__internal__n_start_req_67: + s_n_llhttp__internal__n_start_req_67: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_res_status_code; + return s_n_llhttp__internal__n_start_req_67; } - switch (*p) { - case '0': { - p++; - match = 0; - goto s_n_llhttp__internal__n_invoke_mul_add_status_code; - } - case '1': { - p++; - match = 1; - goto s_n_llhttp__internal__n_invoke_mul_add_status_code; - } - case '2': { + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob54, 2); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - match = 2; - goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + match = 32; + goto s_n_llhttp__internal__n_invoke_store_method_1; } - case '3': { - p++; - match = 3; - goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_67; } - case '4': { - p++; - match = 4; - goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_55; } - case '5': { + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_start_req_68: + s_n_llhttp__internal__n_start_req_68: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_start_req_68; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob55, 2); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - match = 5; - goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + match = 15; + goto s_n_llhttp__internal__n_invoke_store_method_1; } - case '6': { - p++; - match = 6; - goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_68; } - case '7': { - p++; - match = 7; - goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_55; } - case '8': { + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_start_req_66: + s_n_llhttp__internal__n_start_req_66: { + if (p == endp) { + return s_n_llhttp__internal__n_start_req_66; + } + switch (*p) { + case 'I': { p++; - match = 8; - goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + goto s_n_llhttp__internal__n_start_req_67; } - case '9': { + case 'O': { p++; - match = 9; - goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + goto s_n_llhttp__internal__n_start_req_68; } default: { - goto s_n_llhttp__internal__n_res_status_code_otherwise; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_res_http_end: - s_n_llhttp__internal__n_res_http_end: { + case s_n_llhttp__internal__n_start_req_69: + s_n_llhttp__internal__n_start_req_69: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_res_http_end; + return s_n_llhttp__internal__n_start_req_69; } - switch (*p) { - case ' ': { + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob56, 8); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - goto s_n_llhttp__internal__n_invoke_update_status_code; + match = 27; + goto s_n_llhttp__internal__n_invoke_store_method_1; } - default: { - goto s_n_llhttp__internal__n_error_48; + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_69; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_res_http_minor: - s_n_llhttp__internal__n_res_http_minor: { + case s_n_llhttp__internal__n_start_req_64: + s_n_llhttp__internal__n_start_req_64: { if (p == endp) { - return s_n_llhttp__internal__n_res_http_minor; + return s_n_llhttp__internal__n_start_req_64; } switch (*p) { - case '0': { - p++; - match = 0; - goto s_n_llhttp__internal__n_invoke_store_http_minor_1; - } - case '1': { - p++; - match = 1; - goto s_n_llhttp__internal__n_invoke_store_http_minor_1; - } - case '2': { - p++; - match = 2; - goto s_n_llhttp__internal__n_invoke_store_http_minor_1; - } - case '3': { - p++; - match = 3; - goto s_n_llhttp__internal__n_invoke_store_http_minor_1; - } - case '4': { - p++; - match = 4; - goto s_n_llhttp__internal__n_invoke_store_http_minor_1; - } - case '5': { - p++; - match = 5; - goto s_n_llhttp__internal__n_invoke_store_http_minor_1; - } - case '6': { - p++; - match = 6; - goto s_n_llhttp__internal__n_invoke_store_http_minor_1; - } - case '7': { + case 'B': { p++; - match = 7; - goto s_n_llhttp__internal__n_invoke_store_http_minor_1; + goto s_n_llhttp__internal__n_start_req_65; } - case '8': { + case 'L': { p++; - match = 8; - goto s_n_llhttp__internal__n_invoke_store_http_minor_1; + goto s_n_llhttp__internal__n_start_req_66; } - case '9': { + case 'S': { p++; - match = 9; - goto s_n_llhttp__internal__n_invoke_store_http_minor_1; + goto s_n_llhttp__internal__n_start_req_69; } default: { - goto s_n_llhttp__internal__n_error_49; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_res_http_dot: - s_n_llhttp__internal__n_res_http_dot: { + case s_n_llhttp__internal__n_start_req_63: + s_n_llhttp__internal__n_start_req_63: { if (p == endp) { - return s_n_llhttp__internal__n_res_http_dot; + return s_n_llhttp__internal__n_start_req_63; } switch (*p) { - case '.': { + case 'N': { p++; - goto s_n_llhttp__internal__n_res_http_minor; + goto s_n_llhttp__internal__n_start_req_64; } default: { - goto s_n_llhttp__internal__n_error_50; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_res_http_major: - s_n_llhttp__internal__n_res_http_major: { + case s_n_llhttp__internal__n_start_req: + s_n_llhttp__internal__n_start_req: { if (p == endp) { - return s_n_llhttp__internal__n_res_http_major; + return s_n_llhttp__internal__n_start_req; } switch (*p) { - case '0': { + case 'A': { p++; - match = 0; - goto s_n_llhttp__internal__n_invoke_store_http_major_1; + goto s_n_llhttp__internal__n_start_req_1; } - case '1': { + case 'B': { p++; - match = 1; - goto s_n_llhttp__internal__n_invoke_store_http_major_1; + goto s_n_llhttp__internal__n_start_req_4; } - case '2': { + case 'C': { p++; - match = 2; - goto s_n_llhttp__internal__n_invoke_store_http_major_1; + goto s_n_llhttp__internal__n_start_req_5; } - case '3': { + case 'D': { p++; - match = 3; - goto s_n_llhttp__internal__n_invoke_store_http_major_1; + goto s_n_llhttp__internal__n_start_req_10; } - case '4': { + case 'F': { p++; - match = 4; - goto s_n_llhttp__internal__n_invoke_store_http_major_1; + goto s_n_llhttp__internal__n_start_req_14; } - case '5': { + case 'G': { p++; - match = 5; - goto s_n_llhttp__internal__n_invoke_store_http_major_1; + goto s_n_llhttp__internal__n_start_req_15; } - case '6': { + case 'H': { p++; - match = 6; - goto s_n_llhttp__internal__n_invoke_store_http_major_1; + goto s_n_llhttp__internal__n_start_req_18; } - case '7': { + case 'L': { p++; - match = 7; - goto s_n_llhttp__internal__n_invoke_store_http_major_1; + goto s_n_llhttp__internal__n_start_req_19; } - case '8': { + case 'M': { p++; - match = 8; - goto s_n_llhttp__internal__n_invoke_store_http_major_1; + goto s_n_llhttp__internal__n_start_req_22; } - case '9': { + case 'N': { p++; - match = 9; - goto s_n_llhttp__internal__n_invoke_store_http_major_1; + goto s_n_llhttp__internal__n_start_req_31; + } + case 'O': { + p++; + goto s_n_llhttp__internal__n_start_req_32; + } + case 'P': { + p++; + goto s_n_llhttp__internal__n_start_req_33; + } + case 'R': { + p++; + goto s_n_llhttp__internal__n_start_req_46; + } + case 'S': { + p++; + goto s_n_llhttp__internal__n_start_req_52; + } + case 'T': { + p++; + goto s_n_llhttp__internal__n_start_req_60; + } + case 'U': { + p++; + goto s_n_llhttp__internal__n_start_req_63; } default: { - goto s_n_llhttp__internal__n_error_51; + goto s_n_llhttp__internal__n_error_55; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_res: - s_n_llhttp__internal__n_start_res: { - llparse_match_t match_seq; - + 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_start_res; + return s_n_llhttp__internal__n_res_line_almost_done; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob47, 5); - p = match_seq.current; - switch (match_seq.status) { - case kMatchComplete: { + switch (*p) { + case 10: { p++; - goto s_n_llhttp__internal__n_res_http_major; - } - case kMatchPause: { - return s_n_llhttp__internal__n_start_res; + goto s_n_llhttp__internal__n_header_field_start; } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_54; + default: { + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_req_or_res_method_2: - s_n_llhttp__internal__n_req_or_res_method_2: { - llparse_match_t match_seq; - + case s_n_llhttp__internal__n_res_status: + s_n_llhttp__internal__n_res_status: { if (p == endp) { - return s_n_llhttp__internal__n_req_or_res_method_2; + return s_n_llhttp__internal__n_res_status; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob48, 2); - p = match_seq.current; - switch (match_seq.status) { - case kMatchComplete: { - p++; - match = 2; - goto s_n_llhttp__internal__n_invoke_store_method; + switch (*p) { + case 10: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_status; } - case kMatchPause: { - return s_n_llhttp__internal__n_req_or_res_method_2; + case 13: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_status_1; } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_52; + default: { + p++; + goto s_n_llhttp__internal__n_res_status; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_req_or_res_method_3: - s_n_llhttp__internal__n_req_or_res_method_3: { - llparse_match_t match_seq; - + case s_n_llhttp__internal__n_span_start_llhttp__on_status: + s_n_llhttp__internal__n_span_start_llhttp__on_status: { if (p == endp) { - return s_n_llhttp__internal__n_req_or_res_method_3; - } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob49, 3); - p = match_seq.current; - switch (match_seq.status) { - case kMatchComplete: { - p++; - goto s_n_llhttp__internal__n_invoke_update_type_1; - } - case kMatchPause: { - return s_n_llhttp__internal__n_req_or_res_method_3; - } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_52; - } + return s_n_llhttp__internal__n_span_start_llhttp__on_status; } + state->_span_pos0 = (void*) p; + state->_span_cb0 = llhttp__on_status; + goto s_n_llhttp__internal__n_res_status; /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_req_or_res_method_1: - s_n_llhttp__internal__n_req_or_res_method_1: { + case s_n_llhttp__internal__n_res_status_start: + s_n_llhttp__internal__n_res_status_start: { if (p == endp) { - return s_n_llhttp__internal__n_req_or_res_method_1; + return s_n_llhttp__internal__n_res_status_start; } switch (*p) { - case 'E': { + case 10: { p++; - goto s_n_llhttp__internal__n_req_or_res_method_2; + goto s_n_llhttp__internal__n_header_field_start; } - case 'T': { + case 13: { p++; - goto s_n_llhttp__internal__n_req_or_res_method_3; + goto s_n_llhttp__internal__n_res_line_almost_done; } default: { - goto s_n_llhttp__internal__n_error_52; + goto s_n_llhttp__internal__n_span_start_llhttp__on_status; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_req_or_res_method: - s_n_llhttp__internal__n_req_or_res_method: { + case s_n_llhttp__internal__n_res_status_code_otherwise: + s_n_llhttp__internal__n_res_status_code_otherwise: { if (p == endp) { - return s_n_llhttp__internal__n_req_or_res_method; + return s_n_llhttp__internal__n_res_status_code_otherwise; } switch (*p) { - case 'H': { - p++; - goto s_n_llhttp__internal__n_req_or_res_method_1; + case 10: { + goto s_n_llhttp__internal__n_res_status_start; } - default: { - goto s_n_llhttp__internal__n_error_52; + case 13: { + goto s_n_llhttp__internal__n_res_status_start; + } + case ' ': { + p++; + goto s_n_llhttp__internal__n_res_status_start; + } + default: { + goto s_n_llhttp__internal__n_error_49; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_res_status_code: + s_n_llhttp__internal__n_res_status_code: { + if (p == endp) { + return s_n_llhttp__internal__n_res_status_code; + } + switch (*p) { + case '0': { + p++; + match = 0; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + } + case '1': { + p++; + match = 1; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + } + case '2': { + p++; + match = 2; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + } + case '3': { + p++; + match = 3; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + } + case '4': { + p++; + match = 4; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + } + case '5': { + p++; + match = 5; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + } + case '6': { + p++; + match = 6; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + } + case '7': { + p++; + match = 7; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + } + case '8': { + p++; + match = 8; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + } + case '9': { + p++; + match = 9; + goto s_n_llhttp__internal__n_invoke_mul_add_status_code; + } + default: { + goto s_n_llhttp__internal__n_res_status_code_otherwise; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_res_http_end: + s_n_llhttp__internal__n_res_http_end: { + if (p == endp) { + return s_n_llhttp__internal__n_res_http_end; + } + switch (*p) { + case ' ': { + p++; + goto s_n_llhttp__internal__n_invoke_update_status_code; + } + default: { + goto s_n_llhttp__internal__n_error_50; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_res_http_minor: + s_n_llhttp__internal__n_res_http_minor: { + if (p == endp) { + return s_n_llhttp__internal__n_res_http_minor; + } + switch (*p) { + case '0': { + p++; + match = 0; + goto s_n_llhttp__internal__n_invoke_store_http_minor_1; + } + case '1': { + p++; + match = 1; + goto s_n_llhttp__internal__n_invoke_store_http_minor_1; + } + case '2': { + p++; + match = 2; + goto s_n_llhttp__internal__n_invoke_store_http_minor_1; + } + case '3': { + p++; + match = 3; + goto s_n_llhttp__internal__n_invoke_store_http_minor_1; + } + case '4': { + p++; + match = 4; + goto s_n_llhttp__internal__n_invoke_store_http_minor_1; + } + case '5': { + p++; + match = 5; + goto s_n_llhttp__internal__n_invoke_store_http_minor_1; + } + case '6': { + p++; + match = 6; + goto s_n_llhttp__internal__n_invoke_store_http_minor_1; + } + case '7': { + p++; + match = 7; + goto s_n_llhttp__internal__n_invoke_store_http_minor_1; + } + case '8': { + p++; + match = 8; + goto s_n_llhttp__internal__n_invoke_store_http_minor_1; + } + case '9': { + p++; + match = 9; + goto s_n_llhttp__internal__n_invoke_store_http_minor_1; + } + default: { + goto s_n_llhttp__internal__n_error_51; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_res_http_dot: + s_n_llhttp__internal__n_res_http_dot: { + if (p == endp) { + return s_n_llhttp__internal__n_res_http_dot; + } + switch (*p) { + case '.': { + p++; + goto s_n_llhttp__internal__n_res_http_minor; + } + default: { + goto s_n_llhttp__internal__n_error_52; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_res_http_major: + s_n_llhttp__internal__n_res_http_major: { + if (p == endp) { + return s_n_llhttp__internal__n_res_http_major; + } + switch (*p) { + case '0': { + p++; + match = 0; + goto s_n_llhttp__internal__n_invoke_store_http_major_1; + } + case '1': { + p++; + match = 1; + goto s_n_llhttp__internal__n_invoke_store_http_major_1; + } + case '2': { + p++; + match = 2; + goto s_n_llhttp__internal__n_invoke_store_http_major_1; + } + case '3': { + p++; + match = 3; + goto s_n_llhttp__internal__n_invoke_store_http_major_1; + } + case '4': { + p++; + match = 4; + goto s_n_llhttp__internal__n_invoke_store_http_major_1; + } + case '5': { + p++; + match = 5; + goto s_n_llhttp__internal__n_invoke_store_http_major_1; + } + case '6': { + p++; + match = 6; + goto s_n_llhttp__internal__n_invoke_store_http_major_1; + } + case '7': { + p++; + match = 7; + goto s_n_llhttp__internal__n_invoke_store_http_major_1; + } + case '8': { + p++; + match = 8; + goto s_n_llhttp__internal__n_invoke_store_http_major_1; + } + case '9': { + p++; + match = 9; + goto s_n_llhttp__internal__n_invoke_store_http_major_1; + } + default: { + goto s_n_llhttp__internal__n_error_53; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_start_res: + s_n_llhttp__internal__n_start_res: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_start_res; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob57, 5); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + goto s_n_llhttp__internal__n_res_http_major; + } + case kMatchPause: { + return s_n_llhttp__internal__n_start_res; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_56; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_req_or_res_method_2: + s_n_llhttp__internal__n_req_or_res_method_2: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_req_or_res_method_2; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob58, 2); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 2; + goto s_n_llhttp__internal__n_invoke_store_method; + } + case kMatchPause: { + return s_n_llhttp__internal__n_req_or_res_method_2; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_54; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_req_or_res_method_3: + s_n_llhttp__internal__n_req_or_res_method_3: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_req_or_res_method_3; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob59, 3); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + goto s_n_llhttp__internal__n_invoke_update_type_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_req_or_res_method_3; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_54; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_req_or_res_method_1: + s_n_llhttp__internal__n_req_or_res_method_1: { + if (p == endp) { + return s_n_llhttp__internal__n_req_or_res_method_1; + } + switch (*p) { + case 'E': { + p++; + goto s_n_llhttp__internal__n_req_or_res_method_2; + } + case 'T': { + p++; + goto s_n_llhttp__internal__n_req_or_res_method_3; + } + default: { + goto s_n_llhttp__internal__n_error_54; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_req_or_res_method: + s_n_llhttp__internal__n_req_or_res_method: { + if (p == endp) { + return s_n_llhttp__internal__n_req_or_res_method; + } + switch (*p) { + case 'H': { + p++; + goto s_n_llhttp__internal__n_req_or_res_method_1; + } + default: { + goto s_n_llhttp__internal__n_error_54; } } /* UNREACHABLE */; @@ -5110,7 +5625,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_40: { + s_n_llhttp__internal__n_error_42: { state->error = 0x7; state->reason = "Invalid characters in url"; state->error_pos = (const char*) p; @@ -6134,7 +6649,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_28: { + s_n_llhttp__internal__n_error_29: { state->error = 0x9; state->reason = "Expected CRLF after version"; state->error_pos = (const char*) p; @@ -6151,7 +6666,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_29: { + s_n_llhttp__internal__n_error_30: { state->error = 0x9; state->reason = "Invalid minor version"; state->error_pos = (const char*) p; @@ -6160,7 +6675,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_30: { + s_n_llhttp__internal__n_error_31: { state->error = 0x9; state->reason = "Expected dot"; state->error_pos = (const char*) p; @@ -6177,7 +6692,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_31: { + s_n_llhttp__internal__n_error_32: { state->error = 0x9; state->reason = "Invalid major version"; state->error_pos = (const char*) p; @@ -6186,7 +6701,94 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_33: { + s_n_llhttp__internal__n_error_28: { + state->error = 0x8; + state->reason = "Invalid method for HTTP/x.x request"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_load_method: { + switch (llhttp__internal__c_load_method(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_req_http_major; + case 1: + goto s_n_llhttp__internal__n_req_http_major; + case 2: + goto s_n_llhttp__internal__n_req_http_major; + case 3: + goto s_n_llhttp__internal__n_req_http_major; + case 4: + goto s_n_llhttp__internal__n_req_http_major; + case 5: + goto s_n_llhttp__internal__n_req_http_major; + case 6: + goto s_n_llhttp__internal__n_req_http_major; + case 7: + goto s_n_llhttp__internal__n_req_http_major; + case 8: + goto s_n_llhttp__internal__n_req_http_major; + case 9: + goto s_n_llhttp__internal__n_req_http_major; + case 10: + goto s_n_llhttp__internal__n_req_http_major; + case 11: + goto s_n_llhttp__internal__n_req_http_major; + case 12: + goto s_n_llhttp__internal__n_req_http_major; + case 13: + goto s_n_llhttp__internal__n_req_http_major; + case 14: + goto s_n_llhttp__internal__n_req_http_major; + case 15: + goto s_n_llhttp__internal__n_req_http_major; + case 16: + goto s_n_llhttp__internal__n_req_http_major; + case 17: + goto s_n_llhttp__internal__n_req_http_major; + case 18: + goto s_n_llhttp__internal__n_req_http_major; + case 19: + goto s_n_llhttp__internal__n_req_http_major; + case 20: + goto s_n_llhttp__internal__n_req_http_major; + case 21: + goto s_n_llhttp__internal__n_req_http_major; + case 22: + goto s_n_llhttp__internal__n_req_http_major; + case 23: + goto s_n_llhttp__internal__n_req_http_major; + case 24: + goto s_n_llhttp__internal__n_req_http_major; + case 25: + goto s_n_llhttp__internal__n_req_http_major; + case 26: + goto s_n_llhttp__internal__n_req_http_major; + case 27: + goto s_n_llhttp__internal__n_req_http_major; + case 28: + goto s_n_llhttp__internal__n_req_http_major; + case 29: + goto s_n_llhttp__internal__n_req_http_major; + case 30: + goto s_n_llhttp__internal__n_req_http_major; + case 31: + goto s_n_llhttp__internal__n_req_http_major; + case 32: + goto s_n_llhttp__internal__n_req_http_major; + case 33: + goto s_n_llhttp__internal__n_req_http_major; + case 34: + goto s_n_llhttp__internal__n_req_http_major; + default: + goto s_n_llhttp__internal__n_error_28; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_35: { state->error = 0x8; state->reason = "Expected HTTP/"; state->error_pos = (const char*) p; @@ -6195,7 +6797,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_32: { + s_n_llhttp__internal__n_error_33: { state->error = 0x8; state->reason = "Expected SOURCE method for ICE/x.x request"; state->error_pos = (const char*) p; @@ -6204,12 +6806,57 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_invoke_is_equal_method_1: { - switch (llhttp__internal__c_is_equal_method_1(state, p, endp)) { - case 0: - goto s_n_llhttp__internal__n_error_32; + s_n_llhttp__internal__n_invoke_load_method_1: { + switch (llhttp__internal__c_load_method(state, p, endp)) { + case 33: + goto s_n_llhttp__internal__n_req_http_major; default: + goto s_n_llhttp__internal__n_error_33; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_34: { + state->error = 0x8; + state->reason = "Invalid method for RTSP/x.x request"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_load_method_2: { + switch (llhttp__internal__c_load_method(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_req_http_major; + case 3: + goto s_n_llhttp__internal__n_req_http_major; + case 6: + goto s_n_llhttp__internal__n_req_http_major; + case 35: + goto s_n_llhttp__internal__n_req_http_major; + case 36: + goto s_n_llhttp__internal__n_req_http_major; + case 37: + goto s_n_llhttp__internal__n_req_http_major; + case 38: + goto s_n_llhttp__internal__n_req_http_major; + case 39: + goto s_n_llhttp__internal__n_req_http_major; + case 40: + goto s_n_llhttp__internal__n_req_http_major; + case 41: + goto s_n_llhttp__internal__n_req_http_major; + case 42: + goto s_n_llhttp__internal__n_req_http_major; + case 43: + goto s_n_llhttp__internal__n_req_http_major; + case 44: + goto s_n_llhttp__internal__n_req_http_major; + case 45: goto s_n_llhttp__internal__n_req_http_major; + default: + goto s_n_llhttp__internal__n_error_34; } /* UNREACHABLE */; abort(); @@ -6282,7 +6929,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_34: { + s_n_llhttp__internal__n_error_36: { state->error = 0x7; state->reason = "Invalid char in url fragment start"; state->error_pos = (const char*) p; @@ -6342,7 +6989,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_35: { + s_n_llhttp__internal__n_error_37: { state->error = 0x7; state->reason = "Invalid char in url query"; state->error_pos = (const char*) p; @@ -6351,7 +6998,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_36: { + s_n_llhttp__internal__n_error_38: { state->error = 0x7; state->reason = "Invalid char in url path"; state->error_pos = (const char*) p; @@ -6462,7 +7109,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_37: { + s_n_llhttp__internal__n_error_39: { state->error = 0x7; state->reason = "Double @ in url"; state->error_pos = (const char*) p; @@ -6471,7 +7118,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_38: { + s_n_llhttp__internal__n_error_40: { state->error = 0x7; state->reason = "Unexpected char in url server"; state->error_pos = (const char*) p; @@ -6480,7 +7127,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_39: { + s_n_llhttp__internal__n_error_41: { state->error = 0x7; state->reason = "Unexpected char in url server"; state->error_pos = (const char*) p; @@ -6489,7 +7136,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_41: { + s_n_llhttp__internal__n_error_43: { state->error = 0x7; state->reason = "Unexpected char in url schema"; state->error_pos = (const char*) p; @@ -6498,7 +7145,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_42: { + s_n_llhttp__internal__n_error_44: { state->error = 0x7; state->reason = "Unexpected char in url schema"; state->error_pos = (const char*) p; @@ -6507,7 +7154,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_43: { + s_n_llhttp__internal__n_error_45: { state->error = 0x7; state->reason = "Unexpected start char in url"; state->error_pos = (const char*) p; @@ -6526,7 +7173,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_44: { + s_n_llhttp__internal__n_error_46: { state->error = 0x6; state->reason = "Expected space after method"; state->error_pos = (const char*) p; @@ -6543,7 +7190,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_53: { + s_n_llhttp__internal__n_error_55: { state->error = 0x6; state->reason = "Invalid method encountered"; state->error_pos = (const char*) p; @@ -6552,7 +7199,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_45: { + s_n_llhttp__internal__n_error_47: { state->error = 0xd; state->reason = "Response overflow"; state->error_pos = (const char*) p; @@ -6564,14 +7211,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_45; + goto s_n_llhttp__internal__n_error_47; default: goto s_n_llhttp__internal__n_res_status_code; } /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_46: { + s_n_llhttp__internal__n_error_48: { state->error = 0x2; state->reason = "Expected LF after CR"; state->error_pos = (const char*) p; @@ -6616,7 +7263,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_47: { + s_n_llhttp__internal__n_error_49: { state->error = 0xd; state->reason = "Invalid response status"; state->error_pos = (const char*) p; @@ -6633,7 +7280,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_48: { + s_n_llhttp__internal__n_error_50: { state->error = 0x9; state->reason = "Expected space after version"; state->error_pos = (const char*) p; @@ -6650,7 +7297,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_49: { + s_n_llhttp__internal__n_error_51: { state->error = 0x9; state->reason = "Invalid minor version"; state->error_pos = (const char*) p; @@ -6659,7 +7306,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_50: { + s_n_llhttp__internal__n_error_52: { state->error = 0x9; state->reason = "Expected dot"; state->error_pos = (const char*) p; @@ -6676,7 +7323,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_51: { + s_n_llhttp__internal__n_error_53: { state->error = 0x9; state->reason = "Invalid major version"; state->error_pos = (const char*) p; @@ -6685,7 +7332,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_54: { + s_n_llhttp__internal__n_error_56: { state->error = 0x8; state->reason = "Expected HTTP/"; state->error_pos = (const char*) p; @@ -6710,7 +7357,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_52: { + s_n_llhttp__internal__n_error_54: { state->error = 0x8; state->reason = "Invalid word encountered"; state->error_pos = (const char*) p; @@ -6834,171 +7481,201 @@ int llhttp__internal_execute(llhttp__internal_t* state, const char* p, const cha typedef int (*llhttp__internal__span_cb)( llhttp__internal_t*, const char*, const char*); -static const unsigned char llparse_blob0[] = { - 'C', 'L' -}; #ifdef __SSE4_2__ -static const unsigned char ALIGN(16) llparse_blob1[] = { +static const unsigned char ALIGN(16) llparse_blob0[] = { 0x9, 0x9, 0xc, 0xc, '!', '"', '$', '>', '@', '~', 0x80, 0xff, 0x0, 0x0, 0x0, 0x0 }; #endif /* __SSE4_2__ */ -static const unsigned char llparse_blob2[] = { +static const unsigned char llparse_blob1[] = { 'o', 'n' }; -static const unsigned char llparse_blob3[] = { +static const unsigned char llparse_blob2[] = { 'e', 'c', 't', 'i', 'o', 'n' }; -static const unsigned char llparse_blob4[] = { +static const unsigned char llparse_blob3[] = { 'l', 'o', 's', 'e' }; -static const unsigned char llparse_blob5[] = { +static const unsigned char llparse_blob4[] = { 'e', 'e', 'p', '-', 'a', 'l', 'i', 'v', 'e' }; -static const unsigned char llparse_blob6[] = { +static const unsigned char llparse_blob5[] = { 'p', 'g', 'r', 'a', 'd', 'e' }; -static const unsigned char llparse_blob7[] = { +static const unsigned char llparse_blob6[] = { 'c', 'h', 'u', 'n', 'k', 'e', 'd' }; #ifdef __SSE4_2__ -static const unsigned char ALIGN(16) llparse_blob8[] = { +static const unsigned char ALIGN(16) llparse_blob7[] = { 0x9, 0x9, ' ', '~', 0x80, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }; #endif /* __SSE4_2__ */ #ifdef __SSE4_2__ -static const unsigned char ALIGN(16) llparse_blob9[] = { +static const unsigned char ALIGN(16) llparse_blob8[] = { ' ', '!', '#', '\'', '*', '+', '-', '.', '0', '9', 'A', 'Z', '^', 'z', '|', '|' }; #endif /* __SSE4_2__ */ #ifdef __SSE4_2__ -static const unsigned char ALIGN(16) llparse_blob10[] = { +static const unsigned char ALIGN(16) llparse_blob9[] = { '~', '~', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }; #endif /* __SSE4_2__ */ -static const unsigned char llparse_blob11[] = { +static const unsigned char llparse_blob10[] = { 'e', 'n', 't', '-', 'l', 'e', 'n', 'g', 't', 'h' }; -static const unsigned char llparse_blob12[] = { +static const unsigned char llparse_blob11[] = { 'r', 'o', 'x', 'y', '-', 'c', 'o', 'n', 'n', 'e', 'c', 't', 'i', 'o', 'n' }; -static const unsigned char llparse_blob13[] = { +static const unsigned char llparse_blob12[] = { 'r', 'a', 'n', 's', 'f', 'e', 'r', '-', 'e', 'n', 'c', 'o', 'd', 'i', 'n', 'g' }; -static const unsigned char llparse_blob14[] = { +static const unsigned char llparse_blob13[] = { 'p', 'g', 'r', 'a', 'd', 'e' }; -static const unsigned char llparse_blob15[] = { +static const unsigned char llparse_blob14[] = { 0xd, 0xa }; -static const unsigned char llparse_blob16[] = { +static const unsigned char llparse_blob15[] = { 'T', 'T', 'P', '/' }; -static const unsigned char llparse_blob17[] = { +static const unsigned char llparse_blob16[] = { 'C', 'E', '/' }; +static const unsigned char llparse_blob17[] = { + 'T', 'S', 'P', '/' +}; static const unsigned char llparse_blob18[] = { - 'I', 'N', 'D' + 'N', 'O', 'U', 'N', 'C', 'E' }; static const unsigned char llparse_blob19[] = { - 'E', 'C', 'K', 'O', 'U', 'T' + 'I', 'N', 'D' }; static const unsigned char llparse_blob20[] = { - 'N', 'E', 'C', 'T' + 'E', 'C', 'K', 'O', 'U', 'T' }; static const unsigned char llparse_blob21[] = { - 'E', 'L', 'E', 'T', 'E' + 'N', 'E', 'C', 'T' }; static const unsigned char llparse_blob22[] = { - 'E', 'T' + 'E', 'T', 'E' }; static const unsigned char llparse_blob23[] = { - 'E', 'A', 'D' + 'C', 'R', 'I', 'B', 'E' }; static const unsigned char llparse_blob24[] = { - 'N', 'K' + 'L', 'U', 'S', 'H' }; static const unsigned char llparse_blob25[] = { - 'C', 'K' + 'E', 'T' }; static const unsigned char llparse_blob26[] = { - 'S', 'E', 'A', 'R', 'C', 'H' + 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R' }; static const unsigned char llparse_blob27[] = { - 'R', 'G', 'E' + 'E', 'A', 'D' }; static const unsigned char llparse_blob28[] = { - 'C', 'T', 'I', 'V', 'I', 'T', 'Y' + 'N', 'K' }; static const unsigned char llparse_blob29[] = { - 'L', 'E', 'N', 'D', 'A', 'R' + 'C', 'K' }; static const unsigned char llparse_blob30[] = { - 'V', 'E' + 'S', 'E', 'A', 'R', 'C', 'H' }; static const unsigned char llparse_blob31[] = { - 'O', 'T', 'I', 'F', 'Y' + 'R', 'G', 'E' }; static const unsigned char llparse_blob32[] = { - 'P', 'T', 'I', 'O', 'N', 'S' + 'C', 'T', 'I', 'V', 'I', 'T', 'Y' }; static const unsigned char llparse_blob33[] = { - 'T', 'C', 'H' + 'L', 'E', 'N', 'D', 'A', 'R' }; static const unsigned char llparse_blob34[] = { - 'S', 'T' + 'V', 'E' }; static const unsigned char llparse_blob35[] = { - 'I', 'N', 'D' + 'O', 'T', 'I', 'F', 'Y' }; static const unsigned char llparse_blob36[] = { - 'A', 'T', 'C', 'H' + 'P', 'T', 'I', 'O', 'N', 'S' }; static const unsigned char llparse_blob37[] = { - 'G', 'E' + 'C', 'H' }; static const unsigned char llparse_blob38[] = { - 'I', 'N', 'D' + 'S', 'E' }; static const unsigned char llparse_blob39[] = { - 'O', 'R', 'T' + 'A', 'Y' }; static const unsigned char llparse_blob40[] = { - 'A', 'R', 'C', 'H' + 'S', 'T' }; static const unsigned char llparse_blob41[] = { - 'U', 'R', 'C', 'E' + 'I', 'N', 'D' }; static const unsigned char llparse_blob42[] = { - 'B', 'S', 'C', 'R', 'I', 'B', 'E' + 'A', 'T', 'C', 'H' }; static const unsigned char llparse_blob43[] = { - 'R', 'A', 'C', 'E' + 'G', 'E' }; static const unsigned char llparse_blob44[] = { 'I', 'N', 'D' }; static const unsigned char llparse_blob45[] = { - 'N', 'K' + 'O', 'R', 'D' }; static const unsigned char llparse_blob46[] = { - 'C', 'K' + 'I', 'R', 'E', 'C', 'T' }; static const unsigned char llparse_blob47[] = { - 'U', 'B', 'S', 'C', 'R', 'I', 'B', 'E' + 'O', 'R', 'T' }; static const unsigned char llparse_blob48[] = { - 'H', 'T', 'T', 'P', '/' + 'R', 'C', 'H' }; static const unsigned char llparse_blob49[] = { - 'A', 'D' + 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R' }; static const unsigned char llparse_blob50[] = { + 'U', 'R', 'C', 'E' +}; +static const unsigned char llparse_blob51[] = { + 'B', 'S', 'C', 'R', 'I', 'B', 'E' +}; +static const unsigned char llparse_blob52[] = { + 'A', 'R', 'D', 'O', 'W', 'N' +}; +static const unsigned char llparse_blob53[] = { + 'A', 'C', 'E' +}; +static const unsigned char llparse_blob54[] = { + 'I', 'N', 'D' +}; +static const unsigned char llparse_blob55[] = { + 'N', 'K' +}; +static const unsigned char llparse_blob56[] = { + 'C', 'K' +}; +static const unsigned char llparse_blob57[] = { + 'U', 'B', 'S', 'C', 'R', 'I', 'B', 'E' +}; +static const unsigned char llparse_blob58[] = { + 'H', 'T', 'T', 'P', '/' +}; +static const unsigned char llparse_blob59[] = { + 'A', 'D' +}; +static const unsigned char llparse_blob60[] = { 'T', 'P', '/' }; @@ -7015,7 +7692,7 @@ struct llparse_match_s { }; typedef struct llparse_match_s llparse_match_t; -static llparse_match_t llparse__match_sequence_id( +static llparse_match_t llparse__match_sequence_to_lower( llhttp__internal_t* s, const unsigned char* p, const unsigned char* endp, const unsigned char* seq, uint32_t seq_len) { @@ -7026,7 +7703,7 @@ static llparse_match_t llparse__match_sequence_id( for (; p != endp; p++) { unsigned char current; - current = *p; + current = ((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p)); if (current == seq[index]) { if (++index == seq_len) { res.status = kMatchComplete; @@ -7047,7 +7724,7 @@ static llparse_match_t llparse__match_sequence_id( return res; } -static llparse_match_t llparse__match_sequence_to_lower( +static llparse_match_t llparse__match_sequence_to_lower_unsafe( llhttp__internal_t* s, const unsigned char* p, const unsigned char* endp, const unsigned char* seq, uint32_t seq_len) { @@ -7058,7 +7735,7 @@ static llparse_match_t llparse__match_sequence_to_lower( for (; p != endp; p++) { unsigned char current; - current = ((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p)); + current = ((*p) | 0x20); if (current == seq[index]) { if (++index == seq_len) { res.status = kMatchComplete; @@ -7079,7 +7756,7 @@ static llparse_match_t llparse__match_sequence_to_lower( return res; } -static llparse_match_t llparse__match_sequence_to_lower_unsafe( +static llparse_match_t llparse__match_sequence_id( llhttp__internal_t* s, const unsigned char* p, const unsigned char* endp, const unsigned char* seq, uint32_t seq_len) { @@ -7090,7 +7767,7 @@ static llparse_match_t llparse__match_sequence_to_lower_unsafe( for (; p != endp; p++) { unsigned char current; - current = ((*p) | 0x20); + current = *p; if (current == seq[index]) { if (++index == seq_len) { res.status = kMatchComplete; @@ -7180,6 +7857,7 @@ enum llparse_state_e { s_n_llhttp__internal__n_req_http_major, s_n_llhttp__internal__n_req_http_start_1, s_n_llhttp__internal__n_req_http_start_2, + s_n_llhttp__internal__n_req_http_start_3, s_n_llhttp__internal__n_req_http_start, s_n_llhttp__internal__n_url_skip_to_http, s_n_llhttp__internal__n_url_fragment, @@ -7201,56 +7879,75 @@ enum llparse_state_e { s_n_llhttp__internal__n_span_start_llhttp__on_url, s_n_llhttp__internal__n_req_spaces_before_url, s_n_llhttp__internal__n_req_first_space_before_url, - s_n_llhttp__internal__n_start_req_1, s_n_llhttp__internal__n_start_req_2, + s_n_llhttp__internal__n_start_req_3, + s_n_llhttp__internal__n_start_req_1, s_n_llhttp__internal__n_start_req_4, s_n_llhttp__internal__n_start_req_6, - s_n_llhttp__internal__n_start_req_7, - s_n_llhttp__internal__n_start_req_5, - s_n_llhttp__internal__n_start_req_3, s_n_llhttp__internal__n_start_req_8, s_n_llhttp__internal__n_start_req_9, - s_n_llhttp__internal__n_start_req_10, + s_n_llhttp__internal__n_start_req_7, + s_n_llhttp__internal__n_start_req_5, s_n_llhttp__internal__n_start_req_12, s_n_llhttp__internal__n_start_req_13, s_n_llhttp__internal__n_start_req_11, - s_n_llhttp__internal__n_start_req_15, + s_n_llhttp__internal__n_start_req_10, + s_n_llhttp__internal__n_start_req_14, + s_n_llhttp__internal__n_start_req_17, s_n_llhttp__internal__n_start_req_16, + s_n_llhttp__internal__n_start_req_15, s_n_llhttp__internal__n_start_req_18, s_n_llhttp__internal__n_start_req_20, s_n_llhttp__internal__n_start_req_21, s_n_llhttp__internal__n_start_req_19, - s_n_llhttp__internal__n_start_req_17, - s_n_llhttp__internal__n_start_req_22, - s_n_llhttp__internal__n_start_req_14, s_n_llhttp__internal__n_start_req_23, s_n_llhttp__internal__n_start_req_24, s_n_llhttp__internal__n_start_req_26, + s_n_llhttp__internal__n_start_req_28, + s_n_llhttp__internal__n_start_req_29, s_n_llhttp__internal__n_start_req_27, + s_n_llhttp__internal__n_start_req_25, + s_n_llhttp__internal__n_start_req_30, + s_n_llhttp__internal__n_start_req_22, s_n_llhttp__internal__n_start_req_31, s_n_llhttp__internal__n_start_req_32, - s_n_llhttp__internal__n_start_req_30, - s_n_llhttp__internal__n_start_req_29, - s_n_llhttp__internal__n_start_req_28, + s_n_llhttp__internal__n_start_req_35, + s_n_llhttp__internal__n_start_req_36, s_n_llhttp__internal__n_start_req_34, - s_n_llhttp__internal__n_start_req_33, - s_n_llhttp__internal__n_start_req_25, s_n_llhttp__internal__n_start_req_37, s_n_llhttp__internal__n_start_req_38, - s_n_llhttp__internal__n_start_req_36, - s_n_llhttp__internal__n_start_req_35, - s_n_llhttp__internal__n_start_req_40, - s_n_llhttp__internal__n_start_req_41, s_n_llhttp__internal__n_start_req_42, - s_n_llhttp__internal__n_start_req_39, s_n_llhttp__internal__n_start_req_43, - s_n_llhttp__internal__n_start_req_46, + s_n_llhttp__internal__n_start_req_41, + s_n_llhttp__internal__n_start_req_40, + s_n_llhttp__internal__n_start_req_39, + s_n_llhttp__internal__n_start_req_45, + s_n_llhttp__internal__n_start_req_44, + s_n_llhttp__internal__n_start_req_33, s_n_llhttp__internal__n_start_req_48, s_n_llhttp__internal__n_start_req_49, - s_n_llhttp__internal__n_start_req_47, s_n_llhttp__internal__n_start_req_50, - s_n_llhttp__internal__n_start_req_45, - s_n_llhttp__internal__n_start_req_44, + s_n_llhttp__internal__n_start_req_51, + s_n_llhttp__internal__n_start_req_47, + s_n_llhttp__internal__n_start_req_46, + s_n_llhttp__internal__n_start_req_54, + s_n_llhttp__internal__n_start_req_56, + s_n_llhttp__internal__n_start_req_57, + s_n_llhttp__internal__n_start_req_55, + s_n_llhttp__internal__n_start_req_53, + s_n_llhttp__internal__n_start_req_58, + s_n_llhttp__internal__n_start_req_59, + s_n_llhttp__internal__n_start_req_52, + s_n_llhttp__internal__n_start_req_61, + s_n_llhttp__internal__n_start_req_62, + s_n_llhttp__internal__n_start_req_60, + s_n_llhttp__internal__n_start_req_65, + s_n_llhttp__internal__n_start_req_67, + s_n_llhttp__internal__n_start_req_68, + s_n_llhttp__internal__n_start_req_66, + s_n_llhttp__internal__n_start_req_69, + 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_res_line_almost_done, s_n_llhttp__internal__n_res_status, @@ -7641,6 +8338,13 @@ int llhttp__internal__c_or_flags_17( return 0; } +int llhttp__internal__c_load_method( + llhttp__internal_t* state, + const unsigned char* p, + const unsigned char* endp) { + return state->method; +} + int llhttp__internal__c_store_http_major( llhttp__internal_t* state, const unsigned char* p, @@ -7659,13 +8363,6 @@ int llhttp__internal__c_store_http_minor( return 0; } -int llhttp__internal__c_is_equal_method_1( - llhttp__internal_t* state, - const unsigned char* p, - const unsigned char* endp) { - return state->method == 33; -} - int llhttp__internal__c_update_status_code( llhttp__internal_t* state, const unsigned char* p, @@ -8213,135 +8910,515 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_headers_almost_done: - s_n_llhttp__internal__n_headers_almost_done: { + case s_n_llhttp__internal__n_headers_almost_done: + s_n_llhttp__internal__n_headers_almost_done: { + if (p == endp) { + return s_n_llhttp__internal__n_headers_almost_done; + } + p++; + goto s_n_llhttp__internal__n_invoke_test_flags; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_span_start_llhttp__on_header_value: + s_n_llhttp__internal__n_span_start_llhttp__on_header_value: { + if (p == endp) { + return s_n_llhttp__internal__n_span_start_llhttp__on_header_value; + } + state->_span_pos0 = (void*) p; + state->_span_cb0 = llhttp__on_header_value; + goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_discard_lws: + s_n_llhttp__internal__n_header_value_discard_lws: { + if (p == endp) { + return s_n_llhttp__internal__n_header_value_discard_lws; + } + switch (*p) { + case 9: { + p++; + goto s_n_llhttp__internal__n_header_value_discard_ws; + } + case ' ': { + p++; + goto s_n_llhttp__internal__n_header_value_discard_ws; + } + default: { + goto s_n_llhttp__internal__n_invoke_load_header_state; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_discard_ws_almost_done: + s_n_llhttp__internal__n_header_value_discard_ws_almost_done: { + if (p == endp) { + return s_n_llhttp__internal__n_header_value_discard_ws_almost_done; + } + p++; + goto s_n_llhttp__internal__n_header_value_discard_lws; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_lws: + s_n_llhttp__internal__n_header_value_lws: { + if (p == endp) { + return s_n_llhttp__internal__n_header_value_lws; + } + switch (*p) { + case 9: { + goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1; + } + case ' ': { + goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1; + } + default: { + goto s_n_llhttp__internal__n_invoke_load_header_state_3; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_almost_done: + s_n_llhttp__internal__n_header_value_almost_done: { + if (p == endp) { + return s_n_llhttp__internal__n_header_value_almost_done; + } + switch (*p) { + case 10: { + p++; + goto s_n_llhttp__internal__n_header_value_lws; + } + default: { + goto s_n_llhttp__internal__n_error_15; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_lenient: + s_n_llhttp__internal__n_header_value_lenient: { + if (p == endp) { + return s_n_llhttp__internal__n_header_value_lenient; + } + switch (*p) { + case 10: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_1; + } + case 13: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_3; + } + default: { + p++; + goto s_n_llhttp__internal__n_header_value_lenient; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_otherwise: + s_n_llhttp__internal__n_header_value_otherwise: { + if (p == endp) { + return s_n_llhttp__internal__n_header_value_otherwise; + } + switch (*p) { + case 10: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_1; + } + case 13: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_2; + } + default: { + goto s_n_llhttp__internal__n_invoke_test_flags_4; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_connection_token: + s_n_llhttp__internal__n_header_value_connection_token: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + }; + if (p == endp) { + return s_n_llhttp__internal__n_header_value_connection_token; + } + switch (lookup_table[(uint8_t) *p]) { + case 1: { + p++; + goto s_n_llhttp__internal__n_header_value_connection_token; + } + case 2: { + p++; + goto s_n_llhttp__internal__n_header_value_connection; + } + default: { + goto s_n_llhttp__internal__n_header_value_otherwise; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_connection_ws: + s_n_llhttp__internal__n_header_value_connection_ws: { + if (p == endp) { + return s_n_llhttp__internal__n_header_value_connection_ws; + } + switch (*p) { + case 10: { + goto s_n_llhttp__internal__n_header_value_otherwise; + } + case 13: { + goto s_n_llhttp__internal__n_header_value_otherwise; + } + case ' ': { + p++; + goto s_n_llhttp__internal__n_header_value_connection_ws; + } + case ',': { + p++; + goto s_n_llhttp__internal__n_invoke_load_header_state_4; + } + default: { + goto s_n_llhttp__internal__n_invoke_update_header_state_4; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_connection_1: + s_n_llhttp__internal__n_header_value_connection_1: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_header_value_connection_1; + } + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob3, 4); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + goto s_n_llhttp__internal__n_invoke_update_header_state_2; + } + case kMatchPause: { + return s_n_llhttp__internal__n_header_value_connection_1; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_header_value_connection_token; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_connection_2: + s_n_llhttp__internal__n_header_value_connection_2: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_headers_almost_done; + return s_n_llhttp__internal__n_header_value_connection_2; + } + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob4, 9); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + goto s_n_llhttp__internal__n_invoke_update_header_state_5; + } + case kMatchPause: { + return s_n_llhttp__internal__n_header_value_connection_2; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_header_value_connection_token; + } } - p++; - goto s_n_llhttp__internal__n_invoke_test_flags; /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_span_start_llhttp__on_header_value: - s_n_llhttp__internal__n_span_start_llhttp__on_header_value: { + case s_n_llhttp__internal__n_header_value_connection_3: + s_n_llhttp__internal__n_header_value_connection_3: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_span_start_llhttp__on_header_value; + return s_n_llhttp__internal__n_header_value_connection_3; + } + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob5, 6); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + goto s_n_llhttp__internal__n_invoke_update_header_state_6; + } + case kMatchPause: { + return s_n_llhttp__internal__n_header_value_connection_3; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_header_value_connection_token; + } } - state->_span_pos0 = (void*) p; - state->_span_cb0 = llhttp__on_header_value; - goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value; /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_value_discard_lws: - s_n_llhttp__internal__n_header_value_discard_lws: { + case s_n_llhttp__internal__n_header_value_connection: + s_n_llhttp__internal__n_header_value_connection: { if (p == endp) { - return s_n_llhttp__internal__n_header_value_discard_lws; + return s_n_llhttp__internal__n_header_value_connection; } - switch (*p) { + switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) { case 9: { p++; - goto s_n_llhttp__internal__n_header_value_discard_ws; + goto s_n_llhttp__internal__n_header_value_connection; } case ' ': { p++; - goto s_n_llhttp__internal__n_header_value_discard_ws; + goto s_n_llhttp__internal__n_header_value_connection; + } + case 'c': { + p++; + goto s_n_llhttp__internal__n_header_value_connection_1; + } + case 'k': { + p++; + goto s_n_llhttp__internal__n_header_value_connection_2; + } + case 'u': { + p++; + goto s_n_llhttp__internal__n_header_value_connection_3; } default: { - goto s_n_llhttp__internal__n_invoke_load_header_state; + goto s_n_llhttp__internal__n_header_value_connection_token; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_value_discard_ws_almost_done: - s_n_llhttp__internal__n_header_value_discard_ws_almost_done: { - if (p == endp) { - return s_n_llhttp__internal__n_header_value_discard_ws_almost_done; - } - p++; - goto s_n_llhttp__internal__n_header_value_discard_lws; + case s_n_llhttp__internal__n_error_18: + s_n_llhttp__internal__n_error_18: { + state->error = 0xb; + state->reason = "Content-Length overflow"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_value_lws: - s_n_llhttp__internal__n_header_value_lws: { + case s_n_llhttp__internal__n_error_19: + s_n_llhttp__internal__n_error_19: { + state->error = 0xb; + state->reason = "Invalid character in Content-Length"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_content_length_ws: + s_n_llhttp__internal__n_header_value_content_length_ws: { if (p == endp) { - return s_n_llhttp__internal__n_header_value_lws; + return s_n_llhttp__internal__n_header_value_content_length_ws; } switch (*p) { - case 9: { - goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1; + case 10: { + goto s_n_llhttp__internal__n_invoke_or_flags_15; + } + case 13: { + goto s_n_llhttp__internal__n_invoke_or_flags_15; } case ' ': { - goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1; + p++; + goto s_n_llhttp__internal__n_header_value_content_length_ws; } default: { - goto s_n_llhttp__internal__n_invoke_load_header_state_3; + goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_5; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_value_almost_done: - s_n_llhttp__internal__n_header_value_almost_done: { + case s_n_llhttp__internal__n_header_value_content_length: + s_n_llhttp__internal__n_header_value_content_length: { if (p == endp) { - return s_n_llhttp__internal__n_header_value_almost_done; + return s_n_llhttp__internal__n_header_value_content_length; } switch (*p) { - case 10: { + case '0': { p++; - goto s_n_llhttp__internal__n_header_value_lws; + match = 0; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + } + case '1': { + p++; + match = 1; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + } + case '2': { + p++; + match = 2; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + } + case '3': { + p++; + match = 3; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + } + case '4': { + p++; + match = 4; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + } + case '5': { + p++; + match = 5; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + } + case '6': { + p++; + match = 6; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + } + case '7': { + p++; + match = 7; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + } + case '8': { + p++; + match = 8; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + } + case '9': { + p++; + match = 9; + goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; } default: { - goto s_n_llhttp__internal__n_error_15; + goto s_n_llhttp__internal__n_header_value_content_length_ws; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_value_lenient: - s_n_llhttp__internal__n_header_value_lenient: { + case s_n_llhttp__internal__n_header_value_te_chunked_last: + s_n_llhttp__internal__n_header_value_te_chunked_last: { if (p == endp) { - return s_n_llhttp__internal__n_header_value_lenient; + return s_n_llhttp__internal__n_header_value_te_chunked_last; } switch (*p) { case 10: { - goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_1; + goto s_n_llhttp__internal__n_invoke_update_header_state_7; } case 13: { - goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_3; + goto s_n_llhttp__internal__n_invoke_update_header_state_7; + } + case ' ': { + p++; + goto s_n_llhttp__internal__n_header_value_te_chunked_last; } default: { + goto s_n_llhttp__internal__n_header_value_te_chunked; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_te_token_ows: + s_n_llhttp__internal__n_header_value_te_token_ows: { + if (p == endp) { + return s_n_llhttp__internal__n_header_value_te_token_ows; + } + switch (*p) { + case 9: { p++; - goto s_n_llhttp__internal__n_header_value_lenient; + goto s_n_llhttp__internal__n_header_value_te_token_ows; + } + case ' ': { + p++; + goto s_n_llhttp__internal__n_header_value_te_token_ows; + } + default: { + goto s_n_llhttp__internal__n_header_value_te_chunked; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value: + s_n_llhttp__internal__n_header_value: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + }; + if (p == endp) { + return s_n_llhttp__internal__n_header_value; + } + #ifdef __SSE4_2__ + if (endp - p >= 16) { + __m128i ranges; + __m128i input; + int avail; + int match_len; + + /* Load input */ + input = _mm_loadu_si128((__m128i const*) p); + ranges = _mm_loadu_si128((__m128i const*) llparse_blob7); + + /* Find first character that does not match `ranges` */ + match_len = _mm_cmpestri(ranges, 6, + input, 16, + _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES | + _SIDD_NEGATIVE_POLARITY); + + if (match_len != 0) { + p += match_len; + goto s_n_llhttp__internal__n_header_value; } + goto s_n_llhttp__internal__n_header_value_otherwise; } - /* UNREACHABLE */; - abort(); - } - case s_n_llhttp__internal__n_header_value_otherwise: - s_n_llhttp__internal__n_header_value_otherwise: { - if (p == endp) { - return s_n_llhttp__internal__n_header_value_otherwise; - } - switch (*p) { - case 10: { - goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_1; - } - case 13: { - goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_2; + #endif /* __SSE4_2__ */ + switch (lookup_table[(uint8_t) *p]) { + case 1: { + p++; + goto s_n_llhttp__internal__n_header_value; } default: { - goto s_n_llhttp__internal__n_invoke_test_flags_4; + goto s_n_llhttp__internal__n_header_value_otherwise; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_value_connection_token: - s_n_llhttp__internal__n_header_value_connection_token: { + case s_n_llhttp__internal__n_header_value_te_token: + s_n_llhttp__internal__n_header_value_te_token: { static uint8_t lookup_table[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8361,2655 +9438,2736 @@ static llparse_state_t llhttp__internal__run( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; if (p == endp) { - return s_n_llhttp__internal__n_header_value_connection_token; + return s_n_llhttp__internal__n_header_value_te_token; } switch (lookup_table[(uint8_t) *p]) { case 1: { p++; - goto s_n_llhttp__internal__n_header_value_connection_token; + goto s_n_llhttp__internal__n_header_value_te_token; } case 2: { p++; - goto s_n_llhttp__internal__n_header_value_connection; - } - default: { - goto s_n_llhttp__internal__n_header_value_otherwise; - } - } - /* UNREACHABLE */; - abort(); - } - case s_n_llhttp__internal__n_header_value_connection_ws: - s_n_llhttp__internal__n_header_value_connection_ws: { - if (p == endp) { - return s_n_llhttp__internal__n_header_value_connection_ws; - } - switch (*p) { - case 10: { - goto s_n_llhttp__internal__n_header_value_otherwise; - } - case 13: { - goto s_n_llhttp__internal__n_header_value_otherwise; - } - case ' ': { - p++; - goto s_n_llhttp__internal__n_header_value_connection_ws; - } - case ',': { - p++; - goto s_n_llhttp__internal__n_invoke_load_header_state_4; + goto s_n_llhttp__internal__n_header_value_te_token_ows; } default: { - goto s_n_llhttp__internal__n_invoke_update_header_state_4; + goto s_n_llhttp__internal__n_invoke_update_header_state_8; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_value_connection_1: - s_n_llhttp__internal__n_header_value_connection_1: { + case s_n_llhttp__internal__n_header_value_te_chunked: + s_n_llhttp__internal__n_header_value_te_chunked: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_header_value_connection_1; + return s_n_llhttp__internal__n_header_value_te_chunked; } - match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob4, 4); + match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob6, 7); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - goto s_n_llhttp__internal__n_invoke_update_header_state_2; + goto s_n_llhttp__internal__n_header_value_te_chunked_last; } case kMatchPause: { - return s_n_llhttp__internal__n_header_value_connection_1; + return s_n_llhttp__internal__n_header_value_te_chunked; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_header_value_connection_token; + goto s_n_llhttp__internal__n_header_value_te_token; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_value_connection_2: - s_n_llhttp__internal__n_header_value_connection_2: { - llparse_match_t match_seq; - + case s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1: + s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1: { if (p == endp) { - return s_n_llhttp__internal__n_header_value_connection_2; + return s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1; } - match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob5, 9); - p = match_seq.current; - switch (match_seq.status) { - case kMatchComplete: { + state->_span_pos0 = (void*) p; + state->_span_cb0 = llhttp__on_header_value; + goto s_n_llhttp__internal__n_invoke_load_header_state_2; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_value_discard_ws: + s_n_llhttp__internal__n_header_value_discard_ws: { + if (p == endp) { + return s_n_llhttp__internal__n_header_value_discard_ws; + } + switch (*p) { + case 9: { p++; - goto s_n_llhttp__internal__n_invoke_update_header_state_5; + goto s_n_llhttp__internal__n_header_value_discard_ws; } - case kMatchPause: { - return s_n_llhttp__internal__n_header_value_connection_2; + case 10: { + p++; + goto s_n_llhttp__internal__n_header_value_discard_lws; } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_header_value_connection_token; + case 13: { + p++; + goto s_n_llhttp__internal__n_header_value_discard_ws_almost_done; + } + case ' ': { + p++; + goto s_n_llhttp__internal__n_header_value_discard_ws; + } + default: { + goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_value_connection_3: - s_n_llhttp__internal__n_header_value_connection_3: { - llparse_match_t match_seq; - + case s_n_llhttp__internal__n_header_field_general_otherwise: + s_n_llhttp__internal__n_header_field_general_otherwise: { if (p == endp) { - return s_n_llhttp__internal__n_header_value_connection_3; + return s_n_llhttp__internal__n_header_field_general_otherwise; } - match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob6, 6); - p = match_seq.current; - switch (match_seq.status) { - case kMatchComplete: { - p++; - goto s_n_llhttp__internal__n_invoke_update_header_state_6; - } - case kMatchPause: { - return s_n_llhttp__internal__n_header_value_connection_3; + switch (*p) { + case ':': { + goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field_1; } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_header_value_connection_token; + default: { + goto s_n_llhttp__internal__n_error_20; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_value_connection: - s_n_llhttp__internal__n_header_value_connection: { + case s_n_llhttp__internal__n_header_field_general: + s_n_llhttp__internal__n_header_field_general: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; if (p == endp) { - return s_n_llhttp__internal__n_header_value_connection; + return s_n_llhttp__internal__n_header_field_general; } - switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) { - case 9: { - p++; - goto s_n_llhttp__internal__n_header_value_connection; - } - case ' ': { - p++; - goto s_n_llhttp__internal__n_header_value_connection; - } - case 'c': { - p++; - goto s_n_llhttp__internal__n_header_value_connection_1; + #ifdef __SSE4_2__ + if (endp - p >= 16) { + __m128i ranges; + __m128i input; + int avail; + int match_len; + + /* Load input */ + input = _mm_loadu_si128((__m128i const*) p); + ranges = _mm_loadu_si128((__m128i const*) llparse_blob8); + + /* Find first character that does not match `ranges` */ + match_len = _mm_cmpestri(ranges, 16, + input, 16, + _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES | + _SIDD_NEGATIVE_POLARITY); + + if (match_len != 0) { + p += match_len; + goto s_n_llhttp__internal__n_header_field_general; } - case 'k': { - p++; - goto s_n_llhttp__internal__n_header_value_connection_2; + ranges = _mm_loadu_si128((__m128i const*) llparse_blob9); + + /* Find first character that does not match `ranges` */ + match_len = _mm_cmpestri(ranges, 2, + input, 16, + _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES | + _SIDD_NEGATIVE_POLARITY); + + if (match_len != 0) { + p += match_len; + goto s_n_llhttp__internal__n_header_field_general; } - case 'u': { + goto s_n_llhttp__internal__n_header_field_general_otherwise; + } + #endif /* __SSE4_2__ */ + switch (lookup_table[(uint8_t) *p]) { + case 1: { p++; - goto s_n_llhttp__internal__n_header_value_connection_3; + goto s_n_llhttp__internal__n_header_field_general; } default: { - goto s_n_llhttp__internal__n_header_value_connection_token; + goto s_n_llhttp__internal__n_header_field_general_otherwise; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_error_18: - s_n_llhttp__internal__n_error_18: { - state->error = 0xb; - state->reason = "Content-Length overflow"; - state->error_pos = (const char*) p; - state->_current = (void*) (intptr_t) s_error; - return s_error; - /* UNREACHABLE */; - abort(); - } - case s_n_llhttp__internal__n_error_19: - s_n_llhttp__internal__n_error_19: { - state->error = 0xb; - state->reason = "Invalid character in Content-Length"; - state->error_pos = (const char*) p; - state->_current = (void*) (intptr_t) s_error; - return s_error; - /* UNREACHABLE */; - abort(); - } - case s_n_llhttp__internal__n_header_value_content_length_ws: - s_n_llhttp__internal__n_header_value_content_length_ws: { + case s_n_llhttp__internal__n_header_field_colon: + s_n_llhttp__internal__n_header_field_colon: { if (p == endp) { - return s_n_llhttp__internal__n_header_value_content_length_ws; - } - switch (*p) { - case 10: { - goto s_n_llhttp__internal__n_invoke_or_flags_15; - } - case 13: { - goto s_n_llhttp__internal__n_invoke_or_flags_15; - } + return s_n_llhttp__internal__n_header_field_colon; + } + switch (*p) { case ' ': { p++; - goto s_n_llhttp__internal__n_header_value_content_length_ws; + goto s_n_llhttp__internal__n_header_field_colon; + } + case ':': { + goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field; } default: { - goto s_n_llhttp__internal__n_span_end_llhttp__on_header_value_5; + goto s_n_llhttp__internal__n_invoke_update_header_state_9; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_value_content_length: - s_n_llhttp__internal__n_header_value_content_length: { + case s_n_llhttp__internal__n_header_field_3: + s_n_llhttp__internal__n_header_field_3: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_header_value_content_length; + return s_n_llhttp__internal__n_header_field_3; } - switch (*p) { - case '0': { - p++; - match = 0; - goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; - } - case '1': { + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob2, 6); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; match = 1; - goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + goto s_n_llhttp__internal__n_invoke_store_header_state; } - case '2': { + case kMatchPause: { + return s_n_llhttp__internal__n_header_field_3; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_invoke_update_header_state_10; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_field_4: + s_n_llhttp__internal__n_header_field_4: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_header_field_4; + } + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob10, 10); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; match = 2; - goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + goto s_n_llhttp__internal__n_invoke_store_header_state; } - case '3': { - p++; - match = 3; - goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + case kMatchPause: { + return s_n_llhttp__internal__n_header_field_4; } - case '4': { - p++; - match = 4; - goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + case kMatchMismatch: { + goto s_n_llhttp__internal__n_invoke_update_header_state_10; } - case '5': { + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_field_2: + s_n_llhttp__internal__n_header_field_2: { + if (p == endp) { + return s_n_llhttp__internal__n_header_field_2; + } + switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) { + case 'n': { p++; - match = 5; - goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + goto s_n_llhttp__internal__n_header_field_3; } - case '6': { + case 't': { p++; - match = 6; - goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + goto s_n_llhttp__internal__n_header_field_4; } - case '7': { - p++; - match = 7; - goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + default: { + goto s_n_llhttp__internal__n_invoke_update_header_state_10; } - case '8': { + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_field_1: + s_n_llhttp__internal__n_header_field_1: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_header_field_1; + } + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob1, 2); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - match = 8; - goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + goto s_n_llhttp__internal__n_header_field_2; } - case '9': { - p++; - match = 9; - goto s_n_llhttp__internal__n_invoke_mul_add_content_length_1; + case kMatchPause: { + return s_n_llhttp__internal__n_header_field_1; } - default: { - goto s_n_llhttp__internal__n_header_value_content_length_ws; + case kMatchMismatch: { + goto s_n_llhttp__internal__n_invoke_update_header_state_10; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_value_te_chunked_last: - s_n_llhttp__internal__n_header_value_te_chunked_last: { + case s_n_llhttp__internal__n_header_field_5: + s_n_llhttp__internal__n_header_field_5: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_header_value_te_chunked_last; + return s_n_llhttp__internal__n_header_field_5; } - switch (*p) { - case 10: { - goto s_n_llhttp__internal__n_invoke_update_header_state_7; + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob11, 15); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 1; + goto s_n_llhttp__internal__n_invoke_store_header_state; } - case 13: { - goto s_n_llhttp__internal__n_invoke_update_header_state_7; + case kMatchPause: { + return s_n_llhttp__internal__n_header_field_5; } - case ' ': { + case kMatchMismatch: { + goto s_n_llhttp__internal__n_invoke_update_header_state_10; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_field_6: + s_n_llhttp__internal__n_header_field_6: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_header_field_6; + } + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob12, 16); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - goto s_n_llhttp__internal__n_header_value_te_chunked_last; + match = 3; + goto s_n_llhttp__internal__n_invoke_store_header_state; } - default: { - goto s_n_llhttp__internal__n_header_value_te_chunked; + case kMatchPause: { + return s_n_llhttp__internal__n_header_field_6; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_invoke_update_header_state_10; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_value_te_token_ows: - s_n_llhttp__internal__n_header_value_te_token_ows: { + case s_n_llhttp__internal__n_header_field_7: + s_n_llhttp__internal__n_header_field_7: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_header_value_te_token_ows; + return s_n_llhttp__internal__n_header_field_7; } - switch (*p) { - case 9: { + match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob13, 6); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - goto s_n_llhttp__internal__n_header_value_te_token_ows; + match = 4; + goto s_n_llhttp__internal__n_invoke_store_header_state; } - case ' ': { - p++; - goto s_n_llhttp__internal__n_header_value_te_token_ows; + case kMatchPause: { + return s_n_llhttp__internal__n_header_field_7; } - default: { - goto s_n_llhttp__internal__n_header_value_te_chunked; + case kMatchMismatch: { + goto s_n_llhttp__internal__n_invoke_update_header_state_10; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_value: - s_n_llhttp__internal__n_header_value: { - static uint8_t lookup_table[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - }; + case s_n_llhttp__internal__n_header_field: + s_n_llhttp__internal__n_header_field: { if (p == endp) { - return s_n_llhttp__internal__n_header_value; + return s_n_llhttp__internal__n_header_field; } - #ifdef __SSE4_2__ - if (endp - p >= 16) { - __m128i ranges; - __m128i input; - int avail; - int match_len; - - /* Load input */ - input = _mm_loadu_si128((__m128i const*) p); - ranges = _mm_loadu_si128((__m128i const*) llparse_blob8); - - /* Find first character that does not match `ranges` */ - match_len = _mm_cmpestri(ranges, 6, - input, 16, - _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES | - _SIDD_NEGATIVE_POLARITY); - - if (match_len != 0) { - p += match_len; - goto s_n_llhttp__internal__n_header_value; + switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) { + case 'c': { + p++; + goto s_n_llhttp__internal__n_header_field_1; } - goto s_n_llhttp__internal__n_header_value_otherwise; - } - #endif /* __SSE4_2__ */ - switch (lookup_table[(uint8_t) *p]) { - case 1: { + case 'p': { p++; - goto s_n_llhttp__internal__n_header_value; + goto s_n_llhttp__internal__n_header_field_5; + } + case 't': { + p++; + goto s_n_llhttp__internal__n_header_field_6; + } + case 'u': { + p++; + goto s_n_llhttp__internal__n_header_field_7; } default: { - goto s_n_llhttp__internal__n_header_value_otherwise; + goto s_n_llhttp__internal__n_invoke_update_header_state_10; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_value_te_token: - s_n_llhttp__internal__n_header_value_te_token: { - static uint8_t lookup_table[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - }; + case s_n_llhttp__internal__n_span_start_llhttp__on_header_field: + s_n_llhttp__internal__n_span_start_llhttp__on_header_field: { if (p == endp) { - return s_n_llhttp__internal__n_header_value_te_token; + return s_n_llhttp__internal__n_span_start_llhttp__on_header_field; } - switch (lookup_table[(uint8_t) *p]) { - case 1: { - p++; - goto s_n_llhttp__internal__n_header_value_te_token; + state->_span_pos0 = (void*) p; + state->_span_cb0 = llhttp__on_header_field; + goto s_n_llhttp__internal__n_header_field; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_header_field_start: + s_n_llhttp__internal__n_header_field_start: { + if (p == endp) { + return s_n_llhttp__internal__n_header_field_start; + } + switch (*p) { + case 10: { + goto s_n_llhttp__internal__n_headers_almost_done; } - case 2: { + case 13: { p++; - goto s_n_llhttp__internal__n_header_value_te_token_ows; + goto s_n_llhttp__internal__n_headers_almost_done; } default: { - goto s_n_llhttp__internal__n_invoke_update_header_state_8; + goto s_n_llhttp__internal__n_span_start_llhttp__on_header_field; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_value_te_chunked: - s_n_llhttp__internal__n_header_value_te_chunked: { + case s_n_llhttp__internal__n_url_skip_to_http09: + s_n_llhttp__internal__n_url_skip_to_http09: { + if (p == endp) { + return s_n_llhttp__internal__n_url_skip_to_http09; + } + p++; + goto s_n_llhttp__internal__n_invoke_update_http_major; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_url_skip_lf_to_http09: + s_n_llhttp__internal__n_url_skip_lf_to_http09: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_header_value_te_chunked; + return s_n_llhttp__internal__n_url_skip_lf_to_http09; } - match_seq = llparse__match_sequence_to_lower_unsafe(state, p, endp, llparse_blob7, 7); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob14, 2); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - goto s_n_llhttp__internal__n_header_value_te_chunked_last; + goto s_n_llhttp__internal__n_invoke_update_http_major; } case kMatchPause: { - return s_n_llhttp__internal__n_header_value_te_chunked; + return s_n_llhttp__internal__n_url_skip_lf_to_http09; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_header_value_te_token; + goto s_n_llhttp__internal__n_error_21; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1: - s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1: { + case s_n_llhttp__internal__n_req_http_end_1: + s_n_llhttp__internal__n_req_http_end_1: { if (p == endp) { - return s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1; + return s_n_llhttp__internal__n_req_http_end_1; + } + switch (*p) { + case 10: { + p++; + goto s_n_llhttp__internal__n_header_field_start; + } + default: { + goto s_n_llhttp__internal__n_error_23; + } } - state->_span_pos0 = (void*) p; - state->_span_cb0 = llhttp__on_header_value; - goto s_n_llhttp__internal__n_invoke_load_header_state_2; /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_value_discard_ws: - s_n_llhttp__internal__n_header_value_discard_ws: { + case s_n_llhttp__internal__n_req_http_end: + s_n_llhttp__internal__n_req_http_end: { if (p == endp) { - return s_n_llhttp__internal__n_header_value_discard_ws; + return s_n_llhttp__internal__n_req_http_end; } switch (*p) { - case 9: { - p++; - goto s_n_llhttp__internal__n_header_value_discard_ws; - } case 10: { p++; - goto s_n_llhttp__internal__n_header_value_discard_lws; + goto s_n_llhttp__internal__n_header_field_start; } case 13: { p++; - goto s_n_llhttp__internal__n_header_value_discard_ws_almost_done; + goto s_n_llhttp__internal__n_req_http_end_1; } - case ' ': { + default: { + goto s_n_llhttp__internal__n_error_23; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_req_http_minor: + s_n_llhttp__internal__n_req_http_minor: { + if (p == endp) { + return s_n_llhttp__internal__n_req_http_minor; + } + switch (*p) { + case '0': { p++; - goto s_n_llhttp__internal__n_header_value_discard_ws; + match = 0; + goto s_n_llhttp__internal__n_invoke_store_http_minor; + } + case '1': { + p++; + match = 1; + goto s_n_llhttp__internal__n_invoke_store_http_minor; + } + case '2': { + p++; + match = 2; + goto s_n_llhttp__internal__n_invoke_store_http_minor; + } + case '3': { + p++; + match = 3; + goto s_n_llhttp__internal__n_invoke_store_http_minor; + } + case '4': { + p++; + match = 4; + goto s_n_llhttp__internal__n_invoke_store_http_minor; + } + case '5': { + p++; + match = 5; + goto s_n_llhttp__internal__n_invoke_store_http_minor; + } + case '6': { + p++; + match = 6; + goto s_n_llhttp__internal__n_invoke_store_http_minor; + } + case '7': { + p++; + match = 7; + goto s_n_llhttp__internal__n_invoke_store_http_minor; + } + case '8': { + p++; + match = 8; + goto s_n_llhttp__internal__n_invoke_store_http_minor; + } + case '9': { + p++; + match = 9; + goto s_n_llhttp__internal__n_invoke_store_http_minor; } default: { - goto s_n_llhttp__internal__n_span_start_llhttp__on_header_value_1; + goto s_n_llhttp__internal__n_error_24; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_field_general_otherwise: - s_n_llhttp__internal__n_header_field_general_otherwise: { + case s_n_llhttp__internal__n_req_http_dot: + s_n_llhttp__internal__n_req_http_dot: { if (p == endp) { - return s_n_llhttp__internal__n_header_field_general_otherwise; + return s_n_llhttp__internal__n_req_http_dot; } switch (*p) { - case ':': { - goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field_1; + case '.': { + p++; + goto s_n_llhttp__internal__n_req_http_minor; } default: { - goto s_n_llhttp__internal__n_error_20; + goto s_n_llhttp__internal__n_error_25; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_field_general: - s_n_llhttp__internal__n_header_field_general: { - static uint8_t lookup_table[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }; + case s_n_llhttp__internal__n_req_http_major: + s_n_llhttp__internal__n_req_http_major: { if (p == endp) { - return s_n_llhttp__internal__n_header_field_general; + return s_n_llhttp__internal__n_req_http_major; } - #ifdef __SSE4_2__ - if (endp - p >= 16) { - __m128i ranges; - __m128i input; - int avail; - int match_len; - - /* Load input */ - input = _mm_loadu_si128((__m128i const*) p); - ranges = _mm_loadu_si128((__m128i const*) llparse_blob9); - - /* Find first character that does not match `ranges` */ - match_len = _mm_cmpestri(ranges, 16, - input, 16, - _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES | - _SIDD_NEGATIVE_POLARITY); - - if (match_len != 0) { - p += match_len; - goto s_n_llhttp__internal__n_header_field_general; + switch (*p) { + case '0': { + p++; + match = 0; + goto s_n_llhttp__internal__n_invoke_store_http_major; + } + case '1': { + p++; + match = 1; + goto s_n_llhttp__internal__n_invoke_store_http_major; + } + case '2': { + p++; + match = 2; + goto s_n_llhttp__internal__n_invoke_store_http_major; + } + case '3': { + p++; + match = 3; + goto s_n_llhttp__internal__n_invoke_store_http_major; + } + case '4': { + p++; + match = 4; + goto s_n_llhttp__internal__n_invoke_store_http_major; + } + case '5': { + p++; + match = 5; + goto s_n_llhttp__internal__n_invoke_store_http_major; } - ranges = _mm_loadu_si128((__m128i const*) llparse_blob10); - - /* Find first character that does not match `ranges` */ - match_len = _mm_cmpestri(ranges, 2, - input, 16, - _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES | - _SIDD_NEGATIVE_POLARITY); - - if (match_len != 0) { - p += match_len; - goto s_n_llhttp__internal__n_header_field_general; + case '6': { + p++; + match = 6; + goto s_n_llhttp__internal__n_invoke_store_http_major; } - goto s_n_llhttp__internal__n_header_field_general_otherwise; - } - #endif /* __SSE4_2__ */ - switch (lookup_table[(uint8_t) *p]) { - case 1: { + case '7': { p++; - goto s_n_llhttp__internal__n_header_field_general; + match = 7; + goto s_n_llhttp__internal__n_invoke_store_http_major; + } + case '8': { + p++; + match = 8; + goto s_n_llhttp__internal__n_invoke_store_http_major; + } + case '9': { + p++; + match = 9; + goto s_n_llhttp__internal__n_invoke_store_http_major; } default: { - goto s_n_llhttp__internal__n_header_field_general_otherwise; + goto s_n_llhttp__internal__n_error_26; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_field_colon: - s_n_llhttp__internal__n_header_field_colon: { + case s_n_llhttp__internal__n_req_http_start_1: + s_n_llhttp__internal__n_req_http_start_1: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_header_field_colon; + return s_n_llhttp__internal__n_req_http_start_1; } - switch (*p) { - case ' ': { + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob15, 4); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - goto s_n_llhttp__internal__n_header_field_colon; + goto s_n_llhttp__internal__n_invoke_load_method; } - case ':': { - goto s_n_llhttp__internal__n_span_end_llhttp__on_header_field; + case kMatchPause: { + return s_n_llhttp__internal__n_req_http_start_1; } - default: { - goto s_n_llhttp__internal__n_invoke_update_header_state_9; + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_29; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_field_3: - s_n_llhttp__internal__n_header_field_3: { + case s_n_llhttp__internal__n_req_http_start_2: + s_n_llhttp__internal__n_req_http_start_2: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_header_field_3; + return s_n_llhttp__internal__n_req_http_start_2; } - match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob3, 6); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob16, 3); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 1; - goto s_n_llhttp__internal__n_invoke_store_header_state; + goto s_n_llhttp__internal__n_invoke_load_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_header_field_3; + return s_n_llhttp__internal__n_req_http_start_2; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_invoke_update_header_state_10; + goto s_n_llhttp__internal__n_error_29; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_field_4: - s_n_llhttp__internal__n_header_field_4: { + case s_n_llhttp__internal__n_req_http_start_3: + s_n_llhttp__internal__n_req_http_start_3: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_header_field_4; + return s_n_llhttp__internal__n_req_http_start_3; } - match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob11, 10); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob17, 4); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 2; - goto s_n_llhttp__internal__n_invoke_store_header_state; + goto s_n_llhttp__internal__n_invoke_load_method_2; } case kMatchPause: { - return s_n_llhttp__internal__n_header_field_4; + return s_n_llhttp__internal__n_req_http_start_3; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_invoke_update_header_state_10; + goto s_n_llhttp__internal__n_error_29; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_field_2: - s_n_llhttp__internal__n_header_field_2: { + case s_n_llhttp__internal__n_req_http_start: + s_n_llhttp__internal__n_req_http_start: { if (p == endp) { - return s_n_llhttp__internal__n_header_field_2; + return s_n_llhttp__internal__n_req_http_start; } - switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) { - case 'n': { + switch (*p) { + case ' ': { p++; - goto s_n_llhttp__internal__n_header_field_3; + goto s_n_llhttp__internal__n_req_http_start; } - case 't': { + case 'H': { p++; - goto s_n_llhttp__internal__n_header_field_4; + goto s_n_llhttp__internal__n_req_http_start_1; + } + case 'I': { + p++; + goto s_n_llhttp__internal__n_req_http_start_2; + } + case 'R': { + p++; + goto s_n_llhttp__internal__n_req_http_start_3; } default: { - goto s_n_llhttp__internal__n_invoke_update_header_state_10; + goto s_n_llhttp__internal__n_error_29; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_field_1: - s_n_llhttp__internal__n_header_field_1: { - llparse_match_t match_seq; - + case s_n_llhttp__internal__n_url_skip_to_http: + s_n_llhttp__internal__n_url_skip_to_http: { if (p == endp) { - return s_n_llhttp__internal__n_header_field_1; - } - match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob2, 2); - p = match_seq.current; - switch (match_seq.status) { - case kMatchComplete: { - p++; - goto s_n_llhttp__internal__n_header_field_2; - } - case kMatchPause: { - return s_n_llhttp__internal__n_header_field_1; - } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_invoke_update_header_state_10; - } + return s_n_llhttp__internal__n_url_skip_to_http; } + p++; + goto s_n_llhttp__internal__n_req_http_start; /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_field_5: - s_n_llhttp__internal__n_header_field_5: { - llparse_match_t match_seq; - + case s_n_llhttp__internal__n_url_fragment: + s_n_llhttp__internal__n_url_fragment: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + }; if (p == endp) { - return s_n_llhttp__internal__n_header_field_5; + return s_n_llhttp__internal__n_url_fragment; } - match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob12, 15); - p = match_seq.current; - switch (match_seq.status) { - case kMatchComplete: { + switch (lookup_table[(uint8_t) *p]) { + case 1: { p++; - match = 1; - goto s_n_llhttp__internal__n_invoke_store_header_state; + goto s_n_llhttp__internal__n_url_fragment; } - case kMatchPause: { - return s_n_llhttp__internal__n_header_field_5; + case 2: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_6; } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_invoke_update_header_state_10; + case 3: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_7; + } + case 4: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_8; + } + default: { + goto s_n_llhttp__internal__n_error_30; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_field_6: - s_n_llhttp__internal__n_header_field_6: { - llparse_match_t match_seq; - + case s_n_llhttp__internal__n_span_end_stub_query_3: + s_n_llhttp__internal__n_span_end_stub_query_3: { if (p == endp) { - return s_n_llhttp__internal__n_header_field_6; - } - match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob13, 16); - p = match_seq.current; - switch (match_seq.status) { - case kMatchComplete: { - p++; - match = 3; - goto s_n_llhttp__internal__n_invoke_store_header_state; - } - case kMatchPause: { - return s_n_llhttp__internal__n_header_field_6; - } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_invoke_update_header_state_10; - } + return s_n_llhttp__internal__n_span_end_stub_query_3; } + p++; + goto s_n_llhttp__internal__n_url_fragment; /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_field_7: - s_n_llhttp__internal__n_header_field_7: { - llparse_match_t match_seq; - + case s_n_llhttp__internal__n_url_query: + s_n_llhttp__internal__n_url_query: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 1, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + }; if (p == endp) { - return s_n_llhttp__internal__n_header_field_7; + return s_n_llhttp__internal__n_url_query; } - match_seq = llparse__match_sequence_to_lower(state, p, endp, llparse_blob14, 6); - p = match_seq.current; - switch (match_seq.status) { - case kMatchComplete: { + switch (lookup_table[(uint8_t) *p]) { + case 1: { p++; - match = 4; - goto s_n_llhttp__internal__n_invoke_store_header_state; + goto s_n_llhttp__internal__n_url_query; } - case kMatchPause: { - return s_n_llhttp__internal__n_header_field_7; + case 2: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_9; } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_invoke_update_header_state_10; + case 3: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_10; + } + case 4: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_11; + } + case 5: { + goto s_n_llhttp__internal__n_span_end_stub_query_3; + } + default: { + goto s_n_llhttp__internal__n_error_31; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_header_field: - s_n_llhttp__internal__n_header_field: { + case s_n_llhttp__internal__n_url_query_or_fragment: + s_n_llhttp__internal__n_url_query_or_fragment: { if (p == endp) { - return s_n_llhttp__internal__n_header_field; + return s_n_llhttp__internal__n_url_query_or_fragment; } - switch (((*p) >= 'A' && (*p) <= 'Z' ? (*p | 0x20) : (*p))) { - case 'c': { - p++; - goto s_n_llhttp__internal__n_header_field_1; + switch (*p) { + case 10: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_3; } - case 'p': { - p++; - goto s_n_llhttp__internal__n_header_field_5; + case 13: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_4; } - case 't': { + case ' ': { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_5; + } + case '#': { p++; - goto s_n_llhttp__internal__n_header_field_6; + goto s_n_llhttp__internal__n_url_fragment; } - case 'u': { + case '?': { p++; - goto s_n_llhttp__internal__n_header_field_7; + goto s_n_llhttp__internal__n_url_query; } default: { - goto s_n_llhttp__internal__n_invoke_update_header_state_10; + goto s_n_llhttp__internal__n_error_32; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_span_start_llhttp__on_header_field: - s_n_llhttp__internal__n_span_start_llhttp__on_header_field: { - if (p == endp) { - return s_n_llhttp__internal__n_span_start_llhttp__on_header_field; - } - state->_span_pos0 = (void*) p; - state->_span_cb0 = llhttp__on_header_field; - goto s_n_llhttp__internal__n_header_field; - /* UNREACHABLE */; - abort(); - } - case s_n_llhttp__internal__n_header_field_start: - s_n_llhttp__internal__n_header_field_start: { + case s_n_llhttp__internal__n_url_path: + s_n_llhttp__internal__n_url_path: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + }; if (p == endp) { - return s_n_llhttp__internal__n_header_field_start; + return s_n_llhttp__internal__n_url_path; } - switch (*p) { - case 10: { - goto s_n_llhttp__internal__n_headers_almost_done; + #ifdef __SSE4_2__ + if (endp - p >= 16) { + __m128i ranges; + __m128i input; + int avail; + int match_len; + + /* Load input */ + input = _mm_loadu_si128((__m128i const*) p); + ranges = _mm_loadu_si128((__m128i const*) llparse_blob0); + + /* Find first character that does not match `ranges` */ + match_len = _mm_cmpestri(ranges, 12, + input, 16, + _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES | + _SIDD_NEGATIVE_POLARITY); + + if (match_len != 0) { + p += match_len; + goto s_n_llhttp__internal__n_url_path; } - case 13: { + goto s_n_llhttp__internal__n_url_query_or_fragment; + } + #endif /* __SSE4_2__ */ + switch (lookup_table[(uint8_t) *p]) { + case 1: { p++; - goto s_n_llhttp__internal__n_headers_almost_done; + goto s_n_llhttp__internal__n_url_path; } default: { - goto s_n_llhttp__internal__n_span_start_llhttp__on_header_field; + goto s_n_llhttp__internal__n_url_query_or_fragment; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_url_skip_to_http09: - s_n_llhttp__internal__n_url_skip_to_http09: { + case s_n_llhttp__internal__n_span_start_stub_path_2: + s_n_llhttp__internal__n_span_start_stub_path_2: { if (p == endp) { - return s_n_llhttp__internal__n_url_skip_to_http09; + return s_n_llhttp__internal__n_span_start_stub_path_2; } p++; - goto s_n_llhttp__internal__n_invoke_update_http_major; + goto s_n_llhttp__internal__n_url_path; /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_url_skip_lf_to_http09: - s_n_llhttp__internal__n_url_skip_lf_to_http09: { - llparse_match_t match_seq; - + case s_n_llhttp__internal__n_span_start_stub_path: + s_n_llhttp__internal__n_span_start_stub_path: { if (p == endp) { - return s_n_llhttp__internal__n_url_skip_lf_to_http09; - } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob15, 2); - p = match_seq.current; - switch (match_seq.status) { - case kMatchComplete: { - p++; - goto s_n_llhttp__internal__n_invoke_update_http_major; - } - case kMatchPause: { - return s_n_llhttp__internal__n_url_skip_lf_to_http09; - } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_21; - } + return s_n_llhttp__internal__n_span_start_stub_path; } + p++; + goto s_n_llhttp__internal__n_url_path; /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_req_http_end_1: - s_n_llhttp__internal__n_req_http_end_1: { + case s_n_llhttp__internal__n_span_start_stub_path_1: + s_n_llhttp__internal__n_span_start_stub_path_1: { if (p == endp) { - return s_n_llhttp__internal__n_req_http_end_1; - } - switch (*p) { - case 10: { - p++; - goto s_n_llhttp__internal__n_header_field_start; - } - default: { - goto s_n_llhttp__internal__n_error_22; - } + return s_n_llhttp__internal__n_span_start_stub_path_1; } + p++; + goto s_n_llhttp__internal__n_url_path; /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_req_http_end: - s_n_llhttp__internal__n_req_http_end: { + case s_n_llhttp__internal__n_url_server_with_at: + s_n_llhttp__internal__n_url_server_with_at: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 4, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 0, 6, + 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 0, 4, + 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; if (p == endp) { - return s_n_llhttp__internal__n_req_http_end; + return s_n_llhttp__internal__n_url_server_with_at; } - switch (*p) { - case 10: { + switch (lookup_table[(uint8_t) *p]) { + case 1: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_12; + } + case 2: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_13; + } + case 3: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_14; + } + case 4: { p++; - goto s_n_llhttp__internal__n_header_field_start; + goto s_n_llhttp__internal__n_url_server; } - case 13: { + case 5: { + goto s_n_llhttp__internal__n_span_start_stub_path_1; + } + case 6: { p++; - goto s_n_llhttp__internal__n_req_http_end_1; + goto s_n_llhttp__internal__n_url_query; + } + case 7: { + p++; + goto s_n_llhttp__internal__n_error_33; } default: { - goto s_n_llhttp__internal__n_error_22; + goto s_n_llhttp__internal__n_error_34; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_req_http_minor: - s_n_llhttp__internal__n_req_http_minor: { + case s_n_llhttp__internal__n_url_server: + s_n_llhttp__internal__n_url_server: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 4, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 0, 6, + 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 0, 4, + 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; if (p == endp) { - return s_n_llhttp__internal__n_req_http_minor; + return s_n_llhttp__internal__n_url_server; } - switch (*p) { - case '0': { - p++; - match = 0; - goto s_n_llhttp__internal__n_invoke_store_http_minor; - } - case '1': { - p++; - match = 1; - goto s_n_llhttp__internal__n_invoke_store_http_minor; - } - case '2': { - p++; - match = 2; - goto s_n_llhttp__internal__n_invoke_store_http_minor; - } - case '3': { - p++; - match = 3; - goto s_n_llhttp__internal__n_invoke_store_http_minor; - } - case '4': { - p++; - match = 4; - goto s_n_llhttp__internal__n_invoke_store_http_minor; + switch (lookup_table[(uint8_t) *p]) { + case 1: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url; } - case '5': { - p++; - match = 5; - goto s_n_llhttp__internal__n_invoke_store_http_minor; + case 2: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_1; } - case '6': { - p++; - match = 6; - goto s_n_llhttp__internal__n_invoke_store_http_minor; + case 3: { + goto s_n_llhttp__internal__n_span_end_llhttp__on_url_2; } - case '7': { + case 4: { p++; - match = 7; - goto s_n_llhttp__internal__n_invoke_store_http_minor; + goto s_n_llhttp__internal__n_url_server; } - case '8': { + case 5: { + goto s_n_llhttp__internal__n_span_start_stub_path; + } + case 6: { p++; - match = 8; - goto s_n_llhttp__internal__n_invoke_store_http_minor; + goto s_n_llhttp__internal__n_url_query; } - case '9': { + case 7: { p++; - match = 9; - goto s_n_llhttp__internal__n_invoke_store_http_minor; + goto s_n_llhttp__internal__n_url_server_with_at; } default: { - goto s_n_llhttp__internal__n_error_23; + goto s_n_llhttp__internal__n_error_35; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_req_http_dot: - s_n_llhttp__internal__n_req_http_dot: { + case s_n_llhttp__internal__n_url_schema_delim_1: + s_n_llhttp__internal__n_url_schema_delim_1: { if (p == endp) { - return s_n_llhttp__internal__n_req_http_dot; + return s_n_llhttp__internal__n_url_schema_delim_1; } switch (*p) { - case '.': { + case '/': { p++; - goto s_n_llhttp__internal__n_req_http_minor; + goto s_n_llhttp__internal__n_url_server; } default: { - goto s_n_llhttp__internal__n_error_24; + goto s_n_llhttp__internal__n_error_37; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_req_http_major: - s_n_llhttp__internal__n_req_http_major: { + case s_n_llhttp__internal__n_url_schema_delim: + s_n_llhttp__internal__n_url_schema_delim: { if (p == endp) { - return s_n_llhttp__internal__n_req_http_major; + return s_n_llhttp__internal__n_url_schema_delim; } switch (*p) { - case '0': { - p++; - match = 0; - goto s_n_llhttp__internal__n_invoke_store_http_major; - } - case '1': { - p++; - match = 1; - goto s_n_llhttp__internal__n_invoke_store_http_major; - } - case '2': { - p++; - match = 2; - goto s_n_llhttp__internal__n_invoke_store_http_major; - } - case '3': { - p++; - match = 3; - goto s_n_llhttp__internal__n_invoke_store_http_major; - } - case '4': { - p++; - match = 4; - goto s_n_llhttp__internal__n_invoke_store_http_major; - } - case '5': { - p++; - match = 5; - goto s_n_llhttp__internal__n_invoke_store_http_major; - } - case '6': { + case 10: { p++; - match = 6; - goto s_n_llhttp__internal__n_invoke_store_http_major; + goto s_n_llhttp__internal__n_error_36; } - case '7': { + case 13: { p++; - match = 7; - goto s_n_llhttp__internal__n_invoke_store_http_major; + goto s_n_llhttp__internal__n_error_36; } - case '8': { + case ' ': { p++; - match = 8; - goto s_n_llhttp__internal__n_invoke_store_http_major; + goto s_n_llhttp__internal__n_error_36; } - case '9': { + case '/': { p++; - match = 9; - goto s_n_llhttp__internal__n_invoke_store_http_major; + goto s_n_llhttp__internal__n_url_schema_delim_1; } default: { - goto s_n_llhttp__internal__n_error_25; + goto s_n_llhttp__internal__n_error_37; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_req_http_start_1: - s_n_llhttp__internal__n_req_http_start_1: { - llparse_match_t match_seq; - + case s_n_llhttp__internal__n_span_end_stub_schema: + s_n_llhttp__internal__n_span_end_stub_schema: { if (p == endp) { - return s_n_llhttp__internal__n_req_http_start_1; - } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob16, 4); - p = match_seq.current; - switch (match_seq.status) { - case kMatchComplete: { - p++; - goto s_n_llhttp__internal__n_req_http_major; - } - case kMatchPause: { - return s_n_llhttp__internal__n_req_http_start_1; - } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_27; - } + return s_n_llhttp__internal__n_span_end_stub_schema; } + p++; + goto s_n_llhttp__internal__n_url_schema_delim; /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_req_http_start_2: - s_n_llhttp__internal__n_req_http_start_2: { - llparse_match_t match_seq; - + case s_n_llhttp__internal__n_url_schema: + s_n_llhttp__internal__n_url_schema: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, + 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, + 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; if (p == endp) { - return s_n_llhttp__internal__n_req_http_start_2; + return s_n_llhttp__internal__n_url_schema; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob17, 3); - p = match_seq.current; - switch (match_seq.status) { - case kMatchComplete: { + switch (lookup_table[(uint8_t) *p]) { + case 1: { p++; - goto s_n_llhttp__internal__n_invoke_is_equal_method_1; + goto s_n_llhttp__internal__n_error_36; } - case kMatchPause: { - return s_n_llhttp__internal__n_req_http_start_2; + case 2: { + goto s_n_llhttp__internal__n_span_end_stub_schema; } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_27; + case 3: { + p++; + goto s_n_llhttp__internal__n_url_schema; + } + default: { + goto s_n_llhttp__internal__n_error_38; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_req_http_start: - s_n_llhttp__internal__n_req_http_start: { + case s_n_llhttp__internal__n_url_start: + s_n_llhttp__internal__n_url_start: { + static uint8_t lookup_table[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, + 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; if (p == endp) { - return s_n_llhttp__internal__n_req_http_start; + return s_n_llhttp__internal__n_url_start; } - switch (*p) { - case ' ': { + switch (lookup_table[(uint8_t) *p]) { + case 1: { p++; - goto s_n_llhttp__internal__n_req_http_start; + goto s_n_llhttp__internal__n_error_36; } - case 'H': { - p++; - goto s_n_llhttp__internal__n_req_http_start_1; + case 2: { + goto s_n_llhttp__internal__n_span_start_stub_path_2; } - case 'I': { - p++; - goto s_n_llhttp__internal__n_req_http_start_2; + case 3: { + goto s_n_llhttp__internal__n_url_schema; } default: { - goto s_n_llhttp__internal__n_error_27; + goto s_n_llhttp__internal__n_error_39; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_url_skip_to_http: - s_n_llhttp__internal__n_url_skip_to_http: { + case s_n_llhttp__internal__n_span_start_llhttp__on_url_1: + s_n_llhttp__internal__n_span_start_llhttp__on_url_1: { if (p == endp) { - return s_n_llhttp__internal__n_url_skip_to_http; + return s_n_llhttp__internal__n_span_start_llhttp__on_url_1; } - p++; - goto s_n_llhttp__internal__n_req_http_start; + state->_span_pos0 = (void*) p; + state->_span_cb0 = llhttp__on_url; + goto s_n_llhttp__internal__n_url_start; /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_url_fragment: - s_n_llhttp__internal__n_url_fragment: { - static uint8_t lookup_table[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - }; + case s_n_llhttp__internal__n_span_start_llhttp__on_url: + s_n_llhttp__internal__n_span_start_llhttp__on_url: { if (p == endp) { - return s_n_llhttp__internal__n_url_fragment; + return s_n_llhttp__internal__n_span_start_llhttp__on_url; } - switch (lookup_table[(uint8_t) *p]) { - case 1: { - p++; - goto s_n_llhttp__internal__n_url_fragment; - } - case 2: { - goto s_n_llhttp__internal__n_span_end_llhttp__on_url_6; - } - case 3: { - goto s_n_llhttp__internal__n_span_end_llhttp__on_url_7; - } - case 4: { - goto s_n_llhttp__internal__n_span_end_llhttp__on_url_8; + state->_span_pos0 = (void*) p; + state->_span_cb0 = llhttp__on_url; + goto s_n_llhttp__internal__n_url_server; + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_req_spaces_before_url: + s_n_llhttp__internal__n_req_spaces_before_url: { + if (p == endp) { + return s_n_llhttp__internal__n_req_spaces_before_url; + } + switch (*p) { + case ' ': { + p++; + goto s_n_llhttp__internal__n_req_spaces_before_url; } default: { - goto s_n_llhttp__internal__n_error_28; + goto s_n_llhttp__internal__n_invoke_is_equal_method; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_span_end_stub_query_3: - s_n_llhttp__internal__n_span_end_stub_query_3: { + case s_n_llhttp__internal__n_req_first_space_before_url: + s_n_llhttp__internal__n_req_first_space_before_url: { if (p == endp) { - return s_n_llhttp__internal__n_span_end_stub_query_3; + return s_n_llhttp__internal__n_req_first_space_before_url; + } + switch (*p) { + case ' ': { + p++; + goto s_n_llhttp__internal__n_req_spaces_before_url; + } + default: { + goto s_n_llhttp__internal__n_error_40; + } } - p++; - goto s_n_llhttp__internal__n_url_fragment; /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_url_query: - s_n_llhttp__internal__n_url_query: { - static uint8_t lookup_table[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 1, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - }; + case s_n_llhttp__internal__n_start_req_2: + s_n_llhttp__internal__n_start_req_2: { if (p == endp) { - return s_n_llhttp__internal__n_url_query; + return s_n_llhttp__internal__n_start_req_2; } - switch (lookup_table[(uint8_t) *p]) { - case 1: { + switch (*p) { + case 'L': { p++; - goto s_n_llhttp__internal__n_url_query; - } - case 2: { - goto s_n_llhttp__internal__n_span_end_llhttp__on_url_9; - } - case 3: { - goto s_n_llhttp__internal__n_span_end_llhttp__on_url_10; - } - case 4: { - goto s_n_llhttp__internal__n_span_end_llhttp__on_url_11; - } - case 5: { - goto s_n_llhttp__internal__n_span_end_stub_query_3; + match = 19; + goto s_n_llhttp__internal__n_invoke_store_method_1; } default: { - goto s_n_llhttp__internal__n_error_29; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_url_query_or_fragment: - s_n_llhttp__internal__n_url_query_or_fragment: { + case s_n_llhttp__internal__n_start_req_3: + s_n_llhttp__internal__n_start_req_3: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_url_query_or_fragment; + return s_n_llhttp__internal__n_start_req_3; } - switch (*p) { - case 10: { - goto s_n_llhttp__internal__n_span_end_llhttp__on_url_3; - } - case 13: { - goto s_n_llhttp__internal__n_span_end_llhttp__on_url_4; - } - case ' ': { - goto s_n_llhttp__internal__n_span_end_llhttp__on_url_5; - } - case '#': { + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob18, 6); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - goto s_n_llhttp__internal__n_url_fragment; + match = 36; + goto s_n_llhttp__internal__n_invoke_store_method_1; } - case '?': { - p++; - goto s_n_llhttp__internal__n_url_query; + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_3; } - default: { - goto s_n_llhttp__internal__n_error_30; + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_url_path: - s_n_llhttp__internal__n_url_path: { - static uint8_t lookup_table[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - }; + case s_n_llhttp__internal__n_start_req_1: + s_n_llhttp__internal__n_start_req_1: { if (p == endp) { - return s_n_llhttp__internal__n_url_path; + return s_n_llhttp__internal__n_start_req_1; } - #ifdef __SSE4_2__ - if (endp - p >= 16) { - __m128i ranges; - __m128i input; - int avail; - int match_len; - - /* Load input */ - input = _mm_loadu_si128((__m128i const*) p); - ranges = _mm_loadu_si128((__m128i const*) llparse_blob1); - - /* Find first character that does not match `ranges` */ - match_len = _mm_cmpestri(ranges, 12, - input, 16, - _SIDD_UBYTE_OPS | _SIDD_CMP_RANGES | - _SIDD_NEGATIVE_POLARITY); - - if (match_len != 0) { - p += match_len; - goto s_n_llhttp__internal__n_url_path; + switch (*p) { + case 'C': { + p++; + goto s_n_llhttp__internal__n_start_req_2; } - goto s_n_llhttp__internal__n_url_query_or_fragment; - } - #endif /* __SSE4_2__ */ - switch (lookup_table[(uint8_t) *p]) { - case 1: { + case 'N': { p++; - goto s_n_llhttp__internal__n_url_path; + goto s_n_llhttp__internal__n_start_req_3; } default: { - goto s_n_llhttp__internal__n_url_query_or_fragment; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_span_start_stub_path_2: - s_n_llhttp__internal__n_span_start_stub_path_2: { + case s_n_llhttp__internal__n_start_req_4: + s_n_llhttp__internal__n_start_req_4: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_span_start_stub_path_2; + return s_n_llhttp__internal__n_start_req_4; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob19, 3); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 16; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_4; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_48; + } } - p++; - goto s_n_llhttp__internal__n_url_path; /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_span_start_stub_path: - s_n_llhttp__internal__n_span_start_stub_path: { + case s_n_llhttp__internal__n_start_req_6: + s_n_llhttp__internal__n_start_req_6: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_span_start_stub_path; + return s_n_llhttp__internal__n_start_req_6; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob20, 6); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 22; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_6; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_48; + } } - p++; - goto s_n_llhttp__internal__n_url_path; /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_span_start_stub_path_1: - s_n_llhttp__internal__n_span_start_stub_path_1: { + case s_n_llhttp__internal__n_start_req_8: + s_n_llhttp__internal__n_start_req_8: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_span_start_stub_path_1; + return s_n_llhttp__internal__n_start_req_8; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob21, 4); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 5; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_8; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_48; + } } - p++; - goto s_n_llhttp__internal__n_url_path; /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_url_server_with_at: - s_n_llhttp__internal__n_url_server_with_at: { - static uint8_t lookup_table[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 4, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 0, 6, - 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 0, 4, - 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 4, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }; + case s_n_llhttp__internal__n_start_req_9: + s_n_llhttp__internal__n_start_req_9: { if (p == endp) { - return s_n_llhttp__internal__n_url_server_with_at; + return s_n_llhttp__internal__n_start_req_9; } - switch (lookup_table[(uint8_t) *p]) { - case 1: { - goto s_n_llhttp__internal__n_span_end_llhttp__on_url_12; + switch (*p) { + case 'Y': { + p++; + match = 8; + goto s_n_llhttp__internal__n_invoke_store_method_1; } - case 2: { - goto s_n_llhttp__internal__n_span_end_llhttp__on_url_13; + default: { + goto s_n_llhttp__internal__n_error_48; } - case 3: { - goto s_n_llhttp__internal__n_span_end_llhttp__on_url_14; + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_start_req_7: + s_n_llhttp__internal__n_start_req_7: { + if (p == endp) { + return s_n_llhttp__internal__n_start_req_7; + } + switch (*p) { + case 'N': { + p++; + goto s_n_llhttp__internal__n_start_req_8; } - case 4: { + case 'P': { p++; - goto s_n_llhttp__internal__n_url_server; + goto s_n_llhttp__internal__n_start_req_9; } - case 5: { - goto s_n_llhttp__internal__n_span_start_stub_path_1; + default: { + goto s_n_llhttp__internal__n_error_48; } - case 6: { + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_start_req_5: + s_n_llhttp__internal__n_start_req_5: { + if (p == endp) { + return s_n_llhttp__internal__n_start_req_5; + } + switch (*p) { + case 'H': { p++; - goto s_n_llhttp__internal__n_url_query; + goto s_n_llhttp__internal__n_start_req_6; } - case 7: { + case 'O': { p++; - goto s_n_llhttp__internal__n_error_31; + goto s_n_llhttp__internal__n_start_req_7; } default: { - goto s_n_llhttp__internal__n_error_32; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_url_server: - s_n_llhttp__internal__n_url_server: { - static uint8_t lookup_table[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 4, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 0, 6, - 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 4, 0, 4, - 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 4, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }; + case s_n_llhttp__internal__n_start_req_12: + s_n_llhttp__internal__n_start_req_12: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_url_server; + return s_n_llhttp__internal__n_start_req_12; } - switch (lookup_table[(uint8_t) *p]) { - case 1: { - goto s_n_llhttp__internal__n_span_end_llhttp__on_url; + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob22, 3); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 0; + goto s_n_llhttp__internal__n_invoke_store_method_1; } - case 2: { - goto s_n_llhttp__internal__n_span_end_llhttp__on_url_1; + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_12; } - case 3: { - goto s_n_llhttp__internal__n_span_end_llhttp__on_url_2; + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_48; } - case 4: { + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_start_req_13: + s_n_llhttp__internal__n_start_req_13: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_start_req_13; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob23, 5); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - goto s_n_llhttp__internal__n_url_server; + match = 35; + goto s_n_llhttp__internal__n_invoke_store_method_1; } - case 5: { - goto s_n_llhttp__internal__n_span_start_stub_path; + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_13; } - case 6: { + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_48; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_start_req_11: + s_n_llhttp__internal__n_start_req_11: { + if (p == endp) { + return s_n_llhttp__internal__n_start_req_11; + } + switch (*p) { + case 'L': { p++; - goto s_n_llhttp__internal__n_url_query; + goto s_n_llhttp__internal__n_start_req_12; } - case 7: { + case 'S': { p++; - goto s_n_llhttp__internal__n_url_server_with_at; + goto s_n_llhttp__internal__n_start_req_13; } default: { - goto s_n_llhttp__internal__n_error_33; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_url_schema_delim_1: - s_n_llhttp__internal__n_url_schema_delim_1: { + case s_n_llhttp__internal__n_start_req_10: + s_n_llhttp__internal__n_start_req_10: { if (p == endp) { - return s_n_llhttp__internal__n_url_schema_delim_1; + return s_n_llhttp__internal__n_start_req_10; } switch (*p) { - case '/': { + case 'E': { p++; - goto s_n_llhttp__internal__n_url_server; + goto s_n_llhttp__internal__n_start_req_11; } default: { - goto s_n_llhttp__internal__n_error_35; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_url_schema_delim: - s_n_llhttp__internal__n_url_schema_delim: { + case s_n_llhttp__internal__n_start_req_14: + s_n_llhttp__internal__n_start_req_14: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_url_schema_delim; + return s_n_llhttp__internal__n_start_req_14; } - switch (*p) { - case 10: { - p++; - goto s_n_llhttp__internal__n_error_34; - } - case 13: { - p++; - goto s_n_llhttp__internal__n_error_34; - } - case ' ': { + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob24, 4); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - goto s_n_llhttp__internal__n_error_34; + match = 45; + goto s_n_llhttp__internal__n_invoke_store_method_1; } - case '/': { - p++; - goto s_n_llhttp__internal__n_url_schema_delim_1; + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_14; } - default: { - goto s_n_llhttp__internal__n_error_35; + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_span_end_stub_schema: - s_n_llhttp__internal__n_span_end_stub_schema: { + case s_n_llhttp__internal__n_start_req_17: + s_n_llhttp__internal__n_start_req_17: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_span_end_stub_schema; + return s_n_llhttp__internal__n_start_req_17; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob26, 9); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 41; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_17; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_48; + } } - p++; - goto s_n_llhttp__internal__n_url_schema_delim; /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_url_schema: - s_n_llhttp__internal__n_url_schema: { - static uint8_t lookup_table[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, - 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, - 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }; + case s_n_llhttp__internal__n_start_req_16: + s_n_llhttp__internal__n_start_req_16: { if (p == endp) { - return s_n_llhttp__internal__n_url_schema; + return s_n_llhttp__internal__n_start_req_16; } - switch (lookup_table[(uint8_t) *p]) { - case 1: { + switch (*p) { + case '_': { p++; - goto s_n_llhttp__internal__n_error_34; + goto s_n_llhttp__internal__n_start_req_17; } - case 2: { - goto s_n_llhttp__internal__n_span_end_stub_schema; + default: { + match = 1; + goto s_n_llhttp__internal__n_invoke_store_method_1; } - case 3: { + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_start_req_15: + s_n_llhttp__internal__n_start_req_15: { + llparse_match_t match_seq; + + if (p == endp) { + return s_n_llhttp__internal__n_start_req_15; + } + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob25, 2); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - goto s_n_llhttp__internal__n_url_schema; + goto s_n_llhttp__internal__n_start_req_16; } - default: { - goto s_n_llhttp__internal__n_error_36; + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_15; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_url_start: - s_n_llhttp__internal__n_url_start: { - static uint8_t lookup_table[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, - 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }; + case s_n_llhttp__internal__n_start_req_18: + s_n_llhttp__internal__n_start_req_18: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_url_start; + return s_n_llhttp__internal__n_start_req_18; } - switch (lookup_table[(uint8_t) *p]) { - case 1: { + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob27, 3); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - goto s_n_llhttp__internal__n_error_34; - } - case 2: { - goto s_n_llhttp__internal__n_span_start_stub_path_2; + match = 2; + goto s_n_llhttp__internal__n_invoke_store_method_1; } - case 3: { - goto s_n_llhttp__internal__n_url_schema; + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_18; } - default: { - goto s_n_llhttp__internal__n_error_37; + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_span_start_llhttp__on_url_1: - s_n_llhttp__internal__n_span_start_llhttp__on_url_1: { + case s_n_llhttp__internal__n_start_req_20: + s_n_llhttp__internal__n_start_req_20: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_span_start_llhttp__on_url_1; + return s_n_llhttp__internal__n_start_req_20; } - state->_span_pos0 = (void*) p; - state->_span_cb0 = llhttp__on_url; - goto s_n_llhttp__internal__n_url_start; - /* UNREACHABLE */; - abort(); - } - case s_n_llhttp__internal__n_span_start_llhttp__on_url: - s_n_llhttp__internal__n_span_start_llhttp__on_url: { - if (p == endp) { - return s_n_llhttp__internal__n_span_start_llhttp__on_url; + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob28, 2); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { + p++; + match = 31; + goto s_n_llhttp__internal__n_invoke_store_method_1; + } + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_20; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_48; + } } - state->_span_pos0 = (void*) p; - state->_span_cb0 = llhttp__on_url; - goto s_n_llhttp__internal__n_url_server; /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_req_spaces_before_url: - s_n_llhttp__internal__n_req_spaces_before_url: { + case s_n_llhttp__internal__n_start_req_21: + s_n_llhttp__internal__n_start_req_21: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_req_spaces_before_url; + return s_n_llhttp__internal__n_start_req_21; } - switch (*p) { - case ' ': { + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob29, 2); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - goto s_n_llhttp__internal__n_req_spaces_before_url; + match = 9; + goto s_n_llhttp__internal__n_invoke_store_method_1; } - default: { - goto s_n_llhttp__internal__n_invoke_is_equal_method; + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_21; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_req_first_space_before_url: - s_n_llhttp__internal__n_req_first_space_before_url: { + case s_n_llhttp__internal__n_start_req_19: + s_n_llhttp__internal__n_start_req_19: { if (p == endp) { - return s_n_llhttp__internal__n_req_first_space_before_url; + return s_n_llhttp__internal__n_start_req_19; } switch (*p) { - case ' ': { + case 'I': { p++; - goto s_n_llhttp__internal__n_req_spaces_before_url; + goto s_n_llhttp__internal__n_start_req_20; + } + case 'O': { + p++; + goto s_n_llhttp__internal__n_start_req_21; } default: { - goto s_n_llhttp__internal__n_error_38; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_1: - s_n_llhttp__internal__n_start_req_1: { + case s_n_llhttp__internal__n_start_req_23: + s_n_llhttp__internal__n_start_req_23: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_1; + return s_n_llhttp__internal__n_start_req_23; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob0, 2); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob30, 6); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 19; + match = 24; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_1; + return s_n_llhttp__internal__n_start_req_23; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_2: - s_n_llhttp__internal__n_start_req_2: { + case s_n_llhttp__internal__n_start_req_24: + s_n_llhttp__internal__n_start_req_24: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_2; + return s_n_llhttp__internal__n_start_req_24; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob18, 3); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob31, 3); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 16; + match = 23; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_2; + return s_n_llhttp__internal__n_start_req_24; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_4: - s_n_llhttp__internal__n_start_req_4: { + case s_n_llhttp__internal__n_start_req_26: + s_n_llhttp__internal__n_start_req_26: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_4; + return s_n_llhttp__internal__n_start_req_26; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob19, 6); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob32, 7); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 22; + match = 21; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_4; + return s_n_llhttp__internal__n_start_req_26; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_6: - s_n_llhttp__internal__n_start_req_6: { + case s_n_llhttp__internal__n_start_req_28: + s_n_llhttp__internal__n_start_req_28: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_6; + return s_n_llhttp__internal__n_start_req_28; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob20, 4); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob33, 6); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 5; + match = 30; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_6; + return s_n_llhttp__internal__n_start_req_28; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_7: - s_n_llhttp__internal__n_start_req_7: { + case s_n_llhttp__internal__n_start_req_29: + s_n_llhttp__internal__n_start_req_29: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_7; + return s_n_llhttp__internal__n_start_req_29; } switch (*p) { - case 'Y': { + case 'L': { p++; - match = 8; + match = 10; goto s_n_llhttp__internal__n_invoke_store_method_1; } default: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_5: - s_n_llhttp__internal__n_start_req_5: { + case s_n_llhttp__internal__n_start_req_27: + s_n_llhttp__internal__n_start_req_27: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_5; + return s_n_llhttp__internal__n_start_req_27; } switch (*p) { - case 'N': { + case 'A': { p++; - goto s_n_llhttp__internal__n_start_req_6; + goto s_n_llhttp__internal__n_start_req_28; } - case 'P': { + case 'O': { p++; - goto s_n_llhttp__internal__n_start_req_7; + goto s_n_llhttp__internal__n_start_req_29; } default: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_3: - s_n_llhttp__internal__n_start_req_3: { + case s_n_llhttp__internal__n_start_req_25: + s_n_llhttp__internal__n_start_req_25: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_3; + return s_n_llhttp__internal__n_start_req_25; } switch (*p) { - case 'H': { + case 'A': { p++; - goto s_n_llhttp__internal__n_start_req_4; + goto s_n_llhttp__internal__n_start_req_26; } - case 'O': { + case 'C': { p++; - goto s_n_llhttp__internal__n_start_req_5; + goto s_n_llhttp__internal__n_start_req_27; } default: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_8: - s_n_llhttp__internal__n_start_req_8: { + case s_n_llhttp__internal__n_start_req_30: + s_n_llhttp__internal__n_start_req_30: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_8; + return s_n_llhttp__internal__n_start_req_30; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob21, 5); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob34, 2); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 0; + match = 11; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_8; + return s_n_llhttp__internal__n_start_req_30; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_48; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_start_req_22: + s_n_llhttp__internal__n_start_req_22: { + if (p == endp) { + return s_n_llhttp__internal__n_start_req_22; + } + switch (*p) { + case '-': { + p++; + goto s_n_llhttp__internal__n_start_req_23; + } + case 'E': { + p++; + goto s_n_llhttp__internal__n_start_req_24; + } + case 'K': { + p++; + goto s_n_llhttp__internal__n_start_req_25; + } + case 'O': { + p++; + goto s_n_llhttp__internal__n_start_req_30; } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + default: { + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_9: - s_n_llhttp__internal__n_start_req_9: { + case s_n_llhttp__internal__n_start_req_31: + s_n_llhttp__internal__n_start_req_31: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_9; + return s_n_llhttp__internal__n_start_req_31; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob22, 2); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob35, 5); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 1; + match = 25; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_9; + return s_n_llhttp__internal__n_start_req_31; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_10: - s_n_llhttp__internal__n_start_req_10: { + case s_n_llhttp__internal__n_start_req_32: + s_n_llhttp__internal__n_start_req_32: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_10; + return s_n_llhttp__internal__n_start_req_32; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob23, 3); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob36, 6); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 2; + match = 6; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_10; + return s_n_llhttp__internal__n_start_req_32; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_12: - s_n_llhttp__internal__n_start_req_12: { + case s_n_llhttp__internal__n_start_req_35: + s_n_llhttp__internal__n_start_req_35: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_12; + return s_n_llhttp__internal__n_start_req_35; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob24, 2); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob37, 2); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 31; + match = 28; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_12; + return s_n_llhttp__internal__n_start_req_35; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_13: - s_n_llhttp__internal__n_start_req_13: { + case s_n_llhttp__internal__n_start_req_36: + s_n_llhttp__internal__n_start_req_36: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_13; + return s_n_llhttp__internal__n_start_req_36; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob25, 2); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob38, 2); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 9; + match = 39; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_13; + return s_n_llhttp__internal__n_start_req_36; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_11: - s_n_llhttp__internal__n_start_req_11: { + case s_n_llhttp__internal__n_start_req_34: + s_n_llhttp__internal__n_start_req_34: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_11; + return s_n_llhttp__internal__n_start_req_34; } switch (*p) { - case 'I': { + case 'T': { p++; - goto s_n_llhttp__internal__n_start_req_12; + goto s_n_llhttp__internal__n_start_req_35; } - case 'O': { + case 'U': { p++; - goto s_n_llhttp__internal__n_start_req_13; + goto s_n_llhttp__internal__n_start_req_36; } default: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_15: - s_n_llhttp__internal__n_start_req_15: { + case s_n_llhttp__internal__n_start_req_37: + s_n_llhttp__internal__n_start_req_37: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_15; + return s_n_llhttp__internal__n_start_req_37; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob26, 6); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob39, 2); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 24; + match = 38; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_15; + return s_n_llhttp__internal__n_start_req_37; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_16: - s_n_llhttp__internal__n_start_req_16: { + case s_n_llhttp__internal__n_start_req_38: + s_n_llhttp__internal__n_start_req_38: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_16; + return s_n_llhttp__internal__n_start_req_38; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob27, 3); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob40, 2); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 23; + match = 3; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_16; + return s_n_llhttp__internal__n_start_req_38; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_18: - s_n_llhttp__internal__n_start_req_18: { + case s_n_llhttp__internal__n_start_req_42: + s_n_llhttp__internal__n_start_req_42: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_18; + return s_n_llhttp__internal__n_start_req_42; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob28, 7); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob41, 3); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 21; + match = 12; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_18; + return s_n_llhttp__internal__n_start_req_42; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_20: - s_n_llhttp__internal__n_start_req_20: { + case s_n_llhttp__internal__n_start_req_43: + s_n_llhttp__internal__n_start_req_43: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_20; + return s_n_llhttp__internal__n_start_req_43; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob29, 6); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob42, 4); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 30; + match = 13; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_20; + return s_n_llhttp__internal__n_start_req_43; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_21: - s_n_llhttp__internal__n_start_req_21: { + case s_n_llhttp__internal__n_start_req_41: + s_n_llhttp__internal__n_start_req_41: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_21; + return s_n_llhttp__internal__n_start_req_41; } switch (*p) { - case 'L': { + case 'F': { p++; - match = 10; - goto s_n_llhttp__internal__n_invoke_store_method_1; + goto s_n_llhttp__internal__n_start_req_42; + } + case 'P': { + p++; + goto s_n_llhttp__internal__n_start_req_43; } default: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_19: - s_n_llhttp__internal__n_start_req_19: { + case s_n_llhttp__internal__n_start_req_40: + s_n_llhttp__internal__n_start_req_40: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_19; + return s_n_llhttp__internal__n_start_req_40; } switch (*p) { - case 'A': { - p++; - goto s_n_llhttp__internal__n_start_req_20; - } - case 'O': { + case 'P': { p++; - goto s_n_llhttp__internal__n_start_req_21; + goto s_n_llhttp__internal__n_start_req_41; } default: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_17: - s_n_llhttp__internal__n_start_req_17: { + case s_n_llhttp__internal__n_start_req_39: + s_n_llhttp__internal__n_start_req_39: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_17; + return s_n_llhttp__internal__n_start_req_39; } switch (*p) { - case 'A': { + case 'I': { p++; - goto s_n_llhttp__internal__n_start_req_18; + match = 34; + goto s_n_llhttp__internal__n_invoke_store_method_1; } - case 'C': { + case 'O': { p++; - goto s_n_llhttp__internal__n_start_req_19; + goto s_n_llhttp__internal__n_start_req_40; } default: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_22: - s_n_llhttp__internal__n_start_req_22: { + case s_n_llhttp__internal__n_start_req_45: + s_n_llhttp__internal__n_start_req_45: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_22; + return s_n_llhttp__internal__n_start_req_45; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob30, 2); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob43, 2); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 11; + match = 29; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_22; + return s_n_llhttp__internal__n_start_req_45; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_14: - s_n_llhttp__internal__n_start_req_14: { + case s_n_llhttp__internal__n_start_req_44: + s_n_llhttp__internal__n_start_req_44: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_14; + return s_n_llhttp__internal__n_start_req_44; } switch (*p) { - case '-': { - p++; - goto s_n_llhttp__internal__n_start_req_15; - } - case 'E': { - p++; - goto s_n_llhttp__internal__n_start_req_16; - } - case 'K': { + case 'R': { p++; - goto s_n_llhttp__internal__n_start_req_17; + goto s_n_llhttp__internal__n_start_req_45; } - case 'O': { + case 'T': { p++; - goto s_n_llhttp__internal__n_start_req_22; + match = 4; + goto s_n_llhttp__internal__n_invoke_store_method_1; } default: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_23: - s_n_llhttp__internal__n_start_req_23: { - llparse_match_t match_seq; - + case s_n_llhttp__internal__n_start_req_33: + s_n_llhttp__internal__n_start_req_33: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_23; + return s_n_llhttp__internal__n_start_req_33; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob31, 5); - p = match_seq.current; - switch (match_seq.status) { - case kMatchComplete: { + switch (*p) { + case 'A': { p++; - match = 25; - goto s_n_llhttp__internal__n_invoke_store_method_1; - } - case kMatchPause: { - return s_n_llhttp__internal__n_start_req_23; + goto s_n_llhttp__internal__n_start_req_34; } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + case 'L': { + p++; + goto s_n_llhttp__internal__n_start_req_37; } - } - /* UNREACHABLE */; - abort(); - } - case s_n_llhttp__internal__n_start_req_24: - s_n_llhttp__internal__n_start_req_24: { - llparse_match_t match_seq; - - if (p == endp) { - return s_n_llhttp__internal__n_start_req_24; - } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob32, 6); - p = match_seq.current; - switch (match_seq.status) { - case kMatchComplete: { + case 'O': { p++; - match = 6; - goto s_n_llhttp__internal__n_invoke_store_method_1; + goto s_n_llhttp__internal__n_start_req_38; } - case kMatchPause: { - return s_n_llhttp__internal__n_start_req_24; + case 'R': { + p++; + goto s_n_llhttp__internal__n_start_req_39; } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + case 'U': { + p++; + goto s_n_llhttp__internal__n_start_req_44; + } + default: { + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_26: - s_n_llhttp__internal__n_start_req_26: { + case s_n_llhttp__internal__n_start_req_48: + s_n_llhttp__internal__n_start_req_48: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_26; + return s_n_llhttp__internal__n_start_req_48; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob33, 3); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob44, 3); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 28; + match = 17; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_26; + return s_n_llhttp__internal__n_start_req_48; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_27: - s_n_llhttp__internal__n_start_req_27: { + case s_n_llhttp__internal__n_start_req_49: + s_n_llhttp__internal__n_start_req_49: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_27; + return s_n_llhttp__internal__n_start_req_49; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob34, 2); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob45, 3); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 3; + match = 44; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_27; + return s_n_llhttp__internal__n_start_req_49; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_31: - s_n_llhttp__internal__n_start_req_31: { + case s_n_llhttp__internal__n_start_req_50: + s_n_llhttp__internal__n_start_req_50: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_31; + return s_n_llhttp__internal__n_start_req_50; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob35, 3); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob46, 5); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 12; + match = 43; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_31; + return s_n_llhttp__internal__n_start_req_50; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_32: - s_n_llhttp__internal__n_start_req_32: { + case s_n_llhttp__internal__n_start_req_51: + s_n_llhttp__internal__n_start_req_51: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_32; + return s_n_llhttp__internal__n_start_req_51; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob36, 4); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob47, 3); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 13; + match = 20; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_32; + return s_n_llhttp__internal__n_start_req_51; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_30: - s_n_llhttp__internal__n_start_req_30: { + case s_n_llhttp__internal__n_start_req_47: + s_n_llhttp__internal__n_start_req_47: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_30; + return s_n_llhttp__internal__n_start_req_47; } switch (*p) { - case 'F': { + case 'B': { p++; - goto s_n_llhttp__internal__n_start_req_31; + goto s_n_llhttp__internal__n_start_req_48; + } + case 'C': { + p++; + goto s_n_llhttp__internal__n_start_req_49; + } + case 'D': { + p++; + goto s_n_llhttp__internal__n_start_req_50; } case 'P': { p++; - goto s_n_llhttp__internal__n_start_req_32; + goto s_n_llhttp__internal__n_start_req_51; } default: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_29: - s_n_llhttp__internal__n_start_req_29: { + case s_n_llhttp__internal__n_start_req_46: + s_n_llhttp__internal__n_start_req_46: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_29; + return s_n_llhttp__internal__n_start_req_46; } switch (*p) { - case 'P': { + case 'E': { p++; - goto s_n_llhttp__internal__n_start_req_30; + goto s_n_llhttp__internal__n_start_req_47; } default: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_28: - s_n_llhttp__internal__n_start_req_28: { + case s_n_llhttp__internal__n_start_req_54: + s_n_llhttp__internal__n_start_req_54: { + llparse_match_t match_seq; + if (p == endp) { - return s_n_llhttp__internal__n_start_req_28; + return s_n_llhttp__internal__n_start_req_54; } - switch (*p) { - case 'I': { + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob48, 3); + p = match_seq.current; + switch (match_seq.status) { + case kMatchComplete: { p++; - match = 34; + match = 14; goto s_n_llhttp__internal__n_invoke_store_method_1; } - case 'O': { + case kMatchPause: { + return s_n_llhttp__internal__n_start_req_54; + } + case kMatchMismatch: { + goto s_n_llhttp__internal__n_error_48; + } + } + /* UNREACHABLE */; + abort(); + } + case s_n_llhttp__internal__n_start_req_56: + s_n_llhttp__internal__n_start_req_56: { + if (p == endp) { + return s_n_llhttp__internal__n_start_req_56; + } + switch (*p) { + case 'P': { p++; - goto s_n_llhttp__internal__n_start_req_29; + match = 37; + goto s_n_llhttp__internal__n_invoke_store_method_1; } default: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_34: - s_n_llhttp__internal__n_start_req_34: { + case s_n_llhttp__internal__n_start_req_57: + s_n_llhttp__internal__n_start_req_57: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_34; + return s_n_llhttp__internal__n_start_req_57; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob37, 2); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob49, 9); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 29; + match = 42; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_34; + return s_n_llhttp__internal__n_start_req_57; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_33: - s_n_llhttp__internal__n_start_req_33: { + case s_n_llhttp__internal__n_start_req_55: + s_n_llhttp__internal__n_start_req_55: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_33; + return s_n_llhttp__internal__n_start_req_55; } switch (*p) { - case 'R': { + case 'U': { p++; - goto s_n_llhttp__internal__n_start_req_34; + goto s_n_llhttp__internal__n_start_req_56; } - case 'T': { + case '_': { p++; - match = 4; - goto s_n_llhttp__internal__n_invoke_store_method_1; + goto s_n_llhttp__internal__n_start_req_57; } default: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_25: - s_n_llhttp__internal__n_start_req_25: { + case s_n_llhttp__internal__n_start_req_53: + s_n_llhttp__internal__n_start_req_53: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_25; + return s_n_llhttp__internal__n_start_req_53; } switch (*p) { case 'A': { p++; - goto s_n_llhttp__internal__n_start_req_26; - } - case 'O': { - p++; - goto s_n_llhttp__internal__n_start_req_27; - } - case 'R': { - p++; - goto s_n_llhttp__internal__n_start_req_28; + goto s_n_llhttp__internal__n_start_req_54; } - case 'U': { + case 'T': { p++; - goto s_n_llhttp__internal__n_start_req_33; + goto s_n_llhttp__internal__n_start_req_55; } default: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_37: - s_n_llhttp__internal__n_start_req_37: { + case s_n_llhttp__internal__n_start_req_58: + s_n_llhttp__internal__n_start_req_58: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_37; + return s_n_llhttp__internal__n_start_req_58; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob38, 3); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob50, 4); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 17; + match = 33; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_37; + return s_n_llhttp__internal__n_start_req_58; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_38: - s_n_llhttp__internal__n_start_req_38: { + case s_n_llhttp__internal__n_start_req_59: + s_n_llhttp__internal__n_start_req_59: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_38; + return s_n_llhttp__internal__n_start_req_59; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob39, 3); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob51, 7); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 20; + match = 26; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_38; + return s_n_llhttp__internal__n_start_req_59; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_36: - s_n_llhttp__internal__n_start_req_36: { + case s_n_llhttp__internal__n_start_req_52: + s_n_llhttp__internal__n_start_req_52: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_36; + return s_n_llhttp__internal__n_start_req_52; } switch (*p) { - case 'B': { + case 'E': { p++; - goto s_n_llhttp__internal__n_start_req_37; + goto s_n_llhttp__internal__n_start_req_53; } - case 'P': { + case 'O': { p++; - goto s_n_llhttp__internal__n_start_req_38; - } - default: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_start_req_58; } - } - /* UNREACHABLE */; - abort(); - } - case s_n_llhttp__internal__n_start_req_35: - s_n_llhttp__internal__n_start_req_35: { - if (p == endp) { - return s_n_llhttp__internal__n_start_req_35; - } - switch (*p) { - case 'E': { + case 'U': { p++; - goto s_n_llhttp__internal__n_start_req_36; + goto s_n_llhttp__internal__n_start_req_59; } default: { - goto s_n_llhttp__internal__n_error_46; - } - } - /* UNREACHABLE */; - abort(); - } - case s_n_llhttp__internal__n_start_req_40: - s_n_llhttp__internal__n_start_req_40: { - llparse_match_t match_seq; - - if (p == endp) { - return s_n_llhttp__internal__n_start_req_40; - } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob40, 4); - p = match_seq.current; - switch (match_seq.status) { - case kMatchComplete: { - p++; - match = 14; - goto s_n_llhttp__internal__n_invoke_store_method_1; - } - case kMatchPause: { - return s_n_llhttp__internal__n_start_req_40; - } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_41: - s_n_llhttp__internal__n_start_req_41: { + case s_n_llhttp__internal__n_start_req_61: + s_n_llhttp__internal__n_start_req_61: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_41; + return s_n_llhttp__internal__n_start_req_61; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob41, 4); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob52, 6); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 33; + match = 40; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_41; + return s_n_llhttp__internal__n_start_req_61; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_42: - s_n_llhttp__internal__n_start_req_42: { + case s_n_llhttp__internal__n_start_req_62: + s_n_llhttp__internal__n_start_req_62: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_42; + return s_n_llhttp__internal__n_start_req_62; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob42, 7); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob53, 3); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { p++; - match = 26; + match = 7; goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_42; + return s_n_llhttp__internal__n_start_req_62; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; - } - } - /* UNREACHABLE */; - abort(); - } - case s_n_llhttp__internal__n_start_req_39: - s_n_llhttp__internal__n_start_req_39: { - if (p == endp) { - return s_n_llhttp__internal__n_start_req_39; - } - switch (*p) { - case 'E': { - p++; - goto s_n_llhttp__internal__n_start_req_40; - } - case 'O': { - p++; - goto s_n_llhttp__internal__n_start_req_41; - } - case 'U': { - p++; - goto s_n_llhttp__internal__n_start_req_42; - } - default: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; - abort(); - } - case s_n_llhttp__internal__n_start_req_43: - s_n_llhttp__internal__n_start_req_43: { - llparse_match_t match_seq; - + abort(); + } + case s_n_llhttp__internal__n_start_req_60: + s_n_llhttp__internal__n_start_req_60: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_43; + return s_n_llhttp__internal__n_start_req_60; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob43, 4); - p = match_seq.current; - switch (match_seq.status) { - case kMatchComplete: { + switch (*p) { + case 'E': { p++; - match = 7; - goto s_n_llhttp__internal__n_invoke_store_method_1; + goto s_n_llhttp__internal__n_start_req_61; } - case kMatchPause: { - return s_n_llhttp__internal__n_start_req_43; + case 'R': { + p++; + goto s_n_llhttp__internal__n_start_req_62; } - case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + default: { + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_46: - s_n_llhttp__internal__n_start_req_46: { + case s_n_llhttp__internal__n_start_req_65: + s_n_llhttp__internal__n_start_req_65: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_46; + return s_n_llhttp__internal__n_start_req_65; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob44, 3); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob54, 3); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { @@ -11018,23 +12176,23 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_46; + return s_n_llhttp__internal__n_start_req_65; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_48: - s_n_llhttp__internal__n_start_req_48: { + case s_n_llhttp__internal__n_start_req_67: + s_n_llhttp__internal__n_start_req_67: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_48; + return s_n_llhttp__internal__n_start_req_67; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob45, 2); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob55, 2); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { @@ -11043,23 +12201,23 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_48; + return s_n_llhttp__internal__n_start_req_67; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_49: - s_n_llhttp__internal__n_start_req_49: { + case s_n_llhttp__internal__n_start_req_68: + s_n_llhttp__internal__n_start_req_68: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_49; + return s_n_llhttp__internal__n_start_req_68; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob46, 2); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob56, 2); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { @@ -11068,44 +12226,44 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_49; + return s_n_llhttp__internal__n_start_req_68; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_47: - s_n_llhttp__internal__n_start_req_47: { + case s_n_llhttp__internal__n_start_req_66: + s_n_llhttp__internal__n_start_req_66: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_47; + return s_n_llhttp__internal__n_start_req_66; } switch (*p) { case 'I': { p++; - goto s_n_llhttp__internal__n_start_req_48; + goto s_n_llhttp__internal__n_start_req_67; } case 'O': { p++; - goto s_n_llhttp__internal__n_start_req_49; + goto s_n_llhttp__internal__n_start_req_68; } default: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_50: - s_n_llhttp__internal__n_start_req_50: { + case s_n_llhttp__internal__n_start_req_69: + s_n_llhttp__internal__n_start_req_69: { llparse_match_t match_seq; if (p == endp) { - return s_n_llhttp__internal__n_start_req_50; + return s_n_llhttp__internal__n_start_req_69; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob47, 8); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob57, 8); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { @@ -11114,52 +12272,52 @@ static llparse_state_t llhttp__internal__run( goto s_n_llhttp__internal__n_invoke_store_method_1; } case kMatchPause: { - return s_n_llhttp__internal__n_start_req_50; + return s_n_llhttp__internal__n_start_req_69; } case kMatchMismatch: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_45: - s_n_llhttp__internal__n_start_req_45: { + case s_n_llhttp__internal__n_start_req_64: + s_n_llhttp__internal__n_start_req_64: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_45; + return s_n_llhttp__internal__n_start_req_64; } switch (*p) { case 'B': { p++; - goto s_n_llhttp__internal__n_start_req_46; + goto s_n_llhttp__internal__n_start_req_65; } case 'L': { p++; - goto s_n_llhttp__internal__n_start_req_47; + goto s_n_llhttp__internal__n_start_req_66; } case 'S': { p++; - goto s_n_llhttp__internal__n_start_req_50; + goto s_n_llhttp__internal__n_start_req_69; } default: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; abort(); } - case s_n_llhttp__internal__n_start_req_44: - s_n_llhttp__internal__n_start_req_44: { + case s_n_llhttp__internal__n_start_req_63: + s_n_llhttp__internal__n_start_req_63: { if (p == endp) { - return s_n_llhttp__internal__n_start_req_44; + return s_n_llhttp__internal__n_start_req_63; } switch (*p) { case 'N': { p++; - goto s_n_llhttp__internal__n_start_req_45; + goto s_n_llhttp__internal__n_start_req_64; } default: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; @@ -11177,62 +12335,66 @@ static llparse_state_t llhttp__internal__run( } case 'B': { p++; - goto s_n_llhttp__internal__n_start_req_2; + goto s_n_llhttp__internal__n_start_req_4; } case 'C': { p++; - goto s_n_llhttp__internal__n_start_req_3; + goto s_n_llhttp__internal__n_start_req_5; } case 'D': { p++; - goto s_n_llhttp__internal__n_start_req_8; + goto s_n_llhttp__internal__n_start_req_10; + } + case 'F': { + p++; + goto s_n_llhttp__internal__n_start_req_14; } case 'G': { p++; - goto s_n_llhttp__internal__n_start_req_9; + goto s_n_llhttp__internal__n_start_req_15; } case 'H': { p++; - goto s_n_llhttp__internal__n_start_req_10; + goto s_n_llhttp__internal__n_start_req_18; } case 'L': { p++; - goto s_n_llhttp__internal__n_start_req_11; + goto s_n_llhttp__internal__n_start_req_19; } case 'M': { p++; - goto s_n_llhttp__internal__n_start_req_14; + goto s_n_llhttp__internal__n_start_req_22; } case 'N': { p++; - goto s_n_llhttp__internal__n_start_req_23; + goto s_n_llhttp__internal__n_start_req_31; } case 'O': { p++; - goto s_n_llhttp__internal__n_start_req_24; + goto s_n_llhttp__internal__n_start_req_32; } case 'P': { p++; - goto s_n_llhttp__internal__n_start_req_25; + goto s_n_llhttp__internal__n_start_req_33; } case 'R': { p++; - goto s_n_llhttp__internal__n_start_req_35; + goto s_n_llhttp__internal__n_start_req_46; } case 'S': { p++; - goto s_n_llhttp__internal__n_start_req_39; + goto s_n_llhttp__internal__n_start_req_52; } case 'T': { p++; - goto s_n_llhttp__internal__n_start_req_43; + goto s_n_llhttp__internal__n_start_req_60; } case 'U': { p++; - goto s_n_llhttp__internal__n_start_req_44; + goto s_n_llhttp__internal__n_start_req_63; } default: { - goto s_n_llhttp__internal__n_error_46; + goto s_n_llhttp__internal__n_error_48; } } /* UNREACHABLE */; @@ -11317,7 +12479,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_40; + goto s_n_llhttp__internal__n_error_42; } } /* UNREACHABLE */; @@ -11397,7 +12559,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_41; + goto s_n_llhttp__internal__n_error_43; } } /* UNREACHABLE */; @@ -11460,7 +12622,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_42; + goto s_n_llhttp__internal__n_error_44; } } /* UNREACHABLE */; @@ -11477,7 +12639,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_43; + goto s_n_llhttp__internal__n_error_45; } } /* UNREACHABLE */; @@ -11540,7 +12702,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_44; + goto s_n_llhttp__internal__n_error_46; } } /* UNREACHABLE */; @@ -11553,7 +12715,7 @@ static llparse_state_t llhttp__internal__run( if (p == endp) { return s_n_llhttp__internal__n_start_res; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob48, 5); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob58, 5); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { @@ -11564,7 +12726,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_47; + goto s_n_llhttp__internal__n_error_49; } } /* UNREACHABLE */; @@ -11577,7 +12739,7 @@ static llparse_state_t llhttp__internal__run( if (p == endp) { return s_n_llhttp__internal__n_req_or_res_method_2; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob49, 2); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob59, 2); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { @@ -11589,7 +12751,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_45; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11602,7 +12764,7 @@ static llparse_state_t llhttp__internal__run( if (p == endp) { return s_n_llhttp__internal__n_req_or_res_method_3; } - match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob50, 3); + match_seq = llparse__match_sequence_id(state, p, endp, llparse_blob60, 3); p = match_seq.current; switch (match_seq.status) { case kMatchComplete: { @@ -11613,7 +12775,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_45; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11634,7 +12796,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_45; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11651,7 +12813,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_45; + goto s_n_llhttp__internal__n_error_47; } } /* UNREACHABLE */; @@ -11711,7 +12873,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */ abort(); } - s_n_llhttp__internal__n_error_34: { + s_n_llhttp__internal__n_error_36: { state->error = 0x7; state->reason = "Invalid characters in url"; state->error_pos = (const char*) p; @@ -12682,7 +13844,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_22: { + s_n_llhttp__internal__n_error_23: { state->error = 0x9; state->reason = "Expected CRLF after version"; state->error_pos = (const char*) p; @@ -12699,7 +13861,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_23: { + s_n_llhttp__internal__n_error_24: { state->error = 0x9; state->reason = "Invalid minor version"; state->error_pos = (const char*) p; @@ -12708,7 +13870,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_24: { + s_n_llhttp__internal__n_error_25: { state->error = 0x9; state->reason = "Expected dot"; state->error_pos = (const char*) p; @@ -12725,7 +13887,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_25: { + s_n_llhttp__internal__n_error_26: { state->error = 0x9; state->reason = "Invalid major version"; state->error_pos = (const char*) p; @@ -12734,7 +13896,94 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_27: { + s_n_llhttp__internal__n_error_22: { + state->error = 0x8; + state->reason = "Invalid method for HTTP/x.x request"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_load_method: { + switch (llhttp__internal__c_load_method(state, p, endp)) { + case 0: + goto s_n_llhttp__internal__n_req_http_major; + case 1: + goto s_n_llhttp__internal__n_req_http_major; + case 2: + goto s_n_llhttp__internal__n_req_http_major; + case 3: + goto s_n_llhttp__internal__n_req_http_major; + case 4: + goto s_n_llhttp__internal__n_req_http_major; + case 5: + goto s_n_llhttp__internal__n_req_http_major; + case 6: + goto s_n_llhttp__internal__n_req_http_major; + case 7: + goto s_n_llhttp__internal__n_req_http_major; + case 8: + goto s_n_llhttp__internal__n_req_http_major; + case 9: + goto s_n_llhttp__internal__n_req_http_major; + case 10: + goto s_n_llhttp__internal__n_req_http_major; + case 11: + goto s_n_llhttp__internal__n_req_http_major; + case 12: + goto s_n_llhttp__internal__n_req_http_major; + case 13: + goto s_n_llhttp__internal__n_req_http_major; + case 14: + goto s_n_llhttp__internal__n_req_http_major; + case 15: + goto s_n_llhttp__internal__n_req_http_major; + case 16: + goto s_n_llhttp__internal__n_req_http_major; + case 17: + goto s_n_llhttp__internal__n_req_http_major; + case 18: + goto s_n_llhttp__internal__n_req_http_major; + case 19: + goto s_n_llhttp__internal__n_req_http_major; + case 20: + goto s_n_llhttp__internal__n_req_http_major; + case 21: + goto s_n_llhttp__internal__n_req_http_major; + case 22: + goto s_n_llhttp__internal__n_req_http_major; + case 23: + goto s_n_llhttp__internal__n_req_http_major; + case 24: + goto s_n_llhttp__internal__n_req_http_major; + case 25: + goto s_n_llhttp__internal__n_req_http_major; + case 26: + goto s_n_llhttp__internal__n_req_http_major; + case 27: + goto s_n_llhttp__internal__n_req_http_major; + case 28: + goto s_n_llhttp__internal__n_req_http_major; + case 29: + goto s_n_llhttp__internal__n_req_http_major; + case 30: + goto s_n_llhttp__internal__n_req_http_major; + case 31: + goto s_n_llhttp__internal__n_req_http_major; + case 32: + goto s_n_llhttp__internal__n_req_http_major; + case 33: + goto s_n_llhttp__internal__n_req_http_major; + case 34: + goto s_n_llhttp__internal__n_req_http_major; + default: + goto s_n_llhttp__internal__n_error_22; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_29: { state->error = 0x8; state->reason = "Expected HTTP/"; state->error_pos = (const char*) p; @@ -12743,7 +13992,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_26: { + s_n_llhttp__internal__n_error_27: { state->error = 0x8; state->reason = "Expected SOURCE method for ICE/x.x request"; state->error_pos = (const char*) p; @@ -12752,12 +14001,57 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_invoke_is_equal_method_1: { - switch (llhttp__internal__c_is_equal_method_1(state, p, endp)) { - case 0: - goto s_n_llhttp__internal__n_error_26; + s_n_llhttp__internal__n_invoke_load_method_1: { + switch (llhttp__internal__c_load_method(state, p, endp)) { + case 33: + goto s_n_llhttp__internal__n_req_http_major; default: + goto s_n_llhttp__internal__n_error_27; + } + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_error_28: { + state->error = 0x8; + state->reason = "Invalid method for RTSP/x.x request"; + state->error_pos = (const char*) p; + state->_current = (void*) (intptr_t) s_error; + return s_error; + /* UNREACHABLE */; + abort(); + } + s_n_llhttp__internal__n_invoke_load_method_2: { + switch (llhttp__internal__c_load_method(state, p, endp)) { + case 1: + goto s_n_llhttp__internal__n_req_http_major; + case 3: + goto s_n_llhttp__internal__n_req_http_major; + case 6: + goto s_n_llhttp__internal__n_req_http_major; + case 35: + goto s_n_llhttp__internal__n_req_http_major; + case 36: goto s_n_llhttp__internal__n_req_http_major; + case 37: + goto s_n_llhttp__internal__n_req_http_major; + case 38: + goto s_n_llhttp__internal__n_req_http_major; + case 39: + goto s_n_llhttp__internal__n_req_http_major; + case 40: + goto s_n_llhttp__internal__n_req_http_major; + case 41: + goto s_n_llhttp__internal__n_req_http_major; + case 42: + goto s_n_llhttp__internal__n_req_http_major; + case 43: + goto s_n_llhttp__internal__n_req_http_major; + case 44: + goto s_n_llhttp__internal__n_req_http_major; + case 45: + goto s_n_llhttp__internal__n_req_http_major; + default: + goto s_n_llhttp__internal__n_error_28; } /* UNREACHABLE */; abort(); @@ -12830,7 +14124,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_28: { + s_n_llhttp__internal__n_error_30: { state->error = 0x7; state->reason = "Invalid char in url fragment start"; state->error_pos = (const char*) p; @@ -12890,7 +14184,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_29: { + s_n_llhttp__internal__n_error_31: { state->error = 0x7; state->reason = "Invalid char in url query"; state->error_pos = (const char*) p; @@ -12899,7 +14193,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_30: { + s_n_llhttp__internal__n_error_32: { state->error = 0x7; state->reason = "Invalid char in url path"; state->error_pos = (const char*) p; @@ -13010,7 +14304,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_31: { + s_n_llhttp__internal__n_error_33: { state->error = 0x7; state->reason = "Double @ in url"; state->error_pos = (const char*) p; @@ -13019,7 +14313,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_32: { + s_n_llhttp__internal__n_error_34: { state->error = 0x7; state->reason = "Unexpected char in url server"; state->error_pos = (const char*) p; @@ -13028,7 +14322,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_33: { + s_n_llhttp__internal__n_error_35: { state->error = 0x7; state->reason = "Unexpected char in url server"; state->error_pos = (const char*) p; @@ -13037,7 +14331,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_35: { + s_n_llhttp__internal__n_error_37: { state->error = 0x7; state->reason = "Unexpected char in url schema"; state->error_pos = (const char*) p; @@ -13046,7 +14340,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_36: { + s_n_llhttp__internal__n_error_38: { state->error = 0x7; state->reason = "Unexpected char in url schema"; state->error_pos = (const char*) p; @@ -13055,7 +14349,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_37: { + s_n_llhttp__internal__n_error_39: { state->error = 0x7; state->reason = "Unexpected start char in url"; state->error_pos = (const char*) p; @@ -13074,7 +14368,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_38: { + s_n_llhttp__internal__n_error_40: { state->error = 0x6; state->reason = "Expected space after method"; state->error_pos = (const char*) p; @@ -13091,7 +14385,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_46: { + s_n_llhttp__internal__n_error_48: { state->error = 0x6; state->reason = "Invalid method encountered"; state->error_pos = (const char*) p; @@ -13100,7 +14394,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_39: { + s_n_llhttp__internal__n_error_41: { state->error = 0xd; state->reason = "Response overflow"; state->error_pos = (const char*) p; @@ -13112,7 +14406,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_39; + goto s_n_llhttp__internal__n_error_41; default: goto s_n_llhttp__internal__n_res_status_code; } @@ -13155,7 +14449,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_40: { + s_n_llhttp__internal__n_error_42: { state->error = 0xd; state->reason = "Invalid response status"; state->error_pos = (const char*) p; @@ -13172,7 +14466,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_41: { + s_n_llhttp__internal__n_error_43: { state->error = 0x9; state->reason = "Expected space after version"; state->error_pos = (const char*) p; @@ -13189,7 +14483,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_42: { + s_n_llhttp__internal__n_error_44: { state->error = 0x9; state->reason = "Invalid minor version"; state->error_pos = (const char*) p; @@ -13198,7 +14492,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_43: { + s_n_llhttp__internal__n_error_45: { state->error = 0x9; state->reason = "Expected dot"; state->error_pos = (const char*) p; @@ -13215,7 +14509,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_44: { + s_n_llhttp__internal__n_error_46: { state->error = 0x9; state->reason = "Invalid major version"; state->error_pos = (const char*) p; @@ -13224,7 +14518,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_47: { + s_n_llhttp__internal__n_error_49: { state->error = 0x8; state->reason = "Expected HTTP/"; state->error_pos = (const char*) p; @@ -13249,7 +14543,7 @@ static llparse_state_t llhttp__internal__run( /* UNREACHABLE */; abort(); } - s_n_llhttp__internal__n_error_45: { + s_n_llhttp__internal__n_error_47: { state->error = 0x8; state->reason = "Invalid word encountered"; state->error_pos = (const char*) p;