c787eb6db6a0c77ef2479fdaf15d32455356046f
[privoxy.git] / doc / webserver / user-manual / config.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
2 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
3 <html>
4   <head>
5     <title>
6       The Main Configuration File
7     </title>
8     <meta name="GENERATOR" content=
9     "Modular DocBook HTML Stylesheet Version 1.79">
10     <link rel="HOME" title="Privoxy 3.0.25 User Manual" href="index.html">
11     <link rel="PREVIOUS" title="Privoxy Configuration" href=
12     "configuration.html">
13     <link rel="NEXT" title="Actions Files" href="actions-file.html">
14     <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
15     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
16     <link rel="STYLESHEET" type="text/css" href="p_doc.css">
17   </head>
18   <body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
19   "#840084" alink="#0000FF">
20     <div class="NAVHEADER">
21       <table summary="Header navigation table" width="100%" border="0"
22       cellpadding="0" cellspacing="0">
23         <tr>
24           <th colspan="3" align="center">
25             Privoxy 3.0.25 User Manual
26           </th>
27         </tr>
28         <tr>
29           <td width="10%" align="left" valign="bottom">
30             <a href="configuration.html" accesskey="P">Prev</a>
31           </td>
32           <td width="80%" align="center" valign="bottom">
33           </td>
34           <td width="10%" align="right" valign="bottom">
35             <a href="actions-file.html" accesskey="N">Next</a>
36           </td>
37         </tr>
38       </table>
39       <hr align="LEFT" width="100%">
40     </div>
41     <div class="SECT1">
42       <h1 class="SECT1">
43         <a name="CONFIG">7. The Main Configuration File</a>
44       </h1>
45       <p>
46         By default, the main configuration file is named <tt class=
47         "FILENAME">config</tt>, with the exception of Windows, where it is
48         named <tt class="FILENAME">config.txt</tt>. Configuration lines
49         consist of an initial keyword followed by a list of values, all
50         separated by whitespace (any number of spaces or tabs). For example:
51       </p>
52       <p>
53       </p>
54       <p class="LITERALLAYOUT">
55         <tt class="LITERAL">&nbsp;&nbsp;<span class="emphasis"><i class=
56         "EMPHASIS">confdir /etc/privoxy</i></span></tt>
57       </p>
58
59       <p>
60         Assigns the value <tt class="LITERAL">/etc/privoxy</tt> to the option
61         <tt class="LITERAL">confdir</tt> and thus indicates that the
62         configuration directory is named <span class=
63         "QUOTE">"/etc/privoxy/"</span>.
64       </p>
65       <p>
66         All options in the config file except for <tt class=
67         "LITERAL">confdir</tt> and <tt class="LITERAL">logdir</tt> are
68         optional. Watch out in the below description for what happens if you
69         leave them unset.
70       </p>
71       <p>
72         The main config file controls all aspects of <span class=
73         "APPLICATION">Privoxy</span>'s operation that are not location
74         dependent (i.e. they apply universally, no matter where you may be
75         surfing). Like the filter and action files, the config file is a
76         plain text file and can be modified with a text editor like emacs,
77         vim or notepad.exe.
78       </p>
79       <div class="SECT2">
80         <h2 class="SECT2">
81           <a name="LOCAL-SET-UP">7.1. Local Set-up Documentation</a>
82         </h2>
83         <p>
84           If you intend to operate <span class="APPLICATION">Privoxy</span>
85           for more users than just yourself, it might be a good idea to let
86           them know how to reach you, what you block and why you do that,
87           your policies, etc.
88         </p>
89         <div class="SECT3">
90           <h4 class="SECT3">
91             <a name="USER-MANUAL">7.1.1. user-manual</a>
92           </h4>
93           <div class="VARIABLELIST">
94             <dl>
95               <dt>
96                 Specifies:
97               </dt>
98               <dd>
99                 <p>
100                   Location of the <span class="APPLICATION">Privoxy</span>
101                   User Manual.
102                 </p>
103               </dd>
104               <dt>
105                 Type of value:
106               </dt>
107               <dd>
108                 <p>
109                   A fully qualified URI
110                 </p>
111               </dd>
112               <dt>
113                 Default value:
114               </dt>
115               <dd>
116                 <p>
117                   <span class="emphasis"><i class="EMPHASIS">Unset</i></span>
118                 </p>
119               </dd>
120               <dt>
121                 Effect if unset:
122               </dt>
123               <dd>
124                 <p>
125                   <a href="https://www.privoxy.org/user-manual/" target=
126                   "_top">https://www.privoxy.org/<tt class=
127                   "REPLACEABLE"><i>version</i></tt>/user-manual/</a> will be
128                   used, where <tt class="REPLACEABLE"><i>version</i></tt> is
129                   the <span class="APPLICATION">Privoxy</span> version.
130                 </p>
131               </dd>
132               <dt>
133                 Notes:
134               </dt>
135               <dd>
136                 <p>
137                   The User Manual URI is the single best source of
138                   information on <span class="APPLICATION">Privoxy</span>,
139                   and is used for help links from some of the internal CGI
140                   pages. The manual itself is normally packaged with the
141                   binary distributions, so you probably want to set this to a
142                   locally installed copy.
143                 </p>
144                 <p>
145                   Examples:
146                 </p>
147                 <p>
148                   The best all purpose solution is simply to put the full
149                   local <tt class="LITERAL">PATH</tt> to where the <i class=
150                   "CITETITLE">User Manual</i> is located:
151                 </p>
152                 <p>
153                 </p>
154                 <table border="0" bgcolor="#E0E0E0" width="90%">
155                   <tr>
156                     <td>
157 <pre class="SCREEN">
158   user-manual  /usr/share/doc/privoxy/user-manual
159 </pre>
160                     </td>
161                   </tr>
162                 </table>
163
164                 <p>
165                   The User Manual is then available to anyone with access to
166                   <span class="APPLICATION">Privoxy</span>, by following the
167                   built-in URL: <tt class=
168                   "LITERAL">http://config.privoxy.org/user-manual/</tt> (or
169                   the shortcut: <tt class=
170                   "LITERAL">http://p.p/user-manual/</tt>).
171                 </p>
172                 <p>
173                   If the documentation is not on the local system, it can be
174                   accessed from a remote server, as:
175                 </p>
176                 <p>
177                 </p>
178                 <table border="0" bgcolor="#E0E0E0" width="90%">
179                   <tr>
180                     <td>
181 <pre class="SCREEN">
182   user-manual  http://example.com/privoxy/user-manual/
183 </pre>
184                     </td>
185                   </tr>
186                 </table>
187
188                 <div class="WARNING">
189                   <table class="WARNING" border="1" width="90%">
190                     <tr>
191                       <td align="CENTER">
192                         <b>Warning</b>
193                       </td>
194                     </tr>
195                     <tr>
196                       <td align="LEFT">
197                         <p>
198                           If set, this option should be <span class=
199                           "emphasis"><i class="EMPHASIS">the first option in
200                           the config file</i></span>, because it is used
201                           while the config file is being read on start-up.
202                         </p>
203                       </td>
204                     </tr>
205                   </table>
206                 </div>
207               </dd>
208             </dl>
209           </div>
210         </div>
211         <div class="SECT3">
212           <h4 class="SECT3">
213             <a name="TRUST-INFO-URL">7.1.2. trust-info-url</a>
214           </h4>
215           <div class="VARIABLELIST">
216             <dl>
217               <dt>
218                 Specifies:
219               </dt>
220               <dd>
221                 <p>
222                   A URL to be displayed in the error page that users will see
223                   if access to an untrusted page is denied.
224                 </p>
225               </dd>
226               <dt>
227                 Type of value:
228               </dt>
229               <dd>
230                 <p>
231                   URL
232                 </p>
233               </dd>
234               <dt>
235                 Default value:
236               </dt>
237               <dd>
238                 <p>
239                   <span class="emphasis"><i class="EMPHASIS">Unset</i></span>
240                 </p>
241               </dd>
242               <dt>
243                 Effect if unset:
244               </dt>
245               <dd>
246                 <p>
247                   No links are displayed on the "untrusted" error page.
248                 </p>
249               </dd>
250               <dt>
251                 Notes:
252               </dt>
253               <dd>
254                 <p>
255                   The value of this option only matters if the experimental
256                   trust mechanism has been activated. (See <a href=
257                   "config.html#TRUSTFILE"><span class="emphasis"><i class=
258                   "EMPHASIS">trustfile</i></span></a> below.)
259                 </p>
260                 <p>
261                   If you use the trust mechanism, it is a good idea to write
262                   up some on-line documentation about your trust policy and
263                   to specify the URL(s) here. Use multiple times for multiple
264                   URLs.
265                 </p>
266                 <p>
267                   The URL(s) should be added to the trustfile as well, so
268                   users don't end up locked out from the information on why
269                   they were locked out in the first place!
270                 </p>
271               </dd>
272             </dl>
273           </div>
274         </div>
275         <div class="SECT3">
276           <h4 class="SECT3">
277             <a name="ADMIN-ADDRESS">7.1.3. admin-address</a>
278           </h4>
279           <div class="VARIABLELIST">
280             <dl>
281               <dt>
282                 Specifies:
283               </dt>
284               <dd>
285                 <p>
286                   An email address to reach the <span class=
287                   "APPLICATION">Privoxy</span> administrator.
288                 </p>
289               </dd>
290               <dt>
291                 Type of value:
292               </dt>
293               <dd>
294                 <p>
295                   Email address
296                 </p>
297               </dd>
298               <dt>
299                 Default value:
300               </dt>
301               <dd>
302                 <p>
303                   <span class="emphasis"><i class="EMPHASIS">Unset</i></span>
304                 </p>
305               </dd>
306               <dt>
307                 Effect if unset:
308               </dt>
309               <dd>
310                 <p>
311                   No email address is displayed on error pages and the CGI
312                   user interface.
313                 </p>
314               </dd>
315               <dt>
316                 Notes:
317               </dt>
318               <dd>
319                 <p>
320                   If both <tt class="LITERAL">admin-address</tt> and <tt
321                   class="LITERAL">proxy-info-url</tt> are unset, the whole
322                   "Local Privoxy Support" box on all generated pages will not
323                   be shown.
324                 </p>
325               </dd>
326             </dl>
327           </div>
328         </div>
329         <div class="SECT3">
330           <h4 class="SECT3">
331             <a name="PROXY-INFO-URL">7.1.4. proxy-info-url</a>
332           </h4>
333           <div class="VARIABLELIST">
334             <dl>
335               <dt>
336                 Specifies:
337               </dt>
338               <dd>
339                 <p>
340                   A URL to documentation about the local <span class=
341                   "APPLICATION">Privoxy</span> setup, configuration or
342                   policies.
343                 </p>
344               </dd>
345               <dt>
346                 Type of value:
347               </dt>
348               <dd>
349                 <p>
350                   URL
351                 </p>
352               </dd>
353               <dt>
354                 Default value:
355               </dt>
356               <dd>
357                 <p>
358                   <span class="emphasis"><i class="EMPHASIS">Unset</i></span>
359                 </p>
360               </dd>
361               <dt>
362                 Effect if unset:
363               </dt>
364               <dd>
365                 <p>
366                   No link to local documentation is displayed on error pages
367                   and the CGI user interface.
368                 </p>
369               </dd>
370               <dt>
371                 Notes:
372               </dt>
373               <dd>
374                 <p>
375                   If both <tt class="LITERAL">admin-address</tt> and <tt
376                   class="LITERAL">proxy-info-url</tt> are unset, the whole
377                   "Local Privoxy Support" box on all generated pages will not
378                   be shown.
379                 </p>
380                 <p>
381                   This URL shouldn't be blocked ;-)
382                 </p>
383               </dd>
384             </dl>
385           </div>
386         </div>
387       </div>
388       <div class="SECT2">
389         <h2 class="SECT2">
390           <a name="CONF-LOG-LOC">7.2. Configuration and Log File
391           Locations</a>
392         </h2>
393         <p>
394           <span class="APPLICATION">Privoxy</span> can (and normally does)
395           use a number of other files for additional configuration, help and
396           logging. This section of the configuration file tells <span class=
397           "APPLICATION">Privoxy</span> where to find those other files.
398         </p>
399         <p>
400           The user running <span class="APPLICATION">Privoxy</span>, must
401           have read permission for all configuration files, and write
402           permission to any files that would be modified, such as log files
403           and actions files.
404         </p>
405         <div class="SECT3">
406           <h4 class="SECT3">
407             <a name="CONFDIR">7.2.1. confdir</a>
408           </h4>
409           <div class="VARIABLELIST">
410             <dl>
411               <dt>
412                 Specifies:
413               </dt>
414               <dd>
415                 <p>
416                   The directory where the other configuration files are
417                   located.
418                 </p>
419               </dd>
420               <dt>
421                 Type of value:
422               </dt>
423               <dd>
424                 <p>
425                   Path name
426                 </p>
427               </dd>
428               <dt>
429                 Default value:
430               </dt>
431               <dd>
432                 <p>
433                   /etc/privoxy (Unix) <span class="emphasis"><i class=
434                   "EMPHASIS">or</i></span> <span class=
435                   "APPLICATION">Privoxy</span> installation dir (Windows)
436                 </p>
437               </dd>
438               <dt>
439                 Effect if unset:
440               </dt>
441               <dd>
442                 <p>
443                   <span class="emphasis"><i class=
444                   "EMPHASIS">Mandatory</i></span>
445                 </p>
446               </dd>
447               <dt>
448                 Notes:
449               </dt>
450               <dd>
451                 <p>
452                   No trailing <span class="QUOTE">"<tt class=
453                   "LITERAL">/</tt>"</span>, please.
454                 </p>
455               </dd>
456             </dl>
457           </div>
458         </div>
459         <div class="SECT3">
460           <h4 class="SECT3">
461             <a name="TEMPLDIR">7.2.2. templdir</a>
462           </h4>
463           <div class="VARIABLELIST">
464             <dl>
465               <dt>
466                 Specifies:
467               </dt>
468               <dd>
469                 <p>
470                   An alternative directory where the templates are loaded
471                   from.
472                 </p>
473               </dd>
474               <dt>
475                 Type of value:
476               </dt>
477               <dd>
478                 <p>
479                   Path name
480                 </p>
481               </dd>
482               <dt>
483                 Default value:
484               </dt>
485               <dd>
486                 <p>
487                   unset
488                 </p>
489               </dd>
490               <dt>
491                 Effect if unset:
492               </dt>
493               <dd>
494                 <p>
495                   The templates are assumed to be located in
496                   confdir/template.
497                 </p>
498               </dd>
499               <dt>
500                 Notes:
501               </dt>
502               <dd>
503                 <p>
504                   <span class="APPLICATION">Privoxy's</span> original
505                   templates are usually overwritten with each update. Use
506                   this option to relocate customized templates that should be
507                   kept. As template variables might change between updates,
508                   you shouldn't expect templates to work with <span class=
509                   "APPLICATION">Privoxy</span> releases other than the one
510                   they were part of, though.
511                 </p>
512               </dd>
513             </dl>
514           </div>
515         </div>
516         <div class="SECT3">
517           <h4 class="SECT3">
518             <a name="TEMPORARY-DIRECTORY">7.2.3. temporary-directory</a>
519           </h4>
520           <div class="VARIABLELIST">
521             <dl>
522               <dt>
523                 Specifies:
524               </dt>
525               <dd>
526                 <p>
527                   A directory where Privoxy can create temporary files.
528                 </p>
529               </dd>
530               <dt>
531                 Type of value:
532               </dt>
533               <dd>
534                 <p>
535                   Path name
536                 </p>
537               </dd>
538               <dt>
539                 Default value:
540               </dt>
541               <dd>
542                 <p>
543                   unset
544                 </p>
545               </dd>
546               <dt>
547                 Effect if unset:
548               </dt>
549               <dd>
550                 <p>
551                   No temporary files are created, external filters don't
552                   work.
553                 </p>
554               </dd>
555               <dt>
556                 Notes:
557               </dt>
558               <dd>
559                 <p>
560                   To execute <tt class="LITERAL"><a href=
561                   "actions-file.html#EXTERNAL-FILTER" target="_top">external
562                   filters</a></tt>, <span class="APPLICATION">Privoxy</span>
563                   has to create temporary files. This directive specifies the
564                   directory the temporary files should be written to.
565                 </p>
566                 <p>
567                   It should be a directory only <span class=
568                   "APPLICATION">Privoxy</span> (and trusted users) can
569                   access.
570                 </p>
571               </dd>
572             </dl>
573           </div>
574         </div>
575         <div class="SECT3">
576           <h4 class="SECT3">
577             <a name="LOGDIR">7.2.4. logdir</a>
578           </h4>
579           <div class="VARIABLELIST">
580             <dl>
581               <dt>
582                 Specifies:
583               </dt>
584               <dd>
585                 <p>
586                   The directory where all logging takes place (i.e. where the
587                   <tt class="FILENAME">logfile</tt> is located).
588                 </p>
589               </dd>
590               <dt>
591                 Type of value:
592               </dt>
593               <dd>
594                 <p>
595                   Path name
596                 </p>
597               </dd>
598               <dt>
599                 Default value:
600               </dt>
601               <dd>
602                 <p>
603                   /var/log/privoxy (Unix) <span class="emphasis"><i class=
604                   "EMPHASIS">or</i></span> <span class=
605                   "APPLICATION">Privoxy</span> installation dir (Windows)
606                 </p>
607               </dd>
608               <dt>
609                 Effect if unset:
610               </dt>
611               <dd>
612                 <p>
613                   <span class="emphasis"><i class=
614                   "EMPHASIS">Mandatory</i></span>
615                 </p>
616               </dd>
617               <dt>
618                 Notes:
619               </dt>
620               <dd>
621                 <p>
622                   No trailing <span class="QUOTE">"<tt class=
623                   "LITERAL">/</tt>"</span>, please.
624                 </p>
625               </dd>
626             </dl>
627           </div>
628         </div>
629         <div class="SECT3">
630           <h4 class="SECT3">
631             <a name="ACTIONSFILE">7.2.5. actionsfile</a>
632           </h4>
633           <a name="DEFAULT.ACTION"></a><a name="STANDARD.ACTION"></a><a name=
634           "USER.ACTION"></a>
635           <div class="VARIABLELIST">
636             <dl>
637               <dt>
638                 Specifies:
639               </dt>
640               <dd>
641                 <p>
642                   The <a href="actions-file.html">actions file(s)</a> to use
643                 </p>
644               </dd>
645               <dt>
646                 Type of value:
647               </dt>
648               <dd>
649                 <p>
650                   Complete file name, relative to <tt class=
651                   "LITERAL">confdir</tt>
652                 </p>
653               </dd>
654               <dt>
655                 Default values:
656               </dt>
657               <dd>
658                 <table border="0">
659                   <tbody>
660                     <tr>
661                       <td>
662                         <p class="LITERALLAYOUT">
663                           &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.
664                         </p>
665                       </td>
666                     </tr>
667                     <tr>
668                       <td>
669                         <p class="LITERALLAYOUT">
670                           &nbsp;&nbsp;default.action&nbsp;&nbsp;&nbsp;#&nbsp;Main&nbsp;actions&nbsp;file
671                         </p>
672                       </td>
673                     </tr>
674                     <tr>
675                       <td>
676                         <p class="LITERALLAYOUT">
677                           &nbsp;&nbsp;user.action&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;User&nbsp;customizations
678                         </p>
679                       </td>
680                     </tr>
681                   </tbody>
682                 </table>
683               </dd>
684               <dt>
685                 Effect if unset:
686               </dt>
687               <dd>
688                 <p>
689                   No actions are taken at all. More or less neutral proxying.
690                 </p>
691               </dd>
692               <dt>
693                 Notes:
694               </dt>
695               <dd>
696                 <p>
697                   Multiple <tt class="LITERAL">actionsfile</tt> lines are
698                   permitted, and are in fact recommended!
699                 </p>
700                 <p>
701                   The default values are <tt class=
702                   "FILENAME">default.action</tt>, which is the <span class=
703                   "QUOTE">"main"</span> actions file maintained by the
704                   developers, and <tt class="FILENAME">user.action</tt>,
705                   where you can make your personal additions.
706                 </p>
707                 <p>
708                   Actions files contain all the per site and per URL
709                   configuration for ad blocking, cookie management, privacy
710                   considerations, etc.
711                 </p>
712               </dd>
713             </dl>
714           </div>
715         </div>
716         <div class="SECT3">
717           <h4 class="SECT3">
718             <a name="FILTERFILE">7.2.6. filterfile</a>
719           </h4>
720           <a name="DEFAULT.FILTER"></a>
721           <div class="VARIABLELIST">
722             <dl>
723               <dt>
724                 Specifies:
725               </dt>
726               <dd>
727                 <p>
728                   The <a href="filter-file.html">filter file(s)</a> to use
729                 </p>
730               </dd>
731               <dt>
732                 Type of value:
733               </dt>
734               <dd>
735                 <p>
736                   File name, relative to <tt class="LITERAL">confdir</tt>
737                 </p>
738               </dd>
739               <dt>
740                 Default value:
741               </dt>
742               <dd>
743                 <p>
744                   default.filter (Unix) <span class="emphasis"><i class=
745                   "EMPHASIS">or</i></span> default.filter.txt (Windows)
746                 </p>
747               </dd>
748               <dt>
749                 Effect if unset:
750               </dt>
751               <dd>
752                 <p>
753                   No textual content filtering takes place, i.e. all <tt
754                   class="LITERAL">+<a href=
755                   "actions-file.html#FILTER">filter</a>{<tt class=
756                   "REPLACEABLE"><i>name</i></tt>}</tt> actions in the actions
757                   files are turned neutral.
758                 </p>
759               </dd>
760               <dt>
761                 Notes:
762               </dt>
763               <dd>
764                 <p>
765                   Multiple <tt class="LITERAL">filterfile</tt> lines are
766                   permitted.
767                 </p>
768                 <p>
769                   The <a href="filter-file.html">filter files</a> contain
770                   content modification rules that use <a href=
771                   "appendix.html#REGEX">regular expressions</a>. These rules
772                   permit powerful changes on the content of Web pages, and
773                   optionally the headers as well, e.g., you could try to
774                   disable your favorite JavaScript annoyances, re-write the
775                   actual displayed text, or just have some fun playing
776                   buzzword bingo with web pages.
777                 </p>
778                 <p>
779                   The <tt class="LITERAL">+<a href=
780                   "actions-file.html#FILTER">filter</a>{<tt class=
781                   "REPLACEABLE"><i>name</i></tt>}</tt> actions rely on the
782                   relevant filter (<tt class="REPLACEABLE"><i>name</i></tt>)
783                   to be defined in a filter file!
784                 </p>
785                 <p>
786                   A pre-defined filter file called <tt class=
787                   "FILENAME">default.filter</tt> that contains a number of
788                   useful filters for common problems is included in the
789                   distribution. See the section on the <tt class="LITERAL"><a
790                   href="actions-file.html#FILTER">filter</a></tt> action for
791                   a list.
792                 </p>
793                 <p>
794                   It is recommended to place any locally adapted filters into
795                   a separate file, such as <tt class=
796                   "FILENAME">user.filter</tt>.
797                 </p>
798               </dd>
799             </dl>
800           </div>
801         </div>
802         <div class="SECT3">
803           <h4 class="SECT3">
804             <a name="LOGFILE">7.2.7. logfile</a>
805           </h4>
806           <div class="VARIABLELIST">
807             <dl>
808               <dt>
809                 Specifies:
810               </dt>
811               <dd>
812                 <p>
813                   The log file to use
814                 </p>
815               </dd>
816               <dt>
817                 Type of value:
818               </dt>
819               <dd>
820                 <p>
821                   File name, relative to <tt class="LITERAL">logdir</tt>
822                 </p>
823               </dd>
824               <dt>
825                 Default value:
826               </dt>
827               <dd>
828                 <p>
829                   <span class="emphasis"><i class="EMPHASIS">Unset (commented
830                   out)</i></span>. When activated: logfile (Unix) <span
831                   class="emphasis"><i class="EMPHASIS">or</i></span>
832                   privoxy.log (Windows).
833                 </p>
834               </dd>
835               <dt>
836                 Effect if unset:
837               </dt>
838               <dd>
839                 <p>
840                   No logfile is written.
841                 </p>
842               </dd>
843               <dt>
844                 Notes:
845               </dt>
846               <dd>
847                 <p>
848                   The logfile is where all logging and error messages are
849                   written. The level of detail and number of messages are set
850                   with the <tt class="LITERAL">debug</tt> option (see below).
851                   The logfile can be useful for tracking down a problem with
852                   <span class="APPLICATION">Privoxy</span> (e.g., it's not
853                   blocking an ad you think it should block) and it can help
854                   you to monitor what your browser is doing.
855                 </p>
856                 <p>
857                   Depending on the debug options below, the logfile may be a
858                   privacy risk if third parties can get access to it. As most
859                   users will never look at it, <span class=
860                   "APPLICATION">Privoxy</span> only logs fatal errors by
861                   default.
862                 </p>
863                 <p>
864                   For most troubleshooting purposes, you will have to change
865                   that, please refer to the debugging section for details.
866                 </p>
867                 <p>
868                   Any log files must be writable by whatever user <span
869                   class="APPLICATION">Privoxy</span> is being run as (on
870                   Unix, default user id is <span class=
871                   "QUOTE">"privoxy"</span>).
872                 </p>
873                 <p>
874                   To prevent the logfile from growing indefinitely, it is
875                   recommended to periodically rotate or shorten it. Many
876                   operating systems support log rotation out of the box, some
877                   require additional software to do it. For details, please
878                   refer to the documentation for your operating system.
879                 </p>
880               </dd>
881             </dl>
882           </div>
883         </div>
884         <div class="SECT3">
885           <h4 class="SECT3">
886             <a name="TRUSTFILE">7.2.8. trustfile</a>
887           </h4>
888           <div class="VARIABLELIST">
889             <dl>
890               <dt>
891                 Specifies:
892               </dt>
893               <dd>
894                 <p>
895                   The name of the trust file to use
896                 </p>
897               </dd>
898               <dt>
899                 Type of value:
900               </dt>
901               <dd>
902                 <p>
903                   File name, relative to <tt class="LITERAL">confdir</tt>
904                 </p>
905               </dd>
906               <dt>
907                 Default value:
908               </dt>
909               <dd>
910                 <p>
911                   <span class="emphasis"><i class="EMPHASIS">Unset (commented
912                   out)</i></span>. When activated: trust (Unix) <span class=
913                   "emphasis"><i class="EMPHASIS">or</i></span> trust.txt
914                   (Windows)
915                 </p>
916               </dd>
917               <dt>
918                 Effect if unset:
919               </dt>
920               <dd>
921                 <p>
922                   The entire trust mechanism is disabled.
923                 </p>
924               </dd>
925               <dt>
926                 Notes:
927               </dt>
928               <dd>
929                 <p>
930                   The trust mechanism is an experimental feature for building
931                   white-lists and should be used with care. It is <span
932                   class="emphasis"><i class="EMPHASIS">NOT</i></span>
933                   recommended for the casual user.
934                 </p>
935                 <p>
936                   If you specify a trust file, <span class=
937                   "APPLICATION">Privoxy</span> will only allow access to
938                   sites that are specified in the trustfile. Sites can be
939                   listed in one of two ways:
940                 </p>
941                 <p>
942                   Prepending a <tt class="LITERAL">~</tt> character limits
943                   access to this site only (and any sub-paths within this
944                   site), e.g. <tt class="LITERAL">~www.example.com</tt>
945                   allows access to <tt class=
946                   "LITERAL">~www.example.com/features/news.html</tt>, etc.
947                 </p>
948                 <p>
949                   Or, you can designate sites as <span class="emphasis"><i
950                   class="EMPHASIS">trusted referrers</i></span>, by
951                   prepending the name with a <tt class="LITERAL">+</tt>
952                   character. The effect is that access to untrusted sites
953                   will be granted -- but only if a link from this trusted
954                   referrer was used to get there. The link target will then
955                   be added to the <span class="QUOTE">"trustfile"</span> so
956                   that future, direct accesses will be granted. Sites added
957                   via this mechanism do not become trusted referrers
958                   themselves (i.e. they are added with a <tt class=
959                   "LITERAL">~</tt> designation). There is a limit of 512 such
960                   entries, after which new entries will not be made.
961                 </p>
962                 <p>
963                   If you use the <tt class="LITERAL">+</tt> operator in the
964                   trust file, it may grow considerably over time.
965                 </p>
966                 <p>
967                   It is recommended that <span class=
968                   "APPLICATION">Privoxy</span> be compiled with the <tt
969                   class="LITERAL">--disable-force</tt>, <tt class=
970                   "LITERAL">--disable-toggle</tt> and <tt class=
971                   "LITERAL">--disable-editor</tt> options, if this feature is
972                   to be used.
973                 </p>
974                 <p>
975                   Possible applications include limiting Internet access for
976                   children.
977                 </p>
978               </dd>
979             </dl>
980           </div>
981         </div>
982       </div>
983       <div class="SECT2">
984         <h2 class="SECT2">
985           <a name="DEBUGGING">7.3. Debugging</a>
986         </h2>
987         <p>
988           These options are mainly useful when tracing a problem. Note that
989           you might also want to invoke <span class=
990           "APPLICATION">Privoxy</span> with the <tt class=
991           "LITERAL">--no-daemon</tt> command line option when debugging.
992         </p>
993         <div class="SECT3">
994           <h4 class="SECT3">
995             <a name="DEBUG">7.3.1. debug</a>
996           </h4>
997           <div class="VARIABLELIST">
998             <dl>
999               <dt>
1000                 Specifies:
1001               </dt>
1002               <dd>
1003                 <p>
1004                   Key values that determine what information gets logged.
1005                 </p>
1006               </dd>
1007               <dt>
1008                 Type of value:
1009               </dt>
1010               <dd>
1011                 <p>
1012                   Integer values
1013                 </p>
1014               </dd>
1015               <dt>
1016                 Default value:
1017               </dt>
1018               <dd>
1019                 <p>
1020                   0 (i.e.: only fatal errors (that cause Privoxy to exit) are
1021                   logged)
1022                 </p>
1023               </dd>
1024               <dt>
1025                 Effect if unset:
1026               </dt>
1027               <dd>
1028                 <p>
1029                   Default value is used (see above).
1030                 </p>
1031               </dd>
1032               <dt>
1033                 Notes:
1034               </dt>
1035               <dd>
1036                 <p>
1037                   The available debug levels are:
1038                 </p>
1039                 <p>
1040                 </p>
1041                 <table border="0" bgcolor="#E0E0E0" width="90%">
1042                   <tr>
1043                     <td>
1044 <pre class="PROGRAMLISTING">
1045   debug     1 # Log the destination for each request <span class=
1046 "APPLICATION">Privoxy</span> let through. See also debug 1024.
1047   debug     2 # show each connection status
1048   debug     4 # show I/O status
1049   debug     8 # show header parsing
1050   debug    16 # log all data written to the network
1051   debug    32 # debug force feature
1052   debug    64 # debug regular expression filters
1053   debug   128 # debug redirects
1054   debug   256 # debug GIF de-animation
1055   debug   512 # Common Log Format
1056   debug  1024 # Log the destination for requests <span class=
1057 "APPLICATION">Privoxy</span> didn't let through, and the reason why.
1058   debug  2048 # CGI user interface
1059   debug  4096 # Startup banner and warnings.
1060   debug  8192 # Non-fatal errors
1061   debug 32768 # log all data read from the network
1062   debug 65536 # Log the applying actions
1063 </pre>
1064                     </td>
1065                   </tr>
1066                 </table>
1067
1068                 <p>
1069                   To select multiple debug levels, you can either add them or
1070                   use multiple <tt class="LITERAL">debug</tt> lines.
1071                 </p>
1072                 <p>
1073                   A debug level of 1 is informative because it will show you
1074                   each request as it happens. <span class="emphasis"><i
1075                   class="EMPHASIS">1, 1024, 4096 and 8192 are
1076                   recommended</i></span> so that you will notice when things
1077                   go wrong. The other levels are probably only of interest if
1078                   you are hunting down a specific problem. They can produce a
1079                   hell of an output (especially 16).
1080                 </p>
1081                 <p>
1082                   If you are used to the more verbose settings, simply enable
1083                   the debug lines below again.
1084                 </p>
1085                 <p>
1086                   If you want to use pure CLF (Common Log Format), you should
1087                   set <span class="QUOTE">"debug 512"</span> <span class=
1088                   "emphasis"><i class="EMPHASIS">ONLY</i></span> and not
1089                   enable anything else.
1090                 </p>
1091                 <p>
1092                   <span class="APPLICATION">Privoxy</span> has a hard-coded
1093                   limit for the length of log messages. If it's reached,
1094                   messages are logged truncated and marked with <span class=
1095                   "QUOTE">"... [too long, truncated]"</span>.
1096                 </p>
1097                 <p>
1098                   Please don't file any support requests without trying to
1099                   reproduce the problem with increased debug level first.
1100                   Once you read the log messages, you may even be able to
1101                   solve the problem on your own.
1102                 </p>
1103               </dd>
1104             </dl>
1105           </div>
1106         </div>
1107         <div class="SECT3">
1108           <h4 class="SECT3">
1109             <a name="SINGLE-THREADED">7.3.2. single-threaded</a>
1110           </h4>
1111           <div class="VARIABLELIST">
1112             <dl>
1113               <dt>
1114                 Specifies:
1115               </dt>
1116               <dd>
1117                 <p>
1118                   Whether to run only one server thread.
1119                 </p>
1120               </dd>
1121               <dt>
1122                 Type of value:
1123               </dt>
1124               <dd>
1125                 <p>
1126                   <span class="emphasis"><i class="EMPHASIS">1 or
1127                   0</i></span>
1128                 </p>
1129               </dd>
1130               <dt>
1131                 Default value:
1132               </dt>
1133               <dd>
1134                 <p>
1135                   <span class="emphasis"><i class="EMPHASIS">0</i></span>
1136                 </p>
1137               </dd>
1138               <dt>
1139                 Effect if unset:
1140               </dt>
1141               <dd>
1142                 <p>
1143                   Multi-threaded (or, where unavailable: forked) operation,
1144                   i.e. the ability to serve multiple requests simultaneously.
1145                 </p>
1146               </dd>
1147               <dt>
1148                 Notes:
1149               </dt>
1150               <dd>
1151                 <p>
1152                   This option is only there for debugging purposes. <span
1153                   class="emphasis"><i class="EMPHASIS">It will drastically
1154                   reduce performance.</i></span>
1155                 </p>
1156               </dd>
1157             </dl>
1158           </div>
1159         </div>
1160         <div class="SECT3">
1161           <h4 class="SECT3">
1162             <a name="HOSTNAME">7.3.3. hostname</a>
1163           </h4>
1164           <div class="VARIABLELIST">
1165             <dl>
1166               <dt>
1167                 Specifies:
1168               </dt>
1169               <dd>
1170                 <p>
1171                   The hostname shown on the CGI pages.
1172                 </p>
1173               </dd>
1174               <dt>
1175                 Type of value:
1176               </dt>
1177               <dd>
1178                 <p>
1179                   Text
1180                 </p>
1181               </dd>
1182               <dt>
1183                 Default value:
1184               </dt>
1185               <dd>
1186                 <p>
1187                   <span class="emphasis"><i class="EMPHASIS">Unset</i></span>
1188                 </p>
1189               </dd>
1190               <dt>
1191                 Effect if unset:
1192               </dt>
1193               <dd>
1194                 <p>
1195                   The hostname provided by the operating system is used.
1196                 </p>
1197               </dd>
1198               <dt>
1199                 Notes:
1200               </dt>
1201               <dd>
1202                 <p>
1203                   On some misconfigured systems resolving the hostname fails
1204                   or takes too much time and slows Privoxy down. Setting a
1205                   fixed hostname works around the problem.
1206                 </p>
1207                 <p>
1208                   In other circumstances it might be desirable to show a
1209                   hostname other than the one returned by the operating
1210                   system. For example if the system has several different
1211                   hostnames and you don't want to use the first one.
1212                 </p>
1213                 <p>
1214                   Note that Privoxy does not validate the specified hostname
1215                   value.
1216                 </p>
1217               </dd>
1218             </dl>
1219           </div>
1220         </div>
1221       </div>
1222       <div class="SECT2">
1223         <h2 class="SECT2">
1224           <a name="ACCESS-CONTROL">7.4. Access Control and Security</a>
1225         </h2>
1226         <p>
1227           This section of the config file controls the security-relevant
1228           aspects of <span class="APPLICATION">Privoxy</span>'s
1229           configuration.
1230         </p>
1231         <div class="SECT3">
1232           <h4 class="SECT3">
1233             <a name="LISTEN-ADDRESS">7.4.1. listen-address</a>
1234           </h4>
1235           <div class="VARIABLELIST">
1236             <dl>
1237               <dt>
1238                 Specifies:
1239               </dt>
1240               <dd>
1241                 <p>
1242                   The address and TCP port on which <span class=
1243                   "APPLICATION">Privoxy</span> will listen for client
1244                   requests.
1245                 </p>
1246               </dd>
1247               <dt>
1248                 Type of value:
1249               </dt>
1250               <dd>
1251                 <p>
1252                   [<tt class="REPLACEABLE"><i>IP-Address</i></tt>]:<tt class=
1253                   "REPLACEABLE"><i>Port</i></tt>
1254                 </p>
1255                 <p>
1256                   [<tt class="REPLACEABLE"><i>Hostname</i></tt>]:<tt class=
1257                   "REPLACEABLE"><i>Port</i></tt>
1258                 </p>
1259               </dd>
1260               <dt>
1261                 Default value:
1262               </dt>
1263               <dd>
1264                 <p>
1265                   127.0.0.1:8118
1266                 </p>
1267               </dd>
1268               <dt>
1269                 Effect if unset:
1270               </dt>
1271               <dd>
1272                 <p>
1273                   Bind to 127.0.0.1 (IPv4 localhost), port 8118. This is
1274                   suitable and recommended for home users who run <span
1275                   class="APPLICATION">Privoxy</span> on the same machine as
1276                   their browser.
1277                 </p>
1278               </dd>
1279               <dt>
1280                 Notes:
1281               </dt>
1282               <dd>
1283                 <p>
1284                   You will need to configure your browser(s) to this proxy
1285                   address and port.
1286                 </p>
1287                 <p>
1288                   If you already have another service running on port 8118,
1289                   or if you want to serve requests from other machines (e.g.
1290                   on your local network) as well, you will need to override
1291                   the default.
1292                 </p>
1293                 <p>
1294                   You can use this statement multiple times to make <span
1295                   class="APPLICATION">Privoxy</span> listen on more ports or
1296                   more <abbr class="ABBREV">IP</abbr> addresses. Suitable if
1297                   your operating system does not support sharing <abbr class=
1298                   "ABBREV">IPv6</abbr> and <abbr class="ABBREV">IPv4</abbr>
1299                   protocols on the same socket.
1300                 </p>
1301                 <p>
1302                   If a hostname is used instead of an IP address, <span
1303                   class="APPLICATION">Privoxy</span> will try to resolve it
1304                   to an IP address and if there are multiple, use the first
1305                   one returned.
1306                 </p>
1307                 <p>
1308                   If the address for the hostname isn't already known on the
1309                   system (for example because it's in /etc/hostname), this
1310                   may result in DNS traffic.
1311                 </p>
1312                 <p>
1313                   If the specified address isn't available on the system, or
1314                   if the hostname can't be resolved, <span class=
1315                   "APPLICATION">Privoxy</span> will fail to start.
1316                 </p>
1317                 <p>
1318                   IPv6 addresses containing colons have to be quoted by
1319                   brackets. They can only be used if <span class=
1320                   "APPLICATION">Privoxy</span> has been compiled with IPv6
1321                   support. If you aren't sure if your version supports it,
1322                   have a look at <tt class=
1323                   "LITERAL">http://config.privoxy.org/show-status</tt>.
1324                 </p>
1325                 <p>
1326                   Some operating systems will prefer IPv6 to IPv4 addresses
1327                   even if the system has no IPv6 connectivity which is
1328                   usually not expected by the user. Some even rely on DNS to
1329                   resolve localhost which mean the "localhost" address used
1330                   may not actually be local.
1331                 </p>
1332                 <p>
1333                   It is therefore recommended to explicitly configure the
1334                   intended IP address instead of relying on the operating
1335                   system, unless there's a strong reason not to.
1336                 </p>
1337                 <p>
1338                   If you leave out the address, <span class=
1339                   "APPLICATION">Privoxy</span> will bind to all IPv4
1340                   interfaces (addresses) on your machine and may become
1341                   reachable from the Internet and/or the local network. Be
1342                   aware that some GNU/Linux distributions modify that
1343                   behaviour without updating the documentation. Check for
1344                   non-standard patches if your <span class=
1345                   "APPLICATION">Privoxy</span> version behaves differently.
1346                 </p>
1347                 <p>
1348                   If you configure <span class="APPLICATION">Privoxy</span>
1349                   to be reachable from the network, consider using <a href=
1350                   "config.html#ACLS">access control lists</a> (ACL's, see
1351                   below), and/or a firewall.
1352                 </p>
1353                 <p>
1354                   If you open <span class="APPLICATION">Privoxy</span> to
1355                   untrusted users, you will also want to make sure that the
1356                   following actions are disabled: <tt class="LITERAL"><a
1357                   href=
1358                   "config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</a></tt>
1359                   and <tt class="LITERAL"><a href=
1360                   "config.html#ENABLE-REMOTE-TOGGLE">enable-remote-toggle</a></tt>
1361                 </p>
1362               </dd>
1363               <dt>
1364                 Example:
1365               </dt>
1366               <dd>
1367                 <p>
1368                   Suppose you are running <span class=
1369                   "APPLICATION">Privoxy</span> on a machine which has the
1370                   address 192.168.0.1 on your local private network
1371                   (192.168.0.0) and has another outside connection with a
1372                   different address. You want it to serve requests from
1373                   inside only:
1374                 </p>
1375                 <p>
1376                 </p>
1377                 <table border="0" bgcolor="#E0E0E0" width="90%">
1378                   <tr>
1379                     <td>
1380 <pre class="PROGRAMLISTING">
1381   listen-address  192.168.0.1:8118
1382 </pre>
1383                     </td>
1384                   </tr>
1385                 </table>
1386
1387                 <p>
1388                   Suppose you are running <span class=
1389                   "APPLICATION">Privoxy</span> on an IPv6-capable machine and
1390                   you want it to listen on the IPv6 address of the loopback
1391                   device:
1392                 </p>
1393                 <p>
1394                 </p>
1395                 <table border="0" bgcolor="#E0E0E0" width="90%">
1396                   <tr>
1397                     <td>
1398 <pre class="PROGRAMLISTING">
1399   listen-address [::1]:8118
1400 </pre>
1401                     </td>
1402                   </tr>
1403                 </table>
1404               </dd>
1405             </dl>
1406           </div>
1407         </div>
1408         <div class="SECT3">
1409           <h4 class="SECT3">
1410             <a name="TOGGLE">7.4.2. toggle</a>
1411           </h4>
1412           <div class="VARIABLELIST">
1413             <dl>
1414               <dt>
1415                 Specifies:
1416               </dt>
1417               <dd>
1418                 <p>
1419                   Initial state of "toggle" status
1420                 </p>
1421               </dd>
1422               <dt>
1423                 Type of value:
1424               </dt>
1425               <dd>
1426                 <p>
1427                   1 or 0
1428                 </p>
1429               </dd>
1430               <dt>
1431                 Default value:
1432               </dt>
1433               <dd>
1434                 <p>
1435                   1
1436                 </p>
1437               </dd>
1438               <dt>
1439                 Effect if unset:
1440               </dt>
1441               <dd>
1442                 <p>
1443                   Act as if toggled on
1444                 </p>
1445               </dd>
1446               <dt>
1447                 Notes:
1448               </dt>
1449               <dd>
1450                 <p>
1451                   If set to 0, <span class="APPLICATION">Privoxy</span> will
1452                   start in <span class="QUOTE">"toggled off"</span> mode,
1453                   i.e. mostly behave like a normal, content-neutral proxy
1454                   with both ad blocking and content filtering disabled. See
1455                   <tt class="LITERAL">enable-remote-toggle</tt> below.
1456                 </p>
1457               </dd>
1458             </dl>
1459           </div>
1460         </div>
1461         <div class="SECT3">
1462           <h4 class="SECT3">
1463             <a name="ENABLE-REMOTE-TOGGLE">7.4.3. enable-remote-toggle</a>
1464           </h4>
1465           <div class="VARIABLELIST">
1466             <dl>
1467               <dt>
1468                 Specifies:
1469               </dt>
1470               <dd>
1471                 <p>
1472                   Whether or not the <a href=
1473                   "http://config.privoxy.org/toggle" target="_top">web-based
1474                   toggle feature</a> may be used
1475                 </p>
1476               </dd>
1477               <dt>
1478                 Type of value:
1479               </dt>
1480               <dd>
1481                 <p>
1482                   0 or 1
1483                 </p>
1484               </dd>
1485               <dt>
1486                 Default value:
1487               </dt>
1488               <dd>
1489                 <p>
1490                   0
1491                 </p>
1492               </dd>
1493               <dt>
1494                 Effect if unset:
1495               </dt>
1496               <dd>
1497                 <p>
1498                   The web-based toggle feature is disabled.
1499                 </p>
1500               </dd>
1501               <dt>
1502                 Notes:
1503               </dt>
1504               <dd>
1505                 <p>
1506                   When toggled off, <span class="APPLICATION">Privoxy</span>
1507                   mostly acts like a normal, content-neutral proxy, i.e.
1508                   doesn't block ads or filter content.
1509                 </p>
1510                 <p>
1511                   Access to the toggle feature can <span class="emphasis"><i
1512                   class="EMPHASIS">not</i></span> be controlled separately by
1513                   <span class="QUOTE">"ACLs"</span> or HTTP authentication,
1514                   so that everybody who can access <span class=
1515                   "APPLICATION">Privoxy</span> (see <span class=
1516                   "QUOTE">"ACLs"</span> and <tt class=
1517                   "LITERAL">listen-address</tt> above) can toggle it for all
1518                   users. So this option is <span class="emphasis"><i class=
1519                   "EMPHASIS">not recommended</i></span> for multi-user
1520                   environments with untrusted users.
1521                 </p>
1522                 <p>
1523                   Note that malicious client side code (e.g Java) is also
1524                   capable of using this option.
1525                 </p>
1526                 <p>
1527                   As a lot of <span class="APPLICATION">Privoxy</span> users
1528                   don't read documentation, this feature is disabled by
1529                   default.
1530                 </p>
1531                 <p>
1532                   Note that you must have compiled <span class=
1533                   "APPLICATION">Privoxy</span> with support for this feature,
1534                   otherwise this option has no effect.
1535                 </p>
1536               </dd>
1537             </dl>
1538           </div>
1539         </div>
1540         <div class="SECT3">
1541           <h4 class="SECT3">
1542             <a name="ENABLE-REMOTE-HTTP-TOGGLE">7.4.4.
1543             enable-remote-http-toggle</a>
1544           </h4>
1545           <div class="VARIABLELIST">
1546             <dl>
1547               <dt>
1548                 Specifies:
1549               </dt>
1550               <dd>
1551                 <p>
1552                   Whether or not Privoxy recognizes special HTTP headers to
1553                   change its behaviour.
1554                 </p>
1555               </dd>
1556               <dt>
1557                 Type of value:
1558               </dt>
1559               <dd>
1560                 <p>
1561                   0 or 1
1562                 </p>
1563               </dd>
1564               <dt>
1565                 Default value:
1566               </dt>
1567               <dd>
1568                 <p>
1569                   0
1570                 </p>
1571               </dd>
1572               <dt>
1573                 Effect if unset:
1574               </dt>
1575               <dd>
1576                 <p>
1577                   Privoxy ignores special HTTP headers.
1578                 </p>
1579               </dd>
1580               <dt>
1581                 Notes:
1582               </dt>
1583               <dd>
1584                 <p>
1585                   When toggled on, the client can change <span class=
1586                   "APPLICATION">Privoxy's</span> behaviour by setting special
1587                   HTTP headers. Currently the only supported special header
1588                   is <span class="QUOTE">"X-Filter: No"</span>, to disable
1589                   filtering for the ongoing request, even if it is enabled in
1590                   one of the action files.
1591                 </p>
1592                 <p>
1593                   This feature is disabled by default. If you are using <span
1594                   class="APPLICATION">Privoxy</span> in a environment with
1595                   trusted clients, you may enable this feature at your
1596                   discretion. Note that malicious client side code (e.g Java)
1597                   is also capable of using this feature.
1598                 </p>
1599                 <p>
1600                   This option will be removed in future releases as it has
1601                   been obsoleted by the more general header taggers.
1602                 </p>
1603               </dd>
1604             </dl>
1605           </div>
1606         </div>
1607         <div class="SECT3">
1608           <h4 class="SECT3">
1609             <a name="ENABLE-EDIT-ACTIONS">7.4.5. enable-edit-actions</a>
1610           </h4>
1611           <div class="VARIABLELIST">
1612             <dl>
1613               <dt>
1614                 Specifies:
1615               </dt>
1616               <dd>
1617                 <p>
1618                   Whether or not the <a href=
1619                   "http://config.privoxy.org/show-status" target=
1620                   "_top">web-based actions file editor</a> may be used
1621                 </p>
1622               </dd>
1623               <dt>
1624                 Type of value:
1625               </dt>
1626               <dd>
1627                 <p>
1628                   0 or 1
1629                 </p>
1630               </dd>
1631               <dt>
1632                 Default value:
1633               </dt>
1634               <dd>
1635                 <p>
1636                   0
1637                 </p>
1638               </dd>
1639               <dt>
1640                 Effect if unset:
1641               </dt>
1642               <dd>
1643                 <p>
1644                   The web-based actions file editor is disabled.
1645                 </p>
1646               </dd>
1647               <dt>
1648                 Notes:
1649               </dt>
1650               <dd>
1651                 <p>
1652                   Access to the editor can <span class="emphasis"><i class=
1653                   "EMPHASIS">not</i></span> be controlled separately by <span
1654                   class="QUOTE">"ACLs"</span> or HTTP authentication, so that
1655                   everybody who can access <span class=
1656                   "APPLICATION">Privoxy</span> (see <span class=
1657                   "QUOTE">"ACLs"</span> and <tt class=
1658                   "LITERAL">listen-address</tt> above) can modify its
1659                   configuration for all users.
1660                 </p>
1661                 <p>
1662                   This option is <span class="emphasis"><i class=
1663                   "EMPHASIS">not recommended</i></span> for environments with
1664                   untrusted users and as a lot of <span class=
1665                   "APPLICATION">Privoxy</span> users don't read
1666                   documentation, this feature is disabled by default.
1667                 </p>
1668                 <p>
1669                   Note that malicious client side code (e.g Java) is also
1670                   capable of using the actions editor and you shouldn't
1671                   enable this options unless you understand the consequences
1672                   and are sure your browser is configured correctly.
1673                 </p>
1674                 <p>
1675                   Note that you must have compiled <span class=
1676                   "APPLICATION">Privoxy</span> with support for this feature,
1677                   otherwise this option has no effect.
1678                 </p>
1679               </dd>
1680             </dl>
1681           </div>
1682         </div>
1683         <div class="SECT3">
1684           <h4 class="SECT3">
1685             <a name="ENFORCE-BLOCKS">7.4.6. enforce-blocks</a>
1686           </h4>
1687           <div class="VARIABLELIST">
1688             <dl>
1689               <dt>
1690                 Specifies:
1691               </dt>
1692               <dd>
1693                 <p>
1694                   Whether the user is allowed to ignore blocks and can <span
1695                   class="QUOTE">"go there anyway"</span>.
1696                 </p>
1697               </dd>
1698               <dt>
1699                 Type of value:
1700               </dt>
1701               <dd>
1702                 <p>
1703                   <tt class="REPLACEABLE"><i>0 or 1</i></tt>
1704                 </p>
1705               </dd>
1706               <dt>
1707                 Default value:
1708               </dt>
1709               <dd>
1710                 <p>
1711                   <span class="emphasis"><i class="EMPHASIS">0</i></span>
1712                 </p>
1713               </dd>
1714               <dt>
1715                 Effect if unset:
1716               </dt>
1717               <dd>
1718                 <p>
1719                   Blocks are not enforced.
1720                 </p>
1721               </dd>
1722               <dt>
1723                 Notes:
1724               </dt>
1725               <dd>
1726                 <p>
1727                   <span class="APPLICATION">Privoxy</span> is mainly used to
1728                   block and filter requests as a service to the user, for
1729                   example to block ads and other junk that clogs the pipes.
1730                   <span class="APPLICATION">Privoxy's</span> configuration
1731                   isn't perfect and sometimes innocent pages are blocked. In
1732                   this situation it makes sense to allow the user to enforce
1733                   the request and have <span class=
1734                   "APPLICATION">Privoxy</span> ignore the block.
1735                 </p>
1736                 <p>
1737                   In the default configuration <span class=
1738                   "APPLICATION">Privoxy's</span> <span class=
1739                   "QUOTE">"Blocked"</span> page contains a <span class=
1740                   "QUOTE">"go there anyway"</span> link to adds a special
1741                   string (the force prefix) to the request URL. If that link
1742                   is used, <span class="APPLICATION">Privoxy</span> will
1743                   detect the force prefix, remove it again and let the
1744                   request pass.
1745                 </p>
1746                 <p>
1747                   Of course <span class="APPLICATION">Privoxy</span> can also
1748                   be used to enforce a network policy. In that case the user
1749                   obviously should not be able to bypass any blocks, and
1750                   that's what the <span class="QUOTE">"enforce-blocks"</span>
1751                   option is for. If it's enabled, <span class=
1752                   "APPLICATION">Privoxy</span> hides the <span class=
1753                   "QUOTE">"go there anyway"</span> link. If the user adds the
1754                   force prefix by hand, it will not be accepted and the
1755                   circumvention attempt is logged.
1756                 </p>
1757               </dd>
1758               <dt>
1759                 Examples:
1760               </dt>
1761               <dd>
1762                 <p>
1763                   enforce-blocks 1
1764                 </p>
1765               </dd>
1766             </dl>
1767           </div>
1768         </div>
1769         <div class="SECT3">
1770           <h4 class="SECT3">
1771             <a name="ACLS">7.4.7. ACLs: permit-access and deny-access</a>
1772           </h4>
1773           <a name="PERMIT-ACCESS"></a><a name="DENY-ACCESS"></a>
1774           <div class="VARIABLELIST">
1775             <dl>
1776               <dt>
1777                 Specifies:
1778               </dt>
1779               <dd>
1780                 <p>
1781                   Who can access what.
1782                 </p>
1783               </dd>
1784               <dt>
1785                 Type of value:
1786               </dt>
1787               <dd>
1788                 <p>
1789                   <tt class="REPLACEABLE"><i>src_addr</i></tt>[:<tt class=
1790                   "REPLACEABLE"><i>port</i></tt>][/<tt class=
1791                   "REPLACEABLE"><i>src_masklen</i></tt>] [<tt class=
1792                   "REPLACEABLE"><i>dst_addr</i></tt>[:<tt class=
1793                   "REPLACEABLE"><i>port</i></tt>][/<tt class=
1794                   "REPLACEABLE"><i>dst_masklen</i></tt>]]
1795                 </p>
1796                 <p>
1797                   Where <tt class="REPLACEABLE"><i>src_addr</i></tt> and <tt
1798                   class="REPLACEABLE"><i>dst_addr</i></tt> are IPv4 addresses
1799                   in dotted decimal notation or valid DNS names, <tt class=
1800                   "REPLACEABLE"><i>port</i></tt> is a port number, and <tt
1801                   class="REPLACEABLE"><i>src_masklen</i></tt> and <tt class=
1802                   "REPLACEABLE"><i>dst_masklen</i></tt> are subnet masks in
1803                   CIDR notation, i.e. integer values from 2 to 30
1804                   representing the length (in bits) of the network address.
1805                   The masks and the whole destination part are optional.
1806                 </p>
1807                 <p>
1808                   If your system implements <a href=
1809                   "http://tools.ietf.org/html/rfc3493" target="_top">RFC
1810                   3493</a>, then <tt class="REPLACEABLE"><i>src_addr</i></tt>
1811                   and <tt class="REPLACEABLE"><i>dst_addr</i></tt> can be
1812                   IPv6 addresses delimeted by brackets, <tt class=
1813                   "REPLACEABLE"><i>port</i></tt> can be a number or a service
1814                   name, and <tt class="REPLACEABLE"><i>src_masklen</i></tt>
1815                   and <tt class="REPLACEABLE"><i>dst_masklen</i></tt> can be
1816                   a number from 0 to 128.
1817                 </p>
1818               </dd>
1819               <dt>
1820                 Default value:
1821               </dt>
1822               <dd>
1823                 <p>
1824                   <span class="emphasis"><i class="EMPHASIS">Unset</i></span>
1825                 </p>
1826                 <p>
1827                   If no <tt class="REPLACEABLE"><i>port</i></tt> is
1828                   specified, any port will match. If no <tt class=
1829                   "REPLACEABLE"><i>src_masklen</i></tt> or <tt class=
1830                   "REPLACEABLE"><i>src_masklen</i></tt> is given, the
1831                   complete IP address has to match (i.e. 32 bits for IPv4 and
1832                   128 bits for IPv6).
1833                 </p>
1834               </dd>
1835               <dt>
1836                 Effect if unset:
1837               </dt>
1838               <dd>
1839                 <p>
1840                   Don't restrict access further than implied by <tt class=
1841                   "LITERAL">listen-address</tt>
1842                 </p>
1843               </dd>
1844               <dt>
1845                 Notes:
1846               </dt>
1847               <dd>
1848                 <p>
1849                   Access controls are included at the request of ISPs and
1850                   systems administrators, and <span class="emphasis"><i
1851                   class="EMPHASIS">are not usually needed by individual
1852                   users</i></span>. For a typical home user, it will normally
1853                   suffice to ensure that <span class=
1854                   "APPLICATION">Privoxy</span> only listens on the localhost
1855                   (127.0.0.1) or internal (home) network address by means of
1856                   the <a href="config.html#LISTEN-ADDRESS"><span class=
1857                   "emphasis"><i class=
1858                   "EMPHASIS">listen-address</i></span></a> option.
1859                 </p>
1860                 <p>
1861                   Please see the warnings in the FAQ that <span class=
1862                   "APPLICATION">Privoxy</span> is not intended to be a
1863                   substitute for a firewall or to encourage anyone to defer
1864                   addressing basic security weaknesses.
1865                 </p>
1866                 <p>
1867                   Multiple ACL lines are OK. If any ACLs are specified, <span
1868                   class="APPLICATION">Privoxy</span> only talks to IP
1869                   addresses that match at least one <tt class=
1870                   "LITERAL">permit-access</tt> line and don't match any
1871                   subsequent <tt class="LITERAL">deny-access</tt> line. In
1872                   other words, the last match wins, with the default being
1873                   <tt class="LITERAL">deny-access</tt>.
1874                 </p>
1875                 <p>
1876                   If <span class="APPLICATION">Privoxy</span> is using a
1877                   forwarder (see <tt class="LITERAL">forward</tt> below) for
1878                   a particular destination URL, the <tt class=
1879                   "REPLACEABLE"><i>dst_addr</i></tt> that is examined is the
1880                   address of the forwarder and <span class="emphasis"><i
1881                   class="EMPHASIS">NOT</i></span> the address of the ultimate
1882                   target. This is necessary because it may be impossible for
1883                   the local <span class="APPLICATION">Privoxy</span> to
1884                   determine the IP address of the ultimate target (that's
1885                   often what gateways are used for).
1886                 </p>
1887                 <p>
1888                   You should prefer using IP addresses over DNS names,
1889                   because the address lookups take time. All DNS names must
1890                   resolve! You can <span class="emphasis"><i class=
1891                   "EMPHASIS">not</i></span> use domain patterns like <span
1892                   class="QUOTE">"*.org"</span> or partial domain names. If a
1893                   DNS name resolves to multiple IP addresses, only the first
1894                   one is used.
1895                 </p>
1896                 <p>
1897                   Some systems allow IPv4 clients to connect to IPv6 server
1898                   sockets. Then the client's IPv4 address will be translated
1899                   by the system into IPv6 address space with special prefix
1900                   ::ffff:0:0/96 (so called IPv4 mapped IPv6 address). <span
1901                   class="APPLICATION">Privoxy</span> can handle it and maps
1902                   such ACL addresses automatically.
1903                 </p>
1904                 <p>
1905                   Denying access to particular sites by ACL may have
1906                   undesired side effects if the site in question is hosted on
1907                   a machine which also hosts other sites (most sites are).
1908                 </p>
1909               </dd>
1910               <dt>
1911                 Examples:
1912               </dt>
1913               <dd>
1914                 <p>
1915                   Explicitly define the default behavior if no ACL and <tt
1916                   class="LITERAL">listen-address</tt> are set: <span class=
1917                   "QUOTE">"localhost"</span> is OK. The absence of a <tt
1918                   class="REPLACEABLE"><i>dst_addr</i></tt> implies that <span
1919                   class="emphasis"><i class="EMPHASIS">all</i></span>
1920                   destination addresses are OK:
1921                 </p>
1922                 <p>
1923                 </p>
1924                 <table border="0" bgcolor="#E0E0E0" width="90%">
1925                   <tr>
1926                     <td>
1927 <pre class="SCREEN">
1928   permit-access  localhost
1929 </pre>
1930                     </td>
1931                   </tr>
1932                 </table>
1933
1934                 <p>
1935                   Allow any host on the same class C subnet as
1936                   www.privoxy.org access to nothing but www.example.com (or
1937                   other domains hosted on the same system):
1938                 </p>
1939                 <p>
1940                 </p>
1941                 <table border="0" bgcolor="#E0E0E0" width="90%">
1942                   <tr>
1943                     <td>
1944 <pre class="SCREEN">
1945   permit-access  www.privoxy.org/24 www.example.com/32
1946 </pre>
1947                     </td>
1948                   </tr>
1949                 </table>
1950
1951                 <p>
1952                   Allow access from any host on the 26-bit subnet
1953                   192.168.45.64 to anywhere, with the exception that
1954                   192.168.45.73 may not access the IP address behind
1955                   www.dirty-stuff.example.com:
1956                 </p>
1957                 <p>
1958                 </p>
1959                 <table border="0" bgcolor="#E0E0E0" width="90%">
1960                   <tr>
1961                     <td>
1962 <pre class="SCREEN">
1963   permit-access  192.168.45.64/26
1964   deny-access    192.168.45.73    www.dirty-stuff.example.com
1965 </pre>
1966                     </td>
1967                   </tr>
1968                 </table>
1969
1970                 <p>
1971                   Allow access from the IPv4 network 192.0.2.0/24 even if
1972                   listening on an IPv6 wild card address (not supported on
1973                   all platforms):
1974                 </p>
1975                 <p>
1976                 </p>
1977                 <table border="0" bgcolor="#E0E0E0" width="90%">
1978                   <tr>
1979                     <td>
1980 <pre class="PROGRAMLISTING">
1981   permit-access  192.0.2.0/24
1982 </pre>
1983                     </td>
1984                   </tr>
1985                 </table>
1986
1987                 <p>
1988                   This is equivalent to the following line even if listening
1989                   on an IPv4 address (not supported on all platforms):
1990                 </p>
1991                 <p>
1992                 </p>
1993                 <table border="0" bgcolor="#E0E0E0" width="90%">
1994                   <tr>
1995                     <td>
1996 <pre class="PROGRAMLISTING">
1997   permit-access  [::ffff:192.0.2.0]/120
1998 </pre>
1999                     </td>
2000                   </tr>
2001                 </table>
2002               </dd>
2003             </dl>
2004           </div>
2005         </div>
2006         <div class="SECT3">
2007           <h4 class="SECT3">
2008             <a name="BUFFER-LIMIT">7.4.8. buffer-limit</a>
2009           </h4>
2010           <div class="VARIABLELIST">
2011             <dl>
2012               <dt>
2013                 Specifies:
2014               </dt>
2015               <dd>
2016                 <p>
2017                   Maximum size of the buffer for content filtering.
2018                 </p>
2019               </dd>
2020               <dt>
2021                 Type of value:
2022               </dt>
2023               <dd>
2024                 <p>
2025                   Size in Kbytes
2026                 </p>
2027               </dd>
2028               <dt>
2029                 Default value:
2030               </dt>
2031               <dd>
2032                 <p>
2033                   4096
2034                 </p>
2035               </dd>
2036               <dt>
2037                 Effect if unset:
2038               </dt>
2039               <dd>
2040                 <p>
2041                   Use a 4MB (4096 KB) limit.
2042                 </p>
2043               </dd>
2044               <dt>
2045                 Notes:
2046               </dt>
2047               <dd>
2048                 <p>
2049                   For content filtering, i.e. the <tt class=
2050                   "LITERAL">+filter</tt> and <tt class=
2051                   "LITERAL">+deanimate-gif</tt> actions, it is necessary that
2052                   <span class="APPLICATION">Privoxy</span> buffers the entire
2053                   document body. This can be potentially dangerous, since a
2054                   server could just keep sending data indefinitely and wait
2055                   for your RAM to exhaust -- with nasty consequences. Hence
2056                   this option.
2057                 </p>
2058                 <p>
2059                   When a document buffer size reaches the <tt class=
2060                   "LITERAL">buffer-limit</tt>, it is flushed to the client
2061                   unfiltered and no further attempt to filter the rest of the
2062                   document is made. Remember that there may be multiple
2063                   threads running, which might require up to <tt class=
2064                   "LITERAL">buffer-limit</tt> Kbytes <span class=
2065                   "emphasis"><i class="EMPHASIS">each</i></span>, unless you
2066                   have enabled <span class="QUOTE">"single-threaded"</span>
2067                   above.
2068                 </p>
2069               </dd>
2070             </dl>
2071           </div>
2072         </div>
2073         <div class="SECT3">
2074           <h4 class="SECT3">
2075             <a name="ENABLE-PROXY-AUTHENTICATION-FORWARDING">7.4.9.
2076             enable-proxy-authentication-forwarding</a>
2077           </h4>
2078           <div class="VARIABLELIST">
2079             <dl>
2080               <dt>
2081                 Specifies:
2082               </dt>
2083               <dd>
2084                 <p>
2085                   Whether or not proxy authentication through <span class=
2086                   "APPLICATION">Privoxy</span> should work.
2087                 </p>
2088               </dd>
2089               <dt>
2090                 Type of value:
2091               </dt>
2092               <dd>
2093                 <p>
2094                   0 or 1
2095                 </p>
2096               </dd>
2097               <dt>
2098                 Default value:
2099               </dt>
2100               <dd>
2101                 <p>
2102                   0
2103                 </p>
2104               </dd>
2105               <dt>
2106                 Effect if unset:
2107               </dt>
2108               <dd>
2109                 <p>
2110                   Proxy authentication headers are removed.
2111                 </p>
2112               </dd>
2113               <dt>
2114                 Notes:
2115               </dt>
2116               <dd>
2117                 <p>
2118                   Privoxy itself does not support proxy authentication, but
2119                   can allow clients to authenticate against Privoxy's parent
2120                   proxy.
2121                 </p>
2122                 <p>
2123                   By default Privoxy (3.0.21 and later) don't do that and
2124                   remove Proxy-Authorization headers in requests and
2125                   Proxy-Authenticate headers in responses to make it harder
2126                   for malicious sites to trick inexperienced users into
2127                   providing login information.
2128                 </p>
2129                 <p>
2130                   If this option is enabled the headers are forwarded.
2131                 </p>
2132                 <p>
2133                   Enabling this option is <span class="emphasis"><i class=
2134                   "EMPHASIS">not recommended</i></span> if there is no parent
2135                   proxy that requires authentication or if the local network
2136                   between Privoxy and the parent proxy isn't trustworthy. If
2137                   proxy authentication is only required for some requests, it
2138                   is recommended to use a client header filter to remove the
2139                   authentication headers for requests where they aren't
2140                   needed.
2141                 </p>
2142               </dd>
2143             </dl>
2144           </div>
2145         </div>
2146       </div>
2147       <div class="SECT2">
2148         <h2 class="SECT2">
2149           <a name="FORWARDING">7.5. Forwarding</a>
2150         </h2>
2151         <p>
2152           This feature allows routing of HTTP requests through a chain of
2153           multiple proxies.
2154         </p>
2155         <p>
2156           Forwarding can be used to chain Privoxy with a caching proxy to
2157           speed up browsing. Using a parent proxy may also be necessary if
2158           the machine that <span class="APPLICATION">Privoxy</span> runs on
2159           has no direct Internet access.
2160         </p>
2161         <p>
2162           Note that parent proxies can severely decrease your privacy level.
2163           For example a parent proxy could add your IP address to the request
2164           headers and if it's a caching proxy it may add the <span class=
2165           "QUOTE">"Etag"</span> header to revalidation requests again, even
2166           though you configured Privoxy to remove it. It may also ignore
2167           Privoxy's header time randomization and use the original values
2168           which could be used by the server as cookie replacement to track
2169           your steps between visits.
2170         </p>
2171         <p>
2172           Also specified here are SOCKS proxies. <span class=
2173           "APPLICATION">Privoxy</span> supports the SOCKS 4 and SOCKS 4A
2174           protocols.
2175         </p>
2176         <div class="SECT3">
2177           <h4 class="SECT3">
2178             <a name="FORWARD">7.5.1. forward</a>
2179           </h4>
2180           <div class="VARIABLELIST">
2181             <dl>
2182               <dt>
2183                 Specifies:
2184               </dt>
2185               <dd>
2186                 <p>
2187                   To which parent HTTP proxy specific requests should be
2188                   routed.
2189                 </p>
2190               </dd>
2191               <dt>
2192                 Type of value:
2193               </dt>
2194               <dd>
2195                 <p>
2196                   <tt class="REPLACEABLE"><i>target_pattern</i></tt> <tt
2197                   class="REPLACEABLE"><i>http_parent</i></tt>[:<tt class=
2198                   "REPLACEABLE"><i>port</i></tt>]
2199                 </p>
2200                 <p>
2201                   where <tt class="REPLACEABLE"><i>target_pattern</i></tt> is
2202                   a <a href="actions-file.html#AF-PATTERNS">URL pattern</a>
2203                   that specifies to which requests (i.e. URLs) this forward
2204                   rule shall apply. Use <tt class="LITERAL">/</tt> to denote
2205                   <span class="QUOTE">"all URLs"</span>. <tt class=
2206                   "REPLACEABLE"><i>http_parent</i></tt>[:<tt class=
2207                   "REPLACEABLE"><i>port</i></tt>] is the DNS name or IP
2208                   address of the parent HTTP proxy through which the requests
2209                   should be forwarded, optionally followed by its listening
2210                   port (default: 8000). Use a single dot (<tt class=
2211                   "LITERAL">.</tt>) to denote <span class="QUOTE">"no
2212                   forwarding"</span>.
2213                 </p>
2214               </dd>
2215               <dt>
2216                 Default value:
2217               </dt>
2218               <dd>
2219                 <p>
2220                   <span class="emphasis"><i class="EMPHASIS">Unset</i></span>
2221                 </p>
2222               </dd>
2223               <dt>
2224                 Effect if unset:
2225               </dt>
2226               <dd>
2227                 <p>
2228                   Don't use parent HTTP proxies.
2229                 </p>
2230               </dd>
2231               <dt>
2232                 Notes:
2233               </dt>
2234               <dd>
2235                 <p>
2236                   If <tt class="REPLACEABLE"><i>http_parent</i></tt> is <span
2237                   class="QUOTE">"."</span>, then requests are not forwarded
2238                   to another HTTP proxy but are made directly to the web
2239                   servers.
2240                 </p>
2241                 <p>
2242                   <tt class="REPLACEABLE"><i>http_parent</i></tt> can be a
2243                   numerical IPv6 address (if <a href=
2244                   "http://tools.ietf.org/html/rfc3493" target="_top">RFC
2245                   3493</a> is implemented). To prevent clashes with the port
2246                   delimiter, the whole IP address has to be put into
2247                   brackets. On the other hand a <tt class=
2248                   "REPLACEABLE"><i>target_pattern</i></tt> containing an IPv6
2249                   address has to be put into angle brackets (normal brackets
2250                   are reserved for regular expressions already).
2251                 </p>
2252                 <p>
2253                   Multiple lines are OK, they are checked in sequence, and
2254                   the last match wins.
2255                 </p>
2256               </dd>
2257               <dt>
2258                 Examples:
2259               </dt>
2260               <dd>
2261                 <p>
2262                   Everything goes to an example parent proxy, except SSL on
2263                   port 443 (which it doesn't handle):
2264                 </p>
2265                 <p>
2266                 </p>
2267                 <table border="0" bgcolor="#E0E0E0" width="90%">
2268                   <tr>
2269                     <td>
2270 <pre class="SCREEN">
2271   forward   /      parent-proxy.example.org:8080
2272   forward   :443   .
2273 </pre>
2274                     </td>
2275                   </tr>
2276                 </table>
2277
2278                 <p>
2279                   Everything goes to our example ISP's caching proxy, except
2280                   for requests to that ISP's sites:
2281                 </p>
2282                 <p>
2283                 </p>
2284                 <table border="0" bgcolor="#E0E0E0" width="90%">
2285                   <tr>
2286                     <td>
2287 <pre class="SCREEN">
2288   forward   /                  caching-proxy.isp.example.net:8000
2289   forward   .isp.example.net   .
2290 </pre>
2291                     </td>
2292                   </tr>
2293                 </table>
2294
2295                 <p>
2296                   Parent proxy specified by an IPv6 address:
2297                 </p>
2298                 <p>
2299                 </p>
2300                 <table border="0" bgcolor="#E0E0E0" width="90%">
2301                   <tr>
2302                     <td>
2303 <pre class="PROGRAMLISTING">
2304   forward   /                   [2001:DB8::1]:8000
2305 </pre>
2306                     </td>
2307                   </tr>
2308                 </table>
2309
2310                 <p>
2311                   Suppose your parent proxy doesn't support IPv6:
2312                 </p>
2313                 <p>
2314                 </p>
2315                 <table border="0" bgcolor="#E0E0E0" width="90%">
2316                   <tr>
2317                     <td>
2318 <pre class="PROGRAMLISTING">
2319   forward  /                        parent-proxy.example.org:8000
2320   forward  ipv6-server.example.org  .
2321   forward  &lt;[2-3][0-9a-f][0-9a-f][0-9a-f]:*&gt;   .
2322 </pre>
2323                     </td>
2324                   </tr>
2325                 </table>
2326               </dd>
2327             </dl>
2328           </div>
2329         </div>
2330         <div class="SECT3">
2331           <h4 class="SECT3">
2332             <a name="SOCKS">7.5.2. forward-socks4, forward-socks4a,
2333             forward-socks5 and forward-socks5t</a>
2334           </h4>
2335           <a name="FORWARD-SOCKS4"></a><a name="FORWARD-SOCKS4A"></a>
2336           <div class="VARIABLELIST">
2337             <dl>
2338               <dt>
2339                 Specifies:
2340               </dt>
2341               <dd>
2342                 <p>
2343                   Through which SOCKS proxy (and optionally to which parent
2344                   HTTP proxy) specific requests should be routed.
2345                 </p>
2346               </dd>
2347               <dt>
2348                 Type of value:
2349               </dt>
2350               <dd>
2351                 <p>
2352                   <tt class="REPLACEABLE"><i>target_pattern</i></tt> <tt
2353                   class="REPLACEABLE"><i>socks_proxy</i></tt>[:<tt class=
2354                   "REPLACEABLE"><i>port</i></tt>] <tt class=
2355                   "REPLACEABLE"><i>http_parent</i></tt>[:<tt class=
2356                   "REPLACEABLE"><i>port</i></tt>]
2357                 </p>
2358                 <p>
2359                   where <tt class="REPLACEABLE"><i>target_pattern</i></tt> is
2360                   a <a href="actions-file.html#AF-PATTERNS">URL pattern</a>
2361                   that specifies to which requests (i.e. URLs) this forward
2362                   rule shall apply. Use <tt class="LITERAL">/</tt> to denote
2363                   <span class="QUOTE">"all URLs"</span>. <tt class=
2364                   "REPLACEABLE"><i>http_parent</i></tt> and <tt class=
2365                   "REPLACEABLE"><i>socks_proxy</i></tt> are IP addresses in
2366                   dotted decimal notation or valid DNS names (<tt class=
2367                   "REPLACEABLE"><i>http_parent</i></tt> may be <span class=
2368                   "QUOTE">"."</span> to denote <span class="QUOTE">"no HTTP
2369                   forwarding"</span>), and the optional <tt class=
2370                   "REPLACEABLE"><i>port</i></tt> parameters are TCP ports,
2371                   i.e. integer values from 1 to 65535
2372                 </p>
2373               </dd>
2374               <dt>
2375                 Default value:
2376               </dt>
2377               <dd>
2378                 <p>
2379                   <span class="emphasis"><i class="EMPHASIS">Unset</i></span>
2380                 </p>
2381               </dd>
2382               <dt>
2383                 Effect if unset:
2384               </dt>
2385               <dd>
2386                 <p>
2387                   Don't use SOCKS proxies.
2388                 </p>
2389               </dd>
2390               <dt>
2391                 Notes:
2392               </dt>
2393               <dd>
2394                 <p>
2395                   Multiple lines are OK, they are checked in sequence, and
2396                   the last match wins.
2397                 </p>
2398                 <p>
2399                   The difference between <tt class=
2400                   "LITERAL">forward-socks4</tt> and <tt class=
2401                   "LITERAL">forward-socks4a</tt> is that in the SOCKS 4A
2402                   protocol, the DNS resolution of the target hostname happens
2403                   on the SOCKS server, while in SOCKS 4 it happens locally.
2404                 </p>
2405                 <p>
2406                   With <tt class="LITERAL">forward-socks5</tt> the DNS
2407                   resolution will happen on the remote server as well.
2408                 </p>
2409                 <p>
2410                   <tt class="LITERAL">forward-socks5t</tt> works like vanilla
2411                   <tt class="LITERAL">forward-socks5</tt> but lets <span
2412                   class="APPLICATION">Privoxy</span> additionally use
2413                   Tor-specific SOCKS extensions. Currently the only supported
2414                   SOCKS extension is optimistic data which can reduce the
2415                   latency for the first request made on a newly created
2416                   connection.
2417                 </p>
2418                 <p>
2419                   <tt class="REPLACEABLE"><i>socks_proxy</i></tt> and <tt
2420                   class="REPLACEABLE"><i>http_parent</i></tt> can be a
2421                   numerical IPv6 address (if <a href=
2422                   "http://tools.ietf.org/html/rfc3493" target="_top">RFC
2423                   3493</a> is implemented). To prevent clashes with the port
2424                   delimiter, the whole IP address has to be put into
2425                   brackets. On the other hand a <tt class=
2426                   "REPLACEABLE"><i>target_pattern</i></tt> containing an IPv6
2427                   address has to be put into angle brackets (normal brackets
2428                   are reserved for regular expressions already).
2429                 </p>
2430                 <p>
2431                   If <tt class="REPLACEABLE"><i>http_parent</i></tt> is <span
2432                   class="QUOTE">"."</span>, then requests are not forwarded
2433                   to another HTTP proxy but are made (HTTP-wise) directly to
2434                   the web servers, albeit through a SOCKS proxy.
2435                 </p>
2436               </dd>
2437               <dt>
2438                 Examples:
2439               </dt>
2440               <dd>
2441                 <p>
2442                   From the company example.com, direct connections are made
2443                   to all <span class="QUOTE">"internal"</span> domains, but
2444                   everything outbound goes through their ISP's proxy by way
2445                   of example.com's corporate SOCKS 4A gateway to the
2446                   Internet.
2447                 </p>
2448                 <p>
2449                 </p>
2450                 <table border="0" bgcolor="#E0E0E0" width="90%">
2451                   <tr>
2452                     <td>
2453 <pre class="SCREEN">
2454   forward-socks4a   /              socks-gw.example.com:1080  www-cache.isp.example.net:8080
2455   forward           .example.com   .
2456 </pre>
2457                     </td>
2458                   </tr>
2459                 </table>
2460
2461                 <p>
2462                   A rule that uses a SOCKS 4 gateway for all destinations but
2463                   no HTTP parent looks like this:
2464                 </p>
2465                 <p>
2466                 </p>
2467                 <table border="0" bgcolor="#E0E0E0" width="90%">
2468                   <tr>
2469                     <td>
2470 <pre class="SCREEN">
2471   forward-socks4   /               socks-gw.example.com:1080  .
2472 </pre>
2473                     </td>
2474                   </tr>
2475                 </table>
2476
2477                 <p>
2478                   To chain Privoxy and Tor, both running on the same system,
2479                   you would use something like:
2480                 </p>
2481                 <p>
2482                 </p>
2483                 <table border="0" bgcolor="#E0E0E0" width="90%">
2484                   <tr>
2485                     <td>
2486 <pre class="SCREEN">
2487   forward-socks5t   /               127.0.0.1:9050 .
2488 </pre>
2489                     </td>
2490                   </tr>
2491                 </table>
2492
2493                 <p>
2494                   Note that if you got Tor through one of the bundles, you
2495                   may have to change the port from 9050 to 9150 (or even
2496                   another one). For details, please check the documentation
2497                   on the <a href="https://torproject.org/" target="_top">Tor
2498                   website</a>.
2499                 </p>
2500                 <p>
2501                   The public <span class="APPLICATION">Tor</span> network
2502                   can't be used to reach your local network, if you need to
2503                   access local servers you therefore might want to make some
2504                   exceptions:
2505                 </p>
2506                 <p>
2507                 </p>
2508                 <table border="0" bgcolor="#E0E0E0" width="90%">
2509                   <tr>
2510                     <td>
2511 <pre class="SCREEN">
2512   forward         192.168.*.*/     .
2513   forward            10.*.*.*/     .
2514   forward           127.*.*.*/     .
2515 </pre>
2516                     </td>
2517                   </tr>
2518                 </table>
2519
2520                 <p>
2521                   Unencrypted connections to systems in these address ranges
2522                   will be as (un)secure as the local network is, but the
2523                   alternative is that you can't reach the local network
2524                   through <span class="APPLICATION">Privoxy</span> at all. Of
2525                   course this may actually be desired and there is no reason
2526                   to make these exceptions if you aren't sure you need them.
2527                 </p>
2528                 <p>
2529                   If you also want to be able to reach servers in your local
2530                   network by using their names, you will need additional
2531                   exceptions that look like this:
2532                 </p>
2533                 <p>
2534                 </p>
2535                 <table border="0" bgcolor="#E0E0E0" width="90%">
2536                   <tr>
2537                     <td>
2538 <pre class="SCREEN">
2539  forward           localhost/     .
2540 </pre>
2541                     </td>
2542                   </tr>
2543                 </table>
2544               </dd>
2545             </dl>
2546           </div>
2547         </div>
2548         <div class="SECT3">
2549           <h4 class="SECT3">
2550             <a name="ADVANCED-FORWARDING-EXAMPLES">7.5.3. Advanced Forwarding
2551             Examples</a>
2552           </h4>
2553           <p>
2554             If you have links to multiple ISPs that provide various special
2555             content only to their subscribers, you can configure multiple
2556             <span class="APPLICATION">Privoxies</span> which have connections
2557             to the respective ISPs to act as forwarders to each other, so
2558             that <span class="emphasis"><i class="EMPHASIS">your</i></span>
2559             users can see the internal content of all ISPs.
2560           </p>
2561           <p>
2562             Assume that host-a has a PPP connection to isp-a.example.net. And
2563             host-b has a PPP connection to isp-b.example.org. Both run <span
2564             class="APPLICATION">Privoxy</span>. Their forwarding
2565             configuration can look like this:
2566           </p>
2567           <p>
2568             host-a:
2569           </p>
2570           <p>
2571           </p>
2572           <table border="0" bgcolor="#E0E0E0" width="100%">
2573             <tr>
2574               <td>
2575 <pre class="SCREEN">
2576   forward    /           .
2577   forward    .isp-b.example.net  host-b:8118
2578 </pre>
2579               </td>
2580             </tr>
2581           </table>
2582
2583           <p>
2584             host-b:
2585           </p>
2586           <p>
2587           </p>
2588           <table border="0" bgcolor="#E0E0E0" width="100%">
2589             <tr>
2590               <td>
2591 <pre class="SCREEN">
2592   forward    /           .
2593   forward    .isp-a.example.org  host-a:8118
2594 </pre>
2595               </td>
2596             </tr>
2597           </table>
2598
2599           <p>
2600             Now, your users can set their browser's proxy to use either
2601             host-a or host-b and be able to browse the internal content of
2602             both isp-a and isp-b.
2603           </p>
2604           <p>
2605             If you intend to chain <span class="APPLICATION">Privoxy</span>
2606             and <span class="APPLICATION">squid</span> locally, then chaining
2607             as <tt class="LITERAL">browser -&gt; squid -&gt; privoxy</tt> is
2608             the recommended way.
2609           </p>
2610           <p>
2611             Assuming that <span class="APPLICATION">Privoxy</span> and <span
2612             class="APPLICATION">squid</span> run on the same box, your <span
2613             class="APPLICATION">squid</span> configuration could then look
2614             like this:
2615           </p>
2616           <p>
2617           </p>
2618           <table border="0" bgcolor="#E0E0E0" width="100%">
2619             <tr>
2620               <td>
2621 <pre class="SCREEN">
2622   # Define Privoxy as parent proxy (without ICP)
2623   cache_peer 127.0.0.1 parent 8118 7 no-query
2624
2625   # Define ACL for protocol FTP
2626   acl ftp proto FTP
2627
2628   # Do not forward FTP requests to Privoxy
2629   always_direct allow ftp
2630
2631   # Forward all the rest to Privoxy
2632   never_direct allow all
2633 </pre>
2634               </td>
2635             </tr>
2636           </table>
2637
2638           <p>
2639             You would then need to change your browser's proxy settings to
2640             <span class="APPLICATION">squid</span>'s address and port. Squid
2641             normally uses port 3128. If unsure consult <tt class=
2642             "LITERAL">http_port</tt> in <tt class="FILENAME">squid.conf</tt>.
2643           </p>
2644           <p>
2645             You could just as well decide to only forward requests you
2646             suspect of leading to Windows executables through a
2647             virus-scanning parent proxy, say, on <tt class=
2648             "LITERAL">antivir.example.com</tt>, port 8010:
2649           </p>
2650           <p>
2651           </p>
2652           <table border="0" bgcolor="#E0E0E0" width="100%">
2653             <tr>
2654               <td>
2655 <pre class="SCREEN">
2656   forward   /                          .
2657   forward   /.*\.(exe|com|dll|zip)$    antivir.example.com:8010
2658 </pre>
2659               </td>
2660             </tr>
2661           </table>
2662         </div>
2663         <div class="SECT3">
2664           <h4 class="SECT3">
2665             <a name="FORWARDED-CONNECT-RETRIES">7.5.4.
2666             forwarded-connect-retries</a>
2667           </h4>
2668           <div class="VARIABLELIST">
2669             <dl>
2670               <dt>
2671                 Specifies:
2672               </dt>
2673               <dd>
2674                 <p>
2675                   How often Privoxy retries if a forwarded connection request
2676                   fails.
2677                 </p>
2678               </dd>
2679               <dt>
2680                 Type of value:
2681               </dt>
2682               <dd>
2683                 <p>
2684                   <tt class="REPLACEABLE"><i>Number of retries.</i></tt>
2685                 </p>
2686               </dd>
2687               <dt>
2688                 Default value:
2689               </dt>
2690               <dd>
2691                 <p>
2692                   <span class="emphasis"><i class="EMPHASIS">0</i></span>
2693                 </p>
2694               </dd>
2695               <dt>
2696                 Effect if unset:
2697               </dt>
2698               <dd>
2699                 <p>
2700                   Connections forwarded through other proxies are treated
2701                   like direct connections and no retry attempts are made.
2702                 </p>
2703               </dd>
2704               <dt>
2705                 Notes:
2706               </dt>
2707               <dd>
2708                 <p>
2709                   <tt class=
2710                   "REPLACEABLE"><i>forwarded-connect-retries</i></tt> is
2711                   mainly interesting for socks4a connections, where <span
2712                   class="APPLICATION">Privoxy</span> can't detect why the
2713                   connections failed. The connection might have failed
2714                   because of a DNS timeout in which case a retry makes sense,
2715                   but it might also have failed because the server doesn't
2716                   exist or isn't reachable. In this case the retry will just
2717                   delay the appearance of Privoxy's error message.
2718                 </p>
2719                 <p>
2720                   Note that in the context of this option, <span class=
2721                   "QUOTE">"forwarded connections"</span> includes all
2722                   connections that Privoxy forwards through other proxies.
2723                   This option is not limited to the HTTP CONNECT method.
2724                 </p>
2725                 <p>
2726                   Only use this option, if you are getting lots of
2727                   forwarding-related error messages that go away when you try
2728                   again manually. Start with a small value and check
2729                   Privoxy's logfile from time to time, to see how many
2730                   retries are usually needed.
2731                 </p>
2732               </dd>
2733               <dt>
2734                 Examples:
2735               </dt>
2736               <dd>
2737                 <p>
2738                   forwarded-connect-retries 1
2739                 </p>
2740               </dd>
2741             </dl>
2742           </div>
2743         </div>
2744       </div>
2745       <div class="SECT2">
2746         <h2 class="SECT2">
2747           <a name="MISC">7.6. Miscellaneous</a>
2748         </h2>
2749         <div class="SECT3">
2750           <h4 class="SECT3">
2751             <a name="ACCEPT-INTERCEPTED-REQUESTS">7.6.1.
2752             accept-intercepted-requests</a>
2753           </h4>
2754           <div class="VARIABLELIST">
2755             <dl>
2756               <dt>
2757                 Specifies:
2758               </dt>
2759               <dd>
2760                 <p>
2761                   Whether intercepted requests should be treated as valid.
2762                 </p>
2763               </dd>
2764               <dt>
2765                 Type of value:
2766               </dt>
2767               <dd>
2768                 <p>
2769                   <tt class="REPLACEABLE"><i>0 or 1</i></tt>
2770                 </p>
2771               </dd>
2772               <dt>
2773                 Default value:
2774               </dt>
2775               <dd>
2776                 <p>
2777                   <span class="emphasis"><i class="EMPHASIS">0</i></span>
2778                 </p>
2779               </dd>
2780               <dt>
2781                 Effect if unset:
2782               </dt>
2783               <dd>
2784                 <p>
2785                   Only proxy requests are accepted, intercepted requests are
2786                   treated as invalid.
2787                 </p>
2788               </dd>
2789               <dt>
2790                 Notes:
2791               </dt>
2792               <dd>
2793                 <p>
2794                   If you don't trust your clients and want to force them to
2795                   use <span class="APPLICATION">Privoxy</span>, enable this
2796                   option and configure your packet filter to redirect
2797                   outgoing HTTP connections into <span class=
2798                   "APPLICATION">Privoxy</span>.
2799                 </p>
2800                 <p>
2801                   Note that intercepting encrypted connections (HTTPS) isn't
2802                   supported.
2803                 </p>
2804                 <p>
2805                   Make sure that <span class="APPLICATION">Privoxy's</span>
2806                   own requests aren't redirected as well. Additionally take
2807                   care that <span class="APPLICATION">Privoxy</span> can't
2808                   intentionally connect to itself, otherwise you could run
2809                   into redirection loops if <span class=
2810                   "APPLICATION">Privoxy's</span> listening port is reachable
2811                   by the outside or an attacker has access to the pages you
2812                   visit.
2813                 </p>
2814                 <p>
2815                   If you are running Privoxy as intercepting proxy without
2816                   being able to intercept all client requests you may want to
2817                   adjust the CGI templates to make sure they don't reference
2818                   content from config.privoxy.org.
2819                 </p>
2820               </dd>
2821               <dt>
2822                 Examples:
2823               </dt>
2824               <dd>
2825                 <p>
2826                   accept-intercepted-requests 1
2827                 </p>
2828               </dd>
2829             </dl>
2830           </div>
2831         </div>
2832         <div class="SECT3">
2833           <h4 class="SECT3">
2834             <a name="ALLOW-CGI-REQUEST-CRUNCHING">7.6.2.
2835             allow-cgi-request-crunching</a>
2836           </h4>
2837           <div class="VARIABLELIST">
2838             <dl>
2839               <dt>
2840                 Specifies:
2841               </dt>
2842               <dd>
2843                 <p>
2844                   Whether requests to <span class=
2845                   "APPLICATION">Privoxy's</span> CGI pages can be blocked or
2846                   redirected.
2847                 </p>
2848               </dd>
2849               <dt>
2850                 Type of value:
2851               </dt>
2852               <dd>
2853                 <p>
2854                   <tt class="REPLACEABLE"><i>0 or 1</i></tt>
2855                 </p>
2856               </dd>
2857               <dt>
2858                 Default value:
2859               </dt>
2860               <dd>
2861                 <p>
2862                   <span class="emphasis"><i class="EMPHASIS">0</i></span>
2863                 </p>
2864               </dd>
2865               <dt>
2866                 Effect if unset:
2867               </dt>
2868               <dd>
2869                 <p>
2870                   <span class="APPLICATION">Privoxy</span> ignores block and
2871                   redirect actions for its CGI pages.
2872                 </p>
2873               </dd>
2874               <dt>
2875                 Notes:
2876               </dt>
2877               <dd>
2878                 <p>
2879                   By default <span class="APPLICATION">Privoxy</span> ignores
2880                   block or redirect actions for its CGI pages. Intercepting
2881                   these requests can be useful in multi-user setups to
2882                   implement fine-grained access control, but it can also
2883                   render the complete web interface useless and make
2884                   debugging problems painful if done without care.
2885                 </p>
2886                 <p>
2887                   Don't enable this option unless you're sure that you really
2888                   need it.
2889                 </p>
2890               </dd>
2891               <dt>
2892                 Examples:
2893               </dt>
2894               <dd>
2895                 <p>
2896                   allow-cgi-request-crunching 1
2897                 </p>
2898               </dd>
2899             </dl>
2900           </div>
2901         </div>
2902         <div class="SECT3">
2903           <h4 class="SECT3">
2904             <a name="SPLIT-LARGE-FORMS">7.6.3. split-large-forms</a>
2905           </h4>
2906           <div class="VARIABLELIST">
2907             <dl>
2908               <dt>
2909                 Specifies:
2910               </dt>
2911               <dd>
2912                 <p>
2913                   Whether the CGI interface should stay compatible with
2914                   broken HTTP clients.
2915                 </p>
2916               </dd>
2917               <dt>
2918                 Type of value:
2919               </dt>
2920               <dd>
2921                 <p>
2922                   <tt class="REPLACEABLE"><i>0 or 1</i></tt>
2923                 </p>
2924               </dd>
2925               <dt>
2926                 Default value:
2927               </dt>
2928               <dd>
2929                 <p>
2930                   <span class="emphasis"><i class="EMPHASIS">0</i></span>
2931                 </p>
2932               </dd>
2933               <dt>
2934                 Effect if unset:
2935               </dt>
2936               <dd>
2937                 <p>
2938                   The CGI form generate long GET URLs.
2939                 </p>
2940               </dd>
2941               <dt>
2942                 Notes:
2943               </dt>
2944               <dd>
2945                 <p>
2946                   <span class="APPLICATION">Privoxy's</span> CGI forms can
2947                   lead to rather long URLs. This isn't a problem as far as
2948                   the HTTP standard is concerned, but it can confuse clients
2949                   with arbitrary URL length limitations.
2950                 </p>
2951                 <p>
2952                   Enabling split-large-forms causes <span class=
2953                   "APPLICATION">Privoxy</span> to divide big forms into
2954                   smaller ones to keep the URL length down. It makes editing
2955                   a lot less convenient and you can no longer submit all
2956                   changes at once, but at least it works around this browser
2957                   bug.
2958                 </p>
2959                 <p>
2960                   If you don't notice any editing problems, there is no
2961                   reason to enable this option, but if one of the submit
2962                   buttons appears to be broken, you should give it a try.
2963                 </p>
2964               </dd>
2965               <dt>
2966                 Examples:
2967               </dt>
2968               <dd>
2969                 <p>
2970                   split-large-forms 1
2971                 </p>
2972               </dd>
2973             </dl>
2974           </div>
2975         </div>
2976         <div class="SECT3">
2977           <h4 class="SECT3">
2978             <a name="KEEP-ALIVE-TIMEOUT">7.6.4. keep-alive-timeout</a>
2979           </h4>
2980           <div class="VARIABLELIST">
2981             <dl>
2982               <dt>
2983                 Specifies:
2984               </dt>
2985               <dd>
2986                 <p>
2987                   Number of seconds after which an open connection will no
2988                   longer be reused.
2989                 </p>
2990               </dd>
2991               <dt>
2992                 Type of value:
2993               </dt>
2994               <dd>
2995                 <p>
2996                   <tt class="REPLACEABLE"><i>Time in seconds.</i></tt>
2997                 </p>
2998               </dd>
2999               <dt>
3000                 Default value:
3001               </dt>
3002               <dd>
3003                 <p>
3004                   None
3005                 </p>
3006               </dd>
3007               <dt>
3008                 Effect if unset:
3009               </dt>
3010               <dd>
3011                 <p>
3012                   Connections are not kept alive.
3013                 </p>
3014               </dd>
3015               <dt>
3016                 Notes:
3017               </dt>
3018               <dd>
3019                 <p>
3020                   This option allows clients to keep the connection to <span
3021                   class="APPLICATION">Privoxy</span> alive. If the server
3022                   supports it, <span class="APPLICATION">Privoxy</span> will
3023                   keep the connection to the server alive as well. Under
3024                   certain circumstances this may result in speed-ups.
3025                 </p>
3026                 <p>
3027                   By default, <span class="APPLICATION">Privoxy</span> will
3028                   close the connection to the server if the client connection
3029                   gets closed, or if the specified timeout has been reached
3030                   without a new request coming in. This behaviour can be
3031                   changed with the <a href="#CONNECTION-SHARING" target=
3032                   "_top">connection-sharing</a> option.
3033                 </p>
3034                 <p>
3035                   This option has no effect if <span class=
3036                   "APPLICATION">Privoxy</span> has been compiled without
3037                   keep-alive support.
3038                 </p>
3039                 <p>
3040                   Note that a timeout of five seconds as used in the default
3041                   configuration file significantly decreases the number of
3042                   connections that will be reused. The value is used because
3043                   some browsers limit the number of connections they open to
3044                   a single host and apply the same limit to proxies. This can
3045                   result in a single website <span class=
3046                   "QUOTE">"grabbing"</span> all the connections the browser
3047                   allows, which means connections to other websites can't be
3048                   opened until the connections currently in use time out.
3049                 </p>
3050                 <p>
3051                   Several users have reported this as a Privoxy bug, so the
3052                   default value has been reduced. Consider increasing it to
3053                   300 seconds or even more if you think your browser can
3054                   handle it. If your browser appears to be hanging, it
3055                   probably can't.
3056                 </p>
3057               </dd>
3058               <dt>
3059                 Examples:
3060               </dt>
3061               <dd>
3062                 <p>
3063                   keep-alive-timeout 300
3064                 </p>
3065               </dd>
3066             </dl>
3067           </div>
3068         </div>
3069         <div class="SECT3">
3070           <h4 class="SECT3">
3071             <a name="TOLERATE-PIPELINING">7.6.5. tolerate-pipelining</a>
3072           </h4>
3073           <div class="VARIABLELIST">
3074             <dl>
3075               <dt>
3076                 Specifies:
3077               </dt>
3078               <dd>
3079                 <p>
3080                   Whether or not pipelined requests should be served.
3081                 </p>
3082               </dd>
3083               <dt>
3084                 Type of value:
3085               </dt>
3086               <dd>
3087                 <p>
3088                   <tt class="REPLACEABLE"><i>0 or 1.</i></tt>
3089                 </p>
3090               </dd>
3091               <dt>
3092                 Default value:
3093               </dt>
3094               <dd>
3095                 <p>
3096                   None
3097                 </p>
3098               </dd>
3099               <dt>
3100                 Effect if unset:
3101               </dt>
3102               <dd>
3103                 <p>
3104                   If Privoxy receives more than one request at once, it
3105                   terminates the client connection after serving the first
3106                   one.
3107                 </p>
3108               </dd>
3109               <dt>
3110                 Notes:
3111               </dt>
3112               <dd>
3113                 <p>
3114                   <span class="APPLICATION">Privoxy</span> currently doesn't
3115                   pipeline outgoing requests, thus allowing pipelining on the
3116                   client connection is not guaranteed to improve the
3117                   performance.
3118                 </p>
3119                 <p>
3120                   By default <span class="APPLICATION">Privoxy</span> tries
3121                   to discourage clients from pipelining by discarding
3122                   aggressively pipelined requests, which forces the client to
3123                   resend them through a new connection.
3124                 </p>
3125                 <p>
3126                   This option lets <span class="APPLICATION">Privoxy</span>
3127                   tolerate pipelining. Whether or not that improves
3128                   performance mainly depends on the client configuration.
3129                 </p>
3130                 <p>
3131                   If you are seeing problems with pages not properly loading,
3132                   disabling this option could work around the problem.
3133                 </p>
3134               </dd>
3135               <dt>
3136                 Examples:
3137               </dt>
3138               <dd>
3139                 <p>
3140                   tolerate-pipelining 1
3141                 </p>
3142               </dd>
3143             </dl>
3144           </div>
3145         </div>
3146         <div class="SECT3">
3147           <h4 class="SECT3">
3148             <a name="DEFAULT-SERVER-TIMEOUT">7.6.6.
3149             default-server-timeout</a>
3150           </h4>
3151           <div class="VARIABLELIST">
3152             <dl>
3153               <dt>
3154                 Specifies:
3155               </dt>
3156               <dd>
3157                 <p>
3158                   Assumed server-side keep-alive timeout if not specified by
3159                   the server.
3160                 </p>
3161               </dd>
3162               <dt>
3163                 Type of value:
3164               </dt>
3165               <dd>
3166                 <p>
3167                   <tt class="REPLACEABLE"><i>Time in seconds.</i></tt>
3168                 </p>
3169               </dd>
3170               <dt>
3171                 Default value:
3172               </dt>
3173               <dd>
3174                 <p>
3175                   None
3176                 </p>
3177               </dd>
3178               <dt>
3179                 Effect if unset:
3180               </dt>
3181               <dd>
3182                 <p>
3183                   Connections for which the server didn't specify the
3184                   keep-alive timeout are not reused.
3185                 </p>
3186               </dd>
3187               <dt>
3188                 Notes:
3189               </dt>
3190               <dd>
3191                 <p>
3192                   Enabling this option significantly increases the number of
3193                   connections that are reused, provided the <a href=
3194                   "#KEEP-ALIVE-TIMEOUT" target="_top">keep-alive-timeout</a>
3195                   option is also enabled.
3196                 </p>
3197                 <p>
3198                   While it also increases the number of connections problems
3199                   when <span class="APPLICATION">Privoxy</span> tries to
3200                   reuse a connection that already has been closed on the
3201                   server side, or is closed while <span class=
3202                   "APPLICATION">Privoxy</span> is trying to reuse it, this
3203                   should only be a problem if it happens for the first
3204                   request sent by the client. If it happens for requests on
3205                   reused client connections, <span class=
3206                   "APPLICATION">Privoxy</span> will simply close the
3207                   connection and the client is supposed to retry the request
3208                   without bothering the user.
3209                 </p>
3210                 <p>
3211                   Enabling this option is therefore only recommended if the
3212                   <a href="#CONNECTION-SHARING" target=
3213                   "_top">connection-sharing</a> option is disabled.
3214                 </p>
3215                 <p>
3216                   It is an error to specify a value larger than the <a href=
3217                   "#KEEP-ALIVE-TIMEOUT" target="_top">keep-alive-timeout</a>
3218                   value.
3219                 </p>
3220                 <p>
3221                   This option has no effect if <span class=
3222                   "APPLICATION">Privoxy</span> has been compiled without
3223                   keep-alive support.
3224                 </p>
3225               </dd>
3226               <dt>
3227                 Examples:
3228               </dt>
3229               <dd>
3230                 <p>
3231                   default-server-timeout 60
3232                 </p>
3233               </dd>
3234             </dl>
3235           </div>
3236         </div>
3237         <div class="SECT3">
3238           <h4 class="SECT3">
3239             <a name="CONNECTION-SHARING">7.6.7. connection-sharing</a>
3240           </h4>
3241           <div class="VARIABLELIST">
3242             <dl>
3243               <dt>
3244                 Specifies:
3245               </dt>
3246               <dd>
3247                 <p>
3248                   Whether or not outgoing connections that have been kept
3249                   alive should be shared between different incoming
3250                   connections.
3251                 </p>
3252               </dd>
3253               <dt>
3254                 Type of value:
3255               </dt>
3256               <dd>
3257                 <p>
3258                   <tt class="REPLACEABLE"><i>0 or 1</i></tt>
3259                 </p>
3260               </dd>
3261               <dt>
3262                 Default value:
3263               </dt>
3264               <dd>
3265                 <p>
3266                   None
3267                 </p>
3268               </dd>
3269               <dt>
3270                 Effect if unset:
3271               </dt>
3272               <dd>
3273                 <p>
3274                   Connections are not shared.
3275                 </p>
3276               </dd>
3277               <dt>
3278                 Notes:
3279               </dt>
3280               <dd>
3281                 <p>
3282                   This option has no effect if <span class=
3283                   "APPLICATION">Privoxy</span> has been compiled without
3284                   keep-alive support, or if it's disabled.
3285                 </p>
3286               </dd>
3287               <dt>
3288                 Notes:
3289               </dt>
3290               <dd>
3291                 <p>
3292                   Note that reusing connections doesn't necessary cause
3293                   speedups. There are also a few privacy implications you
3294                   should be aware of.
3295                 </p>
3296                 <p>
3297                   If this option is effective, outgoing connections are
3298                   shared between clients (if there are more than one) and
3299                   closing the browser that initiated the outgoing connection
3300                   does no longer affect the connection between <span class=
3301                   "APPLICATION">Privoxy</span> and the server unless the
3302                   client's request hasn't been completed yet.
3303                 </p>
3304                 <p>
3305                   If the outgoing connection is idle, it will not be closed
3306                   until either <span class="APPLICATION">Privoxy's</span> or
3307                   the server's timeout is reached. While it's open, the
3308                   server knows that the system running <span class=
3309                   "APPLICATION">Privoxy</span> is still there.
3310                 </p>
3311                 <p>
3312                   If there are more than one client (maybe even belonging to
3313                   multiple users), they will be able to reuse each others
3314                   connections. This is potentially dangerous in case of
3315                   authentication schemes like NTLM where only the connection
3316                   is authenticated, instead of requiring authentication for
3317                   each request.
3318                 </p>
3319                 <p>
3320                   If there is only a single client, and if said client can
3321                   keep connections alive on its own, enabling this option has
3322                   next to no effect. If the client doesn't support connection
3323                   keep-alive, enabling this option may make sense as it
3324                   allows <span class="APPLICATION">Privoxy</span> to keep
3325                   outgoing connections alive even if the client itself
3326                   doesn't support it.
3327                 </p>
3328                 <p>
3329                   You should also be aware that enabling this option
3330                   increases the likelihood of getting the "No server or
3331                   forwarder data" error message, especially if you are using
3332                   a slow connection to the Internet.
3333                 </p>
3334                 <p>
3335                   This option should only be used by experienced users who
3336                   understand the risks and can weight them against the
3337                   benefits.
3338                 </p>
3339               </dd>
3340               <dt>
3341                 Examples:
3342               </dt>
3343               <dd>
3344                 <p>
3345                   connection-sharing 1
3346                 </p>
3347               </dd>
3348             </dl>
3349           </div>
3350         </div>
3351         <div class="SECT3">
3352           <h4 class="SECT3">
3353             <a name="SOCKET-TIMEOUT">7.6.8. socket-timeout</a>
3354           </h4>
3355           <div class="VARIABLELIST">
3356             <dl>
3357               <dt>
3358                 Specifies:
3359               </dt>
3360               <dd>
3361                 <p>
3362                   Number of seconds after which a socket times out if no data
3363                   is received.
3364                 </p>
3365               </dd>
3366               <dt>
3367                 Type of value:
3368               </dt>
3369               <dd>
3370                 <p>
3371                   <tt class="REPLACEABLE"><i>Time in seconds.</i></tt>
3372                 </p>
3373               </dd>
3374               <dt>
3375                 Default value:
3376               </dt>
3377               <dd>
3378                 <p>
3379                   None
3380                 </p>
3381               </dd>
3382               <dt>
3383                 Effect if unset:
3384               </dt>
3385               <dd>
3386                 <p>
3387                   A default value of 300 seconds is used.
3388                 </p>
3389               </dd>
3390               <dt>
3391                 Notes:
3392               </dt>
3393               <dd>
3394                 <p>
3395                   The default is quite high and you probably want to reduce
3396                   it. If you aren't using an occasionally slow proxy like
3397                   Tor, reducing it to a few seconds should be fine.
3398                 </p>
3399               </dd>
3400               <dt>
3401                 Examples:
3402               </dt>
3403               <dd>
3404                 <p>
3405                   socket-timeout 300
3406                 </p>
3407               </dd>
3408             </dl>
3409           </div>
3410         </div>
3411         <div class="SECT3">
3412           <h4 class="SECT3">
3413             <a name="MAX-CLIENT-CONNECTIONS">7.6.9.
3414             max-client-connections</a>
3415           </h4>
3416           <div class="VARIABLELIST">
3417             <dl>
3418               <dt>
3419                 Specifies:
3420               </dt>
3421               <dd>
3422                 <p>
3423                   Maximum number of client connections that will be served.
3424                 </p>
3425               </dd>
3426               <dt>
3427                 Type of value:
3428               </dt>
3429               <dd>
3430                 <p>
3431                   <tt class="REPLACEABLE"><i>Positive number.</i></tt>
3432                 </p>
3433               </dd>
3434               <dt>
3435                 Default value:
3436               </dt>
3437               <dd>
3438                 <p>
3439                   128
3440                 </p>
3441               </dd>
3442               <dt>
3443                 Effect if unset:
3444               </dt>
3445               <dd>
3446                 <p>
3447                   Connections are served until a resource limit is reached.
3448                 </p>
3449               </dd>
3450               <dt>
3451                 Notes:
3452               </dt>
3453               <dd>
3454                 <p>
3455                   <span class="APPLICATION">Privoxy</span> creates one thread
3456                   (or process) for every incoming client connection that
3457                   isn't rejected based on the access control settings.
3458                 </p>
3459                 <p>
3460                   If the system is powerful enough, <span class=
3461                   "APPLICATION">Privoxy</span> can theoretically deal with
3462                   several hundred (or thousand) connections at the same time,
3463                   but some operating systems enforce resource limits by
3464                   shutting down offending processes and their default limits
3465                   may be below the ones <span class=
3466                   "APPLICATION">Privoxy</span> would require under heavy
3467                   load.
3468                 </p>
3469                 <p>
3470                   Configuring <span class="APPLICATION">Privoxy</span> to
3471                   enforce a connection limit below the thread or process
3472                   limit used by the operating system makes sure this doesn't
3473                   happen. Simply increasing the operating system's limit
3474                   would work too, but if <span class=
3475                   "APPLICATION">Privoxy</span> isn't the only application
3476                   running on the system, you may actually want to limit the
3477                   resources used by <span class="APPLICATION">Privoxy</span>.
3478                 </p>
3479                 <p>
3480                   If <span class="APPLICATION">Privoxy</span> is only used by
3481                   a single trusted user, limiting the number of client
3482                   connections is probably unnecessary. If there are multiple
3483                   possibly untrusted users you probably still want to
3484                   additionally use a packet filter to limit the maximal
3485                   number of incoming connections per client. Otherwise a
3486                   malicious user could intentionally create a high number of
3487                   connections to prevent other users from using <span class=
3488                   "APPLICATION">Privoxy</span>.
3489                 </p>
3490                 <p>
3491                   Obviously using this option only makes sense if you choose
3492                   a limit below the one enforced by the operating system.
3493                 </p>
3494                 <p>
3495                   One most POSIX-compliant systems <span class=
3496                   "APPLICATION">Privoxy</span> can't properly deal with more
3497                   than FD_SETSIZE file descriptors at the same time and has
3498                   to reject connections if the limit is reached. This will
3499                   likely change in a future version, but currently this limit
3500                   can't be increased without recompiling <span class=
3501                   "APPLICATION">Privoxy</span> with a different FD_SETSIZE
3502                   limit.
3503                 </p>
3504               </dd>
3505               <dt>
3506                 Examples:
3507               </dt>
3508               <dd>
3509                 <p>
3510                   max-client-connections 256
3511                 </p>
3512               </dd>
3513             </dl>
3514           </div>
3515         </div>
3516         <div class="SECT3">
3517           <h4 class="SECT3">
3518             <a name="HANDLE-AS-EMPTY-DOC-RETURNS-OK">7.6.10.
3519             handle-as-empty-doc-returns-ok</a>
3520           </h4>
3521           <div class="VARIABLELIST">
3522             <dl>
3523               <dt>
3524                 Specifies:
3525               </dt>
3526               <dd>
3527                 <p>
3528                   The status code Privoxy returns for pages blocked with <tt
3529                   class="LITERAL"><a href=
3530                   "actions-file.html#HANDLE-AS-EMPTY-DOCUMENT" target=
3531                   "_top">+handle-as-empty-document</a></tt>.
3532                 </p>
3533               </dd>
3534               <dt>
3535                 Type of value:
3536               </dt>
3537               <dd>
3538                 <p>
3539                   <tt class="REPLACEABLE"><i>0 or 1</i></tt>
3540                 </p>
3541               </dd>
3542               <dt>
3543                 Default value:
3544               </dt>
3545               <dd>
3546                 <p>
3547                   0
3548                 </p>
3549               </dd>
3550               <dt>
3551                 Effect if unset:
3552               </dt>
3553               <dd>
3554                 <p>
3555                   Privoxy returns a status 403(forbidden) for all blocked
3556                   pages.
3557                 </p>
3558               </dd>
3559               <dt>
3560                 Effect if set:
3561               </dt>
3562               <dd>
3563                 <p>
3564                   Privoxy returns a status 200(OK) for pages blocked with
3565                   +handle-as-empty-document and a status 403(Forbidden) for
3566                   all other blocked pages.
3567                 </p>
3568               </dd>
3569               <dt>
3570                 Notes:
3571               </dt>
3572               <dd>
3573                 <p>
3574                   This directive was added as a work-around for Firefox bug
3575                   492459: <span class="QUOTE">"Websites are no longer
3576                   rendered if SSL requests for JavaScripts are blocked by a
3577                   proxy."</span> (<a href=
3578                   "https://bugzilla.mozilla.org/show_bug.cgi?id=492459"
3579                   target=
3580                   "_top">https://bugzilla.mozilla.org/show_bug.cgi?id=492459</a>),
3581                   the bug has been fixed for quite some time, but this
3582                   directive is also useful to make it harder for websites to
3583                   detect whether or not resources are being blocked.
3584                 </p>
3585               </dd>
3586             </dl>
3587           </div>
3588         </div>
3589         <div class="SECT3">
3590           <h4 class="SECT3">
3591             <a name="ENABLE-COMPRESSION">7.6.11. enable-compression</a>
3592           </h4>
3593           <div class="VARIABLELIST">
3594             <dl>
3595               <dt>
3596                 Specifies:
3597               </dt>
3598               <dd>
3599                 <p>
3600                   Whether or not buffered content is compressed before
3601                   delivery.
3602                 </p>
3603               </dd>
3604               <dt>
3605                 Type of value:
3606               </dt>
3607               <dd>
3608                 <p>
3609                   <tt class="REPLACEABLE"><i>0 or 1</i></tt>
3610                 </p>
3611               </dd>
3612               <dt>
3613                 Default value:
3614               </dt>
3615               <dd>
3616                 <p>
3617                   0
3618                 </p>
3619               </dd>
3620               <dt>
3621                 Effect if unset:
3622               </dt>
3623               <dd>
3624                 <p>
3625                   Privoxy does not compress buffered content.
3626                 </p>
3627               </dd>
3628               <dt>
3629                 Effect if set:
3630               </dt>
3631               <dd>
3632                 <p>
3633                   Privoxy compresses buffered content before delivering it to
3634                   the client, provided the client supports it.
3635                 </p>
3636               </dd>
3637               <dt>
3638                 Notes:
3639               </dt>
3640               <dd>
3641                 <p>
3642                   This directive is only supported if Privoxy has been
3643                   compiled with FEATURE_COMPRESSION, which should not to be
3644                   confused with FEATURE_ZLIB.
3645                 </p>
3646                 <p>
3647                   Compressing buffered content is mainly useful if Privoxy
3648                   and the client are running on different systems. If they
3649                   are running on the same system, enabling compression is
3650                   likely to slow things down. If you didn't measure
3651                   otherwise, you should assume that it does and keep this
3652                   option disabled.
3653                 </p>
3654                 <p>
3655                   Privoxy will not compress buffered content below a certain
3656                   length.
3657                 </p>
3658               </dd>
3659             </dl>
3660           </div>
3661         </div>
3662         <div class="SECT3">
3663           <h4 class="SECT3">
3664             <a name="COMPRESSION-LEVEL">7.6.12. compression-level</a>
3665           </h4>
3666           <div class="VARIABLELIST">
3667             <dl>
3668               <dt>
3669                 Specifies:
3670               </dt>
3671               <dd>
3672                 <p>
3673                   The compression level that is passed to the zlib library
3674                   when compressing buffered content.
3675                 </p>
3676               </dd>
3677               <dt>
3678                 Type of value:
3679               </dt>
3680               <dd>
3681                 <p>
3682                   <tt class="REPLACEABLE"><i>Positive number ranging from 0
3683                   to 9.</i></tt>
3684                 </p>
3685               </dd>
3686               <dt>
3687                 Default value:
3688               </dt>
3689               <dd>
3690                 <p>
3691                   1
3692                 </p>
3693               </dd>
3694               <dt>
3695                 Notes:
3696               </dt>
3697               <dd>
3698                 <p>
3699                   Compressing the data more takes usually longer than
3700                   compressing it less or not compressing it at all. Which
3701                   level is best depends on the connection between Privoxy and
3702                   the client. If you can't be bothered to benchmark it for
3703                   yourself, you should stick with the default and keep
3704                   compression disabled.
3705                 </p>
3706                 <p>
3707                   If compression is disabled, the compression level is
3708                   irrelevant.
3709                 </p>
3710               </dd>
3711               <dt>
3712                 Examples:
3713               </dt>
3714               <dd>
3715                 <p>
3716                 </p>
3717                 <table border="0" bgcolor="#E0E0E0" width="90%">
3718                   <tr>
3719                     <td>
3720 <pre class="SCREEN">
3721     # Best speed (compared to the other levels)
3722     compression-level 1
3723     # Best compression
3724     compression-level 9
3725     # No compression. Only useful for testing as the added header
3726     # slightly increases the amount of data that has to be sent.
3727     # If your benchmark shows that using this compression level
3728     # is superior to using no compression at all, the benchmark
3729     # is likely to be flawed.
3730     compression-level 0
3731
3732 </pre>
3733                     </td>
3734                   </tr>
3735                 </table>
3736               </dd>
3737             </dl>
3738           </div>
3739         </div>
3740         <div class="SECT3">
3741           <h4 class="SECT3">
3742             <a name="CLIENT-HEADER-ORDER">7.6.13. client-header-order</a>
3743           </h4>
3744           <div class="VARIABLELIST">
3745             <dl>
3746               <dt>
3747                 Specifies:
3748               </dt>
3749               <dd>
3750                 <p>
3751                   The order in which client headers are sorted before
3752                   forwarding them.
3753                 </p>
3754               </dd>
3755               <dt>
3756                 Type of value:
3757               </dt>
3758               <dd>
3759                 <p>
3760                   <tt class="REPLACEABLE"><i>Client header names delimited by
3761                   spaces or tabs</i></tt>
3762                 </p>
3763               </dd>
3764               <dt>
3765                 Default value:
3766               </dt>
3767               <dd>
3768                 <p>
3769                   None
3770                 </p>
3771               </dd>
3772               <dt>
3773                 Notes:
3774               </dt>
3775               <dd>
3776                 <p>
3777                   By default <span class="APPLICATION">Privoxy</span> leaves
3778                   the client headers in the order they were sent by the
3779                   client. Headers are modified in-place, new headers are
3780                   added at the end of the already existing headers.
3781                 </p>
3782                 <p>
3783                   The header order can be used to fingerprint client requests
3784                   independently of other headers like the User-Agent.
3785                 </p>
3786                 <p>
3787                   This directive allows to sort the headers differently to
3788                   better mimic a different User-Agent. Client headers will be
3789                   emitted in the order given, headers whose name isn't
3790                   explicitly specified are added at the end.
3791                 </p>
3792                 <p>
3793                   Note that sorting headers in an uncommon way will make
3794                   fingerprinting actually easier. Encrypted headers are not
3795                   affected by this directive.
3796                 </p>
3797               </dd>
3798             </dl>
3799           </div>
3800         </div>
3801         <div class="SECT3">
3802           <h4 class="SECT3">
3803             <a name="CLIENT-SPECIFIC-TAG">7.6.14. client-specific-tag</a>
3804           </h4>
3805           <div class="VARIABLELIST">
3806             <dl>
3807               <dt>
3808                 Specifies:
3809               </dt>
3810               <dd>
3811                 <p>
3812                   The name of a tag that will always be set for clients that
3813                   requested it through the webinterface.
3814                 </p>
3815               </dd>
3816               <dt>
3817                 Type of value:
3818               </dt>
3819               <dd>
3820                 <p>
3821                   <tt class="REPLACEABLE"><i>Tag name followed by a
3822                   description that will be shown in the webinterface</i></tt>
3823                 </p>
3824               </dd>
3825               <dt>
3826                 Default value:
3827               </dt>
3828               <dd>
3829                 <p>
3830                   None
3831                 </p>
3832               </dd>
3833               <dt>
3834                 Notes:
3835               </dt>
3836               <dd>
3837                 <div class="WARNING">
3838                   <table class="WARNING" border="1" width="90%">
3839                     <tr>
3840                       <td align="CENTER">
3841                         <b>Warning</b>
3842                       </td>
3843                     </tr>
3844                     <tr>
3845                       <td align="LEFT">
3846                         <p>
3847                           This is an experimental feature. The syntax is
3848                           likely to change in future versions.
3849                         </p>
3850                       </td>
3851                     </tr>
3852                   </table>
3853                 </div>
3854                 <p>
3855                   Client-specific tags allow Privoxy admins to create
3856                   different profiles and let the users chose which one they
3857                   want without impacting other users.
3858                 </p>
3859                 <p>
3860                   One use case is allowing users to circumvent certain blocks
3861                   without having to allow them to circumvent all blocks. This
3862                   is not possible with the <a href=
3863                   "config.html#ENABLE-REMOTE-TOGGLE">enable-remote-toggle
3864                   feature</a> because it would bluntly disable all blocks for
3865                   all users and also affect other actions like filters. It
3866                   also is set globally which renders it useless in most
3867                   multi-user setups.
3868                 </p>
3869                 <p>
3870                   After a client-specific tag has been defined with the
3871                   client-specific-tag directive, action sections can be
3872                   activated based on the tag by using a <a href=
3873                   "actions-file.html#CLIENT-TAG-PATTERN" target=
3874                   "_top">CLIENT-TAG</a> pattern. The CLIENT-TAG pattern is
3875                   evaluated at the same priority as URL patterns, as a result
3876                   the last matching pattern wins. Tags that are created based
3877                   on client or server headers are evaluated later on and can
3878                   overrule CLIENT-TAG and URL patterns!
3879                 </p>
3880                 <p>
3881                   The tag is set for all requests that come from clients that
3882                   requested it to be set. Note that "clients" are
3883                   differentiated by IP address, if the IP address changes the
3884                   tag has to be requested again.
3885                 </p>
3886                 <p>
3887                   Clients can request tags to be set by using the CGI
3888                   interface <a href="http://config.privoxy.org/client-tags"
3889                   target="_top">http://config.privoxy.org/client-tags</a>.
3890                   The specific tag description is only used on the web page
3891                   and should be phrased in away that the user understand the
3892                   effect of the tag.
3893                 </p>
3894               </dd>
3895               <dt>
3896                 Examples:
3897               </dt>
3898               <dd>
3899                 <p>
3900                 </p>
3901                 <table border="0" bgcolor="#E0E0E0" width="90%">
3902                   <tr>
3903                     <td>
3904 <pre class="SCREEN">
3905     # Define a couple of tags, the described effect requires action sections
3906     # that are enabled based on CLIENT-TAG patterns.
3907     client-specific-tag circumvent-blocks Overrule blocks but do not affect other actions
3908     disable-content-filters Disable content-filters but do not affect other actions
3909
3910 </pre>
3911                     </td>
3912                   </tr>
3913                 </table>
3914               </dd>
3915             </dl>
3916           </div>
3917         </div>
3918         <div class="SECT3">
3919           <h4 class="SECT3">
3920             <a name="CLIENT-TAG-LIFETIME">7.6.15. client-tag-lifetime</a>
3921           </h4>
3922           <div class="VARIABLELIST">
3923             <dl>
3924               <dt>
3925                 Specifies:
3926               </dt>
3927               <dd>
3928                 <p>
3929                   How long a temporarily enabled tag remains enabled.
3930                 </p>
3931               </dd>
3932               <dt>
3933                 Type of value:
3934               </dt>
3935               <dd>
3936                 <p>
3937                   <tt class="REPLACEABLE"><i>Time in seconds.</i></tt>
3938                 </p>
3939               </dd>
3940               <dt>
3941                 Default value:
3942               </dt>
3943               <dd>
3944                 <p>
3945                   60
3946                 </p>
3947               </dd>
3948               <dt>
3949                 Notes:
3950               </dt>
3951               <dd>
3952                 <div class="WARNING">
3953                   <table class="WARNING" border="1" width="90%">
3954                     <tr>
3955                       <td align="CENTER">
3956                         <b>Warning</b>
3957                       </td>
3958                     </tr>
3959                     <tr>
3960                       <td align="LEFT">
3961                         <p>
3962                           This is an experimental feature. The syntax is
3963                           likely to change in future versions.
3964                         </p>
3965                       </td>
3966                     </tr>
3967                   </table>
3968                 </div>
3969                 <p>
3970                   In case of some tags users may not want to enable them
3971                   permanently, but only for a short amount of time, for
3972                   example to circumvent a block that is the result of an
3973                   overly-broad URL pattern.
3974                 </p>
3975                 <p>
3976                   The CGI interface <a href=
3977                   "http://config.privoxy.org/client-tags" target=
3978                   "_top">http://config.privoxy.org/client-tags</a> therefore
3979                   provides a "enable this tag temporarily" option. If it is
3980                   used, the tag will be set until the client-tag-lifetime is
3981                   over.
3982                 </p>
3983               </dd>
3984               <dt>
3985                 Examples:
3986               </dt>
3987               <dd>
3988                 <p>
3989                 </p>
3990                 <table border="0" bgcolor="#E0E0E0" width="90%">
3991                   <tr>
3992                     <td>
3993 <pre class="SCREEN">
3994       # Increase the time to life for temporarily enabled tags to 3 minutes
3995       client-tag-lifetime 180
3996
3997 </pre>
3998                     </td>
3999                   </tr>
4000                 </table>
4001               </dd>
4002             </dl>
4003           </div>
4004         </div>
4005         <div class="SECT3">
4006           <h4 class="SECT3">
4007             <a name="TRUST-X-FORWARDED-FOR">7.6.16. trust-x-forwarded-for</a>
4008           </h4>
4009           <div class="VARIABLELIST">
4010             <dl>
4011               <dt>
4012                 Specifies:
4013               </dt>
4014               <dd>
4015                 <p>
4016                   Whether or not Privoxy should use IP addresses specified
4017                   with the X-Forwarded-For header
4018                 </p>
4019               </dd>
4020               <dt>
4021                 Type of value:
4022               </dt>
4023               <dd>
4024                 <p>
4025                   <tt class="REPLACEABLE"><i>0 or one</i></tt>
4026                 </p>
4027               </dd>
4028               <dt>
4029                 Default value:
4030               </dt>
4031               <dd>
4032                 <p>
4033                   0
4034                 </p>
4035               </dd>
4036               <dt>
4037                 Notes:
4038               </dt>
4039               <dd>
4040                 <div class="WARNING">
4041                   <table class="WARNING" border="1" width="90%">
4042                     <tr>
4043                       <td align="CENTER">
4044                         <b>Warning</b>
4045                       </td>
4046                     </tr>
4047                     <tr>
4048                       <td align="LEFT">
4049                         <p>
4050                           This is an experimental feature. The syntax is
4051                           likely to change in future versions.
4052                         </p>
4053                       </td>
4054                     </tr>
4055                   </table>
4056                 </div>
4057                 <p>
4058                   If clients reach Privoxy through another proxy, for example
4059                   a load balancer, Privoxy can't tell the client's IP address
4060                   from the connection. If multiple clients use the same
4061                   proxy, they will share the same client tag settings which
4062                   is usually not desired.
4063                 </p>
4064                 <p>
4065                   This option lets Privoxy use the X-Forwarded-For header
4066                   value as client IP address. If the proxy sets the header,
4067                   multiple clients using the same proxy do not share the same
4068                   client tag settings.
4069                 </p>
4070                 <p>
4071                   This option should only be enabled if Privoxy can only be
4072                   reached through a proxy and if the proxy can be trusted to
4073                   set the header correctly. It is recommended that ACL are
4074                   used to make sure only trusted systems can reach Privoxy.
4075                 </p>
4076                 <p>
4077                   If access to Privoxy isn't limited to trusted systems, this
4078                   option would allow malicious clients to change the client
4079                   tags for other clients or increase Privoxy's memory
4080                   requirements by registering lots of client tag settings for
4081                   clients that don't exist.
4082                 </p>
4083               </dd>
4084               <dt>
4085                 Examples:
4086               </dt>
4087               <dd>
4088                 <p>
4089                 </p>
4090                 <table border="0" bgcolor="#E0E0E0" width="90%">
4091                   <tr>
4092                     <td>
4093 <pre class="SCREEN">
4094       # Allow systems that can reach Privoxy to provide the client
4095       # IP address with a X-Forwarded-For header.
4096       trust-x-forwarded-for 1
4097
4098 </pre>
4099                     </td>
4100                   </tr>
4101                 </table>
4102               </dd>
4103             </dl>
4104           </div>
4105         </div>
4106       </div>
4107       <div class="SECT2">
4108         <h2 class="SECT2">
4109           <a name="WINDOWS-GUI">7.7. Windows GUI Options</a>
4110         </h2>
4111         <p>
4112           <span class="APPLICATION">Privoxy</span> has a number of options
4113           specific to the Windows GUI interface:
4114         </p>
4115         <a name="ACTIVITY-ANIMATION"></a>
4116         <p>
4117           If <span class="QUOTE">"activity-animation"</span> is set to 1, the
4118           <span class="APPLICATION">Privoxy</span> icon will animate when
4119           <span class="QUOTE">"Privoxy"</span> is active. To turn off, set to
4120           0.
4121         </p>
4122         <p>
4123         </p>
4124         <p class="LITERALLAYOUT">
4125           <tt class="LITERAL">&nbsp;&nbsp;<span class="emphasis"><i class=
4126           "EMPHASIS">activity-animation 1</i></span><br>
4127            &nbsp;&nbsp;&nbsp;</tt>
4128         </p>
4129          <a name="LOG-MESSAGES"></a>
4130         <p>
4131           If <span class="QUOTE">"log-messages"</span> is set to 1, <span
4132           class="APPLICATION">Privoxy</span> copies log messages to the
4133           console window. The log detail depends on the <a href=
4134           "config.html#DEBUG">debug</a> directive.
4135         </p>
4136         <p>
4137         </p>
4138         <p class="LITERALLAYOUT">
4139           <tt class="LITERAL">&nbsp;&nbsp;<span class="emphasis"><i class=
4140           "EMPHASIS">log-messages 1</i></span><br>
4141            &nbsp;&nbsp;&nbsp;</tt>
4142         </p>
4143          <a name="LOG-BUFFER-SIZE"></a>
4144         <p>
4145           If <span class="QUOTE">"log-buffer-size"</span> is set to 1, the
4146           size of the log buffer, i.e. the amount of memory used for the log
4147           messages displayed in the console window, will be limited to <span
4148           class="QUOTE">"log-max-lines"</span> (see below).
4149         </p>
4150         <p>
4151           Warning: Setting this to 0 will result in the buffer to grow
4152           infinitely and eat up all your memory!
4153         </p>
4154         <p>
4155         </p>
4156         <p class="LITERALLAYOUT">
4157           <tt class="LITERAL">&nbsp;&nbsp;<span class="emphasis"><i class=
4158           "EMPHASIS">log-buffer-size 1</i></span><br>
4159            &nbsp;&nbsp;&nbsp;</tt>
4160         </p>
4161          <a name="LOG-MAX-LINES"></a>
4162         <p>
4163           <span class="APPLICATION">log-max-lines</span> is the maximum
4164           number of lines held in the log buffer. See above.
4165         </p>
4166         <p>
4167         </p>
4168         <p class="LITERALLAYOUT">
4169           <tt class="LITERAL">&nbsp;&nbsp;<span class="emphasis"><i class=
4170           "EMPHASIS">log-max-lines 200</i></span><br>
4171            &nbsp;&nbsp;&nbsp;</tt>
4172         </p>
4173          <a name="LOG-HIGHLIGHT-MESSAGES"></a>
4174         <p>
4175           If <span class="QUOTE">"log-highlight-messages"</span> is set to 1,
4176           <span class="APPLICATION">Privoxy</span> will highlight portions of
4177           the log messages with a bold-faced font:
4178         </p>
4179         <p>
4180         </p>
4181         <p class="LITERALLAYOUT">
4182           <tt class="LITERAL">&nbsp;&nbsp;<span class="emphasis"><i class=
4183           "EMPHASIS">log-highlight-messages 1</i></span><br>
4184            &nbsp;&nbsp;&nbsp;</tt>
4185         </p>
4186          <a name="LOG-FONT-NAME"></a>
4187         <p>
4188           The font used in the console window:
4189         </p>
4190         <p>
4191         </p>
4192         <p class="LITERALLAYOUT">
4193           <tt class="LITERAL">&nbsp;&nbsp;<span class="emphasis"><i class=
4194           "EMPHASIS">log-font-name Comic Sans MS</i></span><br>
4195            &nbsp;&nbsp;&nbsp;</tt>
4196         </p>
4197          <a name="LOG-FONT-SIZE"></a>
4198         <p>
4199           Font size used in the console window:
4200         </p>
4201         <p>
4202         </p>
4203         <p class="LITERALLAYOUT">
4204           <tt class="LITERAL">&nbsp;&nbsp;<span class="emphasis"><i class=
4205           "EMPHASIS">log-font-size 8</i></span><br>
4206            &nbsp;&nbsp;&nbsp;</tt>
4207         </p>
4208          <a name="SHOW-ON-TASK-BAR"></a>
4209         <p>
4210           <span class="QUOTE">"show-on-task-bar"</span> controls whether or
4211           not <span class="APPLICATION">Privoxy</span> will appear as a
4212           button on the Task bar when minimized:
4213         </p>
4214         <p>
4215         </p>
4216         <p class="LITERALLAYOUT">
4217           <tt class="LITERAL">&nbsp;&nbsp;<span class="emphasis"><i class=
4218           "EMPHASIS">show-on-task-bar 0</i></span><br>
4219            &nbsp;&nbsp;&nbsp;</tt>
4220         </p>
4221          <a name="CLOSE-BUTTON-MINIMIZES"></a>
4222         <p>
4223           If <span class="QUOTE">"close-button-minimizes"</span> is set to 1,
4224           the Windows close button will minimize <span class=
4225           "APPLICATION">Privoxy</span> instead of closing the program (close
4226           with the exit option on the File menu).
4227         </p>
4228         <p>
4229         </p>
4230         <p class="LITERALLAYOUT">
4231           <tt class="LITERAL">&nbsp;&nbsp;<span class="emphasis"><i class=
4232           "EMPHASIS">close-button-minimizes 1</i></span><br>
4233            &nbsp;&nbsp;&nbsp;</tt>
4234         </p>
4235          <a name="HIDE-CONSOLE"></a>
4236         <p>
4237           The <span class="QUOTE">"hide-console"</span> option is specific to
4238           the MS-Win console version of <span class=
4239           "APPLICATION">Privoxy</span>. If this option is used, <span class=
4240           "APPLICATION">Privoxy</span> will disconnect from and hide the
4241           command console.
4242         </p>
4243         <p>
4244         </p>
4245         <p class="LITERALLAYOUT">
4246           <tt class="LITERAL">&nbsp;&nbsp;#<span class="emphasis"><i class=
4247           "EMPHASIS">hide-console</i></span><br>
4248            &nbsp;&nbsp;&nbsp;</tt>
4249         </p>
4250       </div>
4251     </div>
4252     <div class="NAVFOOTER">
4253       <hr align="LEFT" width="100%">
4254       <table summary="Footer navigation table" width="100%" border="0"
4255       cellpadding="0" cellspacing="0">
4256         <tr>
4257           <td width="33%" align="left" valign="top">
4258             <a href="configuration.html" accesskey="P">Prev</a>
4259           </td>
4260           <td width="34%" align="center" valign="top">
4261             <a href="index.html" accesskey="H">Home</a>
4262           </td>
4263           <td width="33%" align="right" valign="top">
4264             <a href="actions-file.html" accesskey="N">Next</a>
4265           </td>
4266         </tr>
4267         <tr>
4268           <td width="33%" align="left" valign="top">
4269             Privoxy Configuration
4270           </td>
4271           <td width="34%" align="center" valign="top">
4272             &nbsp;
4273           </td>
4274           <td width="33%" align="right" valign="top">
4275             Actions Files
4276           </td>
4277         </tr>
4278       </table>
4279     </div>
4280   </body>
4281 </html>
4282