nginx-0.1.34-RELEASE import

    *) Bugfix: the worker process may got caught in an endless loop if the
       big response part were include by SSI.

    *) Bugfix: the variables set by the "set" directive were not available
       in SSI.

    *) Feature: the "autoindex_localtime" directive.

    *) Bugfix: the empty value of the "proxy_set_header" directive forbids
       the client request header line passing.
diff --git a/src/http/modules/ngx_http_autoindex_module.c b/src/http/modules/ngx_http_autoindex_module.c
index 76c5b03..96ab81e 100644
--- a/src/http/modules/ngx_http_autoindex_module.c
+++ b/src/http/modules/ngx_http_autoindex_module.c
@@ -33,6 +33,7 @@
 
 typedef struct {
     ngx_flag_t     enable;
+    ngx_flag_t     localtime;
 } ngx_http_autoindex_loc_conf_t;
 
 
@@ -58,6 +59,13 @@
       offsetof(ngx_http_autoindex_loc_conf_t, enable),
       NULL },
 
+    { ngx_string("autoindex_localtime"),
+      NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
+      ngx_conf_set_flag_slot,
+      NGX_HTTP_LOC_CONF_OFFSET,
+      offsetof(ngx_http_autoindex_loc_conf_t, localtime),
+      NULL },
+
       ngx_null_command
 };
 
@@ -391,7 +399,7 @@
 
         *b->last++ = ' ';
 
-        ngx_gmtime(entry[i].mtime, &tm);
+        ngx_gmtime(entry[i].mtime + ngx_gmtoff * 60 * alcf->localtime, &tm);
 
         b->last = ngx_sprintf(b->last, "%02d-%s-%d %02d:%02d ",
                               tm.ngx_tm_mday,
@@ -542,6 +550,7 @@
     }
 
     conf->enable = NGX_CONF_UNSET;
+    conf->localtime = NGX_CONF_UNSET;
 
     return conf;
 }
@@ -554,6 +563,7 @@
     ngx_http_autoindex_loc_conf_t *conf = child;
 
     ngx_conf_merge_value(conf->enable, prev->enable, 0);
+    ngx_conf_merge_value(conf->localtime, prev->localtime, 0);
 
     return NGX_CONF_OK;
 }
diff --git a/src/http/modules/ngx_http_proxy_module.c b/src/http/modules/ngx_http_proxy_module.c
index 92dd6cc..0211dab 100644
--- a/src/http/modules/ngx_http_proxy_module.c
+++ b/src/http/modules/ngx_http_proxy_module.c
@@ -1576,6 +1576,10 @@
 
         *name = src[i].key;
 
+        if (src[i].value.len == 0) {
+            continue;
+        }
+
         if (ngx_http_script_variables_count(&src[i].value) == 0) {
             copy = ngx_array_push_n(conf->headers_set_len,
                                     sizeof(ngx_http_script_copy_code_t));
diff --git a/src/http/modules/ngx_http_rewrite_module.c b/src/http/modules/ngx_http_rewrite_module.c
index da4719b..ed7abd6 100644
--- a/src/http/modules/ngx_http_rewrite_module.c
+++ b/src/http/modules/ngx_http_rewrite_module.c
@@ -313,7 +313,7 @@
 
     /*
      * the ngx_http_rewrite_module sets variables directly in r->variables,
-     * and they should be handle by ngx_http_get_indexed_variable(),
+     * and they should be handled by ngx_http_get_indexed_variable(),
      * so the handler is called only if the variable is not initialized
      */