nginx-0.2.5-RELEASE import
*) Change: the duplicate value of the ngx_http_geo_module variable now
causes the warning and changes old value.
*) Feature: the ngx_http_ssi_module supports the "set" command.
*) Feature: the ngx_http_ssi_module supports the "file" parameter in
the "include" command.
*) Feature: the ngx_http_ssi_module supports the variable value
substitutions in expressions of the "if" command.
diff --git a/src/http/ngx_http_script.c b/src/http/ngx_http_script.c
index 27c9ce0..a8272ec 100644
--- a/src/http/ngx_http_script.c
+++ b/src/http/ngx_http_script.c
@@ -361,11 +361,11 @@
value = ngx_http_get_indexed_variable(e->request, code->index);
- if (value == NULL || value == NGX_HTTP_VAR_NOT_FOUND) {
- return 0;
+ if (value && value != NGX_HTTP_VAR_NOT_FOUND) {
+ return value->text.len;
}
- return value->text.len;
+ return 0;
}
@@ -382,15 +382,14 @@
if (!e->skip) {
value = ngx_http_get_indexed_variable(e->request, code->index);
- if (value == NULL || value == NGX_HTTP_VAR_NOT_FOUND) {
- return;
- }
+ if (value && value != NGX_HTTP_VAR_NOT_FOUND) {
+ e->pos = ngx_cpymem(e->pos, value->text.data, value->text.len);
- e->pos = ngx_cpymem(e->pos, value->text.data, value->text.len);
-
- if (e->log) {
- ngx_log_debug1(NGX_LOG_DEBUG_HTTP, e->request->connection->log, 0,
- "http script var: \"%V\"", &e->buf);
+ if (e->log) {
+ ngx_log_debug1(NGX_LOG_DEBUG_HTTP,
+ e->request->connection->log, 0,
+ "http script var: \"%V\"", &e->buf);
+ }
}
}
}
@@ -879,19 +878,18 @@
value = ngx_http_get_indexed_variable(e->request, code->index);
- if (value == NULL || value == NGX_HTTP_VAR_NOT_FOUND) {
- e->sp->value = 0;
- e->sp->text.len = 0;
- e->sp->text.data = (u_char *) "";
+ if (value && value != NGX_HTTP_VAR_NOT_FOUND) {
+ ngx_log_debug2(NGX_LOG_DEBUG_HTTP, e->request->connection->log, 0,
+ "http script var: %ui, \"%V\"", value->value, &value->text);
+ *e->sp = *value;
e->sp++;
return;
}
- ngx_log_debug2(NGX_LOG_DEBUG_HTTP, e->request->connection->log, 0,
- "http script var: %ui, \"%V\"", value->value, &value->text);
-
- *e->sp = *value;
+ e->sp->value = 0;
+ e->sp->text.len = 0;
+ e->sp->text.data = (u_char *) "";
e->sp++;
}