> <DIV
CLASS="TABLE"
><A
-NAME="AEN1784"
+NAME="AEN1798"
></A
><P
><B
><H2
CLASS="SECT2"
><A
-NAME="AEN1883"
+NAME="AEN1897"
></A
>8.1. Finding the Right Mix</H2
><P
><H2
CLASS="SECT2"
><A
-NAME="AEN1890"
+NAME="AEN1904"
></A
>8.2. How to Edit</H2
><P
><H3
CLASS="SECT3"
><A
-NAME="AEN1964"
+NAME="AEN1978"
></A
>8.4.1. The Domain Pattern</H3
><P
><H3
CLASS="SECT3"
><A
-NAME="AEN2026"
+NAME="AEN2040"
></A
>8.4.2. The Path Pattern</H3
><P
<TT
CLASS="LITERAL"
><A
-HREF="filter-file.html#FILTER-SERVER-HEADERS"
+HREF="actions-file.html#FILTER-SERVER-HEADERS"
>filter-server-headers</A
></TT
>
><A
NAME="CRUNCH-CLIENT-HEADER"
></A
->8.5.4. crunch-server-header</H4
+>8.5.4. crunch-client-header</H4
><P
></P
><DIV
<TT
CLASS="LITERAL"
><A
-HREF="filter-file.html#FILTER-CLIENT-HEADERS"
+HREF="actions-file.html#FILTER-CLIENT-HEADERS"
>filter-client-headers</A
></TT
>
<TT
CLASS="LITERAL"
><A
-HREF="filter-file.html#FILTER-SERVER-HEADERS"
+HREF="actions-file.html#FILTER-SERVER-HEADERS"
>filter-server-headers</A
></TT
>
requests with <TT
CLASS="LITERAL"
><A
-HREF="filter-file.html#FILTER-CLIENT-HEADERS"
+HREF="actions-file.html#FILTER-CLIENT-HEADERS"
>filter-client-headers</A
></TT
>
CLASS="LITERAL"
>text/plain</TT
> MIME type for all files whose type they
- don't know.)
+ don't know.) By default, filtering works only on the document content
+ itself, not the headers.
</P
></DD
><DT
><H4
CLASS="SECT3"
><A
+NAME="FILTER-CLIENT-HEADERS"
+></A
+>8.5.13. filter-client-headers</H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Typical use:</DT
+><DD
+><P
+> To apply filtering to the client's (browser's) headers
+ </P
+></DD
+><DT
+>Effect:</DT
+><DD
+><P
+>Extend filtering capabilities to the client's headers, which
+ by default applies only to the document itself.
+ </P
+></DD
+><DT
+>Type:</DT
+><DD
+><P
+>Boolean.</P
+></DD
+><DT
+>Parameter:</DT
+><DD
+><P
+> N/A
+ </P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+> Regular expressions can be used to filter headers as well. Check your
+ filters closely before activating this action, as it can easily lead to broken
+ requests.
+ </P
+><P
+>
+ These filters are applied to each header on its own, not to them
+ all at once. This makes it easier to diagnose problems, but on the downside
+ you can't write filters that only change header x if header y's value is
+ z.
+ </P
+><P
+> The filters are used after the other header actions have finished and can
+ use their output as input.
+ </P
+><P
+> Whenever possible one should specify <TT
+CLASS="LITERAL"
+>^</TT
+>,
+ <TT
+CLASS="LITERAL"
+>$</TT
+>, the whole header name and the colon, to make sure
+ the filter doesn't cause havoc to other headers or the
+ page itself. For example if you want to transform
+ <SPAN
+CLASS="APPLICATION"
+>Galeon</SPAN
+> User-Agents to
+ <SPAN
+CLASS="APPLICATION"
+>Firefox</SPAN
+> User-Agents you
+ shouldn't use:</P
+><P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>s@Galeon/\d\.\d\.\d @@</PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> but:</P
+><P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>s@^(User-Agent:.*) Galeon/\d\.\d\.\d (Firefox/\d\.\d\.\d\.\d)$@$1 $2@</PRE
+></TD
+></TR
+></TABLE
+></P
+></DD
+><DT
+>Example usage (section):</DT
+><DD
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>{+filter-client-headers +filter{test_filter}}
+problem-host.example.com
+ </PRE
+></TD
+></TR
+></TABLE
+>
+ </P
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="FILTER-SERVER-HEADERS"
+></A
+>8.5.14. filter-server-headers</H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Typical use:</DT
+><DD
+><P
+> To apply filtering to the server's headers
+ </P
+></DD
+><DT
+>Effect:</DT
+><DD
+><P
+>Extend filtering capabilities to the server's headers, which
+ by default applies only to the document itself.
+ </P
+></DD
+><DT
+>Type:</DT
+><DD
+><P
+>Boolean.</P
+></DD
+><DT
+>Parameter:</DT
+><DD
+><P
+> N/A
+ </P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+> Similar to <TT
+CLASS="LITERAL"
+>filter-client-headers</TT
+>, but works on
+ the server instead. To filter both server and client, use both.
+ </P
+><P
+> As with <TT
+CLASS="LITERAL"
+>filter-client-headers</TT
+>, check your
+ filters before activating this action, as it can easily lead to broken
+ requests.
+ </P
+><P
+>
+ These filters are applied to each header on its own, not to them
+ all at once. This makes it easier to diagnose problems, but on the downside
+ you can't write filters that only change header x if header y's value is
+ z.
+ </P
+><P
+> The filters are used after the other header actions have finished and can
+ use their output as input.
+ </P
+><P
+> Remember too, whenever possible one should specify <TT
+CLASS="LITERAL"
+>^</TT
+>,
+ <TT
+CLASS="LITERAL"
+>$</TT
+>, the whole header name and the colon, to make sure
+ the filter doesn't cause havoc to other headers or the
+ page itself. See above for example.
+ </P
+></DD
+><DT
+>Example usage (section):</DT
+><DD
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>{+filter-server-headers +filter{test_filter}}
+problem-host.example.com
+ </PRE
+></TD
+></TR
+></TABLE
+>
+ </P
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
NAME="FORCE-TEXT-MODE"
></A
->8.5.13. force-text-mode</H4
+>8.5.15. force-text-mode</H4
><P
></P
><DIV
><A
NAME="HANDLE-AS-EMPTY-DOCUMENT"
></A
->8.5.14. handle-as-empty-document</H4
+>8.5.16. handle-as-empty-document</H4
><P
></P
><DIV
><A
NAME="HANDLE-AS-IMAGE"
></A
->8.5.15. handle-as-image</H4
+>8.5.17. handle-as-image</H4
><P
></P
><DIV
><A
NAME="HIDE-ACCEPT-LANGUAGE"
></A
->8.5.16. hide-accept-language</H4
+>8.5.18. hide-accept-language</H4
><P
></P
><DIV
><A
NAME="HIDE-CONTENT-DISPOSITION"
></A
->8.5.17. hide-content-disposition</H4
+>8.5.19. hide-content-disposition</H4
><P
></P
><DIV
><A
NAME="HIDE-IF-MODIFIED-SINCE"
></A
->8.5.18. hide-if-modified-since</H4
+>8.5.20. hide-if-modified-since</H4
><P
></P
><DIV
><A
NAME="HIDE-FORWARDED-FOR-HEADERS"
></A
->8.5.19. hide-forwarded-for-headers</H4
+>8.5.21. hide-forwarded-for-headers</H4
><P
></P
><DIV
><A
NAME="HIDE-FROM-HEADER"
></A
->8.5.20. hide-from-header</H4
+>8.5.22. hide-from-header</H4
><P
></P
><DIV
><A
NAME="HIDE-REFERRER"
></A
->8.5.21. hide-referrer</H4
+>8.5.23. hide-referrer</H4
><A
NAME="HIDE-REFERER"
></A
><A
NAME="HIDE-USER-AGENT"
></A
->8.5.22. hide-user-agent</H4
+>8.5.24. hide-user-agent</H4
><P
></P
><DIV
><A
NAME="INSPECT-JPEGS"
></A
->8.5.23. inspect-jpegs</H4
+>8.5.25. inspect-jpegs</H4
><P
></P
><DIV
><A
NAME="KILL-POPUPS"
></A
->8.5.24. kill-popups<A
+>8.5.26. kill-popups<A
NAME="KILL-POPUP"
></A
></H4
><A
NAME="LIMIT-CONNECT"
></A
->8.5.25. limit-connect</H4
+>8.5.27. limit-connect</H4
><P
></P
><DIV
><A
NAME="PREVENT-COMPRESSION"
></A
->8.5.26. prevent-compression</H4
+>8.5.28. prevent-compression</H4
><P
></P
><DIV
><A
NAME="OVERWRITE-LAST-MODIFIED"
></A
->8.5.27. overwrite-last-modified</H4
+>8.5.29. overwrite-last-modified</H4
><P
></P
><DIV
><A
NAME="REDIRECT"
></A
->8.5.28. redirect</H4
+>8.5.30. redirect</H4
><P
></P
><DIV
><A
NAME="SEND-VANILLA-WAFER"
></A
->8.5.29. send-vanilla-wafer</H4
+>8.5.31. send-vanilla-wafer</H4
><P
></P
><DIV
><A
NAME="SEND-WAFER"
></A
->8.5.30. send-wafer</H4
+>8.5.32. send-wafer</H4
><P
></P
><DIV
><A
NAME="SESSION-COOKIES-ONLY"
></A
->8.5.31. session-cookies-only</H4
+>8.5.33. session-cookies-only</H4
><P
></P
><DIV
><A
NAME="SET-IMAGE-BLOCKER"
></A
->8.5.32. set-image-blocker</H4
+>8.5.34. set-image-blocker</H4
><P
></P
><DIV
><A
NAME="TREAT-FORBIDDEN-CONNECTS-LIKE-BLOCKS"
></A
->8.5.33. treat-forbidden-connects-like-blocks</H4
+>8.5.35. treat-forbidden-connects-like-blocks</H4
><P
></P
><DIV
><H3
CLASS="SECT3"
><A
-NAME="AEN3543"
+NAME="AEN3633"
></A
->8.5.34. Summary</H3
+>8.5.36. Summary</H3
><P
> Note that many of these actions have the potential to cause a page to
misbehave, possibly even not to display at all. There are many ways
><H3
CLASS="SECT3"
><A
-NAME="AEN3608"
+NAME="AEN3698"
></A
>8.7.1. default.action</H3
><P
><H3
CLASS="SECT3"
><A
-NAME="AEN3774"
+NAME="AEN3864"
></A
>8.7.2. user.action</H3
><P
><H2
CLASS="SECT2"
><A
-NAME="AEN4558"
+NAME="AEN4640"
></A
>14.2. <SPAN
CLASS="APPLICATION"
Privoxy main page:
</P
><A
-NAME="AEN4573"
+NAME="AEN4655"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
editing of actions files:
</P
><A
-NAME="AEN4581"
+NAME="AEN4663"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
Show the source code version numbers:
</P
><A
-NAME="AEN4586"
+NAME="AEN4668"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
Show the browser's request headers:
</P
><A
-NAME="AEN4591"
+NAME="AEN4673"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
Show which actions apply to a URL and why:
</P
><A
-NAME="AEN4596"
+NAME="AEN4678"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
to run, but only as a pass-through proxy, with no actions taking place:
</P
><A
-NAME="AEN4602"
+NAME="AEN4684"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
> Short cuts. Turn off, then on:
</P
><A
-NAME="AEN4606"
+NAME="AEN4688"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
</P
></BLOCKQUOTE
><A
-NAME="AEN4609"
+NAME="AEN4691"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><H2
CLASS="SECT2"
><A
-NAME="AEN711"
+NAME="AEN725"
></A
>6.1. Controlling <SPAN
CLASS="APPLICATION"
> <H2
CLASS="BRIDGEHEAD"
><A
-NAME="AEN720"
+NAME="AEN734"
></A
> Privoxy Menu</H2
><P
><H2
CLASS="SECT2"
><A
-NAME="AEN4312"
+NAME="AEN4394"
></A
>12.1. License</H2
><P
>Current Developement Team:</P
><P
CLASS="LITERALLAYOUT"
-> David Schmidt<br>
- Fabian Keil<br>
+> Fabian Keil<br>
+ David Schmidt<br>
<br>
Current Contributors:<br>
<br>
- Hal Burgiss<br>
Johny Agotnes <br>
Moritz Barsnick<br>
+ Hal Burgiss<br>
Mattes Dolak <br>
Roland Rosenfeld<br> </P
><P
><P
CLASS="LITERALLAYOUT"
> <br>
- Andreas Oesterhelt<br>
Rodrigo Barbosa<br>
Brian Dessent<br>
Jon Foster<br>
Gábor Lipták<br>
Adam Lock<br>
Guy Laroche<br>
+ Andreas Oesterhelt<br>
Haroon Rafique<br>
Georg Sauthoff<br>
Thomas Steudten<br>
></A
>9. Filter Files</H1
><P
-> All text substitutions that can be invoked through the
+> On-the-fly text substitutions that can be invoked through the
<TT
CLASS="LITERAL"
><A
HREF="actions-file.html#FILTER"
>filter</A
></TT
-> action which
- must first be defined in a <SPAN
+> action need
+ to be defined in a <SPAN
CLASS="QUOTE"
>"filter file"</SPAN
->, such as
- <TT
-CLASS="FILENAME"
->default.filter</TT
+>. Once defined, they
+ can then be invoked as an <SPAN
+CLASS="QUOTE"
+>"action"</SPAN
>. Mulitple filter files can be
defined through the <TT
CLASS="LITERAL"
HREF="config.html#FILTERFILE"
>filterfile</A
></TT
-> config
- option. The filters as supplied by the developers will be found in
+> config directive. The filters
+ as supplied by the developers will be found in
<TT
CLASS="FILENAME"
>default.filter</TT
>. It is recommended that any locally
- defined or modified filters go in a separately defined file such as
+ defined or modified filters go in a separately defined file such as
<TT
CLASS="FILENAME"
>user.filter</TT
CLASS="QUOTE"
>"roll
your own"</SPAN
-> filters, you should be familiar with HTML syntax.</P
+> filters, you should first be familiar with HTML syntax,
+ and, of course, regular expressions. By default, filters are only applied
+ to the document content, but can be extended to the headers with
+ the supplemental actions:
+ <A
+HREF="actions-file.html#FILTER-CLIENT-HEADERS"
+>filter-client-headers</A
+> and
+ <A
+HREF="actions-file.html#FILTER-SERVER-HEADERS"
+>filter-server-headers</A
+>.</P
><P
> Just like the <A
HREF="actions-file.html"
><H2
CLASS="SECT2"
><A
-NAME="AEN3902"
+NAME="AEN3994"
></A
>9.1. Filter File Tutorial</H2
><P
anything regarding this filter.
</P
></DD
-><DT
-><A
-NAME="FILTER-SERVER-HEADERS"
-></A
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->filter-server-headers</I
-></SPAN
-></DT
-><DD
-><P
-> </P
-></DD
-><DT
-><A
-NAME="FILTER-CLIENT-HEADERS"
-></A
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->filter-client-headers</I
-></SPAN
-></DT
-><DD
-><P
-> </P
-></DD
></DL
></DIV
></DIV
><BR></P
><P
CLASS="PUBDATE"
->$Id: user-manual.sgml,v 2.13 2006/08/22 11:04:59 hal9 Exp $<BR></P
+>$Id: user-manual.sgml,v 2.14 2006/08/29 10:59:36 hal9 Exp $<BR></P
><DIV
><DIV
CLASS="ABSTRACT"
><DL
><DT
>6.1. <A
-HREF="configuration.html#AEN711"
+HREF="configuration.html#AEN725"
>Controlling <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
><DL
><DT
>8.1. <A
-HREF="actions-file.html#AEN1883"
+HREF="actions-file.html#AEN1897"
>Finding the Right Mix</A
></DT
><DT
>8.2. <A
-HREF="actions-file.html#AEN1890"
+HREF="actions-file.html#AEN1904"
>How to Edit</A
></DT
><DT
><DL
><DT
>8.4.1. <A
-HREF="actions-file.html#AEN1964"
+HREF="actions-file.html#AEN1978"
>The Domain Pattern</A
></DT
><DT
>8.4.2. <A
-HREF="actions-file.html#AEN2026"
+HREF="actions-file.html#AEN2040"
>The Path Pattern</A
></DT
></DL
><DT
>8.5.4. <A
HREF="actions-file.html#CRUNCH-CLIENT-HEADER"
->crunch-server-header</A
+>crunch-client-header</A
></DT
><DT
>8.5.5. <A
></DT
><DT
>8.5.13. <A
+HREF="actions-file.html#FILTER-CLIENT-HEADERS"
+>filter-client-headers</A
+></DT
+><DT
+>8.5.14. <A
+HREF="actions-file.html#FILTER-SERVER-HEADERS"
+>filter-server-headers</A
+></DT
+><DT
+>8.5.15. <A
HREF="actions-file.html#FORCE-TEXT-MODE"
>force-text-mode</A
></DT
><DT
->8.5.14. <A
+>8.5.16. <A
HREF="actions-file.html#HANDLE-AS-EMPTY-DOCUMENT"
>handle-as-empty-document</A
></DT
><DT
->8.5.15. <A
+>8.5.17. <A
HREF="actions-file.html#HANDLE-AS-IMAGE"
>handle-as-image</A
></DT
><DT
->8.5.16. <A
+>8.5.18. <A
HREF="actions-file.html#HIDE-ACCEPT-LANGUAGE"
>hide-accept-language</A
></DT
><DT
->8.5.17. <A
+>8.5.19. <A
HREF="actions-file.html#HIDE-CONTENT-DISPOSITION"
>hide-content-disposition</A
></DT
><DT
->8.5.18. <A
+>8.5.20. <A
HREF="actions-file.html#HIDE-IF-MODIFIED-SINCE"
>hide-if-modified-since</A
></DT
><DT
->8.5.19. <A
+>8.5.21. <A
HREF="actions-file.html#HIDE-FORWARDED-FOR-HEADERS"
>hide-forwarded-for-headers</A
></DT
><DT
->8.5.20. <A
+>8.5.22. <A
HREF="actions-file.html#HIDE-FROM-HEADER"
>hide-from-header</A
></DT
><DT
->8.5.21. <A
+>8.5.23. <A
HREF="actions-file.html#HIDE-REFERRER"
>hide-referrer</A
></DT
><DT
->8.5.22. <A
+>8.5.24. <A
HREF="actions-file.html#HIDE-USER-AGENT"
>hide-user-agent</A
></DT
><DT
->8.5.23. <A
+>8.5.25. <A
HREF="actions-file.html#INSPECT-JPEGS"
>inspect-jpegs</A
></DT
><DT
->8.5.24. <A
+>8.5.26. <A
HREF="actions-file.html#KILL-POPUPS"
>kill-popups<A
NAME="KILL-POPUP"
></A
></DT
><DT
->8.5.25. <A
+>8.5.27. <A
HREF="actions-file.html#LIMIT-CONNECT"
>limit-connect</A
></DT
><DT
->8.5.26. <A
+>8.5.28. <A
HREF="actions-file.html#PREVENT-COMPRESSION"
>prevent-compression</A
></DT
><DT
->8.5.27. <A
+>8.5.29. <A
HREF="actions-file.html#OVERWRITE-LAST-MODIFIED"
>overwrite-last-modified</A
></DT
><DT
->8.5.28. <A
+>8.5.30. <A
HREF="actions-file.html#REDIRECT"
>redirect</A
></DT
><DT
->8.5.29. <A
+>8.5.31. <A
HREF="actions-file.html#SEND-VANILLA-WAFER"
>send-vanilla-wafer</A
></DT
><DT
->8.5.30. <A
+>8.5.32. <A
HREF="actions-file.html#SEND-WAFER"
>send-wafer</A
></DT
><DT
->8.5.31. <A
+>8.5.33. <A
HREF="actions-file.html#SESSION-COOKIES-ONLY"
>session-cookies-only</A
></DT
><DT
->8.5.32. <A
+>8.5.34. <A
HREF="actions-file.html#SET-IMAGE-BLOCKER"
>set-image-blocker</A
></DT
><DT
->8.5.33. <A
+>8.5.35. <A
HREF="actions-file.html#TREAT-FORBIDDEN-CONNECTS-LIKE-BLOCKS"
>treat-forbidden-connects-like-blocks</A
></DT
><DT
->8.5.34. <A
-HREF="actions-file.html#AEN3543"
+>8.5.36. <A
+HREF="actions-file.html#AEN3633"
>Summary</A
></DT
></DL
><DL
><DT
>8.7.1. <A
-HREF="actions-file.html#AEN3608"
+HREF="actions-file.html#AEN3698"
>default.action</A
></DT
><DT
>8.7.2. <A
-HREF="actions-file.html#AEN3774"
+HREF="actions-file.html#AEN3864"
>user.action</A
></DT
></DL
><DL
><DT
>9.1. <A
-HREF="filter-file.html#AEN3902"
+HREF="filter-file.html#AEN3994"
>Filter File Tutorial</A
></DT
><DT
><DL
><DT
>12.1. <A
-HREF="copyright.html#AEN4312"
+HREF="copyright.html#AEN4394"
>License</A
></DT
><DT
></DT
><DT
>14.2. <A
-HREF="appendix.html#AEN4558"
+HREF="appendix.html#AEN4640"
><SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>gcc</A
> are required.</P
><P
-> When building from a source tarball (either release version or
- a nightly CVS tarball, first unpack the source: </P
+> When building from a source tarball,
+ first unpack the source: </P
><P
> <TABLE
BORDER="0"
> <DIV
CLASS="FIGURE"
><A
-NAME="AEN507"
+NAME="AEN521"
></A
><P
><B
> <DIV
CLASS="FIGURE"
><A
-NAME="AEN558"
+NAME="AEN572"
></A
><P
><B
></A
>3. What's New in this Release</H1
><P
-> There are many new features in <SPAN
+> There are many improvements and new features in <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> 3.0.4
> can now be specifed in <TT
CLASS="FILENAME"
>config</TT
->.
+>. This allows for
+ locally defined filters that can be maintained separately from the filters as
+ supplied by the developers.
</P
></LI
><LI
> <TT
CLASS="LITERAL"
><A
-HREF="actions-file.html#FAST-REDIRECTS"
->fast-redirects</A
+HREF="actions-file.html#FILTER-CLIENT-HEADERS"
+>filter-client-headers</A
+></TT
+>
+ </P
+></LI
+><LI
+><P
+> <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#FILTER-SERVER-HEADERS"
+>filter-server-headers</A
></TT
>
</P
> <TT
CLASS="LITERAL"
><A
-HREF="actions-file.html#HIDE-REFERRER"
->hide-referrer</A
-></TT
->
- </P
-></LI
-><LI
-><P
-> <TT
-CLASS="LITERAL"
-><A
HREF="actions-file.html#INSPECT-JPEGS"
>inspect-jpegs</A
></TT
></UL
>
</P
+><P
+> In addition, <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#FAST-REDIRECTS"
+>fast-redirects</A
+></TT
+>
+ has been significantly improved with enhanced syntax.
+ </P
+><P
+> And <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#HIDE-REFERRER"
+>hide-referrer</A
+></TT
+>
+ has a new option, <TT
+CLASS="LITERAL"
+>conditional block</TT
+>.
+ </P
></LI
><LI
><P
></LI
><LI
><P
-> In addition, there are various bug fixes and enhancements, including
- error pages are no longer cached, better DNS error handling, and logging
+> In addition, there are various bug fixes and significant enhancements, including
+ error pages are no longer cached, better DNS error handling, and various logging
improvements.
</P
></LI
></LI
><LI
><P
+> See the full documentation on
+ <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#FAST-REDIRECTS"
+>fast-redirects</A
+></TT
+>
+ which has changed syntax, and may require adjustments to local configs.
+ </P
+></LI
+><LI
+><P
+> The <TT
+CLASS="FILENAME"
+>jarfile</TT
+>, cookie logger, is off by default now.
+ </P
+></LI
+><LI
+><P
>
What constitutes a <SPAN
CLASS="QUOTE"