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