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