69efcb61756ac10743a3d96fc37841fbd5665c7d
[privoxy.git] / doc / source / p-config.sgml
1 <!--
2  File        :  $Source: /cvsroot/ijbswa/current/doc/source/p-config.sgml,v $
3
4  Purpose     :  Used with other docs and files only.
5
6  $Id: p-config.sgml,v 2.11 2006/09/08 02:36:37 hal9 Exp $
7
8  Copyright (C) 2001-2006 Privoxy Developers http://privoxy.org
9  See LICENSE.
10
11  ========================================================================
12  NOTE: Please read developer-manual/documentation.html before touching 
13  anything in this, or other Privoxy documentation.
14  ========================================================================
15
16  
17  This file contains all the config file comments and options. It used to 
18  build both the user-manual config sections, and all of config (yes, the main
19  config file) itself.
20
21  Rationale: This is broken up into two files since a file with a prolog 
22  (DTD, etc) cannot be sourced as a secondary file. config.sgml is basically
23  a wrapper for this file.
24
25  IMPORTANT:
26
27  OPTIONS: The actual options are included in this file and prefixed with 
28  '@@', and processed by the Makefile to strip the '@@'. Default options 
29  that should appear commented out should be listed as: '@@#OPTION'. 
30  Otherwise, as '@@OPTION'. Example:
31
32   @@listen-address  127.0.0.1:8118
33
34  The Makefile does significant other processing too. The final results 
35  should be checked to make sure that the perl processing does not 
36  fubar something!!! Makefile processing requires w3m, fmt (shell line
37  formatter), and perl.
38  
39
40  This file is included into:
41
42    user-manual.sgml
43    config   (the actual Privoxy config file)
44
45 -->
46
47 <![%user-man;[
48 <!-- This part only goes into user-manual -->
49 <sect1 id="config">
50 <title>The Main Configuration File</title>
51
52 <para>
53  Again, the main configuration file is named <filename>config</filename> on
54  Linux/Unix/BSD and OS/2, and <filename>config.txt</filename> on Windows.
55  Configuration lines consist of an initial keyword followed by a list of
56  values, all separated by whitespace (any number of spaces or tabs). For
57  example:
58 </para>
59
60 <para>
61  <literal>
62   <msgtext> 
63    <literallayout>
64   <emphasis>confdir /etc/privoxy</emphasis></literallayout>
65   </msgtext>
66  </literal> 
67 </para>
68
69 <para>
70  Assigns the value <literal>/etc/privoxy</literal> to the option
71  <literal>confdir</literal> and thus indicates that the configuration
72  directory is named <quote>/etc/privoxy/</quote>.
73 </para>
74
75 <para>
76  All options in the config file except for <literal>confdir</literal> and
77  <literal>logdir</literal> are optional. Watch out in the below description
78  for what happens if you leave them unset.
79 </para>
80
81 <para>
82  The main config file controls all aspects of <application>Privoxy</application>'s
83  operation that are not location dependent (i.e. they apply universally, no matter
84  where you may be surfing).
85 </para>
86
87 ]]>
88
89
90 <![%config-file;[
91 <!-- This part only goes into the config file -->
92 <sect1 id="config">
93 <title>
94  @@TITLE<!-- between the @@ is stripped by Makefile -->@@
95  Sample Configuration File for Privoxy v&p-version;
96 </title>
97 <para>
98  $Id: p-config.sgml,v 2.11 2006/09/08 02:36:37 hal9 Exp $
99 </para>
100 <para>
101 Copyright (C) 2001-2006 Privoxy Developers http://privoxy.org
102 </para>
103
104 <para>
105  <literallayout>
106 #################################################################
107                                                                 #
108                     Table of Contents                           #
109                                                                 #
110       I. INTRODUCTION                                           #
111      II. FORMAT OF THE CONFIGURATION FILE                       #
112                                                                 #
113       1. LOCAL SET-UP DOCUMENTATION                             #
114       2. CONFIGURATION AND LOG FILE LOCATIONS                   #
115       3. DEBUGGING                                              #
116       4. ACCESS CONTROL AND SECURITY                            #
117       5. FORWARDING                                             #
118       6. WINDOWS GUI OPTIONS                                    #
119                                                                 #
120 #################################################################
121  </literallayout>
122 </para>
123
124 <literallayout>I. INTRODUCTION
125  ===============  <!-- fuck this madness --></literallayout>
126
127 <para>
128  This file holds the Privoxy configuration.  If you modify this
129  file, you will need to send a couple of requests (of any kind) to the proxy
130  before any changes take effect.
131 </para>
132 <para>
133  When starting Privoxy on Unix systems, give the name of this
134  file as an argument.  On Windows systems, Privoxy will look for
135  this file with the name 'config.txt' in the same directory where
136  Privoxy is installed.
137 </para>
138
139 <para>
140  <literallayout><!-- funky spacing -->
141
142 II. FORMAT OF THE CONFIGURATION FILE
143 ====================================</literallayout>
144 </para>
145 <para>
146  Configuration lines consist of an initial keyword followed by a list
147  of values, all separated by whitespace (any number of spaces or
148  tabs).  For example,
149 </para>
150 <para>
151  actionsfile default.action
152 </para>
153 <para>
154  Indicates that the actionsfile is named 'default.action'.
155 </para>
156 <para>
157  The '#' indicates a comment.  Any part of a line following a '#' is
158  ignored, except if the '#' is preceded by a '\'.
159 </para>
160 <para>
161  Thus, by placing a # at the start of an existing configuration line,
162  you can make it a comment and it will be treated as if it weren't there. 
163  This is called "commenting out" an option and can be useful.
164 </para>
165 <para>
166  Note that commenting out and option and leaving it at its default
167  are two completely different things! Most options behave very
168  differently when unset. See the the "Effect if unset" explanation
169  in each option's description for details.
170 </para>
171 <para>
172  Long lines can be continued on the next line by using a `\' as
173  the last character.
174 </para>
175
176 ]]>
177
178 <!-- ************************************************ -->
179 <!-- The following is common to both outputs (mostly) -->
180 <!-- ************************************************ -->
181
182
183
184 <!--   ~~~~~       New section      ~~~~~     -->
185 <sect2 id="local-set-up">
186 <title>Local Set-up Documentation</title>
187
188   <para>
189     If you intend to operate <application>Privoxy</application> for more users
190     than just yourself, it might be a good idea to let them know how to reach
191     you, what you block and why you do that, your policies, etc.
192    </para>
193
194
195 <!--   ~~~~~       New section      ~~~~~     -->
196 <sect3 renderas="sect4" id="user-manual"><title>user-manual</title>
197 <variablelist>
198  <varlistentry>
199   <term>Specifies:</term>
200   <listitem>
201    <para>
202     Location of the <application>Privoxy</application> User Manual.
203    </para>
204   </listitem>
205  </varlistentry>
206  <varlistentry>
207   <term>Type of value:</term>
208   <listitem>
209    <para>A fully qualified URI</para>
210   </listitem>
211  </varlistentry>
212  <varlistentry>
213   <term>Default value:</term>
214   <listitem>
215    <para><emphasis>Unset</emphasis></para>
216   </listitem>
217  </varlistentry>
218  <varlistentry>
219   <term>Effect if unset:</term>
220   <listitem>
221    <para>
222     <ulink url="http://www.privoxy.org/user-manual/">http://www.privoxy.org/<replaceable class="parameter">version</replaceable>/user-manual/</ulink>
223     will be used, where <replaceable class="parameter">version</replaceable> is the <application>Privoxy</application> version.
224    </para>
225   </listitem>
226  </varlistentry>
227  <varlistentry>
228   <term>Notes:</term>
229   <listitem>
230     <para>
231     The User Manual URI is the single best source of information on 
232     <application>Privoxy</application>, and is used for help links from some
233     of the internal CGI pages. The manual itself is normally packaged with the
234     binary distributions, so you probably want to set this to a locally
235     installed copy. 
236    </para>
237    <para>
238     Examples:
239    </para>
240   <!--
241   <para>
242    Unix, in local filesystem (may not work with all browsers):
243   </para>
244   <para>
245    <screen>&nbsp;&nbsp;user-manual&nbsp;&nbsp;file:///usr/share/doc/privoxy-&p-version;/user-manual/</screen>
246   </para>
247   <para>
248    Windows, in local filesystem, <emphasis>must</emphasis> use forward slash notation:
249   </para>
250   <para>
251    <screen>&nbsp;&nbsp;user-manual&nbsp;&nbsp;file:/c:/some-dir/privoxy-&p-version;/user-manual/</screen>
252   </para>
253   <para>
254    Windows, UNC notation (with forward slashes):
255   </para>
256   <para>
257    <screen>&nbsp;&nbsp;user-manual&nbsp;&nbsp;file://///some-server/some-path/privoxy-&p-version;/user-manual/</screen>
258   </para>
259  --> 
260   <para>
261    The best all purpose solution is simply to put the full local
262    <literal>PATH</literal> to where the <citetitle>User Manual</citetitle> is
263    located:
264   </para>
265 <para>
266    <screen>&nbsp;&nbsp;user-manual&nbsp;&nbsp;/usr/share/doc/privoxy/user-manual</screen>
267   </para>
268   <para>
269    The User Manual is then available to anyone with access to the proxy, by 
270    following the built-in URL: <literal>http://config.privoxy.org/user-manual/</literal>
271    (or the shortcut: <literal>http://p.p/user-manual/</literal>).
272   </para>
273   <para>
274    If the documentation is not on the local system, it can be accessed 
275    from a remote server, as:
276   </para>
277   <para>
278    <screen>&nbsp;&nbsp;user-manual&nbsp;&nbsp;http://example.com/privoxy/user-manual/</screen>
279   </para>
280   <![%user-man;[
281    <!-- this gets hammered in conversion to config. Text repeated below. -->
282   <warning>
283    <para>
284      If set, this option should be <emphasis>the first option in the config
285      file</emphasis>, because it is used while the config file is being read
286      on start-up.
287    </para>
288   </warning>     
289   ]]>
290
291   <![%config-file;[
292    <!-- alternate -->
293    <para>
294     WARNING!!!
295    </para>
296    <blockquote>
297     <para> 
298      If set, this option should be the first option in the config
299      file, because it is used while the config file is being read.
300     </para>
301    </blockquote>
302   ]]>
303
304  </listitem>
305  </varlistentry>
306 </variablelist>
307
308 <![%config-file;[<literallayout>@@#user-manual http://www.privoxy.org/user-manual/</literallayout>]]>
309 </sect3>
310
311
312 <!--   ~~~~~       New section      ~~~~~     -->
313 <sect3 renderas="sect4" id="trust-info-url"><title>trust-info-url</title>
314
315 <variablelist>
316  <varlistentry>
317   <term>Specifies:</term>
318   <listitem>
319    <para>
320     A URL to be displayed in the error page that users will see if access to an untrusted page is denied.    
321    </para>
322   </listitem>
323  </varlistentry>
324  <varlistentry>
325   <term>Type of value:</term>
326   <listitem>
327    <para>URL</para>
328   </listitem>
329  </varlistentry>
330  <varlistentry>
331   <term>Default value:</term>
332   <listitem>
333    <para>Two example URL are provided</para>
334   </listitem>
335  </varlistentry>
336  <varlistentry>
337   <term>Effect if unset:</term>
338   <listitem>
339    <para>
340     No links are displayed on the "untrusted" error page.
341    </para>
342   </listitem>
343  </varlistentry>
344  <varlistentry>
345   <term>Notes:</term>
346   <listitem>
347    <para>
348     The value of this option only matters if the experimental trust mechanism has been
349     activated. (See <link linkend="trustfile"><emphasis>trustfile</emphasis></link> above.)
350    </para>
351    <para>
352     If you use the trust mechanism, it is a good idea to write up some on-line
353     documentation about your trust policy and to specify the URL(s) here.
354     Use multiple times for multiple URLs.
355    </para>
356    <para>
357     The URL(s) should be added to the trustfile as well, so users don't end up
358     locked out from the information on why they were locked out in the first place!
359    </para>
360   </listitem>
361  </varlistentry>
362 </variablelist>
363
364 <![%config-file;[<literallayout>@@trust-info-url  http://www.example.com/why_we_block.html</literallayout>]]>
365 <![%config-file;[<literallayout>@@trust-info-url  http://www.example.com/what_we_allow.html</literallayout>]]>
366 </sect3>
367
368
369 <!--   ~~~~~       New section      ~~~~~     -->
370 <sect3 renderas="sect4" id="admin-address"><title>admin-address</title>
371
372 <variablelist>
373  <varlistentry>
374   <term>Specifies:</term>
375   <listitem>
376    <para>
377     An email address to reach the proxy administrator.
378    </para>
379   </listitem>
380  </varlistentry>
381  <varlistentry>
382   <term>Type of value:</term>
383   <listitem>
384    <para>Email address</para>
385   </listitem>
386  </varlistentry>
387  <varlistentry>
388   <term>Default value:</term>
389   <listitem>
390    <para><emphasis>Unset</emphasis></para>
391   </listitem>
392  </varlistentry>
393  <varlistentry>
394   <term>Effect if unset:</term>
395   <listitem>
396    <para>
397     No email address is displayed on error pages and the CGI user interface.
398    </para>
399   </listitem>
400  </varlistentry>
401  <varlistentry>
402   <term>Notes:</term>
403   <listitem>
404     <para>
405     If both <literal>admin-address</literal> and <literal>proxy-info-url</literal>
406     are unset, the whole "Local Privoxy Support" box on all generated pages will
407     not be shown.
408    </para>  
409   </listitem>
410  </varlistentry>
411 </variablelist>
412
413 <![%config-file;[<literallayout>@@#admin-address privoxy-admin@example.com</literallayout>]]>
414 </sect3>
415
416
417 <!--   ~~~~~       New section      ~~~~~     -->
418 <sect3 renderas="sect4" id="proxy-info-url"><title>proxy-info-url</title>
419
420 <variablelist>
421  <varlistentry>
422   <term>Specifies:</term>
423   <listitem>
424    <para>
425     A URL to documentation about the local <application>Privoxy</application> setup,
426     configuration or policies.
427    </para>
428   </listitem>
429  </varlistentry>
430  <varlistentry>
431   <term>Type of value:</term>
432   <listitem>
433    <para>URL</para>
434   </listitem>
435  </varlistentry>
436  <varlistentry>
437   <term>Default value:</term>
438   <listitem>
439    <para><emphasis>Unset</emphasis></para>
440   </listitem>
441  </varlistentry>
442  <varlistentry>
443   <term>Effect if unset:</term>
444   <listitem>
445    <para>
446     No link to local documentation is displayed on error pages and the CGI user interface.
447    </para>
448   </listitem>
449  </varlistentry>
450  <varlistentry>
451   <term>Notes:</term>
452   <listitem>
453    <para>
454     If both <literal>admin-address</literal> and <literal>proxy-info-url</literal>
455     are unset, the whole "Local Privoxy Support" box on all generated pages will
456     not be shown.
457    </para>  
458    <para>
459     This URL shouldn't be blocked ;-)
460    </para> 
461   </listitem>
462  </varlistentry>
463 </variablelist>
464
465 <![%config-file;[<literallayout>@@#proxy-info-url http://www.example.com/proxy-service.html</literallayout>]]>
466 </sect3>
467
468 </sect2>
469 <!--  ~  End section  ~  -->
470
471
472
473 <!--   ~~~~~       New section      ~~~~~     -->
474
475 <sect2 id="conf-log-loc">
476 <title>Configuration and Log File Locations</title>
477
478 <para>
479  <application>Privoxy</application> can (and normally does) use a number of
480  other files for additional configuration, help and logging.
481  This section of the configuration file tells <application>Privoxy</application>
482  where to find those other files. 
483 </para>
484
485 <para>
486  The user running <application>Privoxy</application>, must have read
487  permission for all configuration files, and write permission to any files
488  that would be modified, such as log files and actions files.
489 </para>
490
491
492 <!--   ~~~~~       New section      ~~~~~     -->
493 <sect3 renderas="sect4" id="confdir"><title>confdir</title>
494
495 <variablelist>
496  <varlistentry>
497   <term>Specifies:</term>
498   <listitem>
499    <para>The directory where the other configuration files are located</para>
500   </listitem>
501  </varlistentry>
502  <varlistentry>
503   <term>Type of value:</term>
504   <listitem>
505    <para>Path name</para>
506   </listitem>
507  </varlistentry>
508  <varlistentry>
509   <term>Default value:</term>
510   <listitem>
511    <para>/etc/privoxy (Unix) <emphasis>or</emphasis> <application>Privoxy</application> installation dir (Windows) </para>
512   </listitem>
513  </varlistentry>
514  <varlistentry>
515   <term>Effect if unset:</term>
516   <listitem>
517    <para><emphasis>Mandatory</emphasis></para>
518   </listitem>
519  </varlistentry>
520  <varlistentry>
521   <term>Notes:</term>
522   <listitem>
523    <para>
524     No trailing <quote><literal>/</literal></quote>, please
525    </para>
526   <!-- 
527    This is really outdated and not likely to happen. HB 09/20/06
528    <para>
529     When development goes modular and multi-user, the blocker, filter, and
530     per-user config will be stored in subdirectories of <quote>confdir</quote>.
531     For now, the configuration directory structure is flat, except for 
532     <filename>confdir/templates</filename>, where the HTML templates for CGI 
533     output reside (e.g. <application>Privoxy's</application> 404 error page). 
534    </para>
535   --> 
536   </listitem>
537  </varlistentry>
538 </variablelist>
539
540 <![%config-file;[<literallayout>@@confdir .</literallayout>]]>
541 </sect3>
542
543
544 <!--   ~~~~~       New section      ~~~~~     -->
545 <sect3 renderas="sect4" id="logdir"><title>logdir</title>
546
547 <variablelist>
548  <varlistentry>
549   <term>Specifies:</term>
550   <listitem>
551    <para>
552     The directory where all logging takes place (i.e. where <filename>logfile</filename> and 
553     <filename>jarfile</filename> are located) 
554    </para>
555   </listitem>
556  </varlistentry>
557  <varlistentry>
558   <term>Type of value:</term>
559   <listitem>
560    <para>Path name</para>
561   </listitem>
562  </varlistentry>
563  <varlistentry>
564   <term>Default value:</term>
565   <listitem>
566    <para>/var/log/privoxy (Unix) <emphasis>or</emphasis> <application>Privoxy</application> installation dir (Windows) </para>
567   </listitem>
568  </varlistentry>
569  <varlistentry>
570   <term>Effect if unset:</term>
571   <listitem>
572    <para><emphasis>Mandatory</emphasis></para>
573   </listitem>
574  </varlistentry>
575  <varlistentry>
576   <term>Notes:</term>
577   <listitem>
578    <para>
579     No trailing <quote><literal>/</literal></quote>, please
580    </para>
581   </listitem>
582  </varlistentry>
583 </variablelist>
584
585 <![%config-file;[<literallayout>@@logdir .</literallayout>]]>
586 </sect3>
587
588
589 <!--   ~~~~~       New section      ~~~~~     -->
590 <sect3 renderas="sect4" id="actionsfile"><title>
591 actionsfile
592 </title>
593 <anchor id="default.action">
594 <anchor id="standard.action">
595 <anchor id="user.action">
596 <!-- Note: slightly modified this section 04/28/02, hal. See NOTE. -->
597 <variablelist>
598  <varlistentry>
599   <term>Specifies:</term>
600   <listitem>
601    <para>
602     The <link linkend="actions-file">actions file(s)</link> to use
603    </para>
604   </listitem>
605  </varlistentry>
606  <varlistentry>
607   <term>Type of value:</term>
608   <listitem>
609    <para>File name, relative to <literal>confdir</literal>, without the <literal>.action</literal> suffix</para>
610   </listitem>
611  </varlistentry>
612  <varlistentry>
613   <term>Default values:</term>
614   <listitem>
615    <simplelist>
616     <member>
617      <msgtext><literallayout>  standard     # Internal purposes, no editing recommended</literallayout></msgtext>
618     </member>
619     <member>
620      <msgtext><literallayout>  default      # Main actions file</literallayout></msgtext>
621     </member>
622     <member>
623      <msgtext><literallayout>  user         # User customizations</literallayout></msgtext>
624     </member>
625    </simplelist>
626   </listitem>
627  </varlistentry>
628  <varlistentry>
629   <term>Effect if unset:</term>
630   <listitem>
631    <para>
632     No actions are taken at all. Simple neutral proxying. 
633    </para>
634   </listitem>
635  </varlistentry>
636  <varlistentry>
637   <term>Notes:</term>
638   <listitem>
639    <para>
640     Multiple <literal>actionsfile</literal> lines are permitted, and are in fact recommended!
641    </para>
642    <para> 
643     The default values include standard.action, which is used for internal
644     purposes and should be loaded, default.action, which is the
645     <quote>main</quote> actions file maintained by the developers, and
646     <filename>user.action</filename>, where you can make your personal additions.
647    </para>
648    <para> 
649     Actions files are where all the per site and per URL configuration is done for 
650     ad blocking, cookie management, privacy considerations, etc.
651     There is no point in using <application>Privoxy</application> without at 
652     least one actions file.
653    </para>
654   </listitem>
655  </varlistentry>
656 </variablelist>
657
658 <!-- NOTE: alternate markup to make a simpler list doesn't work due to -->
659 <!-- html -> text conversion, blah -->
660 <![%config-file;[<literallayout>@@actionsfile standard  # Internal purpose, recommended</literallayout>]]>
661 <![%config-file;[<literallayout>@@actionsfile default   # Main actions file</literallayout>]]>
662 <![%config-file;[<literallayout>@@actionsfile user      # User customizations</literallayout>]]>
663 </sect3>
664
665 <!--   ~~~~~       New section      ~~~~~     -->
666 <sect3 renderas="sect4" id="filterfile"><title>filterfile</title>
667 <anchor id="default.filter">
668 <variablelist>
669  <varlistentry>
670   <term>Specifies:</term>
671   <listitem>
672    <para>
673     The <link linkend="filter-file">filter file(s)</link> to use
674    </para>
675   </listitem>
676  </varlistentry>
677  <varlistentry>
678   <term>Type of value:</term>
679   <listitem>
680    <para>File name, relative to <literal>confdir</literal></para>
681   </listitem>
682  </varlistentry>
683  <varlistentry>
684   <term>Default value:</term>
685   <listitem>
686    <para>default.filter (Unix) <emphasis>or</emphasis> default.filter.txt (Windows)</para>
687   </listitem>
688  </varlistentry>
689  <varlistentry>
690   <term>Effect if unset:</term>
691   <listitem>
692    <para>
693     No textual content filtering takes place, i.e. all
694     <literal>+<link linkend="filter">filter</link>{<replaceable class="parameter">name</replaceable>}</literal>
695     actions in the actions files are turned neutral.
696    </para>
697   </listitem>
698  </varlistentry>
699  <varlistentry>
700   <term>Notes:</term>
701   <listitem>
702    <para>
703     Multiple <literal>filterfile</literal> lines are permitted.
704    </para>
705    <para>
706     The <link linkend="filter-file">filter files</link> contain content modification
707     rules that use <link linkend="regex">regular expressions</link>. These rules permit
708     powerful changes on the content of Web pages, and optionally the headers
709     as well, e.g., you could disable your favorite JavaScript annoyances,
710     re-write the actual displayed text, or just have some fun 
711     playing buzzword bingo with web pages.
712    </para>
713    <para>
714     The
715     <literal>+<link linkend="filter">filter</link>{<replaceable class="parameter">name</replaceable>}</literal>
716     actions rely on the relevant filter (<replaceable class="parameter">name</replaceable>)
717     to be defined in a filter file!
718    </para>
719    <para>
720     A pre-defined filter file called <filename>default.filter</filename> that contains
721     a number of useful filters for common problems is included in the distribution.
722     See the section on the <literal><link linkend="filter">filter</link></literal>
723     action for a list.
724    </para>
725    <para>
726     It is recommended to place any locally adapted filters into a separate
727     file, such as <filename>user.filter</filename>.
728    </para>
729   </listitem>
730  </varlistentry>
731 </variablelist>
732
733 <![%config-file;[<literallayout>@@filterfile default.filter</literallayout>]]>
734 <![%config-file;[<literallayout>@@#filterfile user.filter      # User customizations</literallayout>]]>
735 </sect3>
736
737
738 <!--   ~~~~~       New section      ~~~~~     -->
739 <sect3 renderas="sect4" id="logfile"><title>logfile</title>
740
741 <variablelist>
742  <varlistentry>
743   <term>Specifies:</term>
744   <listitem>
745    <para>
746     The log file to use
747    </para>
748   </listitem>
749  </varlistentry>
750  <varlistentry>
751   <term>Type of value:</term>
752   <listitem>
753    <para>File name, relative to <literal>logdir</literal></para>
754   </listitem>
755  </varlistentry>
756  <varlistentry>
757   <term>Default value:</term>
758   <listitem>
759    <para>logfile (Unix) <emphasis>or</emphasis> privoxy.log (Windows)</para>
760   </listitem>
761  </varlistentry>
762  <varlistentry>
763   <term>Effect if unset:</term>
764   <listitem>
765    <para>
766     No log file is used, all log messages go to the console (<literal>STDERR</literal>).
767    </para>
768   </listitem>
769  </varlistentry>
770  <varlistentry>
771   <term>Notes:</term>
772   <listitem>
773  <!--
774   removed per bug report 688728 02/20/03 HB
775   
776    <para>
777     The windows version will additionally log to the console.
778    </para>
779   --> 
780    <para>
781     The logfile is where all logging and error messages are written. The level
782     of detail and number of messages are set with the <literal>debug</literal>
783     option (see below). The logfile can be useful for tracking down a problem with
784     <application>Privoxy</application> (e.g., it's not blocking an ad you
785     think it should block) but in most cases you probably will never look at it.
786    </para>
787    <para>
788     Your logfile will grow indefinitely, and you will probably want to
789     periodically remove it.  On Unix systems, you can do this with a cron job
790     (see <quote>man cron</quote>). For Red Hat, a <command>logrotate</command> 
791     script has been included.
792    </para> 
793    <para>
794     On SuSE Linux systems, you can place a line like <quote>/var/log/privoxy.*
795     +1024k 644 nobody.nogroup</quote> in <filename>/etc/logfiles</filename>, with
796     the effect that cron.daily will automatically archive, gzip, and empty the
797     log, when it exceeds 1M size.
798    </para>
799    <para>
800     Any log files must be writable by whatever user <application>Privoxy</application>
801     is being run as (default on UNIX, user id is <quote>privoxy</quote>).
802    </para>
803   </listitem>
804  </varlistentry>
805 </variablelist>
806
807 <![%config-file;[<literallayout>@@logfile logfile</literallayout>]]>
808 </sect3>
809
810
811 <!--   ~~~~~       New section      ~~~~~     -->
812 <sect3 renderas="sect4" id="jarfile"><title>jarfile</title>
813
814 <variablelist>
815  <varlistentry>
816   <term>Specifies:</term>
817   <listitem>
818    <para>
819     The file to store intercepted cookies in
820    </para>
821   </listitem>
822  </varlistentry>
823  <varlistentry>
824   <term>Type of value:</term>
825   <listitem>
826    <para>File name, relative to <literal>logdir</literal></para>
827   </listitem>
828  </varlistentry>
829  <varlistentry>
830   <term>Default value:</term>
831   <listitem>
832    <para>Unset (commented out). When activated: jarfile (Unix) <emphasis>or</emphasis> privoxy.jar (Windows)</para>
833   </listitem>
834  </varlistentry>
835  <varlistentry>
836   <term>Effect if unset:</term>
837   <listitem>
838    <para>
839     Intercepted cookies are not stored in a dedicated log file.
840    </para>
841   </listitem>
842  </varlistentry>
843  <varlistentry>
844   <term>Notes:</term>
845   <listitem>
846    <para>
847     The jarfile may grow to ridiculous sizes over time.
848    </para>
849    <para>
850     If debug 8 (show header parsing) is enabled, cookies are
851     written to the logfile with the rest of the headers.
852    </para>
853   </listitem>
854  </varlistentry>
855 </variablelist>
856
857 <![%config-file;[<literallayout>@@#jarfile jarfile</literallayout>]]>
858 </sect3>
859
860
861 <!--   ~~~~~       New section      ~~~~~     -->
862 <sect3 renderas="sect4" id="trustfile"><title>trustfile</title>
863 <variablelist>
864  <varlistentry>
865   <term>Specifies:</term>
866   <listitem>
867    <para>
868     The name of the trust file to use
869    </para>
870   </listitem>
871  </varlistentry>
872  <varlistentry>
873   <term>Type of value:</term>
874   <listitem>
875    <para>File name, relative to <literal>confdir</literal></para>
876   </listitem>
877  </varlistentry>
878  <varlistentry>
879   <term>Default value:</term>
880   <listitem>
881    <para><emphasis>Unset (commented out)</emphasis>. When activated: trust (Unix) <emphasis>or</emphasis> trust.txt (Windows)</para>
882   </listitem>
883  </varlistentry>
884  <varlistentry>
885   <term>Effect if unset:</term>
886   <listitem>
887    <para>
888     The entire trust mechanism is disabled.
889    </para>
890   </listitem>
891  </varlistentry>
892  <varlistentry>
893   <term>Notes:</term>
894   <listitem>
895    <para>
896     The trust mechanism is an experimental feature for building white-lists and should
897     be used with care. It is <emphasis>NOT</emphasis> recommended for the casual user.
898    </para>
899    <para>
900     If you specify a trust file, <application>Privoxy</application> will only allow
901     access to sites that are specified in the trustfile. Sites can be listed 
902     in one of two ways:
903    </para>
904    <para>
905     Prepending a <literal>~</literal> character limits access to this site 
906     only (and any sub-paths within this site), e.g. 
907     <literal>~www.example.com</literal> allows access to
908     <literal>~www.example.com/features/news.html</literal>, etc. 
909    </para>
910    <para>
911     Or, you can designate sites as <emphasis>trusted referrers</emphasis>, by
912     prepending the name with a <literal>+</literal> character. The effect is that
913     access to untrusted sites will be granted -- but only if a link from this
914     trusted referrer was used to get there. The link target will then be added
915     to the <quote>trustfile</quote> so that future, direct accesses will be
916     granted. Sites added via this mechanism do not become trusted referrers
917     themselves (i.e. they are added with a <literal>~</literal> designation).
918     There is a limit of 512 such entries, after which new entries will not be
919     made.
920    </para>
921    <para>
922     If you use the <literal>+</literal> operator in the trust file, it may grow 
923     considerably over time.
924    </para>
925    <para>
926     It is recommended that <application>Privoxy</application> be compiled with
927     the <literal>--disable-force</literal>, <literal>--disable-toggle</literal> and
928     <literal> --disable-editor</literal> options, if this feature is to be
929     used.
930    </para>
931    <para>
932     Possible applications include limiting Internet access for children.
933    </para>
934    
935   </listitem>
936  </varlistentry>
937 </variablelist>
938
939 <![%config-file;[<literallayout>@@#trustfile trust</literallayout>]]>
940 </sect3>
941 </sect2>
942
943 <!--  ~  End section  ~  -->
944
945 <!--   ~~~~~       New section      ~~~~~     -->
946 <sect2 id="debugging">
947 <title>Debugging</title>
948
949  <para>
950   These options are mainly useful when tracing a problem.
951   Note that you might also want to invoke
952   <application>Privoxy</application> with the <literal>--no-daemon</literal>
953   command line option when debugging.
954  </para>
955
956 <sect3 renderas="sect4" id="debug"><title>debug</title>
957
958 <variablelist>
959  <varlistentry>
960   <term>Specifies:</term>
961   <listitem>
962    <para>
963     Key values that determine what information gets logged to the 
964     <link linkend="logfile"><emphasis>logfile</emphasis></link>.
965    </para>
966   </listitem>
967  </varlistentry>
968  <varlistentry>
969   <term>Type of value:</term>
970   <listitem>
971    <para>Integer values</para>
972   </listitem>
973  </varlistentry>
974  <varlistentry>
975   <term>Default value:</term>
976   <listitem>
977    <para>12289 (i.e.: URLs plus informational and warning messages)</para>
978   </listitem>
979  </varlistentry>
980  <varlistentry>
981   <term>Effect if unset:</term>
982   <listitem>
983    <para>
984     Nothing gets logged.
985    </para>
986   </listitem>
987  </varlistentry>
988  <varlistentry>
989   <term>Notes:</term>
990   <listitem>
991    <para>
992     The available debug levels are:
993    </para>
994    <para>
995     <programlisting>
996   debug         1 # show each GET/POST/CONNECT request
997   debug         2 # show each connection status
998   debug         4 # show I/O status
999   debug         8 # show header parsing
1000   debug        16 # log all data into the logfile
1001   debug        32 # debug force feature
1002   debug        64 # debug regular expression filter
1003   debug       128 # debug fast redirects
1004   debug       256 # debug GIF de-animation
1005   debug       512 # Common Log Format
1006   debug      1024 # debug kill pop-ups
1007   debug      2048 # CGI user interface
1008   debug      4096 # Startup banner and warnings.
1009   debug      8192 # Non-fatal errors
1010 </programlisting>
1011    </para>
1012    <para>
1013     To select multiple debug levels, you can either add them or use
1014     multiple <literal>debug</literal> lines.
1015    </para>
1016    <para>
1017     A debug level of 1 is informative because it will show you each request
1018     as it happens. <emphasis>1, 4096 and 8192 are highly recommended</emphasis>
1019     so that you will notice when things go wrong. The other levels are probably
1020     only of interest if you are hunting down a specific problem. They can produce
1021     a hell of an output (especially 16).
1022     <!-- LOL -->
1023    </para>
1024    <para>
1025     The reporting of <emphasis>fatal</emphasis> errors (i.e. ones which crash 
1026     <application>Privoxy</application>) is always on and cannot be disabled.
1027    </para>
1028    <para>
1029     If you want to use CLF (Common Log Format), you should set <quote>debug
1030     512</quote> <emphasis>ONLY</emphasis> and not enable anything else.
1031    </para>
1032   </listitem>
1033  </varlistentry>
1034 </variablelist>
1035
1036 <![%config-file;[<literallayout>@@debug   1    # show each GET/POST/CONNECT request</literallayout>]]>
1037 <![%config-file;[<literallayout>@@debug   4096 # Startup banner and warnings</literallayout>]]>
1038 <![%config-file;[<literallayout>@@debug   8192 # Errors - *we highly recommended enabling this*</literallayout>]]>
1039 </sect3>
1040
1041
1042 <!--   ~~~~~       New section      ~~~~~     -->
1043 <sect3 renderas="sect4" id="single-threaded"><title>single-threaded</title>
1044
1045 <variablelist>
1046  <varlistentry>
1047   <term>Specifies:</term>
1048   <listitem>
1049    <para>
1050     Whether to run only one server thread
1051    </para>
1052   </listitem>
1053  </varlistentry>
1054  <varlistentry>
1055   <term>Type of value:</term>
1056   <listitem>
1057    <para><emphasis>None</emphasis></para>
1058   </listitem>
1059  </varlistentry>
1060  <varlistentry>
1061   <term>Default value:</term>
1062   <listitem>
1063    <para><emphasis>Unset</emphasis></para>
1064   </listitem>
1065  </varlistentry>
1066  <varlistentry>
1067   <term>Effect if unset:</term>
1068   <listitem>
1069    <para>
1070     Multi-threaded (or, where unavailable: forked) operation, i.e. the ability to
1071     serve multiple requests simultaneously.
1072    </para>
1073   </listitem>
1074  </varlistentry>
1075  <varlistentry>
1076   <term>Notes:</term>
1077   <listitem>
1078    <para>
1079     This option is only there for debug purposes and you should never
1080     need to use it. <emphasis>It will drastically reduce performance.</emphasis>
1081    </para>
1082   </listitem>
1083  </varlistentry>
1084 </variablelist>
1085
1086 <![%config-file;[<literallayout>@@#single-threaded</literallayout>]]>
1087 </sect3>
1088
1089 </sect2>
1090
1091 <!--  ~  End section  ~  -->
1092
1093
1094 <!--   ~~~~~       New section      ~~~~~     -->
1095 <sect2 id="access-control">
1096 <title>Access Control and Security</title>
1097
1098  <para>
1099   This section of the config file controls the security-relevant aspects
1100   of <application>Privoxy</application>'s configuration.
1101  </para>
1102
1103
1104 <!--   ~~~~~       New section      ~~~~~     -->
1105 <sect3 renderas="sect4" id="listen-address"><title>listen-address</title>
1106
1107 <variablelist>
1108  <varlistentry>
1109   <term>Specifies:</term>
1110   <listitem>
1111    <para>
1112     The IP address and TCP port on which <application>Privoxy</application> will
1113     listen for client requests.
1114    </para>
1115   </listitem>
1116  </varlistentry>
1117  <varlistentry>
1118   <term>Type of value:</term>
1119   <listitem>
1120    <para>[<replaceable class="parameter">IP-Address</replaceable>]:<replaceable class="parameter">Port</replaceable></para>
1121   </listitem>
1122  </varlistentry>
1123
1124  <varlistentry>
1125   <term>Default value:</term>
1126   <listitem>
1127    <para>127.0.0.1:8118</para>
1128   </listitem>
1129  </varlistentry>
1130  <varlistentry>
1131   <term>Effect if unset:</term>
1132   <listitem>
1133    <para>
1134     Bind to 127.0.0.1 (localhost), port 8118. This is suitable and recommended for
1135     home users who run <application>Privoxy</application> on the same machine as
1136     their browser.
1137    </para>
1138   </listitem>
1139  </varlistentry>
1140  <varlistentry>
1141   <term>Notes:</term>
1142   <listitem>
1143    <para>
1144     You will need to configure your browser(s) to this proxy address and port.
1145    </para>
1146    <para>
1147     If you already have another service running on port 8118, or if you want to
1148     serve requests from other machines (e.g. on your local network) as well, you
1149     will need to override the default.
1150    </para>
1151    <para>
1152     If you leave out the IP address, <application>Privoxy</application> will
1153     bind to all interfaces (addresses) on your machine and may become reachable
1154     from the Internet. In that case, consider using <link
1155     linkend="acls">access control lists</link> (ACL's, see below), and/or
1156     a firewall.
1157    </para>
1158    <para>
1159     If you open <application>Privoxy</application> to untrusted users, you will
1160     also want to turn off the <literal><link
1161     linkend="enable-edit-actions">enable-edit-actions</link></literal> and
1162     <literal><link linkend="enable-remote-toggle">enable-remote-toggle</link></literal>
1163     options!
1164    </para>
1165   </listitem>
1166  </varlistentry>
1167  <varlistentry>
1168   <term>Example:</term>
1169   <listitem>
1170    <para>
1171      Suppose you are running <application>Privoxy</application> on
1172      a machine which has the address 192.168.0.1 on your local private network
1173      (192.168.0.0) and has another outside connection with a different address.
1174      You want it to serve requests from inside only:
1175    </para>
1176    <para>
1177     <programlisting>
1178   listen-address  192.168.0.1:8118
1179 </programlisting>
1180    </para>
1181   </listitem>
1182  </varlistentry>
1183 </variablelist>
1184
1185 <![%config-file;[<literallayout>@@listen-address  127.0.0.1:8118</literallayout>]]>
1186 </sect3>
1187
1188
1189 <!--   ~~~~~       New section      ~~~~~     -->
1190 <sect3 renderas="sect4" id="toggle"><title>toggle</title>
1191
1192 <variablelist>
1193  <varlistentry>
1194   <term>Specifies:</term>
1195   <listitem>
1196    <para>
1197     Initial state of "toggle" status
1198    </para>
1199   </listitem>
1200  </varlistentry>
1201  <varlistentry>
1202   <term>Type of value:</term>
1203   <listitem>
1204    <para>1 or 0</para>
1205   </listitem>
1206  </varlistentry>
1207  <varlistentry>
1208   <term>Default value:</term>
1209   <listitem>
1210    <para>1</para>
1211   </listitem>
1212  </varlistentry>
1213  <varlistentry>
1214   <term>Effect if unset:</term>
1215   <listitem>
1216    <para>
1217     Act as if toggled on
1218    </para>
1219   </listitem>
1220  </varlistentry>
1221  <varlistentry>
1222   <term>Notes:</term>
1223   <listitem>
1224    <para>
1225     If set to 0, <application>Privoxy</application> will start in
1226     <quote>toggled off</quote> mode, i.e. behave like a normal, content-neutral
1227     proxy where all ad blocking, filtering, etc are disabled. See
1228     <literal>enable-remote-toggle</literal> below. This is not really useful
1229     anymore, since toggling is much easier via <ulink
1230     url="http://config.privoxy.org/toggle">the web interface</ulink> than via
1231     editing the <filename>conf</filename> file.
1232    </para>
1233    <para>
1234     The windows version will only display the toggle icon in the system tray
1235     if this option is present.
1236    </para>
1237   </listitem>
1238  </varlistentry>
1239 </variablelist>
1240
1241 <![%config-file;[<literallayout>@@toggle  1</literallayout>]]>
1242 </sect3>
1243
1244
1245 <!--   ~~~~~       New section      ~~~~~     -->
1246 <sect3 renderas="sect4" id="enable-remote-toggle"><title>enable-remote-toggle</title>
1247 <variablelist>
1248  <varlistentry>
1249   <term>Specifies:</term>
1250   <listitem>
1251    <para>
1252     Whether or not the <ulink url="http://config.privoxy.org/toggle">web-based toggle
1253     feature</ulink> may be used
1254    </para>
1255   </listitem>
1256  </varlistentry>
1257  <varlistentry>
1258   <term>Type of value:</term>
1259   <listitem>
1260    <para>0 or 1</para>
1261   </listitem>
1262  </varlistentry>
1263  <varlistentry>
1264   <term>Default value:</term>
1265   <listitem>
1266    <para>1</para>
1267   </listitem>
1268  </varlistentry>
1269  <varlistentry>
1270   <term>Effect if unset:</term>
1271   <listitem>
1272    <para>
1273     The web-based toggle feature is disabled.
1274    </para>
1275   </listitem>
1276  </varlistentry>
1277  <varlistentry>
1278   <term>Notes:</term>
1279   <listitem>
1280    <para>
1281     When toggled off, <application>Privoxy</application> acts like a normal,
1282     content-neutral proxy, i.e. it acts as if none of the actions applied to
1283     any URL.
1284    </para>
1285    <para>
1286     For the time being, access to the toggle feature can <emphasis>not</emphasis> be
1287     controlled separately by <quote>ACLs</quote> or HTTP authentication,
1288     so that everybody who can access <application>Privoxy</application> (see
1289     <quote>ACLs</quote> and <literal>listen-address</literal> above) can
1290     toggle it for all users. So this option is <emphasis>not recommended</emphasis>
1291     for multi-user environments with untrusted users.
1292    </para>
1293    <para>
1294     Note that you must have compiled <application>Privoxy</application> with
1295     support for this feature, otherwise this option has no effect. 
1296    </para>
1297   </listitem>
1298  </varlistentry>
1299 </variablelist>
1300
1301 <![%config-file;[<literallayout>@@enable-remote-toggle  1</literallayout>]]>
1302 </sect3>
1303
1304
1305 <!--   ~~~~~       New section      ~~~~~     -->
1306 <sect3 renderas="sect4" id="enable-remote-http-toggle"><title>enable-remote-http-toggle</title>
1307 <variablelist>
1308  <varlistentry>
1309   <term>Specifies:</term>
1310   <listitem>
1311    <para>
1312     Whether or not Privoxy recognizes special HTTP headers to change its behaviour.
1313    </para>
1314   </listitem>
1315  </varlistentry>
1316  <varlistentry>
1317   <term>Type of value:</term>
1318   <listitem>
1319    <para>0 or 1</para>
1320   </listitem>
1321  </varlistentry>
1322  <varlistentry>
1323   <term>Default value:</term>
1324   <listitem>
1325    <para>1</para>
1326   </listitem>
1327  </varlistentry>
1328  <varlistentry>
1329   <term>Effect if unset:</term>
1330   <listitem>
1331    <para>
1332     Privoxy ignores special HTTP headers.
1333    </para>
1334   </listitem>
1335  </varlistentry>
1336  <varlistentry>
1337   <term>Notes:</term>
1338   <listitem>
1339    <para>
1340     When toggled on, the client can change <application>Privoxy's</application>
1341     behaviour by setting special HTTP headers. Currently the only supported
1342     special header is <quote>X-Filter: No</quote>, to disable filtering for
1343     the ongoing request, even if it is enabled in one of the action files.
1344    </para>
1345    <para>
1346     If you are using <application>Privoxy</application> in a
1347     multi-user environment or with untrustworthy clients and want to
1348     enforce filtering, you will have to disable this option,
1349     otherwise you can ignore it. 
1350    </para>
1351   </listitem>
1352  </varlistentry>
1353 </variablelist>
1354
1355 <![%config-file;[<literallayout>@@enable-remote-http-toggle  1</literallayout>]]>
1356 </sect3>
1357
1358
1359 <!--   ~~~~~       New section      ~~~~~     -->
1360 <sect3 renderas="sect4" id="enable-edit-actions"><title>enable-edit-actions</title>
1361 <variablelist>
1362  <varlistentry>
1363   <term>Specifies:</term>
1364   <listitem>
1365    <para>
1366     Whether or not the <ulink url="http://config.privoxy.org/show-status">web-based actions
1367     file editor</ulink> may be used
1368    </para>
1369   </listitem>
1370  </varlistentry>
1371  <varlistentry>
1372   <term>Type of value:</term>
1373   <listitem>
1374    <para>0 or 1</para>
1375   </listitem>
1376  </varlistentry>
1377  <varlistentry>
1378   <term>Default value:</term>
1379   <listitem>
1380    <para>1</para>
1381   </listitem>
1382  </varlistentry>
1383  <varlistentry>
1384   <term>Effect if unset:</term>
1385   <listitem>
1386    <para>
1387     The web-based actions file editor is disabled.
1388    </para>
1389   </listitem>
1390  </varlistentry>
1391  <varlistentry>
1392   <term>Notes:</term>
1393   <listitem>
1394    <para>
1395     For the time being, access to the editor can <emphasis>not</emphasis> be
1396     controlled separately by <quote>ACLs</quote> or HTTP authentication,
1397     so that everybody who can access <application>Privoxy</application> (see
1398     <quote>ACLs</quote> and <literal>listen-address</literal> above) can
1399     modify its configuration for all users. So this option is <emphasis>not
1400     recommended</emphasis> for multi-user environments with untrusted users.
1401    </para>
1402    <para>
1403     Note that you must have compiled <application>Privoxy</application> with
1404     support for this feature, otherwise this option has no effect. 
1405    </para>
1406   </listitem>
1407  </varlistentry>
1408 </variablelist>
1409
1410 <![%config-file;[<literallayout>@@enable-edit-actions 1</literallayout>]]>
1411 </sect3>
1412
1413 <!--   ~~~~~       New section      ~~~~~     -->
1414 <sect3 renderas="sect4" id="acls"><title>
1415 ACLs: permit-access and deny-access</title>
1416 <anchor id="permit-access">
1417 <anchor id="deny-access">
1418
1419 <variablelist>
1420  <varlistentry>
1421   <term>Specifies:</term>
1422   <listitem>
1423    <para>
1424     Who can access what.
1425    </para>
1426   </listitem>
1427  </varlistentry>
1428  <varlistentry>
1429   <term>Type of value:</term>
1430   <listitem>
1431    <para>
1432     <replaceable class="parameter">src_addr</replaceable>[/<replaceable class="parameter">src_masklen</replaceable>]
1433     [<replaceable class="parameter">dst_addr</replaceable>[/<replaceable class="parameter">dst_masklen</replaceable>]]
1434    </para>
1435    <para>
1436     Where <replaceable class="parameter">src_addr</replaceable> and 
1437    <replaceable class="parameter">dst_addr</replaceable> are IP addresses in dotted decimal notation or valid
1438     DNS names, and <replaceable class="parameter">src_masklen</replaceable> and
1439     <replaceable class="parameter">dst_masklen</replaceable> are subnet masks in CIDR notation, i.e. integer
1440     values from 2 to 30 representing the length (in bits) of the network address. The masks and the whole
1441     destination part are optional.
1442    </para>
1443   </listitem>
1444  </varlistentry>
1445  <varlistentry>
1446   <term>Default value:</term>
1447   <listitem>
1448    <para><emphasis>Unset</emphasis></para>
1449   </listitem>
1450  </varlistentry>
1451  <varlistentry>
1452   <term>Effect if unset:</term>
1453   <listitem>
1454    <para>
1455     Don't restrict access further than implied by <literal>listen-address</literal>
1456    </para>
1457   </listitem>
1458  </varlistentry>
1459  <varlistentry>
1460   <term>Notes:</term>
1461   <listitem>
1462    <para>
1463     Access controls are included at the request of ISPs and systems
1464     administrators, and <emphasis>are not usually needed by individual users</emphasis>.
1465     For a typical home user, it will normally suffice to ensure that 
1466     <application>Privoxy</application> only listens on the localhost
1467     (127.0.0.1) or internal (home) network address by means of the
1468     <link linkend="listen-address"><emphasis>listen-address</emphasis></link>
1469     option. 
1470    </para>
1471    <para>
1472     Please see the warnings in the FAQ that this proxy is not intended to be a substitute
1473     for a firewall or to encourage anyone to defer addressing basic security
1474     weaknesses.
1475    </para>
1476    <para>
1477     Multiple ACL lines are OK.
1478     If any ACLs are specified, then the <application>Privoxy</application>
1479     talks only to IP addresses that match at least one <literal>permit-access</literal> line
1480     and don't match any subsequent <literal>deny-access</literal> line. In other words, the
1481     last match wins, with the default being <literal>deny-access</literal>.
1482    </para>
1483    <para>
1484     If <application>Privoxy</application> is using a forwarder (see <literal>forward</literal> below)
1485     for a particular destination URL, the <replaceable class="parameter">dst_addr</replaceable>
1486     that is examined is the address of the forwarder and <emphasis>NOT</emphasis> the address
1487     of the ultimate target. This is necessary because it may be impossible for the local
1488     <application>Privoxy</application> to determine the IP address of the
1489     ultimate target (that's often what gateways are used for).
1490    </para>
1491    <para>
1492     You should prefer using IP addresses over DNS names, because the address lookups take
1493     time. All DNS names must resolve! You can <emphasis>not</emphasis> use domain patterns
1494     like <quote>*.org</quote> or partial domain names. If a DNS name resolves to multiple
1495     IP addresses, only the first one is used.
1496    </para>
1497    <para>
1498     Denying access to particular sites by ACL may have undesired side effects
1499     if the site in question is hosted on a machine which also hosts other sites.
1500    </para>
1501   </listitem>
1502  </varlistentry>
1503  <varlistentry>
1504   <term>Examples:</term>
1505   <listitem>
1506    <para>
1507     Explicitly define the default behavior if no ACL and
1508     <literal>listen-address</literal> are set: <quote>localhost</quote>
1509     is OK. The absence of a <replaceable class="parameter">dst_addr</replaceable> implies that
1510     <emphasis>all</emphasis> destination addresses are OK:
1511    </para>
1512    <para>
1513     <screen>
1514   permit-access  localhost
1515 </screen>
1516    </para>
1517    <para>
1518     Allow any host on the same class C subnet as www.privoxy.org access to
1519     nothing but www.example.com:
1520    </para>
1521    <para>
1522     <screen>
1523   permit-access  www.privoxy.org/24 www.example.com/32
1524 </screen>
1525    </para>
1526    <para>
1527     Allow access from any host on the 26-bit subnet 192.168.45.64 to anywhere,
1528     with the exception that 192.168.45.73 may not access www.dirty-stuff.example.com:
1529    </para>
1530    <para>
1531     <screen>
1532   permit-access  192.168.45.64/26
1533   deny-access    192.168.45.73    www.dirty-stuff.example.com
1534 </screen>
1535    </para>
1536   </listitem>
1537  </varlistentry>
1538 </variablelist>
1539 </sect3>
1540
1541
1542 <!--   ~~~~~       New section      ~~~~~     -->
1543 <sect3 renderas="sect4" id="buffer-limit"><title>buffer-limit</title>
1544
1545 <variablelist>
1546  <varlistentry>
1547   <term>Specifies:</term>
1548   <listitem>
1549    <para>
1550     Maximum size of the buffer for content filtering.
1551    </para>
1552   </listitem>
1553  </varlistentry>
1554  <varlistentry>
1555   <term>Type of value:</term>
1556   <listitem>
1557    <para>Size in Kbytes</para>
1558   </listitem>
1559  </varlistentry>
1560  <varlistentry>
1561   <term>Default value:</term>
1562   <listitem>
1563    <para>4096</para>
1564   </listitem>
1565  </varlistentry>
1566  <varlistentry>
1567   <term>Effect if unset:</term>
1568   <listitem>
1569    <para>
1570     Use a 4MB (4096 KB) limit.
1571    </para>
1572   </listitem>
1573  </varlistentry>
1574  <varlistentry>
1575   <term>Notes:</term>
1576   <listitem>
1577    <para>
1578     For content filtering, i.e. the <literal>+filter</literal> and
1579     <literal>+deanimate-gif</literal> actions, it is necessary that 
1580     <application>Privoxy</application> buffers the entire document body.
1581     This can be potentially dangerous, since a server could just keep sending
1582     data indefinitely and wait for your RAM to exhaust -- with nasty consequences.
1583     Hence this option.
1584    </para>
1585    <para>
1586     When a document buffer size reaches the <literal>buffer-limit</literal>, it is
1587     flushed to the client unfiltered and no further attempt to
1588     filter the rest of the document is made. Remember that there may be multiple threads
1589     running, which might require up to <literal>buffer-limit</literal> Kbytes
1590     <emphasis>each</emphasis>, unless you have enabled <quote>single-threaded</quote>
1591     above.
1592    </para>
1593   </listitem>
1594  </varlistentry>
1595 </variablelist>
1596
1597 <![%config-file;[<literallayout>@@buffer-limit 4096</literallayout>]]>
1598 </sect3>
1599
1600 </sect2>
1601
1602 <!--  ~  End section  ~  -->
1603
1604
1605 <!--   ~~~~~       New section      ~~~~~     -->
1606
1607 <sect2 id="forwarding">
1608 <title>Forwarding</title>
1609
1610 <para>
1611  This feature allows routing of HTTP requests through a chain of
1612  multiple proxies.
1613  It can be used to better protect privacy and confidentiality when
1614  accessing specific domains by routing requests to those domains
1615  through an anonymous public proxy. Or to use a caching proxy to speed up browsing. Or chaining to a parent
1616  proxy may be necessary because the machine that <application>Privoxy</application>
1617  runs on has no direct Internet access.
1618 </para>
1619
1620 <para>
1621  Also specified here are SOCKS proxies. <application>Privoxy</application>
1622  supports the SOCKS 4 and SOCKS 4A protocols.
1623 </para>
1624
1625 <sect3 renderas="sect4" id="forward"><title>forward</title>
1626 <variablelist>
1627  <varlistentry>
1628   <term>Specifies:</term>
1629   <listitem>
1630    <para>
1631     To which parent HTTP proxy specific requests should be routed.
1632    </para>
1633   </listitem>
1634  </varlistentry>
1635  <varlistentry>
1636   <term>Type of value:</term>
1637   <listitem>
1638    <para>
1639     <replaceable class="parameter">target_pattern</replaceable>
1640     <replaceable class="parameter">http_parent</replaceable>[:<replaceable class="parameter">port</replaceable>]
1641    </para>
1642    <para>
1643     where <replaceable class="parameter">target_pattern</replaceable> is a <link linkend="af-patterns">URL pattern</link> 
1644     that specifies to which requests (i.e. URLs) this forward rule shall apply. Use <literal>/</literal> to
1645     denote <quote>all URLs</quote>.
1646     <replaceable class="parameter">http_parent</replaceable>[:<replaceable class="parameter">port</replaceable>]
1647     is the DNS name or IP address of the parent HTTP proxy through which the requests should be forwarded,
1648     optionally followed by its listening port (default: 8080).
1649     Use a single dot (<literal>.</literal>) to denote <quote>no forwarding</quote>.
1650    </para>
1651   </listitem>
1652  </varlistentry>
1653  <varlistentry>
1654   <term>Default value:</term>
1655   <listitem>
1656    <para><emphasis>Unset</emphasis></para>
1657   </listitem>
1658  </varlistentry>
1659  <varlistentry>
1660   <term>Effect if unset:</term>
1661   <listitem>
1662    <para>
1663     Don't use parent HTTP proxies.
1664    </para>
1665   </listitem>
1666  </varlistentry>
1667  <varlistentry>
1668   <term>Notes:</term>
1669   <listitem>
1670    <para>
1671     If <replaceable class="parameter">http_parent</replaceable> is <quote>.</quote>, then requests are not
1672     forwarded to another HTTP proxy but are made directly to the web servers.
1673    </para>
1674    <para>
1675     Multiple lines are OK, they are checked in sequence, and the last match wins.
1676    </para>
1677   </listitem>
1678  </varlistentry>
1679  <varlistentry>
1680   <term>Examples:</term>
1681   <listitem>
1682    <para>
1683     Everything goes to an example anonymizing proxy, except SSL on port 443 (which it doesn't handle):
1684    </para>
1685    <para>
1686     <screen>
1687   forward   /      anon-proxy.example.org:8080
1688   forward   :443   .
1689 </screen>
1690    </para>
1691    <para>
1692     Everything goes to our example ISP's caching proxy, except for requests
1693     to that ISP's sites:
1694    </para>
1695    <para>
1696     <screen>
1697   forward   /                  caching-proxy.example-isp.net:8000
1698   forward   .example-isp.net   .
1699 </screen>
1700    </para>
1701   </listitem>
1702  </varlistentry>
1703 </variablelist>
1704 </sect3>
1705
1706
1707 <!--   ~~~~~       New section      ~~~~~     -->
1708 <sect3 renderas="sect4" id="socks"><title>
1709 forward-socks4 and forward-socks4a</title>
1710 <anchor id="forward-socks4">
1711 <anchor id="forward-socks4a">
1712
1713 <variablelist>
1714  <varlistentry>
1715   <term>Specifies:</term>
1716   <listitem>
1717    <para>
1718     Through which SOCKS proxy (and to which parent HTTP proxy) specific requests should be routed.
1719    </para>
1720   </listitem>
1721  </varlistentry>
1722  <varlistentry>
1723   <term>Type of value:</term>
1724   <listitem>
1725    <para>
1726     <replaceable class="parameter">target_pattern</replaceable>
1727     <replaceable class="parameter">socks_proxy</replaceable>[:<replaceable class="parameter">port</replaceable>]
1728     <replaceable class="parameter">http_parent</replaceable>[:<replaceable class="parameter">port</replaceable>]
1729    </para>
1730    <para>
1731     where <replaceable class="parameter">target_pattern</replaceable> is a <link linkend="af-patterns">URL pattern</link> 
1732     that specifies to which requests (i.e. URLs) this forward rule shall apply. Use <literal>/</literal> to
1733     denote <quote>all URLs</quote>.
1734     <replaceable class="parameter">http_parent</replaceable> and <replaceable class="parameter">socks_proxy</replaceable>
1735     are IP addresses in dotted decimal notation or valid DNS names (<replaceable class="parameter">http_parent</replaceable>
1736     may be <quote>.</quote> to denote <quote>no HTTP forwarding</quote>), and the optional 
1737     <replaceable class="parameter">port</replaceable> parameters are TCP ports, i.e. integer values from 1 to 64535
1738    </para>
1739   </listitem>
1740  </varlistentry>
1741  <varlistentry>
1742   <term>Default value:</term>
1743   <listitem>
1744    <para><emphasis>Unset</emphasis></para>
1745   </listitem>
1746  </varlistentry>
1747  <varlistentry>
1748   <term>Effect if unset:</term>
1749   <listitem>
1750    <para>
1751     Don't use SOCKS proxies.
1752    </para>
1753   </listitem>
1754  </varlistentry>
1755  <varlistentry>
1756   <term>Notes:</term>
1757   <listitem>
1758    <para>
1759     Multiple lines are OK, they are checked in sequence, and the last match wins.
1760    </para>
1761    <para>
1762     The difference between <literal>forward-socks4</literal> and <literal>forward-socks4a</literal>
1763     is that in the SOCKS 4A protocol, the DNS resolution of the target hostname happens on the SOCKS
1764     server, while in SOCKS 4 it happens locally.
1765    </para>
1766    <para>
1767     If <replaceable class="parameter">http_parent</replaceable> is <quote>.</quote>, then requests are not
1768     forwarded to another HTTP proxy but are made (HTTP-wise) directly to the web servers, albeit through
1769     a SOCKS proxy.
1770    </para>
1771   </listitem>
1772  </varlistentry>
1773  <varlistentry>
1774   <term>Examples:</term>
1775   <listitem>
1776    <para>
1777      From the company example.com, direct connections are made to all
1778      <quote>internal</quote> domains, but everything outbound goes through
1779      their ISP's proxy by way of example.com's corporate SOCKS 4A gateway to
1780      the Internet.
1781    </para>
1782    <para>
1783     <screen>
1784   forward-socks4a   /              socks-gw.example.com:1080  www-cache.example-isp.net:8080
1785   forward           .example.com   .
1786 </screen>
1787    </para>
1788    <para>
1789     A rule that uses a SOCKS 4 gateway for all destinations but no HTTP parent looks like this:
1790    </para>
1791    <para>
1792     <screen>
1793   forward-socks4   /               socks-gw.example.com:1080  .
1794 </screen>
1795    </para>
1796   
1797     <para>
1798     To chain Privoxy and Tor, both running on the same system, you should use 
1799     the rule:
1800    </para>
1801    <para>
1802     <screen>
1803   forward-socks4   /               127.0.0.1:9050 .
1804 </screen>
1805    </para>
1806
1807     <para>
1808     The public <application>Tor</application> network can't be used to reach your local network,
1809     therefore it's a good idea to make some exceptions:
1810    </para>
1811    <para>
1812     <screen>
1813   forward         192.168.*.*/     .
1814   forward            10.*.*.*/     .
1815   forward           127.*.*.*/     .
1816 </screen>
1817    </para>
1818    <para>
1819     Unencrypted connections to systems in these address ranges will
1820     be as (un)secure as the local network is, but the alternative is that you
1821     can't reach the network at all.
1822    </para>
1823    <para>
1824     If you also want to be able to reach servers in your local network by
1825     using their names, you will need additional exceptions that look like
1826     this:
1827    </para>
1828    <para>
1829     <screen>
1830  forward           localhost/     .
1831 </screen>
1832    </para>
1833
1834   </listitem>
1835  </varlistentry>
1836 </variablelist>
1837 </sect3>
1838
1839 <![%user-man;[     <!-- not included in config due to length -->
1840 <!--   ~~~~~       New section      ~~~~~     -->
1841 <sect3 renderas="sect4" id="advanced-forwarding-examples"><title>Advanced Forwarding Examples</title>
1842
1843 <para>
1844  If you have links to multiple ISPs that provide various special content 
1845  only to their subscribers, you can configure multiple <application>Privoxies</application>
1846  which have connections to the respective ISPs to act as forwarders to each other, so that
1847  <emphasis>your</emphasis> users can see the internal content of all ISPs.
1848 </para>
1849
1850 <para>
1851  Assume that host-a has a PPP connection to isp-a.net. And host-b has a PPP connection to
1852  isp-b.net. Both run <application>Privoxy</application>. Their forwarding
1853  configuration can look like this:
1854 </para>
1855
1856 <para>
1857  host-a:
1858 </para>
1859
1860 <para>
1861  <screen>
1862   forward    /           .
1863   forward    .isp-b.net  host-b:8118
1864 </screen>
1865 </para>
1866
1867 <para>
1868  host-b:
1869 </para>
1870
1871 <para>
1872  <screen>
1873   forward    /           .
1874   forward    .isp-a.net  host-a:8118
1875 </screen>
1876 </para>
1877
1878 <para>
1879  Now, your users can set their browser's proxy to use either
1880  host-a or host-b and be able to browse the internal content
1881  of both isp-a and isp-b.
1882 </para>
1883
1884 <para>
1885  If you intend to chain <application>Privoxy</application> and 
1886  <application>squid</application> locally, then chain as 
1887  <literal>browser -> squid -> privoxy</literal> is the recommended way. 
1888 </para>
1889
1890 <para>
1891  Assuming that <application>Privoxy</application> and <application>squid</application>
1892  run on the same box, your <application>squid</application> configuration could then look like this:
1893 </para>
1894
1895 <para>
1896  <screen>
1897   # Define Privoxy as parent proxy (without ICP) 
1898   cache_peer 127.0.0.1 parent 8118 7 no-query 
1899
1900   # Define ACL for protocol FTP 
1901   acl ftp proto FTP 
1902
1903   # Do not forward FTP requests to Privoxy
1904   always_direct allow ftp 
1905
1906   # Forward all the rest to Privoxy
1907   never_direct allow all</screen>
1908 </para>
1909
1910 <para>
1911  You would then need to change your browser's proxy settings to <application>squid</application>'s address and port.
1912  Squid normally uses port 3128. If unsure consult <literal>http_port</literal> in <filename>squid.conf</filename>.
1913 </para>
1914
1915 <para>
1916  You could just as well decide to only forward requests for Windows executables through
1917  a virus-scanning parent proxy, say, on <literal>antivir.example.com</literal>, port 8010:
1918 </para>
1919
1920 <para>
1921  <screen>
1922   forward   /                          .
1923   forward   /.*\.(exe|com|dll|zip)$    antivir.example.com:8010</screen> 
1924 </para>
1925
1926 </sect3>
1927 ]]>
1928
1929 <sect3 renderas="sect4" id="forwarded-connect-retries"><title>forwarded-connect-retries</title>
1930 <variablelist>
1931  <varlistentry>
1932   <term>Specifies:</term>
1933   <listitem>
1934    <para>
1935     How often Privoxy retries if a forwarded connection request fails. 
1936    </para>
1937   </listitem>
1938  </varlistentry>
1939  <varlistentry>
1940   <term>Type of value:</term>
1941   <listitem>
1942    <para>
1943     <replaceable class="parameter">Number of retries.</replaceable>
1944    </para>
1945   </listitem>
1946  </varlistentry>
1947  <varlistentry>
1948   <term>Default value:</term>
1949   <listitem>
1950    <para><emphasis>0</emphasis></para>
1951   </listitem>
1952  </varlistentry>
1953  <varlistentry>
1954   <term>Effect if unset:</term>
1955   <listitem>
1956    <para>
1957     Forwarded connections are treated like direct connections and no retry attempts are made.
1958    </para>
1959   </listitem>
1960  </varlistentry>
1961  <varlistentry>
1962   <term>Notes:</term>
1963   <listitem>
1964    <para>
1965     <replaceable class="parameter">forwarded-connect-retries</replaceable> is mainly interesting
1966     for socks4a connections, where Privoxy can't detect why the connections failed.
1967     The connection might have failed because of a DNS timeout in which case a retry makes sense,
1968     but it might also have failed because the server doesn't exist or isn't reachable. In this
1969     case the retry will just delay the appearance of Privoxy's error message.
1970    </para>
1971    <para>
1972     Only use this option, if you are getting many forwarding related error messages,
1973     that go away when you try again manually. Start with a small value and check Privoxy's
1974     logfile from time to time, to see how many retries are usually needed.
1975    </para>
1976   </listitem>
1977  </varlistentry>
1978  <varlistentry>
1979   <term>Examples:</term>
1980   <listitem>
1981    <para>
1982     forwarded-connect-retries 1
1983    </para>
1984   </listitem>
1985  </varlistentry>
1986 </variablelist>
1987 <![%config-file;[<literallayout>@@forwarded-connect-retries  0</literallayout>]]>
1988 </sect3>
1989
1990 </sect2>
1991
1992 <!--  ~  End section  ~  -->
1993
1994
1995 <!--   ~~~~~       New section      ~~~~~     -->
1996
1997 <sect2 id="windows-gui">
1998 <title>Windows GUI Options</title>
1999 <para>
2000  <application>Privoxy</application> has a number of options specific to the
2001  Windows GUI interface:
2002 </para>
2003
2004 <anchor id="activity-animation">
2005 <![%config-file;[<para>@@</para>]]> <!-- for spacing -->
2006 <para>
2007  If <quote>activity-animation</quote> is set to 1, the
2008  <application>Privoxy</application> icon will animate when
2009  <quote>Privoxy</quote> is active. To turn off, set to 0.
2010 </para>
2011
2012 <![%config-file;[<literallayout>@@#activity-animation   1</literallayout>]]>
2013 <![%user-man;[
2014 <para>
2015  <literal>
2016   <msgtext> 
2017    <literallayout>
2018   <emphasis>activity-animation   1</emphasis>
2019    </literallayout>
2020   </msgtext> 
2021  </literal>
2022 </para>
2023 ]]>
2024
2025 <anchor id="log-messages">
2026 <![%config-file;[<para>@@</para>]]> <!-- for spacing -->
2027 <para>
2028  If <quote>log-messages</quote> is set to 1,
2029  <application>Privoxy</application> will log messages to the console
2030  window:
2031 </para>
2032
2033 <![%config-file;[<literallayout>@@#log-messages   1</literallayout>]]>
2034 <![%user-man;[
2035 <para>
2036  <literal>
2037   <msgtext> 
2038    <literallayout>
2039   <emphasis>log-messages       1</emphasis>
2040    </literallayout>
2041   </msgtext> 
2042  </literal>
2043 </para>
2044 ]]>
2045
2046 <anchor id="log-buffer-size">
2047 <![%config-file;[<para>@@</para>]]> <!-- for spacing -->
2048 <para> 
2049  If <quote>log-buffer-size</quote> is set to 1, the size of the log buffer,
2050  i.e. the amount of memory used for the log messages displayed in the
2051  console window, will be limited to <quote>log-max-lines</quote> (see below).
2052 </para>
2053
2054 <para>
2055  Warning: Setting this to 0 will result in the buffer to grow infinitely and
2056  eat up all your memory!
2057 </para>
2058
2059 <![%config-file;[<literallayout>@@#log-buffer-size 1</literallayout>]]>
2060 <![%user-man;[
2061 <para>
2062  <literal>
2063   <msgtext> 
2064    <literallayout>
2065   <emphasis>log-buffer-size      1</emphasis>
2066    </literallayout>
2067   </msgtext> 
2068  </literal>
2069 </para>
2070 ]]>
2071
2072 <anchor id="log-max-lines">
2073 <![%config-file;[<para>@@</para>]]> <!-- for spacing -->
2074 <para>
2075  <application>log-max-lines</application> is the maximum number of lines held
2076  in the log buffer. See above.
2077 </para>
2078
2079 <![%config-file;[<literallayout>@@#log-max-lines 200</literallayout>]]>
2080 <![%user-man;[
2081 <para>
2082  <literal>
2083   <msgtext> 
2084    <literallayout>
2085   <emphasis>log-max-lines      200</emphasis>
2086    </literallayout>
2087   </msgtext> 
2088  </literal>
2089 </para>
2090 ]]>
2091
2092 <anchor id="log-highlight-messages">
2093 <![%config-file;[<para>@@</para>]]> <!-- for spacing -->
2094 <para>
2095  If <quote>log-highlight-messages</quote> is set to 1,
2096  <application>Privoxy</application> will highlight portions of the log
2097  messages with a bold-faced font:
2098 </para>
2099
2100 <![%config-file;[<literallayout>@@#log-highlight-messages 1</literallayout>]]>
2101 <![%user-man;[
2102 <para>
2103  <literal>
2104   <msgtext> 
2105    <literallayout>
2106   <emphasis>log-highlight-messages   1</emphasis>
2107    </literallayout>
2108   </msgtext> 
2109  </literal>
2110 </para>
2111 ]]>
2112
2113 <anchor id="log-font-name">
2114 <![%config-file;[<para>@@</para>]]> <!-- for spacing -->
2115 <para>
2116  The font used in the console window:
2117 </para>
2118
2119 <![%config-file;[<literallayout>@@#log-font-name Comic Sans MS</literallayout>]]>
2120 <![%user-man;[
2121 <para>
2122  <literal>
2123   <msgtext> 
2124    <literallayout>
2125   <emphasis>log-font-name        Comic Sans MS</emphasis>
2126    </literallayout>
2127   </msgtext> 
2128  </literal>
2129 </para>
2130 ]]>
2131
2132 <anchor id="log-font-size">
2133 <![%config-file;[<para>@@</para>]]> <!-- for spacing -->
2134 <para>
2135  Font size used in the console window:
2136 </para>
2137
2138 <![%config-file;[<literallayout>@@#log-font-size 8</literallayout>]]>
2139 <![%user-man;[
2140 <para>
2141  <literal>
2142   <msgtext> 
2143    <literallayout>
2144   <emphasis>log-font-size        8</emphasis>
2145    </literallayout>
2146   </msgtext> 
2147  </literal>
2148 </para>
2149 ]]>
2150
2151 <anchor id="show-on-task-bar">
2152 <![%config-file;[<para>@@</para>]]> <!-- for spacing -->
2153 <para>  
2154  <quote>show-on-task-bar</quote> controls whether or not
2155  <application>Privoxy</application> will appear as a button on the Task bar
2156  when minimized:
2157 </para>
2158
2159 <![%config-file;[<literallayout>@@#show-on-task-bar 0</literallayout>]]>
2160 <![%user-man;[
2161 <para>
2162  <literal>
2163   <msgtext> 
2164    <literallayout>
2165   <emphasis>show-on-task-bar     0</emphasis>
2166    </literallayout>
2167   </msgtext> 
2168  </literal>
2169 </para>
2170 ]]>
2171
2172 <anchor id="close-button-minimizes">
2173 <![%config-file;[<para>@@</para>]]> <!-- for spacing -->
2174 <para>
2175  If <quote>close-button-minimizes</quote> is set to 1, the Windows close
2176  button will minimize <application>Privoxy</application> instead of closing
2177  the program (close with the exit option on the File menu).
2178 </para>
2179
2180 <![%config-file;[<literallayout>@@#close-button-minimizes 1</literallayout>]]>
2181 <![%user-man;[
2182 <para>
2183  <literal>
2184   <msgtext> 
2185    <literallayout>
2186   <emphasis>close-button-minimizes  1</emphasis>
2187    </literallayout>
2188   </msgtext> 
2189  </literal>
2190 </para>
2191 ]]>
2192
2193 <anchor id="hide-console">
2194 <![%config-file;[<para>@@</para>]]> <!-- for spacing -->
2195 <para>
2196  The <quote>hide-console</quote> option is specific to the MS-Win console
2197  version of <application>Privoxy</application>. If this option is used,
2198  <application>Privoxy</application> will disconnect from and hide  the
2199  command console.
2200 </para>
2201
2202 <![%config-file;[<literallayout>@@#hide-console</literallayout>]]>
2203 <![%user-man;[
2204 <para>
2205  <literal>
2206   <msgtext> 
2207    <literallayout>
2208   #<emphasis>hide-console</emphasis>
2209    </literallayout>
2210   </msgtext> 
2211  </literal>
2212 </para>
2213 ]]>
2214
2215 </sect2>
2216 </sect1>
2217
2218 <!-- end config content common to both outputs -->
2219
2220 <![%config-file;[
2221 <!-- These are dummy anchors to keep the processor quiet            -->
2222 <!-- when building config-file only (ie. they are used in u-m only) -->
2223 <sect1 label="">
2224 <title></title>
2225 <anchor id="filter">
2226 <anchor id="filter-file">
2227 <anchor id="regex">
2228 <anchor id="actions-file">
2229 <anchor id="af-patterns">
2230 </sect1>
2231 ]]>
2232
2233 <!-- eof p-config.sgml -->