From 8fcefb61b25239902351668d0818f0b34f2e0516 Mon Sep 17 00:00:00 2001 From: "Paul J. Reder" Date: Fri, 12 Sep 2003 19:28:47 +0000 Subject: [PATCH] This fixes the cache code so that responses can be cached if they have an Expires header but no Etag or Last-Modified headers. PR 23130. Submitted by: Reviewed by: Paul J. Reder git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@101231 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES | 6 ++++++ modules/experimental/mod_cache.c | 11 +++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/CHANGES b/CHANGES index 3324821d42..90f9a3c3a5 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,12 @@ Changes with Apache 2.1.0-dev [Remove entries to the current 2.0 section below, when backported] + *) This fixes the cache code so that responses can be cached + if they have an Expires header but no Etag or Last-Modified + headers. PR 23130. + [Submitted by: ] + [Reviewed by: Paul J. Reder] + *) Fix a couple of AIX xlc_r compiler issues in the code I just committed. [Paul J. Reder] diff --git a/modules/experimental/mod_cache.c b/modules/experimental/mod_cache.c index 6a7d0004af..95929628a9 100644 --- a/modules/experimental/mod_cache.c +++ b/modules/experimental/mod_cache.c @@ -565,14 +565,14 @@ static int cache_in_filter(ap_filter_t *f, apr_bucket_brigade *in) reason = "HTTP Status 304 Not Modified"; } else if (r->status == HTTP_OK && lastmods == NULL && etag == NULL - && (conf->no_last_mod_ignore ==0)) { - /* 200 OK response from HTTP/1.0 and up without a Last-Modified - * header/Etag + && (exps == NULL) && (conf->no_last_mod_ignore ==0)) { + /* 200 OK response from HTTP/1.0 and up without Last-Modified, + * Etag, or Expires headers. */ - /* XXX mod-include clears last_modified/expires/etags - this + /* Note: mod-include clears last_modified/expires/etags - this * is why we have an optional function for a key-gen ;-) */ - reason = "No Last-Modified or Etag header"; + reason = "No Last-Modified, Etag, or Expires headers"; } else if (r->header_only) { /* HEAD requests */ @@ -760,7 +760,6 @@ static int cache_in_filter(ap_filter_t *f, apr_bucket_brigade *in) info->request_time = r->request_time; /* check last-modified date */ - /* XXX FIXME we're referencing date on a path where we didn't set it */ if (lastmod != APR_DATE_BAD && lastmod > date) { /* if it's in the future, then replace by date */ lastmod = date; -- 2.40.0