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