Welcome! Log In Create A New Profile

Advanced

[nginx] Cache: add support for Cache-Control's s-maxage response...

Maxim Dounin
November 19, 2014 01:04PM
details: http://hg.nginx.org/nginx/rev/88d55e5934f7
branches:
changeset: 5911:88d55e5934f7
user: Piotr Sikora <piotr@cloudflare.com>
date: Tue Nov 18 17:07:14 2014 -0800
description:
Cache: add support for Cache-Control's s-maxage response directive.

Signed-off-by: Piotr Sikora <piotr@cloudflare.com>

diffstat:

src/http/ngx_http_upstream.c | 24 +++++++++++++++---------
1 files changed, 15 insertions(+), 9 deletions(-)

diffs (53 lines):

diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c
--- a/src/http/ngx_http_upstream.c
+++ b/src/http/ngx_http_upstream.c
@@ -3934,7 +3934,7 @@ ngx_http_upstream_process_cache_control(

#if (NGX_HTTP_CACHE)
{
- u_char *p, *last;
+ u_char *p, *start, *last;
ngx_int_t n;

if (u->conf->ignore_headers & NGX_HTTP_UPSTREAM_IGN_CACHE_CONTROL) {
@@ -3949,18 +3949,24 @@ ngx_http_upstream_process_cache_control(
return NGX_OK;
}

- p = h->value.data;
- last = p + h->value.len;
-
- if (ngx_strlcasestrn(p, last, (u_char *) "no-cache", 8 - 1) != NULL
- || ngx_strlcasestrn(p, last, (u_char *) "no-store", 8 - 1) != NULL
- || ngx_strlcasestrn(p, last, (u_char *) "private", 7 - 1) != NULL)
+ start = h->value.data;
+ last = start + h->value.len;
+
+ if (ngx_strlcasestrn(start, last, (u_char *) "no-cache", 8 - 1) != NULL
+ || ngx_strlcasestrn(start, last, (u_char *) "no-store", 8 - 1) != NULL
+ || ngx_strlcasestrn(start, last, (u_char *) "private", 7 - 1) != NULL)
{
u->cacheable = 0;
return NGX_OK;
}

- p = ngx_strlcasestrn(p, last, (u_char *) "max-age=", 8 - 1);
+ p = ngx_strlcasestrn(start, last, (u_char *) "s-maxage=", 9 - 1);
+ offset = 9;
+
+ if (p == NULL) {
+ p = ngx_strlcasestrn(start, last, (u_char *) "max-age=", 8 - 1);
+ offset = 8;
+ }

if (p == NULL) {
return NGX_OK;
@@ -3968,7 +3974,7 @@ ngx_http_upstream_process_cache_control(

n = 0;

- for (p += 8; p < last; p++) {
+ for (p += offset; p < last; p++) {
if (*p == ',' || *p == ';' || *p == ' ') {
break;
}

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[nginx] Cache: add support for Cache-Control's s-maxage response...

Maxim Dounin 890 November 19, 2014 01:04PM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 279
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready