Upgrading to Vinyl Cache 9.1¶
IPv4 addresses in IPv6 and ACLs¶
IPv4 compatible and IPv4 mapped IPv6 addresses, that is IPv6 addresses in the
forms ::<IP4> and ::ffff:<IP4>, now get rewritten to IPv4 addresses.
For example, with Vinyl Cache up to and including 9.0, an IPv6 peer address
::ffff:176.58.90.154 would confusingly be logged as 176.58.90.154, but
would not match an ACL allowing 176.58.90.154.
This has changed now: what looks like IPv4 gets rewritten to IPv4, such that,
for the example above, an ACL allowing 176.58.90.154 would match, while an
ACL allowing ::ffff:176.58.90.154 would no longer match.
VCL: synthetic() removed¶
The synthetic() VCL action has been removed. Since Varnish Cache 5.0.0, body
data can be created by setting beresp.body in vcl_backend_error {} and
by setting resp.body in vcl_synth {}, and these continue to be available
as the one way to create body data, as in these examples:
set resp.body = "string" + " more strings";set resp.body += " appending even " + "more strings";set resp.body = :blob:;set resp.body += :blobappend:;
These examples equally work on beresp.body in vcl_backend_error {}.
The direct replacement for synthetic(<string>); is set resp.body +=
<string>; in vcl_synth {} and set beresp.body += <string>; in
vcl_backend_error {}.
The only difference in behavior is that synthetic(<nullstring>) would create
the string (null) for <nullstring> being a NULL pointer internally,
while set resp.body = <nullstring> creates the empty string "" and set
resp.body += <nullstring> is a NOOP.
VCL variables changed¶
Setting req.max_age = 0s now forces a cache miss with request coalescing,
where it previously had no effect.