unsigned allow_binary_include:1;
unsigned binary_include:1;
unsigned proxy_recursive:1;
+ unsigned no_cacheable:1;
} ngx_http_geo_conf_ctx_t;
+ sizeof(ngx_http_variable_value_t)
+ 0x10000 * sizeof(ngx_http_geo_range_t *);
ctx.allow_binary_include = 1;
+ ctx.no_cacheable = 0;
save = *cf;
cf->pool = pool;
goto failed;
}
+ if (ctx.no_cacheable) {
+ var->flags |= NGX_HTTP_VAR_NOCACHEABLE;
+ }
+
geo->proxies = ctx.proxies;
geo->proxy_recursive = ctx.proxy_recursive;
rv = NGX_CONF_OK;
goto done;
}
+
+ else if (ngx_strcmp(value[0].data, "volatile") == 0) {
+ ctx->no_cacheable = 1;
+ rv = NGX_CONF_OK;
+ goto done;
+ }
}
if (cf->args->nelts != 2) {
unsigned outside_entries:1;
unsigned allow_binary_include:1;
unsigned binary_include:1;
+ unsigned no_cacheable:1;
} ngx_stream_geo_conf_ctx_t;
+ sizeof(ngx_stream_variable_value_t)
+ 0x10000 * sizeof(ngx_stream_geo_range_t *);
ctx.allow_binary_include = 1;
+ ctx.no_cacheable = 0;
save = *cf;
cf->pool = pool;
goto failed;
}
+ if (ctx.no_cacheable) {
+ var->flags |= NGX_STREAM_VAR_NOCACHEABLE;
+ }
+
if (ctx.ranges) {
if (ctx.high.low && !ctx.binary_include) {
goto done;
}
+
+ else if (ngx_strcmp(value[0].data, "volatile") == 0) {
+ ctx->no_cacheable = 1;
+ rv = NGX_CONF_OK;
+ goto done;
+ }
}
if (cf->args->nelts != 2) {