# HG changeset patch # User Maxim Dounin # Date 1318717745 -14400 # Node ID 18b6098a21c7de4e5a1ebf59730774a464a84d66 # Parent 5d45cbf2668ace0ce1f8d15e5f598040e8b79067 Fixes for expires daily (ticket #32). If last modified time wasn't known, "expires @time" did not work. Additionally, in all cases "expires @00h" did not work. 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 @@ -253,7 +253,7 @@ ngx_http_set_expires(ngx_http_request_t return NGX_ERROR; } - if (conf->expires_time == 0) { + if (conf->expires_time == 0 && conf->expires != NGX_HTTP_EXPIRES_DAILY) { ngx_memcpy(expires->value.data, ngx_cached_http_time.data, ngx_cached_http_time.len + 1); ngx_str_set(&cc->value, "max-age=0"); @@ -262,16 +262,16 @@ ngx_http_set_expires(ngx_http_request_t now = ngx_time(); - if (conf->expires == NGX_HTTP_EXPIRES_ACCESS - || r->headers_out.last_modified_time == -1) + if (conf->expires == NGX_HTTP_EXPIRES_DAILY) { + expires_time = ngx_next_time(conf->expires_time); + max_age = expires_time - now; + + } else if (conf->expires == NGX_HTTP_EXPIRES_ACCESS + || r->headers_out.last_modified_time == -1) { expires_time = now + conf->expires_time; max_age = conf->expires_time; - } else if (conf->expires == NGX_HTTP_EXPIRES_DAILY) { - expires_time = ngx_next_time(conf->expires_time); - max_age = expires_time - now; - } else { expires_time = r->headers_out.last_modified_time + conf->expires_time; max_age = expires_time - now;