mirror of
https://github.com/nginx/nginx.git
synced 2024-11-28 08:09:00 +08:00
change ngx_http_map_find(): use case sensitive regexes
This commit is contained in:
parent
36aadf7eba
commit
53d05b969b
@ -111,7 +111,6 @@ ngx_http_map_variable(ngx_http_request_t *r, ngx_http_variable_value_t *v,
|
|||||||
|
|
||||||
size_t len;
|
size_t len;
|
||||||
ngx_str_t val;
|
ngx_str_t val;
|
||||||
ngx_uint_t key;
|
|
||||||
ngx_http_variable_value_t *value;
|
ngx_http_variable_value_t *value;
|
||||||
|
|
||||||
ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
|
ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
|
||||||
@ -127,9 +126,7 @@ ngx_http_map_variable(ngx_http_request_t *r, ngx_http_variable_value_t *v,
|
|||||||
len--;
|
len--;
|
||||||
}
|
}
|
||||||
|
|
||||||
key = ngx_hash_strlow(val.data, val.data, len);
|
value = ngx_http_map_find(r, &map->map, &val);
|
||||||
|
|
||||||
value = ngx_http_map_find(r, &map->map, key, val.data, len, &val);
|
|
||||||
|
|
||||||
if (value == NULL) {
|
if (value == NULL) {
|
||||||
value = map->default_value;
|
value = map->default_value;
|
||||||
|
@ -1661,14 +1661,30 @@ ngx_http_variable_pid(ngx_http_request_t *r,
|
|||||||
|
|
||||||
|
|
||||||
void *
|
void *
|
||||||
ngx_http_map_find(ngx_http_request_t *r, ngx_http_map_t *map, ngx_uint_t key,
|
ngx_http_map_find(ngx_http_request_t *r, ngx_http_map_t *map, ngx_str_t *match)
|
||||||
u_char *text, size_t len, ngx_str_t *match)
|
|
||||||
{
|
{
|
||||||
void *p;
|
void *value;
|
||||||
|
u_char *low;
|
||||||
|
size_t len;
|
||||||
|
ngx_uint_t key;
|
||||||
|
|
||||||
p = ngx_hash_find_combined(&map->hash, key, text, len);
|
len = match->len;
|
||||||
if (p) {
|
|
||||||
return p;
|
if (len) {
|
||||||
|
low = ngx_pnalloc(r->pool, len);
|
||||||
|
if (low == NULL) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
low = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
key = ngx_hash_strlow(low, match->data, len);
|
||||||
|
|
||||||
|
value = ngx_hash_find_combined(&map->hash, key, low, len);
|
||||||
|
if (value) {
|
||||||
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if (NGX_PCRE)
|
#if (NGX_PCRE)
|
||||||
|
@ -100,7 +100,7 @@ typedef struct {
|
|||||||
|
|
||||||
|
|
||||||
void *ngx_http_map_find(ngx_http_request_t *r, ngx_http_map_t *map,
|
void *ngx_http_map_find(ngx_http_request_t *r, ngx_http_map_t *map,
|
||||||
ngx_uint_t key, u_char *text, size_t len, ngx_str_t *match);
|
ngx_str_t *match);
|
||||||
|
|
||||||
|
|
||||||
ngx_int_t ngx_http_variables_add_core_vars(ngx_conf_t *cf);
|
ngx_int_t ngx_http_variables_add_core_vars(ngx_conf_t *cf);
|
||||||
|
Loading…
Reference in New Issue
Block a user