Previously, "e.flushed = 1;" was incorrectly used during initial length
calculations, and as a result non-cacheable variables were not flushed.
The fix is to only set "e.flushed" when evaluating values.
A similar issue in try_files was fixed in 2424:
46d11bff21ef (0.7.29).
Origin: <https://freenginx.org/hg/nginx/rev/
511b31fbc525>
Signed-off-by: Roman Arutyunyan <arut@nginx.com>
e.ip = index[i].lengths->elts;
e.request = r;
- e.flushed = 1;
/* 1 is for terminating '\0' as in static names */
len = 1;
e.ip = index[i].values->elts;
e.pos = name;
e.end = name + allocated;
+ e.flushed = 1;
while (*(uintptr_t *) e.ip) {
code = *(ngx_http_script_code_pt *) e.ip;