.. Copyright 2021 UPLEX Nils Goroll Systemoptimierung SPDX-License-Identifier: BSD-2-Clause See LICENSE file for full text of license .. _whatsnew_upgrading_6.6: %%%%%%%%%%%%%%%%%%%%%%%% Upgrading to Varnish 6.6 %%%%%%%%%%%%%%%%%%%%%%%% In general, this release should not come with relevant incompatibilies to the previous release 6.5. VCL should continue to work as before except when rather exotic, partly unintended and/or undocumented features are used. Header Validation ================= Varnish now validates any headers set from VCL to contain only characters allowed by RFC7230. A (runtime) VCL failure is triggered if not. Such VCL failures, which result in ``503`` responses, should be investigated. As a last resort, the ``validate_headers`` parameter can be set to ``false`` to avoid these VCL failures. BAN changes =========== * The ``ban_cutoff`` parameter now refers to the overall length of the ban list, including completed bans, where before only non-completed ("active") bans were counted towards ``ban_cutoff``. * The ``ban()`` VCL builtin is now deprecated and should be replaced with :ref:`whatsnew_changes_6.6_ban` Accounting Changes ================== Accounting statistics and Log records have changed. See :ref:`whatsnew_changes_6.6_accounting` for details. VSL changes =========== The ``-c`` option of log utilities no longer includes ESI requests. A new ``-E`` option is now available for ESI requests and it implies ``-c`` too. This brings all log utilities on par with ``varnishncsa`` where the ``-E`` option was initially introduced. If you use ``-c`` to collect both client and ESI requests, you should use ``-E`` instead. If you use ``-c`` and a VSL query to exclude ESI requests, the query should no longer be needed. VMOD ``cookie`` functions ========================= The regular expression arguments taken by various functions from the ``cookie`` VMOD now need to be literal. See :ref:`whatsnew_changes_6.6_cookie` for details. Other VCL Changes ================= * The ``resp.proto`` variable is now read-only as it should have been for long, like the other ``*.proto`` variables. Changing the protocol is an error and should not be required. * Trying to use ``std.rollback()`` from ``vcl_pipe`` now results in VCL failure. * ``return(retry)`` from ``vcl_backend_error {}`` now correctly resets ``beresp.status`` and ``beresp.reason``. Changes to VMODs ================ Many VMODs will need minor adjustments to work with this release. See :ref:`whatsnew_changes_6.6_vmod` for details. *eof*