Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
varnish-cache
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
varnishcache
varnish-cache
Commits
d9f7e92c
Commit
d9f7e92c
authored
Oct 27, 2014
by
Federico G. Schwindt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Merge stale-while-revalidate handling into RFC2616_Ttl
Log the grace period as part of the SLT_TTL VSL tag.
parent
644be66f
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
15 additions
and
38 deletions
+15
-38
cache.h
bin/varnishd/cache/cache.h
+0
-1
cache_fetch.c
bin/varnishd/cache/cache_fetch.c
+0
-2
cache_rfc2616.c
bin/varnishd/cache/cache_rfc2616.c
+14
-34
vsl_tags.h
include/tbl/vsl_tags.h
+1
-1
No files found.
bin/varnishd/cache/cache.h
View file @
d9f7e92c
...
...
@@ -1085,7 +1085,6 @@ unsigned RFC2616_Req_Gzip(const struct http *);
int
RFC2616_Do_Cond
(
const
struct
req
*
sp
);
void
RFC2616_Weaken_Etag
(
struct
http
*
hp
);
void
RFC2616_Vary_AE
(
struct
http
*
hp
);
void
RFC5861_Stale
(
const
struct
busyobj
*
);
/* stevedore.c */
int
STV_NewObject
(
struct
objcore
*
,
struct
worker
*
,
...
...
bin/varnishd/cache/cache_fetch.c
View file @
d9f7e92c
...
...
@@ -366,8 +366,6 @@ vbf_stp_startfetch(struct worker *wrk, struct busyobj *bo)
EXP_Clr
(
&
bo
->
fetch_objcore
->
exp
);
RFC2616_Ttl
(
bo
,
now
);
RFC5861_Stale
(
bo
);
/* private objects have negative TTL */
if
(
bo
->
fetch_objcore
->
flags
&
OC_F_PRIVATE
)
bo
->
fetch_objcore
->
exp
.
ttl
=
-
1
.;
...
...
bin/varnishd/cache/cache_rfc2616.c
View file @
d9f7e92c
...
...
@@ -173,10 +173,22 @@ RFC2616_Ttl(struct busyobj *bo, double now)
}
/* calculated TTL, Our time, Date, Expires, max-age, age */
/*
* RFC5861 outlines a way to control the use of stale responses.
* We use this to initialize the grace period.
*/
if
(
expp
->
ttl
>=
0
&&
http_GetHdrField
(
hp
,
H_Cache_Control
,
"stale-while-revalidate"
,
&
p
)
&&
p
!=
NULL
)
{
if
(
*
p
==
'-'
)
expp
->
grace
=
0
;
else
expp
->
grace
=
strtoul
(
p
,
NULL
,
0
);
}
VSLb
(
bo
->
vsl
,
SLT_TTL
,
"RFC %.0f %.0f %.0f %.0f %.0f %.0f %.0f %u"
,
expp
->
ttl
,
-
1
.
,
-
1
.,
now
,
expp
->
ttl
,
expp
->
grace
,
-
1
.,
now
,
expp
->
t_origin
,
h_date
,
h_expires
,
max_age
);
}
...
...
@@ -275,35 +287,3 @@ RFC2616_Vary_AE(struct http *hp)
http_SetHeader
(
hp
,
"Vary: Accept-Encoding"
);
}
}
/*
* RFC5861 outlines a way to control the use of stale responses.
* We use this to initialize the grace period.
*/
void
RFC5861_Stale
(
const
struct
busyobj
*
bo
)
{
const
char
*
p
;
const
struct
http
*
hp
;
struct
exp
*
expp
;
expp
=
&
bo
->
fetch_objcore
->
exp
;
/*
* If we are not meant to cache this ignore any potential
* stale-while-revalidate values.
*/
if
(
expp
->
ttl
<
0
.)
return
;
hp
=
bo
->
beresp
;
if
(
http_GetHdrField
(
hp
,
H_Cache_Control
,
"stale-while-revalidate"
,
&
p
)
&&
p
!=
NULL
)
{
if
(
*
p
==
'-'
)
expp
->
grace
=
0
;
else
expp
->
grace
=
strtoul
(
p
,
NULL
,
0
);
}
}
include/tbl/vsl_tags.h
View file @
d9f7e92c
...
...
@@ -211,7 +211,7 @@ SLTM(TTL, 0, "TTL set on object",
"
\n
"
"The last four fields are only present in
\"
RFC
\"
headers.
\n\n
"
"Examples::
\n\n
"
"
\t
RFC 60
-1
-1 1312966109 1312966109 1312966109 0 60
\n
"
"
\t
RFC 60
10
-1 1312966109 1312966109 1312966109 0 60
\n
"
"
\t
VCL 120 10 0 1312966111
\n
"
"
\n
"
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment