14,15d13 < typedef nxt_int_t (*nxt_http_field_handler_t)(void *ctx, nxt_str_t *name, < nxt_str_t *value, uintptr_t data); 17d14 < 19,20c16,17 < u_char str[8]; < uint64_t ui64; --- > u_char str[8]; > uint64_t ui64; 24,26c21,25 < struct nxt_http_request_parse_s { < nxt_int_t (*handler)(nxt_http_request_parse_t *rp, < u_char **pos, u_char *end); --- > typedef struct { > union { > uint8_t str[32]; > uint64_t ui64[4]; > } key; 28c27,29 < size_t offset; --- > nxt_str_t name; > nxt_str_t value; > } nxt_http_field_t; 30d30 < nxt_str_t method; 32,35c32,34 < u_char *target_start; < u_char *target_end; < u_char *exten_start; < u_char *args_start; --- > struct nxt_http_request_parse_s { > nxt_int_t (*handler)(nxt_http_request_parse_t *rp, > u_char **pos, u_char *end); 37c36 < nxt_http_ver_t version; --- > size_t offset; 39,42c38 < union { < uint8_t str[32]; < uint64_t ui64[4]; < } field_name_key; --- > nxt_str_t method; 44,45c40,43 < nxt_str_t field_name; < nxt_str_t field_value; --- > u_char *target_start; > u_char *target_end; > u_char *exten_start; > u_char *args_start; 47,48c45 < nxt_http_fields_hash_t *hash; < void *ctx; --- > nxt_http_ver_t version; 49a47,49 > nxt_http_field_t field; > nxt_list_t *fields; > 51c51 < unsigned complex_target:1; --- > unsigned complex_target:1; 53c53 < unsigned quoted_target:1; --- > unsigned quoted_target:1; 55c55 < unsigned space_in_target:1; --- > unsigned space_in_target:1; 57c57 < unsigned plus_in_target:1; --- > unsigned plus_in_target:1; 60a61,65 > typedef nxt_int_t (*nxt_http_field_handler_t)(void *ctx, > nxt_http_field_t *field, > uintptr_t data, nxt_log_t *log); > > 65c70 < } nxt_http_fields_t; --- > } nxt_http_fields_hash_entry_t; 67a73,84 > nxt_inline nxt_int_t > nxt_http_parse_request_init(nxt_http_request_parse_t *rp, nxt_mem_pool_t *mp) > { > rp->fields = nxt_list_create(mp, 8, sizeof(nxt_http_field_t)); > if (nxt_slow_path(rp->fields == NULL)){ > return NXT_ERROR; > } > > return NXT_OK; > } > > 70,71d86 < nxt_http_fields_hash_t *nxt_http_fields_hash(nxt_http_fields_t *fields, < nxt_mem_pool_t *mp); 72a88,91 > nxt_http_fields_hash_t *nxt_http_fields_hash_create( > nxt_http_fields_hash_entry_t *entries, nxt_mem_pool_t *mp); > nxt_http_fields_hash_entry_t *nxt_http_fields_hash_lookup( > nxt_http_fields_hash_t *hash, nxt_http_field_t *field); 73a93,96 > nxt_int_t nxt_http_fields_process(nxt_list_t *fields, > nxt_http_fields_hash_t *hash, void *ctx, nxt_log_t *log); > >