#94: Add a config directive to let Privoxy prefer either IPv4 (or IPv6) addresses
[privoxy.git] / doc / source / p-config.sgml
index b3f8d4b..05d311d 100644 (file)
@@ -3,7 +3,7 @@
 
  Purpose     :  Used with other docs and files only.
 
- $Id: p-config.sgml,v 2.63 2010/05/23 12:11:18 fabiankeil Exp $
+ $Id: p-config.sgml,v 2.72 2011/05/15 10:49:33 fabiankeil Exp $
 
  Copyright (C) 2001-2010 Privoxy Developers http://www.privoxy.org/
  See LICENSE.
@@ -50,8 +50,8 @@
 <title>The Main Configuration File</title>
 
 <para>
- Again, the main configuration file is named <filename>config</filename> on
Linux/Unix/BSD and OS/2, and <filename>config.txt</filename> on Windows.
+ By default, the main configuration file is named <filename>config</filename>,
with the exception of Windows, where it is named <filename>config.txt</filename>.
  Configuration lines consist of an initial keyword followed by a list of
  values, all separated by whitespace (any number of spaces or tabs). For
  example:
@@ -97,7 +97,7 @@
  Sample Configuration File for Privoxy v&p-version;
 </title>
 <para>
- $Id: p-config.sgml,v 2.63 2010/05/23 12:11:18 fabiankeil Exp $
+ $Id: p-config.sgml,v 2.72 2011/05/15 10:49:33 fabiankeil Exp $
 </para>
 <para>
 Copyright (C) 2001-2010 Privoxy Developers http://www.privoxy.org/
@@ -1009,7 +1009,7 @@ actionsfile
   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    16 # log all data written to the network
   debug    32 # debug force feature
   debug    64 # debug regular expression filters
   debug   128 # debug redirects
@@ -1019,7 +1019,7 @@ actionsfile
   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 into the logfile
+  debug 32768 # log all data read from the network
 </programlisting>
    </para>
    <para>
@@ -1194,7 +1194,7 @@ actionsfile
   <term>Specifies:</term>
   <listitem>
    <para>
-    The IP address and TCP port on which <application>Privoxy</application> will
+    The address and TCP port on which <application>Privoxy</application> will
     listen for client requests.
    </para>
   </listitem>
@@ -1203,6 +1203,7 @@ actionsfile
   <term>Type of value:</term>
   <listitem>
    <para>[<replaceable class="parameter">IP-Address</replaceable>]:<replaceable class="parameter">Port</replaceable></para>
+   <para>[<replaceable class="parameter">Hostname</replaceable>]:<replaceable class="parameter">Port</replaceable></para>
   </listitem>
  </varlistentry>
 
@@ -1233,15 +1234,49 @@ actionsfile
     serve requests from other machines (e.g. on your local network) as well, you
     will need to override the default.
    </para>
