fix proxy_redirect with variable
diff --git a/src/http/modules/ngx_http_proxy_module.c b/src/http/modules/ngx_http_proxy_module.c
index 0d80b31..f4007be 100644
--- a/src/http/modules/ngx_http_proxy_module.c
+++ b/src/http/modules/ngx_http_proxy_module.c
@@ -1397,8 +1397,11 @@
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 @@
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;