Mercurial > hg > nginx
changeset 723:ceb5ef29b119
fix proxy_redirect with variable
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 26 Sep 2006 21:15:52 +0000 |
parents | 0ca72814cb3f |
children | 1e9977fd34aa |
files | src/http/modules/ngx_http_proxy_module.c |
diffstat | 1 files changed, 7 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/http/modules/ngx_http_proxy_module.c +++ b/src/http/modules/ngx_http_proxy_module.c @@ -1397,8 +1397,11 @@ ngx_http_proxy_rewrite_redirect_vars(ngx e.ip = pr->replacement.vars.lengths; e.request = r; - for (len = prefix; *(uintptr_t *) e.ip; len += lcode(&e)) { + len = prefix + h->value.len - pr->redirect.len; + + while (*(uintptr_t *) e.ip) { lcode = *(ngx_http_script_len_code_pt *) e.ip; + len += lcode(&e); } data = ngx_palloc(r->pool, len); @@ -1418,6 +1421,9 @@ ngx_http_proxy_rewrite_redirect_vars(ngx code(&e); } + ngx_memcpy(e.pos, h->value.data + prefix + pr->redirect.len, + h->value.len - pr->redirect.len - prefix); + h->value.len = len; h->value.data = data;