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