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