[nginx] svn commit: r4471 - trunk/src/http

mdounin at mdounin.ru mdounin at mdounin.ru
Mon Feb 13 15:31:08 UTC 2012


Author: mdounin
Date: 2012-02-13 15:31:07 +0000 (Mon, 13 Feb 2012)
New Revision: 4471

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


Modified:
   trunk/src/http/ngx_http_variables.c

Modified: trunk/src/http/ngx_http_variables.c
===================================================================
--- trunk/src/http/ngx_http_variables.c	2012-02-13 15:28:19 UTC (rev 4470)
+++ trunk/src/http/ngx_http_variables.c	2012-02-13 15:31:07 UTC (rev 4471)
@@ -432,7 +432,7 @@
 
     v = &r->variables[index];
 
-    if (v->valid) {
+    if (v->valid || v->not_found) {
         if (!v->no_cacheable) {
             return v;
         }



More information about the nginx-devel mailing list