Fix grammar in the redirect{} description
[privoxy.git] / doc / source / user-manual.sgml
index 85894e7..a7ea4c8 100644 (file)
@@ -9,13 +9,15 @@
 <!entity history SYSTEM "history.sgml">
 <!entity copyright SYSTEM "copyright.sgml">
 <!entity license SYSTEM "license.sgml">
+<!entity GPLv2 SYSTEM "../../LICENSE">
 <!entity p-authors SYSTEM "p-authors.sgml">
 <!entity config SYSTEM "p-config.sgml">
-<!entity p-version "3.0.20">
-<!entity p-status "beta">
+<!entity changelog SYSTEM "changelog.sgml">
+<!entity p-version "3.0.21">
+<!entity p-status "stable">
 <!entity % p-authors-formal "INCLUDE"> <!-- include additional text, etc  -->
-<!entity % p-not-stable "INCLUDE">
-<!entity % p-stable "IGNORE">
+<!entity % p-not-stable "IGNORE">
+<!entity % p-stable "INCLUDE">
 <!entity % p-text "IGNORE">        <!-- define we are not a text only doc -->
 <!entity % p-doc "INCLUDE">        <!-- and we are a formal doc           -->
 <!entity % p-readme "IGNORE">
@@ -34,7 +36,7 @@
                 This file belongs into
                 ijbswa.sourceforge.net:/home/groups/i/ij/ijbswa/htdocs/
 
- $Id: user-manual.sgml,v 2.161 2013/01/12 12:21:38 fabiankeil Exp $
+ $Id: user-manual.sgml,v 2.174 2013/03/02 14:39:24 fabiankeil Exp $
 
  Copyright (C) 2001-2013 Privoxy Developers http://www.privoxy.org/
  See LICENSE.
@@ -60,7 +62,7 @@
  </subscript>
 </pubdate>
 
-<pubdate>$Id: user-manual.sgml,v 2.161 2013/01/12 12:21:38 fabiankeil Exp $</pubdate>
+<pubdate>$Id: user-manual.sgml,v 2.174 2013/03/02 14:39:24 fabiankeil Exp $</pubdate>
 
 <!--
 
@@ -115,7 +117,7 @@ Hal.
 <sect1 label="1" id="introduction"><title>Introduction</title>
 <para>
  This documentation is included with the current &p-status; version of
