Rebuild for 3.0.17 stable
[privoxy.git] / doc / webserver / user-manual / config.html
index 6214cb8..7adee4c 100644 (file)
@@ -7,7 +7,7 @@
 NAME="GENERATOR"
 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
-TITLE="Privoxy 3.0.7 User Manual"
+TITLE="Privoxy 3.0.17 User Manual"
 HREF="index.html"><LINK
 REL="PREVIOUS"
 TITLE="Privoxy Configuration"
@@ -17,7 +17,10 @@ TITLE="Actions Files"
 HREF="actions-file.html"><LINK
 REL="STYLESHEET"
 TYPE="text/css"
-HREF="../p_doc.css">
+HREF="../p_doc.css"><META
+HTTP-EQUIV="Content-Type"
+CONTENT="text/html;
+charset=ISO-8859-1">
 <LINK REL="STYLESHEET" TYPE="text/css" HREF="p_doc.css">
 </head
 ><BODY
@@ -39,7 +42,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->Privoxy 3.0.7 User Manual</TH
+>Privoxy 3.0.17 User Manual</TH
 ></TR
 ><TR
 ><TD
@@ -134,7 +137,9 @@ CLASS="APPLICATION"
 >Privoxy</SPAN
 >'s
  operation that are not location dependent (i.e. they apply universally, no matter
- where you may be surfing).</P
+ where you may be surfing). Like the filter and action files, the config file is
+ a plain text file and can be modified with a text editor like emacs, vim or
+ notepad.exe.</P
 ><DIV
 CLASS="SECT2"
 ><H2
@@ -260,8 +265,12 @@ CLASS="SCREEN"
 >
   </P
 ><P
->   The User Manual is then available to anyone with access to the proxy, by 
-   following the built-in URL: <TT
+>   The User Manual is then available to anyone with access to
+   <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>, by following the built-in URL:
+   <TT
 CLASS="LITERAL"
 >http://config.privoxy.org/user-manual/</TT
 >
@@ -356,7 +365,13 @@ CLASS="VARIABLELIST"
 >Default value:</DT
 ><DD
 ><P
->Two example URLs are provided</P
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Unset</I
+></SPAN
+></P
 ></DD
 ><DT
 >Effect if unset:</DT
@@ -379,7 +394,7 @@ CLASS="EMPHASIS"
 >trustfile</I
 ></SPAN
 ></A
-> above.)
+> below.)
    </P
 ><P
 >    If you use the trust mechanism, it is a good idea to write up some on-line
@@ -411,7 +426,10 @@ CLASS="VARIABLELIST"
 >Specifies:</DT
 ><DD
 ><P
->    An email address to reach the proxy administrator.
+>    An email address to reach the <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> administrator.
    </P
 ></DD
 ><DT
@@ -571,7 +589,7 @@ CLASS="VARIABLELIST"
 >Specifies:</DT
 ><DD
 ><P
->The directory where the other configuration files are located</P
+>The directory where the other configuration files are located.</P
 ></DD
 ><DT
 >Type of value:</DT
@@ -616,7 +634,7 @@ CLASS="QUOTE"
 CLASS="LITERAL"
 >/</TT
 >"</SPAN
->, please
+>, please.
    </P
 ></DD
 ></DL
@@ -639,7 +657,7 @@ CLASS="VARIABLELIST"
 >Specifies:</DT
 ><DD
 ><P
->An alternative directory where the templates are loaded from</P
+>An alternative directory where the templates are loaded from.</P
 ></DD
 ><DT
 >Type of value:</DT
@@ -663,10 +681,18 @@ CLASS="VARIABLELIST"
 >Notes:</DT
 ><DD
 ><P
->    Privoxy's original templates are usually overwritten
-    with each update. Use this option to relocate customized templates
-    that should be kept. Note that you might be missing new features
-    if you use outdated templates.
+>    <SPAN
+CLASS="APPLICATION"
+>Privoxy's</SPAN
+> original templates are usually
+    overwritten with each update. Use this option to relocate customized
+    templates that should be kept. As template variables might change
+    between updates, you shouldn't expect templates to work with
+    <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> releases other than the one
+    they were part of, though.
    </P
 ></DD
 ></DL
@@ -689,14 +715,11 @@ CLASS="VARIABLELIST"
 >Specifies:</DT
 ><DD
 ><P
->    The directory where all logging takes place (i.e. where <TT
+>    The directory where all logging takes place
+    (i.e. where the <TT
 CLASS="FILENAME"
 >logfile</TT
-> and 
-    <TT
-CLASS="FILENAME"
->jarfile</TT
-> are located) 
+> is located).
    </P
 ></DD
 ><DT
@@ -742,7 +765,7 @@ CLASS="QUOTE"
 CLASS="LITERAL"
 >/</TT
 >"</SPAN
->, please
+>, please.
    </P
 ></DD
 ></DL
@@ -801,7 +824,7 @@ BORDER="0"
 ><TD
 >     <P
 CLASS="LITERALLAYOUT"
->&nbsp;&nbsp;standard.action&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Internal&nbsp;purposes,&nbsp;no&nbsp;editing&nbsp;recommended</P
+>&nbsp;&nbsp;match-all.action&nbsp;#&nbsp;Actions&nbsp;that&nbsp;are&nbsp;applied&nbsp;to&nbsp;all&nbsp;sites&nbsp;and&nbsp;maybe&nbsp;overruled&nbsp;later&nbsp;on.</P
 >
     </TD
 ></TR
@@ -809,7 +832,7 @@ CLASS="LITERALLAYOUT"
 ><TD
 >     <P
 CLASS="LITERALLAYOUT"
->&nbsp;&nbsp;default.action&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Main&nbsp;actions&nbsp;file</P
+>&nbsp;&nbsp;default.action&nbsp;&nbsp;&nbsp;#&nbsp;Main&nbsp;actions&nbsp;file</P
 >
     </TD
 ></TR
@@ -817,7 +840,7 @@ CLASS="LITERALLAYOUT"
 ><TD
 >     <P
 CLASS="LITERALLAYOUT"
->&nbsp;&nbsp;user.action&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;User&nbsp;customizations</P
+>&nbsp;&nbsp;user.action&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;User&nbsp;customizations</P
 >
     </TD
 ></TR
@@ -844,8 +867,10 @@ CLASS="LITERAL"
    </P
 ><P
 > 
