~guilhem-fr/nginx/nginx-1.0

« back to all changes in this revision

Viewing changes to src/http/ngx_http_variables.c

  • Committer: mdounin
  • Date: 2012-03-05 12:36:51 UTC
  • Revision ID: svn-v4:73f98a42-aea0-e011-b76d-00259023448c:branches/stable-1.0:4511
Merge of r4471:

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).

Show diffs side-by-side

added added

removed removed

Lines of Context:
428
428
 
429
429
    v = &r->variables[index];
430
430
 
431
 
    if (v->valid) {
 
431
    if (v->valid || v->not_found) {
432
432
        if (!v->no_cacheable) {
433
433
            return v;
434
434
        }