- <application>Privoxy</application>, v.&p-version;<![%p-not-stable;[,
+ <application>Privoxy</application>, &p-version;<![%p-not-stable;[,
  and is mostly complete at this point. The most up to date reference for the
  time being is still the comments in the source files and in the individual
  configuration files. Development of a new version is currently nearing
@@ -333,1069 +335,75 @@ How to install the binary packages depends on your operating system:
 </sect3>
 
 <!--   ~~~~~       New section      ~~~~~     -->
-<sect3 id="installation-tbz"><title>FreeBSD</title>
+<sect3 id="installation-freebsd"><title>FreeBSD</title>
 
 <para>
  Privoxy is part of FreeBSD's Ports Collection, you can build and install
  it with <literal>cd /usr/ports/www/privoxy; make install clean</literal>.
 </para>
-<para>
- If you don't use the ports, you can fetch and install
- the package with <literal>pkg_add -r privoxy</literal>.
-</para>
-<para>
- The port skeleton and the package can also be downloaded from the
- <ulink url="https://sourceforge.net/project/showfiles.php?group_id=11118">File Release
- Page</ulink>, but there's no reason to use them unless you're interested in the
- beta releases which are only available there.
-</para>
-</sect3>
-
-</sect2>
-
-<!--   ~~~~~       New section      ~~~~~     -->
-<sect2 id="installation-source"><title>Building from Source</title>
-
-<para>
- The most convenient way to obtain the <application>Privoxy</application> sources
- is to download the source tarball from our
- <ulink url="http://sourceforge.net/project/showfiles.php?group_id=11118&amp;package_id=10571">project download
- page</ulink>.
-</para>
-
-<para>
- If you like to live on the bleeding edge and are not afraid of using
- possibly unstable development versions, you can check out the up-to-the-minute
- version directly from <ulink url="http://sourceforge.net/cvs/?group_id=11118">the
- CVS repository</ulink>.
-<!--
- deprecated...out of business.
- or simply download <ulink
- url="http://cvs.sourceforge.net/cvstarballs/ijbswa-cvsroot.tar.bz2">the nightly CVS
- tarball.</ulink>
--->
-</para>
-
-<!-- include buildsource.sgml boilerplate: -->
-&buildsource;
-<!-- end boilerplate -->
-
-</sect2>
-<!--   ~~~~~       New section      ~~~~~     -->
-<sect2 id="installation-keepupdated"><title>Keeping your Installation Up-to-Date</title>
-
-<para>
- If you wish to receive an email notification whenever we release updates of
- <application>Privoxy</application> or the actions file, <ulink
- url="http://lists.sourceforge.net/lists/listinfo/ijbswa-announce/">subscribe
- to our announce  mailing list</ulink>, ijbswa-announce@lists.sourceforge.net.
-</para>
-
-<para>
- In order not to lose your personal changes and adjustments when updating
- to the latest <literal>default.action</literal> file we <emphasis>strongly
- recommend</emphasis> that you use <literal>user.action</literal> and
- <literal>user.filter</literal> for your local
- customizations of <application>Privoxy</application>. See the <link
- linkend="actions-file">Chapter on actions files</link> for details.
-</para>
-
-</sect2>
-
-
-</sect1>
-
-<!--  ~  End section  ~  -->
-
-<!--   ~~~~~       New section      ~~~~~     -->
-<sect1 id="whatsnew">
-<title>What's New in this Release</title>
-<para>
- <application>Privoxy 3.0.20</application> is a beta release.
- The changes since 3.0.19 stable are:
-</para>
-
-<para>
- <itemizedlist>
-    <listitem>
-   <para>
-    Bug fixes:
-    <itemizedlist>
-    <listitem>
-     <para>
-      Client sockets are now properly shutdown and drained before being
-      closed. This fixes page truncation issues with clients that aggressively
-      pipeline data on platforms that otherwise discard already written data.
-      The issue mainly affected Opera users and was initially reported
-      by Kevin in #3464439, szotsaki provided additional information to track
-      down the cause.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Fix latency calculation for shared connections (disabled by default).
-      It was broken since their introduction in 2009. The calculated latency
-      for most connections would be 0 in which case the timeout detection
-      failed to account for the real latency.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Reject URLs with invalid port. Previously they were parsed incorrectly and
-      characters between the port number and the first slash were silently
-      dropped as shown by curl test 187.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      The default-server-timeout and socket-timeout directives accept 0 as
-      valid value.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Fix a race condition on Windows that could cause Privoxy to become
-      unresponsive after toggling it on or off through the taskbar icon.
-      Reported by Tim H. in #3525694.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Fix the compilation on Windows when configured without IPv6 support.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Fix an assertion that could cause debug builds to abort() in case of
-      socks5 connection failures with "debug 2" enabled.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Fix an assertion that could cause debug builds to abort() if a filter
-      contained nul bytes in the replacement text.
-     </para>
-     </listitem>
-    </itemizedlist>
-   </para>
-  </listitem>
-  <listitem>
-   <para>
-    General improvements:
-    <itemizedlist>
-    <listitem>
-     <para>
-      Significantly improved keep-alive support for both client and server
-      connections.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      New debug log level 65536 which logs all actions that were applied to
-      the request.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      New directive client-header-order to forward client headers in a
-      different order than the one in which they arrived.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      New directive tolerate-pipelining to allow client-side pipelining.
-      If enabled (3.0.20 beta enables it by default), Privoxy will keep
-      pipelined client requests around to deal with them once the current
-      request has been served.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      New --config-test option to let Privoxy exit after checking whether or not
-      the configuration seems valid. The limitations noted in TODO #22 and #23
-      still apply. Based on a patch by Ramkumar Chinchani.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      New limit-cookie-lifetime{} action to let cookies expire before the end
-      of the session. Suggested by Rick Sykes in #1049575.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Increase the hard-coded maximum number of actions and filter files from
-      10 to 30 (each). It doesn't significantly affect Privoxy's memory usage
-      and recompiling wasn't an option for all Privoxy users that reached the
-      limit.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Add support for chunk-encoded client request bodies. Previously
-      chunk-encoded request bodies weren't guaranteed to be forwarded correctly,
-      so this can also be considered a bug fix although chunk-encoded request
-      bodies aren't commonly used in the real world.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Add support for Tor's optimistic-data SOCKS extension, which can reduce the
-      latency for requests on newly created connections. Currently only the
-      headers are sent optimistically and only if the client request has already
-      been read completely which rules out requests with large bodies.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      After preventing the client from pipelining, don't signal keep-alive
-      intentions. When looking at the response headers alone, it previously
-      wasn't obvious from the client's perspective that no additional responses
-      should be expected.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Stop considering client sockets tainted after receving a request with body.
-      It hasn't been necessary for a while now and unnecessarily causes test
-      failures when using curl's test suite.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Allow HTTP/1.0 clients to signal interest in keep-alive through the
-      Proxy-Connection header. While such client are rare in the real world, it
-      doesn't hurt and couple of curl tests rely on it.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Only remove duplicated Content-Type headers when filters are enabled.
-      If they are not it doesn't cause ill effects and the user might not want it.
-      Downgrade the removal message to LOG_LEVEL_HEADER to clarify that it's not
-      an error in Privoxy and is unlikely to cause any problems in general.
-      Anonymously reported in #3599335.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Set the socket option SO_LINGER for the client socket.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Move several variable declarations to the beginning of their code block.
-      It's required when compiling with gcc 2.95 which is still used on some
-      platforms. Initial patch submitted by Simon South in #3564815.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Optionally try to sanity-check strptime() results before trusting them.
-      Broken strptime() implementations have caused problems in the past and
-      the most recent offender seems to be FreeBSD's libc (standards/173421).
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      When filtering is enabled, let Range headers pass if the range starts at
-      the beginning. This should work around (or at least reduce ) the video
-      playback issues with various Apple clients as reported by Duc in #3426305.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Do not confuse a client hanging up with a connection time out. If a client
-      closes its side of the connection without sending a request line, do not
-      send the CLIENT_CONNECTION_TIMEOUT_RESPONSE, but report the condition
-      properly.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Allow closing curly braces as part of action values as long as they are
-      escaped.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      On Windows, the logfile is now written before showing the GUI error
-      message which blocks until the user acknowledges it.
-      Reported by Adriaan in #3593603.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Remove an unreasonable parameter limit in the CGI interface. The new
-      parameter limit depends on the memory available and is currently unlikely
-      to be reachable, due to other limits in both Privoxy and common clients.
-      Reported by Andrew on ijbswa-users@.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Decrease the chances of parse failures after requests with unsupported
-      methods were sent to the CGI interface.
-     </para>
-     </listitem>
-    </itemizedlist>
-   </para>
-  </listitem>
-  <listitem>
-   <para>
-    Action file improvements:
-    <itemizedlist>
-    <listitem>
-     <para>
-      Remove the comment that indicated that updated default.action versions
-      are released on their own.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Block 'optimize.indieclick.com/' and 'optimized-by.rubiconproject.com/'
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Unblock 'adjamblog.wordpress.com/' and 'adjamblog.files.wordpress.com/'.
-      Reported by Ryan Farmer in #3496116.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Unblock '/.*Bugtracker'. Reported by pwhk in #3522341.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Add test URLs for '.freebsd.org' and '.watson.org'.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Unblock '.urbandictionary.com/popular'.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Block '.adnxs.com/'.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Block 'farm.plista.com/widgetdata.php'.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Block 'rotation.linuxnewmedia.com/'.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Block 'reklamy.sfd.pl/'. Reported by kacperdominik in #3399948.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Block 'g.adspeed.net/'.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Unblock 'websupport.wdc.com/'. Reported by Adam Piggot in #3577851.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Block '/openx/www/delivery/'.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Disable fast-redirects for '.googleapis.com/'.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Block 'imp.double.net/'. Reported by David Bo in #3070411.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Block 'gm-link.com/' whis is used for email tracking.
-      Reported by David Bo in #1812733.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Verify that requests to "bwp." are blocked. URL taken from #1736879
-      submitted by Francois Marier.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Block '/.*bannerid='. Reported by Adam Piggott in #2975779.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Block 'cltomedia.info/delivery/' and '.adexprt.com/'.
-      Anonymously reported in #2965254.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Block 'de17a.com/'. Reported by David Bo in #3061472.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Block 'oskar.tradera.com/'. Reported by David Bo in #3060596.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Block '/scripts/webtrends\.js'. Reported by johnd16 in #3002729.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Block requests for 'pool.*.adhese.com/'. Reported by johnd16 in #3002716.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Update path pattern for Coremetrics and add tests.
-      Pattern and URLs submitted by Adam Piggott #3168443.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Enable +fast-redirects{check-decoded-url} for 'tr.anp.se/'.
-      Reported by David Bo in #3268832.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Unblock '.conrad.se/newsletter/banners/'. Reported by David Bo in #3413824.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Block '.tynt.com/'. Reported by Dan Stahlke in #3421767.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Unblock '.bbci.co.uk/radio/'. Reported by Adam Piggott in #3569603.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Block requests to 'service.maxymiser.net/'.
-      Reported by johnd16 in #3118401 (with a previous URL).
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Disable fast-redirects for Google's "let's pretend your computer is
-      infected" page.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Unblock '/.*download' to resolve actionsfile feedback #3498129.
-      Submitted by Steven Kolins (soundcloud.com not working).
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Unblock '.wlxrs.com/' which is required by hotmail.com.
-      Fixes #3413827 submitted by David Bo.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Add two unblock patterns for popup radio and TV players.
-      Submitted by Adam Piggott in #3596089.
-     </para>
-     </listitem>
-    </itemizedlist>
-   </para>
-  </listitem>
-  <listitem>
-   <para>
-    Filter file improvements & bug fixes:
-    <itemizedlist>
-    <listitem>
-     <para>
-      Add a referer tagger.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Reduce the likelihood that the google filter messes up HTML-generating
-      JavaScript. Reported by Zeno Kugy in #3520260.
-     </para>
-     </listitem>
-    </itemizedlist>
-   </para>
-  </listitem>
-  <listitem>
-   <para>
-    Documentation improvements:
-    <itemizedlist>
-    <listitem>
-     <para>
-      Revised all OS X sections due to new packaging module (OSXPackageBuilder).
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Update the list of supported operating systems to clarify that all Windows
-      versions after 95 are expected to work and note that the platform-specific
-      code for AmigaOS and QNX currently isn't maintained.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Update 'Signals' section, the only explicitly handled signals are SIGINT,
-      SIGTERM and SIGHUP.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Add Haiku to the list of operating systems on which Privoxy is known to
-      run.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Add DragonFly to the list of BSDs on which Privoxy is known to run.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Removed references to redhat-specific documentation set since it no longer
-      exists.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Removed references to building PDFs since we no longer do so.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Multiple listen-address directives are supported since 3.0.18, correct the
-      documentation to say so.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Remove bogus section about long and short being preferable to int.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Corrected some Internet JunkBuster references to Privoxy.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Removed references to www.junkbusters.com since it is no longer
-      maintained. Reported by Angelina Matson.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Various grammar and spelling corrections
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Add a client-header-tagger{} example for disabling filtering for range
-      requests.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Correct a URL in the "Privoxy with Tor" FAQ.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Spell 'refresh-tags' correctly. Reported by Don in #3571927.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Sort manpage options alphabetically.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Remove an incorrect sentence in the toggle section. The toggle state
-      doesn't affect whether or not the Windows version uses the tray icon.
-      Reported by Zeno Kugy in #3596395.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Add new contributors since 3.0.19.
-     </para>
-     </listitem>
-    </itemizedlist>
-   </para>
-  </listitem>
-  <listitem>
-   <para>
-    Log message improvements:
-    <itemizedlist>
-    <listitem>
-     <para>
-      When stopping to watch a client socket due to pipelining, additionally log
-      the socket number.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Log the client socket and its condition before closing it. This makes it
-      more obvious that the socket actually gets closed and should help when
-      diagnosing problems like #3464439.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      In case of SOCKS5 failures, do not explicitly log the server's response.
-      It hasn't helped so far and the response can already be logged by enabling
-      "debug 32768" anyway. This reverts v1.81 and the follow-up bug fix v1.84.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Relocate the connection-accepted message from listen_loop() to serve().
-      This way it's printed by the thread that is actually serving the
-      connection which is nice when grepping for thread ids in log files.
-     </para>
-     </listitem>
-    </itemizedlist>
-   </para>
-  </listitem>
-  <listitem>
-   <para>
-    Code cleanups:
-    <itemizedlist>
-    <listitem>
-     <para>
-      Remove compatibility layer for versions prior to 3.0 since it has been
-      obsolete for more than 10 years now.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Remove the ijb_isupper() and ijb_tolower() macros from parsers.c since
-      they aren't used in this file.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Removed the 'Functions declared include:' comment sections since they tend
-      to be incomplete, incorrect and out of date and the benefit seems
-      questionable.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Various comment grammar and comprehensibility improvements.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Remove a pointless fflush() call in chat(). Flushing all streams pretty
-      much all the time for no obvious reason is ridiculous.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Relocate ijb_isupper()'s definition to project.h and get the ijb_tolower()
-      definition from there, too.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Relocate ijb_isdigit()'s definition to project.h.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Rename ijb_foo macros to privoxy_foo.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Add malloc_or_die() which will allow to simplify code paths where malloc()
-      failures don't need to be handled gracefully.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Add strdup_or_die() which will allow to simplify code paths where strdup()
-      failures don't need to be handled gracefully.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Replace strdup() calls with strdup_or_die() calls where it's safe and
-      simplifies the code.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Fix white-space around parentheses.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Add missing white-space behind if's and the following parentheses.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Unwrap a memcpy() call in resolve_hostname_to_ip().
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Declare pcrs_get_delimiter()'s delimiters[] static const.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Various optimisations to remove dead code and merge inefficient code
-      structures for improved clarity, performance or code compactness.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Various data type corrections.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Change visibility of several code segments when compiling without
-      FEATURE_CONNECTION_KEEP_ALIVE enabled for clarity.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      In pcrs_get_delimiter(), do not use delimiters ouside the ASCII range.
-      Fixes a clang complaint.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Fix an error message in get_last_url() nobody is supposed to see.
-      Reported by Matthew Fischer in #3507301.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Fix a typo in the no-zlib-support complaint. Patch submitted by Matthew
-      Fischer in #3507304.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Shorten ssplit()'s prototype by removing the last two arguments. We always
-      want to skip empty fields and ignore leading delimiters, so having
-      parameters for this only complicates the API.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Use an enum for the type of the action value.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Rename action_name's member takes_value to value_type as it isn't used as
-      boolean.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Turn family mismatches in match_sockaddr() into fatal errors.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Let enlist_unique_header() verify that the caller didn't pass a header
-      containing either \r or \n.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Change the hashes used in load_config() to unsigned int. That's what
-      hash_string() actually returns and using a potentiallly larger type
-      is at best useless.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Use privoxy_tolower() instead of vanilla tolower() with manual casting of
-      the argument.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Catch ssplit() failures in parse_cgi_parameters().
-     </para>
-     </listitem>
-    </itemizedlist>
-   </para>
-  </listitem>
-  <listitem>
-   <para>
-    Privoxy-Regression-Test:
-    <itemizedlist>
-    <listitem>
-     <para>
-      Add an 'Overwrite condition' directive to skip any matching tests before
-      it. As it has a global scope, using it is more convenient than clowning
-      around with the Ignore directive.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Log to STDOUT instead of STDERR.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Include the Privoxy version in the output.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Various grammar and spelling corrections in documentation and code.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Additional tests for range requests with filtering enabled.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Tests with mostly invalid range request.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Add a couple of hide-if-modified-since{} tests with different date formats.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Cleaned up the format of the regression-tests.action file to match the
-      format of default.action.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Remove the "Copyright" line from print_version(). When using --help, every
-      line of screen space matters and thus shouldn't be wasted on things the
-      user doesn't care about.
-     </para>
-     </listitem>
-    </itemizedlist>
-   </para>
-  </listitem>
-  <listitem>
-   <para>
-    Privoxy-Log-Parser:
-    <itemizedlist>
-    <listitem>
-     <para>
-      Improve the --statistics performance by skipping sanity checks for input
-      that shouldn't affect the results anyway. Add a --strict-checks option
-      that enables some of the checks again, just in case anybody cares.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      The distribution of client requests per connection is included in
-      the --statistic output.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      The --accept-unknown-messages option has been removed and the behavior
-      is now the default.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Accept and (mostly) highlight new log messages introduced with
-      Privoxy 3.0.20.
-     </para>
-     </listitem>
-    </itemizedlist>
-   </para>
-  </listitem>
-  <listitem>
-   <para>
-    uagen:
-    <itemizedlist>
-    <listitem>
-     <para>
-      Bump generated Firefox version to 17.
-     </para>
-     </listitem>
-    </itemizedlist>
-   </para>
-  </listitem>
-  <listitem>
-   <para>
-    GNUmakefile improvements:
-    <itemizedlist>
-    <listitem>
-     <para>
-      The dok-tidy target no longer taints documents with a tidy-mark
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Change RA_MODE from 0664 to 0644. Suggested by Markus Dittrich in
-      #3505445.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Remove tidy's clean flag as it changes the scope of attributes.
-      Link-specific colors end up being applied to all text. Reported by Adam
-      Piggott in #3569551.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Leave it up to the user whether or not smart tags are inserted.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Let w3m itself do the line wrapping for the config file. It works better
-      than fmt as it can honour pre tags causing less unintentional line breaks.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Ditch a pointless '-r' passed to rm to delete files.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      The config-file target now requires less manual intervention and updates
-      the original config.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Change WDUMP to generate ASCII. Add WDUMP_UTF8 to allow UTF-8 in the
-      AUTHORS file so the names are right.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Stop pretending that lynx and links are supported for the documentation.
-     </para>
-     </listitem>
-    </itemizedlist>
-   </para>
-  </listitem>
-  <listitem>
-   <para>
-    configure improvements:
-    <itemizedlist>
-    <listitem>
-     <para>
-      On Haiku, do not pass -lpthread to the compiler. Haiku's pthreads
-      implementation is contained in its system library, libroot, so no
-      additional library needs to be searched.
-      Patch submitted by Simon South in #3564815.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Additional Haiku-specific improvements. Disable checks intended for
-      multi-user systems as Haiku is presently single-user. Group Haiku-specific
-      settings in their own section, following the pattern for Solaris, OS/2 and
-      AmigaOS. Add additional library-related settings to remove the need for
-      providing configure with custom LDFLAGS.
-      Submitted by Simon South in #3574538.
-      *** Version 3.0.19 Stable ***
-     </para>
-     </listitem>
-    </itemizedlist>
-   </para>
-  </listitem>
-  <listitem>
-   <para>
-    Bug fixes:
-    <itemizedlist>
-    <listitem>
-     <para>
-      Prevent a segmentation fault when de-chunking buffered content.
-      It could be triggered by malicious web servers if Privoxy was
-      configured to filter the content and running on a platform
-      where SIZE_T_MAX isn't larger than UINT_MAX, which probably
-      includes most 32-bit systems. On those platforms, all Privoxy
-      versions before 3.0.19 appear to be affected.
-      To be on the safe side, this bug should be presumed to allow
-      code execution as proving that it doesn't seems unrealistic.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Do not expect a response from the SOCKS4/4A server until it
-      got something to respond to. This regression was introduced
-      in 3.0.18 and prevented the SOCKS4/4A negotiation from working.
-      Reported by qqqqqw in #3459781.
-     </para>
-     </listitem>
-    </itemizedlist>
-   </para>
-  </listitem>
-  <listitem>
-   <para>
-    General improvements:
-    <itemizedlist>
-    <listitem>
-     <para>
-      Fix an off-by-one in an error message about connect failures.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Use a GNUMakefile variable for the webserver root directory and
-      update the path. Sourceforge changed it which broke various
-      web-related targets.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Update the CODE_STATUS description.
-     </para>
-     </listitem>
-    </itemizedlist>
-   </para>
-  </listitem>
- </itemizedlist>
+</sect3>
+
+</sect2>
+
+<!--   ~~~~~       New section      ~~~~~     -->
+<sect2 id="installation-source"><title>Building from Source</title>
+
+<para>
+ The most convenient way to obtain the <application>Privoxy</application> sources
+ is to download the source tarball from our
+ <ulink url="http://sourceforge.net/project/showfiles.php?group_id=11118&amp;package_id=10571">project download
+ page</ulink>.
+</para>
+
+<para>
+ If you like to live on the bleeding edge and are not afraid of using
+ possibly unstable development versions, you can check out the up-to-the-minute
+ version directly from <ulink url="http://sourceforge.net/cvs/?group_id=11118">the
+ CVS repository</ulink>.
+<!--
+ deprecated...out of business.
+ or simply download <ulink
+ url="http://cvs.sourceforge.net/cvstarballs/ijbswa-cvsroot.tar.bz2">the nightly CVS
+ tarball.</ulink>
+-->
+</para>
+
+<!-- include buildsource.sgml boilerplate: -->
+&buildsource;
+<!-- end boilerplate -->
+
+</sect2>
+<!--   ~~~~~       New section      ~~~~~     -->
+<sect2 id="installation-keepupdated"><title>Keeping your Installation Up-to-Date</title>
+
+<para>
+ If you wish to receive an email notification whenever we release updates of
+ <application>Privoxy</application> or the actions file, <ulink
+ url="http://lists.sourceforge.net/lists/listinfo/ijbswa-announce/">subscribe
+ to our announce  mailing list</ulink>, ijbswa-announce@lists.sourceforge.net.
+</para>
+
+<para>
+ In order not to lose your personal changes and adjustments when updating
+ to the latest <literal>default.action</literal> file we <emphasis>strongly
+ recommend</emphasis> that you use <literal>user.action</literal> and
+ <literal>user.filter</literal> for your local
+ customizations of <application>Privoxy</application>. See the <link
+ linkend="actions-file">Chapter on actions files</link> for details.
 </para>
 
+</sect2>
+
+
+</sect1>
+
+<!--  ~  End section  ~  -->
+
+<!--   ~~~~~       New section      ~~~~~     -->
+<sect1 id="whatsnew">
+<title>What's New in this Release</title>
+
+&changelog;
 
 <!--   ~~~~~       New section      ~~~~~     -->
 
@@ -1438,12 +446,6 @@ How to install the binary packages depends on your operating system:
    files, thinking you will want to do that yourself.
   </para>
  </listitem>
- <listitem>
-  <para>
-   <filename>standard.action</filename> has been merged into
-   the <filename>default.action</filename> file.
-  </para>
- </listitem>
  <listitem>
   <para>
    In the default configuration only fatal errors are logged now.
@@ -2061,28 +1063,6 @@ How to install the binary packages depends on your operating system:
  directory. Except on Win32 where it will try <filename>config.txt</filename>.
 </para>
 
-<sect2 id="start-redhat">
-<title>Red Hat and Fedora</title>
-<para>
- A default Red Hat installation may not start &my-app; upon boot. It will use
- the file <filename>/etc/privoxy/config</filename> as its main configuration
- file.
-</para>
-<para>
- <screen>
- # /etc/rc.d/init.d/privoxy start
-</screen>
-</para>
-<para>
- Or ...
-</para>
-<para>
- <screen>
- # service privoxy start
-</screen>
-</para>
-</sect2>
-
 <sect2 id="start-debian">
 <title>Debian</title>
 <para>
@@ -2171,42 +1151,6 @@ Example Unix startup command:
 </sect2>
 
 
-<sect2 id="start-amigaos">
-<title>AmigaOS</title>
-<para>
- Start <application>Privoxy</application> (with RUN &lt;&gt;NIL:) in your
- <filename>startnet</filename> script (AmiTCP), in
- <filename>s:user-startup</filename> (RoadShow), as startup program in your
- startup script (Genesis), or as startup action (Miami and MiamiDx).
- <application>Privoxy</application> will automatically quit when you quit your
- TCP/IP stack (just ignore the harmless warning your TCP/IP stack may display that
- <application>Privoxy</application> is still running).
-</para>
-</sect2>
-
-<sect2 id="start-gentoo">
-<title>Gentoo</title>
-<para>
- A script is again used. It will use the file <filename>/etc/privoxy/config
- </filename> as its main configuration file.
-</para>
-<para>
- <screen>
- /etc/init.d/privoxy start
- </screen>
-</para>
-<para>
- Note that <application>Privoxy</application> is not automatically started at
- boot time by default. You can change this with the <literal>rc-update</literal>
- command.
-</para>
-<para>
- <screen>
- rc-update add privoxy default
- </screen>
-</para>
-</sect2>
-
 <!--
 
 <para>
@@ -4890,7 +3834,7 @@ problem-host.example.com</screen>
    </para>
    <para>
     <anchor id="filter-js-events">
-    <screen>+filter{js-events}           # Kill all JS event bindings and timers (Radically destructive! Only for extra nasty sites).</screen>
+    <screen>+filter{js-events}           # Kill JavaScript event bindings and timers (Radically destructive! Only for extra nasty sites).</screen>
    </para>
    <para>
     <anchor id="filter-html-annoyances">
@@ -4902,15 +3846,15 @@ problem-host.example.com</screen>
    </para>
    <para>
     <anchor id="filter-refresh-tags">
-    <screen>+filter{refresh-tags}        # Kill automatic refresh tags (for dial-on-demand setups).</screen>
+    <screen>+filter{refresh-tags}        # Kill automatic refresh tags if refresh time is larger than 9 seconds.</screen>
    </para>
    <para>
     <anchor id="filter-unsolicited-popups">
-    <screen>+filter{unsolicited-popups}  # Disable only unsolicited pop-up windows. Useful if your browser lacks this ability.</screen>
+    <screen>+filter{unsolicited-popups}  # Disable only unsolicited pop-up windows.</screen>
    </para>
    <para>
     <anchor id="filter-all-popups">
-    <screen>+filter{all-popups}          # Kill all popups in JavaScript and HTML. Useful if your browser lacks this ability.</screen>
+    <screen>+filter{all-popups}          # Kill all popups in JavaScript and HTML.</screen>
    </para>
    <para>
     <anchor id="filter-img-reorder">
@@ -4940,6 +3884,10 @@ problem-host.example.com</screen>
     <anchor id="filter-frameset-borders">
     <screen>+filter{frameset-borders}    # Give frames a border and make them resizable.</screen>
    </para>
+   <para>
+    <anchor id="filter-iframes">
+    <screen>+filter{iframes}             # Removes all detected iframes. Should only be enabled for individual sites.</screen>
+   </para>
    <para>
     <anchor id="filter-demoronizer">
     <screen>+filter{demoronizer}         # Fix MS's non-standard use of standard charsets.</screen>
@@ -6330,7 +5278,7 @@ new action
  example.com/stylesheet\.css
 
 # Create a short, easy to remember nickname for a favorite site
-# (relies on the browser accept and forward invalid URLs to &my-app;)
+# (relies on the browser to accept and forward invalid URLs to &my-app;)
 { +redirect{http://www.privoxy.org/user-manual/actions-file.html} }
  a
 
@@ -8407,11 +7355,20 @@ Requests</title>
  &copyright;
 <!-- end copyright -->
 
+<para>
+ <application>Privoxy</application> is free software; you can
+ redistribute it and/or modify it under the terms of the
+ <citetitle>GNU General Public License</citetitle>, version 2,
+ as published by the Free Software Foundation and included in
+ the next section.
+</para>
+
 <!--   ~~~~~       New section      ~~~~~     -->
-<sect2><title>License</title>
-<!-- Include copyright.sgml: -->
- &license;
-<!-- end copyright -->
+<sect2 id="license"><title>License</title>
+<para>
+ <screen><![ RCDATA [ &GPLv2; ]]></screen>
+</para>
+
 </sect2>
 <!--  ~  End section  ~  -->