-    The default values include standard.action, which is used for internal
-    purposes and should be loaded, default.action, which is the
+    The default values are <TT
+CLASS="FILENAME"
+>default.action</TT
+>, which is the
     <SPAN
 CLASS="QUOTE"
 >"main"</SPAN
@@ -857,7 +882,7 @@ CLASS="FILENAME"
    </P
 ><P
 > 
-    Actions files are where all the per site and per URL configuration is done for 
+    Actions files contain all the per site and per URL configuration for 
     ad blocking, cookie management, privacy considerations, etc.
     There is no point in using <SPAN
 CLASS="APPLICATION"
@@ -963,7 +988,7 @@ HREF="appendix.html#REGEX"
 >regular expressions</A
 >. These rules permit
     powerful changes on the content of Web pages, and optionally the headers
-    as well, e.g., you could disable your favorite JavaScript annoyances,
+    as well, e.g., you could try to disable your favorite JavaScript annoyances,
     re-write the actual displayed text, or just have some fun 
     playing buzzword bingo with web pages.
    </P
@@ -1060,16 +1085,13 @@ CLASS="emphasis"
 CLASS="EMPHASIS"
 >or</I
 ></SPAN
-> privoxy.log (Windows)</P
+> privoxy.log (Windows).</P
 ></DD
 ><DT
 >Effect if unset:</DT
 ><DD
 ><P
->    No log file is used, all log messages go to the console (<TT
-CLASS="LITERAL"
->STDERR</TT
->).
+>    No logfile is written.
    </P
 ></DD
 ><DT
@@ -1086,9 +1108,21 @@ CLASS="LITERAL"
 CLASS="APPLICATION"
 >Privoxy</SPAN
 > (e.g., it's not blocking an ad you
-    think it should block) but in most cases you probably will never look at
-    it. For this reason, it is disabled by default. For troubleshooting
-    purposes, you will have to explicitly enable it.
+    think it should block) and it can help you to monitor what your browser
+    is doing.
+   </P
+><P
+>    Depending on the debug options below, the logfile may be a privacy risk
+    if third parties can get access to it. As most users will never look
+    at it, <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> 3.0.7 and later only log fatal
+    errors by default.
+   </P
+><P
+>    For most troubleshooting purposes, you will have to change that,
+    please refer to the debugging section for details.
    </P
 ><P
 >    Your logfile will grow indefinitely, and you will probably want to
@@ -1103,23 +1137,11 @@ CLASS="COMMAND"
 > script has been included.
    </P
 ><P
->    On SuSE Linux systems, you can place a line like <SPAN
-CLASS="QUOTE"
->"/var/log/privoxy.*
-    +1024k 644 nobody.nogroup"</SPAN
-> in <TT
-CLASS="FILENAME"
->/etc/logfiles</TT
->, with
-    the effect that cron.daily will automatically archive, gzip, and empty the
-    log, when it exceeds 1M size.
-   </P
-><P
 >    Any log files must be writable by whatever user <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
 >
