doc/sphinx/whats-new/upgrading-5.0.rst
.. Copyright (c) 2016 Varnish Software AS SPDX-License-Identifier: BSD-2-Clause See LICENSE file for full text of license
.. _whatsnew_upgrading_5.0:
%%%%%%%%%%%%%%%%%%%%%%%% Upgrading to Varnish 5.0 %%%%%%%%%%%%%%%%%%%%%%%%
All VCL Objects should now be defined before used
in particular, this is now required for ACLs. The error message for ACLs being used before being defined is confusing - see PR #2021::
Name <acl> is a reserved name
VCL names are restricted to alphanumeric characters, dashes (-) and underscores (_). In addition, the first character should be alphabetic. That is, the name should match "[A-Za-z][A-Za-z0-9_-]*".
Like strings, backends and integers can now be used as boolean
expressions in if statements. See vcl(7) for details.
Add support to perform matches in assignments, obtaining a boolean as result::
set req.http.foo = req.http.bar ~ "bar";
Returned values from functions and methods' calls can be thrown away.
backends
* Added support for the PROXY protocol via ``.proxy_header`` attribute.
Possible values are 1 and 2, corresponding to the PROXY protocol
version 1 and 2, respectively.
vcl_recv
return (vcl(label)) to switch to the VCL labelled label.rollback function has been retired.vcl_hit
* Replace ``return (fetch)`` with ``return (miss)``.
vcl_backend_*
remote.ip, client.ip, local.ip and
server.ip.vcl_backend_fetch
* Added write access to ``bereq.body``, the request body. Only ``unset``
is supported at this time.
* We now send request bodies by default (see
:ref:`whatsnew_changes_5.0_reqbody`). To keep the previous behaviour
add the following code before any ``return (..)`` statement in this
subroutine::
if (bereq.method == "GET") {
unset bereq.body;
}
vcl_backend_error
beresp.body, the response body. This may
replace synthetic() in future releases.vcl_deliver
* Added read access to ``obj.ttl``, ``obj.age``, ``obj.grace`` and
``obj.keep``.
vcl_synth
~~~~~~~~~
* Added write access to ``resp.body``, the response body. This may replace
``synthetic()`` in future releases.
Management interface
====================
* To disable CLI authentication use ``-S none``.
* ``n_waitinglist`` statistic removed.
Changes to parameters
=====================
* Added ``ban_lurker_holdoff``.
* Removed ``session_max``. This parameter actually had no effect since
4.0 but might come back in a future release.
* ``vcl_path`` is now a colon-separated list of directories, replacing
``vcl_dir``.
* ``vmod_path`` is now a colon-separated list of directories, replacing
``vmod_dir``.
Other changes
=============
* ``varnishstat(1)`` -f option accepts a ``glob(7)`` pattern.
* Cache-Control and Expires headers for uncacheable requests (i.e. passes)
will not be parsed. As a result, the RFC variant of the TTL VSL tag
is no longer logged.