Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
libvmod-esiextra
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
uplex-varnish
libvmod-esiextra
Commits
72739725
Commit
72739725
authored
Nov 06, 2017
by
Nils Goroll
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
better docs, note on do_stream
parent
831eb07d
Pipeline
#359
skipped
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
35 additions
and
4 deletions
+35
-4
vmod_esiextra.c
src/vmod_esiextra.c
+1
-0
vmod_esiextra.vcc
src/vmod_esiextra.vcc
+34
-4
No files found.
src/vmod_esiextra.c
View file @
72739725
...
...
@@ -55,6 +55,7 @@ vmod_bodyhash(VRT_CTX, VCL_HEADER hdr)
}
CAST_OBJ_NOTNULL
(
bo
,
ctx
->
bo
,
BUSYOBJ_MAGIC
);
// XXX can leave streaming enabled with Trailer support
bo
->
do_stream
=
0
;
if
(
Bodyhash_push
(
bo
->
vfc
,
hdr
->
what
)
==
NULL
)
VRT_fail
(
ctx
,
"bodyhash push failed"
);
...
...
src/vmod_esiextra.vcc
View file @
72739725
...
...
@@ -12,20 +12,50 @@ $Module esiextra 3 Varnish Esiextra Module
DESCRIPTION
===========
This vmod contains tools to improve varnish ESI processing
capabilities like:
* generate `ETag` backend response headers
* track the most recent `Last-Modified` date of all ESI includes.
It requires chunked encoding trailer support, which, as of 2017-11-06,
has not been merged to varnish-cache. See
https://github.com/varnishcache/varnish-cache/pull/2477
Example
::
import esiextra;
import esiextra;
# TODO
See file `vtc/esi_recursive_full.vtc` for a full blown usage example.
$Function VOID bodyhash(HEADER)
Hash the received body.
Hash the received body and write a hex-encoded string into HEADER.
This function may only be called in `vcl_backend_response{}` and can
only change `beresp.http.*` headers.
If Trailer support is enabled, by setting `beresp.http.Trailer` to
contain the name of HEADER, it will be used.
Otherwise a placeholder header will be added to the cache object and
overwritten afterwards. For this to work, it needs to disable
streaming mode.
For now, streaming mode is also disabled when Trailer support is
enabled. This restriction may be lifted in the Future.
$Object lm()
Create an object to track the most reacent `Last-Modified` time during
the entirity of an ESI request including all sub-requests.
$Method BOOL .inspect(TIME)
Inspect time vs. saved time. If new time is
after saved time, update
and return true. Otherwise return false.
Inspect time vs. saved time. If new time is
more recent than saved
time, update
and return true. Otherwise return false.
$Method VOID .update(TIME)
...
...
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