mirror of
https://github.com/varnishcache/varnish-cache.git
synced 2025-11-01 15:07:39 +00:00
Page:
VIP14: *.body access
Pages
Coverity scans
FAQ
Home
Maintenance branch commit guidelines
Release procedure
SLT inventory
VDD18Q3
VDD19Q3
VDD22Q2
VDD23Q3
VDD25Q2
VIP 17: Enable Unix domain sockets for listen and backend addresses
VIP 18: RST specification for code generation
VIP 19: Declare ENUM types in VCC for VMODs
VIP 23: Refactor VSL to support extracting structured data from "binary" log payloads
VIP 24: Hitpass turning into hitmiss after ttl
VIP 25: Inconsistent responses when VFP fails during streaming
VIP 26: limit private prefetch
VIP 27: Move some VCL variables to the catflap facility
VIP 30: bereq.body_filters
VIP11: Shared Memory revamp
VIP12: vmod polymorphism (for type conversions)
VIP13: VMOD versioning
VIP14: *.body access
VIP15: Specifying source address for outgoing sockets
VIP16: Retire parameters aliases
VIP1: PRIV_* visibility and lifetime control
VIP20: Varnish ABI and packaging
VIP22: include backend connection in director lookup
VIP29: VCL labels and backend.list ( r option etc.)
VIP2: VCL typed functions
VIP30: Plumbing: vcl_raw() and vcl_pipe()
VIP31: Backend connection queue
VIP32: VSL API and Unset headers
VIP33: Connection Pool Statistics
VIP33: Socket.* CLI commands
VIP34: Conservative map usage in shared memory
VIP35: Retire libvgz
VIP3: VCL implemented VMODS
VIP4: Restrict VMOD function call sites
VIP6: What does pipe mean in Varnish5?
VIP7: Least connection director
VIP8: No pipe in builtin.vcl in V5
VIP9: Expand VCL object support
Varnish Developer Days
Varnish Improvement Proposals
Varnish developer wiki
No results
Synopsis
Plan for VCL access/manipulation of *.body and VMOD filter insertion
Why?
So for instance synthetic objects can be gzip'ed or ESI'ed, but without overworking the workspaces.
How?
The list of filters to be applied is turned into a list of filter names, something like:
req.filters = "gunzip esi gzip"
VCL can edit this list, for instance with regsub() to insert VMOD filters
A special class of VCL functions can stuff things into the filter pipelines:
sub vcl_foobar {
body += "<HTML>"
body += "<H1>" + req.http.foobar + "</H1>"
...
}
The vcl_error{} and vcl_synthetic{} functions set up the HTTP headers, configure the filter list and designate the function to fill out the body:
sub vcl_synthetic {
...
return (deliver(vcl_foobar));
}