53 lines
1.2 KiB
C
53 lines
1.2 KiB
C
|
|
/*
|
|
* Copyright (c) Yichun Zhang (agentzh)
|
|
*/
|
|
|
|
|
|
#ifndef NGX_HTTP_HEADERS_MORE_UTIL_H
|
|
#define NGX_HTTP_HEADERS_MORE_UTIL_H
|
|
|
|
|
|
#include "ngx_http_headers_more_filter_module.h"
|
|
|
|
|
|
#define ngx_http_headers_more_hash_literal(s) \
|
|
ngx_http_headers_more_hash_str((u_char *) s, sizeof(s) - 1)
|
|
|
|
|
|
static ngx_inline ngx_uint_t
|
|
ngx_http_headers_more_hash_str(u_char *src, size_t n)
|
|
{
|
|
ngx_uint_t key;
|
|
|
|
key = 0;
|
|
|
|
while (n--) {
|
|
key = ngx_hash(key, *src);
|
|
src++;
|
|
}
|
|
|
|
return key;
|
|
}
|
|
|
|
|
|
extern ngx_uint_t ngx_http_headers_more_location_hash;
|
|
|
|
|
|
ngx_int_t ngx_http_headers_more_parse_header(ngx_conf_t *cf,
|
|
ngx_str_t *cmd_name, ngx_str_t *raw_header, ngx_array_t *headers,
|
|
ngx_http_headers_more_opcode_t opcode,
|
|
ngx_http_headers_more_set_header_t *handlers);
|
|
|
|
ngx_int_t ngx_http_headers_more_parse_statuses(ngx_log_t *log,
|
|
ngx_str_t *cmd_name, ngx_str_t *value, ngx_array_t *statuses);
|
|
|
|
ngx_int_t ngx_http_headers_more_parse_types(ngx_log_t *log,
|
|
ngx_str_t *cmd_name, ngx_str_t *value, ngx_array_t *types);
|
|
|
|
ngx_int_t ngx_http_headers_more_rm_header_helper(ngx_list_t *l,
|
|
ngx_list_part_t *cur, ngx_uint_t i);
|
|
|
|
|
|
#endif /* NGX_HTTP_HEADERS_MORE_UTIL_H */
|