diff options
Diffstat (limited to 'src/http/ngx_http_variables.c')
-rw-r--r-- | src/http/ngx_http_variables.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/http/ngx_http_variables.c b/src/http/ngx_http_variables.c index 12ab5154b..d66f0dc6c 100644 --- a/src/http/ngx_http_variables.c +++ b/src/http/ngx_http_variables.c @@ -276,7 +276,12 @@ ngx_http_get_variable(ngx_http_request_t *r, ngx_str_t *name) if (v[key].name.len == name->len && ngx_strncmp(v[key].name.data, name->data, name->len) == 0) { - return v[key].handler(r, v[key].data); + if (v[key].flags & NGX_HTTP_VAR_INDEXED) { + return ngx_http_get_indexed_variable(r, v[key].data); + + } else { + return v[key].handler(r, v[key].data); + } } if (ngx_strncmp(name->data, "http_", 5) == 0) { @@ -701,7 +706,7 @@ ngx_http_variables_init_vars(ngx_conf_t *cf) { v[i].handler = av[n].handler; v[i].data = av[n].data; - v[i].flags = av[n].flags; + v[i].flags = av[n].flags | NGX_HTTP_VAR_INDEXED; goto next; } |