</change>
<change type="enh" ref="1389">
- <para>Equality (<literal>==</literal>) and inequality
- (<literal>!=</literal>) operators have been implemented for IP
+ <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
- <varname>server.ip</varname> variable.</para>
+ <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 <varname>req.hash</varname>. A VCL
- hook named <varname>vcl_hash</varname> has been added to allow
+ 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 <literal>Host:</literal> header
+ not to include the value of the <code>Host:</code> header
in the hash).</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 <varname>user</varname> and
- <varname>group</varname> run-time parameters, which default to
- <literal>nobody</literal> and <literal>nogroup</literal>,
+ 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 type="enh" ref="1506">
<para>Objects which are received from the backend with a
- <literal>Vary:</literal> header are now stored separately
+ <code>Vary:</code> header are now stored separately
according to the values of the headers specified in
- <literal>Vary:</literal>. This allows Varnish to correctly
+ <code>Vary:</code>. This allows Varnish to correctly
cache e.g. compressed and uncompressed versions of the same
object.</para>
</change>
</change>
<change type="enh" ref="1549">
- <para>When invoked with the <option>-C</option> option,
- <command>varnishd</command> will now not just translate the VCL
+ <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>
<change type="enh" ref="1557,1558">
- <para>The new command-line option <option>-F</option> will make
- <command>varnishd</command> run in the foreground, without
+ <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
- (<varname>bereq.request</varname>, <varname>bereq.url</varname>,
- <varname>bereq.proto</varname> and
- <varname>bereq.http</varname>) and the response to the client
- (<varname>resp.proto</varname>, <varname>resp.status</varname>,
- <varname>resp.response</varname> and
- <varname>resp.http</varname>).</para>
+ (<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
- <command>varnishstat</command> and other statistics-gathering
+ <code>varnishstat</code> and other statistics-gathering
tools.</para>
</change>
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, <function>vcl_discard</function>, is allowed to
+ A VCL hook, <code>vcl_discard</code>, is allowed to
inspect each object and determine its fate by returning either
- <command>keep</command> or <command>discard</command>.</para>
+ <code>keep</code> or <code>discard</code>.</para>
</change>
<change type="enh" ref="1612,1640">
- <para>A new VCL hook, <function>vcl_deliver</function>, provides
+ <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, <command>vcl.show</command>,
+ <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, <varname>now</varname>, provides VCL
+ <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, <varname>obj.lastuse</varname>,
+ <para>A new VCL variable, <code>obj.lastuse</code>,
reflects the time in seconds since the object in question was
last used.</para>
</change>
<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
- <command>remove</command> keyword.</para>
+ <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 (<varname>obj.status</varname>) and responses
- (<varname>resp.status</varname>)</para>
+ objects (<code>obj.status</code>) and responses
+ (<code>resp.status</code>)</para>
</change>
<change type="enh" ref="1663">
<change type="enh" ref="1666,1667">
<para>VCL scripts can now apply regular expression substitutions
- to textual variables using the <function>regsub</function>
+ to textual variables using the <code>regsub</code>
function.</para>
</change>
<change type="enh" ref="1674,1675">
- <para>A new management command, <command>status</command>,
+ <para>A new management command, <code>status</code>,
returns the state of the child.</para>
</change>
<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
- <varname>stdout</varname>, greatly simplifying the use of the
+ <code>stdout</code>, greatly simplifying the use of the
management port from scripts.</para>
</change>
</subsystem>
<change type="enh" ref="1479">
<para>In addition to client traffic,
- <command>varnishncsa</command> can now also process log data
+ <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 <command>varnishncsa</command> to
+ <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>
<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 <command>varnishd</command> process.</para>
+ of the <code>varnishd</code> process.</para>
</change>
<change type="enh" ref="1589,1590,1591">
<para>The user interface has been greatly improved;
- <command>varnishstat</command> will no longer print more than
+ <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,
<change type="enh" ref="1592,1596">
<para>The user interface has been greatly improved;
- <command>varnishtop</command> will now respond correctly to
- window resize events, and one-shot mode (<option>-1</option>)
+ <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 type="bug" ref="1745">
<para>The code required to allow VCL to read
- <varname>obj.status</varname>, which had accidentally been left
+ <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
- <literal>Connection:</literal> header in its reply to the
+ <code>Connection:</code> header in its reply to the
client, to avoid possible misunderstandings.</para>
</change>
</change>
<change type="enh" ref="1761,1762,1765,1828">
- <para>A new VCL function, <function>purge_url</function>,
+ <para>A new VCL function, <code>purge_url</code>,
provides the same functionality as the
- <command>url.purge</command> management command.</para>
+ <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 <literal>GET</literal>.
+ be sent only if the request method was <code>GET</code>.
This was a problem for custom request methods (such as
- <literal>PURGE</literal>), so the logic has been changed to
+ <code>PURGE</code>), so the logic has been changed to
always send the response body except in the specific case of a
- <literal>HEAD</literal> request.</para>
+ <code>HEAD</code> request.</para>
</change>
<change type="bug" ref="1795">
<change type="bug" ref="1797">
<para>Due to the way run-time parameters are initialized at
- startup, <command>varnishd</command> previously required the
- <literal>nobody</literal> user and the
- <literal>nogroup</literal> group to exist even if a different
+ 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>
<change type="bug" ref="1807">
- <para>Before calling <function>vcl_miss</function>, Varnish
+ <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
- <function>vcl_miss</function> returned anything else than
- <command>fetch</command>. This has been corrected.</para>
+ <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 <command>error</command>
- return from <function>vcl_fetch</function> and
- <function>vcl_deliver</function> had inadvertantly been left
+ <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="1752">
<para>The top-level Makefile will now honor
- <varname>$DESTDIR</varname> when creating the state
+ <code>$DESTDIR</code> when creating the state
directory.</para>
</change>
</change>
<change type="enh" ref="1811">
- <para>The <filename>autogen.sh</filename> script had workarounds
+ <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 <filename>libcompat</filename> library has been
- renamed to <filename>libvarnishcompat</filename> and is now
+ <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>