Commit e3ae4724 authored by Dag Erling Smørgrav's avatar Dag Erling Smørgrav

Regenerate


git-svn-id: http://www.varnish-cache.org/svn/branches/1.1@1901 d4fa192b-c00b-0410-8231-f00ffab90ce4
parent b256d1a0
Change log for Varnish 1.1
Change log for Varnish 1.1.1
Changes between 1.0.4 and 1.1
Changes between 1.1 and 1.1.1
varnishd
• Readability of the C source code generated from VCL code has been improved.
• The code required to allow VCL to read obj.status, which had accidentally
been left out, has now been added.
Equality (==) and inequality (!=) operators have been implemented for IP
addresses (which previously could only be compared using ACLs).
Varnish will now always include a Connection: header in its reply to the
client, to avoid possible misunderstandings.
The address of the listening socket on which the client connection was
received is now available to VCL as the server.ip variable.
A bug that triggered an assertion failure when generating synthetic error
documents has been corrected.
• Each object's hash key is now computed based on a string which is available
to VCL as req.hash. A VCL hook named vcl_hash has been added to allow VCL
scripts to control hash generation (for instance, whether or not to include
the value of the Host: header in the hash).
• A new VCL function, purge_url, provides the same functionality as the
url.purge management command.
The setup code for listening sockets has been modified to detect and handle
situations where a host name resolves to multiple IP addresses. It will now
attempt to bind to each IP address separately, and report a failure only if
none of them worked.
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.
• Network or protocol errors that occur while retrieving an object from a
backend server now result in a synthetic error page being inserted into the
cache with a 30-second TTL. This should help avoid driving an overburdened
backend server into the ground by repeatedly requesting the same object.
• The child process will now drop root privileges immediately upon startup.
The user and group to use are specified with the user and group run-time
parameters, which default to nobody and nogroup, respectively. Other
changes have been made in an effort to increase the isolation between
parent and child, and reduce the impact of a compromise of the child
• Changes to run-time parameters are now correctly propagated to the child
process.
• Objects which are received from the backend with a Vary: header are now
stored separately according to the values of the headers specified in
Vary:. This allows Varnish to correctly cache e.g. compressed and
uncompressed versions of the same object.
• Each Varnish instance now has a name, which by default is the host name of
the machine it runs on, but can be any string that would be valid as a
relative or absolute directory name. It is used to construct the name of a
directory in which the server state as well as all temporary files are
stored. This makes it possible to run multiple Varnish instances on the
same machine without conflict.
• When invoked with the -C option, varnishd will now not just translate the
VCL code to C, but also compile the C code and attempt to load the
resulting shared object.
• Attempts by VCL code to reference a variable outside its scope or to assign
a value to a read-only variable will now result in compile-time rather than
run-time errors.
• The new command-line option -F will make varnishd run in the foreground,
without enabling debugging.
• New VCL variables have been introduced to allow inspection and manipulation
of the request sent to the backend (bereq.request, bereq.url, bereq.proto
and bereq.http) and the response to the client (resp.proto, resp.status,
resp.response and resp.http).
• Statistics from the storage code (including the amount of data and free
space in the cache) are now available to varnishstat and other
statistics-gathering tools.
• Objects are now kept on an LRU list which is kept loosely up-to-date (to
within a few seconds). When cache runs out, the objects at the tail end of
the LRU list are discarded one by one until there is enough space for the
freshly requested object(s). A VCL hook, vcl_discard, is allowed to inspect
each object and determine its fate by returning either keep or discard.
• A new VCL hook, vcl_deliver, provides a chance to adjust the response
before it is sent to the client.
• A new management command, vcl.show, displays the VCL source code of any
loaded configuration.
• A new VCL variable, now, provides VCL scripts with the current time in
seconds since the epoch.
• A new VCL variable, obj.lastuse, reflects the time in seconds since the
object in question was last used.
• VCL scripts can now add an HTTP header (or modify the value of an existing
one) by assigning a value to the corresponding variable, and strip an HTTP
header by using the remove keyword.
• VCL scripts can now modify the HTTP status code of cached objects
(obj.status) and responses (resp.status)
• Numeric and other non-textual variables in VCL can now be assigned to
textual variables; they will be converted as needed.
• VCL scripts can now apply regular expression substitutions to textual
variables using the regsub function.
• A new management command, status, returns the state of the child.
• Varnish will now build and run on Mac OS X.
varnishadm
• 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.
This is a new utility which sends a single command to a Varnish server's
management port and prints the result to stdout, greatly simplifying the
use of the management port from scripts.
Under certain conditions, the VCL compiler would carry on after a syntax
error instead of exiting after reporting the error. This has been
corrected.
varnishhist
• The manner in which the hash string is assembled has been modified to
reduce memory usage and memory-to-memory copying.
• The user interface has been greatly improved; the histogram will be
automatically rescaled and redrawn when the window size changes, and it is
updated regularly rather than at a rate dependent on the amount of log data
gathered. In addition, the name of the Varnish instance being watched is
displayed in the upper right corner.
• 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.
varnishncsa
• The code necessary to handle an error return from vcl_fetch and vcl_deliver
had inadvertantly been left out. This has been corrected.
In addition to client traffic, varnishncsa can now also process log data
from backend traffic.
Varnish no longer prints a spurious "child died" message (the result of
reaping the compiler process) after compiling a new VCL configuration.
• A bug that would cause varnishncsa to segfault when it encountered an empty
HTTP header in the log file has been fixed.
• 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.
varnishreplay
• 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.
• This new utility will attempt to recreate the HTTP traffic which resulted
in the raw Varnish log data which it is fed.
Build system
varnishstat
• The top-level Makefile will now honor $DESTDIR when creating the state
directory.
• Don't print lifetime averages when it doesn't make any sense—for instance,
there is no point in dividing the amount in bytes of free cache space by
the lifetime in seconds of the varnishd process.
• The Debian and RedHat packages are now split into three (main / lib /
devel) as is customary.
• The user interface has been greatly improved; varnishstat will no longer
print more than fits in the terminal, and will respond correctly to window
resize events. The output produced in one-shot mode has been modified to
include symbolic names for each entry. In addition, the name of the Varnish
instance being watched is displayed in the upper right corner in curses
mode.
• A number of compile-time and run-time portability issues have been
addressed.
varnishtop
• The autogen.sh script had workarounds for problems with the GNU autotools
on FreeBSD; these are no longer needed and have been removed.
• The user interface has been greatly improved; varnishtop will now respond
correctly to window resize events, and one-shot mode (-1) actually works.
In addition, the name of the Varnish instance being watched is displayed in
the upper right corner in curses mode.
• 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.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment