]> git.kaiwu.me - nginx.git/commit
Entity tags: explicit flag to skip not modified filter.
authorMaxim Dounin <mdounin@mdounin.ru>
Wed, 25 Jun 2014 22:27:11 +0000 (02:27 +0400)
committerMaxim Dounin <mdounin@mdounin.ru>
Wed, 25 Jun 2014 22:27:11 +0000 (02:27 +0400)
commit8f9fb9570efceb1ff2376289628cf03b8e4bea76
treef50b9d0a6c83a44518e798d6394eda7d7a7ba1de
parentfeb1649049e777b11ccddad703e8e36e7821d529
Entity tags: explicit flag to skip not modified filter.

Previously, last_modified_time was tested against -1 to check if the
not modified filter should be skipped.  Notably, this prevented nginx
from additional If-Modified-Since (et al.) checks on proxied responses.
Such behaviour is suboptimal in some cases though, as checks are always
skipped on responses from a cache with ETag only (without Last-Modified),
resulting in If-None-Match being ignored in such cases.  Additionally,
it was not possible to return 412 from the If-Unmodified-Since if last
modification time was not known for some reason.

This change introduces explicit r->disable_not_modified flag instead,
which is set by ngx_http_upstream_process_headers().
src/http/modules/ngx_http_not_modified_filter_module.c
src/http/ngx_http_request.h
src/http/ngx_http_upstream.c