diff src/http/modules/ngx_http_ssi_filter_module.c @ 50:72eb30262aac NGINX_0_1_25

nginx 0.1.25 *) Bugfix: nginx did run on Linux parisc. *) Feature: nginx now does not start under FreeBSD if the sysctl kern.ipc.somaxconn value is too big. *) Bugfix: if a request was internally redirected by the ngx_http_index_module module to the ngx_http_proxy_module or ngx_http_fastcgi_module modules, then the index file was not closed after request completion. *) Feature: the "proxy_pass" can be used in location with regular expression. *) Feature: the ngx_http_rewrite_filter_module module supports the condition like "if ($HTTP_USER_AGENT ~ MSIE)". *) Bugfix: nginx started too slow if the large number of addresses and text values were used in the "geo" directive. *) Change: a variable name must be declared as "$name" in the "geo" directive. The previous variant without "$" is still supported, but will be removed soon. *) Feature: the "%{VARIABLE}v" logging parameter. *) Feature: the "set $name value" directive. *) Bugfix: gcc 4.0 compatibility. *) Feature: the --with-openssl-opt=OPTIONS autoconfiguration directive.
author Igor Sysoev <http://sysoev.ru>
date Sat, 19 Mar 2005 00:00:00 +0300
parents src/http/modules/ngx_http_ssi_filter.c@6cfc63e68377
children b55cbf18157e
line wrap: on
line diff
copy from src/http/modules/ngx_http_ssi_filter.c
copy to src/http/modules/ngx_http_ssi_filter_module.c
--- a/src/http/modules/ngx_http_ssi_filter.c
+++ b/src/http/modules/ngx_http_ssi_filter_module.c
@@ -98,8 +98,6 @@ typedef enum {
 } ngx_http_ssi_state_e;
 
 
-static ngx_int_t ngx_http_ssi_error(ngx_http_request_t *r,
-    ngx_http_ssi_ctx_t *ctx);
 static ngx_int_t ngx_http_ssi_parse(ngx_http_request_t *r,
     ngx_http_ssi_ctx_t *ctx);
 
@@ -1147,21 +1145,25 @@ static ngx_int_t
 ngx_http_ssi_echo(ngx_http_request_t *r, ngx_http_ssi_ctx_t *ctx,
     ngx_str_t **params)
 {
+    ngx_uint_t                  i;
     ngx_buf_t                  *b;
     ngx_str_t                  *var, *value;
     ngx_chain_t                *cl;
-    ngx_http_variable_value_t  *v;
+    ngx_http_variable_value_t  *vv;
 
     var = params[NGX_HTTP_SSI_ECHO_VAR];
-    value = NULL;
 
-    v = ngx_http_get_variable(r, var);
+    for (i = 0; i < var->len; i++) {
+        var->data[i] = ngx_toupper(var->data[i]);
+    }
 
-    if (v == NULL) {
+    vv = ngx_http_get_variable(r, var);
+
+    if (vv == NULL) {
         return NGX_HTTP_SSI_ERROR;
     }
 
-    if (v == NGX_HTTP_VARIABLE_NOT_FOUND) {
+    if (vv == NGX_HTTP_VARIABLE_NOT_FOUND) {
         value = params[NGX_HTTP_SSI_ECHO_DEFAULT];
 
         if (value == NULL) {
@@ -1172,7 +1174,7 @@ ngx_http_ssi_echo(ngx_http_request_t *r,
         }
 
     } else {
-        value = &v->text;
+        value = &vv->text;
 
         if (value->len == 0) {
             return NGX_OK;