-    is being run as (default on UNIX, user id is <SPAN
+    is being run as (on Unix, default user id is <SPAN
 CLASS="QUOTE"
 >"privoxy"</SPAN
 >).
@@ -1133,76 +1155,8 @@ CLASS="SECT3"
 ><H4
 CLASS="SECT3"
 ><A
-NAME="JARFILE"
->7.2.7. jarfile</A
-></H4
-><P
-></P
-><DIV
-CLASS="VARIABLELIST"
-><DL
-><DT
->Specifies:</DT
-><DD
-><P
->    The file to store intercepted cookies in
-   </P
-></DD
-><DT
->Type of value:</DT
-><DD
-><P
->File name, relative to <TT
-CLASS="LITERAL"
->logdir</TT
-></P
-></DD
-><DT
->Default value:</DT
-><DD
-><P
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Unset (commented out)</I
-></SPAN
->. When activated: jarfile (Unix) <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->or</I
-></SPAN
-> privoxy.jar (Windows)</P
-></DD
-><DT
->Effect if unset:</DT
-><DD
-><P
->    Intercepted cookies are not stored in a dedicated log file.
-   </P
-></DD
-><DT
->Notes:</DT
-><DD
-><P
->    The jarfile may grow to ridiculous sizes over time.
-   </P
-><P
->    If debug 8 (show header parsing) is enabled, cookies are
-    written to the logfile with the rest of the headers.
-   </P
-></DD
-></DL
-></DIV
-></DIV
-><DIV
-CLASS="SECT3"
-><H4
-CLASS="SECT3"
-><A
 NAME="TRUSTFILE"
->7.2.8. trustfile</A
+>7.2.7. trustfile</A
 ></H4
 ><P
 ></P
@@ -1382,17 +1336,7 @@ CLASS="VARIABLELIST"
 >Specifies:</DT
 ><DD
 ><P
->    Key values that determine what information gets logged to the 
-    <A
-HREF="config.html#LOGFILE"
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->logfile</I
-></SPAN
-></A
->.
+>    Key values that determine what information gets logged.
    </P
 ></DD
 ><DT
@@ -1405,13 +1349,13 @@ CLASS="EMPHASIS"
 >Default value:</DT
 ><DD
 ><P
->12289 (i.e.: URLs plus informational and warning messages)</P
+>0 (i.e.: only fatal errors (that cause Privoxy to exit) are logged)</P
 ></DD
 ><DT
 >Effect if unset:</DT
 ><DD
 ><P
->    Nothing gets logged.
+>    Default value is used (see above).
    </P
 ></DD
 ><DT
@@ -1429,20 +1373,27 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->  debug         1 # show each GET/POST/CONNECT request
-  debug         2 # show each connection status
-  debug         4 # show I/O status
-  debug         8 # show header parsing
-  debug        16 # log all data written to the network into the logfile
-  debug        32 # debug force feature
-  debug        64 # debug regular expression filters
-  debug       128 # debug redirects
-  debug       256 # debug GIF de-animation
-  debug       512 # Common Log Format
-  debug      1024 # debug kill pop-ups
-  debug      2048 # CGI user interface
-  debug      4096 # Startup banner and warnings.
-  debug      8192 # Non-fatal errors</PRE
+>  debug     1 # Log the destination for each request <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> let through. See also debug 1024.
+  debug     2 # show each connection status
+  debug     4 # show I/O status
+  debug     8 # show header parsing
+  debug    16 # log all data written to the network
+  debug    32 # debug force feature
+  debug    64 # debug regular expression filters
+  debug   128 # debug redirects
+  debug   256 # debug GIF de-animation
+  debug   512 # Common Log Format
+  debug  1024 # Log the destination for requests <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> didn't let through, and the reason why.
+  debug  2048 # CGI user interface
+  debug  4096 # Startup banner and warnings.
+  debug  8192 # Non-fatal errors
+  debug 32768 # log all data read from the network</PRE
 ></TD
 ></TR
 ></TABLE
@@ -1461,29 +1412,28 @@ CLASS="LITERAL"
 CLASS="emphasis"
 ><I
 CLASS="EMPHASIS"
->1, 4096 and 8192 are highly recommended</I
+>1, 1024, 4096 and 8192 are recommended</I
 ></SPAN
 >
-    so that you will notice when things go wrong. The other levels are probably
-    only of interest if you are hunting down a specific problem. They can produce
-    a hell of an output (especially 16).
+    so that you will notice when things go wrong. The other levels are
+    probably only of interest if you are hunting down a specific problem.
+    They can produce a hell of an output (especially 16).
     
    </P
 ><P
->    The reporting of <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->fatal</I
-></SPAN
-> errors (i.e. ones which causes 
-    <SPAN
+>    <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
-> to exit) is always on and cannot be disabled.
+> used to ship with the debug levels recommended above enabled by
+    default, but due to privacy concerns 3.0.7 and later are configured to
+    only log fatal errors.
    </P
 ><P
->    If you want to use CLF (Common Log Format), you should set <SPAN
+>    If you are used to the more verbose settings, simply enable the debug lines
+    below again.
+   </P
+><P
+>    If you want to use pure CLF (Common Log Format), you should set <SPAN
 CLASS="QUOTE"
 >"debug
     512"</SPAN
@@ -1506,6 +1456,11 @@ CLASS="QUOTE"
 >"... [too long, truncated]"</SPAN
 >.
    </P
+><P
+>    Please don't file any support requests without trying to reproduce
+    the problem with increased debug level first. Once you read the log
+    messages, you may even be able to solve the problem on your own.
+   </P
 ></DD
 ></DL
 ></DIV
@@ -1527,7 +1482,7 @@ CLASS="VARIABLELIST"
 >Specifies:</DT
 ><DD
 ><P
->    Whether to run only one server thread
+>    Whether to run only one server thread.
    </P
 ></DD
 ><DT
@@ -1566,8 +1521,8 @@ CLASS="EMPHASIS"
 >Notes:</DT
 ><DD
 ><P
->    This option is only there for debug purposes and you should never
-    need to use it. <SPAN
+>    This option is only there for debugging purposes.
+    <SPAN
 CLASS="emphasis"
 ><I
 CLASS="EMPHASIS"
@@ -1579,6 +1534,72 @@ CLASS="EMPHASIS"
 ></DL
 ></DIV
 ></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="HOSTNAME"
+>7.3.3. hostname</A
+></H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Specifies:</DT
+><DD
+><P
+>    The hostname shown on the CGI pages.
+   </P
+></DD
+><DT
+>Type of value:</DT
+><DD
+><P
+>Text</P
+></DD
+><DT
+>Default value:</DT
+><DD
+><P
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Unset</I
+></SPAN
+></P
+></DD
+><DT
+>Effect if unset:</DT
+><DD
+><P
+>    The hostname provided by the operating system is used.
+   </P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+>    On some misconfigured systems resolving the hostname fails or
+    takes too much time and slows Privoxy down. Setting a fixed hostname
+    works around the problem.
+   </P
+><P
+>    In other circumstances it might be desirable to show a hostname
+    other than the one returned by the operating system. For example
+    if the system has several different hostnames and you don't want
+    to use the first one.
+   </P
+><P
+>    Note that Privoxy does not validate the specified hostname value.
+   </P
+></DD
+></DL
+></DIV
+></DIV
 ></DIV
 ><DIV
 CLASS="SECT2"
@@ -1645,12 +1666,12 @@ CLASS="REPLACEABLE"
 >Effect if unset:</DT
 ><DD
 ><P
->    Bind to 127.0.0.1 (localhost), port 8118. This is suitable and recommended for
-    home users who run <SPAN
+>    Bind to 127.0.0.1 (IPv4 localhost), port 8118. This is suitable and
+    recommended for home users who run <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
-> on the same machine as
-    their browser.
+> on
+    the same machine as their browser.
    </P
 ></DD
 ><DT
@@ -1665,11 +1686,14 @@ CLASS="APPLICATION"
     will need to override the default.
    </P
 ><P
+>    IPv6 addresses containing colons have to be quoted by brackets.
+   </P
+><P
 >    If you leave out the IP address, <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
 > will
-    bind to all interfaces (addresses) on your machine and may become reachable
+    bind to all IPv4 interfaces (addresses) on your machine and may become reachable
     from the Internet. In that case, consider using <A
 HREF="config.html#ACLS"
 >access control lists</A
@@ -1681,7 +1705,7 @@ HREF="config.html#ACLS"
 CLASS="APPLICATION"
 >Privoxy</SPAN
 > to untrusted users, you will
-    also want to turn off the <TT
+    also want to make sure that the following actions are disabled:  <TT
 CLASS="LITERAL"
 ><A
 HREF="config.html#ENABLE-EDIT-ACTIONS"
@@ -1695,7 +1719,6 @@ HREF="config.html#ENABLE-REMOTE-TOGGLE"
 >enable-remote-toggle</A
 ></TT
 >
-    options!
    </P
 ></DD
 ><DT
@@ -1723,6 +1746,29 @@ CLASS="PROGRAMLISTING"
 ></TD
 ></TR
 ></TABLE
+>
+   </P
+><P
+>    Suppose you are running <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> on an
+    IPv6-capable machine and you want it to listen on the IPv6 address
+    of the loopback device:
+   </P
+><P
+>    <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  listen-address [::1]:8118</PRE
+></TD
+></TR
+></TABLE
 >
    </P
 ></DD
@@ -1780,20 +1826,11 @@ CLASS="APPLICATION"
 CLASS="QUOTE"
 >"toggled off"</SPAN
 > mode, i.e. mostly behave like a normal,
-    content-neutral proxy where all ad blocking, filtering, etc are disabled. See
-    <TT
+    content-neutral proxy with both ad blocking and content filtering
+    disabled. See <TT
 CLASS="LITERAL"
 >enable-remote-toggle</TT
-> below. This is not really useful
-    anymore, since toggling is much easier via <A
-HREF="http://config.privoxy.org/toggle"
-TARGET="_top"
->the web interface</A
-> than via
-    editing the <TT
-CLASS="FILENAME"
->conf</TT
-> file.
+> below.
    </P
 ><P
 >    The windows version will only display the toggle icon in the system tray
@@ -1855,8 +1892,7 @@ TARGET="_top"
 CLASS="APPLICATION"
 >Privoxy</SPAN
 > mostly acts like a normal,
-    content-neutral proxy, i.e. it acts as if none of the actions applied to
-    any URL.
+    content-neutral proxy, i.e. doesn't block ads or filter content.
    </P
 ><P
 >    Access to the toggle feature can <SPAN
@@ -1888,14 +1924,18 @@ CLASS="EMPHASIS"
 >not recommended</I
 ></SPAN
 >
-    for multi-user environments with untrusted users. Because of 
-    the obvious security implications, this feature is off by default.
-    Note that malicious client side code (e.g JavaScript) is also potentially
-    capable of changing <SPAN
+    for multi-user environments with untrusted users.
+   </P
+><P
+>    Note that malicious client side code (e.g Java) is also
+    capable of using this option.
+   </P
+><P
+>    As a lot of <SPAN
 CLASS="APPLICATION"
->Privoxy's</SPAN
-> intended
-    behavior.
+>Privoxy</SPAN
+> users don't read
+    documentation, this feature is disabled by default.
    </P
 ><P
 >    Note that you must have compiled <SPAN
@@ -1969,11 +2009,11 @@ CLASS="APPLICATION"
 >Privoxy</SPAN
 > in a environment with trusted clients,
     you may enable this feature at your discretion. Note that malicious client
-    side code (e.g JavaScript) is also potentially capable of changing
-    <SPAN
-CLASS="APPLICATION"
->Privoxy's</SPAN
-> intended behavior.
+    side code (e.g Java) is also capable of using this feature.
+   </P
+><P
+>    This option will be removed in future releases as it has been obsoleted
+    by the more general header taggers.
    </P
 ></DD
 ></DL
@@ -2049,20 +2089,27 @@ CLASS="QUOTE"
 CLASS="LITERAL"
 >listen-address</TT
 > above) can
