Add an enable-proxy-authentication-forwarding directive
[privoxy.git] / config
1 #        Sample Configuration File for Privoxy 3.0.21
2 #
3 #  $Id: p-config.sgml,v 2.97 2013/03/01 17:39:27 fabiankeil Exp $
4 #
5 #  Copyright (C) 2001-2013 Privoxy Developers http://www.privoxy.org/
6 #
7 ####################################################################
8 #                                                                  #
9 #                      Table of Contents                           #
10 #                                                                  #
11 #        I. INTRODUCTION                                           #
12 #       II. FORMAT OF THE CONFIGURATION FILE                       #
13 #                                                                  #
14 #        1. LOCAL SET-UP DOCUMENTATION                             #
15 #        2. CONFIGURATION AND LOG FILE LOCATIONS                   #
16 #        3. DEBUGGING                                              #
17 #        4. ACCESS CONTROL AND SECURITY                            #
18 #        5. FORWARDING                                             #
19 #        6. WINDOWS GUI OPTIONS                                    #
20 #                                                                  #
21 ####################################################################
22 #
23 #
24 #  I. INTRODUCTION
25 #   ===============
26 #
27 #  This file holds Privoxy's main configuration. Privoxy detects
28 #  configuration changes automatically, so you don't have to restart
29 #  it unless you want to load a different configuration file.
30 #
31 #  The configuration will be reloaded with the first request after
32 #  the change was done, this request itself will still use the old
33 #  configuration, though. In other words: it takes two requests
34 #  before you see the result of your changes. Requests that are
35 #  dropped due to ACL don't trigger reloads.
36 #
37 #  When starting Privoxy on Unix systems, give the location of this
38 #  file as last argument. On Windows systems, Privoxy will look for
39 #  this file with the name 'config.txt' in the current working
40 #  directory of the Privoxy process.
41 #
42 #
43 #  II. FORMAT OF THE CONFIGURATION FILE
44 #  ====================================
45 #
46 #  Configuration lines consist of an initial keyword followed by a
47 #  list of values, all separated by whitespace (any number of spaces
48 #  or tabs). For example,
49 #
50 #  actionsfile default.action
51 #
52 #  Indicates that the actionsfile is named 'default.action'.
53 #
54 #  The '#' indicates a comment. Any part of a line following a '#' is
55 #  ignored, except if the '#' is preceded by a '\'.
56 #
57 #  Thus, by placing a # at the start of an existing configuration
58 #  line, you can make it a comment and it will be treated as if it
59 #  weren't there. This is called "commenting out" an option and can
60 #  be useful. Removing the # again is called "uncommenting".
61 #
62 #  Note that commenting out an option and leaving it at its default
63 #  are two completely different things! Most options behave very
64 #  differently when unset. See the "Effect if unset" explanation in
65 #  each option's description for details.
66 #
67 #  Long lines can be continued on the next line by using a `\' as the
68 #  last character.
69 #
70 #
71 #  1. LOCAL SET-UP DOCUMENTATION
72 #  ==============================
73 #
74 #  If you intend to operate Privoxy for more users than just
75 #  yourself, it might be a good idea to let them know how to reach
76 #  you, what you block and why you do that, your policies, etc.
77 #
78 #
79 #  1.1. user-manual
80 #  =================
81 #
82 #  Specifies:
83 #
84 #      Location of the Privoxy User Manual.
85 #
86 #  Type of value:
87 #
88 #      A fully qualified URI
89 #
90 #  Default value:
91 #
92 #      Unset
93 #
94 #  Effect if unset:
95 #
96 #      http://www.privoxy.org/version/user-manual/ will be used,
97 #      where version is the Privoxy version.
98 #
99 #  Notes:
100 #
101 #      The User Manual URI is the single best source of information
102 #      on Privoxy, and is used for help links from some of the
103 #      internal CGI pages. The manual itself is normally packaged
104 #      with the binary distributions, so you probably want to set
105 #      this to a locally installed copy.
106 #
107 #      Examples:
108 #
109 #      The best all purpose solution is simply to put the full local
110 #      PATH to where the User Manual is located:
111 #
112 #        user-manual  /usr/share/doc/privoxy/user-manual
113 #
114 #      The User Manual is then available to anyone with access to
115 #      Privoxy, by following the built-in URL: http://
116 #      config.privoxy.org/user-manual/ (or the shortcut: http://p.p/
117 #      user-manual/).
118 #
119 #      If the documentation is not on the local system, it can be
120 #      accessed from a remote server, as:
121 #
122 #        user-manual  http://example.com/privoxy/user-manual/
123 #
124 #      WARNING!!!
125 #
126 #          If set, this option should be the first option in the
127 #          config file, because it is used while the config file is
128 #          being read.
129 #
130 #user-manual http://www.privoxy.org/user-manual/
131 #
132 #  1.2. trust-info-url
133 #  ====================
134 #
135 #  Specifies:
136 #
137 #      A URL to be displayed in the error page that users will see if
138 #      access to an untrusted page is denied.
139 #
140 #  Type of value:
141 #
142 #      URL
143 #
144 #  Default value:
145 #
146 #      Unset
147 #
148 #  Effect if unset:
149 #
150 #      No links are displayed on the "untrusted" error page.
151 #
152 #  Notes:
153 #
154 #      The value of this option only matters if the experimental
155 #      trust mechanism has been activated. (See trustfile below.)
156 #
157 #      If you use the trust mechanism, it is a good idea to write up
158 #      some on-line documentation about your trust policy and to
159 #      specify the URL(s) here. Use multiple times for multiple URLs.
160 #
161 #      The URL(s) should be added to the trustfile as well, so users
162 #      don't end up locked out from the information on why they were
163 #      locked out in the first place!
164 #
165 #trust-info-url  http://www.example.com/why_we_block.html
166 #trust-info-url  http://www.example.com/what_we_allow.html
167 #
168 #  1.3. admin-address
169 #  ===================
170 #
171 #  Specifies:
172 #
173 #      An email address to reach the Privoxy administrator.
174 #
175 #  Type of value:
176 #
177 #      Email address
178 #
179 #  Default value:
180 #
181 #      Unset
182 #
183 #  Effect if unset:
184 #
185 #      No email address is displayed on error pages and the CGI user
186 #      interface.
187 #
188 #  Notes:
189 #
190 #      If both admin-address and proxy-info-url are unset, the whole
191 #      "Local Privoxy Support" box on all generated pages will not be
192 #      shown.
193 #
194 #admin-address privoxy-admin@example.com
195 #
196 #  1.4. proxy-info-url
197 #  ====================
198 #
199 #  Specifies:
200 #
201 #      A URL to documentation about the local Privoxy setup,
202 #      configuration or policies.
203 #
204 #  Type of value:
205 #
206 #      URL
207 #
208 #  Default value:
209 #
210 #      Unset
211 #
212 #  Effect if unset:
213 #
214 #      No link to local documentation is displayed on error pages and
215 #      the CGI user interface.
216 #
217 #  Notes:
218 #
219 #      If both admin-address and proxy-info-url are unset, the whole
220 #      "Local Privoxy Support" box on all generated pages will not be
221 #      shown.
222 #
223 #      This URL shouldn't be blocked ;-)
224 #
225 #proxy-info-url http://www.example.com/proxy-service.html
226 #
227 #  2. CONFIGURATION AND LOG FILE LOCATIONS
228 #  ========================================
229 #
230 #  Privoxy can (and normally does) use a number of other files for
231 #  additional configuration, help and logging. This section of the
232 #  configuration file tells Privoxy where to find those other files.
233 #
234 #  The user running Privoxy, must have read permission for all
235 #  configuration files, and write permission to any files that would
236 #  be modified, such as log files and actions files.
237 #
238 #
239 #  2.1. confdir
240 #  =============
241 #
242 #  Specifies:
243 #
244 #      The directory where the other configuration files are located.
245 #
246 #  Type of value:
247 #
248 #      Path name
249 #
250 #  Default value:
251 #
252 #      /etc/privoxy (Unix) or Privoxy installation dir (Windows)
253 #
254 #  Effect if unset:
255 #
256 #      Mandatory
257 #
258 #  Notes:
259 #
260 #      No trailing "/", please.
261 #
262 confdir .
263 #
264 #  2.2. templdir
265 #  ==============
266 #
267 #  Specifies:
268 #
269 #      An alternative directory where the templates are loaded from.
270 #
271 #  Type of value:
272 #
273 #      Path name
274 #
275 #  Default value:
276 #
277 #      unset
278 #
279 #  Effect if unset:
280 #
281 #      The templates are assumed to be located in confdir/template.
282 #
283 #  Notes:
284 #
285 #      Privoxy's original templates are usually overwritten with each
286 #      update. Use this option to relocate customized templates that
287 #      should be kept. As template variables might change between
288 #      updates, you shouldn't expect templates to work with Privoxy
289 #      releases other than the one they were part of, though.
290 #
291 #templdir .
292 #
293 #  2.3. logdir
294 #  ============
295 #
296 #  Specifies:
297 #
298 #      The directory where all logging takes place (i.e. where the
299 #      logfile is located).
300 #
301 #  Type of value:
302 #
303 #      Path name
304 #
305 #  Default value:
306 #
307 #      /var/log/privoxy (Unix) or Privoxy installation dir (Windows)
308 #
309 #  Effect if unset:
310 #
311 #      Mandatory
312 #
313 #  Notes:
314 #
315 #      No trailing "/", please.
316 #
317 logdir .
318 #
319 #  2.4. actionsfile
320 #  =================
321 #
322 #  Specifies:
323 #
324 #      The actions file(s) to use
325 #
326 #  Type of value:
327 #
328 #      Complete file name, relative to confdir
329 #
330 #  Default values:
331 #
332 #        match-all.action # Actions that are applied to all sites and maybe overruled later on.
333 #
334 #        default.action   # Main actions file
335 #
336 #        user.action      # User customizations
337 #
338 #  Effect if unset:
339 #
340 #      No actions are taken at all. More or less neutral proxying.
341 #
342 #  Notes:
343 #
344 #      Multiple actionsfile lines are permitted, and are in fact
345 #      recommended!
346 #
347 #      The default values are default.action, which is the "main"
348 #      actions file maintained by the developers, and user.action,
349 #      where you can make your personal additions.
350 #
351 #      Actions files contain all the per site and per URL
352 #      configuration for ad blocking, cookie management, privacy
353 #      considerations, etc. There is no point in using Privoxy
354 #      without at least one actions file.
355 #
356 #      Note that since Privoxy 3.0.7, the complete filename,
357 #      including the ".action" extension has to be specified. The
358 #      syntax change was necessary to be consistent with the other
359 #      file options and to allow previously forbidden characters.
360 #
361 actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on.
362 actionsfile default.action   # Main actions file
363 actionsfile user.action      # User customizations
364 #
365 #  2.5. filterfile
366 #  ================
367 #
368 #  Specifies:
369 #
370 #      The filter file(s) to use
371 #
372 #  Type of value:
373 #
374 #      File name, relative to confdir
375 #
376 #  Default value:
377 #
378 #      default.filter (Unix) or default.filter.txt (Windows)
379 #
380 #  Effect if unset:
381 #
382 #      No textual content filtering takes place, i.e. all +filter{name}
383 #      actions in the actions files are turned neutral.
384 #
385 #  Notes:
386 #
387 #      Multiple filterfile lines are permitted.
388 #
389 #      The filter files contain content modification rules that use
390 #      regular expressions. These rules permit powerful changes on
391 #      the content of Web pages, and optionally the headers as well,
392 #      e.g., you could try to disable your favorite JavaScript
393 #      annoyances, re-write the actual displayed text, or just have
394 #      some fun playing buzzword bingo with web pages.
395 #
396 #      The +filter{name} actions rely on the relevant filter (name)
397 #      to be defined in a filter file!
398 #
399 #      A pre-defined filter file called default.filter that contains
400 #      a number of useful filters for common problems is included in
401 #      the distribution. See the section on the filter action for a
402 #      list.
403 #
404 #      It is recommended to place any locally adapted filters into a
405 #      separate file, such as user.filter.
406 #
407 filterfile default.filter
408 filterfile user.filter      # User customizations
409 #
410 #  2.6. logfile
411 #  =============
412 #
413 #  Specifies:
414 #
415 #      The log file to use
416 #
417 #  Type of value:
418 #
419 #      File name, relative to logdir
420 #
421 #  Default value:
422 #
423 #      Unset (commented out). When activated: logfile (Unix) or
424 #      privoxy.log (Windows).
425 #
426 #  Effect if unset:
427 #
428 #      No logfile is written.
429 #
430 #  Notes:
431 #
432 #      The logfile is where all logging and error messages are
433 #      written. The level of detail and number of messages are set
434 #      with the debug option (see below). The logfile can be useful
435 #      for tracking down a problem with Privoxy (e.g., it's not
436 #      blocking an ad you think it should block) and it can help you
437 #      to monitor what your browser is doing.
438 #
439 #      Depending on the debug options below, the logfile may be a
440 #      privacy risk if third parties can get access to it. As most
441 #      users will never look at it, Privoxy 3.0.7 and later only log
442 #      fatal errors by default.
443 #
444 #      For most troubleshooting purposes, you will have to change
445 #      that, please refer to the debugging section for details.
446 #
447 #      Your logfile will grow indefinitely, and you will probably
448 #      want to periodically remove it. On Unix systems, you can do
449 #      this with a cron job (see "man cron").
450 #
451 #      Any log files must be writable by whatever user Privoxy is
452 #      being run as (on Unix, default user id is "privoxy").
453 #
454 logfile logfile
455 #
456 #  2.7. trustfile
457 #  ===============
458 #
459 #  Specifies:
460 #
461 #      The name of the trust file to use
462 #
463 #  Type of value:
464 #
465 #      File name, relative to confdir
466 #
467 #  Default value:
468 #
469 #      Unset (commented out). When activated: trust (Unix) or
470 #      trust.txt (Windows)
471 #
472 #  Effect if unset:
473 #
474 #      The entire trust mechanism is disabled.
475 #
476 #  Notes:
477 #
478 #      The trust mechanism is an experimental feature for building
479 #      white-lists and should be used with care. It is NOT
480 #      recommended for the casual user.
481 #
482 #      If you specify a trust file, Privoxy will only allow access to
483 #      sites that are specified in the trustfile. Sites can be listed
484 #      in one of two ways:
485 #
486 #      Prepending a ~ character limits access to this site only (and
487 #      any sub-paths within this site), e.g. ~www.example.com allows
488 #      access to ~www.example.com/features/news.html, etc.
489 #
490 #      Or, you can designate sites as trusted referrers, by
491 #      prepending the name with a + character. The effect is that
492 #      access to untrusted sites will be granted -- but only if a
493 #      link from this trusted referrer was used to get there. The
494 #      link target will then be added to the "trustfile" so that
495 #      future, direct accesses will be granted. Sites added via this
496 #      mechanism do not become trusted referrers themselves (i.e.
497 #      they are added with a ~ designation). There is a limit of 512
498 #      such entries, after which new entries will not be made.
499 #
500 #      If you use the + operator in the trust file, it may grow
501 #      considerably over time.
502 #
503 #      It is recommended that Privoxy be compiled with the
504 #      --disable-force, --disable-toggle and --disable-editor
505 #      options, if this feature is to be used.
506 #
507 #      Possible applications include limiting Internet access for
508 #      children.
509 #
510 #trustfile trust
511 #
512 #  3. DEBUGGING
513 #  =============
514 #
515 #  These options are mainly useful when tracing a problem. Note that
516 #  you might also want to invoke Privoxy with the --no-daemon command
517 #  line option when debugging.
518 #
519 #
520 #  3.1. debug
521 #  ===========
522 #
523 #  Specifies:
524 #
525 #      Key values that determine what information gets logged.
526 #
527 #  Type of value:
528 #
529 #      Integer values
530 #
531 #  Default value:
532 #
533 #      0 (i.e.: only fatal errors (that cause Privoxy to exit) are
534 #      logged)
535 #
536 #  Effect if unset:
537 #
538 #      Default value is used (see above).
539 #
540 #  Notes:
541 #
542 #      The available debug levels are:
543 #
544 #        debug     1 # Log the destination for each request Privoxy let through. See also debug 1024.
545 #        debug     2 # show each connection status
546 #        debug     4 # show I/O status
547 #        debug     8 # show header parsing
548 #        debug    16 # log all data written to the network
549 #        debug    32 # debug force feature
550 #        debug    64 # debug regular expression filters
551 #        debug   128 # debug redirects
552 #        debug   256 # debug GIF de-animation
553 #        debug   512 # Common Log Format
554 #        debug  1024 # Log the destination for requests Privoxy didn't let through, and the reason why.
555 #        debug  2048 # CGI user interface
556 #        debug  4096 # Startup banner and warnings.
557 #        debug  8192 # Non-fatal errors
558 #        debug 32768 # log all data read from the network
559 #        debug 65536 # Log the applying actions
560 #
561 #      To select multiple debug levels, you can either add them or
562 #      use multiple debug lines.
563 #
564 #      A debug level of 1 is informative because it will show you
565 #      each request as it happens. 1, 1024, 4096 and 8192 are
566 #      recommended so that you will notice when things go wrong. The
567 #      other levels are probably only of interest if you are hunting
568 #      down a specific problem. They can produce a hell of an output
569 #      (especially 16).
570 #
571 #      Privoxy used to ship with the debug levels recommended above
572 #      enabled by default, but due to privacy concerns 3.0.7 and
573 #      later are configured to only log fatal errors.
574 #
575 #      If you are used to the more verbose settings, simply enable
576 #      the debug lines below again.
577 #
578 #      If you want to use pure CLF (Common Log Format), you should
579 #      set "debug 512" ONLY and not enable anything else.
580 #
581 #      Privoxy has a hard-coded limit for the length of log messages.
582 #      If it's reached, messages are logged truncated and marked with
583 #      "... [too long, truncated]".
584 #
585 #      Please don't file any support requests without trying to
586 #      reproduce the problem with increased debug level first. Once
587 #      you read the log messages, you may even be able to solve the
588 #      problem on your own.
589 #
590 #debug     1 # Log the destination for each request Privoxy let through. See also debug 1024.
591 #debug  1024 # Actions that are applied to all sites and maybe overruled later on.
592 #debug  4096 # Startup banner and warnings
593 #debug  8192 # Non-fatal errors
594 #
595 #  3.2. single-threaded
596 #  =====================
597 #
598 #  Specifies:
599 #
600 #      Whether to run only one server thread.
601 #
602 #  Type of value:
603 #
604 #      None
605 #
606 #  Default value:
607 #
608 #      Unset
609 #
610 #  Effect if unset:
611 #
612 #      Multi-threaded (or, where unavailable: forked) operation, i.e.
613 #      the ability to serve multiple requests simultaneously.
614 #
615 #  Notes:
616 #
617 #      This option is only there for debugging purposes. It will
618 #      drastically reduce performance.
619 #
620 #single-threaded
621 #
622 #  3.3. hostname
623 #  ==============
624 #
625 #  Specifies:
626 #
627 #      The hostname shown on the CGI pages.
628 #
629 #  Type of value:
630 #
631 #      Text
632 #
633 #  Default value:
634 #
635 #      Unset
636 #
637 #  Effect if unset:
638 #
639 #      The hostname provided by the operating system is used.
640 #
641 #  Notes:
642 #
643 #      On some misconfigured systems resolving the hostname fails or
644 #      takes too much time and slows Privoxy down. Setting a fixed
645 #      hostname works around the problem.
646 #
647 #      In other circumstances it might be desirable to show a
648 #      hostname other than the one returned by the operating system.
649 #      For example if the system has several different hostnames and
650 #      you don't want to use the first one.
651 #
652 #      Note that Privoxy does not validate the specified hostname
653 #      value.
654 #
655 #hostname hostname.example.org
656 #
657 #  4. ACCESS CONTROL AND SECURITY
658 #  ===============================
659 #
660 #  This section of the config file controls the security-relevant
661 #  aspects of Privoxy's configuration.
662 #
663 #
664 #  4.1. listen-address
665 #  ====================
666 #
667 #  Specifies:
668 #
669 #      The address and TCP port on which Privoxy will listen for
670 #      client requests.
671 #
672 #  Type of value:
673 #
674 #      [IP-Address]:Port
675 #
676 #      [Hostname]:Port
677 #
678 #  Default value:
679 #
680 #      127.0.0.1:8118
681 #
682 #  Effect if unset:
683 #
684 #      Bind to 127.0.0.1 (IPv4 localhost), port 8118. This is
685 #      suitable and recommended for home users who run Privoxy on the
686 #      same machine as their browser.
687 #
688 #  Notes:
689 #
690 #      You will need to configure your browser(s) to this proxy
691 #      address and port.
692 #
693 #      If you already have another service running on port 8118, or
694 #      if you want to serve requests from other machines (e.g. on
695 #      your local network) as well, you will need to override the
696 #      default.
697 #
698 #      You can use this statement multiple times to make Privoxy
699 #      listen on more ports or more IP addresses. Suitable if your
700 #      operating system does not support sharing IPv6 and IPv4
701 #      protocols on the same socket.
702 #
703 #      If a hostname is used instead of an IP address, Privoxy will
704 #      try to resolve it to an IP address and if there are multiple,
705 #      use the first one returned.
706 #
707 #      If the address for the hostname isn't already known on the
708 #      system (for example because it's in /etc/hostname), this may
709 #      result in DNS traffic.
710 #
711 #      If the specified address isn't available on the system, or if
712 #      the hostname can't be resolved, Privoxy will fail to start.
713 #
714 #      IPv6 addresses containing colons have to be quoted by
715 #      brackets. They can only be used if Privoxy has been compiled
716 #      with IPv6 support. If you aren't sure if your version supports
717 #      it, have a look at http://config.privoxy.org/show-status.
718 #
719 #      Some operating systems will prefer IPv6 to IPv4 addresses even
720 #      if the system has no IPv6 connectivity which is usually not
721 #      expected by the user. Some even rely on DNS to resolve
722 #      localhost which mean the "localhost" address used may not
723 #      actually be local.
724 #
725 #      It is therefore recommended to explicitly configure the
726 #      intended IP address instead of relying on the operating
727 #      system, unless there's a strong reason not to.
728 #
729 #      If you leave out the address, Privoxy will bind to all IPv4
730 #      interfaces (addresses) on your machine and may become
731 #      reachable from the Internet and/or the local network. Be aware
732 #      that some GNU/Linux distributions modify that behaviour
733 #      without updating the documentation. Check for non-standard
734 #      patches if your Privoxy version behaves differently.
735 #
736 #      If you configure Privoxy to be reachable from the network,
737 #      consider using access control lists (ACL's, see below), and/or
738 #      a firewall.
739 #
740 #      If you open Privoxy to untrusted users, you will also want to
741 #      make sure that the following actions are disabled:
742 #      enable-edit-actions and enable-remote-toggle
743 #
744 #  Example:
745 #
746 #      Suppose you are running Privoxy on a machine which has the
747 #      address 192.168.0.1 on your local private network
748 #      (192.168.0.0) and has another outside connection with a
749 #      different address. You want it to serve requests from inside
750 #      only:
751 #
752 #        listen-address  192.168.0.1:8118
753 #
754 #      Suppose you are running Privoxy on an IPv6-capable machine and
755 #      you want it to listen on the IPv6 address of the loopback
756 #      device:
757 #
758 #        listen-address [::1]:8118
759 #
760 listen-address  127.0.0.1:8118
761 #
762 #  4.2. toggle
763 #  ============
764 #
765 #  Specifies:
766 #
767 #      Initial state of "toggle" status
768 #
769 #  Type of value:
770 #
771 #      1 or 0
772 #
773 #  Default value:
774 #
775 #      1
776 #
777 #  Effect if unset:
778 #
779 #      Act as if toggled on
780 #
781 #  Notes:
782 #
783 #      If set to 0, Privoxy will start in "toggled off" mode, i.e.
784 #      mostly behave like a normal, content-neutral proxy with both
785 #      ad blocking and content filtering disabled. See
786 #      enable-remote-toggle below.
787 #
788 toggle  1
789 #
790 #  4.3. enable-remote-toggle
791 #  ==========================
792 #
793 #  Specifies:
794 #
795 #      Whether or not the web-based toggle feature may be used
796 #
797 #  Type of value:
798 #
799 #      0 or 1
800 #
801 #  Default value:
802 #
803 #      0
804 #
805 #  Effect if unset:
806 #
807 #      The web-based toggle feature is disabled.
808 #
809 #  Notes:
810 #
811 #      When toggled off, Privoxy mostly acts like a normal,
812 #      content-neutral proxy, i.e. doesn't block ads or filter
813 #      content.
814 #
815 #      Access to the toggle feature can not be controlled separately
816 #      by "ACLs" or HTTP authentication, so that everybody who can
817 #      access Privoxy (see "ACLs" and listen-address above) can
818 #      toggle it for all users. So this option is not recommended for
819 #      multi-user environments with untrusted users.
820 #
821 #      Note that malicious client side code (e.g Java) is also
822 #      capable of using this option.
823 #
824 #      As a lot of Privoxy users don't read documentation, this
825 #      feature is disabled by default.
826 #
827 #      Note that you must have compiled Privoxy with support for this
828 #      feature, otherwise this option has no effect.
829 #
830 enable-remote-toggle  0
831 #
832 #  4.4. enable-remote-http-toggle
833 #  ===============================
834 #
835 #  Specifies:
836 #
837 #      Whether or not Privoxy recognizes special HTTP headers to
838 #      change its behaviour.
839 #
840 #  Type of value:
841 #
842 #      0 or 1
843 #
844 #  Default value:
845 #
846 #      0
847 #
848 #  Effect if unset:
849 #
850 #      Privoxy ignores special HTTP headers.
851 #
852 #  Notes:
853 #
854 #      When toggled on, the client can change Privoxy's behaviour by
855 #      setting special HTTP headers. Currently the only supported
856 #      special header is "X-Filter: No", to disable filtering for the
857 #      ongoing request, even if it is enabled in one of the action
858 #      files.
859 #
860 #      This feature is disabled by default. If you are using Privoxy
861 #      in a environment with trusted clients, you may enable this
862 #      feature at your discretion. Note that malicious client side
863 #      code (e.g Java) is also capable of using this feature.
864 #
865 #      This option will be removed in future releases as it has been
866 #      obsoleted by the more general header taggers.
867 #
868 enable-remote-http-toggle  0
869 #
870 #  4.5. enable-edit-actions
871 #  =========================
872 #
873 #  Specifies:
874 #
875 #      Whether or not the web-based actions file editor may be used
876 #
877 #  Type of value:
878 #
879 #      0 or 1
880 #
881 #  Default value:
882 #
883 #      0
884 #
885 #  Effect if unset:
886 #
887 #      The web-based actions file editor is disabled.
888 #
889 #  Notes:
890 #
891 #      Access to the editor can not be controlled separately by
892 #      "ACLs" or HTTP authentication, so that everybody who can
893 #      access Privoxy (see "ACLs" and listen-address above) can
894 #      modify its configuration for all users.
895 #
896 #      This option is not recommended for environments with untrusted
897 #      users and as a lot of Privoxy users don't read documentation,
898 #      this feature is disabled by default.
899 #
900 #      Note that malicious client side code (e.g Java) is also
901 #      capable of using the actions editor and you shouldn't enable
902 #      this options unless you understand the consequences and are
903 #      sure your browser is configured correctly.
904 #
905 #      Note that you must have compiled Privoxy with support for this
906 #      feature, otherwise this option has no effect.
907 #
908 enable-edit-actions 0
909 #
910 #  4.6. enforce-blocks
911 #  ====================
912 #
913 #  Specifies:
914 #
915 #      Whether the user is allowed to ignore blocks and can "go there
916 #      anyway".
917 #
918 #  Type of value:
919 #
920 #      0 or 1
921 #
922 #  Default value:
923 #
924 #      0
925 #
926 #  Effect if unset:
927 #
928 #      Blocks are not enforced.
929 #
930 #  Notes:
931 #
932 #      Privoxy is mainly used to block and filter requests as a
933 #      service to the user, for example to block ads and other junk
934 #      that clogs the pipes. Privoxy's configuration isn't perfect
935 #      and sometimes innocent pages are blocked. In this situation it
936 #      makes sense to allow the user to enforce the request and have
937 #      Privoxy ignore the block.
938 #
939 #      In the default configuration Privoxy's "Blocked" page contains
940 #      a "go there anyway" link to adds a special string (the force
941 #      prefix) to the request URL. If that link is used, Privoxy will
942 #      detect the force prefix, remove it again and let the request
943 #      pass.
944 #
945 #      Of course Privoxy can also be used to enforce a network
946 #      policy. In that case the user obviously should not be able to
947 #      bypass any blocks, and that's what the "enforce-blocks" option
948 #      is for. If it's enabled, Privoxy hides the "go there anyway"
949 #      link. If the user adds the force prefix by hand, it will not
950 #      be accepted and the circumvention attempt is logged.
951 #
952 #  Examples:
953 #
954 #      enforce-blocks 1
955 #
956 enforce-blocks 0
957 #
958 #  4.7. ACLs: permit-access and deny-access
959 #  =========================================
960 #
961 #  Specifies:
962 #
963 #      Who can access what.
964 #
965 #  Type of value:
966 #
967 #      src_addr[:port][/src_masklen] [dst_addr[:port][/dst_masklen]]
968 #
969 #      Where src_addr and dst_addr are IPv4 addresses in dotted
970 #      decimal notation or valid DNS names, port is a port number,
971 #      and src_masklen and dst_masklen are subnet masks in CIDR
972 #      notation, i.e. integer values from 2 to 30 representing the
973 #      length (in bits) of the network address. The masks and the
974 #      whole destination part are optional.
975 #
976 #      If your system implements RFC 3493, then src_addr and dst_addr
977 #      can be IPv6 addresses delimeted by brackets, port can be a
978 #      number or a service name, and src_masklen and dst_masklen can
979 #      be a number from 0 to 128.
980 #
981 #  Default value:
982 #
983 #      Unset
984 #
985 #      If no port is specified, any port will match. If no
986 #      src_masklen or src_masklen is given, the complete IP address
987 #      has to match (i.e. 32 bits for IPv4 and 128 bits for IPv6).
988 #
989 #  Effect if unset:
990 #
991 #      Don't restrict access further than implied by listen-address
992 #
993 #  Notes:
994 #
995 #      Access controls are included at the request of ISPs and
996 #      systems administrators, and are not usually needed by
997 #      individual users. For a typical home user, it will normally
998 #      suffice to ensure that Privoxy only listens on the localhost
999 #      (127.0.0.1) or internal (home) network address by means of the
1000 #      listen-address option.
1001 #
1002 #      Please see the warnings in the FAQ that Privoxy is not
1003 #      intended to be a substitute for a firewall or to encourage
1004 #      anyone to defer addressing basic security weaknesses.
1005 #
1006 #      Multiple ACL lines are OK. If any ACLs are specified, Privoxy
1007 #      only talks to IP addresses that match at least one
1008 #      permit-access line and don't match any subsequent deny-access
1009 #      line. In other words, the last match wins, with the default
1010 #      being deny-access.
1011 #
1012 #      If Privoxy is using a forwarder (see forward below) for a
1013 #      particular destination URL, the dst_addr that is examined is
1014 #      the address of the forwarder and NOT the address of the
1015 #      ultimate target. This is necessary because it may be
1016 #      impossible for the local Privoxy to determine the IP address
1017 #      of the ultimate target (that's often what gateways are used
1018 #      for).
1019 #
1020 #      You should prefer using IP addresses over DNS names, because
1021 #      the address lookups take time. All DNS names must resolve! You
1022 #      can not use domain patterns like "*.org" or partial domain
1023 #      names. If a DNS name resolves to multiple IP addresses, only
1024 #      the first one is used.
1025 #
1026 #      Some systems allow IPv4 clients to connect to IPv6 server
1027 #      sockets. Then the client's IPv4 address will be translated by
1028 #      the system into IPv6 address space with special prefix
1029 #      ::ffff:0:0/96 (so called IPv4 mapped IPv6 address). Privoxy
1030 #      can handle it and maps such ACL addresses automatically.
1031 #
1032 #      Denying access to particular sites by ACL may have undesired
1033 #      side effects if the site in question is hosted on a machine
1034 #      which also hosts other sites (most sites are).
1035 #
1036 #  Examples:
1037 #
1038 #      Explicitly define the default behavior if no ACL and
1039 #      listen-address are set: "localhost" is OK. The absence of a
1040 #      dst_addr implies that all destination addresses are OK:
1041 #
1042 #        permit-access  localhost
1043 #
1044 #      Allow any host on the same class C subnet as www.privoxy.org
1045 #      access to nothing but www.example.com (or other domains hosted
1046 #      on the same system):
1047 #
1048 #        permit-access  www.privoxy.org/24 www.example.com/32
1049 #
1050 #      Allow access from any host on the 26-bit subnet 192.168.45.64
1051 #      to anywhere, with the exception that 192.168.45.73 may not
1052 #      access the IP address behind www.dirty-stuff.example.com:
1053 #
1054 #        permit-access  192.168.45.64/26
1055 #        deny-access    192.168.45.73    www.dirty-stuff.example.com
1056 #
1057 #      Allow access from the IPv4 network 192.0.2.0/24 even if
1058 #      listening on an IPv6 wild card address (not supported on all
1059 #      platforms):
1060 #
1061 #        permit-access  192.0.2.0/24
1062 #
1063 #      This is equivalent to the following line even if listening on
1064 #      an IPv4 address (not supported on all platforms):
1065 #
1066 #        permit-access  [::ffff:192.0.2.0]/120
1067 #
1068 #
1069 #  4.8. buffer-limit
1070 #  ==================
1071 #
1072 #  Specifies:
1073 #
1074 #      Maximum size of the buffer for content filtering.
1075 #
1076 #  Type of value:
1077 #
1078 #      Size in Kbytes
1079 #
1080 #  Default value:
1081 #
1082 #      4096
1083 #
1084 #  Effect if unset:
1085 #
1086 #      Use a 4MB (4096 KB) limit.
1087 #
1088 #  Notes:
1089 #
1090 #      For content filtering, i.e. the +filter and +deanimate-gif
1091 #      actions, it is necessary that Privoxy buffers the entire
1092 #      document body. This can be potentially dangerous, since a
1093 #      server could just keep sending data indefinitely and wait for
1094 #      your RAM to exhaust -- with nasty consequences. Hence this
1095 #      option.
1096 #
1097 #      When a document buffer size reaches the buffer-limit, it is
1098 #      flushed to the client unfiltered and no further attempt to
1099 #      filter the rest of the document is made. Remember that there
1100 #      may be multiple threads running, which might require up to
1101 #      buffer-limit Kbytes each, unless you have enabled
1102 #      "single-threaded" above.
1103 #
1104 buffer-limit 4096
1105 #
1106 #  5. FORWARDING
1107 #  ==============
1108 #
1109 #  This feature allows routing of HTTP requests through a chain of
1110 #  multiple proxies.
1111 #
1112 #  Forwarding can be used to chain Privoxy with a caching proxy to
1113 #  speed up browsing. Using a parent proxy may also be necessary if
1114 #  the machine that Privoxy runs on has no direct Internet access.
1115 #
1116 #  Note that parent proxies can severely decrease your privacy level.
1117 #  For example a parent proxy could add your IP address to the
1118 #  request headers and if it's a caching proxy it may add the "Etag"
1119 #  header to revalidation requests again, even though you configured
1120 #  Privoxy to remove it. It may also ignore Privoxy's header time
1121 #  randomization and use the original values which could be used by
1122 #  the server as cookie replacement to track your steps between
1123 #  visits.
1124 #
1125 #  Also specified here are SOCKS proxies. Privoxy supports the SOCKS
1126 #  4 and SOCKS 4A protocols.
1127 #
1128 #
1129 #  5.1. forward
1130 #  =============
1131 #
1132 #  Specifies:
1133 #
1134 #      To which parent HTTP proxy specific requests should be routed.
1135 #
1136 #  Type of value:
1137 #
1138 #      target_pattern http_parent[:port]
1139 #
1140 #      where target_pattern is a URL pattern that specifies to which
1141 #      requests (i.e. URLs) this forward rule shall apply. Use / to
1142 #      denote "all URLs". http_parent[:port] is the DNS name or IP
1143 #      address of the parent HTTP proxy through which the requests
1144 #      should be forwarded, optionally followed by its listening port
1145 #      (default: 8000). Use a single dot (.) to denote "no
1146 #      forwarding".
1147 #
1148 #  Default value:
1149 #
1150 #      Unset
1151 #
1152 #  Effect if unset:
1153 #
1154 #      Don't use parent HTTP proxies.
1155 #
1156 #  Notes:
1157 #
1158 #      If http_parent is ".", then requests are not forwarded to
1159 #      another HTTP proxy but are made directly to the web servers.
1160 #
1161 #      http_parent can be a numerical IPv6 address (if RFC 3493 is
1162 #      implemented). To prevent clashes with the port delimiter, the
1163 #      whole IP address has to be put into brackets. On the other
1164 #      hand a target_pattern containing an IPv6 address has to be put
1165 #      into angle brackets (normal brackets are reserved for regular
1166 #      expressions already).
1167 #
1168 #      Multiple lines are OK, they are checked in sequence, and the
1169 #      last match wins.
1170 #
1171 #  Examples:
1172 #
1173 #      Everything goes to an example parent proxy, except SSL on port
1174 #      443 (which it doesn't handle):
1175 #
1176 #        forward   /      parent-proxy.example.org:8080
1177 #        forward   :443   .
1178 #
1179 #      Everything goes to our example ISP's caching proxy, except for
1180 #      requests to that ISP's sites:
1181 #
1182 #        forward   /                  caching-proxy.isp.example.net:8000
1183 #        forward   .isp.example.net   .
1184 #
1185 #      Parent proxy specified by an IPv6 address:
1186 #
1187 #        forward   /                   [2001:DB8::1]:8000
1188 #
1189 #      Suppose your parent proxy doesn't support IPv6:
1190 #
1191 #        forward  /                        parent-proxy.example.org:8000
1192 #        forward  ipv6-server.example.org  .
1193 #        forward  <[2-3][0-9a-f][0-9a-f][0-9a-f]:*>   .
1194 #
1195 #
1196 #  5.2. forward-socks4, forward-socks4a, forward-socks5 and forward-socks5t
1197 #  =========================================================================
1198 #
1199 #  Specifies:
1200 #
1201 #      Through which SOCKS proxy (and optionally to which parent HTTP
1202 #      proxy) specific requests should be routed.
1203 #
1204 #  Type of value:
1205 #
1206 #      target_pattern socks_proxy[:port] http_parent[:port]
1207 #
1208 #      where target_pattern is a URL pattern that specifies to which
1209 #      requests (i.e. URLs) this forward rule shall apply. Use / to
1210 #      denote "all URLs". http_parent and socks_proxy are IP
1211 #      addresses in dotted decimal notation or valid DNS names (
1212 #      http_parent may be "." to denote "no HTTP forwarding"), and
1213 #      the optional port parameters are TCP ports, i.e. integer
1214 #      values from 1 to 65535
1215 #
1216 #  Default value:
1217 #
1218 #      Unset
1219 #
1220 #  Effect if unset:
1221 #
1222 #      Don't use SOCKS proxies.
1223 #
1224 #  Notes:
1225 #
1226 #      Multiple lines are OK, they are checked in sequence, and the
1227 #      last match wins.
1228 #
1229 #      The difference between forward-socks4 and forward-socks4a is
1230 #      that in the SOCKS 4A protocol, the DNS resolution of the
1231 #      target hostname happens on the SOCKS server, while in SOCKS 4
1232 #      it happens locally.
1233 #
1234 #      With forward-socks5 the DNS resolution will happen on the
1235 #      remote server as well.
1236 #
1237 #      forward-socks5t works like vanilla forward-socks5 but lets
1238 #      Privoxy additionally use Tor-specific SOCKS extensions.
1239 #      Currently the only supported SOCKS extension is optimistic
1240 #      data which can reduce the latency for the first request made
1241 #      on a newly created connection.
1242 #
1243 #      socks_proxy and http_parent can be a numerical IPv6 address
1244 #      (if RFC 3493 is implemented). To prevent clashes with the port
1245 #      delimiter, the whole IP address has to be put into brackets.
1246 #      On the other hand a target_pattern containing an IPv6 address
1247 #      has to be put into angle brackets (normal brackets are
1248 #      reserved for regular expressions already).
1249 #
1250 #      If http_parent is ".", then requests are not forwarded to
1251 #      another HTTP proxy but are made (HTTP-wise) directly to the
1252 #      web servers, albeit through a SOCKS proxy.
1253 #
1254 #  Examples:
1255 #
1256 #      From the company example.com, direct connections are made to
1257 #      all "internal" domains, but everything outbound goes through
1258 #      their ISP's proxy by way of example.com's corporate SOCKS 4A
1259 #      gateway to the Internet.
1260 #
1261 #        forward-socks4a   /              socks-gw.example.com:1080  www-cache.isp.example.net:8080
1262 #        forward           .example.com   .
1263 #
1264 #      A rule that uses a SOCKS 4 gateway for all destinations but no
1265 #      HTTP parent looks like this:
1266 #
1267 #        forward-socks4   /               socks-gw.example.com:1080  .
1268 #
1269 #      To chain Privoxy and Tor, both running on the same system, you
1270 #      would use something like:
1271 #
1272 #        forward-socks5   /               127.0.0.1:9050 .
1273 #
1274 #      The public Tor network can't be used to reach your local
1275 #      network, if you need to access local servers you therefore
1276 #      might want to make some exceptions:
1277 #
1278 #        forward         192.168.*.*/     .
1279 #        forward            10.*.*.*/     .
1280 #        forward           127.*.*.*/     .
1281 #
1282 #      Unencrypted connections to systems in these address ranges
1283 #      will be as (un)secure as the local network is, but the
1284 #      alternative is that you can't reach the local network through
1285 #      Privoxy at all. Of course this may actually be desired and
1286 #      there is no reason to make these exceptions if you aren't sure
1287 #      you need them.
1288 #
1289 #      If you also want to be able to reach servers in your local
1290 #      network by using their names, you will need additional
1291 #      exceptions that look like this:
1292 #
1293 #       forward           localhost/     .
1294 #
1295 #
1296 #  5.3. forwarded-connect-retries
1297 #  ===============================
1298 #
1299 #  Specifies:
1300 #
1301 #      How often Privoxy retries if a forwarded connection request
1302 #      fails.
1303 #
1304 #  Type of value:
1305 #
1306 #      Number of retries.
1307 #
1308 #  Default value:
1309 #
1310 #      0
1311 #
1312 #  Effect if unset:
1313 #
1314 #      Connections forwarded through other proxies are treated like
1315 #      direct connections and no retry attempts are made.
1316 #
1317 #  Notes:
1318 #
1319 #      forwarded-connect-retries is mainly interesting for socks4a
1320 #      connections, where Privoxy can't detect why the connections
1321 #      failed. The connection might have failed because of a DNS
1322 #      timeout in which case a retry makes sense, but it might also
1323 #      have failed because the server doesn't exist or isn't
1324 #      reachable. In this case the retry will just delay the
1325 #      appearance of Privoxy's error message.
1326 #
1327 #      Note that in the context of this option, "forwarded
1328 #      connections" includes all connections that Privoxy forwards
1329 #      through other proxies. This option is not limited to the HTTP
1330 #      CONNECT method.
1331 #
1332 #      Only use this option, if you are getting lots of
1333 #      forwarding-related error messages that go away when you try
1334 #      again manually. Start with a small value and check Privoxy's
1335 #      logfile from time to time, to see how many retries are usually
1336 #      needed.
1337 #
1338 #  Examples:
1339 #
1340 #      forwarded-connect-retries 1
1341 #
1342 forwarded-connect-retries  0
1343 #
1344 #  6. MISCELLANEOUS
1345 #  =================
1346 #
1347 #  6.1. accept-intercepted-requests
1348 #  =================================
1349 #
1350 #  Specifies:
1351 #
1352 #      Whether intercepted requests should be treated as valid.
1353 #
1354 #  Type of value:
1355 #
1356 #      0 or 1
1357 #
1358 #  Default value:
1359 #
1360 #      0
1361 #
1362 #  Effect if unset:
1363 #
1364 #      Only proxy requests are accepted, intercepted requests are
1365 #      treated as invalid.
1366 #
1367 #  Notes:
1368 #
1369 #      If you don't trust your clients and want to force them to use
1370 #      Privoxy, enable this option and configure your packet filter
1371 #      to redirect outgoing HTTP connections into Privoxy.
1372 #
1373 #      Make sure that Privoxy's own requests aren't redirected as
1374 #      well. Additionally take care that Privoxy can't intentionally
1375 #      connect to itself, otherwise you could run into redirection
1376 #      loops if Privoxy's listening port is reachable by the outside
1377 #      or an attacker has access to the pages you visit.
1378 #
1379 #  Examples:
1380 #
1381 #      accept-intercepted-requests 1
1382 #
1383 accept-intercepted-requests 0
1384 #
1385 #  6.2. allow-cgi-request-crunching
1386 #  =================================
1387 #
1388 #  Specifies:
1389 #
1390 #      Whether requests to Privoxy's CGI pages can be blocked or
1391 #      redirected.
1392 #
1393 #  Type of value:
1394 #
1395 #      0 or 1
1396 #
1397 #  Default value:
1398 #
1399 #      0
1400 #
1401 #  Effect if unset:
1402 #
1403 #      Privoxy ignores block and redirect actions for its CGI pages.
1404 #
1405 #  Notes:
1406 #
1407 #      By default Privoxy ignores block or redirect actions for its
1408 #      CGI pages. Intercepting these requests can be useful in
1409 #      multi-user setups to implement fine-grained access control,
1410 #      but it can also render the complete web interface useless and
1411 #      make debugging problems painful if done without care.
1412 #
1413 #      Don't enable this option unless you're sure that you really
1414 #      need it.
1415 #
1416 #  Examples:
1417 #
1418 #      allow-cgi-request-crunching 1
1419 #
1420 allow-cgi-request-crunching 0
1421 #
1422 #  6.3. split-large-forms
1423 #  =======================
1424 #
1425 #  Specifies:
1426 #
1427 #      Whether the CGI interface should stay compatible with broken
1428 #      HTTP clients.
1429 #
1430 #  Type of value:
1431 #
1432 #      0 or 1
1433 #
1434 #  Default value:
1435 #
1436 #      0
1437 #
1438 #  Effect if unset:
1439 #
1440 #      The CGI form generate long GET URLs.
1441 #
1442 #  Notes:
1443 #
1444 #      Privoxy's CGI forms can lead to rather long URLs. This isn't a
1445 #      problem as far as the HTTP standard is concerned, but it can
1446 #      confuse clients with arbitrary URL length limitations.
1447 #
1448 #      Enabling split-large-forms causes Privoxy to divide big forms
1449 #      into smaller ones to keep the URL length down. It makes
1450 #      editing a lot less convenient and you can no longer submit all
1451 #      changes at once, but at least it works around this browser
1452 #      bug.
1453 #
1454 #      If you don't notice any editing problems, there is no reason
1455 #      to enable this option, but if one of the submit buttons
1456 #      appears to be broken, you should give it a try.
1457 #
1458 #  Examples:
1459 #
1460 #      split-large-forms 1
1461 #
1462 split-large-forms 0
1463 #
1464 #  6.4. keep-alive-timeout
1465 #  ========================
1466 #
1467 #  Specifies:
1468 #
1469 #      Number of seconds after which an open connection will no
1470 #      longer be reused.
1471 #
1472 #  Type of value:
1473 #
1474 #      Time in seconds.
1475 #
1476 #  Default value:
1477 #
1478 #      None
1479 #
1480 #  Effect if unset:
1481 #
1482 #      Connections are not kept alive.
1483 #
1484 #  Notes:
1485 #
1486 #      This option allows clients to keep the connection to Privoxy
1487 #      alive. If the server supports it, Privoxy will keep the
1488 #      connection to the server alive as well. Under certain
1489 #      circumstances this may result in speed-ups.
1490 #
1491 #      By default, Privoxy will close the connection to the server if
1492 #      the client connection gets closed, or if the specified timeout
1493 #      has been reached without a new request coming in. This
1494 #      behaviour can be changed with the connection-sharing option.
1495 #
1496 #      This option has no effect if Privoxy has been compiled without
1497 #      keep-alive support.
1498 #
1499 #      Note that a timeout of five seconds as used in the default
1500 #      configuration file significantly decreases the number of
1501 #      connections that will be reused. The value is used because
1502 #      some browsers limit the number of connections they open to a
1503 #      single host and apply the same limit to proxies. This can
1504 #      result in a single website "grabbing" all the connections the
1505 #      browser allows, which means connections to other websites
1506 #      can't be opened until the connections currently in use time
1507 #      out.
1508 #
1509 #      Several users have reported this as a Privoxy bug, so the
1510 #      default value has been reduced. Consider increasing it to 300
1511 #      seconds or even more if you think your browser can handle it.
1512 #      If your browser appears to be hanging, it probably can't.
1513 #
1514 #  Examples:
1515 #
1516 #      keep-alive-timeout 300
1517 #
1518 keep-alive-timeout 5
1519 #
1520 #  6.5. tolerate-pipelining
1521 #  =========================
1522 #
1523 #  Specifies:
1524 #
1525 #      Whether or not pipelined requests should be served.
1526 #
1527 #  Type of value:
1528 #
1529 #      0 or 1.
1530 #
1531 #  Default value:
1532 #
1533 #      None
1534 #
1535 #  Effect if unset:
1536 #
1537 #      If Privoxy receives more than one request at once, it
1538 #      terminates the client connection after serving the first one.
1539 #
1540 #  Notes:
1541 #
1542 #      Privoxy currently doesn't pipeline outgoing requests, thus
1543 #      allowing pipelining on the client connection is not guaranteed
1544 #      to improve the performance.
1545 #
1546 #      By default Privoxy tries to discourage clients from pipelining
1547 #      by discarding aggressively pipelined requests, which forces
1548 #      the client to resend them through a new connection.
1549 #
1550 #      This option lets Privoxy tolerate pipelining. Whether or not
1551 #      that improves performance mainly depends on the client
1552 #      configuration.
1553 #
1554 #      If you are seeing problems with pages not properly loading,
1555 #      disabling this option could work around the problem.
1556 #
1557 #  Examples:
1558 #
1559 #      tolerate-pipelining 1
1560 #
1561 tolerate-pipelining 1
1562 #
1563 #  6.6. default-server-timeout
1564 #  ============================
1565 #
1566 #  Specifies:
1567 #
1568 #      Assumed server-side keep-alive timeout if not specified by the
1569 #      server.
1570 #
1571 #  Type of value:
1572 #
1573 #      Time in seconds.
1574 #
1575 #  Default value:
1576 #
1577 #      None
1578 #
1579 #  Effect if unset:
1580 #
1581 #      Connections for which the server didn't specify the keep-alive
1582 #      timeout are not reused.
1583 #
1584 #  Notes:
1585 #
1586 #      Enabling this option significantly increases the number of
1587 #      connections that are reused, provided the keep-alive-timeout
1588 #      option is also enabled.
1589 #
1590 #      While it also increases the number of connections problems
1591 #      when Privoxy tries to reuse a connection that already has been
1592 #      closed on the server side, or is closed while Privoxy is
1593 #      trying to reuse it, this should only be a problem if it
1594 #      happens for the first request sent by the client. If it
1595 #      happens for requests on reused client connections, Privoxy
1596 #      will simply close the connection and the client is supposed to
1597 #      retry the request without bothering the user.
1598 #
1599 #      Enabling this option is therefore only recommended if the
1600 #      connection-sharing option is disabled.
1601 #
1602 #      It is an error to specify a value larger than the
1603 #      keep-alive-timeout value.
1604 #
1605 #      This option has no effect if Privoxy has been compiled without
1606 #      keep-alive support.
1607 #
1608 #  Examples:
1609 #
1610 #      default-server-timeout 60
1611 #
1612 #default-server-timeout 60
1613 #
1614 #  6.7. connection-sharing
1615 #  ========================
1616 #
1617 #  Specifies:
1618 #
1619 #      Whether or not outgoing connections that have been kept alive
1620 #      should be shared between different incoming connections.
1621 #
1622 #  Type of value:
1623 #
1624 #      0 or 1
1625 #
1626 #  Default value:
1627 #
1628 #      None
1629 #
1630 #  Effect if unset:
1631 #
1632 #      Connections are not shared.
1633 #
1634 #  Notes:
1635 #
1636 #      This option has no effect if Privoxy has been compiled without
1637 #      keep-alive support, or if it's disabled.
1638 #
1639 #  Notes:
1640 #
1641 #      Note that reusing connections doesn't necessary cause
1642 #      speedups. There are also a few privacy implications you should
1643 #      be aware of.
1644 #
1645 #      If this option is effective, outgoing connections are shared
1646 #      between clients (if there are more than one) and closing the
1647 #      browser that initiated the outgoing connection does no longer
1648 #      affect the connection between Privoxy and the server unless
1649 #      the client's request hasn't been completed yet.
1650 #
1651 #      If the outgoing connection is idle, it will not be closed
1652 #      until either Privoxy's or the server's timeout is reached.
1653 #      While it's open, the server knows that the system running
1654 #      Privoxy is still there.
1655 #
1656 #      If there are more than one client (maybe even belonging to
1657 #      multiple users), they will be able to reuse each others
1658 #      connections. This is potentially dangerous in case of
1659 #      authentication schemes like NTLM where only the connection is
1660 #      authenticated, instead of requiring authentication for each
1661 #      request.
1662 #
1663 #      If there is only a single client, and if said client can keep
1664 #      connections alive on its own, enabling this option has next to
1665 #      no effect. If the client doesn't support connection
1666 #      keep-alive, enabling this option may make sense as it allows
1667 #      Privoxy to keep outgoing connections alive even if the client
1668 #      itself doesn't support it.
1669 #
1670 #      You should also be aware that enabling this option increases
1671 #      the likelihood of getting the "No server or forwarder data"
1672 #      error message, especially if you are using a slow connection
1673 #      to the Internet.
1674 #
1675 #      This option should only be used by experienced users who
1676 #      understand the risks and can weight them against the benefits.
1677 #
1678 #  Examples:
1679 #
1680 #      connection-sharing 1
1681 #
1682 #connection-sharing 1
1683 #
1684 #  6.8. socket-timeout
1685 #  ====================
1686 #
1687 #  Specifies:
1688 #
1689 #      Number of seconds after which a socket times out if no data is
1690 #      received.
1691 #
1692 #  Type of value:
1693 #
1694 #      Time in seconds.
1695 #
1696 #  Default value:
1697 #
1698 #      None
1699 #
1700 #  Effect if unset:
1701 #
1702 #      A default value of 300 seconds is used.
1703 #
1704 #  Notes:
1705 #
1706 #      The default is quite high and you probably want to reduce it.
1707 #      If you aren't using an occasionally slow proxy like Tor,
1708 #      reducing it to a few seconds should be fine.
1709 #
1710 #  Examples:
1711 #
1712 #      socket-timeout 300
1713 #
1714 socket-timeout 300
1715 #
1716 #  6.9. max-client-connections
1717 #  ============================
1718 #
1719 #  Specifies:
1720 #
1721 #      Maximum number of client connections that will be served.
1722 #
1723 #  Type of value:
1724 #
1725 #      Positive number.
1726 #
1727 #  Default value:
1728 #
1729 #      128
1730 #
1731 #  Effect if unset:
1732 #
1733 #      Connections are served until a resource limit is reached.
1734 #
1735 #  Notes:
1736 #
1737 #      Privoxy creates one thread (or process) for every incoming
1738 #      client connection that isn't rejected based on the access
1739 #      control settings.
1740 #
1741 #      If the system is powerful enough, Privoxy can theoretically
1742 #      deal with several hundred (or thousand) connections at the
1743 #      same time, but some operating systems enforce resource limits
1744 #      by shutting down offending processes and their default limits
1745 #      may be below the ones Privoxy would require under heavy load.
1746 #
1747 #      Configuring Privoxy to enforce a connection limit below the
1748 #      thread or process limit used by the operating system makes
1749 #      sure this doesn't happen. Simply increasing the operating
1750 #      system's limit would work too, but if Privoxy isn't the only
1751 #      application running on the system, you may actually want to
1752 #      limit the resources used by Privoxy.
1753 #
1754 #      If Privoxy is only used by a single trusted user, limiting the
1755 #      number of client connections is probably unnecessary. If there
1756 #      are multiple possibly untrusted users you probably still want
1757 #      to additionally use a packet filter to limit the maximal
1758 #      number of incoming connections per client. Otherwise a
1759 #      malicious user could intentionally create a high number of
1760 #      connections to prevent other users from using Privoxy.
1761 #
1762 #      Obviously using this option only makes sense if you choose a
1763 #      limit below the one enforced by the operating system.
1764 #
1765 #      One most POSIX-compliant systems Privoxy can't properly deal
1766 #      with more than FD_SETSIZE file descriptors at the same time
1767 #      and has to reject connections if the limit is reached. This
1768 #      will likely change in a future version, but currently this
1769 #      limit can't be increased without recompiling Privoxy with a
1770 #      different FD_SETSIZE limit.
1771 #
1772 #  Examples:
1773 #
1774 #      max-client-connections 256
1775 #
1776 #max-client-connections 256
1777 #
1778 #  6.10. handle-as-empty-doc-returns-ok
1779 #  =====================================
1780 #
1781 #  Specifies:
1782 #
1783 #      The status code Privoxy returns for pages blocked with
1784 #      +handle-as-empty-document.
1785 #
1786 #  Type of value:
1787 #
1788 #      0 or 1
1789 #
1790 #  Default value:
1791 #
1792 #      0
1793 #
1794 #  Effect if unset:
1795 #
1796 #      Privoxy returns a status 403(forbidden) for all blocked pages.
1797 #
1798 #  Effect if set:
1799 #
1800 #      Privoxy returns a status 200(OK) for pages blocked with
1801 #      +handle-as-empty-document and a status 403(Forbidden) for all
1802 #      other blocked pages.
1803 #
1804 #  Notes:
1805 #
1806 #      This is a work-around for Firefox bug 492459: " Websites are
1807 #      no longer rendered if SSL requests for JavaScripts are blocked
1808 #      by a proxy. " (https://bugzilla.mozilla.org/show_bug.cgi?id=
1809 #      492459) As the bug has been fixed for quite some time this
1810 #      option should no longer be needed and will be removed in a
1811 #      future release. Please speak up if you have a reason why the
1812 #      option should be kept around.
1813 #
1814 #handle-as-empty-doc-returns-ok 1
1815 #
1816 #  6.11. enable-compression
1817 #  =========================
1818 #
1819 #  Specifies:
1820 #
1821 #      Whether or not buffered content is compressed before delivery.
1822 #
1823 #  Type of value:
1824 #
1825 #      0 or 1
1826 #
1827 #  Default value:
1828 #
1829 #      0
1830 #
1831 #  Effect if unset:
1832 #
1833 #      Privoxy does not compress buffered content.
1834 #
1835 #  Effect if set:
1836 #
1837 #      Privoxy compresses buffered content before delivering it to
1838 #      the client, provided the client supports it.
1839 #
1840 #  Notes:
1841 #
1842 #      This directive is only supported if Privoxy has been compiled
1843 #      with FEATURE_COMPRESSION, which should not to be confused with
1844 #      FEATURE_ZLIB.
1845 #
1846 #      Compressing buffered content is mainly useful if Privoxy and
1847 #      the client are running on different systems. If they are
1848 #      running on the same system, enabling compression is likely to
1849 #      slow things down. If you didn't measure otherwise, you should
1850 #      assume that it does and keep this option disabled.
1851 #
1852 #      Privoxy will not compress buffered content below a certain
1853 #      length.
1854 #
1855 #enable-compression 1
1856 #
1857 #  6.12. compression-level
1858 #  ========================
1859 #
1860 #  Specifies:
1861 #
1862 #      The compression level that is passed to the zlib library when
1863 #      compressing buffered content.
1864 #
1865 #  Type of value:
1866 #
1867 #      Positive number ranging from 0 to 9.
1868 #
1869 #  Default value:
1870 #
1871 #      1
1872 #
1873 #  Notes:
1874 #
1875 #      Compressing the data more takes usually longer than
1876 #      compressing it less or not compressing it at all. Which level
1877 #      is best depends on the connection between Privoxy and the
1878 #      client. If you can't be bothered to benchmark it for yourself,
1879 #      you should stick with the default and keep compression
1880 #      disabled.
1881 #
1882 #      If compression is disabled, the compression level is
1883 #      irrelevant.
1884 #
1885 #  Examples:
1886 #
1887 #          # Best speed (compared to the other levels)
1888 #          compression-level 1
1889 #
1890 #          # Best compression
1891 #          compression-level 9
1892 #
1893 #          # No compression. Only useful for testing as the added header
1894 #          # slightly increases the amount of data that has to be sent.
1895 #          # If your benchmark shows that using this compression level
1896 #          # is superior to using no compression at all, the benchmark
1897 #          # is likely to be flawed.
1898 #          compression-level 0
1899 #
1900 #
1901 #compression-level 1
1902 #
1903 #  6.13. client-header-order
1904 #  ==========================
1905 #
1906 #  Specifies:
1907 #
1908 #      The order in which client headers are sorted before forwarding
1909 #      them.
1910 #
1911 #  Type of value:
1912 #
1913 #      Client header names delimited by spaces or tabs
1914 #
1915 #  Default value:
1916 #
1917 #      None
1918 #
1919 #  Notes:
1920 #
1921 #      By default Privoxy leaves the client headers in the order they
1922 #      were sent by the client. Headers are modified in-place, new
1923 #      headers are added at the end of the already existing headers.
1924 #
1925 #      The header order can be used to fingerprint client requests
1926 #      independently of other headers like the User-Agent.
1927 #
1928 #      This directive allows to sort the headers differently to
1929 #      better mimic a different User-Agent. Client headers will be
1930 #      emitted in the order given, headers whose name isn't
1931 #      explicitly specified are added at the end.
1932 #
1933 #      Note that sorting headers in an uncommon way will make
1934 #      fingerprinting actually easier. Encrypted headers are not
1935 #      affected by this directive.
1936 #
1937 #client-header-order Host \
1938 #   Accept \
1939 #   Accept-Language \
1940 #   Accept-Encoding \
1941 #   Proxy-Connection \
1942 #   Referer \
1943 #   Cookie \
1944 #   DNT \
1945 #   If-Modified-Since \
1946 #   Cache-Control \
1947 #   Content-Length \
1948 #   Content-Type
1949 #
1950 #
1951 #  7. WINDOWS GUI OPTIONS
1952 #  =======================
1953 #
1954 #  Privoxy has a number of options specific to the Windows GUI
1955 #  interface:
1956 #
1957 #
1958 #
1959 #  If "activity-animation" is set to 1, the Privoxy icon will animate
1960 #  when "Privoxy" is active. To turn off, set to 0.
1961 #
1962 #activity-animation   1
1963 #
1964 #
1965 #
1966 #  If "log-messages" is set to 1, Privoxy copies log messages to the
1967 #  console window. The log detail depends on the debug directive.
1968 #
1969 #log-messages   1
1970 #
1971 #
1972 #
1973 #  If "log-buffer-size" is set to 1, the size of the log buffer, i.e.
1974 #  the amount of memory used for the log messages displayed in the
1975 #  console window, will be limited to "log-max-lines" (see below).
1976 #
1977 #  Warning: Setting this to 0 will result in the buffer to grow
1978 #  infinitely and eat up all your memory!
1979 #
1980 #log-buffer-size 1
1981 #
1982 #
1983 #
1984 #  log-max-lines is the maximum number of lines held in the log
1985 #  buffer. See above.
1986 #
1987 #log-max-lines 200
1988 #
1989 #
1990 #
1991 #  If "log-highlight-messages" is set to 1, Privoxy will highlight
1992 #  portions of the log messages with a bold-faced font:
1993 #
1994 #log-highlight-messages 1
1995 #
1996 #
1997 #
1998 #  The font used in the console window:
1999 #
2000 #log-font-name Comic Sans MS
2001 #
2002 #
2003 #
2004 #  Font size used in the console window:
2005 #
2006 #log-font-size 8
2007 #
2008 #
2009 #
2010 #  "show-on-task-bar" controls whether or not Privoxy will appear as
2011 #  a button on the Task bar when minimized:
2012 #
2013 #show-on-task-bar 0
2014 #
2015 #
2016 #
2017 #  If "close-button-minimizes" is set to 1, the Windows close button
2018 #  will minimize Privoxy instead of closing the program (close with
2019 #  the exit option on the File menu).
2020 #
2021 #close-button-minimizes 1
2022 #
2023 #
2024 #
2025 #  The "hide-console" option is specific to the MS-Win console
2026 #  version of Privoxy. If this option is used, Privoxy will
2027 #  disconnect from and hide the command console.
2028 #
2029 #hide-console
2030 #
2031 #
2032 #