+   <para>
+    If a hostname is used instead of an IP address, <application>Privoxy</application>
+    will try to resolve it to an IP address and if there are multiple, use the first
+    one returned.
+   </para>
+   <para>
+    If the address for the hostname isn't already known on the system
+    (for example because it's in /etc/hostname), this may result in DNS
+    traffic.
+   </para>
+   <para>
+    If the specified address isn't available on the system, or if the
+    hostname can't be resolved, <application>Privoxy</application>
+    will fail to start.
+   </para>
    <para>
     IPv6 addresses containing colons have to be quoted by brackets.
+    They can only be used if <application>Privoxy</application> has
+    been compiled with IPv6 support. If you aren't sure if your version
+    supports it, have a look at
+    <literal>http://config.privoxy.org/show-status</literal>.
    </para>
    <para>
-    If you leave out the IP address, <application>Privoxy</application> will
-    bind to all IPv4 interfaces (addresses) on your machine and may become reachable
-    from the Internet. In that case, consider using <link
-    linkend="acls">access control lists</link> (ACL's, see below), and/or
-    a firewall.
+    Some operating systems will prefer IPv6 to IPv4 addresses even if the
+    system has no IPv6 connectivity which is usually not expected by the user.
+    Some even rely on DNS to resolve localhost which mean the "localhost" address
+    used may not actually be local.
+   </para>
+   <para>
+    It is therefore recommended to explicitly configure the intended IP address
+    instead of relying on the operating system, unless there's a strong reason not to.
+   </para>
+   <para>
+    If you leave out the address, <application>Privoxy</application> will bind to all
+    IPv4 interfaces (addresses) on your machine and may become reachable from the
+    Internet and/or the local network. Be aware that some GNU/Linux distributions
+    modify that behaviour without updating the documentation. Check for non-standard
+    patches if your <application>Privoxy</application>version behaves differently.
+   </para>
+   <para>
+    If you configure <application>Privoxy</application>to be reachable from the
+    network, consider using <link linkend="acls">access control lists</link>
+    (ACL's, see below), and/or a firewall.
    </para>
    <para>
     If you open <application>Privoxy</application> to untrusted users, you will
@@ -1249,6 +1284,12 @@ actionsfile
     linkend="enable-edit-actions">enable-edit-actions</link></literal> and
     <literal><link linkend="enable-remote-toggle">enable-remote-toggle</link></literal>
    </para>
+   <para>
+    With the exception noted above, listening on multiple addresses is currently
+    not supported by <application>Privoxy</application> directly.
+    It can be done on most operating systems by letting a packet filter
+    redirect request for certain addresses to Privoxy, though.
+   </para>
   </listitem>
  </varlistentry>
  <varlistentry>
@@ -1711,8 +1752,8 @@ ACLs: permit-access and deny-access</title>
     IP addresses, only the first one is used.
    </para>
    <para>
-     Some systems allows IPv4 client to connect to IPv6 server socket.
-     Then the client's IPv4 address will be translated by system into
+     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). <application>Privoxy</application> can handle it
      and maps such ACL addresses automatically.
@@ -1965,7 +2006,7 @@ ACLs: permit-access and deny-access</title>
    </para>
    <para>
     <programlisting>
-  foward   /                   [2001:DB8::1]:8000
+  forward   /                   [2001:DB8::1]:8000
 </programlisting>
    </para>
    <para>
@@ -2278,10 +2319,6 @@ forward-socks4, forward-socks4a and forward-socks5</title>
     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.
    </para>
-   <para>
-    Due to a bug, this option currently also causes Privoxy to
-    retry in case of certain problems with direct connections.
-   </para>
   </listitem>
  </varlistentry>
  <varlistentry>
@@ -2790,9 +2827,9 @@ forward-socks4, forward-socks4a and forward-socks5</title>
   <term>Notes:</term>
   <listitem>
    <para>
-    For SOCKS requests the timeout currently doesn't start until
-    the SOCKS server accepted the request. This will be fixed in
-    the next release.
+    The default is quite high and you probably want to reduce it.
+    If you aren't using an occasionally slow proxy like Tor, reducing
+    it to a few seconds should be fine.
    </para>
   </listitem>
  </varlistentry>
@@ -2892,19 +2929,6 @@ forward-socks4, forward-socks4a and forward-socks5</title>
 
 <sect3 renderas="sect4" id="handle-as-empty-doc-returns-ok"><title>handle-as-empty-doc-returns-ok</title>
 <variablelist>
- <varlistentry>
-  <term>Note:</term>
-  <listitem>
-   <para>
-    This is a work-around for Firefox bug 492459:
-    <quote>
-    Websites are no longer rendered if SSL requests for JavaScripts are blocked by a proxy.
-    </quote>
-    (<ulink url="https://bugzilla.mozilla.org/show_bug.cgi?id=492459"
-       >https://bugzilla.mozilla.org/show_bug.cgi?id=492459</ulink>)
-   </para>
-  </listitem>
- </varlistentry>
  <varlistentry>
   <term>Specifies:</term>
   <listitem>
@@ -2946,8 +2970,24 @@ forward-socks4, forward-socks4a and forward-socks5</title>
    </para>
   </listitem>
  </varlistentry>
+ <varlistentry>
+  <term>Notes:</term>
+  <listitem>
+   <para>
+    This is a work-around for Firefox bug 492459:
+    <quote>
+    Websites are no longer rendered if SSL requests for JavaScripts are blocked by a proxy.
+    </quote>
+    (<ulink url="https://bugzilla.mozilla.org/show_bug.cgi?id=492459"
+       >https://bugzilla.mozilla.org/show_bug.cgi?id=492459</ulink>)
+    As the bug has been fixed for quite some time this option should no longer
+    be needed and will be removed in a future release. Please speak up if you
+    have a reason why the option should be kept around.
+   </para>
+  </listitem>
+ </varlistentry>
 </variablelist>
-<![%config-file;[<literallayout>@@handle-as-empty-doc-returns-ok 1</literallayout>]]>
+<![%config-file;[<literallayout>@@#handle-as-empty-doc-returns-ok 1</literallayout>]]>
 </sect3>