-    modify its configuration for all users. This option is <SPAN
+    modify its configuration for all users.
+   </P
+><P
+>    This option is <SPAN
 CLASS="emphasis"
 ><I
 CLASS="EMPHASIS"
->not
-    recommended</I
+>not recommended</I
 ></SPAN
-> for multi-user environments with untrusted users 
-    and is therefore disabled by default. Note that malicious client side code
-    (e.g JavaScript) is also potentially capable of changing
-    <SPAN
+> for environments
+    with untrusted users and as a lot of <SPAN
 CLASS="APPLICATION"
->Privoxy's</SPAN
-> intended behavior.
+>Privoxy</SPAN
+>
+    users don't read documentation, this feature is disabled by default.
+   </P
+><P
+>    Note that malicious client side code (e.g Java) is also
+    capable of using the actions editor and you shouldn't enable
+    this options unless you understand the consequences and are
+    sure your browser is configured correctly.
    </P
 ><P
 >    Note that you must have compiled <SPAN
@@ -2235,7 +2282,12 @@ CLASS="REPLACEABLE"
 ><I
 >src_addr</I
 ></TT
->[/<TT
+>[:<TT
+CLASS="REPLACEABLE"
+><I
+>port</I
+></TT
+>][/<TT
 CLASS="REPLACEABLE"
 ><I
 >src_masklen</I
@@ -2246,7 +2298,12 @@ CLASS="REPLACEABLE"
 ><I
 >dst_addr</I
 ></TT
->[/<TT
+>[:<TT
+CLASS="REPLACEABLE"
+><I
+>port</I
+></TT
+>][/<TT
 CLASS="REPLACEABLE"
 ><I
 >dst_masklen</I
@@ -2265,8 +2322,14 @@ CLASS="REPLACEABLE"
 ><I
 >dst_addr</I
 ></TT
-> are IP addresses in dotted decimal notation or valid
-    DNS names, and <TT
+> are IPv4 addresses in dotted decimal notation or valid
+    DNS names, <TT
+CLASS="REPLACEABLE"
+><I
+>port</I
+></TT
+> is a port
+    number, and <TT
 CLASS="REPLACEABLE"
 ><I
 >src_masklen</I
@@ -2281,31 +2344,91 @@ CLASS="REPLACEABLE"
     values from 2 to 30 representing the length (in bits) of the network address. The masks and the whole
     destination part are optional.
    </P
-></DD
-><DT
->Default value:</DT
-><DD
 ><P
-><SPAN
-CLASS="emphasis"
+>    If your system implements
+    <A
+HREF="http://tools.ietf.org/html/rfc3493"
+TARGET="_top"
+>RFC 3493</A
+>, then
+    <TT
+CLASS="REPLACEABLE"
 ><I
-CLASS="EMPHASIS"
->Unset</I
-></SPAN
-></P
-></DD
-><DT
->Effect if unset:</DT
-><DD
-><P
->    Don't restrict access further than implied by <TT
-CLASS="LITERAL"
->listen-address</TT
->
-   </P
-></DD
-><DT
->Notes:</DT
+>src_addr</I
+></TT
+> and <TT
+CLASS="REPLACEABLE"
+><I
+>dst_addr</I
+></TT
+> can be IPv6 addresses delimeted by
+    brackets, <TT
+CLASS="REPLACEABLE"
+><I
+>port</I
+></TT
+> can be a number
+    or a service name, and
+    <TT
+CLASS="REPLACEABLE"
+><I
+>src_masklen</I
+></TT
+> and
+    <TT
+CLASS="REPLACEABLE"
+><I
+>dst_masklen</I
+></TT
+> can be a number
+    from 0 to 128.
+   </P
+></DD
+><DT
+>Default value:</DT
+><DD
+><P
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Unset</I
+></SPAN
+></P
+><P
+>    If no <TT
+CLASS="REPLACEABLE"
+><I
+>port</I
+></TT
+> is specified,
+    any port will match. If no <TT
+CLASS="REPLACEABLE"
+><I
+>src_masklen</I
+></TT
+> or
+    <TT
+CLASS="REPLACEABLE"
+><I
+>src_masklen</I
+></TT
+> is given, the complete IP
+    address has to match (i.e. 32 bits for IPv4 and 128 bits for IPv6).
+   </P
+></DD
+><DT
+>Effect if unset:</DT
+><DD
+><P
+>    Don't restrict access further than implied by <TT
+CLASS="LITERAL"
+>listen-address</TT
+>
+   </P
+></DD
+><DT
+>Notes:</DT
 ><DD
 ><P
 >    Access controls are included at the request of ISPs and systems
@@ -2335,9 +2458,12 @@ CLASS="EMPHASIS"
     option. 
    </P
 ><P
->    Please see the warnings in the FAQ that this proxy is not intended to be a substitute
-    for a firewall or to encourage anyone to defer addressing basic security
-    weaknesses.
+>    Please see the warnings in the FAQ that <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+    is not intended to be a substitute for a firewall or to encourage anyone
+    to defer addressing basic security weaknesses.
    </P
 ><P
 >    Multiple ACL lines are OK.
@@ -2402,6 +2528,16 @@ CLASS="QUOTE"
     IP addresses, only the first one is used.
    </P
 ><P
+>     Some systems allow IPv4 clients to connect to IPv6 server sockets.
+     Then the client's IPv4 address will be translated by the system into
+     IPv6 address space with special prefix ::ffff:0:0/96 (so called IPv4
+     mapped IPv6 address). <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> can handle it
+     and maps such ACL addresses automatically.
+   </P
+><P
 >    Denying access to particular sites by ACL may have undesired side effects
     if the site in question is hosted on a machine which also hosts other sites
     (most sites are).
@@ -2486,6 +2622,44 @@ CLASS="SCREEN"
 ></TD
 ></TR
 ></TABLE
+>
+   </P
+><P
+>     Allow access from the IPv4 network 192.0.2.0/24 even if listening on
+     an IPv6 wild card address (not supported on all platforms):
+   </P
+><P
+>    <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  permit-access  192.0.2.0/24</PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+><P
+>     This is equivalent to the following line even if listening on an
+     IPv4 address (not supported on all platforms):
+   </P
+><P
+>    <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  permit-access  [::ffff:192.0.2.0]/120</PRE
+></TD
+></TR
+></TABLE
 >
    </P
 ></DD
@@ -2686,7 +2860,7 @@ CLASS="REPLACEABLE"
 ></TT
 >]
     is the DNS name or IP address of the parent HTTP proxy through which the requests should be forwarded,
-    optionally followed by its listening port (default: 8080).
+    optionally followed by its listening port (default: 8000).
     Use a single dot (<TT
 CLASS="LITERAL"
 >.</TT
@@ -2731,6 +2905,29 @@ CLASS="QUOTE"
     forwarded to another HTTP proxy but are made directly to the web servers.
    </P
 ><P
+>    <TT
+CLASS="REPLACEABLE"
+><I
+>http_parent</I
+></TT
+> can be a
+     numerical IPv6 address (if
+    <A
+HREF="http://tools.ietf.org/html/rfc3493"
+TARGET="_top"
+>RFC 3493</A
+> is
+    implemented). To prevent clashes with the port delimiter, the whole IP
+    address has to be put into brackets. On the other hand a <TT
+CLASS="REPLACEABLE"
+><I
+>target_pattern</I
+></TT
+> containing an IPv6 address
+    has to be put into angle brackets (normal brackets are reserved for
+    regular expressions already).
+   </P
+><P
 >    Multiple lines are OK, they are checked in sequence, and the last match wins.
    </P
 ></DD
@@ -2769,8 +2966,46 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->  forward   /                  caching-proxy.example-isp.net:8000
-  forward   .example-isp.net   .</PRE
+>  forward   /                  caching-proxy.isp.example.net:8000
+  forward   .isp.example.net   .</PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+><P
+>    Parent proxy specified by an IPv6 address:
+   </P
+><P
+>    <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  foward   /                   [2001:DB8::1]:8000</PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+><P
+>    Suppose your parent proxy doesn't support IPv6:
+   </P
+><P
+>    <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  forward  /                        parent-proxy.example.org:8000
+  forward  ipv6-server.example.org  .
+  forward  &#60;[2-3][0-9a-f][0-9a-f][0-9a-f]:*&#62;   .</PRE
 ></TD
 ></TR
 ></TABLE
@@ -2786,7 +3021,7 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="SOCKS"
->7.5.2. forward-socks4 and forward-socks4a</A
+>7.5.2. forward-socks4, forward-socks4a and forward-socks5</A
 ></H4
 ><A
 NAME="FORWARD-SOCKS4"
@@ -2845,30 +3080,32 @@ CLASS="REPLACEABLE"
 ><I
 >target_pattern</I
 ></TT
-> is a <A
+> is a
+    <A
 HREF="actions-file.html#AF-PATTERNS"
 >URL pattern</A
-> 
-    that specifies to which requests (i.e. URLs) this forward rule shall apply. Use <TT
+> that specifies to which
+    requests (i.e. URLs) this forward rule shall apply. Use <TT
 CLASS="LITERAL"
 >/</TT
 > to
     denote <SPAN
 CLASS="QUOTE"
 >"all URLs"</SPAN
->.
-    <TT
+>. <TT
 CLASS="REPLACEABLE"
 ><I
 >http_parent</I
 ></TT
-> and <TT
+>
+    and <TT
 CLASS="REPLACEABLE"
 ><I
 >socks_proxy</I
 ></TT
 >
-    are IP addresses in dotted decimal notation or valid DNS names (<TT
+    are IP addresses in dotted decimal notation or valid DNS names
+    (<TT
 CLASS="REPLACEABLE"
 ><I
 >http_parent</I
@@ -2886,7 +3123,8 @@ CLASS="REPLACEABLE"
 ><I
 >port</I
 ></TT
-> parameters are TCP ports, i.e. integer values from 1 to 64535
+> parameters are TCP ports,
+    i.e. integer values from 1 to 65535
    </P
 ></DD
 ><DT
@@ -2926,6 +3164,41 @@ CLASS="LITERAL"
     server, while in SOCKS 4 it happens locally.
    </P
 ><P
+>    With <TT
+CLASS="LITERAL"
+>forward-socks5</TT
+> the DNS resolution will happen on the remote server as well.
+   </P
+><P
+>    <TT
+CLASS="REPLACEABLE"
+><I
+>socks_proxy</I
+></TT
+> and
+    <TT
+CLASS="REPLACEABLE"
+><I
+>http_parent</I
+></TT
+> can be a
+     numerical IPv6 address (if
+    <A
+HREF="http://tools.ietf.org/html/rfc3493"
+TARGET="_top"
+>RFC 3493</A
+> is
+    implemented). To prevent clashes with the port delimiter, the whole IP
+    address has to be put into brackets. On the other hand a <TT
+CLASS="REPLACEABLE"
+><I
+>target_pattern</I
+></TT
+> containing an IPv6 address
+    has to be put into angle brackets (normal brackets are reserved for
+    regular expressions already).
+   </P
+><P
 >    If <TT
 CLASS="REPLACEABLE"
 ><I
@@ -2960,7 +3233,7 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->  forward-socks4a   /              socks-gw.example.com:1080  www-cache.example-isp.net:8080
+>  forward-socks4a   /              socks-gw.example.com:1080  www-cache.isp.example.net:8080
   forward           .example.com   .</PRE
 ></TD
 ></TR
@@ -2986,8 +3259,8 @@ CLASS="SCREEN"
 >
    </P
 ><P
->    To chain Privoxy and Tor, both running on the same system, you should use 
-    the rule:
+>    To chain Privoxy and Tor, both running on the same system, you would use 
+    something like:
    </P
 ><P
 >    <TABLE
@@ -2998,7 +3271,7 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->  forward-socks4   /               127.0.0.1:9050 .</PRE
+>  forward-socks5   /               127.0.0.1:9050 .</PRE
 ></TD
 ></TR
 ></TABLE
@@ -3008,8 +3281,9 @@ CLASS="SCREEN"
 >    The public <SPAN
 CLASS="APPLICATION"
 >Tor</SPAN
-> network can't be used to reach your local network,
-    therefore it's a good idea to make some exceptions:
+> network can't be used to
+    reach your local network, if you need to access local servers you
+    therefore might want to make some exceptions:
    </P
 ><P
 >    <TABLE
@@ -3031,7 +3305,12 @@ CLASS="SCREEN"
 ><P
 >    Unencrypted connections to systems in these address ranges will
     be as (un)secure as the local network is, but the alternative is that you
-    can't reach the network at all.
+    can't reach the local network through <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+    at all. Of course this may actually be desired and there is no reason
+    to make these exceptions if you aren't sure you need them.
    </P
 ><P
 >    If you also want to be able to reach servers in your local network by
@@ -3080,8 +3359,8 @@ CLASS="EMPHASIS"
 ></SPAN
 > users can see the internal content of all ISPs.</P
 ><P
-> Assume that host-a has a PPP connection to isp-a.net. And host-b has a PPP connection to
- isp-b.net. Both run <SPAN
+> Assume that host-a has a PPP connection to isp-a.example.net. And host-b has a PPP connection to
+ isp-b.example.org. Both run <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
 >. Their forwarding
@@ -3098,7 +3377,7 @@ WIDTH="100%"
 ><PRE
 CLASS="SCREEN"
 >  forward    /           .
-  forward    .isp-b.net  host-b:8118</PRE
+  forward    .isp-b.example.net  host-b:8118</PRE
 ></TD
 ></TR
 ></TABLE
@@ -3115,7 +3394,7 @@ WIDTH="100%"
 ><PRE
 CLASS="SCREEN"
 >  forward    /           .
-  forward    .isp-a.net  host-a:8118</PRE
+  forward    .isp-a.example.org  host-a:8118</PRE
 ></TD
 ></TR
 ></TABLE
@@ -3132,7 +3411,7 @@ CLASS="APPLICATION"
  <SPAN
 CLASS="APPLICATION"
 >squid</SPAN
-> locally, then chain as 
+> locally, then chaining as 
  <TT
 CLASS="LITERAL"
 >browser -&#62; squid -&#62; privoxy</TT
@@ -3186,8 +3465,9 @@ CLASS="FILENAME"
 >squid.conf</TT
 >.</P
 ><P
-> You could just as well decide to only forward requests for Windows executables through
- a virus-scanning parent proxy, say, on <TT
+> You could just as well decide to only forward requests you suspect
+ of leading to Windows executables through a virus-scanning parent proxy,
+ say, on <TT
 CLASS="LITERAL"
 >antivir.example.com</TT
 >, port 8010:</P
@@ -3284,10 +3564,14 @@ CLASS="QUOTE"
     that Privoxy forwards through other proxies. This option is not limited to the HTTP CONNECT method.
    </P
 ><P
->    Only use this option, if you are getting many forwarding related error messages,
+>    Only use this option, if you are getting lots of forwarding-related error messages
     that go away when you try again manually. Start with a small value and check Privoxy's
     logfile from time to time, to see how many retries are usually needed.
    </P
+><P
+>    Due to a bug, this option currently also causes Privoxy to
+    retry in case of certain problems with direct connections.
+   </P
 ></DD
 ><DT
 >Examples:</DT
@@ -3299,13 +3583,22 @@ CLASS="QUOTE"
 ></DL
 ></DIV
 ></DIV
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="MISC"
+>7.6. Miscellaneous</A
+></H2
 ><DIV
 CLASS="SECT3"
 ><H4
 CLASS="SECT3"
 ><A
 NAME="ACCEPT-INTERCEPTED-REQUESTS"
->7.5.5. accept-intercepted-requests</A
+>7.6.1. accept-intercepted-requests</A
 ></H4
 ><P
 ></P
@@ -3399,7 +3692,7 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="ALLOW-CGI-REQUEST-CRUNCHING"
->7.5.6. allow-cgi-request-crunching</A
+>7.6.2. allow-cgi-request-crunching</A
 ></H4
 ><P
 ></P
@@ -3482,7 +3775,7 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="SPLIT-LARGE-FORMS"
->7.5.7. split-large-forms</A
+>7.6.3. split-large-forms</A
 ></H4
 ><P
 ></P
@@ -3537,14 +3830,14 @@ CLASS="APPLICATION"
 > CGI forms can lead to
     rather long URLs. This isn't a problem as far as the HTTP
     standard is concerned, but it can confuse clients with arbitrary
-    URL lenght limitations.
+    URL length limitations.
    </P
 ><P
 >    Enabling split-large-forms causes <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
 >
-    to devide big forms into smaller ones to keep the URL length down.
+    to divide big forms into smaller ones to keep the URL length down.
     It makes editing a lot less convenient and you can no longer
     submit all changes at once, but at least it works around this
     browser bug.
@@ -3565,37 +3858,642 @@ CLASS="APPLICATION"
 ></DL
 ></DIV
 ></DIV
-></DIV
 ><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
 ><A
-NAME="WINDOWS-GUI"
->7.6. Windows GUI Options</A
-></H2
+NAME="KEEP-ALIVE-TIMEOUT"
+>7.6.4. keep-alive-timeout</A
+></H4
 ><P
-> <SPAN
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Specifies:</DT
+><DD
+><P
+>    Number of seconds after which an open connection will no longer be reused.
+   </P
+></DD
+><DT
+>Type of value:</DT
+><DD
+><P
+>    <TT
+CLASS="REPLACEABLE"
+><I
+>Time in seconds.</I
+></TT
+>
+   </P
+></DD
+><DT
+>Default value:</DT
+><DD
+><P
+>None</P
+></DD
+><DT
+>Effect if unset:</DT
+><DD
+><P
+>    Connections are not kept alive.
+   </P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+>    This option allows clients to keep the connection to <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
-> has a number of options specific to the
- Windows GUI interface:</P
-><A
-NAME="ACTIVITY-ANIMATION"
-></A
-><P
-> If <SPAN
-CLASS="QUOTE"
->"activity-animation"</SPAN
-> is set to 1, the
- <SPAN
+>
+    alive. If the server supports it, <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
-> icon will animate when
- <SPAN
-CLASS="QUOTE"
->"Privoxy"</SPAN
-> is active. To turn off, set to 0.</P
+> will keep
+    the connection to the server alive as well. Under certain
+    circumstances this may result in speed-ups.
+   </P
+><P
+>    By default, <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> will close the connection to the server if
+    the client connection gets closed, or if the specified timeout
+    has been reached without a new request coming in. This behaviour
+    can be changed with the <A
+HREF="#CONNECTION-SHARING"
+TARGET="_top"
+>connection-sharing</A
+> option.
+   </P
+><P
+>    This option has no effect if <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+    has been compiled without keep-alive support.
+   </P
+><P
+>    Note that a timeout of five seconds as used in the default
+    configuration file significantly decreases the number of
+    connections that will be reused. The value is used because
+    some browsers limit the number of connections they open to
+    a single host and apply the same limit to proxies. This can
+    result in a single website <SPAN
+CLASS="QUOTE"
+>"grabbing"</SPAN
+> all the
+    connections the browser allows, which means connections to
+    other websites can't be opened until the connections currently
+    in use time out.
+   </P
+><P
+>    Several users have reported this as a Privoxy bug, so the
+    default value has been reduced. Consider increasing it to
+    300 seconds or even more if you think your browser can handle
+    it. If your browser appears to be hanging it can't.
+   </P
+></DD
+><DT
+>Examples:</DT
+><DD
+><P
+>    keep-alive-timeout 300
+   </P
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="DEFAULT-SERVER-TIMEOUT"
+>7.6.5. default-server-timeout</A
+></H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Specifies:</DT
+><DD
+><P
+>    Assumed server-side keep-alive timeout if not specified by the server.
+   </P
+></DD
+><DT
+>Type of value:</DT
+><DD
+><P
+>    <TT
+CLASS="REPLACEABLE"
+><I
+>Time in seconds.</I
+></TT
+>
+   </P
+></DD
+><DT
+>Default value:</DT
+><DD
+><P
+>None</P
+></DD
+><DT
+>Effect if unset:</DT
+><DD
+><P
+>    Connections for which the server didn't specify the keep-alive
+    timeout are not reused.
+   </P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+>    Enabling this option significantly increases the number of connections
+    that are reused, provided the <A
+HREF="#KEEP-ALIVE-TIMEOUT"
+TARGET="_top"
+>keep-alive-timeout</A
+> option
+    is also enabled.
+   </P
+><P
+>    While it also increases the number of connections problems
+    when <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> tries to reuse a connection that already has
+    been closed on the server side, or is closed while <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+    is trying to reuse it, this should only be a problem if it
+    happens for the first request sent by the client. If it happens
+    for requests on reused client connections, <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> will simply
+    close the connection and the client is supposed to retry the
+    request without bothering the user.
+   </P
+><P
+>    Enabling this option is therefore only recommended if the
+    <A
+HREF="#CONNECTION-SHARING"
+TARGET="_top"
+>connection-sharing</A
+> option
+    is disabled.
+   </P
+><P
+>    It is an error to specify a value larger than the <A
+HREF="#KEEP-ALIVE-TIMEOUT"
+TARGET="_top"
+>keep-alive-timeout</A
+> value.
+   </P
+><P
+>    This option has no effect if <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+    has been compiled without keep-alive support.
+   </P
+></DD
+><DT
+>Examples:</DT
+><DD
+><P
+>    default-server-timeout 60
+   </P
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="CONNECTION-SHARING"
+>7.6.6. connection-sharing</A
+></H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Specifies:</DT
+><DD
+><P
+>    Whether or not outgoing connections that have been kept alive
+    should be shared between different incoming connections.
+   </P
+></DD
+><DT
+>Type of value:</DT
+><DD
+><P
+>    <TT
+CLASS="REPLACEABLE"
+><I
+>0 or 1</I
+></TT
+>
+   </P
+></DD
+><DT
+>Default value:</DT
+><DD
+><P
+>None</P
+></DD
+><DT
+>Effect if unset:</DT
+><DD
+><P
+>    Connections are not shared.
+   </P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+>    This option has no effect if <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+    has been compiled without keep-alive support, or if it's disabled.
+   </P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+>    Note that reusing connections doesn't necessary cause speedups.
+    There are also a few privacy implications you should be aware of.
+   </P
+><P
+>    If this option is effective, outgoing connections are shared between
+    clients (if there are more than one) and closing the browser that initiated
+    the outgoing connection does no longer affect the connection between <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+    and the server unless the client's request hasn't been completed yet.
+   </P
+><P
+>    If the outgoing connection  is idle, it will not be closed until either
+    <SPAN
+CLASS="APPLICATION"
+>Privoxy's</SPAN
+> or the server's timeout is reached.
+    While it's open, the server knows that the system running <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is still
+    there.
+   </P
+><P
+>    If there are more than one client (maybe even belonging to multiple users),
+    they will be able to reuse each others connections. This is potentially
+    dangerous in case of authentication schemes like NTLM where only the
+    connection is authenticated, instead of requiring authentication for
+    each request.
+   </P
+><P
+>    If there is only a single client, and if said client can keep connections
+    alive on its own, enabling this option has next to no effect. If the client
+    doesn't support connection keep-alive, enabling this option may make sense
+    as it allows <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> to keep outgoing connections alive even if the client
+    itself doesn't support it.
+   </P
+><P
+>    You should also be aware that enabling this option increases the likelihood
+    of getting the "No server or forwarder data" error message, especially if you
+    are using a slow connection to the Internet.
+   </P
+><P
+>    This option should only be used by experienced users who
+    understand the risks and can weight them against the benefits.
+   </P
+></DD
+><DT
+>Examples:</DT
+><DD
+><P
+>    connection-sharing 1
+   </P
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="SOCKET-TIMEOUT"
+>7.6.7. socket-timeout</A
+></H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Specifies:</DT
+><DD
+><P
+>    Number of seconds after which a socket times out if
+    no data is received.
+   </P
+></DD
+><DT
+>Type of value:</DT
+><DD
+><P
+>    <TT
+CLASS="REPLACEABLE"
+><I
+>Time in seconds.</I
+></TT
+>
+   </P
+></DD
+><DT
+>Default value:</DT
+><DD
+><P
+>None</P
+></DD
+><DT
+>Effect if unset:</DT
+><DD
+><P
+>    A default value of 300 seconds is used.
+   </P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+>    For SOCKS requests the timeout currently doesn't start until
+    the SOCKS server accepted the request. This will be fixed in
+    the next release.
+   </P
+></DD
+><DT
+>Examples:</DT
+><DD
+><P
+>    socket-timeout 300
+   </P
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="MAX-CLIENT-CONNECTIONS"
+>7.6.8. max-client-connections</A
+></H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Specifies:</DT
+><DD
+><P
+>    Maximum number of client connections that will be served.
+   </P
+></DD
+><DT
+>Type of value:</DT
+><DD
+><P
+>    <TT
+CLASS="REPLACEABLE"
+><I
+>Positive number.</I
+></TT
+>
+   </P
+></DD
+><DT
+>Default value:</DT
+><DD
+><P
+>None</P
+></DD
+><DT
+>Effect if unset:</DT
+><DD
+><P
+>    Connections are served until a resource limit is reached.
+   </P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+>    <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> creates one thread (or process) for every incoming client
+    connection that isn't rejected based on the access control settings.
+   </P
+><P
+>    If the system is powerful enough, <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> can theoretically deal with
+    several hundred (or thousand) connections at the same time, but some
+    operating systems enforce resource limits by shutting down offending
+    processes and their default limits may be below the ones <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> would
+    require under heavy load.
+   </P
+><P
+>    Configuring <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> to enforce a connection limit below the thread
+    or process limit used by the operating system makes sure this doesn't
+    happen. Simply increasing the operating system's limit would work too,
+    but if <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> isn't the only application running on the system,
+    you may actually want to limit the resources used by <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>.
+   </P
+><P
+>    If <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is only used by a single trusted user, limiting the
+    number of client connections is probably unnecessary. If there
+    are multiple possibly untrusted users you probably still want to
+    additionally use a packet filter to limit the maximal number of
+    incoming connections per client. Otherwise a malicious user could
+    intentionally create a high number of connections to prevent other
+    users from using <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>.
+   </P
+><P
+>    Obviously using this option only makes sense if you choose a limit
+    below the one enforced by the operating system.
+   </P
+></DD
+><DT
+>Examples:</DT
+><DD
+><P
+>    max-client-connections 256
+   </P
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="HANDLE-AS-EMPTY-DOC-RETURNS-OK"
+>7.6.9. handle-as-empty-doc-returns-ok</A
+></H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Note:</DT
+><DD
+><P
+>    This is a work-around for Firefox bug 492459:
+    <SPAN
+CLASS="QUOTE"
+>"    Websites are no longer rendered if SSL requests for JavaScripts are blocked by a proxy.
+    "</SPAN
+>
+    (<A
+HREF="https://bugzilla.mozilla.org/show_bug.cgi?id=492459"
+TARGET="_top"
+>https://bugzilla.mozilla.org/show_bug.cgi?id=492459</A
+>)
+   </P
+></DD
+><DT
+>Specifies:</DT
+><DD
+><P
+>    The status code Privoxy returns for pages blocked with
+    
+    <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#HANDLE-AS-EMPTY-DOCUMENT"
+TARGET="_top"
+>+handle-as-empty-document</A
+></TT
+>.
+   </P
+></DD
+><DT
+>Type of value:</DT
+><DD
+><P
+>    <TT
+CLASS="REPLACEABLE"
+><I
+>0 or 1</I
+></TT
+>
+   </P
+></DD
+><DT
+>Default value:</DT
+><DD
+><P
+>0</P
+></DD
+><DT
+>Effect if unset:</DT
+><DD
+><P
+>    Privoxy returns a status 403(forbidden) for all blocked pages.
+   </P
+></DD
+><DT
+>Effect if set:</DT
+><DD
+><P
+>    Privoxy returns a status 200(OK) for pages blocked with +handle-as-empty-document
+    and a status 403(Forbidden) for all other blocked pages.
+   </P
+></DD
+></DL
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="WINDOWS-GUI"
+>7.7. Windows GUI Options</A
+></H2
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> has a number of options specific to the
+ Windows GUI interface:</P
+><A
+NAME="ACTIVITY-ANIMATION"
+></A
+><P
+> If <SPAN
+CLASS="QUOTE"
+>"activity-animation"</SPAN
+> is set to 1, the
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> icon will animate when
+ <SPAN
+CLASS="QUOTE"
+>"Privoxy"</SPAN
+> is active. To turn off, set to 0.</P
 ><P
 > <TT
 CLASS="LITERAL"
@@ -3844,7 +4742,7 @@ CLASS="APPLICATION"
  <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
-> will disconnect from and hide  the
+> will disconnect from and hide the
  command console.</P
 ><P
 > <TT
@@ -3924,4 +4822,4 @@ VALIGN="top"
 ></DIV
 ></BODY
 ></HTML
->
\ No newline at end of file
+>