[master] 10c81c1 Move XML changes files into changes.rst
Tollef Fog Heen
tfheen at varnish-cache.org
Mon Oct 31 08:59:21 CET 2011
commit 10c81c11a60e13dbf6da32e0f7f8ba9c82f94499
Author: Tollef Fog Heen <tfheen at varnish-software.com>
Date: Mon Oct 31 08:58:24 2011 +0100
Move XML changes files into changes.rst
Convert all the old changelogs to restructured text, drop xsltproc
from the build system and adjust documentation appropriately.
diff --git a/configure.ac b/configure.ac
index 4591148..ebea42b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -45,11 +45,6 @@ CC="$PTHREAD_CC"
AC_PROG_INSTALL
AC_PROG_LIBTOOL
AC_PROG_MAKE_SET
-AC_CHECK_PROGS(XSLTPROC, [xsltproc], "no")
-if test "x$XSLTPROC" = "xno"; then
- AC_MSG_WARN([xsltproc not found – not building documentation])
-fi
-AM_CONDITIONAL(HAVE_XSLTPROC,[test "x$XSLTPROC" != "xno"])
AC_ARG_WITH([rst2man],
AS_HELP_STRING([--with-rst2man=PATH],
[Location of rst2man (auto)]),
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 58d9dc7..cfd0fb5 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,64 +1,6 @@
#
-CHANGELOGS = \
- changes-2.1.5.html \
- changes-2.1.4.html \
- changes-2.1.3.html \
- changes-2.1.2.html \
- changes-2.1.1.html \
- changes-2.1.0.html \
- changes-2.0.6.html \
- changes-2.0.5.html \
- changes-2.0.4.html \
- changes-2.0.3.html \
- changes-2.0.2.html \
- changes-2.0.1.html \
- changes-2.0.html \
- changes-1.1.2.html \
- changes-1.1.1.html \
- changes-1.1.html \
- changes-1.0.4.html
-
-XML = \
- changes-2.1.4-2.1.5.xml \
- changes-2.1.3-2.1.4.xml \
- changes-2.1.2-2.1.3.xml \
- changes-2.1.1-2.1.2.xml \
- changes-2.1.0-2.1.1.xml \
- changes-2.0.6-2.1.0.xml \
- changes-2.0.5-2.0.6.xml \
- changes-2.0.4-2.0.5.xml \
- changes-2.0.3-2.0.4.xml \
- changes-2.0.2-2.0.3.xml \
- changes-2.0.1-2.0.2.xml \
- changes-2.0-2.0.1.xml \
- changes-1.1.2-2.0.xml \
- changes-1.1.1-1.1.2.xml \
- changes-1.1-1.1.1.xml \
- changes-1.0.4-1.1.xml \
- changes-1.0.3-1.0.4.xml \
- ${CHANGELOGS:.html=.xml}
-
-if HAVE_XSLTPROC
-all: ${CHANGELOGS}
-endif
-
-EXTRA_DIST = ${CHANGELOGS} ${XML} \
- changes.css changes-html.xsl \
- changes.rst changes.html
-
-CLEANFILES = ${CHANGELOGS}
-SUFFIXES = .xml .html
-
-.xml.html:
-if HAVE_XSLTPROC
- ${XSLTPROC} --xinclude -o $@ $<
-else
- @echo "========================================"
- @echo "You need xsltproc installed to make dist"
- @echo "========================================"
- @false
-endif
+EXTRA_DIST = changes.rst changes.html
changes.html: changes.rst
if HAVE_RST2HTML
@@ -70,7 +12,4 @@ else
@false
endif
-
-${CHANGELOGS}: changes-html.xsl
-
SUBDIRS = sphinx
diff --git a/doc/changes-1.0.3-1.0.4.xml b/doc/changes-1.0.3-1.0.4.xml
deleted file mode 100644
index 8cd010e..0000000
--- a/doc/changes-1.0.3-1.0.4.xml
+++ /dev/null
@@ -1,218 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<group from="1.0.3" to="1.0.4">
- <subsystem>
- <name>varnishd</name>
-
- <change type="enh,bug" ref="1277">
- <para>The request workflow has been redesigned to simplify
- request processing and eliminate code duplication. All
- codepaths which need to speak HTTP now share a single
- implementation of the protocol. Some new VCL hooks have been
- added, though they aren't much use yet. The only real
- user-visible change should be that Varnish now handles
- persistent backend connections correctly (see <ticket
- ref="56"/>).</para>
- </change>
-
- <change type="enh" ref="1280">
- <para>Support for multiple listen addresses has been
- added.</para>
- </change>
-
- <change type="enh" ref="1281">
- <para>An "include" facility has been added to VCL, allowing
- VCL code to pull in code fragments from multiple files.</para>
- </change>
-
- <change type="enh" ref="1284">
- <para>Multiple definitions of the same VCL function are now
- concatenated into one in the order in which they appear in the
- source. This simplifies the mechanism for falling back to the
- built-in default for cases which aren't handled in custom
- code, and facilitates modularization.</para>
- </change>
-
- <change type="bug" ref="1287,1288">
- <para>The code used to format management command arguments
- before passing them on to the child process would
- underestimate the amount of space needed to hold each argument
- once quotes and special characters were properly escaped,
- resulting in a buffer overflow. This has been
- corrected.</para>
- </change>
-
- <change type="enh,bug" ref="1289-1291,1294,1296-1303,1306">
- <para>The VCL compiler has been overhauled. Several memory
- leaks have been plugged, and error detection and reporting has
- been improved throughout. Parts of the compiler have been
- refactored to simplify future extension of the
- language.</para>
- </change>
-
- <change type="bug" ref="1293">
- <para>A bug in the VCL compiler which resulted in incorrect
- parsing of the decrement (<code>-=</code>) operator has been
- fixed.</para>
- </change>
-
- <change type="enh" ref="1309,1312,1381">
- <para>A new <code>-C</code> command-line option has been added
- which causes <code>varnishd</code> to compile the VCL code
- (either from a file specified with <code>-f</code> or the
- built-in default), print the resulting C code and exit.</para>
- </change>
-
- <change type="bug" ref="1359">
- <para>When processing a backend response using chunked
- encoding, if a chunk header crosses a read buffer boundary,
- read additional bytes from the backend connection until the
- chunk header is complete.</para>
- </change>
-
- <change type="enh" ref="1373">
- <para>A new <code>ping_interval</code> run-time parameter
- controls how often the management process checks that the
- worker process is alive.</para>
- </change>
-
- <change type="bug" ref="1376">
- <para>A bug which would cause the worker process to
- dereference a <code>NULL</code> pointer and crash if the
- backend did not respond has been fixed.</para>
- </change>
-
- <change type="bug" ref="1382">
- <para>In some cases, such as when they are used by AJAX
- applications to circumvent Internet Explorer's over-eager disk
- cache, it may be desirable to cache <code>POST</code>
- requests. However, the code path responsible for delivering
- objects from cache would only transmit the response body when
- replying to a <code>GET</code> request. This has been
- extended to also apply to <code>POST</code>.</para>
-
- <para>This should be revisited at a later date to allow VCL
- code to control whether the body is delivered.</para>
- </change>
-
- <change type="bug" ref="1386">
- <para>Varnish now respects <code>Cache-control:
- s-maxage</code>, and prefers it to <code>Cache-control:
- max-age</code> if both are present.</para>
-
- <para>This should be revisited at a later date to allow VCL
- code to control which headers are used and how they are
- interpreted.</para>
- </change>
-
- <change type="enh" ref="1394">
- <para>When loading a new VCL script, the management process
- will now load the compiled object to verify that it links
- correctly before instructing the worker process to load
- it.</para>
- </change>
-
- <change type="enh" ref="1415">
- <para>A new <code>-P</code> command-line options has been
- added which causes <code>varnishd</code> to create a PID
- file.</para>
- </change>
-
- <change type="bug" ref="1417">
- <para>The <code>sendfile_threshold</code> run-time parameter's
- default value has been set to infinity after a variety of
- <code>sendfile()</code>-related bugs were discovered on
- several platforms.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>varnishlog</name>
-
- <change type="bug" ref="1372,1374">
- <para>When grouping log entries by request,
- <code>varnishlog</code> attempts to collapse the log entry for
- a call to a VCL function with the log entry for the
- corresponding return from VCL. When two VCL calls were made
- in succession, <code>varnishlog</code> would incorrectly omit
- the newline between the two calls (see <ticket
- ref="95"/>).</para>
- </change>
-
- <change type="enh" ref="1411">
- <para>New <code>-D</code> and <code>-P</code> command-line
- options have been added to daemonize and create a pidfile,
- respectively.</para>
- </change>
-
- <change type="bug" ref="1450">
- <para>The flag that is raised upon reception of a
- <code>SIGHUP</code> has been marked <code>volatile</code> so it
- will not be optimized away by the compiler.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>varnishncsa</name>
-
- <change type="enh,bug" ref="1361-1363">
- <para>The formatting callback has been largely rewritten for
- clarity, robustness and efficiency.</para>
-
- <para>If a request included a <code>Host:</code> header,
- construct and output an absolute URL. This makes
- <code>varnishncsa</code> output from servers which handle
- multiple virtual hosts far more useful.</para>
- </change>
-
- <change type="bug" ref="1450">
- <para>The flag that is raised upon reception of a
- <code>SIGHUP</code> has been marked <code>volatile</code> so it
- will not be optimized away by the compiler.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>Documentation</name>
-
- <change type="enh">
- <para>The documentation—especially the VCL
- documentation—has been greatly extended and improved.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>Build system</name>
-
- <change type="bug" ref="1364">
- <para>The name and location of the <code>curses</code> or
- <code>ncurses</code> library is now correctly detected by the
- <code>configure</code> script instead of being hardcoded into
- affected Makefiles. This allows Varnish to build correctly on
- a wider range of platforms.</para>
- </change>
-
- <change type="enh" ref="1368">
- <para>Compatibility shims for <code>clock_gettime()</code> are
- now correctly applied where needed, allowing Varnish to build
- on MacOS X.</para>
- </change>
-
- <change type="bug" ref="1399">
- <para>The <code>autogen.sh</code> script will now correctly
- detect and warn about <code>automake</code> versions which are
- known not to work correctly.</para>
- </change>
- </subsystem>
-
- <!--subsystem>
- <name>Packaging</name>
-
- <change type="enh">
- <para>XXX</para>
- </change>
- </subsystem-->
-</group>
diff --git a/doc/changes-1.0.4-1.1.xml b/doc/changes-1.0.4-1.1.xml
deleted file mode 100644
index 7bbfc47..0000000
--- a/doc/changes-1.0.4-1.1.xml
+++ /dev/null
@@ -1,267 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<group from="1.0.4" to="1.1">
- <subsystem>
- <name>varnishd</name>
-
- <change type="enh" ref="1388">
- <para>Readability of the C source code generated from VCL code
- has been improved.</para>
- </change>
-
- <change type="enh" ref="1389">
- <para>Equality (<code>==</code>) and inequality
- (<code>!=</code>) operators have been implemented for IP
- addresses (which previously could only be compared using
- ACLs).</para>
- </change>
-
- <change type="enh" ref="1390">
- <para>The address of the listening socket on which the client
- connection was received is now available to VCL as the
- <code>server.ip</code> variable.</para>
- </change>
-
- <change type="enh" ref="1395,1397,1398">
- <para>Each object's hash key is now computed based on a string
- which is available to VCL as <code>req.hash</code>. A VCL hook
- named <code>vcl_hash</code> has been added to allow VCL scripts
- to control hash generation (for instance, whether or not to
- include the value of the <code>Host:</code> header in the
- hash).</para>
- </change>
-
- <change type="bug" ref="1423,1559">
- <para>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.</para>
- </change>
-
- <change type="enh" ref="1474">
- <para>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.</para>
- </change>
-
- <change type="enh" ref="1482">
- <para>The child process will now drop root privileges
- immediately upon startup. The user and group to use are
- specified with the <code>user</code> and <code>group</code>
- run-time parameters, which default to <code>nobody</code> and
- <code>nogroup</code>, 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
- process.</para>
- </change>
-
- <change type="enh" ref="1506">
- <para>Objects which are received from the backend with a
- <code>Vary:</code> header are now stored separately according to
- the values of the headers specified in <code>Vary:</code>. This
- allows Varnish to correctly cache e.g. compressed and
- uncompressed versions of the same object.</para>
- </change>
-
- <change type="enh" ref="1521,1524,1525,1526,1528,1532,1533,1572,1573,1581">
- <para>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.</para>
- </change>
-
- <change type="enh" ref="1549">
- <para>When invoked with the <code>-C</code> option,
- <code>varnishd</code> will now not just translate the VCL code
- to C, but also compile the C code and attempt to load the
- resulting shared object.</para>
- </change>
-
- <change type="enh" ref="1552,1576">
- <para>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.</para>
- </change>
-
- <change type="enh" ref="1557,1558">
- <para>The new command-line option <code>-F</code> will make
- <code>varnishd</code> run in the foreground, without enabling
- debugging.</para>
- </change>
-
- <change type="enh" ref="1560">
- <para>New VCL variables have been introduced to allow inspection
- and manipulation of the request sent to the backend
- (<code>bereq.request</code>, <code>bereq.url</code>,
- <code>bereq.proto</code> and <code>bereq.http</code>) and the
- response to the client (<code>resp.proto</code>,
- <code>resp.status</code>, <code>resp.response</code> and
- <code>resp.http</code>).</para>
- </change>
-
- <change type="enh" ref="1564,1565">
- <para>Statistics from the storage code (including the amount of
- data and free space in the cache) are now available to
- <code>varnishstat</code> and other statistics-gathering
- tools.</para>
- </change>
-
- <change type="enh" ref="1548,1561,1567,1568,1570,1586">
- <para>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, <code>vcl_discard</code>, is allowed to inspect each
- object and determine its fate by returning either
- <code>keep</code> or <code>discard</code>.</para>
- </change>
-
- <change type="enh" ref="1612,1640">
- <para>A new VCL hook, <code>vcl_deliver</code>, provides a
- chance to adjust the response before it is sent to the
- client.</para>
- </change>
-
- <change type="enh" ref="1626">
- <para>A new management command, <code>vcl.show</code>, displays
- the VCL source code of any loaded configuration.</para>
- </change>
-
- <change type="enh" ref="1628">
- <para>A new VCL variable, <code>now</code>, provides VCL scripts
- with the current time in seconds since the epoch.</para>
- </change>
-
- <change type="enh" ref="1628,1629,1630">
- <para>A new VCL variable, <code>obj.lastuse</code>, reflects the
- time in seconds since the object in question was last
- used.</para>
- </change>
-
- <change type="enh" ref="1645,1646,1648">
- <para>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
- <code>remove</code> keyword.</para>
- </change>
-
- <change type="enh" ref="1661,1662">
- <para>VCL scripts can now modify the HTTP status code of cached
- objects (<code>obj.status</code>) and responses
- (<code>resp.status</code>)</para>
- </change>
-
- <change type="enh" ref="1663">
- <para>Numeric and other non-textual variables in VCL can now be
- assigned to textual variables; they will be converted as
- needed.</para>
- </change>
-
- <change type="enh" ref="1666,1667">
- <para>VCL scripts can now apply regular expression substitutions
- to textual variables using the <code>regsub</code>
- function.</para>
- </change>
-
- <change type="enh" ref="1674,1675">
- <para>A new management command, <code>status</code>, returns the
- state of the child.</para>
- </change>
-
- <change type="enh" ref="1719-1721">
- <para>Varnish will now build and run on Mac OS X.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>varnishadm</name>
-
- <change type="enh" ref="1502">
- <para>This is a new utility which sends a single command to a
- Varnish server's management port and prints the result to
- <code>stdout</code>, greatly simplifying the use of the
- management port from scripts.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>varnishhist</name>
-
- <change type="enh" ref="1593">
- <para>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.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>varnishncsa</name>
-
- <change type="enh" ref="1479">
- <para>In addition to client traffic, <code>varnishncsa</code>
- can now also process log data from backend traffic.</para>
- </change>
-
- <change type="bug" ref="1531">
- <para>A bug that would cause <code>varnishncsa</code> to
- segfault when it encountered an empty HTTP header in the log
- file has been fixed.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>varnishreplay</name>
-
- <change type="enh" ref="1574,1594,1595,1597,1598,1620,1623,1624,1625">
- <para>This new utility will attempt to recreate the HTTP traffic
- which resulted in the raw Varnish log data which it is
- fed.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>varnishstat</name>
-
- <change type="enh" ref="1587">
- <para>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 <code>varnishd</code> process.</para>
- </change>
-
- <change type="enh" ref="1589,1590,1591">
- <para>The user interface has been greatly improved;
- <code>varnishstat</code> 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.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>varnishtop</name>
-
- <change type="enh" ref="1592,1596">
- <para>The user interface has been greatly improved;
- <code>varnishtop</code> will now respond correctly to window
- resize events, and one-shot mode (<code>-1</code>) actually
- works. In addition, the name of the Varnish instance being
- watched is displayed in the upper right corner in curses
- mode.</para>
- </change>
- </subsystem>
-</group>
diff --git a/doc/changes-1.0.4.xml b/doc/changes-1.0.4.xml
deleted file mode 100644
index 739b1bd..0000000
--- a/doc/changes-1.0.4.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
- <package>Varnish</package>
- <version>1.0.4</version>
-
- <xi:include href="changes-1.0.3-1.0.4.xml"/>
- <!--xi:include href="changes-1.0.2-1.0.3.xml"/-->
- <!--xi:include href="changes-1.0.1-1.0.2.xml"/-->
- <!--xi:include href="changes-1.0-1.0.1.xml"/-->
- <!--xi:include href="changes-0.9-1.0.xml"/-->
-</changelog>
diff --git a/doc/changes-1.1-1.1.1.xml b/doc/changes-1.1-1.1.1.xml
deleted file mode 100644
index 78d6648..0000000
--- a/doc/changes-1.1-1.1.1.xml
+++ /dev/null
@@ -1,136 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<group from="1.1" to="1.1.1">
- <subsystem>
- <name>varnishd</name>
-
- <change type="bug" ref="1745">
- <para>The code required to allow VCL to read
- <code>obj.status</code>, which had accidentally been left out,
- has now been added.</para>
- </change>
-
- <change type="bug" ref="1750">
- <para>Varnish will now always include a <code>Connection:</code>
- header in its reply to the client, to avoid possible
- misunderstandings.</para>
- </change>
-
- <change type="buf" ref="1751">
- <para>A bug that triggered an assertion failure when generating
- synthetic error documents has been corrected.</para>
- </change>
-
- <change type="enh" ref="1761,1762,1765,1828">
- <para>A new VCL function, <code>purge_url</code>, provides the
- same functionality as the <code>url.purge</code> management
- command.</para>
- </change>
-
- <change type="enh" ref="1780">
- <para>Previously, Varnish assumed that the response body should
- be sent only if the request method was <code>GET</code>. This
- was a problem for custom request methods (such as
- <code>PURGE</code>), so the logic has been changed to always
- send the response body except in the specific case of a
- <code>HEAD</code> request.</para>
- </change>
-
- <change type="bug" ref="1795">
- <para>Changes to run-time parameters are now correctly
- propagated to the child process.</para>
- </change>
-
- <change type="bug" ref="1797">
- <para>Due to the way run-time parameters are initialized at
- startup, <code>varnishd</code> previously required the
- <code>nobody</code> user and the <code>nogroup</code> group to
- exist even if a different user and group were specified on the
- command line. This has been corrected.</para>
- </change>
-
- <change type="bug" ref="1800">
- <para>Under certain conditions, the VCL compiler would carry on
- after a syntax error instead of exiting after reporting the
- error. This has been corrected.</para>
- </change>
-
- <change type="enh" ref="1803-1806">
- <para>The manner in which the hash string is assembled has been
- modified to reduce memory usage and memory-to-memory
- copying.</para>
- </change>
-
- <change type="bug" ref="1807">
- <para>Before calling <code>vcl_miss</code>, Varnish assembles a
- tentative request object for the backend request which will
- usually follow. This object would be leaked if
- <code>vcl_miss</code> returned anything else than
- <code>fetch</code>. This has been corrected.</para>
- </change>
-
- <change type="bug" ref="1808">
- <para>The code necessary to handle an <code>error</code> return
- from <code>vcl_fetch</code> and <code>vcl_deliver</code> had
- inadvertantly been left out. This has been corrected.</para>
- </change>
-
- <change type="bug" ref="1810">
- <para>Varnish no longer prints a spurious "child died" message
- (the result of reaping the compiler process) after compiling a
- new VCL configuration.</para>
- </change>
-
- <change type="bug" ref="1838">
- <para>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.</para>
- </change>
-
- <change type="bug" ref="1855,1859">
- <para>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.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>Build system</name>
-
- <change type="bug" ref="1752">
- <para>The top-level Makefile will now honor
- <code>$DESTDIR</code> when creating the state directory.</para>
- </change>
-
- <change type="enh" ref="1743,1846">
- <para>The Debian and RedHat packages are now split into three
- (main / lib / devel) as is customary.</para>
- </change>
-
- <change type="enh" ref="1753,1754,1783-1791,1798,1823,1794">
- <para>A number of compile-time and run-time portability issues
- have been addressed.</para>
- </change>
-
- <change type="enh" ref="1811">
- <para>The <code>autogen.sh</code> script had workarounds for
- problems with the GNU autotools on FreeBSD; these are no longer
- needed and have been removed.</para>
- </change>
-
- <change type="enh" ref="1817">
- <para>The <code>libcompat</code> library has been renamed to
- <code>libvarnishcompat</code> and is now dynamic rather than
- static. This simplifies the build process and resolves an issue
- with the Mac OS X linker.</para>
- </change>
- </subsystem>
-</group>
diff --git a/doc/changes-1.1.1-1.1.2.xml b/doc/changes-1.1.1-1.1.2.xml
deleted file mode 100644
index 5f59902..0000000
--- a/doc/changes-1.1.1-1.1.2.xml
+++ /dev/null
@@ -1,157 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<group from="1.1.1" to="1.1.2">
- <subsystem>
- <name>varnishd</name>
-
- <change type="bug" ref="1809,1913">
- <para>When switching to a new VCL configuration, a race
- condition exists which may cause Varnish to reference a backend
- which no longer exists (see <ticket ref="144"/>). This race
- condition has not been entirely eliminated, but it should occur
- less frequently.</para>
- </change>
-
- <change type="bug" ref="1942">
- <para>When dropping a TCP session before any requests were
- processed, an assertion would be triggered due to an
- uninitialized timestamp (see <ticket ref="132"/>). The
- timestamp is now correctly initialized.</para>
- </change>
-
- <change type="bug" ref="1955,1976,1977">
- <para>Varnish will now correctly generate a <code>Date:</code>
- header for every response instead of copying the one it got from
- the backend (see <ticket ref="157"/>).</para>
- </change>
-
- <change type="bug" ref="1971">
- <para>Comparisons in VCL which involve a non-existent string
- (usually a header which is not present in the request or object
- being processed) would cause a NULL pointer dereference; now the
- comparison will simply fail.</para>
- </change>
-
- <change type="bug" ref="1972">
- <para>A bug in the VCL compiler which would cause a double-free
- when processing <code>include</code> directives has been
- fixed.</para>
- </change>
-
- <change type="bug" ref="1991">
- <para>A resource leak in the worker thread management code has
- been fixed.</para>
- </change>
-
- <change type="bug" ref="1809">
- <para>When connecting to a backend, Varnish will usually get the
- address from a cache. When the cache is refreshed, existing
- connections may end up with a reference to an address structure
- which no longer exists, resulting in a crash. This race
- condition has been somewhat mitigated, but not entirely
- eliminated (see <ticket ref="144"/>.)</para>
- </change>
-
- <change type="bug" ref="1888">
- <para>Varnish will now pass the correct protocol version in pipe
- mode: the backend will get what the client sent, and vice
- versa.</para>
- </change>
-
- <change type="bug" ref="2057,2077,2080,2086">
- <para>The core of the pipe mode code has been rewritten to
- increase robustness and eliminate spurious error messages when
- either end closes the connection in a manner Varnish did not
- anticipate.</para>
- </change>
-
- <change type="bug" ref="2181">
- <para>A memory leak in the backend code has been plugged.</para>
- </change>
-
- <change type="bug" ref="2232">
- <para>When using the <code>kqueue</code> acceptor, if a client
- shuts down the request side of the connection (as many clients
- do after sending their final request), it was possible for the
- acceptor code to receive the <code>EOF</code> event and recycle
- the session while the last request was still being serviced,
- resulting in a assertion failure and a crash when the worker
- thread later tried to delete the session. This should no longer
- happen (see <ticket ref="162"/>.)</para>
- </change>
-
- <change type="bug" ref="2275">
- <para>A mismatch between the recorded length of a cached object
- and the amount of data actually present in cache for that object
- can occasionally occur (see <ticket ref="167"/>.) This has been
- partially fixed, but may still occur for error pages generated
- by Varnish when a problem arises while retrieving an object from
- the backend.</para>
- </change>
-
- <change type="bug" ref="2285,2286">
- <para>Some socket-related system calls may return unexpected
- error codes when operating on a TCP connection that has been
- shut down at the other end. These error codes would previously
- cause assertion failures, but are now recognized as harmless
- conditions.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>varnishhist</name>
-
- <change type="enh">
- <para>Pressing <code>0</code> though <code>9</code> while
- <code>varnishhist</code> is running will change the refresh
- interval to the corresponding power of two, in seconds.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>varnishncsa</name>
-
- <change type="enh">
- <para>The <code>varnishncsa</code> tool can now daemonize and
- write a PID file like <code>varnishlog</code>, using the same
- command-line options. It will also reopen its output upon receipt
- of a <code>SIGHUP</code> if invoked with <code>-w</code>.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>varnishstat</name>
-
- <change type="enh">
- <para>Pressing <code>0</code> though <code>9</code> while
- <code>varnishstat</code> is running will change the refresh
- interval to the corresponding power of two, in seconds.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>Build system</name>
-
- <change type="enh" ref="2033">
- <para>Varnish's <code><queue.h></code> has been modified
- to avoid conflicts with <code><sys/queue.h></code> on
- platforms where the latter is included indirectly through system
- headers.</para>
- </change>
-
- <change type="enh" ref="2032,2133,2097,2106,2222-2228">
- <para>Several steps have been taken towards Solaris
- support, but this is not yet complete.</para>
- </change>
-
- <change type="bug" ref="2116,2154">
- <para>When <code>configure</code> was run without an explicit
- prefix, Varnish's idea of the default state directory would be
- garbage and a state directory would have to be specified
- manually with <code>-n</code>. This has been corrected.</para>
- </change>
- </subsystem>
-</group>
diff --git a/doc/changes-1.1.1.xml b/doc/changes-1.1.1.xml
deleted file mode 100644
index 784249e..0000000
--- a/doc/changes-1.1.1.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
- <package>Varnish</package>
- <version>1.1.1</version>
-
- <xi:include href="changes-1.1-1.1.1.xml"/>
-</changelog>
diff --git a/doc/changes-1.1.2-2.0.xml b/doc/changes-1.1.2-2.0.xml
deleted file mode 100644
index 1b56acb..0000000
--- a/doc/changes-1.1.2-2.0.xml
+++ /dev/null
@@ -1,199 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<group from="1.1.2" to="2.0">
- <subsystem>
- <name>varnishd</name>
-
- <change type="bug">
- <para>Only look for sendfile on platforms where we know how to
- use it, which is FreeBSD for now.</para>
- </change>
-
- <change type="bug">
- <para>Make it possible to adjust the shared memory log size and
- bump the size from 8MB to 80MB.</para>
- </change>
-
- <change type="enh">
- <para>Fix up the handling of request bodies to better match
- what RFC2616 mandates. This makes PUT, DELETE, OPTIONS and
- TRACE work in addition to POST. </para>
- </change>
-
- <change type="enh">
- <para>Change how backends are defined, to a constant structural
- defintion style. See
- http://varnish.projects.linpro.no/wiki/VclSyntaxChanges for the
- details.</para>
- </change>
-
- <change type="enh">
- <para>Add directors, which wrap backends. Currently, there's a
- random director and a round-robin director.</para>
- </change>
-
- <change type="enh">
- <para>Add "grace", which is for how long and object will be
- served, even after it has expired. To use this, both the
- object's and the request's <code>grace</code> parameter need
- to be set.</para>
- </change>
-
- <change type="enh">
- <para>Manual pages have been updated for new VCL syntax and
- varnishd options.</para>
- </change>
-
- <change type="enh">
- <para>Man pages and other docs have been updated.</para>
- </change>
-
- <change type="enh">
- <para>The shared memory log file is now locked in memory, so it
- should not be paged out to disk.</para>
- </change>
-
- <change type="enh">
- <para>We now handle Vary correctly, as well as Expect.</para>
- </change>
-
- <change type="enh">
- <para>ESI include support is implemented.</para>
- </change>
-
- <change type="enh">
- <para>Make it possible to limit how much memory the malloc uses.</para>
- </change>
-
- <change type="enh">
- <para>Solaris is now supported.</para>
- </change>
-
- <change type="enh">
- <para>There is now a <code>regsuball</code> function, which
- works like <code>regsub</code> except it replaces all
- occurences of the regex, not just the first.</para>
- </change>
-
- <change type="enh">
- <para>Backend and director declarations can have
- a <code>.connect_timeout</code> parameter, which tells us how
- long to wait for a successful connection.</para>
- </change>
-
- <change type="enh">
- <para>It is now possible to select the acceptor to use by
- changing the <code>acceptor</code> parameter.</para>
- </change>
-
- <change type="enh">
- <para>Backends can have probes associated with them, which can
- be checked with <code>req.backend.health</code> in VCL as well as
- being handled by directors which do load-balancing.</para>
- </change>
-
- <change type="enh">
- <para>Support larger-than-2GB files also on 32 bit hosts.
- Please note that this does not mean we can support caches
- bigger than 2GB, it just means logfiles and similar can be
- bigger.</para>
- </change>
-
- <change type="bug">
- <para>In some cases, we would remove the wrong header when we
- were stripping Content-Transfer-Encoding headers from a
- request. This has been fixed.</para>
- </change>
-
- <change type="enh">
- <para>Backends can have a <code>.max_connections</code>
- associated with them.</para>
- </change>
-
- <change type="bug">
- <para>On Linux, we need to set the dumpable bit on the child if
- we want core dumps. Make sure it's set.</para>
- </change>
-
- <change type="bug">
- <para>Doing <code>purge.hash()</code> with an empty string
- would cause us to dump core. Fixed so we don't do that any
- more.</para>
- </change>
-
- <change type="bug">
- <para>We ran into a problem with glibc's malloc on Linux where
- it seemed like it failed to ever give memory back to the OS,
- causing the system to swap. We have now switched to jemalloc
- which appears not to have this problem.</para>
- </change>
-
- <change type="bug">
- <para><code>max_restarts</code> was never checked, so we always
- ended up running out of workspace. Now, <code>vcl_error</code>
- is called when we reach <code>max_restarts</code>.</para>
- </change>
- </subsystem>
- <subsystem>
- <name>varnishtest</name>
-
- <change type="enh">
- <para><code>varnishtest</code> is a tool to do correctness tests
- of varnishd. The test suite is run by using <code>make
- check</code>.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>varnishtop</name>
-
- <change type="enh">
- <para>We now set the field widths dynamically based on the size
- of the terminal and the name of the longest field.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>varnishstat</name>
-
- <change type="enh">
- <para><code>varnishstat -1</code> now displays the uptime too.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>varnishncsa</name>
-
- <change type="bug">
- <para><code>varnishncsa</code> now does fflush after each
- write. This makes <code>tail -f</code> work correctly, as well
- as avoiding broken lines in the log file.</para>
- </change>
-
- <change type="enh">
- <para>It is possible to get <code>varnishncsa</code> to output
- the <code>X-Forwarded-For</code> instead of the client IP by
- passing <code>-f</code> to it.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>Build system</name>
-
- <change type="bug">
- <para>Various sanity checks have been added
- to <code>configure</code>, it now complains about no ncurses or
- if SO_RCVTIMEO or SO_SNDTIMEO are non-functional. It also
- aborts if there's no working acceptor mechanism </para>
- </change>
-
- <change type="enh">
- <para>The C compiler invocation is decided by the configure
- script and can now be overridden by passing <code>VCC_CC</code>
- when running configure.</para>
- </change>
- </subsystem>
-</group>
diff --git a/doc/changes-1.1.2.xml b/doc/changes-1.1.2.xml
deleted file mode 100644
index e629003..0000000
--- a/doc/changes-1.1.2.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
- <package>Varnish</package>
- <version>1.1.2</version>
-
- <xi:include href="changes-1.1.1-1.1.2.xml"/>
-</changelog>
diff --git a/doc/changes-1.1.xml b/doc/changes-1.1.xml
deleted file mode 100644
index a1b1c38..0000000
--- a/doc/changes-1.1.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
- <package>Varnish</package>
- <version>1.1</version>
-
- <xi:include href="changes-1.0.4-1.1.xml"/>
-</changelog>
diff --git a/doc/changes-2.0-2.0.1.xml b/doc/changes-2.0-2.0.1.xml
deleted file mode 100644
index 39422ab..0000000
--- a/doc/changes-2.0-2.0.1.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<group from="2.0" to="2.0.1">
- <subsystem>
- <name>varnishd</name>
-
- <change type="bug" ref="354">
- <para>When receiving a garbled HTTP
- request, <code>varnishd</code> would sometimes crash. This has
- been fixed.</para>
- </change>
-
- <change type="bug">
- <para>There was an off-by-one error in the ACL compilation.
- Now fixed.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>Red Hat spec file</name>
-
- <change type="bug">
- <para>A typo in the spec file made the .rpm file names wrong.</para>
- </change>
- </subsystem>
-</group>
diff --git a/doc/changes-2.0.1-2.0.2.xml b/doc/changes-2.0.1-2.0.2.xml
deleted file mode 100644
index 51e5627..0000000
--- a/doc/changes-2.0.1-2.0.2.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<group from="2.0.1" to="2.0.2">
- <subsystem>
- <name>varnishd</name>
-
- <change type="bug" ref="345">
- <para>In high-load situations, when using
- ESI, <code>varnishd</code> would sometimes mishandle objects and
- crash. This has been worked around. </para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>varnishreplay</name>
-
- <change type="bug">
- <para><code>varnishreplay</code> did not work correctly on
- Linux, due to a too small stack. This has now been fixed.</para>
- </change>
- </subsystem>
-</group>
diff --git a/doc/changes-2.0.1.xml b/doc/changes-2.0.1.xml
deleted file mode 100644
index 9d84398..0000000
--- a/doc/changes-2.0.1.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
- <package>Varnish</package>
- <version>2.0.1</version>
-
- <xi:include href="changes-2.0-2.0.1.xml"/>
-</changelog>
diff --git a/doc/changes-2.0.2-2.0.3.xml b/doc/changes-2.0.2-2.0.3.xml
deleted file mode 100644
index 1c0737a..0000000
--- a/doc/changes-2.0.2-2.0.3.xml
+++ /dev/null
@@ -1,225 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<group from="2.0.2" to="2.0.3">
- <subsystem>
- <name>varnishd</name>
-
- <change type="bug" ref="386">
- <para>Handle If-Modified-Since and ESI sub-objects better,
- fixing a problem where we sometimes neglected to insert
- included objects.</para>
- </change>
-
- <change type="enh" ref="365">
- <para><code>restart</code> in <code>vcl_hit</code> is now supported.</para>
- </change>
-
- <change type="bug">
- <para>Setting the TTL of an object to 0 seconds would sometimes
- cause it to be delivered for up to one second - epsilon. This
- has been corrected and we should now never deliver those
- objects to other clients.</para>
- </change>
-
- <change type="enh">
- <para>The malloc storage backend now prints the maximum storage
- size, just like the file backend.</para>
- </change>
-
- <change type="bug" ref="362">
- <para>Various small documentation bugs have been fixed.</para>
- </change>
-
- <change type="bug" >
- <para>Varnish did not set a default interval for backend
- probes, causing it to poll the backend continuously. This has
- been corrected.</para>
- </change>
-
- <change type="enh">
- <para>Allow "true" and "false" when setting boolean parameters,
- in addition to on/off, enable/disable and yes/no.</para>
- </change>
-
- <change type="enh">
- <para>Default to always talking HTTP 1.1 with the backend.</para>
- </change>
-
- <change type="bug" ref="368">
- <para>Varnish did not make sure the file it was loading was a
- regular file. This could cause Varnish to crash if it was
- asked to load a directory or other non-regular file. We now
- check that the file is a regular file before loading it.</para>
- </change>
-
- <change type="enh" ref="210">
- <para>The binary heap used for expiry processing had
- scalability problems. Work around this by using stripes of a
- fixed size, which should make this scale better, particularly
- when starting up and having lots of objects.</para>
- </change>
-
- <change type="bug">
- <para>When we imported the <code>jemalloc</code> library into
- the Varnish tree, it did not compile without warnings. This
- has now been fixed.</para>
- </change>
-
- <change type="bug" ref="278">
- <para>Varnish took a very long time to detect that the backend
- did not respond. To remedy this, we now have read timeouts in
- addition to the connect timeout. Both
- the <code>first_byte_timeout</code> and
- the <code>between_bytes_timeout</code> defaults to 60 seconds.
- The connect timeout is no longer in milliseconds, but rather in
- seconds.</para>
- </change>
-
- <change type="enh">
- <para>Previously, the VCL to C conversion as well as the
- invocation of the C compiler was done in the management
- process. This is now done in a separate sub-process. This
- prevents any bugs in the VCL compiler from affecting the
- management process.</para>
- </change>
-
- <change type="bug">
- <para>Chunked encoding headers were counted in the statistics
- for header bytes. They no longer are.</para>
- </change>
-
- <change type="bug">
- <para>ESI processed objects were not counted in the statistics
- for body bytes. They now are.</para>
- </change>
-
- <change type="enh">
- <para>It is now possible to adjust the maximum record length of
- log entries in the shmlog by tuning the <code>shm_reclen</code>
- parameter.</para>
- </change>
-
- <change type="enh">
- <para>The management parameters listed in the CLI were not
- sorted, which made it hard to find the parameter you were
- looking for. They are now sorted, which should make this
- easier.</para>
- </change>
-
- <change type="enh">
- <para>Add a new hashing type, "critbit", which uses a lock-less
- tree based lookup algorithm. This is experimental and should
- not be enabled in production environments without proper
- testing.</para>
- </change>
-
- <change type="enh">
- <para>The session workspace had a default size of 8k. It is
- now 16k, which should make VCLs where many headers are
- processed less prone to panics.</para>
- </change>
-
- <change type="enh">
- <para>We have seen that people seem to be confused as to which
- actions in the different VCL functions return and which ones
- don't. Add a new syntax <code>return(action)</code> to make
- this more explicit. The old syntax is still supported.</para>
- </change>
-
- <change type="bug" ref="97">
- <para>Varnish would return an error if any of the management
- IPs listed in the <code>-T</code> parameter could not be
- listened to. We now only return an error if none of them can
- be listened to.</para>
- </change>
-
- <change type="bug" ref="416">
- <para>In the case of the backend or client giving us too many
- parameters, we used to just ignore the overflowing headers.
- This is problematic if you end up ignoreing Content-Length,
- Transfer-Encoding and similar headers. We now give out a 400
- error to the client if it sends us too many and 503 if we get
- too many from the backend.</para>
- </change>
-
- <change type="bug" ref="387">
- <para>We used panic if we got a too large chunked header.
- This behaviour has been changed into just failing the
- transaction.</para>
- </change>
-
- <change type="enh">
- <para>Varnish now supports an extended purge method where it is
- possible to do <code>purge req.http.host ~ "web1.com" && req.url ~ "\.png"
- </code> and similar. See the documentation for details.</para>
- </change>
-
- <change type="bug" ref="418">
- <para>Under heavy load, Varnish would sometimes crash when
- trying to update the per-request statistics. This has now been
- fixed.</para>
- </change>
-
- <change type="enh">
- <para>It is now possible to not save the hash string in the
- session and object workspace. This will save a lot of memory
- on sites with many small objects. Disabling
- the <code>purge_hash</code> parameter also disables
- the <code>purge.hash</code> facility.</para>
- </change>
-
- <change type="enh">
- <para>Varnish now supports <code>!~</code> as a "no match"
- regular expression matcher.</para>
- </change>
-
- <change type="bug" ref="425">
- <para>In some cases, you could get serialised access to "pass"
- objects. We now make it default to the default_ttl value; this
- can be overridden in vcl_fetch.</para>
- </change>
-
- <change type="bug" ref="417">
- <para>Varnish did not check the syntax of <code>regsub</code>
- calls properly. More checking has been added.</para>
- </change>
-
- <change type="bug" ref="427">
- <para>If the client closed the connection while Varnish was
- processing ESI elements, Varnish would crash while trying to
- write the object to the client. We now check if the client has
- closed the connection.</para>
- </change>
-
- <change type="bug" ref="433">
- <para>The ESI parser had a bug where it would crash if an XML
- comment would span storage segments. This has been
- fixed.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>VCL Manual page</name>
-
- <change type="bug">
- <para>The documentation on how capturing parentheses work was
- wrong. This has been corrected.</para>
- </change>
-
- <change type="enh">
- <para>Grace has now been documented.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>varnishreplay</name>
-
- <change type="bug">
- <para><code>varnishreplay</code> did not work correctly on
- Linux, due to a too small stack. This has now been fixed.</para>
- </change>
- </subsystem>
-</group>
diff --git a/doc/changes-2.0.2.xml b/doc/changes-2.0.2.xml
deleted file mode 100644
index c56ca46..0000000
--- a/doc/changes-2.0.2.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
- <package>Varnish</package>
- <version>2.0.2</version>
-
- <xi:include href="changes-2.0.1-2.0.2.xml"/>
-</changelog>
diff --git a/doc/changes-2.0.3-2.0.4.xml b/doc/changes-2.0.3-2.0.4.xml
deleted file mode 100644
index d7bb0b8..0000000
--- a/doc/changes-2.0.3-2.0.4.xml
+++ /dev/null
@@ -1,98 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<group from="2.0.3" to="2.0.4">
- <subsystem>
- <name>varnishd</name>
-
- <change type="enh">
- <para>Make Varnish more portable by pulling in fixes for
- Solaris and NetBSD.</para>
- </change>
-
- <change type="bug">
- <para>Correct description of -a in the manual page.</para>
- </change>
-
- <change type="bug">
- <para>Ensure we are compiling in C99 mode.</para>
- </change>
-
- <change type="bug" ref="458">
- <para>If error was called with a null reason, we would crash on
- Solaris. Make sure this no longer happens.</para>
- </change>
-
- <change type="bug" ref="428">
- <para>Varnish used to crash if you asked it to use a
- non-existent waiter. This has now been fixed.</para>
- </change>
-
- <change type="enh">
- <para>Add documentation to the default VCL explaining that
- using <code>Connection: close</code> in <code>vcl_close</code>
- is generally a good idea.</para>
- </change>
-
- <change type="enh">
- <para>Add minimal facility for dealing with TELNET option
- negotiation by returning WONT to DO and DONT requests.</para>
- </change>
-
- <change type="enh">
- <para>If the backend is unhealthy, use a graced object if one is
- available.</para>
- </change>
-
- <change type="enh">
- <para>Make <code>server.hostname</code>
- and <code>server.identity</code> available to VCL. The latter
- can be set with the <code>-i</code> parameter
- to <code>varnishd</code>.</para>
- </change>
-
- <change type="enh">
- <para>Make <code>restart</code> available
- from <code>vcl_error</code>.</para>
- </change>
-
- <change type="enh">
- <para>Previously, only the TTL of an object was considered in
- whether it would be marked as cacheable. This has been changed
- to take the grace into consideration as well.</para>
- </change>
-
- <change type="bug" ref="445">
- <para>Previously, if an included ESI fragment had a zero size,
- we would send out a zero-sized chunk which signifies
- end-of-transmission. We now ignore zero-sized chunks.</para>
- </change>
-
- <change type="bug">
- <para>We accidentially slept for far too long when we reached
- the maximum number of open file descriptors. This has been
- corrected and <code>accept_fd_holdoff</code> now works
- correctly.</para>
- </change>
- <change type="bug" ref="476">
- <para>Previously, when ESI processing, we did not look at the
- full length, but stopped at the first NULL byte. We no longer
- do that, enabling ESI processing of binary data.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>varnishtest</name>
- <change type="bug">
- <para>Make sure system "..." returns successfully to ensure
- test failures do not go unnoticed.</para>
- </change>
-
- <change type="enh">
- <para>Make it possible to send NULL bytes through the testing
- framework.</para>
- </change>
- </subsystem>
-</group>
diff --git a/doc/changes-2.0.3.xml b/doc/changes-2.0.3.xml
deleted file mode 100644
index 69dd9fd..0000000
--- a/doc/changes-2.0.3.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
- <package>Varnish</package>
- <version>2.0.3</version>
-
- <xi:include href="changes-2.0.2-2.0.3.xml"/>
-</changelog>
diff --git a/doc/changes-2.0.4-2.0.5.xml b/doc/changes-2.0.4-2.0.5.xml
deleted file mode 100644
index ff5e15d..0000000
--- a/doc/changes-2.0.4-2.0.5.xml
+++ /dev/null
@@ -1,161 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<group from="2.0.4" to="2.0.5">
- <subsystem>
- <name>varnishd</name>
-
- <change type="bug" ref="498">
- <para>Handle object workspace overruns better.</para>
- </change>
-
- <change type="enh">
- <para>Allow turning off ESI processing per request by using
- <code>set req.esi = off</code>.</para>
- </change>
-
- <change type="enh">
- <para>Tell the kernel that we expect to use the mmap-ed file in
- a random fashion. On Linux, this turns off/down readahead and
- increases performance.</para>
- </change>
-
- <change type="enh">
- <para>Make it possible to change the maximum number of HTTP
- headers we allow by
- passing <code>--with-max-header-fields=NUM</code> rather than
- changing the code.</para>
- </change>
-
- <change type="enh" ref="428">
- <para>Implement support for HTTP continuation lines.</para>
- </change>
-
- <change type="enh">
- <para>Change how connections are closed and only use SO_LINGER
- for orderly connection closure. This should hopefully make
- worker threads less prone to hangups on network problems.</para>
- </change>
-
- <change type="bug" ref="502">
- <para>Handle multi-element purges correctly. Previously we
- ended up with parse errors when this was done from VCL.</para>
- </change>
-
- <change type="bug" ref="506, 549">
- <para>Handle illegal responses from the backend better by
- serving a 503 page rather than panic-ing.</para>
- </change>
-
- <change type="enh">
- <para>When we run into an assertion that is not true, Varnish
- would previously dump a little bit of information about itself.
- Extend that information with a backtrace. Note that this relies
- on the varnish binary being unstripped.</para>
- </change>
-
- <change type="enh">
- <para>Add a session_max parameter that limits the maximum
- number of sessions we keep open before we start dropping new
- connections summarily.</para>
- </change>
-
- <change type="bug">
- <para>Try to consume less memory when doing ESI processing by
- properly rolling back used workspace after processing an
- object. This should make it possible to
- turn <code>sess_workspace</code> quite a bit for users with
- ESI-heavy pages.</para>
- </change>
-
- <change type="enh">
- <para>Turn on <code>session_linger</code> by default. Tests
- have shown that <code>session_linger</code> helps a fair bit
- with performance.</para>
- </change>
-
- <change type="enh">
- <para>Rewrite the epoll acceptor for better performance. This
- should lead to both higher processing rates and maximum number
- of connections on Linux.</para>
- </change>
-
- <change type="enh">
- <para>Add If-None-Match support, this gives significant
- bandwidth savings for users with compliant browsers.</para>
- </change>
-
- <change type="bug" ref="529">
- <para>RFC2616 specifies
- that <code>ETag</code>, <code>Content-Location</code>, <code>Expires</code>, <code>Cache-Control</code>
- and <code>Vary</code> should be emitted when delivering a
- response with the 304 response code.</para>
- </change>
-
- <change type="bug" ref="531">
- <para>Various fixes which makes Varnish compile and work on AIX.</para>
- </change>
-
- <change type="enh">
- <para>Turn on TCP_DEFER_ACCEPT on Linux. This should make us
- less suspecible to denial of service attacks as well as give us
- slightly better performance.</para>
- </change>
-
- <change type="enh">
- <para>Add an <code>.initial</code> property to the backend
- probe specification. This is the number of good probes we
- pretend to have seen. The default is one less than .threshold,
- which means the first probe will decide if we consider the
- backend healthy.</para>
- </change>
-
- <change type="enh">
- <para>Make it possible to compare strings against other
- string-like objects, not just plain strings. This allows you to
- compare two headers, for instance.</para>
- </change>
-
- <change type="bug">
- <para>When support for <code>restart</code>
- in <code>vcl_error</code> was added, there was no check to
- prevent infinte recursion. This has now been fixed.
- </para>
- </change>
-
- <change type="enh">
- <para>Turn on purge_dups by default. This should make us
- consume less memory when there are many bans for the same
- pattern added.</para>
- </change>
-
- <change type="enh">
- <para>Add a new log tag called <code>FetchError</code> which
- tries to explain why we could not fetch an object from the
- backend.</para>
- </change>
-
- <change type="enh">
- <para>Change the default <code>srcaddr_ttl</code> to 0. It is
- not used by anything and has been removed in the development
- version. This will increase performance somewhat.</para>
- </change>
-
- </subsystem>
-
- <subsystem>
- <name>varnishtop</name>
- <change type="bug" ref="514">
- <para>varnishtop did not handle variable-length log fields
- correctly. This is now fixed.</para>
- </change>
-
- <change type="enh">
- <para>varnishtop previously did not print the name of the tag,
- which made it very hard to understand. We now print out the
- tag name.</para>
- </change>
- </subsystem>
-</group>
diff --git a/doc/changes-2.0.4.xml b/doc/changes-2.0.4.xml
deleted file mode 100644
index bf08056..0000000
--- a/doc/changes-2.0.4.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
- <package>Varnish</package>
- <version>2.0.4</version>
-
- <xi:include href="changes-2.0.3-2.0.4.xml"/>
-</changelog>
diff --git a/doc/changes-2.0.5-2.0.6.xml b/doc/changes-2.0.5-2.0.6.xml
deleted file mode 100644
index 257bd0e..0000000
--- a/doc/changes-2.0.5-2.0.6.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<group from="2.0.5" to="2.0.6">
- <subsystem>
- <name>varnishd</name>
-
- <change type="bug" ref="585">
- <para>2.0.5 had an off-by-one error in the ESI handling causing
- includes to fail a large part of the time. This has now been
- fixed.</para>
- </change>
-
- <change type="bug" ref="584">
- <para>Try harder to not confuse backends when sending them
- backend probes. We half-closed the connection, something some
- backends thought meant we had dropped the connection. Stop
- doing so, and add the capability for specifying the expected
- response code.</para>
- </change>
-
- <change type="bug">
- <para>In 2.0.5, session lingering was turned on. This caused
- statistics to not be counted often enough in some cases. This
- has now been fixed.</para>
- </change>
-
- <change type="bug" ref="547">
- <para>Avoid triggering an assert if the other end closes the
- connection while we are lingering and waiting for another
- request from them.</para>
- </change>
-
- <change type="bug" ref="577">
- <para>When generating backtraces, prefer the built-in backtrace
- function if such exists. This fixes a problem compiling 2.0.5
- on Solaris.</para>
- </change>
-
- <change type="enh" ref="572">
- <para>Make it possible to specify the per-thread stack size.
- This might be useful on 32 bit systems with their limited
- address space.</para>
- </change>
-
- <change type="bug" ref="559">
- <para>Document the <code>-C</code> option
- to <code>varnishd</code>.</para>
- </change>
- </subsystem>
-</group>
diff --git a/doc/changes-2.0.5.xml b/doc/changes-2.0.5.xml
deleted file mode 100644
index 5c6c47a..0000000
--- a/doc/changes-2.0.5.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
- <package>Varnish</package>
- <version>2.0.5</version>
-
- <xi:include href="changes-2.0.4-2.0.5.xml"/>
-</changelog>
diff --git a/doc/changes-2.0.6-2.1.0.xml b/doc/changes-2.0.6-2.1.0.xml
deleted file mode 100644
index 7ecbd59..0000000
--- a/doc/changes-2.0.6-2.1.0.xml
+++ /dev/null
@@ -1,316 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<group from="2.0.6" to="2.1.0">
- <subsystem>
- <name>varnishd</name>
-
- <change type="enh">
- <para>Persistent storage is now experimentally supported using
- the <code>persistent</code> stevedore. It has the same command
- line arguments as the file stevedore.</para>
- </change>
-
- <change type="enh">
- <para><code>obj.*</code> is now called <code>beresp.*</code>
- in <code>vcl_fetch</code>, and <code>obj.*</code> is now
- read-only.</para>
- </change>
-
- <change type="enh">
- <para>The regular expression engine is now PCRE instead of POSIX
- regular expressions.</para>
- </change>
-
- <change type="enh">
- <para><code>req.*</code> is now available
- in <code>vcl_deliver</code>.</para>
- </change>
-
- <change type="enh">
- <para>Add saint mode where we can attempt to grace an object if
- we don't like the backend response for some reason.</para>
-
- <para>Related, add <code>saintmode_threshold</code> which is the
- threshold for the number of objects to be added to the trouble
- list before the backend is considered sick.</para>
- </change>
-
- <change type="enh">
- <para>Add a new hashing method called critbit. This autoscales
- and should work better on large object workloads than the
- classic hash. Critbit has been made the default hash algorithm.</para>
- </change>
-
- <change type="enh">
- <para>When closing connections, we experimented with sending RST
- to free up load balancers and free up threads more quickly.
- This caused some problems with NAT routers and so has been
- reverted for now.</para>
- </change>
-
- <change type="enh">
- <para>Add thread that checks objects against ban list in order
- to prevent ban list from growing forever. Note that this
- needs purges to be written so they don't depend
- on <code>req.*</code>. Enabled by
- setting <code>ban_lurker_sleep</code> to a nonzero
- value.</para>
- </change>
-
- <change type="enh">
- <para>The shared memory log file format was limited to maximum
- 64k simultaneous connections. This is now a 32 bit field which
- removes this limitation.</para>
- </change>
-
- <change type="enh">
- <para>Remove obj_workspace, this is now sized automatically.
- </para>
- </change>
-
- <change type="enh">
- <para>Rename acceptors to waiters</para>
- </change>
-
- <change type="enh">
- <para><code>vcl_prefetch</code> has been removed. It was never
- fully implemented.</para>
- </change>
-
- <change type="enh">
- <para>Add support for authenticating CLI connections.</para>
- </change>
-
- <change type="enh">
- <para>Add hash director that chooses which backend to use
- depending on <code>req.hash</code>.</para>
- </change>
-
- <change type="enh">
- <para>Add client director that chooses which backend to use
- depending on the client's IP address. Note that this ignores
- the <code>X-Forwarded-For</code> header.</para>
- </change>
-
- <change type="enh">
- <para><code>varnishd</code> now displays a banner by default
- when you connect to the CLI.</para>
- </change>
-
- <change type="enh">
- <para>Increase performance somewhat by moving statistics
- gathering into a per-worker structure that is regularly
- flushed to the global stats.</para>
- </change>
-
- <change type="enh">
- <para>Make sure we store the header and body of object together.
- This may in some cases improve performance and is needed for
- persistence.</para>
- </change>
-
- <change type="enh">
- <para>Remove client-side address accounting. It was never used
- for anything and presented a performance problem.</para>
- </change>
-
- <change type="enh">
- <para>Add a timestamp to bans, so you can know how old they are.</para>
- </change>
-
- <change type="enh">
- <para>Quite a few people got confused over the warning about not
- being able to lock the shared memory log into RAM, so stop
- warning about that.</para>
- </change>
-
- <change type="enh" ref="329">
- <para>Change the default CLI timeout to 10 seconds.</para>
- </change>
-
- <change type="bug" ref="444">
- <para>We previously forced all inserts into the cache to be GET
- requests. This has been changed to allow POST as well in
- order to be able to implement purge-on-POST semantics.</para>
- </change>
-
- <change type="enh">
- <para>The CLI command <code>stats</code> now only lists non-zero
- values.</para>
- </change>
-
- <change type="enh">
- <para>The CLI command <code>stats</code> now only lists non-zero
- values.</para>
- </change>
-
- <change type="enh">
- <para>Use <code>daemon(3)</code> from <code>libcompat</code> on
- Darwin.</para>
- </change>
-
- <change type="enh">
- <para>Remove <code>vcl_discard</code> as it causes too much
- complexity and never actually worked particularly well.</para>
- </change>
-
- <change type="enh">
- <para>Remove <code>vcl_timeout</code> as it causes too much
- complexity and never actually worked particularly well.</para>
- </change>
-
- <change type="enh">
- <para>Update the documentation so it refers
- to <code>sess_workspace</code>, not <code>http_workspace</code>.</para>
- </change>
-
- <change type="enh">
- <para>Document the <code>-i</code> switch
- to <code>varnishd</code> as well as
- the <code>server.identity</code>
- and <code>server.hostname</code> VCL variables.</para>
- </change>
-
- <change type="enh">
- <para><code>purge.hash</code> is now deprecated and no longer
- shown in help listings.</para>
- </change>
-
- <change type="enh" ref="607">
- <para>When processing ESI, replace the five mandatory XML
- entities when we encounter them.</para>
- </change>
-
- <change type="enh">
- <para>Add string representations of time and relative
- time.</para>
- </change>
-
- <change type="bug" ref="604">
- <para>Add locking for <code>n_vbe_conn</code> to make it stop
- underflowing.</para>
- </change>
-
- <change type="bug" ref="207">
- <para>When ESI-processing content, check for illegal XML
- character entities.</para>
- </change>
-
- <change type="bug" ref="207">
- <para>Varnish can now connect its CLI to a remote instance when
- starting up, rather than just being connected to.</para>
- </change>
-
- <change type="enh">
- <para>It is no longer needed to specify the maximum number of
- HTTP headers to allow from backends. This is now a run-time
- parameter.</para>
- </change>
-
- <change type="enh" ref="601, 540">
- <para>The <code>X-Forwarded-For</code> header is now generated
- by <code>vcl_recv</code> rather than the C code.</para>
- </change>
-
- <change type="enh">
- <para>It is now possible to not send all CLI traffic to
- syslog.</para>
- </change>
-
- <change type="enh">
- <para>It is now possible to not send all CLI traffic to
- syslog.</para>
- </change>
-
- <change type="enh">
- <para>In the case of varnish crashing, it now outputs a
- identifying string with the OS, OS revision, architecture and
- storage parameters together with the backtrace.</para>
- </change>
-
- <change type="enh">
- <para>Use exponential backoff when we run out of file
- descriptors or sessions.</para>
- </change>
-
- <change type="enh" ref="635">
- <para>Allow setting backend timeouts to zero.</para>
- </change>
-
- <change type="enh">
- <para>Count uptime in the shared memory log.</para>
- </change>
-
- <change type="enh" ref="620">
- <para>Try to detect the case of two running varnishes with the
- same shmlog and storage by writing the master and child process
- ids to the shmlog and refusing to start if they are still
- running.</para>
- </change>
-
- <change type="bug" ref="524">
- <para>Make sure to use EOF mode when serving ESI content to
- HTTP/1.0 clients.</para>
- </change>
-
- <change type="bug" ref="495">
- <para>Make sure we close the connection if it either
- sends <code>Connection: close</code> or it is a HTTP/1.0
- backend that does not send <code>Connection:
- keep-alive</code>.</para>
- </change>
-
- <change type="enh">
- <para>Increase the default session workspace to 64k on 64-bit
- systems.</para>
- </change>
-
- <change type="bug" ref="644">
- <para>Make the <code>epoll</code> waiter use level triggering,
- not edge triggering as edge triggering caused problems on very
- busy servers.</para>
- </change>
-
- <change type="bug" ref="626">
- <para>Handle unforeseen client disconnections better on Solaris.</para>
- </change>
-
- <change type="enh">
- <para>Make session lingering apply to new sessions, not just
- reused sessions.</para>
- </change>
- </subsystem>
- <subsystem>
- <name>varnishstat</name>
-
- <change type="enh">
- <para>Make use of the new uptime field in the shared memory log
- rather than synthesizing it from the start time.</para>
- </change>
- </subsystem>
- <subsystem>
- <name>varnishlog</name>
-
- <change type="enh">
- <para>Exit at the end of the file when started
- with <code>-d</code>.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>varnishadm</name>
-
- <change type="enh">
- <para><code>varnishadm</code> can now have a timeout when trying
- to connect to the running <code>varnishd</code>.</para>
- </change>
-
- <change type="enh">
- <para><code>varnishadm</code> now knows how to respond to the
- secret from a secured <code>varnishd</code></para>
- </change>
- </subsystem>
-</group>
diff --git a/doc/changes-2.0.6.xml b/doc/changes-2.0.6.xml
deleted file mode 100644
index bf742f0..0000000
--- a/doc/changes-2.0.6.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
- <package>Varnish</package>
- <version>2.0.6</version>
-
- <xi:include href="changes-2.0.5-2.0.6.xml"/>
-</changelog>
diff --git a/doc/changes-2.0.xml b/doc/changes-2.0.xml
deleted file mode 100644
index a510d76..0000000
--- a/doc/changes-2.0.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
- <package>Varnish</package>
- <version>2.0</version>
-
- <xi:include href="changes-1.1.2-2.0.xml"/>
-</changelog>
diff --git a/doc/changes-2.1.0-2.1.1.xml b/doc/changes-2.1.0-2.1.1.xml
deleted file mode 100644
index 3c3a7c9..0000000
--- a/doc/changes-2.1.0-2.1.1.xml
+++ /dev/null
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id: changes-2.0.6-2.1.0.xml 4672 2010-04-19 10:26:23Z tfheen $ -->
-<group from="2.0.6" to="2.1.0">
- <subsystem>
- <name>varnishd</name>
-
- <change type="bug">
- <para>The changelog in 2.1.0 included syntax errors, causing
- the generated changelog to be empty.</para>
- </change>
-
- <change type="bug">
- <para>The help text for <code>default_grace</code> was wrongly
- formatted and included a syntax error. This has now been fixed.</para>
- </change>
-
- <change type="bug">
- <para><code>varnishd</code> now closes the file descriptor used
- to read the management secret file (from the <code>-S</code>
- parameter).</para>
- </change>
-
- <change type="bug" ref="669">
- <para>The child would previously try to close every valid file
- descriptor, something which could cause problems if the file
- descriptor ulimit was set too high. We now keep track of all
- the file descriptors we open and only close up to that number.
- </para>
- </change>
-
- <change type="bug">
- <para>ESI was partially broken in 2.1.0 due to a bug in the
- rollback of session workspace. This has been fixed.</para>
- </change>
-
- <change type="bug">
- <para>Reject the <code>auth</code>command rather than crash if
- there is no <code>-S</code> parameter given.</para>
- </change>
-
- <change type="enh">
- <para>Align pointers in allocated objects. This will in theory
- make Varnish a tiny bit faster at the expense of slightly more
- memory usage.</para>
- </change>
-
- <change type="bug">
- <para>Ensure the master process process id is updated in the
- shared memory log file after we go into the background.</para>
- </change>
-
- <change type="bug" id="679">
- <para><code>HEAD</code> requests would be converted to GET
- requests too early, which affected <code>pass</code>
- and <code>pipe</code>. This has been fixed.</para>
- </change>
-
- <change type="bug">
- <para>Update the documentation to point out that the TTL is no
- longer taken into account to decide whether an object is
- cacheable or not.</para>
- </change>
-
- <change type="enh">
- <para>Add support for completely obliterating an object and all
- variants of it. Currently, this has to be done using inline C.</para>
- </change>
-
- <change type="enh">
- <para>Add experimental support for the <code>Range</code>
- header. This has to be enabled using the parameter
- http_range_support.</para>
- </change>
-
- <change type="bug" id="684">
- <para>The <code>critbit</code> hasher could get into a deadlock
- and had a race condition. Both those have now been fixed.</para>
- </change>
-
- </subsystem>
- <subsystem>
- <name>varnishsizes</name>
-
- <change type="enh">
- <para><code>varnishsizes</code>, which is
- like <code>varnishhost</code>, but for the length of objects,
- has been added..</para>
- </change>
- </subsystem>
-</group>
diff --git a/doc/changes-2.1.0.xml b/doc/changes-2.1.0.xml
deleted file mode 100644
index 73305c5..0000000
--- a/doc/changes-2.1.0.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id$ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
- <package>Varnish</package>
- <version>2.1</version>
-
- <xi:include href="changes-2.0.6-2.1.0.xml"/>
-</changelog>
diff --git a/doc/changes-2.1.1-2.1.2.xml b/doc/changes-2.1.1-2.1.2.xml
deleted file mode 100644
index 486d530..0000000
--- a/doc/changes-2.1.1-2.1.2.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id: changes-2.0.6-2.1.0.xml 4672 2010-04-19 10:26:23Z tfheen $ -->
-<group from="2.1.1" to="2.1.2">
- <subsystem>
- <name>varnishd</name>
-
- <change type="bug" ref="694">
- <para>When adding <code>Range</code> support for 2.1.1, we
- accidentially introduced a bug which would append garbage to
- objects larger than the chunk size, by default 128k. Browsers
- would do the right thing due to Content-Length, but some load
- balancers would get very confused.</para>
- </change>
-
- </subsystem>
-</group>
diff --git a/doc/changes-2.1.1.xml b/doc/changes-2.1.1.xml
deleted file mode 100644
index f5a91ba..0000000
--- a/doc/changes-2.1.1.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id: changes-2.1.1.xml 4709 2010-04-21 10:40:27Z tfheen $ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
- <package>Varnish</package>
- <version>2.1</version>
-
- <xi:include href="changes-2.1.0-2.1.1.xml"/>
-</changelog>
diff --git a/doc/changes-2.1.2-2.1.3.xml b/doc/changes-2.1.2-2.1.3.xml
deleted file mode 100644
index 638bbf4..0000000
--- a/doc/changes-2.1.2-2.1.3.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<!-- $Id: changes-2.1.2-2.1.3.xml 4672 2010-04-19 10:26:23Z tfheen $ -->
-<group from="2.1.2" to="2.1.3">
- <subsystem>
- <name>varnishd</name>
-
- <change type="enh">
- <para>Improve scalability of critbit.</para>
- </change>
-
- <change type="bug">
- <para>The critbit hash algorithm has now been tightened to make
- sure the tree is in a consistent state at all points, and the
- time we wait for an object to cool off after it is eligible for
- garbage collection has been tweaked.</para>
- </change>
-
- <change type="enh">
- <para>Add <code>log</code> command to VCL. This emits
- a <code>VCL_log</code> entry into the shared memory log.</para>
- </change>
-
- <change type="bug">
- <para>Only emit Length and ReqEnd log entries if we actually
- have an XID. This should get rid of some empty log lines in
- varnishncsa.</para>
- </change>
-
- <change type="bug" ref="722">
- <para>Destroy directors in a predictable fashion, namely reverse
- of creation order.</para>
- </change>
-
- <change type="bug" ref="719">
- <para>Fix bug when ESI elements spanned storage elements causing
- a panic.</para>
- </change>
-
- <change type="enh">
- <para>In some cases, the VCL compiler would panic instead of
- giving sensible messages. This has now been fixed.</para>
- </change>
-
- <change type="bug">
- <para>Correct an off-by-one error when the requested range
- exceeds the size of an object.</para>
- </change>
-
- <change type="bug">
- <para>Handle requests for the end of an object correctly.</para>
- </change>
-
- <change type="bug" ref="700">
- <para>Allow tabulator characters in the third field of the
- first line of HTTP requests</para>
- </change>
-
- <change type="bug">
- <para>On Solaris, if the remote end sends us an RST, all system
- calls related to that socket will return EINVAL. We now handle
- this better.</para>
- </change>
- </subsystem>
- <subsystem>
- <name>libvarnishapi</name>
- <change type="bug">
- <para>The <code>-X</code> parameter didn't work correctly. This
- has been fixed.</para>
- </change>
- </subsystem>
-
-</group>
diff --git a/doc/changes-2.1.2.xml b/doc/changes-2.1.2.xml
deleted file mode 100644
index c34aae6..0000000
--- a/doc/changes-2.1.2.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id: changes-2.1.1.xml 4709 2010-04-21 10:40:27Z tfheen $ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
- <package>Varnish</package>
- <version>2.1.2</version>
-
- <xi:include href="changes-2.1.1-2.1.2.xml"/>
-</changelog>
diff --git a/doc/changes-2.1.3-2.1.4.xml b/doc/changes-2.1.3-2.1.4.xml
deleted file mode 100644
index 775b6bd..0000000
--- a/doc/changes-2.1.3-2.1.4.xml
+++ /dev/null
@@ -1,170 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<group from="2.1.3" to="2.1.4">
- <subsystem>
- <name>varnishd</name>
- <change type="bug">
- <para>An embarrasing typo in the new binary heap layout caused
- inflated obj/objcore/objhdr counts and could cause odd problems
- when the LRU expunge mechanism was invoked. This has been
- fixed.</para>
- </change>
-
- <change type="enh">
- <para>We now have updated documentation in the reStructuredText
- format. Manual pages and reference documentation are both built
- from this.</para>
- </change>
-
- <change type="enh">
- <para>We now include a DNS director which uses DNS for choosing
- which backend to route requests to. Please see the
- documentation for more details.</para>
- </change>
-
- <change type="bug" ref="758">
- <para>If you restarted a request, the HTTP header
- <code>X-Forwarded-For</code> would be updated multiple times.
- This has been fixed.</para>
- </change>
-
- <change type="bug" ref="742">
- <para>If a VCL contained a % sign, and the <code>vcl.show</code>
- CLI command was used, varnishd would crash. This has been
- fixed.</para>
- </change>
-
- <change type="bug" ref="730">
- <para>When doing a pass operation, we would remove the
- <code>Content-Length</code>, <code>Age</code> and
- <code>Proxy-Auth</code> headers. We are no longer doing
- this.</para>
- </change>
-
- <change type="enh">
- <para><code>now</code> has a string representation, making it
- easier to construct <code>Expires</code> headers in VCL.</para>
- </change>
-
- <change type="bug" ref="739">
- <para>In a high traffic environment, we would sometimes reuse a
- file descriptor before flushing the logs from a worker thread to
- the shared log buffer. This would cause confusion in some of
- the tools. This has been fixed by explicitly flushing the log
- when a backend connection is closed.</para>
- </change>
-
- <change type="bug" ref="744">
- <para>If the communication between the management and the child
- process gets out of sync, we have no way to recover.
- Previously, <code>varnishd</code> would be confused, but we now
- just kill the child and restart it.</para>
- </change>
-
- <change type="bug" ref="479">
- <para>If the backend closes the connection on us just as we sent
- a request to it, we retry the request. This should solve some
- interoperability problems with Apache and the mpm-itk multi
- processing module.</para>
- </change>
-
- <change type="enh">
- <para><code>varnishd</code> now only provides help output the
- current CLI session is authenticated for.</para>
- </change>
-
- <change type="bug" ref="733">
- <para>If the backend does not tell us which length indication it
- is using, we now assume the resource ends EOF at.</para>
- </change>
-
- <change type="enh">
- <para>The client director now has a variable
- <code>client.identity</code> which is used to choose which
- backend should receive a given request.</para>
- </change>
-
- <change type="enh">
- <para>The Solaris <code>port</code> waiter has been updated, and
- other portability fixes for Solaris.</para>
- </change>
-
- <change type="bug" ref="746">
- <para>There was a corner case in the close-down processing of pipes, this has now been fixed.</para>
- </change>
-
- <change type="bug">
- <para>Previously, if we stopped polling a backend which was
- sick, it never got marked as healthy. This has now been
- changed.</para>
- </change>
-
- <change type="enh">
- <para>It is now possible to specify ports as part of the <code>.host</code> field in VCL.</para>
- </change>
-
- <change type="bug" ref="768">
- <para>The synthetic counters were not locked properly, and so
- the <code>sms_</code> counters could underflow. This has now
- been fixed.</para>
- </change>
-
- <change type="bug" ref="769">
- <para>The value of <code>obj.status</code> as a string in vcl_error would not be correct in all cases. This has been fixed.</para>
- </change>
-
- <change type="bug" ref="776">
- <para>Varnish would try to trim storage segments completely
- filled when using the malloc stevedore and the object was
- received chunked encoding. This has been fixed.</para>
- </change>
-
- <change type="bug" ref="763">
- <para>If a buggy backend sends us a <code>Vary</code> header
- with two colons, we would previously abort. We now rather fix
- this up and ignore the extra colon.</para>
- </change>
-
- <change type="enh">
- <para><code>req.hash_always_miss</code> and
- <code>req.hash_ignore_busy</code> has been added, to make
- preloading or periodically refreshing content work better.</para>
- </change>
-
- </subsystem>
- <subsystem>
- <name>varnishncsa</name>
- <change type="bug">
- <para><code>varnishncsa</code> would in some cases be confused
- by ESI requests and output invalid lines. This has now been
- fixed.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>varnishlog</name>
- <change type="enh">
- <para><code>varnishlog</code> now allows <code>-o</code> and <code>-u</code> together.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>varnishtop</name>
- <change type="bug">
- <para><code>varnishtop</code> would crash on 32 bit
- architectures. This has been fixed.</para>
- </change>
- </subsystem>
-
- <subsystem>
- <name>libvarnishapi</name>
- <change type="bug">
- <para>Regex inclusion and exclusion had problems with matching
- particular parts of the string being matched. This has been
- fixed.</para>
- </change>
- </subsystem>
-
-</group>
diff --git a/doc/changes-2.1.3.xml b/doc/changes-2.1.3.xml
deleted file mode 100644
index 6cfe24d..0000000
--- a/doc/changes-2.1.3.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id: changes-2.1.3.xml 4709 2010-04-21 10:40:27Z tfheen $ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
- <package>Varnish</package>
- <version>2.1.3</version>
-
- <xi:include href="changes-2.1.2-2.1.3.xml"/>
-</changelog>
diff --git a/doc/changes-2.1.4-2.1.5.xml b/doc/changes-2.1.4-2.1.5.xml
deleted file mode 100644
index 9b7e8ae..0000000
--- a/doc/changes-2.1.4-2.1.5.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE group [
-<!ENTITY mdash "—">
-]>
-<group from="2.1.4" to="2.1.5">
- <subsystem>
- <name>varnishd</name>
- <change type="bug" ref="801">
- <para>On pass from vcl_recv, we did not remove the backends Content-Length
- header before adding our own. This could cause confusion for
- browsers and has been fixed.</para>
- </change>
-
- <change type="bug" ref="806">
- <para>Make pass with content-length work again. An issue with regards
- to 304, Content-Length and pass has been resolved.</para>
- </change>
-
- <change type="bug" ref="803">
- <para>An issue relating to passed requests with If-Modified-Since
- headers has been fixed. Varnish did not recognize that the
- 304-response did not have a body.</para>
- </change>
-
- <change type="bug">
- <para>A potential lock-inversion with the ban lurker thread has been
- resolved.</para>
- </change>
-
- <change type="bug">
- <para>Several build-dependency issues relating to rst2man have been
- fixed. Varnish should now build from source without rst2man if you
- are using tar-balls.</para>
- </change>
-
- <change type="bug" ref="780">
- <para>Ensure Varnish reads the expected last CRLF after chunked data
- from the backend. This allows re-use of the connection.</para>
- </change>
-
- <change type="bug">
- <para>Remove a GNU Make-ism during <code>make dist</code> to make BSD
- happier.</para>
- </change>
-
- <change type="enh">
- <para>Document the log, set, unset, return and restart statements in
- the VCL documentation.</para>
- </change>
-
- <change type="bug" ref="808">
- <para>Fix an embarrassingly old bug where Varnish would run out of
- workspace when requests come in fast over a single connection,
- typically during synthetic benchmarks.</para>
- </change>
-
- <change type="bug" ref="795">
- <para>Varnish will now allow <code>If-Modified-Since</code> requests
- to objects without a <code>Last-Modified</code>-header, and instead
- use the time the object was cached instead.</para>
- </change>
-
- <change type="bug" ref="789">
- <para>Do not filter out <code>Content-Range</code> headers in
- pass.</para>
- </change>
-
- <change type="enh">
- <para>Require -d, -b, -f, -S or -T when starting Varnishd. In human
- terms, this means that it is legal to start varnishd without a Vcl or
- backend, but only if you have a CLI channel of some kind.</para>
- </change>
-
- <change type="bug">
- <para>Don't suppress <code>Cache-Control</code> headers in pass
- responses.</para>
- </change>
-
- <change type="enh">
- <para>Merge multi-line Cache-Control and Vary header fields. Until
- now, no browsers have needed this, but Chromium seems to find it
- necessary to spread its Cache-Control across two lines, and we get to
- deal with it.</para>
- </change>
-
- <change type="bug" ref="812">
- <para>Make new-purge not touch busy objects. This fixes a potential
- crash when calling <code>VRT_purge</code>.</para>
- </change>
-
- <change type="enh">
- <para>If there are everal grace-able objects, pick the least expired
- one.</para>
- </change>
-
- <change type="bug" ref="817">
- <para>Fix an issue with <code>varnishadm -T :6082</code>
- shorthand.</para>
- </change>
-
- <change type="enh">
- <para>Add bourn-shell like "here" documents on the CLI. Typical
- usage:
- <code>
- vcl.inline vcl_new << 42
- backend foo {...}
- sub vcl_recv {...}
- 42
- </code></para>
- </change>
-
- <change type="enh">
- <para>Add CLI version to the CLI-banner, starting with version 1.0 to
- mark here-documents.</para>
- </change>
-
- <change type="bug">
- <para>Fix a problem with the expiry thread slacking off during high
- load.</para>
- </change>
-
- </subsystem>
-
- <subsystem>
- <name>varnishtest</name>
- <change type="bug" ref="804">
- <para>Remove no longer existing <code>-L</code> option.</para>
- </change>
- </subsystem>
-
-
-</group>
diff --git a/doc/changes-2.1.4.xml b/doc/changes-2.1.4.xml
deleted file mode 100644
index c9211d8..0000000
--- a/doc/changes-2.1.4.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<!-- $Id: changes-2.1.4.xml 4709 2010-04-21 10:40:27Z tfheen $ -->
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
- <package>Varnish</package>
- <version>2.1.4</version>
-
- <xi:include href="changes-2.1.3-2.1.4.xml"/>
-</changelog>
diff --git a/doc/changes-2.1.5.xml b/doc/changes-2.1.5.xml
deleted file mode 100644
index 7e37731..0000000
--- a/doc/changes-2.1.5.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xml" href="changes-html.xsl"?>
-<!DOCTYPE changelog [
- <!ENTITY mdash "—">
-]>
-<changelog xmlns:xi="http://www.w3.org/2001/XInclude">
- <package>Varnish</package>
- <version>2.1.5</version>
-
- <xi:include href="changes-2.1.4-2.1.5.xml"/>
-</changelog>
diff --git a/doc/changes-html.xsl b/doc/changes-html.xsl
deleted file mode 100644
index eeaa1a4..0000000
--- a/doc/changes-html.xsl
+++ /dev/null
@@ -1,92 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE stylesheet [
- <!ENTITY space " ">
- <!ENTITY nbsp " ">
-]>
-<!-- $Id$ -->
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns="http://www.w3.org/1999/xhtml">
- <xsl:output method="xml" encoding="utf-8" media-type="text/html" indent="yes"/>
-
- <xsl:strip-space elements="*"/>
-
- <xsl:template match="/changelog">
- <html>
- <head>
- <title><xsl:call-template name="title"/></title>
- <link rel="stylesheet" type="text/css" href="changes.css"/>
- </head>
- <body>
- <h1><xsl:call-template name="title"/></h1>
- <xsl:apply-templates select="group"/>
- </body>
- </html>
- </xsl:template>
-
- <xsl:template name="title">
- <xsl:text>Change log for&space;</xsl:text>
- <xsl:value-of select="package"/>
- <xsl:text>&space;</xsl:text>
- <xsl:value-of select="version"/>
- </xsl:template>
-
- <xsl:template match="group">
- <h2>
- <xsl:text>Changes between&space;</xsl:text>
- <xsl:value-of select="@from"/>
- <xsl:text>&space;and&space;</xsl:text>
- <xsl:value-of select="@to"/>
- </h2>
- <xsl:apply-templates select="subsystem"/>
- </xsl:template>
-
- <xsl:template match="subsystem">
- <h3>
- <xsl:value-of select="name"/>
- </h3>
- <ul>
- <xsl:apply-templates select="change"/>
- </ul>
- </xsl:template>
-
- <xsl:template match="change">
- <li>
- <xsl:apply-templates/>
- </li>
- </xsl:template>
-
- <xsl:template match="para">
- <p>
- <xsl:apply-templates/>
- </p>
- </xsl:template>
-
- <xsl:template match="ticket">
- <a>
- <xsl:attribute name="href">
- <xsl:text>http://varnish.projects.linpro.no/ticket/</xsl:text>
- <xsl:value-of select="@ref"/>
- </xsl:attribute>
- <xsl:text>ticket #</xsl:text>
- <xsl:value-of select="@ref"/>
- </a>
- </xsl:template>
-
- <xsl:template match="code">
- <span>
- <xsl:attribute name="class">
- <xsl:value-of select="name()"/>
- </xsl:attribute>
- <xsl:apply-templates/>
- </span>
- </xsl:template>
-
- <xsl:template match="*" priority="-1">
- <xsl:message>Warning: no template for element <xsl:value-of select="name(
-)"/></xsl:message>
- <xsl:value-of select="concat('<', name(), '>')"/>
- <xsl:apply-templates/>
- <xsl:value-of select="concat('</', name(), '>')"/>
- </xsl:template>
-</xsl:stylesheet>
diff --git a/doc/changes-wiki.xsl b/doc/changes-wiki.xsl
deleted file mode 100644
index 9ff0d11..0000000
--- a/doc/changes-wiki.xsl
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE stylesheet [
- <!ENTITY lf "
">
-]>
-<!-- $Id$ -->
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns="http://www.w3.org/1999/xhtml">
- <xsl:output method="text" encoding="utf-8"/>
-
- <xsl:strip-space elements="*"/>
-
- <xsl:template match="/changelog">
- <xsl:text>== </xsl:text>
- <xsl:call-template name="title"/>
- <xsl:text> ==&lf;</xsl:text>
- <xsl:apply-templates select="group"/>
- </xsl:template>
-
- <xsl:template name="title">
- <xsl:text>Change log for </xsl:text>
- <xsl:value-of select="package"/>
- <xsl:text> </xsl:text>
- <xsl:value-of select="version"/>
- </xsl:template>
-
- <xsl:template match="group">
- <xsl:text>=== </xsl:text>
- <xsl:text>Changes between </xsl:text>
- <xsl:value-of select="@from"/>
- <xsl:text> and </xsl:text>
- <xsl:value-of select="@to"/>
- <xsl:text> ===&lf;</xsl:text>
- <xsl:apply-templates select="subsystem"/>
- </xsl:template>
-
- <xsl:template match="subsystem">
- <xsl:text>==== </xsl:text>
- <xsl:value-of select="name"/>
- <xsl:text> ====&lf;</xsl:text>
- <xsl:apply-templates select="change"/>
- </xsl:template>
-
- <xsl:template match="change">
- <xsl:text> * </xsl:text>
- <xsl:apply-templates/>
- </xsl:template>
-
- <xsl:template match="para">
- <xsl:apply-templates/>
- <xsl:text>&lf;</xsl:text>
- </xsl:template>
-
- <xsl:template match="ticket">
- <xsl:text>#</xsl:text>
- <xsl:value-of select="@ref"/>
- </xsl:template>
-
- <xsl:template match="code">
- <xsl:text> {{{</xsl:text>
- <xsl:apply-templates/>
- <xsl:text>}}} </xsl:text>
- </xsl:template>
-
- <xsl:template match="text()">
- <xsl:value-of select="normalize-space()"/>
- </xsl:template>
-
- <xsl:template match="*" priority="-1">
- <xsl:message>Warning: no template for element <xsl:value-of select="name(
-)"/></xsl:message>
- <xsl:value-of select="concat('<', name(), '>')"/>
- <xsl:apply-templates/>
- <xsl:value-of select="concat('</', name(), '>')"/>
- </xsl:template>
-</xsl:stylesheet>
diff --git a/doc/changes.css b/doc/changes.css
deleted file mode 100644
index f3d5c71..0000000
--- a/doc/changes.css
+++ /dev/null
@@ -1,31 +0,0 @@
-/* $Id$ */
-
-body {
- background-color: white;
- color: black;
- font-family: sans-serif;
- max-width: 40em;
- margin: 1in auto 1in auto;
-}
-
-h1 {
- font-size: 200%;
- font-weight: bold;
- color: maroon;
-}
-
-h2 {
- font-size: 160%;
- font-weight: bold;
- color: maroon;
-}
-
-h3 {
- font-size: 120%;
- font-weight: bold;
- color: maroon;
-}
-
-.code {
- font-family: monospace;
-}
diff --git a/doc/changes.rst b/doc/changes.rst
index 06540bf..cbf4834 100644
--- a/doc/changes.rst
+++ b/doc/changes.rst
@@ -425,3 +425,1416 @@ Other
version.
- The documentation has been improved all over and should now be in
much better shape than before
+
+===========================
+Changes from 2.1.4 to 2.1.5
+===========================
+
+varnishd
+--------
+
+- On pass from vcl\_recv, we did not remove the backends Content-Length
+ header before adding our own. This could cause confusion for browsers
+ and has been fixed.
+
+- Make pass with content-length work again. An issue with regards to
+ 304, Content-Length and pass has been resolved.
+
+- An issue relating to passed requests with If-Modified-Since headers
+ has been fixed. Varnish did not recognize that the 304-response did
+ not have a body.
+
+- A potential lock-inversion with the ban lurker thread has been
+ resolved.
+
+- Several build-dependency issues relating to rst2man have been fixed.
+ Varnish should now build from source without rst2man if you are using
+ tar-balls.
+
+- Ensure Varnish reads the expected last CRLF after chunked data from
+ the backend. This allows re-use of the connection.
+
+- Remove a GNU Make-ism during make dist to make BSD happier.
+
+- Document the log, set, unset, return and restart statements in the
+ VCL documentation.
+
+- Fix an embarrassingly old bug where Varnish would run out of
+ workspace when requests come in fast over a single connection,
+ typically during synthetic benchmarks.
+
+- Varnish will now allow If-Modified-Since requests to objects without
+ a Last-Modified-header, and instead use the time the object was
+ cached instead.
+
+- Do not filter out Content-Range headers in pass.
+
+- Require -d, -b, -f, -S or -T when starting Varnishd. In human terms,
+ this means that it is legal to start varnishd without a Vcl or
+ backend, but only if you have a CLI channel of some kind.
+
+- Don't suppress Cache-Control headers in pass responses.
+
+- Merge multi-line Cache-Control and Vary header fields. Until now, no
+ browsers have needed this, but Chromium seems to find it necessary to
+ spread its Cache-Control across two lines, and we get to deal with
+ it.
+
+- Make new-purge not touch busy objects. This fixes a potential crash
+ when calling VRT\_purge.
+
+- If there are everal grace-able objects, pick the least expired one.
+
+- Fix an issue with varnishadm -T :6082 shorthand.
+
+- Add bourn-shell like "here" documents on the CLI. Typical usage:
+ vcl.inline vcl\_new << 42 backend foo {...} sub vcl\_recv {...} 42
+
+- Add CLI version to the CLI-banner, starting with version 1.0 to mark
+ here-documents.
+
+- Fix a problem with the expiry thread slacking off during high load.
+
+varnishtest
+-----------
+
+- Remove no longer existing -L option.
+
+===========================
+Changes from 2.1.3 to 2.1.4
+===========================
+
+varnishd
+--------
+
+- An embarrasing typo in the new binary heap layout caused inflated
+ obj/objcore/objhdr counts and could cause odd problems when the LRU
+ expunge mechanism was invoked. This has been fixed.
+
+- We now have updated documentation in the reStructuredText format.
+ Manual pages and reference documentation are both built from this.
+
+- We now include a DNS director which uses DNS for choosing which
+ backend to route requests to. Please see the documentation for more
+ details.
+
+- If you restarted a request, the HTTP header X-Forwarded-For would be
+ updated multiple times. This has been fixed.
+
+- If a VCL contained a % sign, and the vcl.show CLI command was used,
+ varnishd would crash. This has been fixed.
+
+- When doing a pass operation, we would remove the Content-Length, Age
+ and Proxy-Auth headers. We are no longer doing this.
+
+- now has a string representation, making it easier to construct
+ Expires headers in VCL.
+
+- In a high traffic environment, we would sometimes reuse a file
+ descriptor before flushing the logs from a worker thread to the
+ shared log buffer. This would cause confusion in some of the tools.
+ This has been fixed by explicitly flushing the log when a backend
+ connection is closed.
+
+- If the communication between the management and the child process
+ gets out of sync, we have no way to recover. Previously, varnishd
+ would be confused, but we now just kill the child and restart it.
+
+- If the backend closes the connection on us just as we sent a request
+ to it, we retry the request. This should solve some interoperability
+ problems with Apache and the mpm-itk multi processing module.
+
+- varnishd now only provides help output the current CLI session is
+ authenticated for.
+
+- If the backend does not tell us which length indication it is using,
+ we now assume the resource ends EOF at.
+
+- The client director now has a variable client.identity which is used
+ to choose which backend should receive a given request.
+
+- The Solaris port waiter has been updated, and other portability fixes
+ for Solaris.
+
+- There was a corner case in the close-down processing of pipes, this
+ has now been fixed.
+
+- Previously, if we stopped polling a backend which was sick, it never
+ got marked as healthy. This has now been changed.
+
+- It is now possible to specify ports as part of the .host field in
+ VCL.
+
+- The synthetic counters were not locked properly, and so the sms\_
+ counters could underflow. This has now been fixed.
+
+- The value of obj.status as a string in vcl\_error would not be
+ correct in all cases. This has been fixed.
+
+- Varnish would try to trim storage segments completely filled when
+ using the malloc stevedore and the object was received chunked
+ encoding. This has been fixed.
+
+- If a buggy backend sends us a Vary header with two colons, we would
+ previously abort. We now rather fix this up and ignore the extra
+ colon.
+
+- req.hash\_always\_miss and req.hash\_ignore\_busy has been added, to
+ make preloading or periodically refreshing content work better.
+
+varnishncsa
+-----------
+
+- varnishncsa would in some cases be confused by ESI requests and
+ output invalid lines. This has now been fixed.
+
+varnishlog
+----------
+
+- varnishlog now allows -o and -u together.
+
+varnishtop
+----------
+
+- varnishtop would crash on 32 bit architectures. This has been fixed.
+
+libvarnishapi
+-------------
+
+- Regex inclusion and exclusion had problems with matching particular
+ parts of the string being matched. This has been fixed.
+
+
+===========================
+Changes from 2.1.2 to 2.1.3
+===========================
+
+varnishd
+--------
+
+- Improve scalability of critbit.
+
+- The critbit hash algorithm has now been tightened to make sure the
+ tree is in a consistent state at all points, and the time we wait for
+ an object to cool off after it is eligible for garbage collection has
+ been tweaked.
+
+- Add log command to VCL. This emits a VCL\_log entry into the shared
+ memory log.
+
+- Only emit Length and ReqEnd log entries if we actually have an XID.
+ This should get rid of some empty log lines in varnishncsa.
+
+- Destroy directors in a predictable fashion, namely reverse of
+ creation order.
+
+- Fix bug when ESI elements spanned storage elements causing a panic.
+
+- In some cases, the VCL compiler would panic instead of giving
+ sensible messages. This has now been fixed.
+
+- Correct an off-by-one error when the requested range exceeds the size
+ of an object.
+
+- Handle requests for the end of an object correctly.
+
+- Allow tabulator characters in the third field of the first line of
+ HTTP requests
+
+- On Solaris, if the remote end sends us an RST, all system calls
+ related to that socket will return EINVAL. We now handle this better.
+
+libvarnishapi
+-------------
+
+- The -X parameter didn't work correctly. This has been fixed.
+
+===========================
+Changes from 2.1.1 to 2.1.2
+===========================
+
+varnishd
+--------
+
+- When adding Range support for 2.1.1, we accidentially introduced a
+ bug which would append garbage to objects larger than the chunk size,
+ by default 128k. Browsers would do the right thing due to
+ Content-Length, but some load balancers would get very confused.
+
+===========================
+Changes from 2.1.1 to 2.1.1
+===========================
+
+varnishd
+--------
+
+- The changelog in 2.1.0 included syntax errors, causing the generated
+ changelog to be empty.
+
+- The help text for default\_grace was wrongly formatted and included a
+ syntax error. This has now been fixed.
+
+- varnishd now closes the file descriptor used to read the management
+ secret file (from the -S parameter).
+
+- The child would previously try to close every valid file descriptor,
+ something which could cause problems if the file descriptor ulimit
+ was set too high. We now keep track of all the file descriptors we
+ open and only close up to that number.
+
+- ESI was partially broken in 2.1.0 due to a bug in the rollback of
+ session workspace. This has been fixed.
+
+- Reject the authcommand rather than crash if there is no -S parameter
+ given.
+
+- Align pointers in allocated objects. This will in theory make Varnish
+ a tiny bit faster at the expense of slightly more memory usage.
+
+- Ensure the master process process id is updated in the shared memory
+ log file after we go into the background.
+
+- HEAD requests would be converted to GET requests too early, which
+ affected pass and pipe. This has been fixed.
+
+- Update the documentation to point out that the TTL is no longer taken
+ into account to decide whether an object is cacheable or not.
+
+- Add support for completely obliterating an object and all variants of
+ it. Currently, this has to be done using inline C.
+
+- Add experimental support for the Range header. This has to be enabled
+ using the parameter http\_range\_support.
+
+- The critbit hasher could get into a deadlock and had a race
+ condition. Both those have now been fixed.
+
+varnishsizes
+-----------~
+
+- varnishsizes, which is like varnishhost, but for the length of
+ objects, has been added..
+
+
+===========================
+Changes from 2.0.6 to 2.1.0
+===========================
+
+varnishd
+--------
+
+- Persistent storage is now experimentally supported using the
+ persistent stevedore. It has the same command line arguments as the
+ file stevedore.
+
+- obj.\* is now called beresp.\* in vcl\_fetch, and obj.\* is now
+ read-only.
+
+- The regular expression engine is now PCRE instead of POSIX regular
+ expressions.
+
+- req.\* is now available in vcl\_deliver.
+
+- Add saint mode where we can attempt to grace an object if we don't
+ like the backend response for some reason.
+
+ Related, add saintmode\_threshold which is the threshold for the
+ number of objects to be added to the trouble list before the backend
+ is considered sick.
+
+- Add a new hashing method called critbit. This autoscales and should
+ work better on large object workloads than the classic hash. Critbit
+ has been made the default hash algorithm.
+
+- When closing connections, we experimented with sending RST to free up
+ load balancers and free up threads more quickly. This caused some
+ problems with NAT routers and so has been reverted for now.
+
+- Add thread that checks objects against ban list in order to prevent
+ ban list from growing forever. Note that this needs purges to be
+ written so they don't depend on req.\*. Enabled by setting
+ ban\_lurker\_sleep to a nonzero value.
+
+- The shared memory log file format was limited to maximum 64k
+ simultaneous connections. This is now a 32 bit field which removes
+ this limitation.
+
+- Remove obj\_workspace, this is now sized automatically.
+
+- Rename acceptors to waiters
+
+- vcl\_prefetch has been removed. It was never fully implemented.
+
+- Add support for authenticating CLI connections.
+
+- Add hash director that chooses which backend to use depending on
+ req.hash.
+
+- Add client director that chooses which backend to use depending on
+ the client's IP address. Note that this ignores the X-Forwarded-For
+ header.
+
+- varnishd now displays a banner by default when you connect to the
+ CLI.
+
+- Increase performance somewhat by moving statistics gathering into a
+ per-worker structure that is regularly flushed to the global stats.
+
+- Make sure we store the header and body of object together. This may
+ in some cases improve performance and is needed for persistence.
+
+- Remove client-side address accounting. It was never used for anything
+ and presented a performance problem.
+
+- Add a timestamp to bans, so you can know how old they are.
+
+- Quite a few people got confused over the warning about not being able
+ to lock the shared memory log into RAM, so stop warning about that.
+
+- Change the default CLI timeout to 10 seconds.
+
+- We previously forced all inserts into the cache to be GET requests.
+ This has been changed to allow POST as well in order to be able to
+ implement purge-on-POST semantics.
+
+- The CLI command stats now only lists non-zero values.
+
+- The CLI command stats now only lists non-zero values.
+
+- Use daemon(3) from libcompat on Darwin.
+
+- Remove vcl\_discard as it causes too much complexity and never
+ actually worked particularly well.
+
+- Remove vcl\_timeout as it causes too much complexity and never
+ actually worked particularly well.
+
+- Update the documentation so it refers to sess\_workspace, not
+ http\_workspace.
+
+- Document the -i switch to varnishd as well as the server.identity and
+ server.hostname VCL variables.
+
+- purge.hash is now deprecated and no longer shown in help listings.
+
+- When processing ESI, replace the five mandatory XML entities when we
+ encounter them.
+
+- Add string representations of time and relative time.
+
+- Add locking for n\_vbe\_conn to make it stop underflowing.
+
+- When ESI-processing content, check for illegal XML character
+ entities.
+
+- Varnish can now connect its CLI to a remote instance when starting
+ up, rather than just being connected to.
+
+- It is no longer needed to specify the maximum number of HTTP headers
+ to allow from backends. This is now a run-time parameter.
+
+- The X-Forwarded-For header is now generated by vcl\_recv rather than
+ the C code.
+
+- It is now possible to not send all CLI traffic to syslog.
+
+- It is now possible to not send all CLI traffic to syslog.
+
+- In the case of varnish crashing, it now outputs a identifying string
+ with the OS, OS revision, architecture and storage parameters
+ together with the backtrace.
+
+- Use exponential backoff when we run out of file descriptors or
+ sessions.
+
+- Allow setting backend timeouts to zero.
+
+- Count uptime in the shared memory log.
+
+- Try to detect the case of two running varnishes with the same shmlog
+ and storage by writing the master and child process ids to the shmlog
+ and refusing to start if they are still running.
+
+- Make sure to use EOF mode when serving ESI content to HTTP/1.0
+ clients.
+
+- Make sure we close the connection if it either sends Connection:
+ close or it is a HTTP/1.0 backend that does not send Connection:
+ keep-alive.
+
+- Increase the default session workspace to 64k on 64-bit systems.
+
+- Make the epoll waiter use level triggering, not edge triggering as
+ edge triggering caused problems on very busy servers.
+
+- Handle unforeseen client disconnections better on Solaris.
+
+- Make session lingering apply to new sessions, not just reused
+ sessions.
+
+varnishstat
+-----------
+
+- Make use of the new uptime field in the shared memory log rather than
+ synthesizing it from the start time.
+
+varnishlog
+----------
+
+- Exit at the end of the file when started with -d.
+
+varnishadm
+----------
+
+- varnishadm can now have a timeout when trying to connect to the
+ running varnishd.
+
+- varnishadm now knows how to respond to the secret from a secured
+ varnishd
+
+===========================
+Changes from 2.0.5 to 2.0.6
+===========================
+
+varnishd
+--------
+
+- 2.0.5 had an off-by-one error in the ESI handling causing includes to
+ fail a large part of the time. This has now been fixed.
+
+- Try harder to not confuse backends when sending them backend probes.
+ We half-closed the connection, something some backends thought meant
+ we had dropped the connection. Stop doing so, and add the capability
+ for specifying the expected response code.
+
+- In 2.0.5, session lingering was turned on. This caused statistics to
+ not be counted often enough in some cases. This has now been fixed.
+
+- Avoid triggering an assert if the other end closes the connection
+ while we are lingering and waiting for another request from them.
+
+- When generating backtraces, prefer the built-in backtrace function if
+ such exists. This fixes a problem compiling 2.0.5 on Solaris.
+
+- Make it possible to specify the per-thread stack size. This might be
+ useful on 32 bit systems with their limited address space.
+
+- Document the -C option to varnishd.
+
+===========================
+Changes from 2.0.4 to 2.0.5
+===========================
+
+varnishd
+--------
+
+- Handle object workspace overruns better.
+
+- Allow turning off ESI processing per request by using set req.esi =
+ off.
+
+- Tell the kernel that we expect to use the mmap-ed file in a random
+ fashion. On Linux, this turns off/down readahead and increases
+ performance.
+
+- Make it possible to change the maximum number of HTTP headers we
+ allow by passing --with-max-header-fields=NUM rather than changing
+ the code.
+
+- Implement support for HTTP continuation lines.
+
+- Change how connections are closed and only use SO\_LINGER for orderly
+ connection closure. This should hopefully make worker threads less
+ prone to hangups on network problems.
+
+- Handle multi-element purges correctly. Previously we ended up with
+ parse errors when this was done from VCL.
+
+- Handle illegal responses from the backend better by serving a 503
+ page rather than panic-ing.
+
+- When we run into an assertion that is not true, Varnish would
+ previously dump a little bit of information about itself. Extend that
+ information with a backtrace. Note that this relies on the varnish
+ binary being unstripped.
+
+- Add a session\_max parameter that limits the maximum number of
+ sessions we keep open before we start dropping new connections
+ summarily.
+
+- Try to consume less memory when doing ESI processing by properly
+ rolling back used workspace after processing an object. This should
+ make it possible to turn sess\_workspace quite a bit for users with
+ ESI-heavy pages.
+
+- Turn on session\_linger by default. Tests have shown that
+ session\_linger helps a fair bit with performance.
+
+- Rewrite the epoll acceptor for better performance. This should lead
+ to both higher processing rates and maximum number of connections on
+ Linux.
+
+- Add If-None-Match support, this gives significant bandwidth savings
+ for users with compliant browsers.
+
+- RFC2616 specifies that ETag, Content-Location, Expires, Cache-Control
+ and Vary should be emitted when delivering a response with the 304
+ response code.
+
+- Various fixes which makes Varnish compile and work on AIX.
+
+- Turn on TCP\_DEFER\_ACCEPT on Linux. This should make us less
+ suspecible to denial of service attacks as well as give us slightly
+ better performance.
+
+- Add an .initial property to the backend probe specification. This is
+ the number of good probes we pretend to have seen. The default is one
+ less than .threshold, which means the first probe will decide if we
+ consider the backend healthy.
+
+- Make it possible to compare strings against other string-like
+ objects, not just plain strings. This allows you to compare two
+ headers, for instance.
+
+- When support for restart in vcl\_error was added, there was no check
+ to prevent infinte recursion. This has now been fixed.
+
+- Turn on purge\_dups by default. This should make us consume less
+ memory when there are many bans for the same pattern added.
+
+- Add a new log tag called FetchError which tries to explain why we
+ could not fetch an object from the backend.
+
+- Change the default srcaddr\_ttl to 0. It is not used by anything and
+ has been removed in the development version. This will increase
+ performance somewhat.
+
+varnishtop
+----------
+
+- varnishtop did not handle variable-length log fields correctly. This
+ is now fixed.
+
+- varnishtop previously did not print the name of the tag, which made
+ it very hard to understand. We now print out the tag name.
+
+===========================
+Changes from 2.0.3 to 2.0.4
+===========================
+
+varnishd
+--------
+
+- Make Varnish more portable by pulling in fixes for Solaris and
+ NetBSD.
+
+- Correct description of -a in the manual page.
+
+- Ensure we are compiling in C99 mode.
+
+- If error was called with a null reason, we would crash on Solaris.
+ Make sure this no longer happens.
+
+- Varnish used to crash if you asked it to use a non-existent waiter.
+ This has now been fixed.
+
+- Add documentation to the default VCL explaining that using
+ Connection: close in vcl\_close is generally a good idea.
+
+- Add minimal facility for dealing with TELNET option negotiation by
+ returning WONT to DO and DONT requests.
+
+- If the backend is unhealthy, use a graced object if one is available.
+
+- Make server.hostname and server.identity available to VCL. The latter
+ can be set with the -i parameter to varnishd.
+
+- Make restart available from vcl\_error.
+
+- Previously, only the TTL of an object was considered in whether it
+ would be marked as cacheable. This has been changed to take the grace
+ into consideration as well.
+
+- Previously, if an included ESI fragment had a zero size, we would
+ send out a zero-sized chunk which signifies end-of-transmission. We
+ now ignore zero-sized chunks.
+
+- We accidentially slept for far too long when we reached the maximum
+ number of open file descriptors. This has been corrected and
+ accept\_fd\_holdoff now works correctly.
+
+- Previously, when ESI processing, we did not look at the full length,
+ but stopped at the first NULL byte. We no longer do that, enabling
+ ESI processing of binary data.
+
+varnishtest
+-----------
+
+- Make sure system "..." returns successfully to ensure test failures
+ do not go unnoticed.
+
+- Make it possible to send NULL bytes through the testing framework.
+
+===========================
+Changes from 2.0.2 to 2.0.3
+===========================
+
+varnishd
+--------
+
+- Handle If-Modified-Since and ESI sub-objects better, fixing a problem
+ where we sometimes neglected to insert included objects.
+
+- restart in vcl\_hit is now supported.
+
+- Setting the TTL of an object to 0 seconds would sometimes cause it to
+ be delivered for up to one second - epsilon. This has been corrected
+ and we should now never deliver those objects to other clients.
+
+- The malloc storage backend now prints the maximum storage size, just
+ like the file backend.
+
+- Various small documentation bugs have been fixed.
+
+- Varnish did not set a default interval for backend probes, causing it
+ to poll the backend continuously. This has been corrected.
+
+- Allow "true" and "false" when setting boolean parameters, in addition
+ to on/off, enable/disable and yes/no.
+
+- Default to always talking HTTP 1.1 with the backend.
+
+- Varnish did not make sure the file it was loading was a regular file.
+ This could cause Varnish to crash if it was asked to load a directory
+ or other non-regular file. We now check that the file is a regular
+ file before loading it.
+
+- The binary heap used for expiry processing had scalability problems.
+ Work around this by using stripes of a fixed size, which should make
+ this scale better, particularly when starting up and having lots of
+ objects.
+
+- When we imported the jemalloc library into the Varnish tree, it did
+ not compile without warnings. This has now been fixed.
+
+- Varnish took a very long time to detect that the backend did not
+ respond. To remedy this, we now have read timeouts in addition to the
+ connect timeout. Both the first\_byte\_timeout and the
+ between\_bytes\_timeout defaults to 60 seconds. The connect timeout
+ is no longer in milliseconds, but rather in seconds.
+
+- Previously, the VCL to C conversion as well as the invocation of the
+ C compiler was done in the management process. This is now done in a
+ separate sub-process. This prevents any bugs in the VCL compiler from
+ affecting the management process.
+
+- Chunked encoding headers were counted in the statistics for header
+ bytes. They no longer are.
+
+- ESI processed objects were not counted in the statistics for body
+ bytes. They now are.
+
+- It is now possible to adjust the maximum record length of log entries
+ in the shmlog by tuning the shm\_reclen parameter.
+
+- The management parameters listed in the CLI were not sorted, which
+ made it hard to find the parameter you were looking for. They are now
+ sorted, which should make this easier.
+
+- Add a new hashing type, "critbit", which uses a lock-less tree based
+ lookup algorithm. This is experimental and should not be enabled in
+ production environments without proper testing.
+
+- The session workspace had a default size of 8k. It is now 16k, which
+ should make VCLs where many headers are processed less prone to
+ panics.
+
+- We have seen that people seem to be confused as to which actions in
+ the different VCL functions return and which ones don't. Add a new
+ syntax return(action) to make this more explicit. The old syntax is
+ still supported.
+
+- Varnish would return an error if any of the management IPs listed in
+ the -T parameter could not be listened to. We now only return an
+ error if none of them can be listened to.
+
+- In the case of the backend or client giving us too many parameters,
+ we used to just ignore the overflowing headers. This is problematic
+ if you end up ignoreing Content-Length, Transfer-Encoding and similar
+ headers. We now give out a 400 error to the client if it sends us too
+ many and 503 if we get too many from the backend.
+
+- We used panic if we got a too large chunked header. This behaviour
+ has been changed into just failing the transaction.
+
+- Varnish now supports an extended purge method where it is possible to
+ do purge req.http.host ~ "web1.com" && req.url ~ "\\.png" and
+ similar. See the documentation for details.
+
+- Under heavy load, Varnish would sometimes crash when trying to update
+ the per-request statistics. This has now been fixed.
+
+- It is now possible to not save the hash string in the session and
+ object workspace. This will save a lot of memory on sites with many
+ small objects. Disabling the purge\_hash parameter also disables the
+ purge.hash facility.
+
+- Varnish now supports !~ as a "no match" regular expression matcher.
+
+- In some cases, you could get serialised access to "pass" objects. We
+ now make it default to the default\_ttl value; this can be overridden
+ in vcl\_fetch.
+
+- Varnish did not check the syntax of regsub calls properly. More
+ checking has been added.
+
+- If the client closed the connection while Varnish was processing ESI
+ elements, Varnish would crash while trying to write the object to the
+ client. We now check if the client has closed the connection.
+
+- The ESI parser had a bug where it would crash if an XML comment would
+ span storage segments. This has been fixed.
+
+VCL Manual page
+--------------~
+
+- The documentation on how capturing parentheses work was wrong. This
+ has been corrected.
+
+- Grace has now been documented.
+
+varnishreplay
+-------------
+
+- varnishreplay did not work correctly on Linux, due to a too small
+ stack. This has now been fixed.
+
+===========================
+Changes from 2.0.1 to 2.0.2
+===========================
+
+varnishd
+--------
+
+- In high-load situations, when using ESI, varnishd would sometimes
+ mishandle objects and crash. This has been worked around.
+
+varnishreplay
+-------------
+
+- varnishreplay did not work correctly on Linux, due to a too small
+ stack. This has now been fixed.
+
+
+=========================
+Changes from 2.0 to 2.0.1
+=========================
+
+varnishd
+--------
+
+- When receiving a garbled HTTP request, varnishd would sometimes
+ crash. This has been fixed.
+
+- There was an off-by-one error in the ACL compilation. Now fixed.
+
+Red Hat spec file
+----------------~
+
+- A typo in the spec file made the .rpm file names wrong.
+
+=========================
+Changes from 1.1.2 to 2.0
+=========================
+
+varnishd
+--------
+
+- Only look for sendfile on platforms where we know how to use it,
+ which is FreeBSD for now.
+
+- Make it possible to adjust the shared memory log size and bump the
+ size from 8MB to 80MB.
+
+- Fix up the handling of request bodies to better match what RFC2616
+ mandates. This makes PUT, DELETE, OPTIONS and TRACE work in addition
+ to POST.
+
+- Change how backends are defined, to a constant structural defintion
+ style. See http://varnish.projects.linpro.no/wiki/VclSyntaxChanges
+ for the details.
+
+- Add directors, which wrap backends. Currently, there's a random
+ director and a round-robin director.
+
+- Add "grace", which is for how long and object will be served, even
+ after it has expired. To use this, both the object's and the
+ request's grace parameter need to be set.
+
+- Manual pages have been updated for new VCL syntax and varnishd
+ options.
+
+- Man pages and other docs have been updated.
+
+- The shared memory log file is now locked in memory, so it should not
+ be paged out to disk.
+
+- We now handle Vary correctly, as well as Expect.
+
+- ESI include support is implemented.
+
+- Make it possible to limit how much memory the malloc uses.
+
+- Solaris is now supported.
+
+- There is now a regsuball function, which works like regsub except it
+ replaces all occurences of the regex, not just the first.
+
+- Backend and director declarations can have a .connect\_timeout
+ parameter, which tells us how long to wait for a successful
+ connection.
+
+- It is now possible to select the acceptor to use by changing the
+ acceptor parameter.
+
+- Backends can have probes associated with them, which can be checked
+ with req.backend.health in VCL as well as being handled by directors
+ which do load-balancing.
+
+- Support larger-than-2GB files also on 32 bit hosts. Please note that
+ this does not mean we can support caches bigger than 2GB, it just
+ means logfiles and similar can be bigger.
+
+- In some cases, we would remove the wrong header when we were
+ stripping Content-Transfer-Encoding headers from a request. This has
+ been fixed.
+
+- Backends can have a .max\_connections associated with them.
+
+- On Linux, we need to set the dumpable bit on the child if we want
+ core dumps. Make sure it's set.
+
+- Doing purge.hash() with an empty string would cause us to dump core.
+ Fixed so we don't do that any more.
+
+- We ran into a problem with glibc's malloc on Linux where it seemed
+ like it failed to ever give memory back to the OS, causing the system
+ to swap. We have now switched to jemalloc which appears not to have
+ this problem.
+
+- max\_restarts was never checked, so we always ended up running out of
+ workspace. Now, vcl\_error is called when we reach max\_restarts.
+
+varnishtest
+-----------
+
+- varnishtest is a tool to do correctness tests of varnishd. The test
+ suite is run by using make check.
+
+varnishtop
+----------
+
+- We now set the field widths dynamically based on the size of the
+ terminal and the name of the longest field.
+
+varnishstat
+-----------
+
+- varnishstat -1 now displays the uptime too.
+
+varnishncsa
+-----------
+
+- varnishncsa now does fflush after each write. This makes tail -f work
+ correctly, as well as avoiding broken lines in the log file.
+
+- It is possible to get varnishncsa to output the X-Forwarded-For
+ instead of the client IP by passing -f to it.
+
+Build system
+-----------~
+
+- Various sanity checks have been added to configure, it now complains
+ about no ncurses or if SO\_RCVTIMEO or SO\_SNDTIMEO are
+ non-functional. It also aborts if there's no working acceptor
+ mechanism
+
+- The C compiler invocation is decided by the configure script and can
+ now be overridden by passing VCC\_CC when running configure.
+
+===========================
+Changes from 1.1.1 to 1.1.2
+===========================
+
+varnishd
+--------
+
+- When switching to a new VCL configuration, a race condition exists
+ which may cause Varnish to reference a backend which no longer exists
+ (see `ticket #144 <http://varnish.projects.linpro.no/ticket/144>`_).
+ This race condition has not been entirely eliminated, but it should
+ occur less frequently.
+
+- When dropping a TCP session before any requests were processed, an
+ assertion would be triggered due to an uninitialized timestamp (see
+ `ticket #132 <http://varnish.projects.linpro.no/ticket/132>`_). The
+ timestamp is now correctly initialized.
+
+- Varnish will now correctly generate a Date: header for every response
+ instead of copying the one it got from the backend (see `ticket
+ #157 <http://varnish.projects.linpro.no/ticket/157>`_).
+
+- Comparisons in VCL which involve a non-existent string (usually a
+ header which is not present in the request or object being processed)
+ would cause a NULL pointer dereference; now the comparison will
+ simply fail.
+
+- A bug in the VCL compiler which would cause a double-free when
+ processing include directives has been fixed.
+
+- A resource leak in the worker thread management code has been fixed.
+
+- When connecting to a backend, Varnish will usually get the address
+ from a cache. When the cache is refreshed, existing connections may
+ end up with a reference to an address structure which no longer
+ exists, resulting in a crash. This race condition has been somewhat
+ mitigated, but not entirely eliminated (see `ticket
+ #144 <http://varnish.projects.linpro.no/ticket/144>`_.)
+
+- Varnish will now pass the correct protocol version in pipe mode: the
+ backend will get what the client sent, and vice versa.
+
+- The core of the pipe mode code has been rewritten to increase
+ robustness and eliminate spurious error messages when either end
+ closes the connection in a manner Varnish did not anticipate.
+
+- A memory leak in the backend code has been plugged.
+
+- When using the kqueue acceptor, if a client shuts down the request
+ side of the connection (as many clients do after sending their final
+ request), it was possible for the acceptor code to receive the EOF
+ event and recycle the session while the last request was still being
+ serviced, resulting in a assertion failure and a crash when the
+ worker thread later tried to delete the session. This should no
+ longer happen (see `ticket
+ #162 <http://varnish.projects.linpro.no/ticket/162>`_.)
+
+- A mismatch between the recorded length of a cached object and the
+ amount of data actually present in cache for that object can
+ occasionally occur (see `ticket
+ #167 <http://varnish.projects.linpro.no/ticket/167>`_.) This has been
+ partially fixed, but may still occur for error pages generated by
+ Varnish when a problem arises while retrieving an object from the
+ backend.
+
+- Some socket-related system calls may return unexpected error codes
+ when operating on a TCP connection that has been shut down at the
+ other end. These error codes would previously cause assertion
+ failures, but are now recognized as harmless conditions.
+
+varnishhist
+-----------
+
+- Pressing 0 though 9 while varnishhist is running will change the
+ refresh interval to the corresponding power of two, in seconds.
+
+varnishncsa
+-----------
+
+- The varnishncsa tool can now daemonize and write a PID file like
+ varnishlog, using the same command-line options. It will also reopen
+ its output upon receipt of a SIGHUP if invoked with -w.
+
+varnishstat
+-----------
+
+- Pressing 0 though 9 while varnishstat is running will change the
+ refresh interval to the corresponding power of two, in seconds.
+
+Build system
+-----------~
+
+- Varnish's <queue.h> has been modified to avoid conflicts with
+ <sys/queue.h> on platforms where the latter is included indirectly
+ through system headers.
+
+- Several steps have been taken towards Solaris support, but this is
+ not yet complete.
+
+- When configure was run without an explicit prefix, Varnish's idea of
+ the default state directory would be garbage and a state directory
+ would have to be specified manually with -n. This has been corrected.
+
+=========================
+Changes from 1.1 to 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.
+
+=========================
+Changes from 1.0.4 to 1.1
+=========================
+
+varnishd
+--------
+
+- Readability of the C source code generated from VCL code has been
+ improved.
+
+- Equality (==) and inequality (!=) operators have been implemented for
+ IP addresses (which previously could only be compared using ACLs).
+
+- The address of the listening socket on which the client connection
+ was received is now available to VCL as the server.ip variable.
+
+- 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).
+
+- 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.
+
+- 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 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
+----------
+
+- 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.
+
+varnishhist
+-----------
+
+- 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.
+
+varnishncsa
+-----------
+
+- In addition to client traffic, varnishncsa can now also process log
+ data from backend traffic.
+
+- A bug that would cause varnishncsa to segfault when it encountered an
+ empty HTTP header in the log file has been fixed.
+
+varnishreplay
+-------------
+
+- This new utility will attempt to recreate the HTTP traffic which
+ resulted in the raw Varnish log data which it is fed.
+
+varnishstat
+-----------
+
+- 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 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.
+
+varnishtop
+----------
+
+- 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.
+
+===========================
+Changes from 1.0.3 to 1.0.4
+===========================
+
+varnishd
+--------
+
+- The request workflow has been redesigned to simplify request
+ processing and eliminate code duplication. All codepaths which need
+ to speak HTTP now share a single implementation of the protocol. Some
+ new VCL hooks have been added, though they aren't much use yet. The
+ only real user-visible change should be that Varnish now handles
+ persistent backend connections correctly (see `ticket
+ #56 <http://varnish.projects.linpro.no/ticket/56>`_).
+
+- Support for multiple listen addresses has been added.
+
+- An "include" facility has been added to VCL, allowing VCL code to
+ pull in code fragments from multiple files.
+
+- Multiple definitions of the same VCL function are now concatenated
+ into one in the order in which they appear in the source. This
+ simplifies the mechanism for falling back to the built-in default for
+ cases which aren't handled in custom code, and facilitates
+ modularization.
+
+- The code used to format management command arguments before passing
+ them on to the child process would underestimate the amount of space
+ needed to hold each argument once quotes and special characters were
+ properly escaped, resulting in a buffer overflow. This has been
+ corrected.
+
+- The VCL compiler has been overhauled. Several memory leaks have been
+ plugged, and error detection and reporting has been improved
+ throughout. Parts of the compiler have been refactored to simplify
+ future extension of the language.
+
+- A bug in the VCL compiler which resulted in incorrect parsing of the
+ decrement (-=) operator has been fixed.
+
+- A new -C command-line option has been added which causes varnishd to
+ compile the VCL code (either from a file specified with -f or the
+ built-in default), print the resulting C code and exit.
+
+- When processing a backend response using chunked encoding, if a chunk
+ header crosses a read buffer boundary, read additional bytes from the
+ backend connection until the chunk header is complete.
+
+- A new ping\_interval run-time parameter controls how often the
+ management process checks that the worker process is alive.
+
+- A bug which would cause the worker process to dereference a NULL
+ pointer and crash if the backend did not respond has been fixed.
+
+- In some cases, such as when they are used by AJAX applications to
+ circumvent Internet Explorer's over-eager disk cache, it may be
+ desirable to cache POST requests. However, the code path responsible
+ for delivering objects from cache would only transmit the response
+ body when replying to a GET request. This has been extended to also
+ apply to POST.
+
+ This should be revisited at a later date to allow VCL code to control
+ whether the body is delivered.
+
+- Varnish now respects Cache-control: s-maxage, and prefers it to
+ Cache-control: max-age if both are present.
+
+ This should be revisited at a later date to allow VCL code to control
+ which headers are used and how they are interpreted.
+
+- When loading a new VCL script, the management process will now load
+ the compiled object to verify that it links correctly before
+ instructing the worker process to load it.
+
+- A new -P command-line options has been added which causes varnishd to
+ create a PID file.
+
+- The sendfile\_threshold run-time parameter's default value has been
+ set to infinity after a variety of sendfile()-related bugs were
+ discovered on several platforms.
+
+varnishlog
+----------
+
+- When grouping log entries by request, varnishlog attempts to collapse
+ the log entry for a call to a VCL function with the log entry for the
+ corresponding return from VCL. When two VCL calls were made in
+ succession, varnishlog would incorrectly omit the newline between the
+ two calls (see `ticket
+ #95 <http://varnish.projects.linpro.no/ticket/95>`_).
+
+- New -D and -P command-line options have been added to daemonize and
+ create a pidfile, respectively.
+
+- The flag that is raised upon reception of a SIGHUP has been marked
+ volatile so it will not be optimized away by the compiler.
+
+varnishncsa
+-----------
+
+- The formatting callback has been largely rewritten for clarity,
+ robustness and efficiency.
+
+ If a request included a Host: header, construct and output an
+ absolute URL. This makes varnishncsa output from servers which handle
+ multiple virtual hosts far more useful.
+
+- The flag that is raised upon reception of a SIGHUP has been marked
+ volatile so it will not be optimized away by the compiler.
+
+Documentation
+-------------
+
+- The documentation—especially the VCL documentation—has been greatly
+ extended and improved.
+
+Build system
+------------
+
+- The name and location of the curses or ncurses library is now
+ correctly detected by the configure script instead of being hardcoded
+ into affected Makefiles. This allows Varnish to build correctly on a
+ wider range of platforms.
+
+- Compatibility shims for clock\_gettime() are now correctly applied
+ where needed, allowing Varnish to build on MacOS X.
+
+- The autogen.sh script will now correctly detect and warn about
+ automake versions which are known not to work correctly.
diff --git a/doc/sphinx/installation/install.rst b/doc/sphinx/installation/install.rst
index d725f81..fe8496d 100644
--- a/doc/sphinx/installation/install.rst
+++ b/doc/sphinx/installation/install.rst
@@ -92,7 +92,6 @@ installed. On a Debian or Ubuntu system these are:
* libtool
* autoconf
* libncurses-dev
-* xsltproc
* groff-base
* libpcre3-dev
* pkg-config
@@ -107,7 +106,6 @@ packages installed:
* autoconf
* libtool
* ncurses-devel
-* libxslt
* groff
* pcre-devel
* pkgconfig
diff --git a/redhat/varnish.spec b/redhat/varnish.spec
index 5cf9c97..ead5745 100644
--- a/redhat/varnish.spec
+++ b/redhat/varnish.spec
@@ -15,7 +15,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
# To build from git, start with a make dist, see redhat/README.redhat
# You will need at least automake autoconf libtool python-docutils
#BuildRequires: automake autoconf libtool python-docutils
-BuildRequires: ncurses-devel libxslt groff pcre-devel pkgconfig
+BuildRequires: ncurses-devel groff pcre-devel pkgconfig
Requires: varnish-libs = %{version}-%{release}
Requires: logrotate
Requires: ncurses
More information about the varnish-commit
mailing list