[nginx] Headers filter: local variables for config, no functiona...

Maxim Dounin mdounin at mdounin.ru
Thu Dec 11 20:42:59 UTC 2014


details:   http://hg.nginx.org/nginx/rev/36e61455a8f4
branches:  
changeset: 5941:36e61455a8f4
user:      Maxim Dounin <mdounin at mdounin.ru>
date:      Thu Dec 11 23:42:06 2014 +0300
description:
Headers filter: local variables for config, no functional changes.

diffstat:

 src/http/modules/ngx_http_headers_filter_module.c |  58 ++++++++++++----------
 1 files changed, 31 insertions(+), 27 deletions(-)

diffs (113 lines):

diff --git a/src/http/modules/ngx_http_headers_filter_module.c b/src/http/modules/ngx_http_headers_filter_module.c
--- a/src/http/modules/ngx_http_headers_filter_module.c
+++ b/src/http/modules/ngx_http_headers_filter_module.c
@@ -209,28 +209,32 @@ ngx_http_headers_filter(ngx_http_request
 static ngx_int_t
 ngx_http_set_expires(ngx_http_request_t *r, ngx_http_headers_conf_t *conf)
 {
-    size_t            len;
-    time_t            now, expires_time, max_age;
-    ngx_uint_t        i;
-    ngx_table_elt_t  *expires, *cc, **ccp;
+    size_t               len;
+    time_t               now, expires_time, max_age;
+    ngx_uint_t           i;
+    ngx_table_elt_t     *e, *cc, **ccp;
+    ngx_http_expires_t   expires;
 
-    expires = r->headers_out.expires;
+    expires = conf->expires;
+    expires_time = conf->expires_time;
 
-    if (expires == NULL) {
+    e = r->headers_out.expires;
 
-        expires = ngx_list_push(&r->headers_out.headers);
-        if (expires == NULL) {
+    if (e == NULL) {
+
+        e = ngx_list_push(&r->headers_out.headers);
+        if (e == NULL) {
             return NGX_ERROR;
         }
 
-        r->headers_out.expires = expires;
+        r->headers_out.expires = e;
 
-        expires->hash = 1;
-        ngx_str_set(&expires->key, "Expires");
+        e->hash = 1;
+        ngx_str_set(&e->key, "Expires");
     }
 
     len = sizeof("Mon, 28 Sep 1970 06:00:00 GMT");
-    expires->value.len = len - 1;
+    e->value.len = len - 1;
 
     ccp = r->headers_out.cache_control.elts;
 
@@ -265,26 +269,26 @@ ngx_http_set_expires(ngx_http_request_t 
         cc = ccp[0];
     }
 
-    if (conf->expires == NGX_HTTP_EXPIRES_EPOCH) {
-        expires->value.data = (u_char *) "Thu, 01 Jan 1970 00:00:01 GMT";
+    if (expires == NGX_HTTP_EXPIRES_EPOCH) {
+        e->value.data = (u_char *) "Thu, 01 Jan 1970 00:00:01 GMT";
         ngx_str_set(&cc->value, "no-cache");
         return NGX_OK;
     }
 
-    if (conf->expires == NGX_HTTP_EXPIRES_MAX) {
-        expires->value.data = (u_char *) "Thu, 31 Dec 2037 23:55:55 GMT";
+    if (expires == NGX_HTTP_EXPIRES_MAX) {
+        e->value.data = (u_char *) "Thu, 31 Dec 2037 23:55:55 GMT";
         /* 10 years */
         ngx_str_set(&cc->value, "max-age=315360000");
         return NGX_OK;
     }
 
-    expires->value.data = ngx_pnalloc(r->pool, len);
-    if (expires->value.data == NULL) {
+    e->value.data = ngx_pnalloc(r->pool, len);
+    if (e->value.data == NULL) {
         return NGX_ERROR;
     }
 
-    if (conf->expires_time == 0 && conf->expires != NGX_HTTP_EXPIRES_DAILY) {
-        ngx_memcpy(expires->value.data, ngx_cached_http_time.data,
+    if (expires_time == 0 && expires != NGX_HTTP_EXPIRES_DAILY) {
+        ngx_memcpy(e->value.data, ngx_cached_http_time.data,
                    ngx_cached_http_time.len + 1);
         ngx_str_set(&cc->value, "max-age=0");
         return NGX_OK;
@@ -292,22 +296,22 @@ ngx_http_set_expires(ngx_http_request_t 
 
     now = ngx_time();
 
-    if (conf->expires == NGX_HTTP_EXPIRES_DAILY) {
-        expires_time = ngx_next_time(conf->expires_time);
+    if (expires == NGX_HTTP_EXPIRES_DAILY) {
+        expires_time = ngx_next_time(expires_time);
         max_age = expires_time - now;
 
-    } else if (conf->expires == NGX_HTTP_EXPIRES_ACCESS
+    } else if (expires == NGX_HTTP_EXPIRES_ACCESS
                || r->headers_out.last_modified_time == -1)
     {
-        expires_time = now + conf->expires_time;
-        max_age = conf->expires_time;
+        max_age = expires_time;
+        expires_time += now;
 
     } else {
-        expires_time = r->headers_out.last_modified_time + conf->expires_time;
+        expires_time += r->headers_out.last_modified_time;
         max_age = expires_time - now;
     }
 
-    ngx_http_time(expires->value.data, expires_time);
+    ngx_http_time(e->value.data, expires_time);
 
     if (conf->expires_time < 0 || max_age < 0) {
         ngx_str_set(&cc->value, "no-cache");



More information about the nginx-devel mailing list