diff src/http/ngx_http_script.c @ 102:f63280c59dd5 NGINX_0_2_5

nginx 0.2.5 *) 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.
author Igor Sysoev <http://sysoev.ru>
date Tue, 04 Oct 2005 00:00:00 +0400
parents 991c6e4c7654
children d25a1d6034f1
line wrap: on
line diff
--- a/src/http/ngx_http_script.c
+++ b/src/http/ngx_http_script.c
@@ -361,11 +361,11 @@ ngx_http_script_copy_var_len_code(ngx_ht
 
     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 @@ ngx_http_script_copy_var_code(ngx_http_s
     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 @@ ngx_http_script_var_code(ngx_http_script
 
     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++;
 }