From: Maxim Dounin Date: Mon, 13 Feb 2012 15:31:07 +0000 (+0000) Subject: Variables: honor no_cacheable for not_found variables. X-Git-Tag: release-1.1.15~11 X-Git-Url: http://git.kaiwu.me/postgresql/log/contrib/postgres_fdw/static/gitweb.js?a=commitdiff_plain;h=947fc03ca30e355fd562404f7e0b3ff0ec232c66;p=nginx.git Variables: honor no_cacheable for not_found variables. Variables with the "not_found" flag set follow the same rules as ones with the "valid" flag set. Make sure ngx_http_get_flushed_variable() will flush non-cacheable variables with the "not_found" flag set. This fixes at least one known problem with $args not available in a subrequest (with args) when there were no args in the main request and $args variable was queried in the main request (reported by Laurence Rowe aka elro on irc). Also this eliminates unneeded call to ngx_http_get_indexed_variable() in cacheable case (as it will return cached value anyway). --- diff --git a/src/http/ngx_http_variables.c b/src/http/ngx_http_variables.c index d6bb92c98..78cfa234a 100644 --- a/src/http/ngx_http_variables.c +++ b/src/http/ngx_http_variables.c @@ -432,7 +432,7 @@ ngx_http_get_flushed_variable(ngx_http_request_t *r, ngx_uint_t index) v = &r->variables[index]; - if (v->valid) { + if (v->valid || v->not_found) { if (!v->no_cacheable) { return v; }