Change log for Varnish 1.1.1

Changes between 1.1 and 1.1.1

varnishd

  • The code required to allow VCL to read obj.status, which had accidentally
    been left out, has now been added.

  • Varnish will now always include a Connection: header in its reply to the
    client, to avoid possible misunderstandings.

  • A bug that triggered an assertion failure when generating synthetic error
    documents has been corrected.

  • A new VCL function, purge_url, provides the same functionality as the
    url.purge management command.

  • Previously, Varnish assumed that the response body should be sent only if
    the request method was GET. This was a problem for custom request methods
    (such as PURGE), so the logic has been changed to always send the response
    body except in the specific case of a HEAD request.

  • Changes to run-time parameters are now correctly propagated to the child
    process.

  • Due to the way run-time parameters are initialized at startup, varnishd
    previously required the nobody user and the nogroup group to exist even if
    a different user and group were specified on the command line. This has
    been corrected.

  • Under certain conditions, the VCL compiler would carry on after a syntax
    error instead of exiting after reporting the error. This has been
    corrected.

  • The manner in which the hash string is assembled has been modified to
    reduce memory usage and memory-to-memory copying.

  • Before calling vcl_miss, Varnish assembles a tentative request object for
    the backend request which will usually follow. This object would be leaked
    if vcl_miss returned anything else than fetch. This has been corrected.

  • The code necessary to handle an error return from vcl_fetch and vcl_deliver
    had inadvertantly been left out. This has been corrected.

  • Varnish no longer prints a spurious "child died" message (the result of
    reaping the compiler process) after compiling a new VCL configuration.

  • Under some circumstances, due to an error in the workspace management code,
    Varnish would lose the "tail" of a request, i.e. the part of the request
    that has been received from the client but not yet processed. The most
    obvious symptom of this was that POST requests would work with some
    browsers but not others, depending on details of the browser's HTTP
    implementation. This has been corrected.

  • On some platforms, due to incorrect assumptions in the CLI code, the
    management process would crash while processing commands received over the
    management port. This has been corrected.

Build system

  • The top-level Makefile will now honor $DESTDIR when creating the state
    directory.

  • The Debian and RedHat packages are now split into three (main / lib /
    devel) as is customary.

  • A number of compile-time and run-time portability issues have been
    addressed.

  • The autogen.sh script had workarounds for problems with the GNU autotools
    on FreeBSD; these are no longer needed and have been removed.

  • The libcompat library has been renamed to libvarnishcompat and is now
    dynamic rather than static. This simplifies the build process and resolves
    an issue with the Mac OS X linker.

