+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>GroupName</key>
- <string>wheel</string>
- <key>Label</key>
- <string>org.ijbswa.privoxy</string>
- <key>ProgramArguments</key>
- <array>
- <string>/usr/local/sbin/privoxy</string>
- <string>--no-daemon</string>
- <string>/usr/local/etc/privoxy/config</string>
- </array>
- <key>RunAtLoad</key>
- <true/>
- <key>StandardErrorPath</key>
- <string>/var/log/privoxy/logfile.log</string>
- <key>StandardOutPath</key>
- <string>/var/log/privoxy/logfile.log</string>
- <key>UserName</key>
- <string>root</string>
-</dict>
-</plist>
+++ /dev/null
-# Sample Configuration File for Privoxy 3.0.21
-#
-# $Id: config,v 1.104 2013/03/07 14:11:51 fabiankeil Exp $
-#
-# Copyright (C) 2001-2013 Privoxy Developers http://www.privoxy.org/
-#
-####################################################################
-# #
-# Table of Contents #
-# #
-# I. INTRODUCTION #
-# II. FORMAT OF THE CONFIGURATION FILE #
-# #
-# 1. LOCAL SET-UP DOCUMENTATION #
-# 2. CONFIGURATION AND LOG FILE LOCATIONS #
-# 3. DEBUGGING #
-# 4. ACCESS CONTROL AND SECURITY #
-# 5. FORWARDING #
-# 6. MISCELLANEOUS #
-# 7. WINDOWS GUI OPTIONS #
-# #
-####################################################################
-#
-#
-# I. INTRODUCTION
-# ===============
-#
-# This file holds Privoxy's main configuration. Privoxy detects
-# configuration changes automatically, so you don't have to restart
-# it unless you want to load a different configuration file.
-#
-# The configuration will be reloaded with the first request after
-# the change was done, this request itself will still use the old
-# configuration, though. In other words: it takes two requests
-# before you see the result of your changes. Requests that are
-# dropped due to ACL don't trigger reloads.
-#
-# When starting Privoxy on Unix systems, give the location of this
-# file as last argument. On Windows systems, Privoxy will look for
-# this file with the name 'config.txt' in the current working
-# directory of the Privoxy process.
-#
-#
-# II. FORMAT OF THE CONFIGURATION FILE
-# ====================================
-#
-# Configuration lines consist of an initial keyword followed by a
-# list of values, all separated by whitespace (any number of spaces
-# or tabs). For example,
-#
-# actionsfile default.action
-#
-# Indicates that the actionsfile is named 'default.action'.
-#
-# The '#' indicates a comment. Any part of a line following a '#' is
-# ignored, except if the '#' is preceded by a '\'.
-#
-# Thus, by placing a # at the start of an existing configuration
-# line, you can make it a comment and it will be treated as if it
-# weren't there. This is called "commenting out" an option and can
-# be useful. Removing the # again is called "uncommenting".
-#
-# Note that commenting out an option and leaving it at its default
-# are two completely different things! Most options behave very
-# differently when unset. See the "Effect if unset" explanation in
-# each option's description for details.
-#
-# Long lines can be continued on the next line by using a `\' as the
-# last character.
-#
-#
-# 1. LOCAL SET-UP DOCUMENTATION
-# ==============================
-#
-# If you intend to operate Privoxy for more users than just
-# yourself, it might be a good idea to let them know how to reach
-# you, what you block and why you do that, your policies, etc.
-#
-#
-# 1.1. user-manual
-# =================
-#
-# Specifies:
-#
-# Location of the Privoxy User Manual.
-#
-# Type of value:
-#
-# A fully qualified URI
-#
-# Default value:
-#
-# Unset
-#
-# Effect if unset:
-#
-# http://www.privoxy.org/version/user-manual/ will be used,
-# where version is the Privoxy version.
-#
-# Notes:
-#
-# The User Manual URI is the single best source of information
-# on Privoxy, and is used for help links from some of the
-# internal CGI pages. The manual itself is normally packaged
-# with the binary distributions, so you probably want to set
-# this to a locally installed copy.
-#
-# Examples:
-#
-# The best all purpose solution is simply to put the full local
-# PATH to where the User Manual is located:
-#
-# user-manual /usr/share/doc/privoxy/user-manual
-#
-# The User Manual is then available to anyone with access to
-# Privoxy, by following the built-in URL: http://
-# config.privoxy.org/user-manual/ (or the shortcut: http://p.p/
-# user-manual/).
-#
-# If the documentation is not on the local system, it can be
-# accessed from a remote server, as:
-#
-# user-manual http://example.com/privoxy/user-manual/
-#
-# WARNING!!!
-#
-# If set, this option should be the first option in the
-# config file, because it is used while the config file is
-# being read.
-#
-#user-manual http://www.privoxy.org/user-manual/
-#
-# 1.2. trust-info-url
-# ====================
-#
-# Specifies:
-#
-# A URL to be displayed in the error page that users will see if
-# access to an untrusted page is denied.
-#
-# Type of value:
-#
-# URL
-#
-# Default value:
-#
-# Unset
-#
-# Effect if unset:
-#
-# No links are displayed on the "untrusted" error page.
-#
-# Notes:
-#
-# The value of this option only matters if the experimental
-# trust mechanism has been activated. (See trustfile below.)
-#
-# If you use the trust mechanism, it is a good idea to write up
-# some on-line documentation about your trust policy and to
-# specify the URL(s) here. Use multiple times for multiple URLs.
-#
-# The URL(s) should be added to the trustfile as well, so users
-# don't end up locked out from the information on why they were
-# locked out in the first place!
-#
-#trust-info-url http://www.example.com/why_we_block.html
-#trust-info-url http://www.example.com/what_we_allow.html
-#
-# 1.3. admin-address
-# ===================
-#
-# Specifies:
-#
-# An email address to reach the Privoxy administrator.
-#
-# Type of value:
-#
-# Email address
-#
-# Default value:
-#
-# Unset
-#
-# Effect if unset:
-#
-# No email address is displayed on error pages and the CGI user
-# interface.
-#
-# Notes:
-#
-# If both admin-address and proxy-info-url are unset, the whole
-# "Local Privoxy Support" box on all generated pages will not be
-# shown.
-#
-#admin-address privoxy-admin@example.com
-#
-# 1.4. proxy-info-url
-# ====================
-#
-# Specifies:
-#
-# A URL to documentation about the local Privoxy setup,
-# configuration or policies.
-#
-# Type of value:
-#
-# URL
-#
-# Default value:
-#
-# Unset
-#
-# Effect if unset:
-#
-# No link to local documentation is displayed on error pages and
-# the CGI user interface.
-#
-# Notes:
-#
-# If both admin-address and proxy-info-url are unset, the whole
-# "Local Privoxy Support" box on all generated pages will not be
-# shown.
-#
-# This URL shouldn't be blocked ;-)
-#
-#proxy-info-url http://www.example.com/proxy-service.html
-#
-# 2. CONFIGURATION AND LOG FILE LOCATIONS
-# ========================================
-#
-# Privoxy can (and normally does) use a number of other files for
-# additional configuration, help and logging. This section of the
-# configuration file tells Privoxy where to find those other files.
-#
-# The user running Privoxy, must have read permission for all
-# configuration files, and write permission to any files that would
-# be modified, such as log files and actions files.
-#
-#
-# 2.1. confdir
-# =============
-#
-# Specifies:
-#
-# The directory where the other configuration files are located.
-#
-# Type of value:
-#
-# Path name
-#
-# Default value:
-#
-# /etc/privoxy (Unix) or Privoxy installation dir (Windows)
-#
-# Effect if unset:
-#
-# Mandatory
-#
-# Notes:
-#
-# No trailing "/", please.
-#
-confdir /usr/local/etc/privoxy
-#
-# 2.2. templdir
-# ==============
-#
-# Specifies:
-#
-# An alternative directory where the templates are loaded from.
-#
-# Type of value:
-#
-# Path name
-#
-# Default value:
-#
-# unset
-#
-# Effect if unset:
-#
-# The templates are assumed to be located in confdir/template.
-#
-# Notes:
-#
-# Privoxy's original templates are usually overwritten with each
-# update. Use this option to relocate customized templates that
-# should be kept. As template variables might change between
-# updates, you shouldn't expect templates to work with Privoxy
-# releases other than the one they were part of, though.
-#
-#templdir .
-#
-# 2.3. logdir
-# ============
-#
-# Specifies:
-#
-# The directory where all logging takes place (i.e. where the
-# logfile is located).
-#
-# Type of value:
-#
-# Path name
-#
-# Default value:
-#
-# /var/log/privoxy (Unix) or Privoxy installation dir (Windows)
-#
-# Effect if unset:
-#
-# Mandatory
-#
-# Notes:
-#
-# No trailing "/", please.
-#
-logdir /var/log/privoxy
-#
-# 2.4. actionsfile
-# =================
-#
-# Specifies:
-#
-# The actions file(s) to use
-#
-# Type of value:
-#
-# Complete file name, relative to confdir
-#
-# Default values:
-#
-# match-all.action # Actions that are applied to all sites and maybe overruled later on.
-#
-# default.action # Main actions file
-#
-# user.action # User customizations
-#
-# Effect if unset:
-#
-# No actions are taken at all. More or less neutral proxying.
-#
-# Notes:
-#
-# Multiple actionsfile lines are permitted, and are in fact
-# recommended!
-#
-# The default values are default.action, which is the "main"
-# actions file maintained by the developers, and user.action,
-# where you can make your personal additions.
-#
-# Actions files contain all the per site and per URL
-# configuration for ad blocking, cookie management, privacy
-# considerations, etc. There is no point in using Privoxy
-# without at least one actions file.
-#
-# Note that since Privoxy 3.0.7, the complete filename,
-# including the ".action" extension has to be specified. The
-# syntax change was necessary to be consistent with the other
-# file options and to allow previously forbidden characters.
-#
-actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on.
-actionsfile default.action # Main actions file
-actionsfile user.action # User customizations
-#
-# 2.5. filterfile
-# ================
-#
-# Specifies:
-#
-# The filter file(s) to use
-#
-# Type of value:
-#
-# File name, relative to confdir
-#
-# Default value:
-#
-# default.filter (Unix) or default.filter.txt (Windows)
-#
-# Effect if unset:
-#
-# No textual content filtering takes place, i.e. all +filter{name}
-# actions in the actions files are turned neutral.
-#
-# Notes:
-#
-# Multiple filterfile lines are permitted.
-#
-# The filter files contain content modification rules that use
-# regular expressions. These rules permit powerful changes on
-# the content of Web pages, and optionally the headers as well,
-# e.g., you could try to disable your favorite JavaScript
-# annoyances, re-write the actual displayed text, or just have
-# some fun playing buzzword bingo with web pages.
-#
-# The +filter{name} actions rely on the relevant filter (name)
-# to be defined in a filter file!
-#
-# A pre-defined filter file called default.filter that contains
-# a number of useful filters for common problems is included in
-# the distribution. See the section on the filter action for a
-# list.
-#
-# It is recommended to place any locally adapted filters into a
-# separate file, such as user.filter.
-#
-filterfile default.filter
-filterfile user.filter # User customizations
-#
-# 2.6. logfile
-# =============
-#
-# Specifies:
-#
-# The log file to use
-#
-# Type of value:
-#
-# File name, relative to logdir
-#
-# Default value:
-#
-# Unset (commented out). When activated: logfile (Unix) or
-# privoxy.log (Windows).
-#
-# Effect if unset:
-#
-# No logfile is written.
-#
-# Notes:
-#
-# The logfile is where all logging and error messages are
-# written. The level of detail and number of messages are set
-# with the debug option (see below). The logfile can be useful
-# for tracking down a problem with Privoxy (e.g., it's not
-# blocking an ad you think it should block) and it can help you
-# to monitor what your browser is doing.
-#
-# Depending on the debug options below, the logfile may be a
-# privacy risk if third parties can get access to it. As most
-# users will never look at it, Privoxy 3.0.7 and later only log
-# fatal errors by default.
-#
-# For most troubleshooting purposes, you will have to change
-# that, please refer to the debugging section for details.
-#
-# Your logfile will grow indefinitely, and you will probably
-# want to periodically remove it. On Unix systems, you can do
-# this with a cron job (see "man cron").
-#
-# Any log files must be writable by whatever user Privoxy is
-# being run as (on Unix, default user id is "privoxy").
-#
-logfile logfile.log
-#
-# 2.7. trustfile
-# ===============
-#
-# Specifies:
-#
-# The name of the trust file to use
-#
-# Type of value:
-#
-# File name, relative to confdir
-#
-# Default value:
-#
-# Unset (commented out). When activated: trust (Unix) or
-# trust.txt (Windows)
-#
-# Effect if unset:
-#
-# The entire trust mechanism is disabled.
-#
-# Notes:
-#
-# The trust mechanism is an experimental feature for building
-# white-lists and should be used with care. It is NOT
-# recommended for the casual user.
-#
-# If you specify a trust file, Privoxy will only allow access to
-# sites that are specified in the trustfile. Sites can be listed
-# in one of two ways:
-#
-# Prepending a ~ character limits access to this site only (and
-# any sub-paths within this site), e.g. ~www.example.com allows
-# access to ~www.example.com/features/news.html, etc.
-#
-# Or, you can designate sites as trusted referrers, by
-# prepending the name with a + character. The effect is that
-# access to untrusted sites will be granted -- but only if a
-# link from this trusted referrer was used to get there. The
-# link target will then be added to the "trustfile" so that
-# future, direct accesses will be granted. Sites added via this
-# mechanism do not become trusted referrers themselves (i.e.
-# they are added with a ~ designation). There is a limit of 512
-# such entries, after which new entries will not be made.
-#
-# If you use the + operator in the trust file, it may grow
-# considerably over time.
-#
-# It is recommended that Privoxy be compiled with the
-# --disable-force, --disable-toggle and --disable-editor
-# options, if this feature is to be used.
-#
-# Possible applications include limiting Internet access for
-# children.
-#
-#trustfile trust
-#
-# 3. DEBUGGING
-# =============
-#
-# These options are mainly useful when tracing a problem. Note that
-# you might also want to invoke Privoxy with the --no-daemon command
-# line option when debugging.
-#
-#
-# 3.1. debug
-# ===========
-#
-# Specifies:
-#
-# Key values that determine what information gets logged.
-#
-# Type of value:
-#
-# Integer values
-#
-# Default value:
-#
-# 0 (i.e.: only fatal errors (that cause Privoxy to exit) are
-# logged)
-#
-# Effect if unset:
-#
-# Default value is used (see above).
-#
-# Notes:
-#
-# The available debug levels are:
-#
-# debug 1 # Log the destination for each request Privoxy let through. See also debug 1024.
-# debug 2 # show each connection status
-# debug 4 # show I/O status
-# debug 8 # show header parsing
-# debug 16 # log all data written to the network
-# debug 32 # debug force feature
-# debug 64 # debug regular expression filters
-# debug 128 # debug redirects
-# debug 256 # debug GIF de-animation
-# debug 512 # Common Log Format
-# debug 1024 # Log the destination for requests Privoxy didn't let through, and the reason why.
-# debug 2048 # CGI user interface
-# debug 4096 # Startup banner and warnings.
-# debug 8192 # Non-fatal errors
-# debug 32768 # log all data read from the network
-# debug 65536 # Log the applying actions
-#
-# To select multiple debug levels, you can either add them or
-# use multiple debug lines.
-#
-# A debug level of 1 is informative because it will show you
-# each request as it happens. 1, 1024, 4096 and 8192 are
-# recommended so that you will notice when things go wrong. The
-# other levels are probably only of interest if you are hunting
-# down a specific problem. They can produce a hell of an output
-# (especially 16).
-#
-# Privoxy used to ship with the debug levels recommended above
-# enabled by default, but due to privacy concerns 3.0.7 and
-# later are configured to only log fatal errors.
-#
-# If you are used to the more verbose settings, simply enable
-# the debug lines below again.
-#
-# If you want to use pure CLF (Common Log Format), you should
-# set "debug 512" ONLY and not enable anything else.
-#
-# Privoxy has a hard-coded limit for the length of log messages.
-# If it's reached, messages are logged truncated and marked with
-# "... [too long, truncated]".
-#
-# Please don't file any support requests without trying to
-# reproduce the problem with increased debug level first. Once
-# you read the log messages, you may even be able to solve the
-# problem on your own.
-#
-#debug 1 # Log the destination for each request Privoxy let through. See also debug 1024.
-#debug 1024 # Actions that are applied to all sites and maybe overruled later on.
-#debug 4096 # Startup banner and warnings
-#debug 8192 # Non-fatal errors
-#
-# 3.2. single-threaded
-# =====================
-#
-# Specifies:
-#
-# Whether to run only one server thread.
-#
-# Type of value:
-#
-# None
-#
-# Default value:
-#
-# Unset
-#
-# Effect if unset:
-#
-# Multi-threaded (or, where unavailable: forked) operation, i.e.
-# the ability to serve multiple requests simultaneously.
-#
-# Notes:
-#
-# This option is only there for debugging purposes. It will
-# drastically reduce performance.
-#
-#single-threaded
-#
-# 3.3. hostname
-# ==============
-#
-# Specifies:
-#
-# The hostname shown on the CGI pages.
-#
-# Type of value:
-#
-# Text
-#
-# Default value:
-#
-# Unset
-#
-# Effect if unset:
-#
-# The hostname provided by the operating system is used.
-#
-# Notes:
-#
-# On some misconfigured systems resolving the hostname fails or
-# takes too much time and slows Privoxy down. Setting a fixed
-# hostname works around the problem.
-#
-# In other circumstances it might be desirable to show a
-# hostname other than the one returned by the operating system.
-# For example if the system has several different hostnames and
-# you don't want to use the first one.
-#
-# Note that Privoxy does not validate the specified hostname
-# value.
-#
-#hostname hostname.example.org
-#
-# 4. ACCESS CONTROL AND SECURITY
-# ===============================
-#
-# This section of the config file controls the security-relevant
-# aspects of Privoxy's configuration.
-#
-#
-# 4.1. listen-address
-# ====================
-#
-# Specifies:
-#
-# The address and TCP port on which Privoxy will listen for
-# client requests.
-#
-# Type of value:
-#
-# [IP-Address]:Port
-#
-# [Hostname]:Port
-#
-# Default value:
-#
-# 127.0.0.1:8118
-#
-# Effect if unset:
-#
-# Bind to 127.0.0.1 (IPv4 localhost), port 8118. This is
-# suitable and recommended for home users who run Privoxy on the
-# same machine as their browser.
-#
-# Notes:
-#
-# You will need to configure your browser(s) to this proxy
-# address and port.
-#
-# If you already have another service running on port 8118, or
-# if you want to serve requests from other machines (e.g. on
-# your local network) as well, you will need to override the
-# default.
-#
-# You can use this statement multiple times to make Privoxy
-# listen on more ports or more IP addresses. Suitable if your
-# operating system does not support sharing IPv6 and IPv4
-# protocols on the same socket.
-#
-# If a hostname is used instead of an IP address, Privoxy will
-# try to resolve it to an IP address and if there are multiple,
-# use the first one returned.
-#
-# If the address for the hostname isn't already known on the
-# system (for example because it's in /etc/hostname), this may
-# result in DNS traffic.
-#
-# If the specified address isn't available on the system, or if
-# the hostname can't be resolved, Privoxy will fail to start.
-#
-# IPv6 addresses containing colons have to be quoted by
-# brackets. They can only be used if Privoxy has been compiled
-# with IPv6 support. If you aren't sure if your version supports
-# it, have a look at http://config.privoxy.org/show-status.
-#
-# Some operating systems will prefer IPv6 to IPv4 addresses even
-# if the system has no IPv6 connectivity which is usually not
-# expected by the user. Some even rely on DNS to resolve
-# localhost which mean the "localhost" address used may not
-# actually be local.
-#
-# It is therefore recommended to explicitly configure the
-# intended IP address instead of relying on the operating
-# system, unless there's a strong reason not to.
-#
-# If you leave out the address, Privoxy will bind to all IPv4
-# interfaces (addresses) on your machine and may become
-# reachable from the Internet and/or the local network. Be aware
-# that some GNU/Linux distributions modify that behaviour
-# without updating the documentation. Check for non-standard
-# patches if your Privoxy version behaves differently.
-#
-# If you configure Privoxy to be reachable from the network,
-# consider using access control lists (ACL's, see below), and/or
-# a firewall.
-#
-# If you open Privoxy to untrusted users, you will also want to
-# make sure that the following actions are disabled:
-# enable-edit-actions and enable-remote-toggle
-#
-# Example:
-#
-# Suppose you are running Privoxy on a machine which has the
-# address 192.168.0.1 on your local private network
-# (192.168.0.0) and has another outside connection with a
-# different address. You want it to serve requests from inside
-# only:
-#
-# listen-address 192.168.0.1:8118
-#
-# Suppose you are running Privoxy on an IPv6-capable machine and
-# you want it to listen on the IPv6 address of the loopback
-# device:
-#
-# listen-address [::1]:8118
-#
-listen-address 127.0.0.1:8118
-#
-# 4.2. toggle
-# ============
-#
-# Specifies:
-#
-# Initial state of "toggle" status
-#
-# Type of value:
-#
-# 1 or 0
-#
-# Default value:
-#
-# 1
-#
-# Effect if unset:
-#
-# Act as if toggled on
-#
-# Notes:
-#
-# If set to 0, Privoxy will start in "toggled off" mode, i.e.
-# mostly behave like a normal, content-neutral proxy with both
-# ad blocking and content filtering disabled. See
-# enable-remote-toggle below.
-#
-toggle 1
-#
-# 4.3. enable-remote-toggle
-# ==========================
-#
-# Specifies:
-#
-# Whether or not the web-based toggle feature may be used
-#
-# Type of value:
-#
-# 0 or 1
-#
-# Default value:
-#
-# 0
-#
-# Effect if unset:
-#
-# The web-based toggle feature is disabled.
-#
-# Notes:
-#
-# When toggled off, Privoxy mostly acts like a normal,
-# content-neutral proxy, i.e. doesn't block ads or filter
-# content.
-#
-# Access to the toggle feature can not be controlled separately
-# by "ACLs" or HTTP authentication, so that everybody who can
-# access Privoxy (see "ACLs" and listen-address above) can
-# toggle it for all users. So this option is not recommended for
-# multi-user environments with untrusted users.
-#
-# Note that malicious client side code (e.g Java) is also
-# capable of using this option.
-#
-# As a lot of Privoxy users don't read documentation, this
-# feature is disabled by default.
-#
-# Note that you must have compiled Privoxy with support for this
-# feature, otherwise this option has no effect.
-#
-enable-remote-toggle 0
-#
-# 4.4. enable-remote-http-toggle
-# ===============================
-#
-# Specifies:
-#
-# Whether or not Privoxy recognizes special HTTP headers to
-# change its behaviour.
-#
-# Type of value:
-#
-# 0 or 1
-#
-# Default value:
-#
-# 0
-#
-# Effect if unset:
-#
-# Privoxy ignores special HTTP headers.
-#
-# Notes:
-#
-# When toggled on, the client can change Privoxy's behaviour by
-# setting special HTTP headers. Currently the only supported
-# special header is "X-Filter: No", to disable filtering for the
-# ongoing request, even if it is enabled in one of the action
-# files.
-#
-# This feature is disabled by default. If you are using Privoxy
-# in a environment with trusted clients, you may enable this
-# feature at your discretion. Note that malicious client side
-# code (e.g Java) is also capable of using this feature.
-#
-# This option will be removed in future releases as it has been
-# obsoleted by the more general header taggers.
-#
-enable-remote-http-toggle 0
-#
-# 4.5. enable-edit-actions
-# =========================
-#
-# Specifies:
-#
-# Whether or not the web-based actions file editor may be used
-#
-# Type of value:
-#
-# 0 or 1
-#
-# Default value:
-#
-# 0
-#
-# Effect if unset:
-#
-# The web-based actions file editor is disabled.
-#
-# Notes:
-#
-# Access to the editor can not be controlled separately by
-# "ACLs" or HTTP authentication, so that everybody who can
-# access Privoxy (see "ACLs" and listen-address above) can
-# modify its configuration for all users.
-#
-# This option is not recommended for environments with untrusted
-# users and as a lot of Privoxy users don't read documentation,
-# this feature is disabled by default.
-#
-# Note that malicious client side code (e.g Java) is also
-# capable of using the actions editor and you shouldn't enable
-# this options unless you understand the consequences and are
-# sure your browser is configured correctly.
-#
-# Note that you must have compiled Privoxy with support for this
-# feature, otherwise this option has no effect.
-#
-enable-edit-actions 0
-#
-# 4.6. enforce-blocks
-# ====================
-#
-# Specifies:
-#
-# Whether the user is allowed to ignore blocks and can "go there
-# anyway".
-#
-# Type of value:
-#
-# 0 or 1
-#
-# Default value:
-#
-# 0
-#
-# Effect if unset:
-#
-# Blocks are not enforced.
-#
-# Notes:
-#
-# Privoxy is mainly used to block and filter requests as a
-# service to the user, for example to block ads and other junk
-# that clogs the pipes. Privoxy's configuration isn't perfect
-# and sometimes innocent pages are blocked. In this situation it
-# makes sense to allow the user to enforce the request and have
-# Privoxy ignore the block.
-#
-# In the default configuration Privoxy's "Blocked" page contains
-# a "go there anyway" link to adds a special string (the force
-# prefix) to the request URL. If that link is used, Privoxy will
-# detect the force prefix, remove it again and let the request
-# pass.
-#
-# Of course Privoxy can also be used to enforce a network
-# policy. In that case the user obviously should not be able to
-# bypass any blocks, and that's what the "enforce-blocks" option
-# is for. If it's enabled, Privoxy hides the "go there anyway"
-# link. If the user adds the force prefix by hand, it will not
-# be accepted and the circumvention attempt is logged.
-#
-# Examples:
-#
-# enforce-blocks 1
-#
-enforce-blocks 0
-#
-# 4.7. ACLs: permit-access and deny-access
-# =========================================
-#
-# Specifies:
-#
-# Who can access what.
-#
-# Type of value:
-#
-# src_addr[:port][/src_masklen] [dst_addr[:port][/dst_masklen]]
-#
-# Where src_addr and dst_addr are IPv4 addresses in dotted
-# decimal notation or valid DNS names, port is a port number,
-# and src_masklen and dst_masklen are subnet masks in CIDR
-# notation, i.e. integer values from 2 to 30 representing the
-# length (in bits) of the network address. The masks and the
-# whole destination part are optional.
-#
-# If your system implements RFC 3493, then src_addr and dst_addr
-# can be IPv6 addresses delimeted by brackets, port can be a
-# number or a service name, and src_masklen and dst_masklen can
-# be a number from 0 to 128.
-#
-# Default value:
-#
-# Unset
-#
-# If no port is specified, any port will match. If no
-# src_masklen or src_masklen is given, the complete IP address
-# has to match (i.e. 32 bits for IPv4 and 128 bits for IPv6).
-#
-# Effect if unset:
-#
-# Don't restrict access further than implied by listen-address
-#
-# Notes:
-#
-# Access controls are included at the request of ISPs and
-# systems administrators, and are not usually needed by
-# individual users. For a typical home user, it will normally
-# suffice to ensure that Privoxy only listens on the localhost
-# (127.0.0.1) or internal (home) network address by means of the
-# listen-address option.
-#
-# Please see the warnings in the FAQ that Privoxy is not
-# intended to be a substitute for a firewall or to encourage
-# anyone to defer addressing basic security weaknesses.
-#
-# Multiple ACL lines are OK. If any ACLs are specified, Privoxy
-# only talks to IP addresses that match at least one
-# permit-access line and don't match any subsequent deny-access
-# line. In other words, the last match wins, with the default
-# being deny-access.
-#
-# If Privoxy is using a forwarder (see forward below) for a
-# particular destination URL, the dst_addr that is examined is
-# the address of the forwarder and NOT the address of the
-# ultimate target. This is necessary because it may be
-# impossible for the local Privoxy to determine the IP address
-# of the ultimate target (that's often what gateways are used
-# for).
-#
-# You should prefer using IP addresses over DNS names, because
-# the address lookups take time. All DNS names must resolve! You
-# can not use domain patterns like "*.org" or partial domain
-# names. If a DNS name resolves to multiple IP addresses, only
-# the first one is used.
-#
-# Some systems allow IPv4 clients to connect to IPv6 server
-# sockets. Then the client's IPv4 address will be translated by
-# the system into IPv6 address space with special prefix
-# ::ffff:0:0/96 (so called IPv4 mapped IPv6 address). Privoxy
-# can handle it and maps such ACL addresses automatically.
-#
-# Denying access to particular sites by ACL may have undesired
-# side effects if the site in question is hosted on a machine
-# which also hosts other sites (most sites are).
-#
-# Examples:
-#
-# Explicitly define the default behavior if no ACL and
-# listen-address are set: "localhost" is OK. The absence of a
-# dst_addr implies that all destination addresses are OK:
-#
-# permit-access localhost
-#
-# Allow any host on the same class C subnet as www.privoxy.org
-# access to nothing but www.example.com (or other domains hosted
-# on the same system):
-#
-# permit-access www.privoxy.org/24 www.example.com/32
-#
-# Allow access from any host on the 26-bit subnet 192.168.45.64
-# to anywhere, with the exception that 192.168.45.73 may not
-# access the IP address behind www.dirty-stuff.example.com:
-#
-# permit-access 192.168.45.64/26
-# deny-access 192.168.45.73 www.dirty-stuff.example.com
-#
-# Allow access from the IPv4 network 192.0.2.0/24 even if
-# listening on an IPv6 wild card address (not supported on all
-# platforms):
-#
-# permit-access 192.0.2.0/24
-#
-# This is equivalent to the following line even if listening on
-# an IPv4 address (not supported on all platforms):
-#
-# permit-access [::ffff:192.0.2.0]/120
-#
-#
-# 4.8. buffer-limit
-# ==================
-#
-# Specifies:
-#
-# Maximum size of the buffer for content filtering.
-#
-# Type of value:
-#
-# Size in Kbytes
-#
-# Default value:
-#
-# 4096
-#
-# Effect if unset:
-#
-# Use a 4MB (4096 KB) limit.
-#
-# Notes:
-#
-# For content filtering, i.e. the +filter and +deanimate-gif
-# actions, it is necessary that Privoxy buffers the entire
-# document body. This can be potentially dangerous, since a
-# server could just keep sending data indefinitely and wait for
-# your RAM to exhaust -- with nasty consequences. Hence this
-# option.
-#
-# When a document buffer size reaches the buffer-limit, it is
-# flushed to the client unfiltered and no further attempt to
-# filter the rest of the document is made. Remember that there
-# may be multiple threads running, which might require up to
-# buffer-limit Kbytes each, unless you have enabled
-# "single-threaded" above.
-#
-buffer-limit 4096
-#
-# 4.9. enable-proxy-authentication-forwarding
-# ============================================
-#
-# Specifies:
-#
-# Whether or not proxy authentication through Privoxy should
-# work.
-#
-# Type of value:
-#
-# 0 or 1
-#
-# Default value:
-#
-# 0
-#
-# Effect if unset:
-#
-# Proxy authentication headers are removed.
-#
-# Notes:
-#
-# Privoxy itself does not support proxy authentication, but can
-# allow clients to authenticate against Privoxy's parent proxy.
-#
-# By default Privoxy (3.0.21 and later) don't do that and remove
-# Proxy-Authorization headers in requests and Proxy-Authenticate
-# headers in responses to make it harder for malicious sites to
-# trick inexperienced users into providing login information.
-#
-# If this option is enabled the headers are forwarded.
-#
-# Enabling this option is not recommended if there is no parent
-# proxy that requires authentication or if the local network
-# between Privoxy and the parent proxy isn't trustworthy. If
-# proxy authentication is only required for some requests, it is
-# recommended to use a client header filter to remove the
-# authentication headers for requests where they aren't needed.
-#
-enable-proxy-authentication-forwarding 0
-#
-# 5. FORWARDING
-# ==============
-#
-# This feature allows routing of HTTP requests through a chain of
-# multiple proxies.
-#
-# Forwarding can be used to chain Privoxy with a caching proxy to
-# speed up browsing. Using a parent proxy may also be necessary if
-# the machine that Privoxy runs on has no direct Internet access.
-#
-# Note that parent proxies can severely decrease your privacy level.
-# For example a parent proxy could add your IP address to the
-# request headers and if it's a caching proxy it may add the "Etag"
-# header to revalidation requests again, even though you configured
-# Privoxy to remove it. It may also ignore Privoxy's header time
-# randomization and use the original values which could be used by
-# the server as cookie replacement to track your steps between
-# visits.
-#
-# Also specified here are SOCKS proxies. Privoxy supports the SOCKS
-# 4 and SOCKS 4A protocols.
-#
-#
-# 5.1. forward
-# =============
-#
-# Specifies:
-#
-# To which parent HTTP proxy specific requests should be routed.
-#
-# Type of value:
-#
-# target_pattern http_parent[:port]
-#
-# where target_pattern is a URL pattern that specifies to which
-# requests (i.e. URLs) this forward rule shall apply. Use / to
-# denote "all URLs". http_parent[:port] is the DNS name or IP
-# address of the parent HTTP proxy through which the requests
-# should be forwarded, optionally followed by its listening port
-# (default: 8000). Use a single dot (.) to denote "no
-# forwarding".
-#
-# Default value:
-#
-# Unset
-#
-# Effect if unset:
-#
-# Don't use parent HTTP proxies.
-#
-# Notes:
-#
-# If http_parent is ".", then requests are not forwarded to
-# another HTTP proxy but are made directly to the web servers.
-#
-# http_parent can be a numerical IPv6 address (if RFC 3493 is
-# implemented). To prevent clashes with the port delimiter, the
-# whole IP address has to be put into brackets. On the other
-# hand a target_pattern containing an IPv6 address has to be put
-# into angle brackets (normal brackets are reserved for regular
-# expressions already).
-#
-# Multiple lines are OK, they are checked in sequence, and the
-# last match wins.
-#
-# Examples:
-#
-# Everything goes to an example parent proxy, except SSL on port
-# 443 (which it doesn't handle):
-#
-# forward / parent-proxy.example.org:8080
-# forward :443 .
-#
-# Everything goes to our example ISP's caching proxy, except for
-# requests to that ISP's sites:
-#
-# forward / caching-proxy.isp.example.net:8000
-# forward .isp.example.net .
-#
-# Parent proxy specified by an IPv6 address:
-#
-# forward / [2001:DB8::1]:8000
-#
-# Suppose your parent proxy doesn't support IPv6:
-#
-# forward / parent-proxy.example.org:8000
-# forward ipv6-server.example.org .
-# forward <[2-3][0-9a-f][0-9a-f][0-9a-f]:*> .
-#
-#
-# 5.2. forward-socks4, forward-socks4a, forward-socks5 and forward-socks5t
-# =========================================================================
-#
-# Specifies:
-#
-# Through which SOCKS proxy (and optionally to which parent HTTP
-# proxy) specific requests should be routed.
-#
-# Type of value:
-#
-# target_pattern socks_proxy[:port] http_parent[:port]
-#
-# where target_pattern is a URL pattern that specifies to which
-# requests (i.e. URLs) this forward rule shall apply. Use / to
-# denote "all URLs". http_parent and socks_proxy are IP
-# addresses in dotted decimal notation or valid DNS names (
-# http_parent may be "." to denote "no HTTP forwarding"), and
-# the optional port parameters are TCP ports, i.e. integer
-# values from 1 to 65535
-#
-# Default value:
-#
-# Unset
-#
-# Effect if unset:
-#
-# Don't use SOCKS proxies.
-#
-# Notes:
-#
-# Multiple lines are OK, they are checked in sequence, and the
-# last match wins.
-#
-# The difference between forward-socks4 and forward-socks4a is
-# that in the SOCKS 4A protocol, the DNS resolution of the
-# target hostname happens on the SOCKS server, while in SOCKS 4
-# it happens locally.
-#
-# With forward-socks5 the DNS resolution will happen on the
-# remote server as well.
-#
-# forward-socks5t works like vanilla forward-socks5 but lets
-# Privoxy additionally use Tor-specific SOCKS extensions.
-# Currently the only supported SOCKS extension is optimistic
-# data which can reduce the latency for the first request made
-# on a newly created connection.
-#
-# socks_proxy and http_parent can be a numerical IPv6 address
-# (if RFC 3493 is implemented). To prevent clashes with the port
-# delimiter, the whole IP address has to be put into brackets.
-# On the other hand a target_pattern containing an IPv6 address
-# has to be put into angle brackets (normal brackets are
-# reserved for regular expressions already).
-#
-# If http_parent is ".", then requests are not forwarded to
-# another HTTP proxy but are made (HTTP-wise) directly to the
-# web servers, albeit through a SOCKS proxy.
-#
-# Examples:
-#
-# From the company example.com, direct connections are made to
-# all "internal" domains, but everything outbound goes through
-# their ISP's proxy by way of example.com's corporate SOCKS 4A
-# gateway to the Internet.
-#
-# forward-socks4a / socks-gw.example.com:1080 www-cache.isp.example.net:8080
-# forward .example.com .
-#
-# A rule that uses a SOCKS 4 gateway for all destinations but no
-# HTTP parent looks like this:
-#
-# forward-socks4 / socks-gw.example.com:1080 .
-#
-# To chain Privoxy and Tor, both running on the same system, you
-# would use something like:
-#
-# forward-socks5 / 127.0.0.1:9050 .
-#
-# The public Tor network can't be used to reach your local
-# network, if you need to access local servers you therefore
-# might want to make some exceptions:
-#
-# forward 192.168.*.*/ .
-# forward 10.*.*.*/ .
-# forward 127.*.*.*/ .
-#
-# Unencrypted connections to systems in these address ranges
-# will be as (un)secure as the local network is, but the
-# alternative is that you can't reach the local network through
-# Privoxy at all. Of course this may actually be desired and
-# there is no reason to make these exceptions if you aren't sure
-# you need them.
-#
-# If you also want to be able to reach servers in your local
-# network by using their names, you will need additional
-# exceptions that look like this:
-#
-# forward localhost/ .
-#
-#
-# 5.3. forwarded-connect-retries
-# ===============================
-#
-# Specifies:
-#
-# How often Privoxy retries if a forwarded connection request
-# fails.
-#
-# Type of value:
-#
-# Number of retries.
-#
-# Default value:
-#
-# 0
-#
-# Effect if unset:
-#
-# Connections forwarded through other proxies are treated like
-# direct connections and no retry attempts are made.
-#
-# Notes:
-#
-# forwarded-connect-retries is mainly interesting for socks4a
-# connections, where Privoxy can't detect why the connections
-# failed. The connection might have failed because of a DNS
-# timeout in which case a retry makes sense, but it might also
-# have failed because the server doesn't exist or isn't
-# reachable. In this case the retry will just delay the
-# appearance of Privoxy's error message.
-#
-# Note that in the context of this option, "forwarded
-# connections" includes all connections that Privoxy forwards
-# through other proxies. This option is not limited to the HTTP
-# CONNECT method.
-#
-# Only use this option, if you are getting lots of
-# forwarding-related error messages that go away when you try
-# again manually. Start with a small value and check Privoxy's
-# logfile from time to time, to see how many retries are usually
-# needed.
-#
-# Examples:
-#
-# forwarded-connect-retries 1
-#
-forwarded-connect-retries 0
-#
-# 6. MISCELLANEOUS
-# =================
-#
-# 6.1. accept-intercepted-requests
-# =================================
-#
-# Specifies:
-#
-# Whether intercepted requests should be treated as valid.
-#
-# Type of value:
-#
-# 0 or 1
-#
-# Default value:
-#
-# 0
-#
-# Effect if unset:
-#
-# Only proxy requests are accepted, intercepted requests are
-# treated as invalid.
-#
-# Notes:
-#
-# If you don't trust your clients and want to force them to use
-# Privoxy, enable this option and configure your packet filter
-# to redirect outgoing HTTP connections into Privoxy.
-#
-# Make sure that Privoxy's own requests aren't redirected as
-# well. Additionally take care that Privoxy can't intentionally
-# connect to itself, otherwise you could run into redirection
-# loops if Privoxy's listening port is reachable by the outside
-# or an attacker has access to the pages you visit.
-#
-# Examples:
-#
-# accept-intercepted-requests 1
-#
-accept-intercepted-requests 0
-#
-# 6.2. allow-cgi-request-crunching
-# =================================
-#
-# Specifies:
-#
-# Whether requests to Privoxy's CGI pages can be blocked or
-# redirected.
-#
-# Type of value:
-#
-# 0 or 1
-#
-# Default value:
-#
-# 0
-#
-# Effect if unset:
-#
-# Privoxy ignores block and redirect actions for its CGI pages.
-#
-# Notes:
-#
-# By default Privoxy ignores block or redirect actions for its
-# CGI pages. Intercepting these requests can be useful in
-# multi-user setups to implement fine-grained access control,
-# but it can also render the complete web interface useless and
-# make debugging problems painful if done without care.
-#
-# Don't enable this option unless you're sure that you really
-# need it.
-#
-# Examples:
-#
-# allow-cgi-request-crunching 1
-#
-allow-cgi-request-crunching 0
-#
-# 6.3. split-large-forms
-# =======================
-#
-# Specifies:
-#
-# Whether the CGI interface should stay compatible with broken
-# HTTP clients.
-#
-# Type of value:
-#
-# 0 or 1
-#
-# Default value:
-#
-# 0
-#
-# Effect if unset:
-#
-# The CGI form generate long GET URLs.
-#
-# Notes:
-#
-# Privoxy's CGI forms can lead to rather long URLs. This isn't a
-# problem as far as the HTTP standard is concerned, but it can
-# confuse clients with arbitrary URL length limitations.
-#
-# Enabling split-large-forms causes Privoxy to divide big forms
-# into smaller ones to keep the URL length down. It makes
-# editing a lot less convenient and you can no longer submit all
-# changes at once, but at least it works around this browser
-# bug.
-#
-# If you don't notice any editing problems, there is no reason
-# to enable this option, but if one of the submit buttons
-# appears to be broken, you should give it a try.
-#
-# Examples:
-#
-# split-large-forms 1
-#
-split-large-forms 0
-#
-# 6.4. keep-alive-timeout
-# ========================
-#
-# Specifies:
-#
-# Number of seconds after which an open connection will no
-# longer be reused.
-#
-# Type of value:
-#
-# Time in seconds.
-#
-# Default value:
-#
-# None
-#
-# Effect if unset:
-#
-# Connections are not kept alive.
-#
-# Notes:
-#
-# This option allows clients to keep the connection to Privoxy
-# alive. If the server supports it, Privoxy will keep the
-# connection to the server alive as well. Under certain
-# circumstances this may result in speed-ups.
-#
-# By default, Privoxy will close the connection to the server if
-# the client connection gets closed, or if the specified timeout
-# has been reached without a new request coming in. This
-# behaviour can be changed with the connection-sharing option.
-#
-# This option has no effect if Privoxy has been compiled without
-# keep-alive support.
-#
-# Note that a timeout of five seconds as used in the default
-# configuration file significantly decreases the number of
-# connections that will be reused. The value is used because
-# some browsers limit the number of connections they open to a
-# single host and apply the same limit to proxies. This can
-# result in a single website "grabbing" all the connections the
-# browser allows, which means connections to other websites
-# can't be opened until the connections currently in use time
-# out.
-#
-# Several users have reported this as a Privoxy bug, so the
-# default value has been reduced. Consider increasing it to 300
-# seconds or even more if you think your browser can handle it.
-# If your browser appears to be hanging, it probably can't.
-#
-# Examples:
-#
-# keep-alive-timeout 300
-#
-keep-alive-timeout 5
-#
-# 6.5. tolerate-pipelining
-# =========================
-#
-# Specifies:
-#
-# Whether or not pipelined requests should be served.
-#
-# Type of value:
-#
-# 0 or 1.
-#
-# Default value:
-#
-# None
-#
-# Effect if unset:
-#
-# If Privoxy receives more than one request at once, it
-# terminates the client connection after serving the first one.
-#
-# Notes:
-#
-# Privoxy currently doesn't pipeline outgoing requests, thus
-# allowing pipelining on the client connection is not guaranteed
-# to improve the performance.
-#
-# By default Privoxy tries to discourage clients from pipelining
-# by discarding aggressively pipelined requests, which forces
-# the client to resend them through a new connection.
-#
-# This option lets Privoxy tolerate pipelining. Whether or not
-# that improves performance mainly depends on the client
-# configuration.
-#
-# If you are seeing problems with pages not properly loading,
-# disabling this option could work around the problem.
-#
-# Examples:
-#
-# tolerate-pipelining 1
-#
-tolerate-pipelining 1
-#
-# 6.6. default-server-timeout
-# ============================
-#
-# Specifies:
-#
-# Assumed server-side keep-alive timeout if not specified by the
-# server.
-#
-# Type of value:
-#
-# Time in seconds.
-#
-# Default value:
-#
-# None
-#
-# Effect if unset:
-#
-# Connections for which the server didn't specify the keep-alive
-# timeout are not reused.
-#
-# Notes:
-#
-# Enabling this option significantly increases the number of
-# connections that are reused, provided the keep-alive-timeout
-# option is also enabled.
-#
-# While it also increases the number of connections problems
-# when Privoxy tries to reuse a connection that already has been
-# closed on the server side, or is closed while Privoxy is
-# trying to reuse it, this should only be a problem if it
-# happens for the first request sent by the client. If it
-# happens for requests on reused client connections, Privoxy
-# will simply close the connection and the client is supposed to
-# retry the request without bothering the user.
-#
-# Enabling this option is therefore only recommended if the
-# connection-sharing option is disabled.
-#
-# It is an error to specify a value larger than the
-# keep-alive-timeout value.
-#
-# This option has no effect if Privoxy has been compiled without
-# keep-alive support.
-#
-# Examples:
-#
-# default-server-timeout 60
-#
-#default-server-timeout 60
-#
-# 6.7. connection-sharing
-# ========================
-#
-# Specifies:
-#
-# Whether or not outgoing connections that have been kept alive
-# should be shared between different incoming connections.
-#
-# Type of value:
-#
-# 0 or 1
-#
-# Default value:
-#
-# None
-#
-# Effect if unset:
-#
-# Connections are not shared.
-#
-# Notes:
-#
-# This option has no effect if Privoxy has been compiled without
-# keep-alive support, or if it's disabled.
-#
-# Notes:
-#
-# Note that reusing connections doesn't necessary cause
-# speedups. There are also a few privacy implications you should
-# be aware of.
-#
-# If this option is effective, outgoing connections are shared
-# between clients (if there are more than one) and closing the
-# browser that initiated the outgoing connection does no longer
-# affect the connection between Privoxy and the server unless
-# the client's request hasn't been completed yet.
-#
-# If the outgoing connection is idle, it will not be closed
-# until either Privoxy's or the server's timeout is reached.
-# While it's open, the server knows that the system running
-# Privoxy is still there.
-#
-# If there are more than one client (maybe even belonging to
-# multiple users), they will be able to reuse each others
-# connections. This is potentially dangerous in case of
-# authentication schemes like NTLM where only the connection is
-# authenticated, instead of requiring authentication for each
-# request.
-#
-# If there is only a single client, and if said client can keep
-# connections alive on its own, enabling this option has next to
-# no effect. If the client doesn't support connection
-# keep-alive, enabling this option may make sense as it allows
-# Privoxy to keep outgoing connections alive even if the client
-# itself doesn't support it.
-#
-# You should also be aware that enabling this option increases
-# the likelihood of getting the "No server or forwarder data"
-# error message, especially if you are using a slow connection
-# to the Internet.
-#
-# This option should only be used by experienced users who
-# understand the risks and can weight them against the benefits.
-#
-# Examples:
-#
-# connection-sharing 1
-#
-#connection-sharing 1
-#
-# 6.8. socket-timeout
-# ====================
-#
-# Specifies:
-#
-# Number of seconds after which a socket times out if no data is
-# received.
-#
-# Type of value:
-#
-# Time in seconds.
-#
-# Default value:
-#
-# None
-#
-# Effect if unset:
-#
-# A default value of 300 seconds is used.
-#
-# Notes:
-#
-# The default is quite high and you probably want to reduce it.
-# If you aren't using an occasionally slow proxy like Tor,
-# reducing it to a few seconds should be fine.
-#
-# Examples:
-#
-# socket-timeout 300
-#
-socket-timeout 300
-#
-# 6.9. max-client-connections
-# ============================
-#
-# Specifies:
-#
-# Maximum number of client connections that will be served.
-#
-# Type of value:
-#
-# Positive number.
-#
-# Default value:
-#
-# 128
-#
-# Effect if unset:
-#
-# Connections are served until a resource limit is reached.
-#
-# Notes:
-#
-# Privoxy creates one thread (or process) for every incoming
-# client connection that isn't rejected based on the access
-# control settings.
-#
-# If the system is powerful enough, Privoxy can theoretically
-# deal with several hundred (or thousand) connections at the
-# same time, but some operating systems enforce resource limits
-# by shutting down offending processes and their default limits
-# may be below the ones Privoxy would require under heavy load.
-#
-# Configuring Privoxy to enforce a connection limit below the
-# thread or process limit used by the operating system makes
-# sure this doesn't happen. Simply increasing the operating
-# system's limit would work too, but if Privoxy isn't the only
-# application running on the system, you may actually want to
-# limit the resources used by Privoxy.
-#
-# If Privoxy is only used by a single trusted user, limiting the
-# number of client connections is probably unnecessary. If there
-# are multiple possibly untrusted users you probably still want
-# to additionally use a packet filter to limit the maximal
-# number of incoming connections per client. Otherwise a
-# malicious user could intentionally create a high number of
-# connections to prevent other users from using Privoxy.
-#
-# Obviously using this option only makes sense if you choose a
-# limit below the one enforced by the operating system.
-#
-# One most POSIX-compliant systems Privoxy can't properly deal
-# with more than FD_SETSIZE file descriptors at the same time
-# and has to reject connections if the limit is reached. This
-# will likely change in a future version, but currently this
-# limit can't be increased without recompiling Privoxy with a
-# different FD_SETSIZE limit.
-#
-# Examples:
-#
-# max-client-connections 256
-#
-#max-client-connections 256
-#
-# 6.10. handle-as-empty-doc-returns-ok
-# =====================================
-#
-# Specifies:
-#
-# The status code Privoxy returns for pages blocked with
-# +handle-as-empty-document.
-#
-# Type of value:
-#
-# 0 or 1
-#
-# Default value:
-#
-# 0
-#
-# Effect if unset:
-#
-# Privoxy returns a status 403(forbidden) for all blocked pages.
-#
-# Effect if set:
-#
-# Privoxy returns a status 200(OK) for pages blocked with
-# +handle-as-empty-document and a status 403(Forbidden) for all
-# other blocked pages.
-#
-# Notes:
-#
-# This is a work-around for Firefox bug 492459: " Websites are
-# no longer rendered if SSL requests for JavaScripts are blocked
-# by a proxy. " (https://bugzilla.mozilla.org/show_bug.cgi?id=
-# 492459) As the bug has been fixed for quite some time this
-# option should no longer be needed and will be removed in a
-# future release. Please speak up if you have a reason why the
-# option should be kept around.
-#
-#handle-as-empty-doc-returns-ok 1
-#
-# 6.11. enable-compression
-# =========================
-#
-# Specifies:
-#
-# Whether or not buffered content is compressed before delivery.
-#
-# Type of value:
-#
-# 0 or 1
-#
-# Default value:
-#
-# 0
-#
-# Effect if unset:
-#
-# Privoxy does not compress buffered content.
-#
-# Effect if set:
-#
-# Privoxy compresses buffered content before delivering it to
-# the client, provided the client supports it.
-#
-# Notes:
-#
-# This directive is only supported if Privoxy has been compiled
-# with FEATURE_COMPRESSION, which should not to be confused with
-# FEATURE_ZLIB.
-#
-# Compressing buffered content is mainly useful if Privoxy and
-# the client are running on different systems. If they are
-# running on the same system, enabling compression is likely to
-# slow things down. If you didn't measure otherwise, you should
-# assume that it does and keep this option disabled.
-#
-# Privoxy will not compress buffered content below a certain
-# length.
-#
-#enable-compression 1
-#
-# 6.12. compression-level
-# ========================
-#
-# Specifies:
-#
-# The compression level that is passed to the zlib library when
-# compressing buffered content.
-#
-# Type of value:
-#
-# Positive number ranging from 0 to 9.
-#
-# Default value:
-#
-# 1
-#
-# Notes:
-#
-# Compressing the data more takes usually longer than
-# compressing it less or not compressing it at all. Which level
-# is best depends on the connection between Privoxy and the
-# client. If you can't be bothered to benchmark it for yourself,
-# you should stick with the default and keep compression
-# disabled.
-#
-# If compression is disabled, the compression level is
-# irrelevant.
-#
-# Examples:
-#
-# # Best speed (compared to the other levels)
-# compression-level 1
-#
-# # Best compression
-# compression-level 9
-#
-# # No compression. Only useful for testing as the added header
-# # slightly increases the amount of data that has to be sent.
-# # If your benchmark shows that using this compression level
-# # is superior to using no compression at all, the benchmark
-# # is likely to be flawed.
-# compression-level 0
-#
-#
-#compression-level 1
-#
-# 6.13. client-header-order
-# ==========================
-#
-# Specifies:
-#
-# The order in which client headers are sorted before forwarding
-# them.
-#
-# Type of value:
-#
-# Client header names delimited by spaces or tabs
-#
-# Default value:
-#
-# None
-#
-# Notes:
-#
-# By default Privoxy leaves the client headers in the order they
-# were sent by the client. Headers are modified in-place, new
-# headers are added at the end of the already existing headers.
-#
-# The header order can be used to fingerprint client requests
-# independently of other headers like the User-Agent.
-#
-# This directive allows to sort the headers differently to
-# better mimic a different User-Agent. Client headers will be
-# emitted in the order given, headers whose name isn't
-# explicitly specified are added at the end.
-#
-# Note that sorting headers in an uncommon way will make
-# fingerprinting actually easier. Encrypted headers are not
-# affected by this directive.
-#
-#client-header-order Host \
-# Accept \
-# Accept-Language \
-# Accept-Encoding \
-# Proxy-Connection \
-# Referer \
-# Cookie \
-# DNT \
-# If-Modified-Since \
-# Cache-Control \
-# Content-Length \
-# Content-Type
-#
-#
-# 7. WINDOWS GUI OPTIONS
-# =======================
-#
-# Privoxy has a number of options specific to the Windows GUI
-# interface:
-#
-#
-#
-# If "activity-animation" is set to 1, the Privoxy icon will animate
-# when "Privoxy" is active. To turn off, set to 0.
-#
-#activity-animation 1
-#
-#
-#
-# If "log-messages" is set to 1, Privoxy copies log messages to the
-# console window. The log detail depends on the debug directive.
-#
-#log-messages 1
-#
-#
-#
-# If "log-buffer-size" is set to 1, the size of the log buffer, i.e.
-# the amount of memory used for the log messages displayed in the
-# console window, will be limited to "log-max-lines" (see below).
-#
-# Warning: Setting this to 0 will result in the buffer to grow
-# infinitely and eat up all your memory!
-#
-#log-buffer-size 1
-#
-#
-#
-# log-max-lines is the maximum number of lines held in the log
-# buffer. See above.
-#
-#log-max-lines 200
-#
-#
-#
-# If "log-highlight-messages" is set to 1, Privoxy will highlight
-# portions of the log messages with a bold-faced font:
-#
-#log-highlight-messages 1
-#
-#
-#
-# The font used in the console window:
-#
-#log-font-name Comic Sans MS
-#
-#
-#
-# Font size used in the console window:
-#
-#log-font-size 8
-#
-#
-#
-# "show-on-task-bar" controls whether or not Privoxy will appear as
-# a button on the Task bar when minimized:
-#
-#show-on-task-bar 0
-#
-#
-#
-# If "close-button-minimizes" is set to 1, the Windows close button
-# will minimize Privoxy instead of closing the program (close with
-# the exit option on the File menu).
-#
-#close-button-minimizes 1
-#
-#
-#
-# The "hide-console" option is specific to the MS-Win console
-# version of Privoxy. If this option is used, Privoxy will
-# disconnect from and hide the command console.
-#
-#hide-console
-#
-#
-#
+++ /dev/null
-######################################################################
-#
-# File : $Source: /cvsroot/ijbswa/current/default.action.master,v $
-#
-# $Id: default.action.master,v 1.287 2013/03/03 10:53:36 fabiankeil Exp $
-#
-# Requires : This version requires Privoxy v3.0.11 or later due to
-# syntax changes.
-#
-# Purpose : Default actions file, see
-# http://www.privoxy.org/user-manual/actions-file.html.
-# This file is subject to periodic updating. It is
-# not supposed to be edited by the user. Local exceptions
-# and enhancements are better placed in user.action,
-# the match-all section has been moved to match-all.action.
-#
-# Copyright : Written by and Copyright (C) 2001-2013 the
-# Privoxy team. http://www.privoxy.org/
-#
-# Feedback welcome, for details please have a look at:
-# http://www.privoxy.org/user-manual/contact.html
-#
-# The current development version of this file is located:
-# http://ijbswa.cvs.sourceforge.net/*checkout*/ijbswa/current/default.action.master
-#
-#############################################################################
-# Syntax
-#############################################################################
-#
-# A much better explanation can be found in the user manual which is
-# part of the distribution and can be found at http://www.privoxy.org/user-manual
-#
-# To determine which actions apply to a request, the URL of the request is
-# compared to all patterns in this file. Every time it matches, the list of
-# applicable actions for this URL is incrementally updated. You can trace
-# this process by visiting http://config.privoxy.org/show-url-info
-#
-# There are 4 types of lines in this file: comments (like this line),
-# actions, aliases and patterns, all of which are explained below.
-#
-#############################################################################
-# Pattern Syntax
-#############################################################################
-#
-# 1. On Domains and Paths
-# -----------------------
-#
-# Generally, a pattern has the form <domain>/<path>, where both the <domain>
-# and <path> part are optional. The pattern matching syntax is different for
-# each. If you only specify a domain part, the "/" can be left out, but it is
-# required for the path part.
-#
-# www.example.com
-# is a domain-only pattern and will match any request to www.example.com
-#
-# www.example.com/
-# means exactly the same (but is slightly less efficient)
-#
-# www.example.com/index.html
-# matches only the document /index.html on www.example.com
-#
-# /index.html
-# matches the document /index.html, regardless of the domain
-#
-# index.html
-# matches nothing, since it would be interpreted as a domain name and
-# there is no top-level domain called ".html".
-#
-# 2. Domain Syntax
-# ----------------
-#
-# The matching of the domain part offers some flexible options: If the
-# domain starts or ends with a dot, it becomes unanchored at that end:
-#
-# www.example.com
-# matches only www.example.com
-#
-# .example.com
-# matches any domain that ENDS in .example.com
-#
-# www.
-# matches any domain that STARTS with www.
-#
-# .example.
-# matches any domain that CONTAINS example
-#
-#
-# Additionally, there are wildcards that you can use in the domain names
-# themselves. They work pretty similar to shell wildcards: "*" stands for
-# zero or more arbitrary characters, "?" stands for one, and you can define
-# character classes in square brackets and they can be freely mixed:
-#
-# ad*.example.com
-# matches adserver.example.com, ads.example.com, etc but not sfads.example.com
-#
-# *ad*.example.com
-# matches all of the above
-#
-# .?pix.com
-# matches www.ipix.com, pictures.epix.com, a.b.c.d.e.upix.com etc
-#
-# www[1-9a-ez].example.com
-# matches www1.example.com, www4.example.com, wwwd.example.com,
-# wwwz.example.com etc, but not wwww.example.com
-#
-# You get the idea?
-#
-# 2. Path Syntax
-# --------------
-#
-# Paths are specified as full regular expressions, and are more flexible than
-# the domain syntax above. A comprehensive discussion of regular expressions
-# wouldn't fit here.
-#
-# Perl compatible regular expressions are used. See the pcre/docs/ direcory or
-# man perlre (also available at http://perldoc.perl.org/perlre.html) for
-# details. The appendix to our User Manual also has some detail.
-#
-# Please note that matching in the path is CASE INSENSITIVE by default, but
-# you can switch to case sensitive by starting the pattern with the "(?-i)"
-# switch:
-#
-# www.example.com/(?-i)PaTtErN.*
-# will match only documents whose path starts with PaTtErN in exactly this
-# capitalization.
-#
-# Partially case-sensitive and partially case-insensitive patterns are
-# possible, but the rules about splitting them up are extremely complex
-# - see the PCRE documentation for more information.
-#
-#############################################################################
-# Action Syntax
-#############################################################################
-#
-# There are 3 kinds of actions:
-#
-# Boolean (e.g. "handle-as-image"):
-# +name # enable
-# -name # disable
-#
-# Parameterized (e.g. "hide-user-agent"):
-# +name{param} # enable and set parameter to "param"
-# -name # disable
-#
-# Multi-value (e.g. "add-header", "filter"):
-# +name{param} # enable and add parameter "param"
-# -name{param} # remove the parameter "param"
-# -name # disable totally
-#
-# The default (if you don't specify anything in this file) is not to take
-# any actions - i.e completely disabled, so Privoxy will just be a
-# normal, non-blocking, non-anonymizing proxy. You must specifically
-# enable the privacy and blocking features you need (although the
-# provided default actions file will do that for you).
-#
-# Later actions always override earlier ones. For multi-valued actions,
-# the actions are applied in the order they are specified.
-#
-#############################################################################
-# Valid actions are:
-#############################################################################
-#
-# +add-header{Name: value}
-# Adds the specified HTTP header, which is not checked for validity.
-# You may specify this many times to specify many headers.
-#
-# +block{reason}
-# Block this URL. Instead of forwarding the request, Privoxy will
-# send a "block" page containing the specified reason.
-#
-# +change-x-forwarded-for{add}
-# +change-x-forwarded-for{block}
-# Adds or blocks the "X-Forwarded-For:" HTTP header in client
-# requests.
-#
-# +client-header-filter{name}
-# All client headers to which this action applies are filtered on-the-fly
-# through the specified regular expression based substitutions.
-#
-# Client-header filters predefined in the supplied default.filter include:
-#
-# hide-tor-exit-notation: Removes the Tor exit node notation in Host and Referer headers.
-# privoxy-control: Removes X-Privoxy-Control headers.
-#
-# +client-header-tagger{string}
-# Tag requests based on their headers. Client headers to which this
-# action applies are filtered on-the-fly through the specified regular
-# expression based substitutions, the result is used as a tag.
-# Client-header taggers are the first actions that are executed and their
-# tags can be used to control every other action.
-#
-# Client-header taggers predefined in the supplied default.filter include:
-#
-# image-requests: Tags detected image requests as "IMAGE-REQUEST".
-# css-requests: Tags detected CSS requests as "CSS-REQUEST".
-# range-requests: Tags range requests as "RANGE-REQUEST".
-# client-ip-address: Tags the request with the client's IP address.
-# http-method: Tags the request with its HTTP method.
-# allow-post: Tags POST requests as "ALLOWED-POST".
-# complete-url: Tags the request with the whole request URL.
-# user-agent: Tags the request with the complete User-Agent header.
-# referer: Tags the request with the complete Referer header.
-# privoxy-control: Creates tags with the content of X-Privoxy-Control headers.
-#
-# +content-type-overwrite
-# Replaces the "Content-Type:" HTTP server header, so that unwanted
-# download menus will not pop up, or changes the browser's rendering mode.
-#
-# +crunch-client-header{string}
-# Deletes every header sent by the client that contains the string the
-# user supplied as parameter.
-#
-# +crunch-if-none-match
-# Deletes the "If-None-Match:" HTTP client header.
-#
-# +crunch-server-header{string}
-# Deletes every header sent by the server that contains the string the
-# user supplied as a parameter.
-#
-# +deanimate-gifs{last}
-# +deanimate-gifs{first}
-# Deanimate all animated GIF images, i.e. reduce them to their last
-# frame. This will also shrink the images considerably. (In bytes,
-# not pixels!)
-# If the option "first" is given, the first frame of the animation
-# is used as the replacement. If "last" is given, the last frame of
-# the animation is used instead, which propably makes more sense for
-# most banner animations, but also has the risk of not showing the
-# entire last frame (if it is only a delta to an earlier frame).
-#
-# +downgrade-http-version
-# Downgrade HTTP/1.1 client requests to HTTP/1.0 and downgrade the
-# responses as well. Use this action for servers that use HTTP/1.1
-# protocol features that Privoxy currently can't handle yet.
-#
-# +fast-redirects{check-decoded-url}
-# +fast-redirects{simple-check}
-# Many sites, like yahoo.com, don't just link to other sites.
-# Instead, they will link to some script on their own server,
-# giving the destination as a parameter, which will then redirect
-# you to the final target.
-#
-# URLs resulting from this scheme typically look like:
-# http://some.place/some_script?http://some.where-else
-#
-# Sometimes, there are even multiple consecutive redirects encoded
-# in the URL. These redirections via scripts make your web browsing
-# more traceable, since the server from which you follow such a link
-# can see where you go to. Apart from that, valuable bandwidth and
-# time is wasted, while your browser asks the server for one redirect
-# after the other. Plus, it feeds the advertisers.
-#
-# The +fast-redirects{check-decoded-url} option enables interception of
-# these requests by Privoxy, who will cut off all but the last valid URL
-# in the request and send a local redirect back to your browser without
-# contacting the intermediate sites. NOTE: Syntax change as of v.3.0.4.
-#
-# +filter{name}
-# All files of text-based type, most notably HTML and JavaScript, to which
-# this action applies, can be filtered on-the-fly through the specified
-# regular expression based substitutions. (Note: plain text documents are
-# exempted from filtering, because web servers often use the text/plain
-# MIME type for all files whose type they don't know.) By default,
-# filtering works only on the raw document content itself (that which can
-# be seen with View Source), not the headers. Repeat for multiple filters.
-# Use with caution: filters can be very intrusive.
-#
-# Filters predefined in the supplied default.filter include:
-#
-# js-annoyances: Get rid of particularly annoying JavaScript abuse.
-# js-events: Kill JavaScript event bindings and timers (Radically destructive! Only for extra nasty sites).
-# html-annoyances: Get rid of particularly annoying HTML abuse.
-# content-cookies: Kill cookies that come in the HTML or JS content.
-# refresh-tags: Kill automatic refresh tags if refresh time is larger than 9 seconds.
-# unsolicited-popups: Disable only unsolicited pop-up windows.
-# all-popups: Kill all popups in JavaScript and HTML.
-# img-reorder: Reorder attributes in <img> tags to make the banners-by-* filters more effective.
-# banners-by-size: Kill banners by size.
-# banners-by-link: Kill banners by their links to known clicktrackers.
-# webbugs: Squish WebBugs (1x1 invisible GIFs used for user tracking).
-# tiny-textforms: Extend those tiny textareas up to 40x80 and kill the hard wrap.
-# jumping-windows: Prevent windows from resizing and moving themselves.
-# frameset-borders: Give frames a border and make them resizable.
-# iframes: Removes all detected iframes. Should only be enabled for individual sites.
-# demoronizer: Fix MS's non-standard use of standard charsets.
-# shockwave-flash: Kill embedded Shockwave Flash objects.
-# quicktime-kioskmode: Make Quicktime movies saveable.
-# fun: Text replacements for subversive browsing fun!
-# crude-parental: Crude parental filtering. Note that this filter doesn't work reliably.
-# ie-exploits: Disable some known Internet Explorer bug exploits.
-# site-specifics: Cure for site-specific problems. Don't apply generally!
-# no-ping: Removes non-standard ping attributes in <a> and <area> tags.
-# google: CSS-based block for Google text ads. Also removes a width limitation and the toolbar advertisement.
-# yahoo: CSS-based block for Yahoo text ads. Also removes a width limitation.
-# msn: CSS-based block for MSN text ads. Also removes tracking URLs and a width limitation.
-# blogspot: Cleans up some Blogspot blogs. Read the fine print before using this.
-#
-# +force-text-mode
-# Declares a document as plain text, even if the "Content-Type:" isn't detected
-# as such.
-#
-# +forward-override{forward .}
-# +forward-override{forward 127.0.0.1:8123}
-# +forward-override{forward-socks4a 127.0.0.1:9050 .}
-# +forward-override{forward-socks4a 127.0.0.1:9050 proxy.example.org:8000}
-# +forward-override{forward-socks5 127.0.0.1:9050 .}
-# +forward-override{forward-socks5 127.0.0.1:9050 proxy.example.org:8000}
-# This action overrules the forward directives in the configuration file.
-#
-# +handle-as-empty-document
-# This action alone doesn't do anything noticeable. It just marks URLs. If
-# the block action also applies, the presence or absence of this mark
-# decides whether an HTML "blocked" page, or an empty document will be sent
-# to the client as a substitute for the blocked content.
-#
-# +handle-as-image
-# Treat this URL as an image. This only matters if it's also "+block"ed,
-# in which case a "blocked" image can be sent rather than a HTML page.
-# See +set-image-blocker{} for the control over what is actually sent.
-#
-# +hide-accept-language{lang}
-# +hide-accept-language{block}
-# Deletes or replaces the "Accept-Language:" HTTP header in client
-# requests.
-#
-# +hide-content-disposition{block}
-# +hide-content-disposition{string}
-# Deletes or replaces the "Content-Disposition:" HTTP header set by some
-# servers. This can be used to prevent download menus for content you
-# prefer to view inside the browser, for example.
-#
-# +hide-from-header{block}
-# +hide-from-header{spam@sittingduck.xqq}
-# If the browser sends a "From:" header containing your e-mail address,
-# either completely removes the header ("block"), or change it to the
-# specified e-mail address.
-#
-# +hide-if-modified-since{block}
-# +hide-if-modified-since{-60}
-# Deletes the "If-Modified-Since:" HTTP client header or modifies its
-# value, preventing another way to track users.
-#
-# +hide-referer{block}
-# +hide-referer{forge}
-# +hide-referer{http://nowhere.com}
-# Don't send the "Referer:" (sic) header to the web site. You can
-# block it, forge a URL to the same server as the request (which is
-# preferred because some sites will not send images otherwise) or
-# set it to a constant string.
-#
-# +hide-referrer{...}
-# Alternative spelling of +hide-referer. Has the same parameters,
-# and can be freely mixed with, "+hide-referer". ("referrer" is the
-# correct English spelling, however the HTTP specification has a
-# bug - it requires it to be spelt "referer").
-#
-# +hide-user-agent{browser-type}
-# Change the "User-Agent:" header so web servers can't tell your
-# browser type. (Breaks many web sites). Specify the user-agent
-# value you want - e.g., to pretend to be using Netscape on Linux:
-# +hide-user-agent{Mozilla (X11; I; Linux 2.0.32 i586)}
-# Or to identify yourself explicitly as a Privoxy user:
-# +hide-user-agent{Privoxy/1.0}
-# (Don't change the version number from 1.0 - after all, why tell them?)
-#
-# +limit-connect{portlist}
-#
-# By default, i.e. if no limit-connect action applies, Privoxy
-# allows HTTP CONNECT requests to all ports. Use limit-connect
-# if fine-grained control is desired for some or all destinations.
-# The CONNECT methods exists in HTTP to allow access to secure websites
-# ("https://" URLs) through proxies. It works very simply: the proxy
-# connects to the server on the specified port, and then short-circuits
-# its connections to the client and to the remote server. This means
-# CONNECT-enabled proxies can be used as TCP relays very easily. Privoxy
-# relays HTTPS traffic without seeing the decoded content. Websites can
-# leverage this limitation to circumvent Privoxy's filters. By specifying
-# an invalid port range you can disable HTTPS entirely.
-#
-# +limit-connect{443} # Only port 443 is OK.
-# +limit-connect{80,443} # Ports 80 and 443 are OK.
-# +limit-connect{-3, 7, 20-100, 500-} # Ports less than 3, 7, 20 to 100 and above 500 are OK.
-# +limit-connect{-} # All ports are OK
-# +limit-connect{,} # No HTTPS/SSL traffic is allowed
-#
-# +overwrite-last-modified{block}
-# +overwrite-last-modified{reset-to-request-time}
-# +overwrite-last-modified{randomize}
-# Removing the "Last-Modified:" header is useful for filter testing, where
-# you want to force a real reload instead of getting status code "304",
-# which would cause the browser to reuse the old version of the page.
-#
-# The "randomize" option overwrites the value of the "Last-Modified:"
-# header with a randomly chosen time between the original value and the
-# current time. In theory the server could send each document with a
-# different "Last-Modified:" header to track visits without using cookies.
-# "Randomize" makes it impossible and the browser can still revalidate
-# cached documents.
-#
-# "reset-to-request-time" overwrites the value of the "Last-Modified:"
-# header with the current time. You could use this option together with
-# hide-if-modified-since to further customize your random range.
-#
-# +prevent-compression
-# Prevent the website from compressing the data. Some websites do
-# that, which is a problem for Privoxy when built without zlib support,
-# since +filter and +gif-deanimate will not work on compressed data.
-# Will slow down connections to those websites, though.
-#
-# +server-header-filter{name}
-# All server headers to which this action applies are filtered on-the-fly
-# through the specified regular expression based substitutions.
-#
-# Server-header filters predefined in the supplied default.filter include:
-#
-# x-httpd-php-to-html: Changes the Content-Type header from x-httpd-php to html.
-# html-to-xml: Changes the Content-Type header from html to xml.
-# xml-to-html: Changes the Content-Type header from xml to html.
-# less-download-windows: Prevent annoying download windows for content types the browser can handle itself.
-# privoxy-control: Removes X-Privoxy-Control headers.
-#
-# +server-header-tagger{content-type}
-# Server headers to which this action applies are filtered on-the-fly
-# through the specified regular expression based substitutions, the result
-# is used as a tag. Server-header taggers are executed before all other
-# header actions that modify server headers. Their tags can be used to
-# control all of the other server-header actions, the content filters and
-# the crunch actions (redirect and block).
-#
-# Server-header taggers predefined in the supplied default.filter include:
-#
-# content-type: Tags the request with the content type declared by the server.
-# privoxy-control: Creates tags with the content of X-Privoxy-Control headers.
-#
-# +session-cookies-only
-# If the website sets cookies, make sure they are erased when you exit
-# and restart your web browser. This makes profiling cookies useless,
-# but won't break sites which require cookies so that you can log in
-# or for transactions.
-#
-# +set-image-blocker{blank}
-# +set-image-blocker{pattern}
-# +set-image-blocker{<URL>} with <url> being any valid image URL
-# Decides what to do with URLs that end up tagged with {+block +handle-as-image}.
-# There are 4 options:
-# * "-set-image-blocker" will send a HTML "blocked" page, usually
-# resulting in a "broken image" icon.
-# * "+set-image-blocker{blank}" will send a 1x1 transparent image
-# * "+set-image-blocker{pattern}" will send a 4x4 grey/white pattern
-# which is less intrusive than the logo but easier to recognize
-# than the transparent one.
-# * "+set-image-blocker{<URL>}" will send a HTTP temporary redirect
-# to the specified image URL.
-#
-#
-# +crunch-outgoing-cookies
-# Prevent the website from reading cookies
-#
-# +crunch-incoming-cookies
-# Prevent the website from setting cookies
-#
-# +redirect{<URL>}
-# +redirect{<pcrs command>}
-# Convinces the browser that the requested document has been moved to
-# another location and the browser should get it from the specified
-# URL.
-#
-#############################################################################
-
-#############################################################################
-# Settings -- Don't change.
-#############################################################################
-{{settings}}
-#############################################################################
-for-privoxy-version=3.0.11
-
-#############################################################################
-# Aliases
-#############################################################################
-{{alias}}
-#############################################################################
-#
-# You can define a short form for a list of permissions - e.g., instead
-# of "-crunch-incoming-cookies -crunch-outgoing-cookies -filter -fast-redirects",
-# you can just write "shop". This is called an alias.
-#
-# Currently, an alias can contain any character except space, tab, '=', '{'
-# or '}'.
-# But please use only 'a'-'z', '0'-'9', '+', and '-'.
-#
-# Alias names are not case sensitive.
-#
-# Aliases beginning with '+' or '-' may be used for system action names
-# in future releases - so try to avoid alias names like this. (e.g.
-# "+crunch-all-cookies" below is not a good name)
-#
-# Aliases must be defined before they are used.
-#
-
-# These aliases just save typing later:
-#
-+crunch-all-cookies = +crunch-incoming-cookies +crunch-outgoing-cookies
--crunch-all-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies
- allow-all-cookies = -crunch-all-cookies -session-cookies-only
- allow-popups = -filter{all-popups} -filter{unsolicited-popups}
-+block-as-image = +block{Blocked image request.} +handle-as-image
--block-as-image = -block
-
-# These aliases define combinations of actions
-# that are useful for certain types of sites:
-#
-fragile = -block -crunch-all-cookies -filter -fast-redirects -hide-referer
-shop = -crunch-all-cookies allow-popups
-
-# Your favourite blend of filters:
-#
-myfilters = +filter{html-annoyances} +filter{js-annoyances} +filter{all-popups}\
- +filter{webbugs} +filter{banners-by-size}
-
-# Allow ads for selected useful free sites:
-#
-allow-ads = -block -filter{banners-by-size} -filter{banners-by-link}
-
-################
-#
-# Cautious settings -- safe for all sites, but offer little privacy protection
-#
-{ \
-+change-x-forwarded-for{block} \
-+client-header-tagger{css-requests} \
-+client-header-tagger{image-requests} \
-+hide-from-header{block} \
-+set-image-blocker{pattern} \
-}
-standard.Cautious
-
-################
-#
-# Medium settings -- safe for most sites, with reasonable protection/damage tradeoff
-#
-{ \
-+change-x-forwarded-for{block} \
-+client-header-tagger{css-requests} \
-+client-header-tagger{image-requests} \
-+deanimate-gifs{last} \
-+filter{refresh-tags} \
-+filter{img-reorder} \
-+filter{banners-by-size} \
-+filter{webbugs} \
-+filter{jumping-windows} \
-+filter{ie-exploits} \
-+hide-from-header{block} \
-+hide-referrer{conditional-block} \
-+session-cookies-only \
-+set-image-blocker{pattern} \
-}
-standard.Medium
-
-################
-#
-# Advanced settings -- reasonable privacy protection but
-# require some exceptions for trusted sites, most likely
-# because of cookies or SSL. Also testing ground for
-# new options.
-#
-# CAUTION: These settings can still be subverted by a
-# misconfigured client that executes code from untrusted
-# sources.
-#
-{ \
-+change-x-forwarded-for{block} \
-+client-header-tagger{css-requests} \
-+client-header-tagger{image-requests} \
-+crunch-if-none-match \
-+crunch-outgoing-cookies \
-+crunch-incoming-cookies \
-+deanimate-gifs{last} \
-+fast-redirects{check-decoded-url} \
-+filter{html-annoyances} \
-+filter{content-cookies} \
-+filter{refresh-tags} \
-+filter{img-reorder} \
-+filter{banners-by-size} \
-+filter{banners-by-link} \
-+filter{webbugs} \
-+filter{jumping-windows} \
-+filter{frameset-borders} \
-+filter{quicktime-kioskmode} \
-+hide-if-modified-since{-60} \
-+hide-from-header{block} \
-+hide-referrer{conditional-block} \
-+limit-connect{,} \
-+overwrite-last-modified{randomize} \
-+set-image-blocker{pattern} \
-}
-standard.Advanced
-
-#############################################################################
-# These extensions belong to images:
-#############################################################################
-{+handle-as-image -filter}
-#############################################################################
-/.*\.(gif|jpe?g|png|bmp|ico)($|\?)
-
-#############################################################################
-# These don't:
-#############################################################################
-{-handle-as-image}
-/.*\.(js|php|css|.?html?)
-
-#############################################################################
-# These belong to multimedia files of which Firefox occasionally only
-# requests parts. #2816708
-#############################################################################
-{-filter -deanimate-gifs}
-# Sticky Actions = -filter -deanimate-gifs
-# URL = http://www.example.org/foo/bar.ogg
-# URL = http://www.example.net/bar.ogv
-/.*\.og[gv]$
-
-#############################################################################
-# Generic block patterns by host:
-#############################################################################
-{+block{Host matches generic block pattern.}}
-ad*.
-.*ads.
-.ad.?.
-.ad.[a-ik-z][a-oq-z].
-.ad.jp.*.
-.ad.???*.
-# Blocked URL = http://alternativos.iw-advertising.com/
-.*advert*.
-*banner*.
-count*.
-*counter.
-promotions.
-# Blocked URL = http://metrics.performancing.com/
-metrics.
-
-#############################################################################
-# Generic unblockers by host:
-#############################################################################
-{-block}
-# Sticky Actions = -block
-adsl.
-ad[udmw]*.
-adbl*.
-adam*.
-adapt*.
-adob*.
-adrenaline.
-adtp*.
-adv[oia]*.
-adventure*.
-.*road*.
-.olympiad*.
-.*load*.
-.*[epu]ad*.
-county*.
-countr*.
-# URL = http://metrics.torproject.org/consensus-graphs.html
-metrics.torproject.org/
-# URL = http://linuxcounter.net/
-linuxcounter.net/
-
-#############################################################################
-# Generic block patterns by path:
-#############################################################################
-{+block{Path matches generic block pattern.}}
-/(.*/)?ad(\?|/|s|v|_?(image|se?rv|box)|cycle|rotate|mentor|click|f[ra]m|script|stream|fetch|log|space)
-# Blocked URL = http://www.example.org/adimage
-# Blocked URL = http://www.example.org/adspace
-/phpads(new)?/
-/(.*/)?(ad|all|nn|db|promo(tion)?)?[-_]?banner
-/(.*/)?(publicite|werbung|rekla(me|am)|annonse|maino(kset|nta|s)?/)
-/.*(count|track|compteur|(?<!relo)adframe|adse?rve?|banner)(er|run)?(\?|\.(pl|cgi|exe|dll|asp|php|cpt))
-/(.*/)?clicktrack
-/(.*/)?(full)?pop[-_]?(up|over|under|open(er)?)?s?(/|\.)
-/(.*/)?((flash)?pop|live(cnt|count(er)?)).*\.(js|php|cgi)
-# Blocked URL = http://thequietus.com/openx/www/delivery/ck.php?n=ae777ee2&cb=INSERT_RANDOM_NUMBER_HERE
-/openx/www/delivery/
-# Blocked URL = http://mem.brandreachsys.com/www/delivery/lg.php?bannerid=13783&campaignid=0&zoneid=550&cb=f22df9acaa
-/.*bannerid=
-
-#############################################################################
-# Generic unblockers by path:
-#############################################################################
-{-block}
-# Sticky Actions = -block
-/.*ad(sl|v(i[cs]|o|an|ertencia|ent|.*search|erse)) # advice/advisories/advan*/advertencia (spanish) adverse
-/.*(lo|thre|he|d|gr|l|ro|re|squ|class(ified)?)ads
-/.*account
-support./(.*/)?track
-# URL = http://repo.or.cz/r/vlc.git/objects/ad/1d316efd83157217fdf9b5d417dddca54bbf41
-/.*\.git/objects/
-# URL = http://code.google.com/p/sm-ssc/wiki/Bugtracker?tm=3
-/.*Bugtracker
-# URL = http://tiggit.net/forum/jscripts/popup_menu.js?ver=1600
-# URL = http://www.av-comparatives.org/forum/wcf/js/PopupMenuList.class.js
-# URL = http://oystatic.ignimgs.com/src/ve3d/sites/ve3d.ign.com/js/production/popupmenu.js
-# URL = http://www.cutepdf.com/include/popmenu.js
-# URL = http://www.cutepdf.com/include/popmenuv.js
-/(.*/)?pop[a-z_-]*menu
-
-#############################################################################
-# Exceptions for academia and non-profits
-#############################################################################
-.edu
-.ac.*/
-.uni-*.de
-.tu-*.de
-.gov
-.hs-*.de
-.fh-*.de
-# URL = http://www.gnu.org/graphics/gnu-head-banner.png
-.org/.*(image|banner)
-
-#############################################################################
-# Catch-all for false-positives that are just TOO obvious to let go
-#############################################################################
-{+block{Catch-all block for false-positives.}}
-.ads[erv][rv]*.
-# Blocked URL = http://ads.facebook.com/ads/spreadshirt/banner120x600.jpg
-.ads.
-/(.*/)?ad(se?rv|click|stream|image|log|farm|script)
-# Blocked URL = http://www.torrentportal.com/topad.html
-/.*(top|bottom|left|right|text)_?ad
-
-#############################################################################
-# Catch-all exceptions
-#############################################################################
-{-block}
-# Sticky Actions = -block
-
-# URL = http://support.apple.com/downloads/DL985/en_US/RemoteDesktopAdmin332.dmg
-/.*desktopadmin
-# URL = http://www.rai.it/dl/RaiTV/popup/player_radio.html?v=9
-# URL = http://www.rai.tv/dl/RaiTV/popup/player_radio.html?v=9
-# URL = http://static.bbci.co.uk/radio/player/popup.js
-/(.*/)?(player|radio|tv|television).?pop
-/(.*/)?pop[-_]?(up|over|under|open(er)?)?s?(/|\.)(player|radio|tv|television)
-# URL = http://popplers5.bandcamp.com/download/track?enc=mp3-128&fsig=bad421a4c31dda49faceefb0f3923630&id=342903379&stream=1&ts=1355881937.0
-/.*download
-
-#----------------------------------------------------------------------------
-# Misc Web-bugs, JS and just plain Junk. Images here aren't normal images.
-#----------------------------------------------------------------------------
-{+block{Might be a web-bug.} +handle-as-empty-document -handle-as-image}
-/b/ss/.+
-/HG\?hc=
-.visistat.com
-.google-analytics./
-.overture.
-.doubleclick.net/adi
-.doubleclick.net/(.*/)?adj/
-view.atdmt.com/(.*/)?iview/
-tracking.
-/(.*/)?adjs\.php\?
-.bc.yahoo.com/b\?P=
-x*.alexa.com
-/event.ng/
-# MASTER# BLOCK-REFERRER: http://www.play.com/PC/PCs/-/653/860/-/12068815/Asus-VK192S-19-Widescreen-LCD-Monitor-With-Webcam-White/Product.html
-# Blocked URL = http://sd.play.com/eluminate?ci=90121638&st=1296424516858&vn1=4.3.1&ec=UTF-8&vn...
-# Blocked URL = http://data.coremetrics.com/cm?ci=90121638&st=1296435164623&vn1=4.3.1&ec=UTF-8&vn...
-/(eluminate|cm)\?[tc]i=\d+&st=\d+&
-.snapfiles.net/rotation/.*\.asp
-spa.snap.com/
-.insitemetrics.com/
-.extreme-dm.com/
-stats.reinvigorate.net/
-.getclicky.com/
-.quantserve.com
-# Blocked URL = http://media.adrevolver.com/adrevolver/trace?sip=123&cpy=123
-media.adrevolver.com/
-# Blocked URL = http://static.chartbeat.com/js/chartbeat.js
-.chartbeat.com/(.*/)?chartbeat\.js$
-# Blocked URL = http://js.adlink.net/js?lang=de&s=duesseldorf-international.de&z=home&d=1274103403564
-js.adlink.net/
-# Blocked URL = nl.sitestat.com/rdw/rdw/s?www.nl.voertuigeigenaar.voertuigeigenaar&ns__t=1274099350343
-.sitestat.com/
-# Blocked URL = http://pagead.googlesyndication.example.com/foo/bar/baz.js
-pagead*.googlesyndication./.*\.js
-scripts.chitika.net/.*\.js
-.adinterax.com/.*\.js
-# Blocked URL = http://partner.googleadservices.com/gampad/google_service.js
-# Blocked URL = http://partner.googleadservices.com/gampad/google_ads.js
-# Blocked URL = http://partner.googleadservices.com/gampad/slotdata.js?callback=_GA_googleAdData.setAdSlotAttributes&client=ca-gam-lexico
-.googleadservices.com/gampad/.*\.js
-# Blocked URL = http://richmedia.yimg.com/js/123/personnals_banners/PER_happy_sara1_4_425x600/ad.js?q=123
-/.*/ad\.js\?
-# Blocked URL = http://i.cmpnet.com/shared/omniture/s_code_remote.js
-/.*omniture.*\.js
-# Blocked URL = http://gadk.hit.gemius.pl/*/_1274097577014/rexdot.gif?l=30&id=..DlR.vCLZGB56RmfkYNSWZVLSqB3ueYOP.Oec5WWiv.h7&fr=1&fv=WIN%2010%2C0%2C45%2C2&tz=-120&href=http%3A//www.baadgalleri.dk/&ref=&screen=1440x900&col=32
-.gemius.pl/
-# Blocked URL = http://farm.plista.com/widgetdata.php?clientrev=12&domainid=4211&publickey=fdc5a7f9d15be004aa03fc4d&cb=PLISTA5_7ed57c93e0d17&requestID=5&5=widgetintegration%3A%02pictureads%03&6=pictureads%3A%1Cpictureid%1F%026716%03%1Eimgdim%1F%1Cx%1F547%1Ey%1F410%1D%1Ewidgetname%1F%02pictureads%03%1D
-farm.plista.com/widgetdata.php
-# Blocked URL = http://ib.adnxs.com/bounce?%2Fseg%3Fadd%3D279412
-.adnxs.com/
-# Blocked URL = http://service.maxymiser.net/cdn/zoover/js/mmcore.js
-service.maxymiser.net/
-# Blocked URL = http://tcr.tynt.com/javascripts/Tracer.js?user=cT9yCKGeer3PWlab7jrHtB&s=62
-.tynt.com/
-# Blocked URL = http://pool.sanoma.adhese.com/tag/tag.js
-pool.*.adhese.com/
-# Blocked URL = http://www.canon.nl/scripts/webtrends.js
-/scripts/webtrends\.js
-# Blocked URL = http://oskar.tradera.com/script.js
-oskar.tradera.com/
-
-{+block{Might be a web-bug.} -handle-as-empty-document +handle-as-image}
-/(.*/)?__utm.gif\?
-/.*\.gif\?D=DM
-#stats.surfaid.ihost.com/(crc/)?images/(bounce/)?uc.GIF
-# Blocked URL = http://stats.surfaid.ihost.com/crc/images/bounce/uc.GIF
-# Blocked URL = http://stats.surfaid.ihost.com/rc/images/bounce/uc.GIF
-stats./c?rc/.*/uc.gif
-/(.*/)?dcs.gif\?&?dcs
-/(.*/)?c(lear)?\.gif\?.
-#/(.*/)?(clear|(trans_?1x|blank)?1).gif
-/(.*/)?(clear|blank|(trans_?|1x)?1).gif\?.
-stats./.*\.gif\?
-# Blocked URL = http://ad.yieldmanager.com/pixel?id=123456&t=2
-.yieldmanager.com/pixel\?
-# Blocked URL = http://a.analytics.yahoo.com/p.pl?a=1000226660965&js=no
-# Blocked URL = http://s.analytics.yahoo.com/fpc.pl?a=1000461640983&v=4.43&enc=utf-8&f=http%3A//www.zoover.nl/nederland/limburg/maasbracht/weer%23tabs&b=Het%20Weer%20in%20Maasbracht.%20Bekijk%20Weersverwachting%20van%20Maasbracht%20%7C%20Zoover%23tabs&flv=WIN%2010%2C0%2C45%2C2&d=Mon%2C%2017%20May%202010%2014%3A09%3A26%20UTC&n=-2&g=nl&h=Y&j=1440x900&k=32&l=true&ittidx=0&fpc=uP04C7j4%7ClaDQjglKaa%7Cfses1000461640983%3D%7CkbSSgv6Jaa%7CuP04C7j4%7Cfvis1000461640983%3DZj1odHRwJTNBLy93d3cuem9vdmVyLm5sLyZiPVpvb3ZlciUyMCU3QyUyMFZha2FudGllYmVvb3JkZWxpbmdlbiUyMHZvb3IlMjBlbiUyMGRvb3IlMjByZWl6aWdlcnM%3D%7C8sHTYo10oM%7C8sHTYo10oM%7C8sHTYo10oM%7CT%7C8sHTYo10oM%7C8sHTYo10oM
-.analytics.yahoo.com
-# Blocked URL = http://go.idmnet.bbelements.com/please/showit/46/1/1/1/?typkodu=img&keywords=
-go.idmnet.bbelements.com/please/showit/
-# Blocked URL = http://gm-link.com/tm_image.asp?c=12345&x=0&u=email@address.tld&orc.gif
-gm-link.com/
-
-#############################################################################
-# Site-specific block patterns;
-#############################################################################
-{+block{Domain parking site}}
-# Blocked URL = http://www.sedoparking.com/www.inetcat.org
-.sedoparking.com/
-# Blocked URL = http://landing.trafficz.com/index.php?domain=www.inetcat.org
-landing.trafficz.com/
-# Blocked URL = http://www.searchnut.com/?domain=www.inetcat.org
-.searchnut.com/\?domain
-# Blocked URL = http://wwwz.websearch.verizon.net/search?qo=www.qwetyhjkl.com
-wwwz.websearch.verizon.net/search\?qo=
-
-{+block{Site-specific block pattern matches.}}
-# Blocked URL = http://www.hitbox.com/foobar
-.hitbox.com
-# Blocked URL = http://www..the-gadgeteer.com/cgi-bin/getimage.cgi/
-.the-gadgeteer.com/cgi-bin/getimage.cgi/
-# Blocked URL = http://dest.travelocity.com/website/destinations/images/partner_frommers.gif
-# Blocked URL = http://dest.travelocity.com/website/destinations/images/travelex_logo.gif
-dest.travelocity.com/website/destinations/images/partner_frommers.gif
-dest.travelocity.com/website/destinations/images/travelex_logo.gif
-i.imdb.com/Photos/CMSIcons/(?!buttons|emoticons)
-rcm.amazon.com
-# Blocked URL = http://www.nytimes.com/adx/foo
-.nytimes.com/adx/
-#www.popupad.net/ats/
-.adtrak.net
-.elitemediagroup.net
-.popuptraffic.com
-.hit-now.com
-[a-v]*.valueclick.com
-.cpays.com
-.oxado.com
-.adult*finder.com
-/scripts/cms/xcms.asp
-/.*intellitxt/
-.intellitxt.com
-.kontera.com
-.tribalfusion.com/ctxt
-.klipmart.com
-ad*.com.com
-sales.liveperson.net
-.iad.liveperson.net
-.coremetrics.com/
-.realmedia.com/data/
-.revsci.net
-.clickability.com
-/.*clickability(.com)?/
-stats.*.ihost.com
-.2o7.net
-.webtrends.com
-.tacoda.
-ad.theadhost.com
-.adbureau.net
-.adgardener.com
-.revenue.net
-.geocities.com/js_source
-.dartsearch.net
-.zedo.com
-.trk.sodoit.com/
-.espace.netavenir.com
-.hitfarm.com
-.topnemo.com/engine
-.top100categories.com/engine
-/(t|search)\.php\?uid=ws[a-z0-9]+\.[a-z0-9]+
-.adinterax.com/(?!(.*)\.(js|gif|jpg))
-img.bluehost.com
-linuxinsider.com/images/sda/
-[a-z].clickdensity.com
-.widgetbucks.com
-# Blocked URL = http://img.dailymail.co.uk/i/promo_boxes/groTime_promo.jpg
-# Blocked URL = http://img.dailymail.co.uk/i/promo_boxes/idealhome_promo.gif
-img.dailymail.co.uk/i/promo_boxes/
-# Blocked URL = http://cache.opt.fimserve.com/contents/325/84/84325/LIN728x90.swf?%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20clickTag=http%3A//delb.opt.fimserve.com/lnk/%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Fk%3DODk1ODc7Mzs0MDA7ODQzMjU7Zi44LjkuaHYuaGdseHBzbG9uaCBvem0uNzYuZkBAeHp5b3ZAQGxobmxAQCs4XzlAQHhsbnN2biBoZHZ3dm1AQGh2QEBmOzEyMTQ1MTE1MjgzMzA7Mjs7MTMxfDsxOzQ7NzIxODs4ODAyODc3NQ%3D%3Dhref%3Dhttp%3A//www.myspace.com/liveinnordics&clickTarget=_new
-.fimserve.com
-# Blocked URL = http://static.lycos-europe.net/lea/se/pricerunner/040608_728x90_payback_digitalkamer.gif
-static.lycos-europe.net
-# Blocked URL = http://82.99.18.195/media.1/112/9460/146016/150x175_Hitta_FV_Feb08.gif
-82.99.18.195
-# Blocked URL = http://clk.atdmt.com/
-# Blocked URL = http://view.atdmt.com/action/mrtiwy_FY10Office2010BetaHomeandBiz1_1
-.atdmt.com/
-# Blocked URL = http://www.awin1.com/cread.php?s=123049&v=1983&q=80970&r=79561
-.awin1.com
-# Blocked URL = http://rotator.adjuggler.com/servlet/ajrotator/616245/0/vh?z=csm&dim=616028
-.adjuggler.com/servlet/ajrotator/
-# Blocked URL = http://bcc.co.uk/
-bcc.co.uk/
-# Blocked URL = http://fusion.adtoma.com:80/125AFFE801/1DC59C7801.swf
-# Blocked URL = http://fusion.adtoma.com/1254D5CC01/1E43C76801.jpg
-fusion.adtoma.com/
-# Blocked URL = http://ping.chartbeat.net/ping?h=uservoice.com&p=%2Fsuggestions%2Fping-chartbeat-net-sucks&u=3
-.chartbeat.net/(.*/)?ping\?
-# Blocked URL = http://s.atemda.com/Admeta.js
-# Blocked URL = http://atemda.com/ClickThrough.ashx?pId=9616&mId=14484&tId=634102151426089505&opS=1&admetac=mR3sJ3%2b9yleq%2bHowITh0hw%3d%3d
-.atemda.com/
-# Blocked URL = http://ciscosystemsinc.tt.omtrdc.net/m2/ciscosystemsinc/mbox/standard?mboxHost=www.cisco.com&mboxSession=12
-.omtrdc.net/
-# Blocked URL = http://www91.intel.com/b/ss/intelcorp,intelcorpdc/...ONDataProvider.aspx%3FDownloadType%3DDrivers&ot=A&AQE=1
-www91.intel.com/
-# Blocked URL = http://reklamy.sfd.pl/sportpl.ashx?clickTag=http://gazeta.hit.gemius.pl/hitredir/id=ApuVHydwkYW81VSL0PZYqnXoDosBucMur1zZqGEAJa7.X7/stparam=sifgmrnlfi/url=http://reklamy.sfd.pl/sportpl_redirect.ashx
-reklamy.sfd.pl/
-# Blocked URL = http://rotation.linuxnewmedia.com/www/delivery/avw.php?zoneid=26&n=aa584766
-rotation.linuxnewmedia.com/
-# Blocked URL = http://de17a.com/a/33039/26891.swf
-de17a.com/
-# Blocked URL = http://cltomedia.info/delivery/afr.php?zoneid=7&cb=1279946132
-cltomedia.info/delivery/
-# Blocked URL = http://cdn2.adexprt.com/clkads/sky2.html
-.adexprt.com/
-
-#----------------------------------------------------------------------------
-# JavaScripts and Texts for ad and popup generation
-#----------------------------------------------------------------------------
-# Blocked URL = http://a.tfag.de/js.ng/
-/js\.ng/
-/popunder
-/t\.php\?cat=.*&kw=.*&sc=
-jlinks.industrybrains.com/
-js.adsonar.
-# Blocked URL = http://bwp.zdnet.com/search?dw-siteid=2&dw-ptid=2100&dw-edid=2&dw-ontid=800004
-bwp.
-# Blocked URL = http://us.mc123.mail.yahoo.com/mc/stampNonJs
-.yahoo.com/mc/stampNonJs
-
-
-#############################################################################
-# Generic block-as-image patterns:
-#############################################################################
-{+block-as-image}
-# XXX: Should use "+block{Blocked image request.}", but Privoxy-Regression-Test
-# isn't smart enough to split that properly.
-# Sticky Actions = +block +handle-as-image
-/.*ad_?image\.(php|cgi)
-/.*recips?/
-/bandeaux/
-/.*client_?ad\.(php|cgi)
-/.*AIM_UAC.adp
-/(.*/)?adserver/image
-# Blocked URL = http://icons-aa.wunderground.com/ads/images/TripAdvisor-Blinky.gif
-# URL = http://icons-aa.wunderground.com/ads/images/TripAdvisor-Blinky.gif
-/(.*/)?ads/images/
-# Blocked URL = http://ad.yieldmanager.com/st?ad_type=iframe&ad_size=728x90&site=123§ion_code=123
-/.*\?ad_(type|size)=
-
-#############################################################################
-# Site-specific block-as-image patterns:
-#############################################################################
-#----------------------------------------------------------------------------
-# Banner farms:
-#----------------------------------------------------------------------------
-# Blocked URL = http://ar.atwola.com/
-# Blocked URL = http://pr.atwola.com/
-?r.atwola.com
-.[a-vx-z]*.doubleclick.net/(?!(.*/)?ad[ji])
-.*servedby.advertising.com
-#.a.yimg.com/(?:(?!/i/).)*$
-#.a[0-9].yimg.com/(?:(?!/i/).)*$
-#.yimg.com/(.*/)?a/
-#.yimg.com/.*/(flash|java)/promotions
-#.yimg.com/a/.*/flash/
-.yimg.com/.*\.yimg\.com/a/
-# Blocked URL = http://l.yimg.com/a/a/1-/flash/promotions/l3/intl/100214/300x250mfeyap.jpg
-# Blocked URL = http://l.yimg.com/a/a/1-/flash/promotions/l3/intl/100219/300x250mfeya.gif
-.yimg.com/.*/flash/promotions/.*\.(gif|jpg)$
-bs*.gsanet.com
-bs*.einets.com
-.qkimg.net
-[abd-ux-z]*.atdmt.com/
-# URL = http://www.fastclick.net/
-.fastclick.net
-.casalemedia.com
-kermit.macnn.com/
-quinst.com/images
-valuepage.com/images
-ia.imdb.com/.*\.swf
-.reactivpub.
-.as*.falkag.
-a.tribalfusion.com/
-.adserver.com/
-.ru4.com/
-.smartadserver.com/
-admedia.
-jmcms.cydoor.com/
-.adtrix.com
-*[0-9].tribalfusion.com/
-# Blocked URL = https://secure.img-cdn.mediaplex.com/0/7454/43775/YA3149_17566_728x90_FCR_07.gif
-.img*.mediaplex.com
-a*farm.mediaplex.com/ad/fm/
-# URL = http://matrix.mediavantage.de/mx.one?p=210&pa=1060&pb=1906&pd=10944&aid=399&x=120&y=240&ts=2005.06.27.21.38.08
-matrix.mediavantage.
-.cibleclick.com
-.netracker.net
-.interclick.com
-# URL = http://c4.maxserving.com/iserver/site=5314/area=ad728x90/aamfmt=normal/aamsz=banner/PageID=
-.maxserving.com
-# URL = http://partner.gonamic.de/Affiliate/ViewCounter/index.cfm?trackingID=368232&bIsAffiliate=0
-.gonamic.de
-# URL = http://img.webads.nl/
-.webads.
-# URL = http://media.adlegend.com/centrport/20060/511290/GM_emplyee_300x250.gif
-.adlegend.com
-# URL = http://dist.belnk.com//4/placement/1738/alt_offer/static.jpg
-.belnk.com
-.euros4click.
-ads-*.quarterserver.
-searchportal.information.com/
-images.ibsys.com/
-.lduhtrp.net/image
-scripts.chitika.net/.*\.(gif|png|jpg)
-.projectwonderful.com/gen.php
-.akamai.net/.*\.adtech\.de/.*\.(gif|png)
-.adinterax.com/.*\.(gif|jpg)
-# URL = http://img.directtrack.com
-img.directtrack.com
-# URL = http://eas.apm.emediate.eu/media.5/1/1228/19193/ACT1215_120x600_v3.gif
-.emediate.eu/
-# URL = http://feedads.googleadservices.com/~a/dPlpGU767u4D4kVO8EGuUlnf1Q0/i
-# URL = http://feedads.googleadservices.com/~at/EpX-FnAXxwdaBSq-GRze37-rG0M/i
-.googleadservices.com/~
-# URL = http://ts.richmedia.yahoo.com/...hummingbird.jpg?adxq=NNN
-.richmedia.yahoo.com/.*\.(gif|jpe?g)\?ad
-# Blocked URL = http://this.content.served.by.adshuffle.com/p/a=/view.pxl
-.served.by.adshuffle.com/
-# Blocked URL = http://newsletter.adsonar.com/nwrss/imgs/nwr_123.PNG?placementId=123&plid=123&rotation=1&type=2&&url=NA
-.adsonar.com/.*/imgs/
-# Blocked URL = http://rtb.pclick.yahoo.com/images/nojs.gif?p=3
-.pclick.yahoo.com/images/
-# Blocked URL = http://rover.ebay.com/ar/1/2/3?mpt=123&adtype=1&size=728x90
-# Blocked URL = http://rover.ebay.com/ar/1/711-53200-19255-0/1?mpt=CacheBuster&adtype=1&size=1x1&type=3&campid=5336328269&toolid=10001
-rover.ebay./ar.*\&adtype=
-# Blocked URL = http://resources.parfym.se/tradedoubler/250x360.swf
-/tradedoubler/.*\.swf
-# Blocked URL = http://hstse.tradedoubler.com/file/142609/440x220.swf
-hstse.tradedoubler.com/.*\.swf
-# Blocked URL = http://www.zdnetasia.com/2007/techguide/network/sponsor/i/logmein_mpu_whitepaper.gif
-# Blocked URL = http://www.zdnetasia.com/2007/techguide/network/sponsor/sidebar.gif
-www.zdnetasia.com/.*/sponsor/.*\.gif$
-# Blocked URL = http://pagead2.googlesyndication.com/pagead/imgad?id=CPjtipDs9taquQEQoAEYwgQyCIvo2PNnQywb
-.googlesyndication.com/.*/imgad\?
-# Blocked URL = http://optimize.indieclick.com/www/delivery/avw.php?zoneid=337501&cb=4147152&n=a530d6f1
-optimize.indieclick.com/
-# Blocked URL = http://optimized-by.rubiconproject.com/a/8327/13451/26301-2.img
-optimized-by.rubiconproject.com/
-# Blocked URL = http://g.adspeed.net/ad.php?do=html&zid=14678&wd=728&ht=90&target=_top
-g.adspeed.net/
-# Blocked URL = http://imp.double.net/?5463;234;4505;0;39296
-imp.double.net/
-
-#----------------------------------------------------------------------------
-# Cross-site user tracking
-#----------------------------------------------------------------------------
-.*.*.spylog.com/
-statse.webtrendslive.com
-spinbox.versiontracker.com/.*\.(gif|jpg)
-stat.onestat.com
-imp*.tradedoubler.com
-stat.webmedia.
-log*.xiti.com/
-log*.hit-parade.com/
-# URL = http://www.xml.eshop.msn.com/tracksponsorimpression.asp
-www.xml.eshop.msn.com/tracksponsorimpression.asp
-.imrworldwide.com
-.clicktracks.com
-.etracker.
-.x-traceur.com
-content.ipro.com
-.247realmedia.com
-.sify.com
-.searchignite.com
-.statcounter.com
-.research-int.se/data
-.cybermonitor.com
-log.go.com/log
-stats.indextools.com
-tra*.measuremap.com
-.eurekster.com/sidebar
-tra*.mybloglog.com
-.guesttrace.
-insightxe./data/
-.insightfirst.com
-# Blocked URL = http://rss.slashdot.org/~a/Slashdot/slashdot?i=ofbWqX
-# URL = http://rss.slashdot.org/~a/Slashdot/slashdot?i=ofbWqX
-rss.slashdot.org/~a/Slashdot/slashdot\?
-# Blocked URL = http://rss.slashdot.org/~r/Slashdot/slashdot/~4/102113044
-# URL = http://rss.slashdot.org/~r/Slashdot/slashdot/~4/102113044
-rss.slashdot.org/~r/Slashdot/slashdot/~4/
-[a-z][0-9].nedstatbasic.net/
-# Blocked URL = http://feeds.feedburner.com/~r/DilbertDailyStrip/~4/274512747
-# Blocked URL = http://feeds.feedburner.com/~r/PCLoadLetter/~4/270448381
-feeds.feedburner.com/~r/.*/~4/
-# Blocked URL = http://feedproxy.google.com/~r/DilbertDailyStrip/~4/y_kXD1z1HO0
-feedproxy.google.com/~r/.*/~4/
-# Blocked URL = http://feeds.feedburner.com/~a/DilbertDailyStrip?a=Ebzxel
-feeds.feedburner.com/~a/DilbertDailyStrip\?
-# URL = http://track.webtrekk.de/471497967328727/wt.pl?p=177,de.buch.show.home,1,1024x768,24,1,1218816426275,0,884x653,0&enc1=%FC&enc2=iso-8859-1&st=view&la=en-US&np=Default%20Plugi
-track.webtrekk.de/
-# URL = http://b.scorecardresearch.com/p2?c1=2&c2=6035546&c3=&c4=&c5=&c6=&c15=&cj=1
-b.scorecardresearch.com/
-# URL = https://sb.scorecardresearch.com/
-sb.scorecardresearch.com/
-# Blocked URL = http://b.collective-media.net/seg/cm/cm_aa_gn1
-b.collective-media.net/
-# Blocked URL = http://spiegel.ivwbox.de/cgi-bin/ivw/CP/1001;/home/c-18/be-PB64-aG9tZXBhZ2UvY2VudGVy/szwprofil-1001
-# Blocked URL = http://heise.ivwbox.de/2004/01/survey.js
- .ivwbox.de/
-
-#----------------------------------------------------------------------------
-# Specific counters (see above for generic patterns)
-#----------------------------------------------------------------------------
-s*.sitemeter.com/(meter|js/counter.js)
-# URL = http://fastcounter.bcentral.com/
-fastcounter.bcentral.com/
-# URL = http://bilbo.counted.com/
-bilbo.counted.com/
-
-#----------------------------------------------------------------------------
-# On-site ads and other single sources:
-#----------------------------------------------------------------------------
-.travelocity./Sponsor_gifs/
-# URL = http://foo.weather.com/creatives/
-# URL = http://bar.weather.com/web/services/email/
-.weather.com/creatives/
-.weather.com/web/services/email/
-/.*/topslots/topslot
-.contextweb.com/
-.offermatica.com/
-.adbrite.com
-.jpost.com/images/\d+/promos/
-.infoempleo.com/(pop-up|images(/Nueva/|/motor))
-hera.hardocp.com/
-leadback.advertising.
-.yieldmanager.com/
-.displayadsmedia.com
-# URL = http://astalavista.box.sk/adult.foo.jpg
-astalavista.box.sk/adult.*\.jpg
-smartad.*.*.*
-.dinside.no/annonsorer/
-/RealMedia/ads/
-/RealMediaAds/
-/top\.php\?d=.*\.[a-z]{2,5}
-.google.com/afsonline
-
-#############################################################################
-# Site-specific unblockers:
-#############################################################################
-{-block}
-# Sticky Actions = -block
-.faqs.org/banner\.html
-bannerblind.mozdev.org
-advogato.org
-ad*.vhb.de
-.globalintersec.com/adv
-banners.wunderground.com/
-.openoffice.org/banners/
-.amazon.com/.*/banners/
-.washingtonpost.com/wp-srv/
-# URL = http://www.gnome.org/images/banner-gnomeis
-.gnome.org
-.nycsubway.org/img/banner
-# URL = http://www.forgotten-ny.com/ADS/manhattanads/moremahnattan.html
-.forgotten-ny.com/ADS/
-# URL = http://counter.li.org
-counter.li.org
-# URL = http://adrian.adrian.org
-adrian.adrian.org
-# URL = http://adela.karlin.mff.cuni.cz
-adela.karlin.mff.cuni.cz
-.swcp.com/rtoads/
-# URL = http://www.privoxy.org/actions/index.php
-.privoxy.org
-sourceforge.net/.*tracker
-# URL = http://www.brawnylads.com/
-.brawnylads.com
-# URL = http://adzapper.sourceforge.net/
-adzapper.
-# URL = http://de.altavista.com/web/adv
-.altavista.com/web/adv
-# URL = http://rads.mcafee.com/rads/scripts/RADS.dll?QueryProduct2
-rads.mcafee.com/
-# URL = http://linuxfromscratch.org/cgi-bin/lfscounter.cgi
-linuxfromscratch.org/
-# URL = http://dv411.com/advc50.html
-dv411.com/.*advc50
-# URL = http://www.freeswan.org/freeswan_trees/freeswan-1.98b/doc/adv_config.html
-.freeswan.org/
-# URL = http://www.arm.com/support/ads_faq?OpenDocument&ExpandSection=11
-www.arm.com/.*ads
-# URL = http://www.anybrowser.org/campaign/
-www.anybrowser.org/
-# URL = http://www.tads.org/
-www.tads.org/
-# URL = http://www.mbe.com/redir/packtrack.asp
-.mbe.com/redir/packtrack.asp
-.iship.com/trackit/
-# URL = http://www.esis.com.au/AdvSerialCards/Firewire.htm
-.esis.com.au/AdvSerialCards
-.familysearch.org/.*banner
-coder.com/creations/banner/
-# URL = http://arnolds.dhs.org/static/adv_tools.html
-arnolds.dhs.org/static/adv_tools.html
-.gpl.org/
-.europa.eu.
-# URL = http://www.schooner.com/~loverso/no-ads/
-.schooner.com/~loverso/no-ads/
-source.bungie.org/
-# URL = http://adonthell.linuxgames.com/
-adonthell.linuxgames.com/
-.bbc.co.uk/
-# URL = http://adc.netlabs.org/
-adc.netlabs.org/
-# URL = http://www.tela.bc.ca/tads/authoring/multimedia-tads-docs/latin2.htm
-.tela.bc.ca/tads/
-# URL = http://adbusters.org/information/
-adbusters.org/
-# URL = http://www.eads.com/
-# URL = http://www.eads.net/
-# URL = http://www.eads.de/
-.eads.*/
-# URL = http://brew.qualcomm.com/brew/en/developer/resources/ad/documentation.html
-.qualcomm.com/brew/en/developer/resources/ad/
-# URL = http://upgrade.bitdefender.com/update71/avx/Plugins/adsntfs.xmd.gzip
-/update\d\d/.*adsnt.*
-.microsoft.com/.*masthead
-.indymedia.org
-# URL = http://www.seanbaby.com/stupid/comicads05.shtml
-.seanbaby.com
-# URL = http://www.cels.org/db/keep-track.pl?cat:1
-.cels.org/.*track
-#.nic.ad.jp
-/(.*/)?somerights20.gif
-.creativecommons.org
-# URL = http://www.ups.com/WebTracking/track?loc=en_US
-.ups.com/.*/track
-.adju.
-.rubberslug.com
-.freebsd.org
-.fsf.org
-.gnu.org
-adium*.*.
-.googleadservices./pagead/adclick
-.garaget.org/annonser/
-edge.macworld.com
-.discovery./.*/topads/
-.dawn.com/.*/(9690dina|aurora_award)\.
-.google.com/reader/
-.parcel2go.com/track
-.amazon.com/gp/gift-central/.*recip/
-.yimg.com/.*/themes/ad/
-# URL = http://mozilla.hongo.wide.ad.jp/pub/mozilla.org//thunderbird/releases/
-.ad.*/pub/mozilla.org/
-# URL = http://lads.myspace.com/mini/mini.swf?b=NDgwNzU1ODE=&o=NjQwNzIzMA==&d=MTE3NDI4ODcwNg==&i=MA==&a=VHJ1ZQ==
-# URL = http://lads.myspace.com/videos/vplayer.swf
-lads.myspace.com
-# URL = http://www.shockwave.com/servlet/DownloadEcommTracker?sku=fizzball-pc&promoCode=SiteShockwaveLandingPage
-.shockwave.com/servlet/DownloadEcommTracker
-# URL = http://www.fish4.co.uk/iad/lettings/advert?adId=12389712&src=nestoria
-.fish4.co.uk/.*ad
-# URL = http://www.mp3.com.au/popup/popup.asp?id=110433
-.mp3.com.au/.*popup
-# URL = http://www.svd.se/ego/339/http://www.e24.se/dynamiskt/reklam_media/did_15092793.asp
-# URL = http://www.e24.se/dynamiskt/reklam_media/did_15092793.asp
-/(.*/)?dynamiskt/reklam_media/did_
-switch.atdmt.com/action/
-# URL = http://www.parcelforce.com/portal/pw/track?catId=7500082
-.parcelforce.com/.*track
-.microsoft.com/.*/adschema/
-# URL = http://upload.wikimedia.org/wikipedia/en/a/ad/Picturecarnegie.jpg
-.wikimedia.org/
-# URL = http://en.wikipedia.org/wiki/Advertisement
-.wikipedia.org/
-# URL = http://en.wiktionary.org/wiki/advertisement
-.wiktionary.org/
-# URL = http://curl.haxx.se/docs/adv_20070710.html
-.haxx.se/docs/adv_
-# URL = http://www.google.com/adsense/
-www.google.com/adsense/
-# URL = http://www.encyclopediadramatica.com/Advertisement
-# URL = http://images.encyclopediadramatica.com/images/b/b5/Advertising-Dierentuin.jpg
-.encyclopediadramatica.com/
-# URL = http://tags.gawker.com/assets/minify.php?files=/assets/base.v6/.../comments.css,/assets/base.v6/css/messages.css,/assets/base.v6/css/ui.css
-tags.gawker.com/.*css$
-# URL = http://cgi.tnt.co.uk/TrackNTrace/quicktrack.asp
-.tnt.co.uk/TrackNTrace/
-# URL = http://secure.howtoburndvd.net/ups/track.php
-/ups/track\.php
-# URL = http://ad.doubleclick.net/crossdomain.xml
-ad.doubleclick.net/crossdomain\.xml
-# URL = http://ad.doubleclick.net/879366/DartShell9_8.swf?adServerHost=http://ad.doubleclick.net
-# URL = http://ad.doubleclick.net/pfadx/DARTSHELLCONFIGXML;dcmt=text/xml;
-# URL = http://ad.doubleclick.net/879366/DartShellPlayer9_8_01_00.swf
-# URL = http://ad.uk.doubleclick.net/879366/DartShell7_7.swf?adServerHost=http://ad.uk.doubleclick.net
-.doubleclick.net/.*/DartShell.*\.swf
-.doubleclick.net/.*/DARTSHELLCONFIGXML
-# URL = http://real.custhelp.com/cgi-bin/real.cfg/php/enduser/popup_adp.php
-real.custhelp.com/cgi-bin/real\.cfg/php/enduser/popup_adp\.php
-# URL = http://fritz.fonwlan.box/cgi-bin/webcm?getpage=../html/de/help/popup.html&var:lang=de&var:pagename=hilfe_syslog&var:anker=24
-fritz.fonwlan.box/
-# URL = http://fritz.box/cgi-bin/webcm?getpage=../html/de/help/popup.html&var:lang=de&var:pagename=hilfe_syslog&var:anker=24
-fritz.box/
-# URL = http://kb.adobe.com/selfservice/viewContent.do?externalId=kb402747&sliceId=1
-.adobe.com
-# URL = http://qa.debian.org/popcon.php
-# URL = http://qa.debian.org/popcon-png.php?packages=privoxy&show_installed=on&want_legend=on&want_ticks=on&date_fmt=%25Y-%25m&beenhere=1
-qa.debian.org/popcon
-# URL = http://www.mta.info/bandt/traffic/advmain.htm
-.mta.info/.*advmain.htm$
-# URL = http://www.proaurum.de/bannerA2/image/pro_master_r3_01_04.gif
-# URL = http://www.proaurum.de/bannerA1/image/limitorder2.gif
-# URL = http://www.proaurum.de/bannerA3/image/pro_master_r5_banken_01_01+.gif
-# URL = http://www.proaurum.de/bannerB2/image/pro_banner_mitte.gif
-# URL = http://www.proaurum.de/bannerB1_/image/pro_banner_links.gif
-# URL = http://www.proaurum.de/bannerC1/image/partner1.png
-.proaurum.de/banner[ABC]\d_?/
-# URL = http://www.goldmoney.com/en/images/home/banner_r4_c1.gif
-.goldmoney.com/
-# URL = http://www.ad.nl/
-.ad.nl/
-# URL = http://us.i1.yimg.com/us.yimg.com/i/yg/img/ads/bestofygroups.jpg
-.yimg.com/.*/ads/bestofygroups.jpg$
-# URL = http://graphics8.nytimes.com/css/0.1/screen/common/ads.css
-# URL = http://graphics8.nytimes.com/css/0.1/screen/homepage/ads.css
-.nytimes.com/.*/ads\.css$
-# URL = http://i.cdn.turner.com/cnn/.element/js/2.0/video/xmp/AdServiceAdapter.swf
-.turner.com/cnn/.*/AdServiceAdapter.swf
-# URL = http://lads.myspacecdn.com/videos/musicPlayerAssets.swf
-lads.myspacecdn.com/
-# URL = http://a957.phobos.apple.com/us/r1000/000/Music/ad/47/56/mzi.gnjsyarh.aac.a.m4p
-.phobos.apple.com/
-# URL = http://eas8.emediate.eu/eas?camp=114;ty=ct;EASLink=http://www.jp.dk
-.emediate.eu/.*EASLink=
-# URL = http://new.meteo.pl/advajax.js
-.meteo.pl/advajax\.js
-# URL = http://www.adressa.no/
-# URL = http://adressa.no/
-adressa.no/
-# URL = http://www.adresseavisen.no/
-# URL = http://adresseavisen.no/
-adresseavisen.no/
-# URL = http://apps.facebook.com/onthefarm/track.php?creative=&cat=friendvisit&subcat=weeds&key=a789a971dc687bee4c20c044834fabdd&next=index.php%3Fref%3Dnotif%26visitId%3D898835505
-.facebook.com/.*/track.php
-# URL = http://www.ifdb.tads.org/
-# URL = http://www.tads.org/
-.tads.org/
-# URL = http://adtoma.com/
-adtoma.com/
-# URL = http://adactio.com/
-adactio.com/
-# URL = http://www.peereboom.us/adsuck/
-www.peereboom.us/adsuck/
-# URL = http://www.svd.se/template/ver1-0/css/ads.css?v=194
-.svd.se/.*\.css($|\?)
-# URL = http://include.ebaystatic.com/v4js/en_GB/e637i/SYS-LIGER_Omniture_e637i10177164_5_en_GB.js
-include.ebaystatic.com/.*omniture.*\.js
-# URL = http://l.yimg.com/d/combo?news/p/common/generic/news/p/common/generic/popular-searches-min-12622.js&news/p/common/generic/ads-min-11050.js&news/p/common/generic/foundation/popup-min-12622.js
-.yimg.com/d/combo\?
-# URL = http://www.networkworld.com/includes/styles/adstyles.css
-# URL = http://www.sj.se/common/css/pop.css
-# URL = http://l.yimg.com/d/combo?news/p/common/generic/ads-min-24248.css&news/p/common/generic/widgets-min-10270.css
-# URL = http://news.zdnet.com/css/z/ads/hs.css
-/.*\.css$
-# URL = http://adesklets.sourceforge.net/
-adesklets.sourceforge.net/
-# URL = http://adassier.wordpress.com/
-adassier.wordpress.com/
-# URL = http://adassier.files.wordpress.com/2010/05/road-to-economic-recovery2.jpg?w=630&h=451
-adassier.files.wordpress.com
-# URL = http://adainitiative.org/about-us/
-adainitiative.org/
-# URL = http://adjamblog.wordpress.com/
-adjamblog.wordpress.com/
-# URL = http://adjamblog.files.wordpress.com/2011/12/cropped-terra.jpg
-adjamblog.files.wordpress.com/
-# URL = http://www.urbandictionary.com/popular.php?character=C
-.urbandictionary.com/popular
-# URL = http://websupport.wdc.com/sfclickcount.asp?s1=2&s2=1&s3=2&s4=6&lang=en&url=https%3A%2F%2Fwesterndigital.secure.force.com%2F%3Flang%3Den
-websupport.wdc.com/
-# URL = http://content.conrad.se/newsletter/banners/OFFER_750987_exk.jpg
-.conrad.se/newsletter/banners/
-.wlxrs.com/
-# URL = http://advrider.com/forums/
-# URL = http://www.advrider.com/forums/
-.advrider.com/
-# URL = http://www.smugmug.com/community/ADVrider
-# URL = http://www.siteinfotool.com/advrider.com
-/.*ADVrider
-
-#############################################################################
-# Site-specific special rules:
-#############################################################################
-
-#----------------------------------------------------------------------------
-# These sites are very complex (read: keen on your identity) and require
-# minimal interference.
-#----------------------------------------------------------------------------
-{fragile}
-.office.microsoft.com
-.windowsupdate.microsoft.com
-# too broad: .apple.com
-www.apple.com
-store.apple.com
-images.apple.com
-.update.microsoft.com
-mail.google.*
-
-#----------------------------------------------------------------------------
-# Shopping and banking sites - allow cookies and pop-ups
-#----------------------------------------------------------------------------
-{shop}
-.quietpc.com
-.worldpay.com # for quietpc.com
-.jungle.com
-.dabs.com
-.overclockers.co.uk
-.db24.de
-.ebay.*
-.mobile.de
-www.fondationlejeu.com
-www.techtv.com
-.mywebgrocer.com
-
-#----------------------------------------------------------------------------
-# Subscription sites (with credible privacy policy) - allow permanent cookies
-#----------------------------------------------------------------------------
-{-session-cookies-only}
-.nytimes.com/
-.volkskrant.nl/
-
-#----------------------------------------------------------------------------
-# These sites require pop-ups, so don't use the unconditional filters.
-#----------------------------------------------------------------------------
-{allow-popups}
-www.aprilbarrows.com/discography\.html$
-.nvidia.com
-www*.chathouse.com/games/
-.bild.t-online.de
-.netflix.com
-my.aol.com
-i.cnn.net/cnn/.*/clickability/button
-.rosettaproject.org
-.quantum.com
-.liberation.fr
-
-#----------------------------------------------------------------------------
-# Sometimes (i.e. often!) fast-redirects catches things by mistake
-#----------------------------------------------------------------------------
-{-fast-redirects}
-# Sticky Actions = -fast-redirects
-www.ukc.ac.uk/cgi-bin/wac\.cgi\?
-# URL = http://www.google.com/search?q=foo
-.google.*
-.altavista.com/(.*(like|url|link):|trans.*urltext=)http
-.speedfind.de
-.nytimes.com
-# URL = http://login.yahoo.com/config/login?logout=1&.done=http://mail.yahoo.com&.src=ym&.intl=us
-# URL = http://us.rd.yahoo.com/reg/login1/lisu/login/uk/ym/*http://edit.europe.yahoo.com/c onfig/login?.tries=1&.src=ym&.md5=&.hash=&.js=1&.last=&...kP=Y&.done=http://mail .yahoo.com&.pd=ym_ver=0&c=&login=XXX&passwd=XXX&.persistent =&.hash=1&.md5=1.yahoo.com/
-.yahoo.com/
-# URL = http://validator.w3.org/check
-.w3.org
-.directhit.com
-.zagats.com
-# URL = http://www.passport.com/Consumer/default.asp?lc=1033&msppchlg=1&mspplogin=
-my.msn.com/passport/pp(consent|set)\.ashx\?msnru=
-www.passport.com/Consumer/default\.asp\?lc=[0-9]+&msppchlg=[01]&mspplogin=
-login.passport.com/logout\.(asp|srf)\?
-download.com.com/redir\?
-www.fileplanet.com/redir\.asp\?
-.edu
-# URL = http://web.archive.org/web/19970715180251/http://www.gmd.de/
-.archive.org
-# URL = http://www.guenstiger.de/gt/link.asp?url=http://www.edv-supermarkt.de&source=produkt=238284&USID=00086443917155&hnr=2199&pnr=238284&ppr=158,00
-www.guenstiger.de
-# URL = http://anon.free.anonymizer.com/http://www.privoxy.org/
-.anonymizer.com
-# URL = http://www.mailtothefuture.com/public/logon?http://www.mailtothefuture.com/
-www.mailtothefuture.com
-support.microsoft.com/
-# URL = http://www.alexa.com/data/details/traffic_details?q=blogspot&url=http://www.blogalia.com
-.alexa.com
-# URL = http://www.translate.ru/url/tran_url.asp?lang=es&url=http%3A%2F%2Fos2progg.by.ru%2Findex.shtml&direction=rs&template=General&cp1=NO&cp2=NO&autotranslate=on&transliterate=on&psubmit2.x=68&psubmit2.y=12
-www.translate.ru/url/
-# URL = http://schneegans.de/sv/?url=http%3A%2F%2Fwww.freebsd.org%2F&schema=%28Detect+automatically%29&encoding=%28Detect+automatically%29&htmlcomp=%28Detect+automatically%29
-schneegans.de/
-# URL = http://config.privoxy.org/edit-actions-submit?f=user..&redirect_mode=http%3A%2F%2Fwww.privoxy.org%2F
-config.privoxy.org/
-# URL = http://users.wsj.com/lmda/do/checkLogin?mg=evo-wsj&url=http%3A%2F%2Fonline.wsj.com%2Farticle%2FSB117313867582027623.html
-.wsj.com/lmda/do/checkLogin
-# URL = http://del.icio.us/url/check?url=http%3A%2F%2Fwww.privoxy.org
-del.icio.us/
-# URL = http://calgary.ctv.ca/servlet/RTGAMArticleHTMLTemplate/B/20070615/goexpo?brand=generic&hub=&tf=CFCNPlus/generic/hubs/frontpage.html&cf=CFCNPlus/generic/hubs/frontpage.cfg&slug=goexpo&date=20070615&archive=CFCNPlus&ad_page_name=&nav=home&subnav=fullstory&site_cfcn=http://calgary.ctv.ca
-.ctv.ca/.*&site_cfcn=http://
-# URL = http://memberservices.informit.com/checkLogin.ashx?partner=8&r=http%3a%2f%2fwww.informit.com%2farticles%2farticle.asp%3fp%3d766375%26seqNum%3d1
-.informit.com/.*&r=http%3a%2f%2f
-# URL = http://access.adobe.com/access/getStatus.do?jobid=&srcPdfUrl=http://cups.cs.cmu.edu/soups/2007/proceedings/p41_clark.pdf&convertTo=html&visuallyImpaired=preferhtml&preferHTMLReason=&platform=&comments=&starttime=1187362172109
-access.adobe.com/access/getStatus.do\?jobid=&srcPdfUrl=
-# URL = http://view.samurajdata.se/ps.php?url=http%3A%2F%2Fcups.cs.cmu.edu%2Fsoups%2F2007%2Fproceedings%2Fp41_clark.pdf&submit=View%21
-view.samurajdata.se/ps\.php\?url=
-# URL = http://www.blogger.com/navbar.g?targetBlogID=8919860543765866292&blogName=Kickin%27+the+Darkness&publishMode=PUBLISH_MODE_HOSTED&navbarType=BLUE&layoutType=LAYOUTS&homepageUrl=http%3A%2F%2Fblog.kickin-the-darkness.com%2F&searchRoot=http%3A%2F%2Fblog.kickin-the-darkness.com%2Fsearch
-.blogger.com/navbar\.g
-# URL = http://editors.dmoz.org/editors/editurl.cgi?url=http%3a//www.example.de/&cat=World/Deutsch/Computer/Hardware/Speichermedien
-.dmoz.org/editors/editurl\.cgi
-# URL = http://offer.ebay.de/ws/eBayISAPI.dll?stockphotourl=http%3A%2F%2Fi16.ebayimg.com%2F02%2Fc%2F02%2F88%2F21%2F5b_6.JPG&MfcISAPICommand=BinConfirm&fb=1&co_partnerid=&item=123456789112&quantity=1&input_bin=
-# URL = http://offer.ebay.de/ws/eBayISAPI.dll?maxbid=15%2C01&MfcISAPICommand=MakeBid&fromPage=284&stockphotourl=http%3A%2F%2Fi14.ebayimg.com%2F02%2Fc%2F00%2Fe9%2Fe1%2F2a_6.JPG&fb=2&co_partnerid=&item=123456789112&input_bid=
-.ebay.de/ws/eBayISAPI\.dll\?
-# URL = http://www.amazon.com/gp/redirect.html/ref=cm_plog_item_link/105-3659773-0844420?ie=UTF8&location=http%3A%2F%2Fjoltawards.com%2F2007%2F&token=A07736D870C02EF10CB13BCC8A33C302F689BBBA
-.amazon.com/gp/redirect.html/.*location.*&token
-# URL = http://en.groundspring.org/EmailNow/pub.php?module=WebSignup&cmd=thankyou&gotoUrl=http%3A%2F%2Fwww.freebsdfoundation.org&gotoText=Return+to+Home+Page&listNames=The+FreeBSD+Foundation+Mailing+List
-.groundspring.org/
-# URL = http://www1.landsend.de/pp/undefined/images/error.gif?onerr=true&ts=1227969386837&file=http%3A//s7.landsend.com/is-viewers/dhtml/include/sj_textloader.js%3Fver%3Dle.1&line=0&msg=Script%20error.&sid=
-.landsend.de/
-# URL = http://www.youtube.com/swf/l.swf?swf=http%3A//s.ytimg.com/yt/swf/cps-vfl68942.swf&video_id=2cpd6rHIfyA&rel=1&showsearch=1&eurl=&iurl=http%3A//i3.ytimg.com/vi/2cpd6rHIfyA/hqdefault.jpg&sk=5E3I2RCcOLknk1qyI_JgVVnb8FKwgpHzC&use_get_video_info=1&load_modules=1&fs=1&hl=en
-.youtube.com/swf/.*swf=
-# URL = http://redbot.org/?uri=http%3A//apache.org/
-.redbot.org/
-# URL = http://webcache.googleusercontent.com/custom?hl=en&domains=library.gnome.org&sitesearch=library.gnome.org&q=cache:8yGDJ1YpefcJ:http://library.gnome.org/devel//gtk/2.20/GtkLabel.html+gtk_label_set_text+escape&ct=clnk
-webcache.googleusercontent.com/
-# URL = http://webcache.googleusercontent.com/search?q=cache:kZYcDFibjHcJ:https://grepular.com/Abusing_HTTP_Status_Codes_to_Expose_Private_Information+inurl:https://grepular.com/Abusing_HTTP_Status_Codes_to_Expose_Private_Information&hl=en&strip=1
-.googleusercontent.com/.*=cache:
-# URL = http://maps.googleapis.com/maps/api/js/AuthenticationService.Authenticate?1shttp%3A%2F%2Fwww.wunderground.com%2Fcgi-bin%2Ffindweather%2FgetForecast%3Fbrand%3Dwxmap%26query%3D42.649601%2C-88.298500%26zoom%3D8%26theprefset%3D531051599999WS%26theprefvalue%3DME0041&2sgme-weatherunderground&3swxmap&5e1&callback=_xdc_._9er073&token=129358
-.googleapis.com/
-# URL = http://www.google.com.au/sorry/?continue=http://www.google.com.au/search%3Fhl%3Den%26tbo%3Dd%26output%3Dsearch%26sclient%3Dpsy-ab%26q%3Dnew%2Bcars%26btnG%3D
-.google./sorry/\?continue?=
-
-{+redirect{s@.*url=@http://@} -block}
-# Sticky Actions = +redirect -block
-# URL = http://go.eniro.dk/lg/ni/http:/eas8.emediate.eu/eas?camp=79;ty=ct;EASLink=http://www.bt.dk?http://redirect.metropol.dk/cgi-bin/redir.pl?url=www.bt.dk
-# URL = http://eas8.emediate.eu/eas?camp=79;ty=ct;EASLink=http://www.bt.dk?http://redirect.metropol.dk/cgi-bin/redir.pl?url=www.bt.dk
-# Redirected URL = http://go.eniro.dk/lg/ni/http:/eas8.emediate.eu/eas?camp=79;ty=ct;EASLink=http://www.bt.dk?http://redirect.metropol.dk/cgi-bin/redir.pl?url=www.bt.dk
-# Redirect Destination = http://www.bt.dk
-# Redirected URL = http://eas8.emediate.eu/eas?camp=79;ty=ct;EASLink=http://www.bt.dk?http://redirect.metropol.dk/cgi-bin/redir.pl?url=www.bt.dk
-# Redirect Destination = http://www.bt.dk
-go.eniro.dk/.*EASLink=http://.*url=(?!<=http:)
-.emediate.eu/.*EASLink=http://.*url=(?!<=http:)
-
-#----------------------------------------------------------------------------
-# No filtering for sourcecode or other automatically parsed content
-#----------------------------------------------------------------------------
-{-filter -prevent-compression}
-# Sticky Actions = -filter -prevent-compression
-# URL = http://ijbswa.cvs.sourceforge.net/ijbswa/current/
-.cvs.
-/.*(cvs(view|web)|viewcvs)
-# URL = http://svn.sourceforge.net/
-.svn.
-.websvn.
-/(.*/)?svn/
-# URL = http://liveupdate.symantec.com/ennlu.x86
-liveupdate.symantec.com
-liveupdate.liveupdatesymantec.com
-liveupdate.symantecliveupdate.com
-# URL = http://www.bookmarklets.com/
-.bookmarklets.com
-# URL = http://www.squarefree.com/bookmarklets/
-.squarefree.com/bookmarklets/
-swquery.apple.com
-swscan.apple.com
-# URL = http://atl.speakeasy.net/300k
-.speakeasy.net/\d+k
-# URL = http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=185033
-.debian.org
-bugzilla.
-.tldp.org
-webmail.
-.wiki*.
-.*wiki.
-/.*wiki/
-# URL = http://en.wiktionary.org/
-.wiktionary.org/
-maps.google.
-.google.com/(calendar|reader)
-code.
-developer.
-.mozdev.org
-.mozilla.org
-.perl.org
-.cpan.org
-.webdeveloper.com
-.ibm.com/developerworks
-.apache.org/docs
-.comptechdoc.org
-.webmonkey.com
-.webreference.com
-docs.sun.com
-java.sun.com
-.thescripts.com
-.php.net
-.phpdeveloper.org
-.oreillynet.com/pub
-.devshed.com
-.htmlgoodies.com
-.javascript.com
-javascript.internet.com
-.w3schools.com
-.devguru.com
-javascriptkit.com
-.xulplanet.com
-.perl.com/language/newdocs
-# URL = http://svnweb.freebsd.org/base/head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c?revision=238391&view=markup
-.freebsd.org
-# URL = http://fxr.watson.org/fxr/source/geom/geom_event.c
-.watson.org
-.netbsd.org
-.openbsd.org
-.dragonflybsd.org
-.freedesktop.org
-.gnu.org
-.fedoraproject.org
-.userscripts.org
-/(.*/)?flyspray/
-/(.*/)?mail(man|archive|inglists?)/
-bugs.
-quoka.de
-
-#----------------------------------------------------------------------------
-# Innocent images in standard banner sizes found here:
-#----------------------------------------------------------------------------
-{-filter{banners-by-size}}
-# Sticky Actions = -filter{banners-by-size}
-# URL = http://www.pricegrabber.com/search_getprod.php?masterid=580330&zip_code=92840&found=1&ut=40a6c41f2c9d1244
-.pricegrabber.com/search_getprod.php
-# URL = http://www.cnn.com/WORLD/
-.cnn.com
-# URL = http://gamespot.com/gamespot/filters/0,10850,6013054,00.html
-.gamespot.com/gamespot
-www.wral.com
-.cartoonnetwork.com/
-# URL = http://www.anybrowser.org/campaign/
-.anybrowser.org
-# URL = http://images.google.de/images?q=cookie+monster&svnum=10&hl=de&lr=&ie=UTF-8&oe=UTF-8&start=40&sa=N
-images.google.
-# URL = http://www.pbs.org/wgbh/pages/roadshow/series/highlights/2003/albuquerque/index.html
-.pbs.org/.*/roadshow/
-# URL = http://objects.povworld.org/cat/Food/
-objects.povworld.org/cat/
-# URL = http://www.xach.com/gimp/tutorials/tiles.html
-www.xach.com/gimp/
-# URL = http://www.mapquest.com/directions/main.adp?go=1&do=nw&ct=NA&1y=US&1a=255+w+88+st&1p=&1c=&1s=&1z=10024&2y=US&2a=20+milltown+rd&2p=&2c=&2s=&2z=10509&lr=2
-.mapquest.com/directions/
-.theonion.com/content/
-# URL = http://www.pattilupone.net/gallery.html
-.pattilupone.net/gallery.html
-# URL = http://www.ambrosiasw.com/games/evn/desktops.html
-.ambrosiasw.com/
-# URL = http://oca.microsoft.com/en/Welcome.asp
-.microsoft.com
-# URL = http://javabog.dk/ijk/
-javabog.dk/ijk/
-.w3.org
-# URL = http://www.encyclopediadramatica.com/New_Zealand_Fail_Guy
-.encyclopediadramatica.com/
-# URL = http://www.ikea.com/us/en/catalog/products/00103102
-.ikea.com/
-# URL = http://www.froscon.de/en/projects.html
-.froscon.de/
-# URL = http://www.fsfe.org/en/supporters
-.fsfe.org/
-# URL = http://www.couchsurfing.com/mapsurf.html
-.couchsurfing.com/
-# URL = http://www.couchsurfing.org/mapsurf.html
-.couchsurfing.org/
-# URL = http://www.thinkgeek.com/tshirts-apparel/unisex/generic/
-.thinkgeek.com/
-
-{-filter{banners-by-link}}
-# Sticky Actions = -filter{banners-by-link}
-# URL = http://www.encyclopediadramatica.com/Advertisement
-.encyclopediadramatica.com/
-
-#----------------------------------------------------------------------------
-# These don't work without the referrer information:
-#----------------------------------------------------------------------------
-{-hide-referrer}
-# Sticky Actions = -hide-referrer
-.totaleclips.com
-# URL = http://validator.w3.org/check?uri=referer
-validator.w3.org/check\?uri=referer
-# URL = http://www.petitiononline.com/mod_perl/signed.cgi
-.petitiononline.com/mod_perl/signed.cgi
-.telia.se
-# URL = schneegans.de/sv/?url=referer
-schneegans.de/sv/\?url=referer
-
-#----------------------------------------------------------------------------
-# These animated gifs are either useful or nice:
-#----------------------------------------------------------------------------
-{-deanimate-gifs}
-# Sticky Actions = -deanimate-gifs
-# URL = http://www.care2.com/
-.care2.com
-.care-mail.com
-# URL = http://www.wunderground.com/radar/station.asp?ID=MPX19&type=loop&clutter=1
-.wunderground.com
-66.28.250.180/data/
-.teamquest.com/gifs/gunther/
-.rubberslug.com
-.wikipedia.org/
-
-#----------------------------------------------------------------------------
-# The "site-specifics" filter has special cures for problems found here:
-#----------------------------------------------------------------------------
-{+filter{site-specifics}}
-# Sticky Actions = +filter{site-specifics}
-# URL = http://www.spiegel.de/static/js/flash-plugin.js
-.spiegel.de/static/js/flash-plugin\.js
-# URL = http://www.quelle-bausparkasse.de/
-.quelle-bausparkasse.de/$
-# URL = http://de.groups.yahoo.com/group/die-spinner/interrupt?st=2&ln=die-spinner&m=1&done=%2Fgroup%2Fdie-spinner%2Fmessage%2F416
-.groups.yahoo.com/group/
-# URL = http://www.nytimes.com/
-.nytimes.com/
-
-#----------------------------------------------------------------------------
-# Content under these TLDs is most probably in character sets which the
-# demoronizer filter would mess up
-#----------------------------------------------------------------------------
-{-filter{demoronizer}}
-.jp
-.cn
-.tw
-.ru
-.kr
-
-#----------------------------------------------------------------------------
-# Misc special rules:
-#----------------------------------------------------------------------------
-{-filter{content-cookies} -filter{webbugs}}
-# Sticky Actions = -filter{content-cookies} -filter{webbugs}
-# URL = http://www.friendscout24.de/
-.friendscout24.de
-# URL = http://www.webreference.com/js/column8/property.html
-.webreference.com/js/column8/property.html
-
-{-filter{fun}}
-# Sticky Actions = -filter{fun}
-# URL = http://www.privoxy.org/user-manual/filter-file.html
-/(.*/)?user-manual/filter-file.html
-
-#{+filter{img-reorder} +filter{banners-by-link}}
-#www.dn.se
-
-{-filter{img-reorder}}
-# Sticky Actions = -filter{img-reorder}
-# URL = http://images.google.com
-.google.
-# URL = http://wired.com
-/.*wired(\.com)?/
-.wired.com/
-
-{-filter{js-annoyances}}
-# Sticky Actions = -filter{js-annoyances}
-# URL = http://www.nasa.gov
-.nasa.gov
-# URL = http://www2.cnrs.fr/presse/communique/900.htm
-.cnrs.fr
-# URL = http://blogs.msdn.com/wga/archive/2006/07/16/667063.aspx
-blogs.msdn.com
-
-{-filter{unsolicited-popups}}
-# Sticky Actions = -filter{unsolicited-popups}
-/.*mt.cgi$
-# URL = http://www2.cnrs.fr/presse/communique/900.htm
-.cnrs.fr
-# URL = http://blogs.msdn.com/wga/archive/2006/07/16/667063.aspx
-blogs.msdn.com
-
-{-filter{jumping-windows}}
-# Sticky Actions = -filter{jumping-windows}
-# URL = http://www.openstreetmap.org
-.openstreetmap.org
-
-{+fast-redirects{check-decoded-url} -block}
-# Sticky Actions = +fast-redirects{check-decoded-url} -block
-# URL = http://rds.yahoo.com/_ylt=A0geuryczbBF._YAEmxXNyoA;_ylu=X3oDMTB2b2gzdDdtBGNvbG8DZQRsA1dTMQRwb3MDMQRzZWMDc3IEdnRpZAM-/SIG=11b3qg40n/EXP=1169301276/**http%3a//www.privoxy.org/
-rds.yahoo.com/
-# Redirected URL = http://rds.yahoo.com/_ylt=A0geuryczbBF._YAEmxXNyoA;_ylu=X3oDMTB2b2gzdDdtBGNvbG8DZQRsA1dTMQRwb3MDMQRzZWMDc3IEdnRpZAM-/SIG=11b3qg40n/EXP=1169301276/**http%3a//www.privoxy.org/
-# Redirect Destination = http://www.privoxy.org/
-# URL = http://dw.com.com/redir?asid=0&astid=8&siteid=19&edid=107&destCat=33862&destURL=http%3A%2F%2Fdb.gamefaqs.com%2Fcomputer%2Fdoswin%2Ffile%2Fvampire_tmb_b.txt
-dw.com.com/redir\?
-# Redirected URL = http://dw.com.com/redir?asid=0&astid=8&siteid=19&edid=107&destCat=33862&destURL=http%3A%2F%2Fdb.gamefaqs.com%2Fcomputer%2Fdoswin%2Ffile%2Fvampire_tmb_b.txt
-# Redirect Destination = http://db.gamefaqs.com/computer/doswin/file/vampire_tmb_b.txt
-# URL = http://wzus.bloglines.com/r?t=a&d=us&s=bl&c=blen&ti=1&ai=51060&l=dir&o=0&sv=z6f537f5b&ip=971AC44B&u=http%3A%2F%2Fwww.skweezer.net%2Fbloglines%2Fskweeze.aspx%3F%26i%3Dd%26l%3Den%26r%3Dhttp%253A%252F%252Fwww.bloglines.com%252Fmyblogs_display%253Fsub%253D29302699%2526site%253D5382440%26url%3Dhttp%253A%252F%252Fpermalink.gmane.org%252Fgmane.linux.debian.devel.changes.unstable%252F97340
-# Redirected URL = http://wzus.bloglines.com/r?t=a&d=us&s=bl&c=blen&ti=1&ai=51060&l=dir&o=0&sv=z6f537f5b&ip=971AC44B&u=http%3A%2F%2Fwww.skweezer.net%2Fbloglines%2Fskweeze.aspx%3F%26i%3Dd%26l%3Den%26r%3Dhttp%253A%252F%252Fwww.bloglines.com%252Fmyblogs_display%253Fsub%253D29302699%2526site%253D5382440%26url%3Dhttp%253A%252F%252Fpermalink.gmane.org%252Fgmane.linux.debian.devel.changes.unstable%252F97340
-# Redirect Destination = http://www.skweezer.net/bloglines/skweeze.aspx?&i=d&l=en&r=http%3A%2F%2Fwww.bloglines.com%2Fmyblogs_display%3Fsub%3D29302699%26site%3D5382440&url=http%3A%2F%2Fpermalink.gmane.org%2Fgmane.linux.debian.devel.changes.unstable%2F97340
-.bloglines.com/r\?
-www.skweezer.net/bloglines
-# URL = http://media.fastclick.net/w/get.media?sid=4681&m=5&tp=6&url=http%3A//www.sciam.com/article.cfm%3FchanID%3Dsa003%26articleID%3DC7C87ECC-E7F2-99DF-39AEFF3D7D1A8CFB%26ref%3Drss
-# Redirected URL = http://media.fastclick.net/w/get.media?sid=4681&m=5&tp=6&url=http%3A//www.sciam.com/article.cfm%3FchanID%3Dsa003%26articleID%3DC7C87ECC-E7F2-99DF-39AEFF3D7D1A8CFB%26ref%3Drss
-# Redirect Destination = http://www.sciam.com/article.cfm?chanID=sa003&articleID=C7C87ECC-E7F2-99DF-39AEFF3D7D1A8CFB&ref=rss
-.fastclick.net/w/get\.media\?
-# Redirected URL = http://www.awin1.com/cread.php?awinmid=2891&awinaffid=43305&clickref=&p=http://www.groupon.co.uk/
-# Redirect Destination = http://www.groupon.co.uk/
-.awin1.com/.*=http://
-# Redirected URL = http://tr.anp.se/track?t=c&mid=1132291&uid=328397249&&&http:%2F%2Fwww%2Eresume%2Ese%2F%2Fnyheter%2F2011%2F03%2F31%2Fexpressen%2Dkampanjen%2Danmald%2F
-# Redirect Destination = http://www.resume.se//nyheter/2011/03/31/expressen-kampanjen-anmald/
-# Redirected URL = http://tr.anp.se/track?t=c&mid=1129528&uid=328397249&&&http:%2F%2Fwww%2Eresume%2Ese%2F%2Fnyheter%2F2011%2F03%2F29%2Fanstalt%2Dforbjod%2Dskurk%2F
-# Redirect Destination = http://www.resume.se//nyheter/2011/03/29/anstalt-forbjod-skurk/
-tr.anp.se/
-
-{+block{Looks like an anti-leech trigger URL.}}
-/antitheft\.php
-
-{+filter{tiny-textforms}}
-.sourceforge.net/tracker
-
-{+downgrade-http-version}
-:631
-
-{+redirect{http://config.privoxy.org/}}
-# Sticky Actions = +redirect{http://config.privoxy.org/}
-# URL = http://www.privoxy.org/config
-# Redirected URL = http://www.privoxy.org/config
-# Redirect Destination = http://config.privoxy.org/
-.privoxy.org/config
-
-{-hide-referrer -fast-redirects}
-# Sticky Actions = -hide-referrer -fast-redirects
-# URL = http://p.p
-# URL = http://config.privoxy.org
-p.p/
-config.privoxy.org/
-
-{-fast-redirects +redirect{s@^.*\*(http://login\.yahoo\.com/.*)$@$1@i}}
-# XXX: Privoxy-Regression-Test currently doesn't allow backslashes.
-# Sticky Actions = -fast-redirects +redirect
-# URL = http://us.ard.yahoo.com/SIG=AAAAAAAAA/M=NNNNNN.NNNNNNN.NNNNNNN.NNNNNNN/D=mail/S=NNNNNNNNN:HEADR/Y=YAHOO/EXP=NNNNNNNNNN/A=NNNNNNN/R=N/SIG=AAAAAAAAA/*http://login.yahoo.com/config/login?logout=1&.done=http://mail.yahoo.com&.src=ym&.intl=us
-# Redirected URL = http://us.ard.yahoo.com/SIG=AAAAAAAAA/M=NNNNNN.NNNNNNN.NNNNNNN.NNNNNNN/D=mail/S=NNNNNNNNN:HEADR/Y=YAHOO/EXP=NNNNNNNNNN/A=NNNNNNN/R=N/SIG=AAAAAAAAA/*http://login.yahoo.com/config/login?logout=1&.done=http://mail.yahoo.com&.src=ym&.intl=us
-# Redirect Destination = http://login.yahoo.com/config/login?logout=1&.done=http://mail.yahoo.com&.src=ym&.intl=us
-.yahoo./.*http://login.yahoo.com/config/login.*http://
-
-{-block -filter}
-# Sticky Actions = -block -filter
-# URL = http://l.yimg.com/g/combo/1?event-custom/event-custom-min.js&event/event-min.js&j/.H-.K.A.vNKEa&j/.CP-.U-.DE.A.vKEJz&j/.J_.BR_.CA.A.vKYkg&j/.J_.DB.A.vPpBT&j/popup-login.A.vR53Z&dump/dump-min.js&datatype/datatype-xml-min.js&substitute/substitute-min.js&json/json-min.js&queue-promote/queue-promote-min.js&io/io-min.js&j/.J_.DS.A.vQa28&j/.FW-.FX-.GH.A.vP3XB&j/grease.A.vRktP&j/.CC.A.vNiA6&j/.C-.BL.A.vPPj2&j/.CE-.K.A.vNy32&attribute/attribute-base-min.js&base/base-min.js&anim/anim-min.js&cookie/cookie-min.js&j/.B-.C-.F.A.vQ7SZ&j/urls.A.vQtXp&j/.B-.BY.A.vQCXP&j/.H-.BY.A.vQXXx&j/.DS-value-conversions.A.vQpRt&j/.G-.BD.A.vNHSH&event/event-synthetic-min.js&j/.G-.BO.A.vNwR4&j/.CV-.CH.A.vPFSZ&j/.X-.W-.C-.F.A.vKPQa&j/.X-.W-.D.A.vQXXx&j/.Q-.BX-.K.A.vR1kt&j/.DL.A.vLPjD&j/.CF.A.vNC24&j/.CX-.CY.A.vP8ND&event-simulate/event-simulate-min.js&node/node-event-simulate-min.js&j/.B-.T-.CI-.C-.F.A.vPJPF&j/.CM/.BA_2.5.1-.D.A.vPzui&j/bo-.S-.C-.F.A.vNwWe&j/bo-.S-.D.A.vR6Hx&j/.BZ-.D.A.vNstB&j/.B-.L-.C-.F.A.vNxPX&j/.B-.L-.BH.A.vMdVB&j/.CN-.DD.A.vLjJ2&j/.B-.O-.C-.F.A.vPpcK&j/.BM.A.vKPmz&j/.B-.O.A.vQyHg&j/.B-.H-.BB-.C-.F.A.vQvrB&j/.CW-.CU.A.vQ7Rg&j/.Y-.C-.F.A.vNqGa&j/.Y.A.vLKiT&j/.B-.M-.C-.F.A.vQxDc&j/.U-.CG.A.vQ5Tt&j/.B-.M.A.vQXXx&j/.B-.Q-.BQ.A.vQvTt&j/.B-.N-.C-.F.A.vQaRp&j/.CL.A.vN4N6&j/.B-.CL-.BW.A.vPwkx&j/.DR-.DG.A.vMLJr&j/.B-.BE-.C-.F.A.vPHP4&j/.B-.BE-.D.A.vQLQH&j/.BV.A.vm3Uz&j/.Z-.DK-.D.A.vLQEe&j/.Z-.DJ-.BJ.A.vLQEe&j/.B-.I-.C-.F.A.vPKTK&stylesheet/stylesheet-min.js&j/.B-.I.A.vQvDF&j/.CM-.DO.A.vPboD&j/.B-.D.A.vRbv8&j/.B-.H-.BB.A.vQuhn&j/.B-.N.A.vR6Cn&j/.B-.L-.CZ.A.vQmzP&j/.B-.T-.CI.A.vQXXx&j/.B-.I-.CQ-.BK-.C-.F.A.vNwZF&j/.B-.I-.CQ-.BK.A.vLWQR&j/.B-.R-.C-.F.A.vPfwi&j/.B-.R.A.vRhND&j/.DN-.BB-.D-.C-.F.A.vQXZg&j/.DN-.BB-.D.A.vRcXB&j/.BF_.D-.C-.F.A.vPGYM&j/.BF_.D.A.vQxJn&plugin/plugin-min.js&cache/cache-min.js&j/.CB-.C-.F.A.vNwWe&j/.CB-.D.A.vQS6T
-.yimg.com/g/combo/1\?event-custom/
-
-{-block -filter{content-cookies}}
-{-filter{content-cookies}}
-# Sticky Actions = -block
-# URL = http://www.flickr.com/
-.flickr.com/
-
-
-#----------------------------------------------------------------------------
-# Sections that modify the action settings based on tags.
-#----------------------------------------------------------------------------
-
-#############################################################################
-# Depends on +client-header-tagger{image-requests}
-#############################################################################
-{-handle-as-empty-document \
- +handle-as-image \
-}
-TAG:^IMAGE-REQUEST$
-
-#############################################################################
-# Depends on +client-header-tagger{css-requests}
-#############################################################################
-{+handle-as-empty-document \
- -handle-as-image \
-}
-TAG:^CSS-REQUEST$
-
+++ /dev/null
-# ********************************************************************
-#
-# File : $Source: /cvsroot/ijbswa/current/default.filter,v $
-#
-# $Id: default.filter,v 1.86 2013/02/19 11:14:47 fabiankeil Exp $
-#
-# Purpose : Rules to process the content of web pages
-#
-# Copyright : Written by and Copyright (C) 2001-2010 the
-# Privoxy team. http://www.privoxy.org/
-#
-# We value your feedback. However, to provide you with the best support,
-# please note:
-#
-# * Use the support forum to get help:
-# http://sourceforge.net/tracker/?group_id=11118&atid=211118
-# * Submit bugs only thru our bug forum:
-# http://sourceforge.net/tracker/?group_id=11118&atid=111118
-# Make sure that the bug has not already been submitted. Please try
-# to verify that it is a Privoxy bug, and not a browser or site
-# bug first. If you are using your own custom configuration, please
-# try the stock configs to see if the problem is a configuration
-# related bug. And if not using the latest development snapshot,
-# please try the latest one. Or even better, CVS sources.
-# * Submit feature requests only thru our feature request forum:
-# http://sourceforge.net/tracker/?atid=361118&group_id=11118&func=browse
-#
-# For any other issues, feel free to use the mailing lists:
-# http://sourceforge.net/mail/?group_id=11118
-#
-# Anyone interested in actively participating in development and related
-# discussions can join the appropriate mailing list here:
-# http://sourceforge.net/mail/?group_id=11118. Archives are available
-# here too.
-#
-#################################################################################
-#
-# Syntax:
-#
-# Generally filters start with a line like "FILTER: name description".
-# They are then referrable from the actionsfile with +filter{name}
-#
-# FILTER marks a filter as content filter, other filter
-# types are CLIENT-HEADER-FILTER, CLIENT-HEADER-TAGGER,
-# SERVER-HEADER-FILTER and SERVER-HEADER-TAGGER.
-#
-# Inside the filters, write one Perl-Style substitution (job) per line.
-# Jobs that precede the first FILTER: line are ignored.
-#
-# For Details see the pcrs manpage contained in this distribution.
-# (and the perlre, perlop and pcre manpages)
-#
-# Note that you are free to choose the delimiter as you see fit.
-#
-# Note2: In addition to the Perl options gimsx, the following nonstandard
-# options are supported:
-#
-# 'U' turns the default to ungreedy matching. Add ? to quantifiers to
-# switch back to greedy.
-#
-# 'T' (trivial) prevents parsing for backreferences in the substitute.
-# Use if you want to include text like '$&' in your substitute without
-# quoting.
-#
-# 'D' (Dynamic) allows the use of variables. Supported variables are:
-# $host, $origin (the IP address the request came from), $path and $url.
-#
-# Note that '$' is a bad choice as delimiter for dynamic filters as you
-# might end up with unintended variables if you use a variable name
-# directly after the delimiter. Variables will be resolved without
-# escaping anything, therefore you also have to be careful not to chose
-# delimiters that appear in the replacement text. For example '<' should
-# be save, while '?' will sooner or later cause conflicts with $url.
-#
-#################################################################################
-
-
-#################################################################################
-#
-# js-annoyances: Get rid of particularly annoying JavaScript abuse.
-#
-#################################################################################
-FILTER: js-annoyances Get rid of particularly annoying JavaScript abuse.
-
-# Note: Most of these jobs would be safer if restricted to a
-# <script> context as in:
-#
-# s/(<script.*)nasty-item(?=.*<\/script>)/$1replacement/sigU
-#
-# but that would make them match only the first occurrence of
-# nasty-item in each <script>. We need nestable jobs!
-
-# Get rid of Javascript referrer tracking.
-# Test page: http://www.javascript-page.com/referrer.html
-#
-s|(?:\w+\.)+referrer|"Not Your Business!"|gisU
-
-# The status bar is for displaying link targets, not pointless blahblah
-#
-s@([\W]\s*)((?:this|window)\.(?:default)?status)\s*=\s*((['"]).*?\4)@$1$2 =\
- (typeof(this.href) != 'undefined')?($3 + ' URL: ' + this.href):($2)@ig
-
-s/(?:(?:this|window)\.(?:default)?status)\s*=\s*\w*\s*;//ig
-
-# Kill OnUnload popups. Yummy.
-# Test: http://www.zdnet.com/zdsubs/yahoo/tree/yfs.html
-#
-s/(<body\s+[^>]*)onunload/$1never/siU
-s|(<script.*)window\.onunload(?=.*</script>)|$1never|sigU
-
-# If we allow window.open, we want normal window features:
-# Test: http://www.htmlgoodies.com/beyond/notitle.html
-#
-s/(open\s*\([^\)]+resizable=)(["']?)(?:no|0)\2/$1$2yes$2/sigU
-s/(open\s*\([^\)]+location=)(["']?)(?:no|0)\2/$1$2yes$2/sigU
-s/(open\s*\([^\)]+status=)(["']?)(?:no|0)\2/$1$2yes$2/sigU
-s/(open\s*\([^\)]+scroll(?:ing|bars)=)(["']?)(?:no|0)\2/$1$2auto$2/sigU
-s/(open\s*\([^\)]+menubar=)(["']?)(?:no|0)\2/$1$2yes$2/sigU
-s/(open\s*\([^\)]+toolbar=)(["']?)(?:no|0)\2/$1$2yes$2/sigU
-s/(open\s*\([^\)]+directories=)(["']?)(?:no|0)\2/$1$2yes$2/sigU
-s/(open\s*\([^\)]+fullscreen=)(["']?)(?:yes|1)\2/$1$2no$2/sigU
-s/(open\s*\([^\)]+always(?:raised|lowered)=)(["']?)(?:yes|1)\2/$1$2no$2/sigU
-s/(open\s*\([^\)]+z-?lock=)(["']?)(?:yes|1)\2/$1$2no$2/sigU
-s/(open\s*\([^\)]+hotkeys=)(["']?)(?:yes|1)\2/$1$2no$2/sigU
-s/(open\s*\([^\)]+titlebar=)(["']?)(?:no|0)\2/$1$2yes$2/sigU
-s/(open\s*\([^\)]+always(?:raised|lowered)=)(["']?)(?:yes|1)\2/$1$2no$2/sigU
-
-
-#################################################################################
-#
-# js-events: Kill JavaScript event bindings and timers (Radically destructive! Only for extra nasty sites).
-#
-#################################################################################
-FILTER: js-events Kill JavaScript event bindings and timers (Radically destructive! Only for extra nasty sites).
-
-s/(on|event\.)((mouse(over|out|down|up|move))|(un)?load|contextmenu|selectstart)/never/ig
-# Not events, but abused on the same type of sites:
-s/(alert|confirm)\s*\(/concat(/ig
-s/set(timeout|interval)\(/concat(/ig
-
-#################################################################################
-#
-# html-annoyances: Get rid of particularly annoying HTML abuse.
-#
-#################################################################################
-FILTER: html-annoyances Get rid of particularly annoying HTML abuse.
-
-# New browser windows (if allowed -- see no-popups filter below) should be
-# resizeable and have a location and status bar
-#
-s/(<a\s+href[^>]+resizable=)(['"]?)(?:no|0)\2/$1$2yes$2/igU
-s/(<a\s+href[^>]+location=)(['"]?)(?:no|0)\2/$1$2yes$2/igU
-s/(<a\s+href[^>]+status=)(['"]?)(?:no|0)\2/$1$2yes1$2/igU
-s/(<a\s+href[^>]+scrolling=)(['"]?)(?:no|0)\2/$1$2auto$2/igU
-s/(<a\s+href[^>]+menubar=)(['"]?)(?:no|0)\2/$1$2yes$2/igU
-
-# The <BLINK> and <MARQUEE> tags were crimes!
-#
-s-</?(blink|marquee).*>--sigU
-
-
-#################################################################################
-#
-# content-cookies: Kill cookies that come in the HTML or JS content.
-#
-#################################################################################
-FILTER: content-cookies Kill cookies that come in the HTML or JS content.
-
-# JS cookies, except those used by antiadbuster.com to detect us:
-#
-s|(\w+\.)+cookie(?=[ \t\r\n]*=)(?!='aab)|ZappedCookie|ig
-
-# HTML cookies:
-#
-s|<meta\s+http-equiv=['"]?set-cookie.*>|<!-- ZappedCookie -->|igU
-
-
-#################################################################################
-#
-# refresh-tags: Kill automatic refresh tags if refresh time is larger than 9 seconds.
-#
-#################################################################################
-FILTER: refresh-tags Kill automatic refresh tags if refresh time is larger than 9 seconds.
-
-# Note: Only deactivates refreshes with more than 9 seconds delay to
-# preserve monster-stupid but common redirections via meta tags.
-#
-s@<meta\s+http-equiv\s*=\s*(['"]?)refresh\1\s+content\s*=\s*(['"]?)\d{2,}\s*(;(?:\s*url\s*=\s*)?([^>\2]*))?\2@<link rev="x-refresh" href="$4"@ig
-
-
-#################################################################################
-#
-# unsolicited-popups: Disable unsolicited pop-up windows.
-#
-#################################################################################
-FILTER: unsolicited-popups Disable only unsolicited pop-up windows.
-
-s+([^'"]\s*<head.*>)(?=\s*[^'"])+$1<script>function PrivoxyWindowOpen(){return(null);}</script>+isU
-s@([^\w\s.]\s*)((?:map)?(window|this|parent)\.?)?open\s*\(@$1PrivoxyWindowOpen(@ig
-s+([^'"]\s*</html>)(?!\s*(\\n|'|"))+$1<script>function PrivoxyWindowOpen(a, b, c){return(window.open(a, b, c));}</script>+iU
-
-
-##################################################################################
-#
-# all-popups: Kill all popups in JavaScript and HTML.
-#
-#################################################################################
-FILTER: all-popups Kill all popups in JavaScript and HTML.
-
-s@((\W\s*)(?:map)?(window|this|parent)\.?)open\s*\\?\(@$1concat(@ig # JavaScript
-#s/\starget\s*=\s*(['"]?)_?(blank|new)\1?/ notarget/ig # HTML
-s/\starget\s*=\s*(['"]?)_?(blank|new)\1?/ /ig # (X)HTML
-
-##################################################################################
-#
-# img-reorder: Reorder attributes in <img> tags to make the banners-by-* filters more effective.
-#
-#################################################################################
-FILTER: img-reorder Reorder attributes in <img> tags to make the banners-by-* filters more effective.
-
-# In the first step src is moved to the start, then width is moved to the second
-# place to guarantee an order of src, width, height. Also does some white-space
-# normalization.
-#
-# This makes banners-by-size more effective and allows both banners-by-size
-# and banners-by-link to preserve the original image URL in the title attribute.
-
-s|<img\s+?([^>]*)\ssrc\s*=\s*(['"])([^>\\\2]+)\2|<img src=$2$3$2 $1|siUg
-s|<img\s+?([^>]*)\ssrc\s*=\s*([^'">\\\s]+)|<img src=$2 $1|sig
-s|(<img[^>]+height)\s*=\s*|$1=|sig
-
-s|<img (src=(?:(['"])[^>\\\\2]*\2\|[^'">\\\s]+?))([^>]*)\s+width\s*=\s*((["']?)\d+?\5)(?=[\s>])|<img $1 width=$4$3|siUg
-
-
-#################################################################################
-#
-# banners-by-size: Kill banners by size.
-#
-#################################################################################
-#
-# Standard banner sizes taken from http://www.iab.net/iab_banner_standards/bannersizes.html
-#
-# Note: Use http://config.privoxy.org/send-banner?type=trans for a transparent 1x1 image
-# Use http://config.privoxy.org/send-banner?type=pattern for a grey/white pattern image
-# Use http://config.privoxy.org/send-banner?type=auto to auto-select.
-#
-# Note2: Use img-reorder before this filter to ensure maximum matching success
-#
-#################################################################################
-FILTER: banners-by-size Kill banners by size.
-
-# 88*31
-s@<img\s+(?:src\s*=\s*(['"]?)([^>\\\1\s]+)\1)?[^>]*?(width=(['"]?)88\4)[^>]*?(height=(['"]?)31\6)[^>]*?(?=/?>)@\
- <img src="http://config.privoxy.org/send-banner?type=auto" border="0" title="Killed-$2-by-size" $3 $5@sig
-# 120*60, 120*90, 120*240, 120*600
-s@<img\s+(?:src\s*=\s*(['"]?)([^>\\\1\s]+)\1)?[^>]*?(width=(['"]?)120\4)[^>]*?(height=(['"]?)(?:600?|90|240)\6)[^>]*?(?=/?>)@\
- <img src="http://config.privoxy.org/send-banner?type=auto" border="0" title="Killed-$2-by-size" $3 $5@sig
-# 125*125
-s@<img\s+(?:src\s*=\s*(['"]?)([^>\\\1\s]+)\1)?[^>]*?(width=(['"]?)125\4)[^>]*?(height=(['"]?)125\6)[^>]*?(?=/?>)@\
- <img src="http://config.privoxy.org/send-banner?type=auto" border="0" title="Killed-$2-by-size" $3 $5@sig
-# 160*600
-s@<img\s+(?:src\s*=\s*(['"]?)([^>\\\1\s]+)\1)?[^>]*?(width=(['"]?)160\4)[^>]*?(height=(['"]?)600\6)[^>]*?(?=/?>)@\
- <img src="http://config.privoxy.org/send-banner?type=auto" border="0" title="Killed-$2-by-size" $3 $5@sig
-# 180*150
-s@<img\s+(?:src\s*=\s*(['"]?)([^>\\\1\s]+)\1)?[^>]*?(width=(['"]?)180\4)[^>]*?(height=(['"]?)150\6)[^>]*?(?=/?>)@\
- <img src="http://config.privoxy.org/send-banner?type=auto" border="0" title="Killed-$2-by-size" $3 $5@sig
-# 234*60, 468*60 (Most Banners!)
-s@<img\s+(?:src\s*=\s*(['"]?)([^>\\\1\s]+)\1)?[^>]*?(width=(['"]?)(?:234|468)\4)[^>]*?(height=(['"]?)60\6)[^>]*?(?=/?>)@\
- <img src="http://config.privoxy.org/send-banner?type=auto" border="0" title="Killed-$2-by-size" $3 $5@sig
-# 240*400
-s@<img\s+(?:src\s*=\s*(['"]?)([^>\\\1\s]+)\1)?[^>]*?(width=(['"]?)240\4)[^>]*?(height=(['"]?)400\6)[^>]*?(?=/?>)@\
- <img src="http://config.privoxy.org/send-banner?type=auto" border="0" title="Killed-$2-by-size" $3 $5@sig
-# 250*250, 300*250
-s@<img\s+(?:src\s*=\s*(['"]?)([^>\\\1\s]+)\1)?[^>]*?(width=(['"]?)(?:250|300)\4)[^>]*?(height=(['"]?)250\6)[^>]*?(?=/?>)@\
- <img src="http://config.privoxy.org/send-banner?type=auto" border="0" title="Killed-$2-by-size" $3 $5@sig
-# 336*280
-s@<img\s+(?:src\s*=\s*(['"]?)([^>\\\1\s]+)\1)?[^>]*?(width=(['"]?)336\4)[^>]*?(height=(['"]?)280\6)[^>]*?(?=/?>)@\
- <img src="http://config.privoxy.org/send-banner?type=auto" border="0" title="Killed-$2-by-size" $3 $5@sig
-
-# Note: 200*50 was also proposed, but it probably causes too much collateral damage:
-#
-#s@<img\s+(?:src\s*=\s*(['"]?)([^>\\\1\s]+)\1)?[^>]*?(width=(['"]?)200\4)[^>]*?(height=(['"]?)50\6)[^>]*?(?=/?>)@\
-# <img src="http://config.privoxy.org/send-banner?type=auto" border="0" title="Killed-$2-by-size" $3 $5@sig
-
-
-#################################################################################
-#
-# banners-by-link: Kill banners by their links to known clicktrackers (Experimental).
-#
-#################################################################################
-FILTER: banners-by-link Kill banners by their links to known clicktrackers.
-
-# Common case with width and height attributes:
-#
-s@<a\s+href\s*=\s*(['"]?)([^>\1\s]*?(?:\
- adclick # See www.dn.se \
-| advert # see dict.leo.org \
-| atwola\.com/(?:link|redir) # see www.cnn.com \
-| doubleclick\.net/jump/ # redirs for doublecklick.net ads \
-| counter # common \
-| (?<!&type=)tracker # (&type=tracker is used in sf's project statistics) \
-| adlog\.pl # see sf.net \
-)[^>\1\s]*)\1[^>]*>\s*<img\s+(?:src\s*=\s*(['"]?)([^>\\\3\s]+)\3)?[^>]*((?:width|height)\s*=\s*(['"]?)\d+?\6)[^>]*((?:width|height)\s*=\s*(['"]?)\d+?\8)[^>]*?(?=/?>)\
-@<img $5 $7 src="http://config.privoxy.org/send-banner?type=auto" border="0" title="Killed $4 by link to $2"@sigx
-
-# Rare case w/o explicit dimensions:
-#
-s@<a\s+href\s*=\s*(['"]?)([^>\1\s]*?(?:ad(?:click|vert)|atwola\.com/(?:link|redir)|doubleclick\.net/jump/|(?<!&type=)tracker|counter|adlog\.pl)[^>\1\s]*)\1[^>]*>\s*<img\s+(?:src\s*=\s*(['"]?)([^>\\\3\s]+)\3)?[^>]*?(?=/?>)@<img src="http://config.privoxy.org/send-banner?type=auto" border="0" title="Killed $4 by link to $2"@sig
-
-
-################################################################################
-#
-# webbugs: Squish WebBugs (1x1 invisible GIFs used for user tracking).
-#
-#################################################################################
-FILTER: webbugs Squish WebBugs (1x1 invisible GIFs used for user tracking).
-
-s@<img[^>]*\s(?:width|height)\s*=\s*['"]?[01](?=\D)[^>]*\s(?:width|height)\s*=\s*['"]?[01](?=\D)[^>]*?>@@siUg
-
-
-#################################################################################
-#
-# tiny-textforms: Extend those tiny textareas up to 40x80 and kill the hard wrap.
-#
-#################################################################################
-FILTER: tiny-textforms Extend those tiny textareas up to 40x80 and kill the hard wrap.
-
-s/(<textarea[^>]*?)(?:\s*(?:rows|cols)=(['"]?)\d+\2)+/$1 rows=$2\40$2 cols=$2\80$2/ig
-s/(<textarea[^>]*?)wrap=(['"]?)hard\2/$1/ig
-
-
-#################################################################################
-#
-# jumping-windows: Prevent windows from resizing and moving themselves.
-#
-#################################################################################
-FILTER: jumping-windows Prevent windows from resizing and moving themselves.
-
-s/(?<=[\W])(?:window|this|self)\.(?:move|resize)(?:to|by)\(/''.concat(/ig
-
-#################################################################################
-#
-# frameset-borders: Give frames a border, make them resizable and scrollable.
-#
-#################################################################################
-FILTER: frameset-borders Give frames a border and make them resizable.
-
-s/(<frameset\s+[^>]*)framespacing=(['"]?)(no|0)\2/$1/igU
-s/(<frameset\s+[^>]*)frameborder=(['"]?)(no|0)\2/$1/igU
-s/(<frameset\s+[^>]*)border=(['"]?)(no|0)\2/$1/igU
-s/(<frame\s+[^>]*)noresize/$1/igU
-s/(<frame\s+[^>]*)frameborder=(['"]?)(no|0)\2/$1/igU
-s/(<frame\s+[^>]*)scrolling=(['"]?)(no|0)\2/$1/igU
-
-
-#################################################################################
-#
-# iframes: Remove all detected iframes. Should only be enabled for
-# individual sites after testing that the iframes are optional.
-#
-#################################################################################
-FILTER: iframes Removes all detected iframes. Should only be enabled for individual sites.
-s@<iframe.*</iframe>@<!-- iframe removed by Privoxy's iframe filter -->@Uisg
-
-
-#################################################################################
-#
-# demoronizer: Correct Microsoft's abuse of standardized character sets, which
-# leave the browser to (mis)-interpret unknown characters, with
-# sometimes bizarre results on non-MS platforms.
-#
-# credit: ripped from the demoroniser.pl script by:
-# John Walker -- January 1998, http://www.fourmilab.ch/webtools/demoroniser
-#
-#################################################################################
-FILTER: demoronizer Fix MS's non-standard use of standard charsets.
-
-s/(&\#[0-2]\d\d)\s/$1; /g
-# per Robert Lynch: http://slate.msn.com//?id=2067547, just a guess.
-# Must come before x94 below.
-s/\xE2\x80\x94/ -- /g
-s/\x82/,/g
-#s-\x83-<em>f</em>-g
-s/\x84/,,/g
-s/\x85/.../g
-#s/\x88/^/g
-#s-\x89- °/°°-g
-s/\x8B/</g
-s/\x8C/Oe/g
-s/\x91/`/g
-s/\x92/'/g
-s/(\x93|\x94)/"/g
-# Bullet type character.
-s/\x95/·/g
-s/\x96/-/g
-s/\x97/--/g
-#s-\x98-<sup>~</sup>-g
-#s-\x99-<sup>TM</sup>-g
-# per Robert Lynch.
-s/\x9B/>/g # 155
-
-
-#################################################################################
-#
-# shockwave-flash: Kill embedded Shockwave Flash objects.
-# Note: Better just block "/.*\.swf$"!
-#
-#################################################################################
-FILTER: shockwave-flash Kill embedded Shockwave Flash objects.
-
-s|<object [^>]*macromedia.*</object>|<!-- Squished Shockwave Object -->|sigU
-s|<embed [^>]*(application/x-shockwave-flash\|\.swf).*>(.*</embed>)?|<!-- Squished Shockwave Flash Embed -->|sigU
-
-
-#################################################################################
-#
-# quicktime-kioskmode: Make Quicktime movies saveable.
-#
-#################################################################################
-FILTER: quicktime-kioskmode Make Quicktime movies saveable.
-
-s/(<embed\s+[^>]*)kioskmode\s*=\s*(["']?)true\2/$1/ig
-
-
-#################################################################################
-#
-# fun: Text replacements for subversive browsing fun!
-#
-#################################################################################
-FILTER: fun Text replacements for subversive browsing fun!
-
-# SCNR
-#
-s/microsoft(?!\.[^\s])/MicroSuck/ig
-
-# Buzzword Bingo (example for extended regex syntax)
-#
-s* (?:industry|world)[ -]leading \
-| cutting[ -]edge \
-| customer[ -]focused \
-| market[ -]driven \
-| award[ -]winning # Comments are OK, too! \
-| high[ -]performance \
-| solutions[ -]based \
-| unmatched \
-| unparalleled \
-| unrivalled \
-*$0<sup><font color="red"><b>Bingo!</b></font></sup> \
-*igx
-
-# For Germans only
-#
-s/(M|m)edien(?![^<]*>)/$1ädchen/Ug
-
-#################################################################################
-#
-# crude-parental: Crude parental filtering. Use with a suitable blocklist.
-# Pages are "blocked" based on keyword matching.
-#
-#################################################################################
-FILTER: crude-parental Crude parental filtering. Note that this filter doesn't work reliably.
-
-# (Note: Middlesex, Sussex and Essex are counties in the UK, not rude words)
-# (Note #2: Is 'sex' a rude word?!)
-
-s%^.*(?<!middle)(?<!sus)(?<!es)sex.*$%<html><head><title>Blocked</title></head><body>\
-<h3>Blocked by Privoxy's crude-parental filter due to possible adult content.</h3></body></html>%is
-
-s+^.*warez.*$+<html><head><title>No Warez</title></head><body><h3>You're not searching for illegal stuff, are you?</h3></body></html>+is
-
-# Remove by description
-s/^.*\
-(?:(suck|lick|tongue|rub|fuck|fingering|finger|chicks?)\s*)?\
-(?:(her|your|my|hard|with|big|wet|tight|pink|hot|moist|young|teen)\s*)+\
-(dicks?|penis|cocks?|balls?|tits?|pussy|cunt|clit|ass|mouth).*$\
-/This page has been blocked by Privoxy's crude-parental content filter\
-/is
-
-#Remove by link text
-s/^.*\
-(download|broadband|view|watch|free|get|extreem)?\s*\
-(sex|xxx|porn|cumshot|fuck(ing|s)?|anal|ass|asian|adult|Amateur|org(y|ies)|close ups?|hand?job|nail(ed)?)+\s*\
-(movies?|pics?|videos?|dvds?|dvd's|links?).*$\
-/This page has been blocked by Privoxy's crude-parental content filter\
-/is
-
-#Remove by age disclaimer
-s/^.*\
-(models?|chicks?|girls?|women|persons)\s*\
-(who|are|were)+ (over|at least) (16|18|21) years (old|of age).*$\
-/This page has been blocked by Privoxy's crude-parental content filter\
-/is
-
-#Remove by regulations
-s/^.*(Section 2257|18 U.?S.?C.? 2257).*$\
-/This page has been blocked by Privoxy's crude-parental content filter\
-/is
-
-
-#################################################################################
-#
-# IE-Exploits: Disable some known Internet Explorer bug exploits.
-#
-#################################################################################
-FILTER: ie-exploits Disable some known Internet Explorer bug exploits.
-
-# Note: This is basically a demo and waits for someone more interested in IE
-# security (sic!) to take over.
-
-# Cross-site-scripting:
-#
-s%f\("javascript:location.replace\('mk:@MSITStore:C:'\)"\);%alert\("This page looks like it tries to use a vulnerability described here:\n http://online.securityfocus.com/archive/1/298748/2002-11-02/2002-11-08/2"\);%siU
-
-# Address bar spoofing (http://www.secunia.com/advisories/10395/):
-#
-s/(<a[^>]*href[^>]*)(?:\x01|\x02|\x03|%0[012])@/$1MALICIOUS-LINK@/ig
-
-# Nimda:
-#
-s%<script language="JavaScript">(window\.open|1;''\.concat)\("readme\.eml", null, "resizable=no,top=6000,left=6000"\)</script>%<br><font size="7"> WARNING: This Server is infected with <a href="http://www.cert.org/advisories/CA-2001-26.html">Nimda</a>!</font>%g
-
-
-#################################################################################
-#
-#
-# site-specifics: Cure for site-specific problems. Don't apply generally!
-#
-# Note: The fixes contained here are so specific to the problems of the
-# particular web sites they are designed for that they would be a
-# waste of CPU cycles (or even destructive!) on 99.9% of the web
-# sites where they don't apply.
-#
-#################################################################################
-FILTER: site-specifics Cure for site-specific problems. Don't apply generally!
-
-# www.spiegel.de excludes X11 users from viewing Flash5 objects - shame.
-# Apply to: www.spiegel.de/static/js/flash-plugin.js
-#
-s/indexOf\("x11"\)/indexOf("x13")/
-
-# www.quelle-bausparkasse.de uses a very stupid redirect mechanism that
-# relies on a webbug being present. Can we tolerate that? No!
-# Apply to: www.quelle-bausparkasse.de/$
-#
-s/mylogfunc()//g
-
-# groups.yahoo.com has splash pages that one needs to click through in
-# order to access the actual messages. Let the browser do that. Thanks
-# to Paul Jobson for this one:
-#
-s|<a href="(.+?)">(?:Continue to message\|Weiter zu Nachricht)</a>|<meta http-equiv="refresh" content="0; URL=$1">|ig
-
-# monster.com has two very similar gimmicks:
-#
-s|<input type="hidden" name="REDIRECT" value="(.+?)">|<meta http-equiv="refresh" content="0; URL=$1">|i
-
-s|<IMG SRC="http://media.monster.com/mm/usen/my/no_thanks_211x40.gif".+?>|<meta http-equiv="refresh" content="0; URL=http://my.monster.com/resume.asp">|i
-
-# nytimes.com triggers popups through the onload handler of dummy images
-# to fool popup-blockers.
-#
-s|(<img [^>]*)onload|$1never|sig
-
-# Pre-check all the "Discard" buttons in GNU Mailman's web interface.
-# (This saves a lot of mouse aiming practice when flushing spamtraps)
-#
-s|(<INPUT name="\d{2,4}" type="RADIO" value="0") CHECKED |$1|g
-s|<INPUT name="\d{2,4}" type="RADIO" value="3" |$0 checked|g
-
-#################################################################################
-#
-# no-ping: Removes non-standard ping attributes in <a> and <area> tags.
-#
-#################################################################################
-FILTER: no-ping Removes non-standard ping attributes in <a> and <area> tags.
-s@(<a(?:rea)?[^>]*?)\sping=(['"]?)([^"'>]+)\2([>\s]?)@\
-<strong style="color:white; background-color:red;" title="Privoxy removed ping target '$3'">PING!</strong>\n$1$4@ig
-
-#################################################################################
-#
-# google: CSS-based block for Google text ads. Also removes
-# a width limitation and the toolbar advertisement.
-#
-#################################################################################
-FILTER: google CSS-based block for Google text ads. Also removes a width limitation and the toolbar advertisement.
-
-s@</head>[^\\]@<style type="text/css">\n\
- /* Style sheet inserted by Privoxy's google filter. */\n\
- \#fbc, \#fbl, \#ra, .rhh {visibility: hidden !important;}\n\
- \#tpa1,\#tpa2,\#tpa3,\#tpa4,\#tpa5,\#tpa5, \#spl, .ch, \#ads,\
- \#toolbar, \#google_ads_frame, \#mbEnd {display: none !important;}\n\
- .main_body, .j, \#res, .med, .hd, .g, .s\n\
- {width: 99%; max-width: 100%; margin-left: 0; margin-right: 0;}\n\
- </style>\n$0@
-s@<div style=\"padding-top:11px;min-width:500px\">@<div id="main_body">@
-s@(<table cellspacing=0 cellpadding=0 width=25% align=right bgcolor=\#ffffff border=0\
-|</font></td></tr></tbody></table><table align=\"right\" bgcolor=\"\#ffffff\"\
-|<table cellspacing=0 cellpadding=0 align=right bgcolor=\#ffffff border=0\
-|<table style=\"clear:both\" align=right width=25% cellspacing=\"0\" cellpadding=\"0\"\
- border=\"0\" bgcolor=\"\#ffffff\")@$0 id="ads"@
-s@(<br clear=all><table)( border=0 cellpadding=9><tr><td)@$1 id="toolbar"$2@
-
-#################################################################################
-#
-# yahoo: CSS-based block for Yahoo text ads. Also removes a width limitation.
-#
-#################################################################################
-FILTER: yahoo CSS-based block for Yahoo text ads. Also removes a width limitation.
-
-s@</head>@\n<style type="text/css">\n\
- /* Style sheet inserted by Privoxy's yahoo filter. */\n\
- \#symadbn, \#ymadbn, .yschbox, .yschhd, .bbox, \#yschsec, \#sec,\
- \#yschanswr, .yschftad, .yschspn, .yschspns, \#ygrp-sponsored-links,\
- \#nwad, \#MWA2, \#MSCM, \#yregad, \#sponsored-links,\
- \#ks-ypn-ads, .ad, \#east, \#ygrp-vital, .ads {display: none !important;}\n\
- \#yschpri, \#yschweb, \#pri, \#web, \#main, .yschttl, .abstr, .res \n\
- {width: 99% !important; max-width: 100% !important;}\n\
- .yschttl, .res, .res.indent, \#web {padding: 0px; margin: 0px !important;}\n\
- \#web {padding-left: 0.5em}\n\
- \#yschqcon, \#yschtg {width: auto !important; /* No useless horizontal scrollbar please */}\n\
- \#composebox \#compose_editorArea {width: 70% !important; /* reasonably sized reply textarea please */\n\
- </style>\n$0\n@
-
-s@(<textarea\s+id="composeArea"[^>]*)width:545px;@$1width:70%;@isU
-
-#################################################################################
-#
-# msn: CSS-based block for MSN text ads. Also removes tracking URLs
-# and a width limitation.
-#
-#################################################################################
-FILTER: msn CSS-based block for MSN text ads. Also removes tracking URLs and a width limitation.
-
-s@</head>@<style type="text/css">\n\
- /* Style sheet inserted by Privoxy's msn filter. */\n\
- .msn_ads, \#at, \#ar, .mktmsg {display: none !important;}\n\
- \#results, .flank, .results_area_flank, .results_area_stroke,\n\
- \#results_area, \#content, .sb_tlst, .sa_cc, .sb_ph, \#sw_main,\n\
-.content, \#sw_foot, \#bf, \#sw_content, \#sidebar, \#pag\n\
- {width: 99% !important; min-width: 99% !important;\n\
- max-width: 100% !important; /* width:100% sometimes causes horizontal scrollbars */}\n\
- /* Remove "suggestions". They are next to worthless but partly overlap with the search results */\n\
- .suggestion, \#nys_right, \#nys {clear: both; display:none;}\n\
- \#s_notf_div,\n \
- /* Overlay ads to enable Facebook 'likes' in search results. */\n\
- .sn_container {display:none !important;}\n\
- \#content {padding-right: 0;}\n\
- </style>\n$0@
-# Are these ids still in use?
-s@(<div[^>]*) id=(["']?)ads_[^\2]*\2@$1 class="msn_ads"@Uig
-s@(<div[^>]*) class=(["']?)sb_ads[^\2]*\2@$1 class="msn_ads"@Uig
-s@(<a[^>]*href=\")http://g.msn.com/.*\?(http://.*)(&&DI=.*)(\")@$1$2$4@Ug
-s@(<a[^>]*)gping=\".*\"@$1 title="URL cleaned up by Privoxy's msn filter"@Ug
-
-#################################################################################
-#
-# blogspot: Cleans up some Blogspot blogs. Read the fine print before using this.
-#
-# This filter also intentionally removes some navigation stuff and
-# sets the page width to 100%. As a result, some rounded "corners" would
-# appear to early or not at all and as fixing this would require a browser
-# that understands background-size (CSS3), they are removed instead.
-#
-# When applied to feeds, it removes comment titles that
-# only contain the beginning of the actual comment.
-#
-#################################################################################
-FILTER: blogspot Cleans up some Blogspot blogs. Read the fine print before using this.
-
-s@</head>@<style type="text/css">\n\
- /* Style sheet inserted by Privoxy's blogspot filter. */\n\
- \#powered-by {display: none !important;}\n\
- \#wrap4, \#wrapper {margin-top: 0px }\n\
- \#blogheader, \#header {margin-top: 0.5em !important}\n\
- \#content {width: 98% }\n\
- \#main {width: 70% }\n\
- \#sidebar {width: 29% }\n\
- .post-body {overflow: auto;}\n\
- .blogComments {width: 100%; overflow: auto;}\n</style>\n$0@
-s@<body.*(?:<div id="space-for-ie"></div>|(<div id="(?:content|wrap4|wrapper)))@<body>\
- <!-- Privoxy's blogspot filter ditched some garbage here -->$1@Us
-s@(<div style=\"[^\"]*width:)30em@$1 100%@
-s@background:url\(\"http://www.blogblog.com/rounders[^\"]*\"\).*;@/*$0*/@Ug
-s@(background:\#[a-f\d]{3})( url\(\"http://www.blogblog.com/rounders[^\"]*\"\).*;)@$1 ;/*$2*/@Ug
-# Do the feed filtering magic as described above.
-s@<title(?:\s+type=\'text\')?>([^<]*)(?:\.\.\.)?\s*</title>\s*\
-(<content(?:\s+type=\'(?:html|text)\')?>\s*\1)@<title></title>$2@ig
-
-#################################################################################
-#
-# x-httpd-php-to-html: Changes the Content-Type header from
-# x-httpd-php to html. "Content-Type: x-httpd-php"
-# is set by clueless PHP users and causes many
-# browsers do open a download menu instead of
-# rendering the page.
-#
-#################################################################################
-SERVER-HEADER-FILTER: x-httpd-php-to-html Changes the Content-Type header from x-httpd-php to html.
-
-s@^(Content-Type:)\s*application/x-httpd-php@$1 text/html@i
-
-#################################################################################
-#
-# html-to-xml: Changes the Content-Type header from html to xml.
-#
-#################################################################################
-SERVER-HEADER-FILTER: html-to-xml Changes the Content-Type header from html to xml.
-
-s@^(Content-Type:)\s*text/html(;.*)?$@$1 application/xhtml+xml$2@i
-
-#################################################################################
-#
-# xml-to-html: Changes the Content-Type header from xml to html.
-#
-#################################################################################
-SERVER-HEADER-FILTER: xml-to-html Changes the Content-Type header from xml to html.
-
-s@^(Content-Type:)\s*(?:application|text)/(?:xhtml\+)?xml(;.*)?$@$1 text/html$2@i
-
-#################################################################################
-#
-# hide-tor-exit-notation: Remove the Tor exit node notation in Host and Referer headers.
-#
-# Note: If Privoxy and Tor are chained and Privoxy is configured to
-# use socks4a, one can use http://www.example.org.foobar.exit/
-# to access the host www.example.org through Tor exit node foobar.
-#
-# As the HTTP client isn't aware of this notation, it treats the
-# whole string "www.example.org.foobar.exit" as host and uses it
-# for the "Host" and "Referer" headers. From the server's point of
-# view the resulting headers are invalid and can cause problems.
-#
-# An invalid "Referer" header can trigger "hot-linking" protections,
-# an invalid "Host" header will make it impossible for the server to
-# find the right vhost (several domains hosted on the same IP address).
-#
-# This filter removes the "foo.exit" part in those headers
-# to prevent the mentioned problems. Note that it only modifies
-# the HTTP headers, it doesn't make it impossible for the server
-# to detect your Tor exit node based on the IP address the request is
-# coming from.
-#
-#################################################################################
-CLIENT-HEADER-FILTER: hide-tor-exit-notation Removes the Tor exit node notation in Host and Referer headers.
-
-s@^((?:Referer|Host):\s*(?:https?://)?[^/]*)\.[^\./]*?\.exit@$1@i
-
-#################################################################################
-#
-# less-download-windows: Prevents annoying download windows for content types
-# the browser can handle itself.
-#
-#################################################################################
-SERVER-HEADER-FILTER: less-download-windows Prevent annoying download windows for content types the browser can handle itself.
-
-s@^Content-Disposition:.*filename=(["']?).*\.(png|gif|jpe?g|diff?|d?patch|c|h|pl|shar)\1.*$@@i
-s@^(Content-Type:)\s*(?:message/(?:news|rfc822)|text/x-.*|application/x-sh(?:\s|$))\s*@$1 text/plain@i
-
-#################################################################################
-#
-# image-requests: Tags detected image requests as "IMAGE-REQUEST". Whether
-# or not the detection actually works depends on the browser.
-#
-#################################################################################
-CLIENT-HEADER-TAGGER: image-requests Tags detected image requests as "IMAGE-REQUEST".
-
-s@^Accept:\s*image/.*@IMAGE-REQUEST@i
-
-#################################################################################
-#
-# css-requests: Tags detected CSS requests as "CSS-REQUEST". Whether
-# or not the detection actually works depends on the browser.
-#
-#################################################################################
-CLIENT-HEADER-TAGGER: css-requests Tags detected CSS requests as "CSS-REQUEST".
-
-s@^Accept:\s*text/css.*@CSS-REQUEST@i
-
-#################################################################################
-#
-# range-requests: Tags range requests as "RANGE-REQUEST".
-#
-# By default Privoxy removes Range headers for requests to
-# ressources that will be filtered to make sure the filters
-# get the whole picture. Otherwise Range requests could be
-# intentionally used to circumvent filters or, less likely,
-# filtering a partial response may damage it because it matched
-# a pattern that the ressource as a whole wouldn't.
-#
-# Range requests can be useful and save bandwidth so instead
-# of removing Range headers for requests to ressources that
-# will be filtered, you may prefer to simply disable filtering
-# for those requests.
-#
-# That's what this tagger is all about. After enabling it,
-# you can disable filtering for range requests using the following
-# action section:
-#
-# {-filter -deanimate-gifs}
-# TAG:^RANGE-REQUEST
-#
-#################################################################################
-CLIENT-HEADER-TAGGER: range-requests Tags range requests as "RANGE-REQUEST".
-
-s@^Range:.*@RANGE-REQUEST@i
-
-#################################################################################
-#
-# client-ip-address: Tags the request with the client's IP address.
-#
-#################################################################################
-CLIENT-HEADER-TAGGER: client-ip-address Tags the request with the client's IP address.
-
-s@^\w*\s+.*\s+HTTP/\d\.\d\s*@IP-ADDRESS: $origin@D
-
-#################################################################################
-#
-# http-method: Tags the request with its HTTP method.
-#
-#################################################################################
-CLIENT-HEADER-TAGGER: http-method Tags the request with its HTTP method.
-
-s@^(\w*).*HTTP/\d\.\d\s*$@$1@i
-
-#################################################################################
-#
-# allow-post: Tags POST requests as "ALLOWED-POST".
-#
-#################################################################################
-CLIENT-HEADER-TAGGER: allow-post Tags POST requests as "ALLOWED-POST".
-
-s@^(?:POST)\s+.*\s+HTTP/\d\.\d\s*@ALLOWED-POST@i
-
-#################################################################################
-#
-# complete-url: Tags the request with the whole request URL.
-#
-#################################################################################
-CLIENT-HEADER-TAGGER: complete-url Tags the request with the whole request URL.
-
-s@^\w*\s+(.*)\s+HTTP/\d\.\d\s*$@$1@i
-
-#################################################################################
-#
-# user-agent: Tags the request with the complete User-Agent header.
-#
-#################################################################################
-CLIENT-HEADER-TAGGER: user-agent Tags the request with the complete User-Agent header.
-
-s@^User-Agent:.*@$0@i
-
-#################################################################################
-#
-# referer: Tags the request with the complete Referer header.
-#
-#################################################################################
-CLIENT-HEADER-TAGGER: referer Tags the request with the complete Referer header.
-
-s@^Referer:.*@$0@i
-
-#################################################################################
-#
-# content-type: Tags the request with the content type declared by the server.
-#
-#################################################################################
-SERVER-HEADER-TAGGER: content-type Tags the request with the content type declared by the server.
-
-s@^Content-Type:\s*([^;]+).*@$1@i
-
-#################################################################################
-#
-# privoxy-control: The taggers create tags with the content of X-Privoxy-Control
-# headers, the filters remove said headers.
-#
-#################################################################################
-CLIENT-HEADER-TAGGER: privoxy-control Creates tags with the content of X-Privoxy-Control headers.
-
-s@^X-Privoxy-Control:\s*@@i
-
-CLIENT-HEADER-FILTER: privoxy-control Removes X-Privoxy-Control headers.
-
-s@^X-Privoxy-Control:.*@@i
-
-SERVER-HEADER-TAGGER: privoxy-control Creates tags with the content of X-Privoxy-Control headers.
-
-s@^X-Privoxy-Control:\s*@@i
-
-SERVER-HEADER-FILTER: privoxy-control Removes X-Privoxy-Control headers.
-
-s@^X-Privoxy-Control:.*@@i
+++ /dev/null
-#############################################################################
-# $Id: match-all.action,v 1.3 2010/03/27 18:48:38 fabiankeil Exp $
-#
-# This file contains the actions that are applied to all requests and
-# may be overruled later on by other actions files. Less experienced
-# users should only edit this file through the actions file editor.
-#
-#############################################################################
-{ \
-+change-x-forwarded-for{block} \
-+client-header-tagger{css-requests} \
-+client-header-tagger{image-requests} \
-+hide-from-header{block} \
-+set-image-blocker{pattern} \
-}
-/ # Match all URLs
+++ /dev/null
-##########################################################
-#
-# "Blocked" Error Output template for Privoxy.
-#
-# NOTE: UNLIKE THE OTHER TEMPLATES, THIS ONE USES
-# JavaScript write() TO GENERATE THE PAGE IN JS_AWARE
-# BROWSERS. SYMBOL SUBSTITUTIONS THAT RESULT IN MULTILINE
-# STRINGS WILL BREAK THE JavaScript SYNTAX.
-# USE WITH CAUTION.
-#
-# USING HTML TEMPLATES:
-# ---------------------
-#
-# Template files are written in plain HTML, with a few
-# additions:
-#
-# - Lines that start with a '#' character like this one
-# are ignored
-#
-# - Each item in the below list of exported symbols will
-# be replaced by dynamically generated text, if they
-# are enclosed in '@'-characters. E.g. The string @version@
-# will be replaced by the version number of Privoxy.
-#
-# - One special application of this is to make whole blocks
-# of the HTML template disappear if the condition <name>
-# is not given. Simply enclose the block between the two
-# strings @if-<name>start and if-<name>-end@. The strings
-# should be placed in HTML comments (<!-- -->), so the
-# html structure won't be messed when the magic happens.
-#
-# USABLE SYMBOLS IN THIS TEMPLATE:
-# --------------------------------
-#
-# my-ip-addr:
-# The IP-address that the client used to reach this proxy
-# my-hostname:
-# The hostname associated with my-ip-addr
-# admin-address:
-# The email address of the pxoxy's administrator, as configured
-# in the config file
-# default-cgi:
-# The URL for the "main menu" builtin CGI of this proxy
-# menu:
-# List of <li> elements linking to the other available CGIs
-# version:
-# The version number of the proxy software
-# code-status:
-# The development status of the proxy software: "alpha", "beta",
-# or "stable".
-# homepage:
-# The URL of the SourceForge ijbswa project, who maintains this
-# software.
-#
-# protocol:
-# The request's protocol: http:// or https://
-# hostport:
-# The host and port part of the blocked request's URL.
-# path:
-# The path part of the blocked request's URL.
-# path-ue:
-# The path part of the blocked request's URL, url-encoded.
-#
-#
-# CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
-# ------------------------------------------------------------------
-#
-# unstable:
-# This is an alpha or beta release of the proxy software
-# have-adminaddr-info:
-# An e-mail address for the local Privoxy adminstrator has
-# been specified and is available through the "admin-address"
-# symbol
-# have-proxy-info:
-# A URL for online documentation about this proxy has been
-# specified and is available through the "proxy-info-url"
-# symbol
-# have-help-info:
-# If either have-proxy-info is true or have-adminaddr-info is
-# true, have-help-info is true. Used to conditionally include
-# a grey box for any and all help info.
-# force-support:
-# Privoxy has been compiled with support for forced loading
-# of blocked content. In that case, the symbol "force-prefix" is
-# avaiable, which translates to the FORCE_PREFIX
-#
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
- <head>
- <title>Request blocked (Privoxy@@my-hostname@)</title>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="shortcut icon" href="@default-cgi@error-favicon.ico" type="image/x-icon">
- <style type="text/css">
-#include cgi-style.css
- </style>
- <script type="text/javascript" language="javascript">
- <!--
- /*
- * Is this window or frame too small
- * for the full-blown "blocked" page?
- */
- function isSmallFrame()
- {
- minWidth = 650;
- minHeight = 330;
-
- /*
- * Navigator, Mozilla, Opera
- */
- if (window.innerWidth
- && (window.innerWidth >= minWidth)
- && (window.innerHeight >= minHeight))
- {
- return false;
- }
-
- /*
- * MSIE
- */
- else if (document.body && document.body.clientWidth
- && (document.body.clientWidth >= minWidth)
- && (document.body.clientHeight >= minHeight))
- {
- return false;
- }
-
- /*
- * Small window or unsupported browser
- */
- return true;
- }
- //-->
- </script>
- </head>
- <body>
- <script type="text/javascript" language="javascript">
- <!--
-# Note: The same small version is used at the bottom
-# of this file in the <noscript> context. If you
-# make changes here, keep the other version in sync!
-
- if (isSmallFrame())
- {
- document.write('\
- <p class="small" align="center"> \
- Request blocked by <a href="@default-cgi@" target="_blank">Privoxy</a>: @block-reason@ \
- <br>See <a href="@default-cgi@show-url-info?url=@hostport@@path-ue@" \
- target="_blank">why this block applies</a> \
- <!-- @if-force-support-start --> \
- or <a href="http://@hostport@@force-prefix@@path@">go \
- <!-- if-force-support-end@ --> \
- to <b>@protocol@@hostport@@path@</b> \
- <!-- @if-force-support-start --> \
- anyway</a>. \
- <!-- if-force-support-end@ --> \
- </p> \
- ');
-
- }
- else
- {
- document.write('\
- <table cellpadding="20" cellspacing="10" border="0" width="100%">\
- <tr> \
- <td class="status"> \
- BLOCKED \
- </td> \
- <td class="title" width=100%> \
- <h1> \
- This is <a href="@homepage@">Privoxy</a> @version@ on @my-hostname@ (@my-ip-address@), port @my-port@, \
- @if-enabled-display-then@enabled@else-not-enabled-display@disabled@endif-enabled-display@ \
- </h1> \
- </td> \
- </tr> \
- \
-<!-- @if-unstable-start --> \
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in \
- <tr> \
- <td class="warning" colspan="2"> \
- <h2>Warning:</h2> \
- <p> \
- <b>Please note that this <font color=red>@code-status@</font> release \
- of the proxy software is not intended for production systems! \
- <br>Use at your own risk. See the <a href="http://www.gnu.org/copyleft/gpl.html">license</a> for details.</b> \
- </p> \
- </td> \
- </tr> \
-<!-- if-unstable-end@ --> \
- \
- <tr> \
- <td class="box" colspan="2"> \
- <h2>Request for blocked URL</h2> \
- <p>Your request for <b>@protocol@@hostport@@path@</b> was blocked. \
- <br>Block reason: @block-reason@ \
- <br><a href="@default-cgi@show-url-info?url=@hostport@@path-ue@" \
- target="_blank">See why this block applies</a> \
-<!-- @if-force-support-start --> \
- or <a href="http://@hostport@@force-prefix@@path@">go there anyway</a>. \
-<!-- if-force-support-end@ --> \
- </p> \
- </td> \
- </tr> \
- \
- <tr> \
- <td class="box" colspan="2"> \
- <h2>More Privoxy:</h2> \
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul> \
- </td> \
- </tr> \
- \
- <tr> \
- <td class="info" colspan="2"> \
- <big><b>Support and Service via Sourceforge:</b></big> \
- <p> \
- We value your feedback. To provide you with the best support, \
- we ask that you: \
- </p> \
- <ul> \
- <li> \
- use the <a href="http://sourceforge.net/tracker/?group_id=11118&atid=211118">support forum</a> or (better) the \
- <a href="http://sourceforge.net/mail/?group_id=11118">mailing lists</a> to get help. \
- </li> \
- <li> \
- submit banners and all problems with the actions file only through the \
- <a href="javascript:void(window.open(\'http://www.privoxy.org/actions\',\'Feedback\',\'width=600,scrollbars=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no\').focus());">actions \
- file feedback system</a>. \
- </li> \
- <li> \
- submit bugs only through our <a href="http://sourceforge.net/tracker/?group_id=11118&atid=111118">bug tracker</a>. \
- Make sure that the bug has not yet been submitted. \
- </li> \
- <li> \
- submit feature requests only through our <a href="http://sourceforge.net/tracker/?atid=361118&group_id=11118&func=browse">feature \
- request tracker</a>. \
- </li> \
- </ul> \
- </td> \
- </tr> \
- \
-<!-- @if-have-help-info-start --> \
- <tr> \
- <td class="info" colspan="2"> \
- <h2>Local Privoxy support:</h2> \
- \
-<!-- @if-have-proxy-info-start --> \
- <p>You can consult the <a href="@proxy-info-url@">online documentation</a> for more information about this Privoxy installation.</p> \
-<!-- if-have-proxy-info-end@ --> \
- \
-<!-- @if-have-adminaddr-info-start --> \
- <p>Address e-mail questions about this service to \
- <a href="mailto:@admin-address@"><code>@admin-address@</code></a>, \
- who will be glad to help you. \
- </p> \
-<!-- if-have-adminaddr-info-end@ --> \
- </td> \
- </tr> \
-<!-- if-have-help-info-end@ --> \
- \
- </table> \
- ');
- }
- //-->
- </script>
-
-# Note: The same small version is used above via JavaScript
-# If you make changes here, keep the other version in sync!
-
- <noscript>
- <p class="small" align="center">
- Request blocked by <a href="@default-cgi@" target="_blank">Privoxy</a>: @block-reason@
- <br>See <a href="@default-cgi@show-url-info?url=@hostport@@path-ue@"
- target="_blank">why this block applies</a>
- <!-- @if-force-support-start -->
- or <a href="http://@hostport@@force-prefix@@path@">go
- <!-- if-force-support-end@ -->
- to <b>@protocol@@hostport@@path@</b>
- <!-- @if-force-support-start -->
- anyway</a>.
- <!-- if-force-support-end@ -->
- </p>
- </noscript>
-
- </body>
-</html>
+++ /dev/null
-##########################################################
-#
-# No-Such-Domain Error Output template for Privoxy.
-#
-#
-# USING HTML TEMPLATES:
-# ---------------------
-#
-# Template files are written win plain HTML, with a few
-# additions:
-#
-# - Lines that start with a '#' character like this one
-# are ignored
-#
-# - Each item in the below list of exported symbols will
-# be replaced by dynamically generated text, if they
-# are enclosed in '@'-characters. E.g. The string @version@
-# will be replaced by the version number of Privoxy.
-#
-# - One special application of this is to make whole blocks
-# of the HTML template disappear if the condition <name>
-# is not given. Simply enclose the block between the two
-# strings @if-<name>start and if-<name>-end@. The strings
-# should be placed in HTML comments (<!-- -->), so the
-# html structure won't be messed when the magic happens.
-#
-# USABLE SYMBOLS IN THIS TEMPLATE:
-# --------------------------------
-#
-# my-ip-addr:
-# The IP-address that the client used to reach this proxy
-# my-hostname:
-# The hostname associated with my-ip-addr
-# admin-address:
-# The email address of the pxoxy's administrator, as configured
-# in the config file
-# default-cgi:
-# The URL for the "main menu" builtin CGI of this proxy
-# menu:
-# List of <li> elements linking to the other available CGIs
-# version:
-# The version number of the proxy software
-# code-status:
-# The development status of the proxy software: "alpha", "beta",
-# or "stable".
-# homepage:
-# The URL of the SourceForge ijbswa project, who maintains this
-# software.
-#
-# CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
-# ------------------------------------------------------------------
-#
-# unstable:
-# this is an alpha or beta release of the proxy software
-# have-adminaddr-info:
-# An e-mail address for the local Privoxy adminstrator has
-# been specified and is available through the "admin-address"
-# symbol
-# have-proxy-info:
-# A URL for online documentation about this proxy has been
-# specified and is available through the "proxy-info-url"
-# symbol
-# have-help-info:
-# If either have-proxy-info is true or have-adminaddr-info is
-# true, have-help-info is true. Used to conditionally include
-# a grey box for any and all help info.
-#
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-<head>
- <title>404 - Privoxy Configuration Page not found</title>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="stylesheet" type="text/css" href="@default-cgi@send-stylesheet">
- <link rel="shortcut icon" href="@default-cgi@error-favicon.ico">
-</head>
-
-<body>
-
- <table cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="status">
- 404
- </td>
- <td class="title" style="width: 100%">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning" colspan="2">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
- <tr>
- <td class="warning" colspan="2">
- <h2>Privoxy Configuration page not found</h2>
- <p>You typed in what looks like a URL used to configure
- Privoxy, but it cannot be recognised. Maybe it's
- for a different Privoxy version, or you typed it
- in wrong? Or maybe the Privoxy administrator
- has decided to disable the feature.</p>
- <p>If you got here by clicking a link in the
- configuration interface, please file a bug report!</p>
- <p>You can use the menu below to select from the available
- configuration options</p>
- </td>
- </tr>
-
- <tr>
- <td class="box" colspan="2">
- <h2>More Privoxy:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info" colspan="2">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info" colspan="2">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-
-</body>
-</html>
+++ /dev/null
-##########################################################
-#
-# No-Such-Domain Error Output template for Privoxy.
-#
-#
-# USING HTML TEMPLATES:
-# ---------------------
-#
-# Template files are written win plain HTML, with a few
-# additions:
-#
-# - Lines that start with a '#' character like this one
-# are ignored
-#
-# - Each item in the below list of exported symbols will
-# be replaced by dynamically generated text, if they
-# are enclosed in '@'-characters. E.g. The string @version@
-# will be replaced by the version number of Privoxy.
-#
-# - One special application of this is to make whole blocks
-# of the HTML template disappear if the condition <name>
-# is not given. Simply enclose the block between the two
-# strings @if-<name>start and if-<name>-end@. The strings
-# should be placed in HTML comments (<!-- -->), so the
-# html structure won't be messed when the magic happens.
-#
-# USABLE SYMBOLS IN THIS TEMPLATE:
-# --------------------------------
-#
-# my-ip-addr:
-# The IP-address that the client used to reach this proxy
-# my-hostname:
-# The hostname associated with my-ip-addr
-# admin-address:
-# The email address of the pxoxy's administrator, as configured
-# in the config file
-# default-cgi:
-# The URL for the "main menu" builtin CGI of this proxy
-# menu:
-# List of <li> elements linking to the other available CGIs
-# version:
-# The version number of the proxy software
-# code-status:
-# The development status of the proxy software: "alpha", "beta",
-# or "stable".
-# homepage:
-# The URL of the SourceForge ijbswa project, who maintains this
-# software.
-#
-# CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
-# ------------------------------------------------------------------
-#
-# unstable:
-# this is an alpha or beta release of the proxy software
-# have-adminaddr-info:
-# An e-mail address for the local Privoxy adminstrator has
-# been specified and is available through the "admin-address"
-# symbol
-# have-proxy-info:
-# A URL for online documentation about this proxy has been
-# specified and is available through the "proxy-info-url"
-# symbol
-# have-help-info:
-# If either have-proxy-info is true or have-adminaddr-info is
-# true, have-help-info is true. Used to conditionally include
-# a grey box for any and all help info.
-#
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-<head>
- <title>Privoxy: Bad parameter</title>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="stylesheet" type="text/css" href="@default-cgi@send-stylesheet">
- <link rel="shortcut icon" href="@default-cgi@error-favicon.ico">
-</head>
-
-<body>
-
- <table cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="title">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
- <tr>
- <td class="warning">
- <h2>Bad parameter to Privoxy configuration page</h2>
- <p>You've found a page used to configure Privoxy, but the
- parameters (the part of the web page address after the
- "?" mark) are wrong or missing.</p>
- <p>Possible causes:</p>
- <ul>
- <li>If you just typed a URL pattern into a form, then you got
- something wrong. Press the "back" button on your browser
- once and correct what you typed.</li>
- <li>If you tried to type in the URL, then you've found a
- page where you can't do that. You can only view this
- page by following links from elsewhere in the configuration
- interface.</li>
- <li>If you got here using your browser's "back" button, then
- that is deliberately disabled for this page.</li>
- <li>If you got here by clicking a link in the
- configuration interface, please file a bug report!</li>
- </ul>
- <p>You can use the menu below to select from the available
- configuration options</p>
- </td>
- </tr>
-
- <tr>
- <td class="box">
- <h2>Privoxy Menu:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-
-</body>
-</html>
+++ /dev/null
-##########################################################
-#
-# Feature disabled or referrer untrusted Error Output template for Privoxy.
-#
-#
-# USING HTML TEMPLATES:
-# ---------------------
-#
-# Template files are written win plain HTML, with a few
-# additions:
-#
-# - Lines that start with a '#' character like this one
-# are ignored
-#
-# - Each item in the below list of exported symbols will
-# be replaced by dynamically generated text, if they
-# are enclosed in '@'-characters. E.g. The string @version@
-# will be replaced by the version number of Privoxy.
-#
-# - One special application of this is to make whole blocks
-# of the HTML template disappear if the condition <name>
-# is not given. Simply enclose the block between the two
-# strings @if-<name>start and if-<name>-end@. The strings
-# should be placed in HTML comments (<!-- -->), so the
-# html structure won't be messed when the magic happens.
-#
-# USABLE SYMBOLS IN THIS TEMPLATE:
-# --------------------------------
-#
-# my-ip-addr:
-# The IP-address that the client used to reach this proxy
-# my-hostname:
-# The hostname associated with my-ip-addr
-# admin-address:
-# The email address of the pxoxy's administrator, as configured
-# in the config file
-# default-cgi:
-# The URL for the "main menu" builtin CGI of this proxy
-# menu:
-# List of <li> elements linking to the other available CGIs
-# version:
-# The version number of the proxy software
-# code-status:
-# The development status of the proxy software: "alpha", "beta",
-# or "stable".
-# homepage:
-# The URL of the SourceForge ijbswa project, who maintains this
-# software.
-#
-# CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
-# ------------------------------------------------------------------
-#
-# unstable:
-# this is an alpha or beta release of the proxy software
-# have-adminaddr-info:
-# An e-mail address for the local Privoxy adminstrator has
-# been specified and is available through the "admin-address"
-# symbol
-# have-proxy-info:
-# A URL for online documentation about this proxy has been
-# specified and is available through the "proxy-info-url"
-# symbol
-# have-help-info:
-# If either have-proxy-info is true or have-adminaddr-info is
-# true, have-help-info is true. Used to conditionally include
-# a grey box for any and all help info.
-#
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-<head>
- <title>Configuration Page Disabled</title>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="stylesheet" type="text/css" href="@default-cgi@send-stylesheet">
- <link rel="shortcut icon" href="@default-cgi@error-favicon.ico">
-</head>
-
-<body>
-
- <table summary="" cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="title">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
- <tr>
- <td class="warning">
- <h2>Privoxy Configuration access denied</h2>
- <p>Access to <b>@url@</b> has been denied because:</p>
-
- <ul>
- <li>it requires a feature that has been disabled by the Privoxy administrator,</li>
- <li>you didn't come here through one of Privoxy's CGI pages, or</li>
- <li>the <q>Referer:</q> header is blocked.</li>
- </ul>
-
- <p>Note that the following features which used to be enabled in earlier
- releases are now off by default:
- </p>
- <ul>
- <li><a href="@user-manual@config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</a></li>
- <li><a href="@user-manual@config.html#ENABLE-REMOTE-TOGGLE">enable-remote-toggle</a></li>
- <li><a href="@user-manual@config.html#ENABLE-REMOTE-HTTP-TOGGLE">enable-remote-http-toggle</a>
- (Most likely you don't need this anyway.)</li>
- </ul>
-
- <p>Please refer to the documentation behind the links to learn how to
- enable them again and what the consequences are.</p>
-
- <p>All enabled features are accessible from the
- <a href="@default-cgi@">main menu</a>, some of them
- are <em>protected</em> with a referrer check though.
- If you got caught by the referrer check, but are <strong>absolutely</strong> sure
- you know what you are doing, please <a title="Retry from a trusted referrer"
- href="@url@">try again</a>.</p>
-
- <p>If the <q>Referer:</q> header is blocked, you'll have to make an exception for
- Privoxy's web interface first. Note that <em>dumb</em> referrer blocking
- is a bad idea anyway, as it makes it easier to fingerprint your
- requests. Consider using Privoxy's conditional referrer block instead.</p>
- </td>
- </tr>
-
- <tr>
- <td class="box">
- <h2>More Privoxy:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-
-</body>
-</html>
+++ /dev/null
-##########################################################
-#
-# No-Such-Domain Error Output template for Privoxy.
-#
-#
-# USING HTML TEMPLATES:
-# ---------------------
-#
-# Template files are written win plain HTML, with a few
-# additions:
-#
-# - Lines that start with a '#' character like this one
-# are ignored
-#
-# - Each item in the below list of exported symbols will
-# be replaced by dynamically generated text, if they
-# are enclosed in '@'-characters. E.g. The string @version@
-# will be replaced by the version number of Privoxy.
-#
-# - One special application of this is to make whole blocks
-# of the HTML template disappear if the condition <name>
-# is not given. Simply enclose the block between the two
-# strings @if-<name>start and if-<name>-end@. The strings
-# should be placed in HTML comments (<!-- -->), so the
-# html structure won't be messed when the magic happens.
-#
-# USABLE SYMBOLS IN THIS TEMPLATE:
-# --------------------------------
-#
-# my-ip-addr:
-# The IP-address that the client used to reach this proxy
-# my-hostname:
-# The hostname associated with my-ip-addr
-# admin-address:
-# The email address of the pxoxy's administrator, as configured
-# in the config file
-# default-cgi:
-# The URL for the "main menu" builtin CGI of this proxy
-# menu:
-# List of <li> elements linking to the other available CGIs
-# version:
-# The version number of the proxy software
-# code-status:
-# The development status of the proxy software: "alpha", "beta",
-# or "stable".
-# homepage:
-# The URL of the SourceForge ijbswa project, who maintains this
-# software.
-#
-# CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
-# ------------------------------------------------------------------
-#
-# unstable:
-# this is an alpha or beta release of the proxy software
-# have-adminaddr-info:
-# An e-mail address for the local Privoxy adminstrator has
-# been specified and is available through the "admin-address"
-# symbol
-# have-proxy-info:
-# A URL for online documentation about this proxy has been
-# specified and is available through the "proxy-info-url"
-# symbol
-# have-help-info:
-# If either have-proxy-info is true or have-adminaddr-info is
-# true, have-help-info is true. Used to conditionally include
-# a grey box for any and all help info.
-#
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-<head>
- <title>Privoxy: Actions file not found</title>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="stylesheet" type="text/css" href="@default-cgi@send-stylesheet">
- <link rel="shortcut icon" href="@default-cgi@error-favicon.ico">
-</head>
-
-<body>
-
- <table cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="title">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
- <tr>
- <td class="warning">
- <h2>Actions file not found</h2>
- <p>The actions file you are trying to edit (index <code>@f@</code>)
- does not exist, or cannot be read.</p>
- </td>
- </tr>
-
- <tr>
- <td class="box">
- <h2>Privoxy Menu:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-
-</body>
-</html>
+++ /dev/null
-##########################################################
-#
-# No-Such-Domain Error Output template for Privoxy.
-#
-#
-# USING HTML TEMPLATES:
-# ---------------------
-#
-# Template files are written win plain HTML, with a few
-# additions:
-#
-# - Lines that start with a '#' character like this one
-# are ignored
-#
-# - Each item in the below list of exported symbols will
-# be replaced by dynamically generated text, if they
-# are enclosed in '@'-characters. E.g. The string @version@
-# will be replaced by the version number of Privoxy.
-#
-# - One special application of this is to make whole blocks
-# of the HTML template disappear if the condition <name>
-# is not given. Simply enclose the block between the two
-# strings @if-<name>start and if-<name>-end@. The strings
-# should be placed in HTML comments (<!-- -->), so the
-# html structure won't be messed when the magic happens.
-#
-# USABLE SYMBOLS IN THIS TEMPLATE:
-# --------------------------------
-#
-# my-ip-addr:
-# The IP-address that the client used to reach this proxy
-# my-hostname:
-# The hostname associated with my-ip-addr
-# admin-address:
-# The email address of the pxoxy's administrator, as configured
-# in the config file
-# default-cgi:
-# The URL for the "main menu" builtin CGI of this proxy
-# menu:
-# List of <li> elements linking to the other available CGIs
-# version:
-# The version number of the proxy software
-# code-status:
-# The development status of the proxy software: "alpha", "beta",
-# or "stable".
-# homepage:
-# The URL of the SourceForge ijbswa project, who maintains this
-# software.
-#
-# CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
-# ------------------------------------------------------------------
-#
-# unstable:
-# this is an alpha or beta release of the proxy software
-# have-adminaddr-info:
-# An e-mail address for the local Privoxy adminstrator has
-# been specified and is available through the "admin-address"
-# symbol
-# have-proxy-info:
-# A URL for online documentation about this proxy has been
-# specified and is available through the "proxy-info-url"
-# symbol
-# have-help-info:
-# If either have-proxy-info is true or have-adminaddr-info is
-# true, have-help-info is true. Used to conditionally include
-# a grey box for any and all help info.
-#
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-<head>
- <title>Privoxy: Cannot write to actions file</title>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="stylesheet" type="text/css" href="@default-cgi@send-stylesheet">
- <link rel="shortcut icon" href="@default-cgi@error-favicon.ico">
-</head>
-
-<body>
-
- <table cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="title">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
- <tr>
- <td class="warning">
- <h2>Cannot write to actions file</h2>
- <p>The actions file you are trying to edit (<code>@f@.action</code>)
- could not be written to.</p>
- <p>You many not have permission to write to the file - check the file
- permissions. On Windows, right-click the file, choose Properties,
- and make sure it is not read-only.</p>
- <p>Another reason you may see this message is if you have run out of
- disk space. If that is the case, then the actions file has been
- truncated - if you get further errors, you may need to fix it
- using a text editor.</p>
- </td>
- </tr>
-
- <tr>
- <td class="box">
- <h2>Privoxy Menu:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-
-</body>
-</html>
+++ /dev/null
-##########################################################
-#
-# No-Such-Domain Error Output template for Privoxy.
-#
-#
-# USING HTML TEMPLATES:
-# ---------------------
-#
-# Template files are written win plain HTML, with a few
-# additions:
-#
-# - Lines that start with a '#' character like this one
-# are ignored
-#
-# - Each item in the below list of exported symbols will
-# be replaced by dynamically generated text, if they
-# are enclosed in '@'-characters. E.g. The string @version@
-# will be replaced by the version number of Privoxy.
-#
-# - One special application of this is to make whole blocks
-# of the HTML template disappear if the condition <name>
-# is not given. Simply enclose the block between the two
-# strings @if-<name>start and if-<name>-end@. The strings
-# should be placed in HTML comments (<!-- -->), so the
-# html structure won't be messed when the magic happens.
-#
-# USABLE SYMBOLS IN THIS TEMPLATE:
-# --------------------------------
-#
-# my-ip-addr:
-# The IP-address that the client used to reach this proxy
-# my-hostname:
-# The hostname associated with my-ip-addr
-# admin-address:
-# The email address of the pxoxy's administrator, as configured
-# in the config file
-# default-cgi:
-# The URL for the "main menu" builtin CGI of this proxy
-# menu:
-# List of <li> elements linking to the other available CGIs
-# version:
-# The version number of the proxy software
-# code-status:
-# The development status of the proxy software: "alpha", "beta",
-# or "stable".
-# homepage:
-# The URL of the SourceForge ijbswa project, who maintains this
-# software.
-#
-# CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
-# ------------------------------------------------------------------
-#
-# unstable:
-# this is an alpha or beta release of the proxy software
-# have-adminaddr-info:
-# An e-mail address for the local Privoxy adminstrator has
-# been specified and is available through the "admin-address"
-# symbol
-# have-proxy-info:
-# A URL for online documentation about this proxy has been
-# specified and is available through the "proxy-info-url"
-# symbol
-# have-help-info:
-# If either have-proxy-info is true or have-adminaddr-info is
-# true, have-help-info is true. Used to conditionally include
-# a grey box for any and all help info.
-#
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-<head>
- <title>Privoxy: URL out of date</title>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="stylesheet" type="text/css" href="@default-cgi@send-stylesheet">
- <link rel="shortcut icon" href="@default-cgi@error-favicon.ico">
-</head>
-
-<body>
-
- <table cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="title">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
- <tr>
- <td class="warning">
- <h2>URL out of date - file has changed since it was generated</h2>
- <p>The URL you're viewing is out of date. To prevent possible
- damage to your configuration file, this action has been ignored.
- </p>
- <p>Possible causes:</p>
- <ul>
- <li>If you got here using your browser's "back" button, then
- that is deliberately disabled for this page. Please
- navigate around the configuration editor using the
- links provided.</li>
- <li>Perhaps you've got more than one browser window open, and
- you're trying to change the same file in both? You can
- only have one editor window open at a time. Your other edit
- window should continue to function.</li>
- <li>You may have modified the file some other way - perhaps by
- editing it with a text editor. Simply go back in to the
- configuration interface using the links below.</li>
- </ul>
- <p>You can go back into the edit interface using the menu below,
- or by clicking <a href="edit-actions-list?f=@f@">here</a>.
- </p>
- </td>
- </tr>
-
- <tr>
- <td class="box">
- <h2>More Privoxy:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-
-</body>
-</html>
+++ /dev/null
-##########################################################
-#
-# No-Such-Domain Error Output template for Privoxy.
-#
-#
-# USING HTML TEMPLATES:
-# ---------------------
-#
-# Template files are written win plain HTML, with a few
-# additions:
-#
-# - Lines that start with a '#' character like this one
-# are ignored
-#
-# - Each item in the below list of exported symbols will
-# be replaced by dynamically generated text, if they
-# are enclosed in '@'-characters. E.g. The string @version@
-# will be replaced by the version number of Privoxy.
-#
-# - One special application of this is to make whole blocks
-# of the HTML template disappear if the condition <name>
-# is not given. Simply enclose the block between the two
-# strings @if-<name>start and if-<name>-end@. The strings
-# should be placed in HTML comments (<!-- -->), so the
-# html structure won't be messed when the magic happens.
-#
-# USABLE SYMBOLS IN THIS TEMPLATE:
-# --------------------------------
-#
-# my-ip-addr:
-# The IP-address that the client used to reach this proxy
-# my-hostname:
-# The hostname associated with my-ip-addr
-# admin-address:
-# The email address of the pxoxy's administrator, as configured
-# in the config file
-# default-cgi:
-# The URL for the "main menu" builtin CGI of this proxy
-# menu:
-# List of <li> elements linking to the other available CGIs
-# version:
-# The version number of the proxy software
-# code-status:
-# The development status of the proxy software: "alpha", "beta",
-# or "stable".
-# homepage:
-# The URL of the SourceForge ijbswa project, who maintains this
-# software.
-#
-# CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
-# ------------------------------------------------------------------
-#
-# unstable:
-# this is an alpha or beta release of the proxy software
-# have-adminaddr-info:
-# An e-mail address for the local Privoxy adminstrator has
-# been specified and is available through the "admin-address"
-# symbol
-# have-proxy-info:
-# A URL for online documentation about this proxy has been
-# specified and is available through the "proxy-info-url"
-# symbol
-# have-help-info:
-# If either have-proxy-info is true or have-adminaddr-info is
-# true, have-help-info is true. Used to conditionally include
-# a grey box for any and all help info.
-#
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-<head>
- <title>Privoxy: Parse error</title>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="stylesheet" type="text/css" href="@default-cgi@send-stylesheet">
- <link rel="shortcut icon" href="@default-cgi@error-favicon.ico">
-</head>
-
-<body>
-
- <table cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="title">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
- <tr>
- <td class="warning">
- <h2>Parse error</h2>
- <p>The file you're trying to edit is not valid. You need to fix
- it using a text editor before you can edit it using the
- web-based editor.</p>
- <p>This error should only occur if you edited the file using a text
- editor. If you managed to take a valid file and break it this
- badly using the web-based editor, please file a bug report!</p>
- <p>When you've fixed the problem, you can go back into the edit
- interface using the menu below, or by clicking <a
- href="edit-actions-list?f=@f@">here</a>.
- </p>
- </td>
- </tr>
-
- <tr>
- <td class="box">
- <h2>Problem description:</h2>
- <p>@parse-error@</p>
- </td>
- </tr>
-
- <tr>
- <td class="box">
- <h2>The line which caused the problem:</h2>
- <pre>@line-raw@</pre>
- </td>
- </tr>
-
- <tr>
- <td class="box">
- <h2>The line which caused the problem, with comments removed</h2>
- <p><code>@line-data@</code></p>
- </td>
- </tr>
-
- <tr>
- <td class="box">
- <h2>Note</h2>
- <p>Only the first error is reported - the file may contain other
- errors, as well as the one reported above.</p>
- </td>
- </tr>
-
- <tr>
- <td class="box">
- <h2>More Privoxy:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-
-</body>
-</html>
+++ /dev/null
-##############################################################################
-#
-# File : $Source: /cvsroot/ijbswa/current/templates/cgi-style.css,v $
-#
-# Purpose : Style sheet for the web-based config interface.
-#
-# Copyright : Written by and Copyright (C) 2001 the SourceForge
-# Privoxy team. http://www.privoxy.org/
-#
-# Original Author: Copyright (C) 2001 Jonathan Foster
-# http://www.jon-foster.co.uk/
-#
-# This program is free software; you can redistribute it
-# and/or modify it under the terms of the GNU General
-# Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will
-# be useful, but WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. See the GNU General Public
-# License for more details.
-#
-# The GNU General Public License should be included with
-# this file. If not, you can view it at
-# http://www.gnu.org/copyleft/gpl.html
-# or write to the Free Software Foundation, Inc., 59
-# Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-##############################################################################
-
-/*
- * CSS for Privoxy CGI and script output
- *
- * $Id: cgi-style.css,v 1.14 2011/09/04 11:09:40 fabiankeil Exp $
- */
-
-/*
- * General rules: Font, Color, Headings, Margins, Links
- */
-body,td,th { font-family: arial, helvetica, helv, sans-serif; }
-body { background-color: #ffffff; color: #000000; }
-
-h1 { font-size: 140%; margin: 0px; }
-h2 { font-size: 120%; margin: 0px; }
-h3 { font-size: 110%; margin: 0px; }
-
-p,pre { margin-left: 15px; }
-li { margin: 2px 15px; }
-dl { margin: 2px 15px; }
-
-a:link { color: #0000dd; text-decoration: none; }
-a:visited { color: #330099; text-decoration: none; }
-a:active { color: #3333ff; text-decoration: none; }
-
-/*
- * Boxen as Table elements:
- */
-td.title { border: solid black 1px; background-color: #dddddd; }
-td.box { border: solid black 1px; background-color: #eeeeee; }
-td.info { border: solid black 1px; background-color: #ccccff; }
-td.warning { border: solid black 1px; background-color: #ffdddd; }
-
-/*
- * Special Table Boxen: for nesting, naked container and for
- * the Status field in CGI Output:
- */
-td.wrapbox { border: solid black 1px; padding: 5px; }
-td.container { padding: 0px; }
-td.status { border: solid black 1px; background-color: #ff0000; color: #ffffff; font-size: 300%; font-weight: bolder; }
-
-/*
- * Same Boxen as <div>s:
- */
-div.title { border: solid black 1px; background-color: #dddddd; margin: 20px; padding: 20px; }
-div.box { border: solid black 1px; background-color: #eeeeee; margin: 20px; padding: 20px; }
-div.info { border: solid black 1px; background-color: #ccccff; margin: 20px; padding: 20px; }
-div.warning { border: solid black 1px; background-color: #ffdddd; margin: 20px; padding: 20px; }
-div.wrapbox { border: solid black 1px; margin: 20px; padding: 5px; }
-
-
-/*
- * Bold definitions in <dl>s, grey BG for table headings, transparent (no-bordered) table
- */
-dt { font-weight: bold; }
-th { background-color: #dddddd; }
-table.transparent { border-style: none}
-
-/*
- * Special purpose paragraphs: Small for page footers,
- * Important for quoting wrong or dangerous examples,
- * Whiteframed for the toggle?mini=y CGI
- */
-p.small { font-size: 10px; margin: 0px; }
-p.important { border: solid black 1px; background-color: #ffdddd; font-weight: bold; padding: 2px; }
-p.whiteframed { margin: 5px; padding: 5px; border: solid black 1px; text-align: center; background-color: #eeeeee; }
-
-/*
- * Links as buttons:
- */
-
-td.buttons {
- padding: 2px;
-}
-
-a.cmd, td.indentbuttons a, td.buttons a {
- white-space: nowrap;
- width: auto;
- padding: 2px;
- background-color: #dddddd;
- color: #000000;
- text-decoration: none;
- border-top: 1px solid #ffffff;
- border-left: 1px solid #ffffff;
- border-bottom: 1px solid #000000;
- border-right: 1px solid #000000;
-}
-a.cmd:hover, td.indentbuttons a:hover, td.buttons a:hover {
- background-color: #eeeeee;
-}
-a.cmd:active, td.indentbuttons a:active, td.buttons a:active {
- border-top: 1px solid #000000;
- border-left: 1px solid #000000;
- border-bottom: 1px solid #ffffff;
- border-right: 1px solid #ffffff;
-}
-
-
-/*
- * Special red emphasis:
- */
-em.warning, strong.warning { color: #ff0000 }
-
-/*
- * In show-status we use tables directly behind headlines
- * and for some reason or another the headlines are set to
- * "margin:0" and leave the tables no air to breath.
- *
- * A proper fix would be to replace or remove the "margin:0",
- * but as this affects every cgi page we do it another time
- * and use this workaround until then.
- */
-.box table { margin-top: 1em; }
-
-/*
- * Let the URL and pattern input fields scale with the browser
- * width and try to prevent vertical scroll bars if the width
- * is less than 80 characters.
- */
-input.url, input.pattern { width: 95%; }
+++ /dev/null
-##########################################################
-#
-# Connect-Failed Error Output template for Privoxy.
-#
-#
-# USING HTML TEMPLATES:
-# ---------------------
-#
-# Template files are written win plain HTML, with a few
-# additions:
-#
-# - Lines that start with a '#' character like this one
-# are ignored
-#
-# - Each item in the below list of exported symbols will
-# be replaced by dynamically generated text, if they
-# are enclosed in '@'-characters. E.g. The string @version@
-# will be replaced by the version number of Privoxy.
-#
-# - One special application of this is to make whole blocks
-# of the HTML template disappear if the condition <name>
-# is not given. Simply enclose the block between the two
-# strings @if-<name>start and if-<name>-end@. The strings
-# should be placed in HTML comments (<!-- -->), so the
-# html structure won't be messed when the magic happens.
-#
-# USABLE SYMBOLS IN THIS TEMPLATE:
-# --------------------------------
-#
-# my-ip-addr:
-# The IP-address that the client used to reach this proxy
-# my-hostname:
-# The hostname associated with my-ip-addr
-# admin-address:
-# The email address of the pxoxy's administrator, as configured
-# in the config file
-# default-cgi:
-# The URL for the "main menu" builtin CGI of this proxy
-# menu:
-# List of <li> elements linking to the other available CGIs
-# version:
-# The version number of the proxy software
-# code-status:
-# The development status of the proxy software: "alpha", "beta",
-# or "stable".
-# homepage:
-# The URL of the SourceForge ijbswa project, who maintains this
-# software.
-#
-# host-ip:
-# The IP address of the host that could not be reached
-# hostport:
-# The host and port part of the request that lead to this problem
-# path:
-# The path part of the request that lead to this problem
-#
-#
-# CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
-# ------------------------------------------------------------------
-#
-# unstable:
-# this is an alpha or beta release of the proxy software
-# have-adminaddr-info:
-# An e-mail address for the local Privoxy adminstrator has
-# been specified and is available through the "admin-address"
-# symbol
-# have-proxy-info:
-# A URL for online documentation about this proxy has been
-# specified and is available through the "proxy-info-url"
-# symbol
-# have-help-info:
-# If either have-proxy-info is true or have-adminaddr-info is
-# true, have-help-info is true. Used to conditionally include
-# a grey box for any and all help info.
-#
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-<head>
- <title>503 - Connect failed (Privoxy@@my-hostname@)</title>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="shortcut icon" href="@default-cgi@error-favicon.ico">
- <style type="text/css">
-#include cgi-style.css
- </style>
-</head>
-
-<body>
-
- <table summary="" cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="status">
- 503
- </td>
- <td class="title" style="width: 100%">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning" colspan="2">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
- <tr>
- <td class="warning" colspan=2>
- <h2>Connect failed</h2>
- <p>Your request for <a href="@protocol@@hostport@@path@"><b>@protocol@@hostport@@path@</b></a> could
- not be fulfilled, because the connection to <b>@host@</b> (@host-ip@) could not be established.
- </p>
- <p>This is often a temporary failure, so you might just
- <a href="@protocol@@hostport@@path@">try again</a>.
- </p>
- </td>
- </tr>
-
- <tr>
- <td class="box" colspan="2">
- <h2>More Privoxy:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info" colspan="2">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info" colspan="2">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-
-</body>
-</html>
+++ /dev/null
-##########################################################
-#
-# connection-timeout Error Output template for Privoxy.
-#
-##########################################################
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-<head>
- <title>504 - Connection timeout (Privoxy@@my-hostname@)</title>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="shortcut icon" href="@default-cgi@error-favicon.ico">
- <style type="text/css">
-#include cgi-style.css
- </style>
-</head>
-
-<body>
-
- <table summary="" cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="status">
- 504
- </td>
- <td class="title" style="width: 100%">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning" colspan="2">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
- <tr>
- <td class="warning" colspan=2>
- <h2>Connection timeout</h2>
- <p>Your request for <a href="@protocol@@hostport@@path@"><b>@protocol@@hostport@@path@</b></a>
- could not be fulfilled, because the connection to <b>@host@</b> (@host-ip@) timed out.
- </p>
- <p>This is often a temporary failure, so you might just
- <a href="@protocol@@hostport@@path@">try again</a>.
- </p>
- </td>
- </tr>
-
- <tr>
- <td class="box" colspan="2">
- <h2>More Privoxy:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info" colspan="2">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info" colspan="2">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-
-</body>
-</html>
+++ /dev/null
-##########################################################
-#
-# Default-CGI Output template for Privoxy.
-#
-#
-# USING HTML TEMPLATES:
-# ---------------------
-#
-# Template files are written win plain HTML, with a few
-# additions:
-#
-# - Lines that start with a '#' character like this one
-# are ignored
-#
-# - Each item in the below list of exported symbols will
-# be replaced by dynamically generated text, if they
-# are enclosed in '@'-characters. E.g. The string @version@
-# will be replaced by the version number of Privoxy.
-#
-# - One special application of this is to make whole blocks
-# of the HTML template disappear if the condition <name>
-# is not given. Simply enclose the block between the two
-# strings @if-<name>start and if-<name>-end@. The strings
-# should be placed in HTML comments (<!-- -->), so the
-# html structure won't be messed when the magic happens.
-#
-# USABLE SYMBOLS IN THIS TEMPLATE:
-# --------------------------------
-#
-# my-ip-addr:
-# The IP-address that the client used to reach this proxy
-# my-hostname:
-# The hostname associated with my-ip-addr
-# admin-address:
-# The email address of the pxoxy's administrator, as configured
-# in the config file
-# default-cgi:
-# The URL for the "main menu" builtin CGI of this proxy
-# menu:
-# List of <li> elements linking to the other available CGIs
-# version:
-# The version number of the proxy software
-# code-status:
-# The development status of the proxy software: "alpha", "beta",
-# or "stable".
-# homepage:
-# The URL of the SourceForge ijbswa project, who maintains this
-# software.
-#
-# CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
-# ------------------------------------------------------------------
-#
-# unstable:
-# this is an alpha or beta release of the proxy software
-# have-adminaddr-info:
-# An e-mail address for the local Privoxy adminstrator has
-# been specified and is available through the "admin-address"
-# symbol
-# have-proxy-info:
-# A URL for online documentation about this proxy has been
-# specified and is available through the "proxy-info-url"
-# symbol
-# have-help-info:
-# If either have-proxy-info is true or have-adminaddr-info is
-# true, have-help-info is true. Used to conditionally include
-# a grey box for any and all help info.
-#
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-<head>
- <title>Privoxy@@my-hostname@</title>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="stylesheet" type="text/css" href="@default-cgi@send-stylesheet">
- <link rel="shortcut icon" href="@default-cgi@favicon.ico" type="image/x-icon">
-</head>
-
-<body>
-
- <table cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="title">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
- <tr>
- <td class="box">
- <h2>Privoxy Menu:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-
-</body>
-</html>
+++ /dev/null
-##############################################################################
-#
-# File : $Source: /cvsroot/ijbswa/current/templates/edit-actions-add-url-form,v $
-#
-# Purpose : Template used to add a URL pattern to the actions file.
-#
-#
-# Copyright : Written by and Copyright (C) 2001 the SourceForge
-# Privoxy team. http://www.privoxy.org/
-#
-# Original Author: Copyright (C) 2001 Jonathan Foster
-# http://www.jon-foster.co.uk/
-#
-# This program is free software; you can redistribute it
-# and/or modify it under the terms of the GNU General
-# Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will
-# be useful, but WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. See the GNU General Public
-# License for more details.
-#
-# The GNU General Public License should be included with
-# this file. If not, you can view it at
-# http://www.gnu.org/copyleft/gpl.html
-# or write to the Free Software Foundation, Inc., 59
-# Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-##############################################################################
-#
-# Standard support:
-#
-# This file currently produces valid HTML 4.01 Strict.
-#
-# If you change it, please save the generated page from your web browser
-# and then upload it to http://validator.w3.org/ for checking.
-#
-#############################################################################
-#
-# Available variables include:
-#
-# filename
-# ver
-# section
-#
-#############################################################################
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-<head>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="stylesheet" type="text/css" href="@default-cgi@send-stylesheet">
- <link rel="shortcut icon" href="@default-cgi@favicon.ico" type="image/x-icon">
-
- <title>Privoxy@@my-hostname@: Add URL Pattern</title>
-
- <script type="text/javascript">
-<!--
- function validate(text)
- {
- if (text=="")
- {
- alert("You need to type a pattern in order to continue!");
- return false;
- }
-
- return true;
-}
-//-->
- </script>
-</head>
-
-<body>
-
- <table cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="title">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
- <tr>
- <td class="box">
- <h2>Add URL or TAG Pattern</h2>
- <form method="GET" action="edit-actions-add-url"
- onSubmit="return validate(u.value);">
- <p>
- <input type="hidden" name="f" value="@f@">
- <input type="hidden" name="v" value="@v@">
- <input type="hidden" name="s" value="@s@">
- <input type="text" name="u" value="" size="78" class="pattern"><br>
- <input type="submit" value="Submit">
- <input type="reset" value="Reset">
- <a class="cmd" href="edit-actions-list?f=@f@#l@s@">Cancel</a>
- </p>
- </form>
- </td>
- </tr>
-
- <tr>
- <td class="box">
- <h2>More Privoxy:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-
-</body>
-</html>
-
+++ /dev/null
-##############################################################################
-#
-# File : $Source: /cvsroot/ijbswa/current/templates/edit-actions-for-url,v $
-#
-# Purpose : Template used to edit the actions associated with a
-# particular section in an actions file.
-#
-#
-# Copyright : Written by and Copyright (C) 2001-2012 the
-# Privoxy team. http://www.privoxy.org/
-#
-# Original Author: Copyright (C) 2001 Jonathan Foster
-# http://www.jon-foster.co.uk/
-#
-# This program is free software; you can redistribute it
-# and/or modify it under the terms of the GNU General
-# Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will
-# be useful, but WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. See the GNU General Public
-# License for more details.
-#
-# The GNU General Public License should be included with
-# this file. If not, you can view it at
-# http://www.gnu.org/copyleft/gpl.html
-# or write to the Free Software Foundation, Inc., 59
-# Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-##############################################################################
-#
-# Standard support:
-#
-# This file currently produces valid HTML 4.01 Strict.
-#
-# If you change it, please save the generated page from your web browser
-# and then upload it to http://validator.w3.org/ for checking.
-#
-##############################################################################
-#
-# Available variables include:
-#
-# action-name-y
-# action-name-n
-# action-name-x
-#
-# deanimate-gifs-param-first
-# deanimate-gifs-param-last
-# hide-from-param-block
-# hide-from-param-custom
-# hide-from-param
-# hide-referrer-param-forge
-# hide-referrer-param-block
-# hide-referrer-param-custom
-# hide-referrer-param
-# hide-user-agent-param
-# image-blocker-param-pattern
-# image-blocker-param-blank
-# image-blocker-param-custom
-#
-#
-##############################################################################
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-<head>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="stylesheet" type="text/css" href="@default-cgi@send-stylesheet">
- <link rel="shortcut icon" href="@default-cgi@favicon.ico" type="image/x-icon">
-
- <title>Privoxy@@my-hostname@: Edit actions</title>
-
-<style type="text/css">
-td.action { font-weight: bold;
- font-style: italic;
- white-space: nowrap }
-td.subaction { font-style: italic }
-th { font-weight: bold; }
-# This is the key to the color names below:
-# bg=background, en="Enable", dis="Disable", noc="No Change", hdr=header
-# 1=odd rows, 2=even rows, h=Table header
-tr.hdr { background-color: #999999 }
-tr.bg1 { background-color: #eeeeee }
-td.en1 { background-color: #ddffdd }
-td.dis1 { background-color: #ffdddd }
-td.noc1 { background-color: #ddddff }
-th.enh { background-color: #99ff99 }
-th.dish { background-color: #ff9999 }
-th.noch { background-color: #9999ff }
-table.wide { padding: 5px; }
-td.green { border: solid black 1px; background-color: #ddffdd; }
-</style>
-
-<!--
-border-color: white;
- border-style: solid;
- border-left-width: 10px;
- border-right-width: 10px;
- border-top-width: 0px;
- border-bottom-width: 0px }
--->
-
-<script type="text/javascript">
-<!--
-
-function hide_from_header_param_disable(tf)
-{
- if (document.getElementById) {
- // NS6 or IE5
- document.getElementById("hide_from_header_param").disabled = tf;
- } else if (document.all) {
- // IE4
- document.myform.hide_from_header_param.disabled = tf;
- }
-}
-
-function hide_referrer_param_disable(tf)
-{
- if (document.getElementById) {
- document.getElementById("hide_referrer_param").disabled = tf;
- } else if (document.all) {
- document.myform.hide_referrer_param.disabled = tf;
- }
-}
-
-function set_image_blocker_param_disable(tf)
-{
- if (document.getElementById) {
- document.getElementById("set_image_blocker_param").disabled = tf;
- } else if (document.all) {
- document.myform.set_image_blocker_param.disabled = tf;
- }
-}
-
-function show_add_header_opts(tf)
-{
- if (document.getElementById) {
- target = document.getElementById("add_header_opts");
- } else if (document.all) {
- target = document.add_header_opts;
- } else {
- return;
- }
- target.style.display = (tf ? "" : "none");
-}
-
-function show_deanimate_opts(tf)
-{
- if (document.getElementById) {
- target = document.getElementById("deanimate_opts");
- } else if (document.all) {
- target = document.deanimate_opts;
- } else {
- return;
- }
- target.style.display = (tf ? "" : "none");
-}
-
-function show_hide_from_header_opts(tf)
-{
- if (document.getElementById) {
- target = document.getElementById("hide_from_header_opts");
- } else if (document.all) {
- target = document.hide_from_header_opts;
- } else {
- return;
- }
- target.style.display = (tf ? "" : "none");
-}
-
-function show_hide_referrer_opts(tf)
-{
- if (document.getElementById) {
- target = document.getElementById("hide_referrer_opts");
- } else if (document.all) {
- target = document.hide_referrer_opts;
- } else {
- return;
- }
- target.style.display = (tf ? "" : "none");
-}
-
-function show_user_agent_opts(tf)
-{
- if (document.getElementById) {
- target = document.getElementById("user_agent_opts");
- } else if (document.all) {
- target = document.user_agent_opts;
- } else {
- return;
- }
- target.style.display = (tf ? "" : "none");
-}
-
-function show_set_image_blocker_opts(tf)
-{
- if (document.getElementById) {
- target = document.getElementById("set_image_blocker_opts");
- } else if (document.all) {
- target = document.set_image_blocker_opts;
- } else {
- return;
- }
- target.style.display = (tf ? "" : "none");
-}
-
-function show_limit_connect_opts(tf)
-{
- if (document.getElementById) {
- target = document.getElementById("limit_connect_opts");
- } else if (document.all) {
- target = document.limit_connect_opts;
- } else {
- return;
- }
- target.style.display = (tf ? "" : "none");
-}
-
-//-->
-</script>
-</head>
-
-<body>
-
-<!-- @if-one-form-only-start -->
-<form method="GET" action="edit-actions-submit" id="myform" name="myform">
-<!-- if-one-form-only-end@ -->
-
- <table summary="" cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="title">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
-<!-- @if-one-form-only-start -->
- <tr>
- <td class="box">
- <h2>Edit Actions
- <input type="hidden" name="f" value="@f@">
- <input type="hidden" name="v" value="@v@">
- <input type="hidden" name="s" value="@s@">
- </h2>
- </td>
- </tr>
-
- <tr>
- <td class="green" align="center">
- <p><input type="submit" value="Submit" name="Submit"></p>
- </td>
- </tr>
-<!-- if-one-form-only-end@ -->
-
-<tr><td class="wrapbox">
-
-<!-- @if-multiple-forms-start -->
-<form method="GET" action="edit-actions-submit" id="myform" name="myform">
- <h2>Edit Actions (Section 1)</h2>
-<!-- if-multiple-forms-end@ -->
-
- <table summary="Action section 1" border="0" cellspacing="2" width="100%" class="wide">
- <tr class="hdr" align="left">
- <th class="enh" align="center">Enable</th>
- <th class="dish" align="center">Disable</th>
- <th class="noch" align="center">No Change</th>
- <th>Action</th>
- <th>Description</th>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="add_header" id="add_header_y" value="Y" @add-header-y@
- onclick="show_add_header_opts(true)"></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="add_header" value="N" @add-header-n@
- onclick="show_add_header_opts(false)"></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="add_header" value="X" @add-header-x@
- onclick="show_add_header_opts(false)"></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@ADD-HEADER">add-header</a></td>
- <td>Adds HTTP headers.</td>
- </tr>
- <tr class="bg1" align="left" valign="top" id="add_header_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td>Editing the settings for this option, or turning
- it on if it was off, is not yet supported using this web-based
- editor.</td>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="block" value="Y" @block-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="block" value="N" @block-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="block" value="X" @block-x@
- ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@BLOCK">block</a></td>
- <td>Block the request.</td>
- </tr>
- <tr class="bg1" align="left" valign="top" id="block_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td>Block reason to tell the user:<br>
- <input type="text" name="block_mode" size="40" value="@block-param@">
- </td>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="change_x_forwarded_for" id="change_x_forwarded_for_y" value="Y" @change-x-forwarded-for-y@
- onclick="show_change_x_forwarded_for_opts(true)"></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="change_x_forwarded_for" value="N" @change-x-forwarded-for-n@
- onclick="show_change_x_forwarded_for_opts(false)"></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="change_x_forwarded_for" value="X" @change-x-forwarded-for-x@
- onclick="show_change_x_forwarded_for_opts(false)"></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@CHANGE-X-FORWARDED-FOR">change-x-forwarded-for</a></td>
- <td>Specifies whether to block or add X-Forwarded-For headers.</td>
- </tr>
- <tr class="bg1" align="left" valign="top" id="change_x_forwarded_for_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td><input type="radio" name="change_x_forwarded_for_mode" value="block"
- id="change_x_forwarded_for_mode_block" @change-x-forwarded-for-param-block@><label
- for="change_x_forwarded_for_mode_block">Block the header.</label><br>
- <input type="radio" name="change_x_forwarded_for_mode" value="add"
- id="change_x_forwarded_for_mode_add" @change-x-forwarded-for-param-add@><label
- for="change_x_forwarded_for_mode_add">Add the header.</label><br>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1"> </td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="client_header_filter_all" id="client_header_filter_all_n" value="N" @client-header-filter-all-n@ ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="client_header_filter_all" id="client_header_filter_all_x" value="X" @client-header-filter-all-x@ ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@CLIENT-HEADER-FILTER">client-header-filter</a> *</td>
- <td>Filter the client headers.
- You can use the radio buttons on this line to disable
- all client-header filters applied by previous rules, and/or
- you can enable or disable the filters individually below.</td>
- </tr>
-@client-header-filter-params@
- <tr class="bg1" align="left" valign="top">
- <td class="en1"> </td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="client_header_tagger_all" id="client_header_tagger_all_n" value="N" @client-header-tagger-all-n@ ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="client_header_tagger_all" id="client_header_tagger_all_x" value="X" @client-header-tagger-all-x@ ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@CLIENT-HEADER-TAGGER">client-header-tagger</a> *</td>
- <td>Create tags based on the client headers.
- You can use the radio buttons on this line to disable
- all client-header taggers applied by previous rules, and/or
- you can enable or disable the taggers individually below.</td>
- </tr>
-@client-header-tagger-params@
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="content_type_overwrite" value="Y" @content-type-overwrite-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="content_type_overwrite" value="N" @content-type-overwrite-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="content_type_overwrite" value="X" @content-type-overwrite-x@
- ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@CONTENT-TYPE-OVERWRITE">content-type-overwrite</a></td>
- <td>Replace Content-Type header. By default it only applies to
- text documents, but if you know what you're doing you
- can enable force-text-mode to modify binary content types as well.</td>
- </tr>
- <tr class="bg1" align="left" valign="top" id="content_type_overwrite_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td>New Content-Type:<br>
- <input type="text" name="content_type_overwrite_mode" size="40"
- value="@content-type-overwrite-param@"></td>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="crunch_client_header" id="crunch_client_header_y" value="Y" @crunch-client-header-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="crunch_client_header" value="N" @crunch-client-header-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="crunch_client_header" value="X" @crunch-client-header-x@
- ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@CRUNCH-CLIENT-HEADER">crunch-client-header</a></td>
- <td>Remove header(s) matching the supplied pattern.</td>
- </tr>
- <tr class="bg1" align="left" valign="top" id="crunch_client_header_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td>Header string to suppress:<br>
- <input type="text" name="crunch_client_header_mode" size="40"
- value="@crunch-client-header-param@"></td>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="crunch_if_none_match" value="Y" @crunch-if-none-match-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="crunch_if_none_match" value="N" @crunch-if-none-match-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="crunch_if_none_match" value="X" @crunch-if-none-match-x@
- ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@CRUNCH-IF-NONE-MATCH">crunch-if-none-match</a></td>
- <td>Remove If-None-Match header. Useful for filter testing
- and to make sure the header can't be used to track your visits.</td>
- </tr>
-
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="crunch_incoming_cookies" value="Y" @crunch-incoming-cookies-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="crunch_incoming_cookies" value="N" @crunch-incoming-cookies-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="crunch_incoming_cookies" value="X" @crunch-incoming-cookies-x@
- ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a></td>
- <td>Prevent the website from setting HTTP cookies on your system.</td>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="crunch_outgoing_cookies" value="Y" @crunch-outgoing-cookies-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="crunch_outgoing_cookies" value="N" @crunch-outgoing-cookies-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="crunch_outgoing_cookies" value="X" @crunch-outgoing-cookies-x@
- ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a></td>
- <td>Prevent the website from reading HTTP cookies from your system.</td>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="crunch_server_header" id="crunch_server_header_y" value="Y" @crunch-server-header-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="crunch_server_header" value="N" @crunch-server-header-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="crunch_server_header" value="X" @crunch-server-header-x@
- ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@CRUNCH-SERVER-HEADER">crunch-server-header</a></td>
- <td>Remove server header(s) matching the supplied pattern.</td>
- </tr>
- <tr class="bg1" align="left" valign="top" id="crunch_server_header_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td>Header string to suppress:<br>
- <input type="text" name="crunch_server_header_mode" size="40"
- value="@crunch-server-header-param@"></td>
- </tr>
-
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="deanimate_gifs" id="deanimate_gifs_y" value="Y" @deanimate-gifs-y@
- onclick="show_deanimate_opts(true)"></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="deanimate_gifs" value="N" @deanimate-gifs-n@
- onclick="show_deanimate_opts(false)"></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="deanimate_gifs" value="X" @deanimate-gifs-x@
- onclick="show_deanimate_opts(false)"></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@DEANIMATE-GIFS">deanimate-gifs</a></td>
- <td>Replace animated GIFs with their (first/last) frame.</td>
- </tr>
- <tr class="bg1" align="left" valign="top" id="deanimate_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td>Use the <input type="radio" name="deanimate_gifs_mode"
- value="first" id="deanimate_first" @deanimate-gifs-param-first@><label
- for="deanimate_first">first frame</label> <input
- type="radio" name="deanimate_gifs_mode" value="last"
- id="deanimate_last" @deanimate-gifs-param-last@><label
- for="deanimate_last">last frame</label></td>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="downgrade_http_version" value="Y" @downgrade-http-version-y@></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="downgrade_http_version" value="N" @downgrade-http-version-n@></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="downgrade_http_version" value="X" @downgrade-http-version-x@></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@DOWNGRADE-HTTP-VERSION"
- >downgrade-http-version</a></td>
- <td>Change HTTP/1.1 requests to HTTP/1.0. Only change if you know
- what you're doing!</td>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="fast_redirects" value="Y" @fast-redirects-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="fast_redirects" value="N" @fast-redirects-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="fast_redirects" value="X" @fast-redirects-x@
- ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@FAST-REDIRECTS">fast-redirects</a></td>
- <td>Bypass some click-tracking URLs.</td>
- </tr>
- <tr class="bg1" align="left" valign="top" id="fast-redirects_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td>
- <input type="radio" name="fast_redirects_mode"
- value="simple-check" id="fast_redirects_simple_check" @fast-redirects-param-simple-check@><label
- for="fast_redirects_simple_check">Simple check.</label>
- <br>
- <input type="radio" name="fast_redirects_mode" value="check-decoded-url"
- id="fast_redirects_check_decoded_url" @fast-redirects-param-check-decoded-url@><label
- for="fast_redirects_check_decoded_url">Decode URL before checking.</label></td>
- </tr>
-<!-- @if-multiple-forms-start -->
- </table>
- <p>
- <input type="hidden" name="f" value="@f@">
- <input type="hidden" name="v" value="@v@">
- <input type="hidden" name="s" value="@s@">
- <input type="submit" value="Submit changes in Section 1" name="Submit">
- </p>
- </form>
- </td></tr>
- <tr><td class="wrapbox">
- <form method="GET" action="edit-actions-submit" id="myform-2" name="myform">
- <h2>Edit Actions (Section 2)</h2>
- <table summary="Action section 2" border="0" cellspacing="2" width="100%" class="wide">
- <tr class="hdr" align="left">
- <th class="enh" align="center">Enable</th>
- <th class="dish" align="center">Disable</th>
- <th class="noch" align="center">No Change</th>
- <th>Action</th>
- <th>Description</th>
- </tr>
-<!-- if-multiple-forms-end@ -->
- <tr class="bg1" align="left" valign="top">
- <td class="en1"> </td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="filter_all" id="filter_all_n" value="N" @filter-all-n@ ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="filter_all" id="filter_all_x" value="X" @filter-all-x@ ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@FILTER">filter</a> *</td>
- <td>Filter the website through regular expression
- filters. You can use the radio buttons on this line to disable
- all filters applied by previous rules, and/or you can enable or
- disable the filters individually below.</td>
- </tr>
-
-@content-filter-params@
-
-<!-- @if-multiple-forms-start -->
- </table>
- <p>
- <input type="hidden" name="f" value="@f@">
- <input type="hidden" name="v" value="@v@">
- <input type="hidden" name="s" value="@s@">
- <input type="submit" value="Submit changes in Section 2" name="Submit">
- </p>
- </form>
- </td></tr>
- <tr><td class="wrapbox">
- <form method="GET" action="edit-actions-submit" id="myform-3" name="myform">
- <h2>Edit Actions (Section 3)</h2>
- <table summary="Action section 3" border="0" cellspacing="2" width="100%" class="wide">
- <tr class="hdr" align="left">
- <th class="enh" align="center">Enable</th>
- <th class="dish" align="center">Disable</th>
- <th class="noch" align="center">No Change</th>
- <th>Action</th>
- <th>Description</th>
- </tr>
-<!-- if-multiple-forms-end@ -->
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="force_text_mode" value="Y" @force-text-mode-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="force_text_mode" value="N" @force-text-mode-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="force_text_mode" value="X" @force-text-mode-x@
- ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@FORCE-TEXT-MODE">force-text-mode</a></td>
- <td>
- Enable filtering on documents whose Content-Type wasn't recognized as text.
- Do think twice, nothing is alright.
- </td>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="forward_override" id="forward_override_y" value="Y" @forward-override-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="forward_override" id="forward_override_n" value="N" @forward-override-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="forward_override" id="forward_override_x" value="X" @forward-override-x@
- ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@FORWARD-OVERRIDE">forward-override</a></td>
- <td>Override forward directives in the configuration file.
- Note that the <a href="@user-manual@actions-file.html#FORWARD-OVERRIDE">parameter syntax</a>
- isn't checked until the action is used. <strong class="warning">Syntax errors
- will cause Privoxy to exit.</strong></td>
- </tr>
- <tr class="bg1" align="left" valign="top" id="forward_override_language_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td>
- Overriding forward directive:<br>
- <input type="text" name="forward_override_param"
- id="forward_override_param" size="40"
- value="@forward-override-param@"><br>
- </td>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="handle_as_empty_document" value="Y" @handle-as-empty-document-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="handle_as_empty_document" value="N" @handle-as-empty-document-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="handle_as_empty_document" value="X" @handle-as-empty-document-x@
- ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@HANDLE-AS-EMPTY-DOCUMENT">handle-as-empty-document</a></td>
- <td>
- Block with an <em>empty</em> document instead of an Image or HTML message.
- The <em>empty</em> document contains only a space and can safely be parsed
- as JavaScript or Style Sheet. Use content-type-overwrite to specify the
- Content-Type, default is <q>text/html</q>.
- </td>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="handle_as_image" value="Y" @handle-as-image-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="handle_as_image" value="N" @handle-as-image-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="handle_as_image" value="X" @handle-as-image-x@
- ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@HANDLE-AS-IMAGE">handle-as-image</a></td>
- <td>Request is for an image (only useful in conjunction with the <i><b><a href="@user-manual@@actions-help-prefix@BLOCK">block</a></b></i>
- and <i><b><a href="@user-manual@@actions-help-prefix@SET-IMAGE-BLOCKER">set-image-blocker</a></b></i> actions).</td>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="hide_accept_language" id="hide_accept_language_y" value="Y" @hide-accept-language-y@
- onclick="show_hide_accept_language_opts(true)"></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="hide_accept_language" id="hide_accept_language_n" value="N" @hide-accept-language-n@
- onclick="show_hide_accept_language_opts(false)"></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="hide_accept_language" id="hide_accept_language_x" value="X" @hide-accept-language-x@
- onclick="show_hide_accept_language_opts(false)"
- ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@HIDE-ACCEPT-LANGUAGE">hide-accept-language</a></td>
- <td>Pretend to have different language settings. (Makes a fake User-Agent more believable,
- but you may end up with content in the language you pretended to understand.)</td>
- </tr>
- <tr class="bg1" align="left" valign="top" id="hide_accept-language_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td><input type="radio" name="hide_accept_language_mode" value="block"
- onclick="hide_accept_language_param_disable(true)"
- @hide-accept-language-param-block@ id="hide_accept_language_mode_block"><label
- for="hide_accept_language_mode_block">Remove Accept-Language header without replacement.</label>
- <br>
- <input type="radio" name="hide_accept_language_mode" value="CUSTOM"
- onclick="hide_accept_language_param_disable(false)"
- @hide-accept-language-param-custom@ id="hide_accept_language_mode_set"><label
- for="hide_accept_language_mode_set">Fake these language settings:</label><br>
- <input type="text" name="hide_accept_language_param"
- id="hide_accept_language_param" size="40"
- value="@hide-accept-language-param@"><br>
- </td>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="hide_content_disposition" id="hide_content_disposition_y" value="Y" @hide-content-disposition-y@
- onclick="show_hide_content_disposition_opts(true)"></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="hide_content_disposition" id="hide_content_disposition_n" value="N" @hide-content-disposition-n@
- onclick="show_hide_content_disposition_opts(false)"></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="hide_content_disposition" id="hide_content_disposition_x" value="X" @hide-content-disposition-x@
- onclick="show_hide_content_disposition_opts(false)"
- ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@HIDE-CONTENT-DISPOSITION">hide-content-disposition</a></td>
- <td>Block or overwrite the content-disposition header. Useful to view a document inside the browser,
- even if you were supposed to save it first, or to change the suggested file name.</td>
- </tr>
- <tr class="bg1" align="left" valign="top" id="hide_content_disposition_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td><input type="radio" name="hide_content_disposition_mode" value="block"
- onclick="hide_content_disposition_param_disable(true)"
- @hide-content-disposition-param-block@ id="hide_content_disposition_mode_block"><label
- for="hide_content_disposition_mode_block">Remove content-disposition header without replacement.</label>
- <br>
- <input type="radio" name="hide_content_disposition_mode" value="CUSTOM"
- onclick="hide_content_disposition_param_disable(false)"
- @hide-content-disposition-param-custom@ id="hide_content_disposition_mode_set"><label
- for="hide_content_disposition_mode_set">Overwrite content-dispostion header with:</label><br>
- <input type="text" name="hide_content_disposition_param"
- id="hide_content_disposition_param" size="40"
- value="@hide-content-disposition-param@"><br>
- </td>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="hide_from_header" id="hide_from_header_y" value="Y" @hide-from-header-y@
- onclick="show_hide_from_header_opts(true)"></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="hide_from_header" value="N" @hide-from-header-n@
- onclick="show_hide_from_header_opts(false)"></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="hide_from_header" value="X" @hide-from-header-x@
- onclick="show_hide_from_header_opts(false)"></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@HIDE-FROM-HEADER">hide-from-header</a></td>
- <td>Stop old web browsers from sending the user's e-mail address with
- every request.</td>
- </tr>
- <tr class="bg1" align="left" valign="top" id="hide_from_header_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td><input type="radio" name="hide_from_header_mode" value="block"
- onclick="hide_from_header_param_disable(true);"
- @hide-from-header-param-block@ id="hide_from_header_mode_block"><label
- for="hide_from_header_mode_block">Remove completely</label><br>
- <input type="radio" name="hide_from_header_mode" value="CUSTOM"
- onclick="hide_from_header_param_disable(false);"
- @hide-from-header-param-custom@ id="hide_from_header_mode_set"><label
- for="hide_from_header_mode_set">Fake e-mail address:</label><br>
- <input type="text" name="hide_from_header_param" id="hide_from_header_param"
- size="40" value="@hide-from-header-param@"></td>
- </tr>
-
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="hide_if_modified_since" value="Y" @hide-if-modified-since-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="hide_if_modified_since" value="N" @hide-if-modified-since-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="hide_if_modified_since" value="X" @hide-if-modified-since-x@
- ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@HIDE-IF-MODIFIED-SINCE">hide-if-modified-since</a></td>
- <td>Remove or randomize the If-Modified-Since header.</td>
- </tr>
- <tr class="bg1" align="left" valign="top" id="hide_if-modifed-since_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td><input type="radio" name="hide_if_modified_since_mode" value="block"
- onclick="hide_if_modified_since_param_disable(true)"
- @hide-if-modified-since-param-block@ id="hide_if_modified_since_mode_block"><label
- for="hide_if_modified_since_mode_block">Remove without replacement.</label>
- Useful for filter testing.<br>
- <input type="radio" name="hide_if_modified_since_mode" value="CUSTOM"
- onclick="hide_if_modified_since_param_disable(true)"
- @hide-if-modified-since-param-custom@ id="hide_if_modified_since_mode_set"><label
- for="hide_if_modified_since_mode_set">Add random amount of seconds in the range of</label>
- <input type="text" name="hide_if_modified_since_param"
- id="hide_if_modified_since_param" size="4"
- value="@hide-if-modified-since-param@"> minute(s).
- To appreciate this option a small amount of paranoia is required,
- but at least in theory the If-Modified-Since header could be used
- to keep track of your visits.
- </td>
- </tr>
-<!-- @if-multiple-forms-start -->
- </table>
- <p>
- <input type="hidden" name="f" value="@f@">
- <input type="hidden" name="v" value="@v@">
- <input type="hidden" name="s" value="@s@">
- <input type="submit" value="Submit changes in Section 3" name="Submit">
- </p>
- </form>
- </td></tr>
- <tr><td class="wrapbox">
- <form method="GET" action="edit-actions-submit" id="myform-4" name="myform">
- <h2>Edit Actions (Section 4)</h2>
- <table summary="Action section 4" border="0" cellspacing="2" width="100%" class="wide">
- <tr class="hdr" align="left">
- <th class="enh" align="center">Enable</th>
- <th class="dish" align="center">Disable</th>
- <th class="noch" align="center">No Change</th>
- <th>Action</th>
- <th>Description</th>
- </tr>
-<!-- if-multiple-forms-end@ -->
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="hide_referrer" id="hide_referrer_y" value="Y" @hide-referrer-y@
- onclick="show_hide_referrer_opts(true)"></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="hide_referrer" id="hide_referrer_n" value="N" @hide-referrer-n@
- onclick="show_hide_referrer_opts(false)"></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="hide_referrer" id="hide_referrer_x" value="X" @hide-referrer-x@
- onclick="show_hide_referrer_opts(false)"
- ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@HIDE-REFERRER">hide-referrer</a></td>
- <td>Helps prevent tracking by not sending the URL of the previous web
- page. </td>
- </tr>
- <tr class="bg1" align="left" valign="top" id="hide_referrer_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td><input type="radio" name="hide_referrer_mode" value="block"
- onclick="hide_referrer_param_disable(true)"
- @hide-referrer-param-block@ id="hide_referrer_mode_block"><label
- for="hide_referrer_mode_block">Remove completely</label> (breaks images
- on some free web hosts).<br>
- <input type="radio" name="hide_referrer_mode" value="forge"
- onclick="hide_referrer_param_disable(true)"
- @hide-referrer-param-forge@ id="hide_referrer_mode_forge"><label
- for="hide_referrer_mode_forge">Fake as the root directory of the
- site</label> (fools checks for in-site links.)<br>
- <input type="radio" name="hide_referrer_mode" value="CUSTOM"
- onclick="hide_referrer_param_disable(false)"
- @hide-referrer-param-custom@ id="hide_referrer_mode_set"><label
- for="hide_referrer_mode_set">Fake as this web address:</label><br>
- <input type="text" name="hide_referrer_param"
- id="hide_referrer_param" size="40"
- value="@hide-referrer-param@"><br>
- <input type="radio" name="hide_referrer_mode" value="conditional-block"
- onclick="hide_referrer_param_disable(true)"
- @hide-referrer-param-conditional-block@ id="hide_referrer_mode_conditional-block"><label
- for="hide_referrer_mode_conditional-block">Remove completely if host has changed,
- but don't touch in-site referrers.
- Less suspicious than the options above.</label><br>
- <input type="radio" name="hide_referrer_mode" value="conditional-forge"
- onclick="hide_referrer_param_disable(true)"
- @hide-referrer-param-conditional-forge@ id="hide_referrer_mode_conditional-forge"><label
- for="hide_referrer_mode_conditional-forge">Forge referrer if host has
- changed, but don't touch in-site referrers.</label><br>
- </td>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="hide_user_agent" id="hide_user_agent_y" value="Y" @hide-user-agent-y@
- onclick="show_user_agent_opts(true)"></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="hide_user_agent" value="N" @hide-user-agent-n@
- onclick="show_user_agent_opts(false)"></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="hide_user_agent" value="X" @hide-user-agent-x@
- onclick="show_user_agent_opts(false)"></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@HIDE-USER-AGENT">hide-user-agent</a></td>
- <td>Pretend to be using a different web browser. (May cause problems with broken web sites).</td>
- </tr>
- <tr class="bg1" align="left" valign="top" id="user_agent_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td>User Agent string to send:<br>
- <input type="text" name="hide_user_agent_mode" size="40"
- value="@hide-user-agent-param@"></td>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="limit_connect" id="limit_connect_y" value="Y" @limit-connect-y@
- onclick="show_limit_connect_opts(true)"></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="limit_connect" value="N" @limit-connect-n@
- onclick="show_limit_connect_opts(false)"></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="limit_connect" value="X" @limit-connect-x@
- onclick="show_limit_connect_opts(false)"></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@LIMIT-CONNECT">limit-connect</a></td>
- <td>Limit which ports are allowed in HTTP CONNECT requests. These requests are
- used to tunnel SSL and other protocols through HTTP proxies.</td>
- </tr>
- <tr class="bg1" align="left" valign="top" id="limit_connect_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td>Legal ports (comma separated, ranges allowed):<br>
- <input type="text" name="limit_connect_mode" size="40"
- value="@limit-connect-param@"></td>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="limit_cookie_lifetime" id="limit_cookie_lifetime_y" value="Y" @limit-cookie-lifetime-y@
- onclick="show_limit_cookie_lifetime_opts(true)"></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="limit_cookie_lifetime" value="N" @limit-cookie-lifetime-n@
- onclick="show_limit_cookie_lifetime_opts(false)"></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="limit_cookie_lifetime" value="X" @limit-cookie-lifetime-x@
- onclick="show_limit_cookie_lifetime_opts(false)"></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@LIMIT-COOKIE-LIFETIME">limit-cookie-lifetime</a></td>
- <td>Limit the cookie lifetime specified in Set-Cookie headers.</td>
- </tr>
- <tr class="bg1" align="left" valign="top" id="limit_cookie_lifetime_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td>Lifetime limit in minutes (or 0 to behave like
- <a href="@user-manual@@actions-help-prefix@LIMIT-COOKIE-LIFETIME">session-cookies-only</a>):<br>
- <input type="text" name="limit_cookie_lifetime_mode" size="40"
- value="@limit-cookie-lifetime-param@"></td>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="overwrite_last_modified" value="Y" @overwrite-last-modified-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="overwrite_last_modified" value="N" @overwrite-last-modified-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="overwrite_last_modified" value="X" @overwrite-last-modified-x@
- ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@OVERWRITE-LAST-MODIFIED">overwrite-last-modified</a></td>
- <td>Remove or randomize the Last-Modified header.</td>
- </tr>
- <tr class="bg1" align="left" valign="top" id="overwrite_last_modified_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td><input type="radio" name="overwrite_last_modified_mode" value="block"
- onclick="overwrite_last_modified_param_disable(true)"
- @overwrite-last-modified-param-block@ id="overwrite_last_modified_mode_block"><label
- for="overwrite_last_modified_mode_block">Remove without replacement.</label>
- <br>
- <input type="radio" name="overwrite_last_modified_mode" value="reset-to-request-time"
- onclick="overwrite_last_modified_param_disable(true)"
- @overwrite-last-modified-param-reset-to-request-time@
- id="overwrite_last_modified_mode_reset-to-request-time"><label
- for="overwrite_last_modified_mode_reset-to-request-time">Reset to the time of the request.</label>
- <br>
- <input type="radio" name="overwrite_last_modified_mode" value="randomize"
- onclick="overwrite_last_modified_param_disable(true)"
- @overwrite-last-modified-param-randomize@
- id="overwrite_last_modified_mode_randomize"><label
- for="overwrite_last_modified_mode_randomize">Overwrite with random value
- between original header value and the time of the request.</label>
- </td>
- </tr>
-
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="prevent_compression" value="Y" @prevent-compression-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="prevent_compression" value="N" @prevent-compression-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="prevent_compression" value="X" @prevent-compression-x@
- ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@PREVENT-COMPRESSION">prevent-compression</a></td>
- <td>Disables compression. Compressed web pages are faster to
- download, but cannot be filtered with <a href="@user-manual@@actions-help-prefix@FILTER"><b>filter</b></a>
- or <a href="@user-manual@@actions-help-prefix@KILL-POPUPS"><b>kill-popups</b></a>
- if your Privoxy version was build without zlib support.</td>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="redirect" value="Y" @redirect-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="redirect" value="N" @redirect-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="redirect" value="X" @redirect-x@
- ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@REDIRECT">redirect</a></td>
- <td>Redirect to another address.
- </tr>
- <tr class="bg1" align="left" valign="top" id="redirect_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td>Static address or a single pcrs command to redirect to a rewritten version of the original URL:<br>
- <input type="text" name="redirect_mode" size="40"
- value="@redirect-param@"></td>
- </tr>
-
- <tr class="bg1" align="left" valign="top">
- <td class="en1"> </td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="server_header_filter_all" id="server_header_filter_all_n" value="N" @server-header-filter-all-n@ ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="server_header_filter_all" id="server_header_filter_all_x" value="X" @server-header-filter-all-x@ ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@SERVER-HEADER-FILTER">server-header-filter</a> *</td>
- <td>Filter the server headers.
- You can use the radio buttons on this line to disable
- all server-header filters applied by previous rules, and/or
- you can enable or disable the filters individually below.</td>
- </tr>
-@server-header-filter-params@
- <tr class="bg1" align="left" valign="top">
- <td class="en1"> </td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="server_header_tagger_all" id="server_header_tagger_all_n" value="N" @server-header-tagger-all-n@ ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="server_header_tagger_all" id="server_header_tagger_all_x" value="X" @server-header-tagger-all-x@ ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@SERVER-HEADER-TAGGER">server-header-tagger</a> *</td>
- <td>Create tags based on the server headers.
- You can use the radio buttons on this line to disable
- all server-header taggers applied by previous rules, and/or
- you can enable or disable the taggers individually below.</td>
- </tr>
-@server-header-tagger-params@
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="session_cookies_only" value="Y" @session-cookies-only-y@
- ></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="session_cookies_only" value="N" @session-cookies-only-n@
- ></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="session_cookies_only" value="X" @session-cookies-only-x@
- ></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@SESSION-COOKIES-ONLY">session-cookies-only</a></td>
- <td>HTTP cookies set by the website are changed to temporary
- ("per-session") ones, which only last until you close your web
- browser. This will allow you to use sites that require cookies, but
- sites will not be able to track you across sessions. For this to
- be useful, you should disable
- <a href="@user-manual@@actions-help-prefix@CRUNCH-OUTGOING-COOKIES"><b>crunch-outgoing-cookies</b></a> and
- <a href="@user-manual@@actions-help-prefix@CRUNCH-INCOMING-COOKIES"><b>crunch-incoming-cookies</b></a>.</td>
- </tr>
- <tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio"
- name="set_image_blocker" id="set_image_blocker_y" value="Y" @set-image-blocker-y@
- onclick="show_set_image_blocker_opts(true)"></td>
- <td class="dis1" align="center" valign="middle"><input type="radio"
- name="set_image_blocker" value="N" @set-image-blocker-n@
- onclick="show_set_image_blocker_opts(false)"></td>
- <td class="noc1" align="center" valign="middle"><input type="radio"
- name="set_image_blocker" value="X" @set-image-blocker-x@
- onclick="show_set_image_blocker_opts(false)"></td>
- <td class="action"><a href="@user-manual@@actions-help-prefix@SET-IMAGE-BLOCKER">set-image-blocker</a></td>
- <td>Specifies how to block images.</td>
- </tr>
- <tr class="bg1" align="left" valign="top" id="set_image_blocker_opts">
- <td class="en1"> </td>
- <td class="dis1"> </td>
- <td class="noc1"> </td>
- <td> </td>
- <td><input type="radio" name="set_image_blocker_mode"
- onclick="set_image_blocker_param_disable(true)"
- value="pattern" id="set_image_blocker_mode_pattern"
- @set-image-blocker-param-pattern@><label
- for="set_image_blocker_mode_pattern">Send a pattern (<img
- src="send-banner?type=p" width="12" height="12"
- alt="pattern">)</label><br>
- <input type="radio" name="set_image_blocker_mode" value="blank"
- onclick="set_image_blocker_param_disable(true)"
- id="set_image_blocker_mode_blank" @set-image-blocker-param-blank@><label
- for="set_image_blocker_mode_blank">Send a 1x1 transparent GIF</label><br>
- <input type="radio" name="set_image_blocker_mode" value="CUSTOM"
- onclick="set_image_blocker_param_disable(false)"
- id="set_image_blocker_mode_set" @set-image-blocker-param-custom@><label
- for="set_image_blocker_mode_set">Redirect
- the browser to this image URL:</label><br>
- <input type="text" name="set_image_blocker_param" id="set_image_blocker_param"
- size="40" value="@set-image-blocker-param@"></td>
- </tr>
- </table>
-
-<!-- @if-multiple-forms-start -->
- <p>
- <input type="hidden" name="f" value="@f@">
- <input type="hidden" name="v" value="@v@">
- <input type="hidden" name="s" value="@s@">
- <input type="submit" value="Submit changes in Section 4" name="Submit">
- </p>
- </form>
-<!-- if-multiple-forms-end@ -->
-</td></tr>
-<!-- @if-one-form-only-start -->
- <tr>
- <td class="green" align="center">
- <p><input type="submit" value="Submit" name="Submit"></p>
- </td>
- </tr>
-<!-- if-one-form-only-end@ -->
- <tr>
- <td class="box">
- <h2>More Privoxy:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-<!-- @if-one-form-only-start -->
-</form>
-<!-- if-one-form-only-end@ -->
-
-<script type="text/javascript">
-<!--
-
-if (document.getElementById) {
- // alert("Netscape 6 or IE5");
- document.getElementById("hide_from_header_param").disabled = !(document.getElementById("hide_from_header_mode_set").checked);
- document.getElementById("hide_referrer_param").disabled = !(document.getElementById("hide_referrer_mode_set").checked);
- document.getElementById("set_image_blocker_param").disabled = !(document.getElementById("set_image_blocker_mode_set").checked);
-
- show_add_header_opts (document.getElementById("add_header_y").checked);
- show_deanimate_opts (document.getElementById("deanimate_gifs_y").checked);
- show_hide_from_header_opts(document.getElementById("hide_from_header_y").checked);
- show_hide_referrer_opts (document.getElementById("hide_referrer_y").checked);
- show_user_agent_opts (document.getElementById("hide_user_agent_y").checked);
- show_set_image_blocker_opts (document.getElementById("set_image_blocker_y").checked);
- show_limit_connect_opts (document.getElementById("limit_connect_y").checked);
- show_send_wafer_opts (document.getElementById("send_wafer_y").checked);
-} else if (document.all) {
- // alert("IE4");
- document.myform.hide_from_header_param.disabled = !(document.myform.hide_from_header_mode_set.checked);
- document.myform.hide_referrer_param.disabled = !(document.myform.hide_referrer_mode_set.checked);
- document.myform.set_image_blocker_param.disabled = !(document.myform.set_image_blocker_mode_set.checked);
-
- show_add_header_opts (document.myform.add_header_y.checked);
- show_deanimate_opts (document.myform.deanimate_gifs_y.checked);
- show_hide_from_header_opts (document.myform.hide_from_header_y.checked);
- show_hide_referrer_opts (document.myform.hide_referrer_y.checked);
- show_user_agent_opts (document.myform.hide_user_agent_y.checked);
- show_set_image_blocker_opts (document.myform.set_image_blocker_y.checked);
- show_limit_connect_opts (document.myform.limit_connect_y.checked);
- show_send_wafer_opts (document.myform.send_wafer_y.checked);
-} else if (document.layers) {
- // alert("Netscape 4");
-}
-//-->
-</script>
-
-
-</body>
-
-</html>
+++ /dev/null
-##############################################################################
-#
-# File : $Source: /cvsroot/ijbswa/current/templates/edit-actions-for-url-filter,v $
-#
-# Purpose : Template that is included from most of Privoxy's CGI pages
-# to show the user how to get help or report problems.
-#
-#
-# Copyright : Written by and Copyright (C) 2002-2007 members of
-# the SourceForge Privoxy team. http://www.privoxy.org/
-#
-# This template is free software; you can redistribute it
-# and/or modify it under the terms of the GNU General
-# Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-##############################################################################
-
-<tr class="bg1" align="left" valign="top">
- <td class="en1" align="center" valign="middle"><input type="radio" name="filter_r@index@" value="Y" @this-filter-y@></td>
- <td class="dis1" align="center" valign="middle"><input type="radio" name="filter_r@index@" value="N" @this-filter-n@></td>
- <td class="noc1" align="center" valign="middle"><input type="radio" name="filter_r@index@" value="X" @this-filter-x@></td>
- <td class="action">
- <input type="hidden" name="filter_t@index@" value="@abbr-filter-type@">
- <input type="hidden" name="filter_n@index@" value="@name@">
- <a href="@user-manual@@actions-help-prefix@@anchor@">@filter-type@</a> @name@
- </td>
- <td>@description@</td>
-</tr>
+++ /dev/null
-##############################################################################
-#
-# File : $Source: /cvsroot/ijbswa/current/templates/edit-actions-list,v $
-#
-# Purpose : Template used to edit the actions file.
-#
-#
-# Copyright : Written by and Copyright (C) 2001-2009 the
-# Privoxy team. http://www.privoxy.org/
-#
-# Original Author: Copyright (C) 2001 Jonathan Foster
-# http://www.jon-foster.co.uk/
-#
-# This program is free software; you can redistribute it
-# and/or modify it under the terms of the GNU General
-# Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will
-# be useful, but WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. See the GNU General Public
-# License for more details.
-#
-# The GNU General Public License should be included with
-# this file. If not, you can view it at
-# http://www.gnu.org/copyleft/gpl.html
-# or write to the Free Software Foundation, Inc., 59
-# Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-##############################################################################
-#
-# Browser support for the CSS on this page:
-# MS Internet Explorer 5.5 - Yes - everything works.
-# Netscape 6.2 - Yes - everything works.
-# Netscape 4.75 - No - CSS buttons look really bad, but they are
-# usable. Everything else works.
-# Opera 5.12 - Yes - everything works.
-# MS Internet Explorer 4+ - Untested
-# MS IE 3.x, NS3.x - Untested (Don't support CSS, so everything
-# should work, but will look ugly).
-# Mozilla >=0.6 - Yes - everything works.
-#
-# All browsers should work, you just might not get the pretty CSS buttons.
-#
-# If your favorite browser isn't listed/tested, please test and add it.
-#
-#
-#############################################################################
-#
-# Standard support:
-#
-# This file currently produces valid HTML 4.01 Strict.
-#
-# If you change it, please save the generated page from your web browser
-# and then upload it to http://validator.w3.org/ for checking.
-#
-#############################################################################
-#
-# Available variables include:
-#
-# filename
-# ver
-#
-#
-#############################################################################
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-<head>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="stylesheet" type="text/css" href="@default-cgi@send-stylesheet">
- <link rel="shortcut icon" href="@default-cgi@favicon.ico" type="image/x-icon">
-
- <title>Privoxy: Edit actions file @actions-file@</title>
-
- <style type="text/css">
-
-table.framed {
- border: solid black 1px;
- margin: 10px 0px;
-}
-tr.actions {
- background-color: #eeffee;
-}
-tr.url {
- background-color: #ddddff;
-}
-tr.adv {
- background-color: #FFFFD0;
-}
-td.header {
- font-weight: bold;
- font-size: 110%;
- padding: 10px 15px 2px 15px;
-}
-td.url {
- font-weight: bold;
-}
-td.action {
- font-weight: bold;
- font-style: italic;
- padding: 2px 30px;
-}
-td.nbr, td.buttons {
- white-space: nowrap;
-}
-td.indentbuttons {
- padding: 2px 30px;
-}
-</style>
-
-<script type="text/javascript">
-<!--
-
-// Non-JS capable browsers will follow the link to a HTML "are you sure?" page
-// JavaScript-capable browsers will call this function, which does a
-// client-side prompt for speed. It may kick off the delete directly.
-// It always returns false to cancel following the link.
-function rm_p(link,pattern,curtext)
-{
- if (window.confirm("Are you sure you want to delete this URL pattern?\nPattern is: "+unescape(curtext)))
- {
- link.href="edit-actions-remove-url?f=@f@&v=@v@&p="+pattern;
- return true;
- }
- return false;
-}
-
-function e_p(link,pattern,curtext)
-{
- if ((newtext=window.prompt("Edit the pattern to your needs:", unescape(curtext))) != null)
- {
- if (newtext != "")
- { link.href="edit-actions-url?f=@f@&v=@v@&p="+pattern+"&u="+encodeURIComponent(newtext); }
- else
- { link.href="edit-actions-remove-url?f=@f@&v=@v@&p="+pattern; }
- return true;
- }
- return false;
-}
-
-function a_p(link,section)
-{
- if (((newtext=window.prompt("Enter the new pattern:", "")) != null ) && (newtext != ""))
- {
- link.href="edit-actions-add-url?f=@f@&v=@v@&s="+section+"&u="+encodeURIComponent(newtext);
- return true;
- }
- return false;
-}
-//-->
-</script>
-</head>
-
-<body>
-
- <table cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="title">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
- <tr>
- <td class="info">
- <h2>What is all this?</h2>
- <p>
- If you haven't already done so, it is <b>strongly recommended</b> that you at
- least skim <a href="@user-manual@@actions-help-prefix@ACTIONS-FILE">the
- chapter on actions files</a> in the <a href="@user-manual@">User Manual</a>
- before making any changes. You will also find a comprehensive list of
- all available actions there, as well how the settings on this page
- work.
- </p>
- <!-- @if-all-urls-present-then@ -->
- <p>
- Please note that <b>the first section has special importance</b>. It sets the default actions for
- all URLs. The resulting actions for a particular URL may differ from these defaults if that
- URL matches again further down, but this section is largely responsible for your browsing
- experience. Edit manually with great care, or choose from the predefined sets of actions.
- </p>
- <!-- @else-not-all-urls-present@@endif-all-urls-present@ -->
- <!-- @if-default-action-then@ -->
- <p>
- This is the default action file. Updates for it are available from
- <a href="http://www.privoxy.org/">Privoxy.org</a> from time to time.
- It is therefore <b>not recommended</b> that you add your private
- rules here, since they will be lost if you install an update in the future.
- Put your rules in a separate actions file, like <tt>user.action</tt> instead.
- </p>
- <!-- @else-not-default-action@@endif-default-action@ -->
- </td>
- </tr>
-
- <tr>
- <td class="box">
- <div class="buttons">
- <h2>Editing Actions File @actions-file@</h2>
- <!-- @if-all-urls-present-then@@else-not-all-urls-present@ -->
- <p><a class="cmd" href="edit-actions-section-add?f=@f@&v=@v@&s=0">Insert new section at top</a></p>
- <!-- @endif-all-urls-present@ -->
- </div>
- </td>
- </tr>
-
- <!-- @if-all-urls-present-then@ -->
- <tr>
- <td class="container"><a name="l@all-urls-s@"></a>
- <table border="0" width="100%" cellspacing="2" cellpadding="3" class="framed">
- <tr class="actions"><td class="header"><a href="@user-manual@@actions-help-prefix@ACTIONS">Actions</a>:</td></tr>
- <tr class="actions">
- <td class="indentbuttons">
- <a href="eafu?f=@f@&v=@v@&s=@all-urls-s@">Edit</a>
- @all-urls-buttons@
- </td>
- </tr>
- <tr class="actions"><td class="action">@all-urls-actions@</td></tr>
- <tr class="url"><td class="header"><a href="@user-manual@@actions-help-prefix@AF-PATTERNS">URL patterns</a>:</td></tr>
- <tr class="url"><td class="indentbuttons">/ <i>(Matches all requests)</a></td></tr>
- <tr class="adv"><td class="header">Advanced:</td></tr>
- <tr class="adv">
- <td class="indentbuttons">
- <a href="easa?f=@f@&v=@v@&s=@all-urls-s@#l@all-urls-s-next@">Insert new section below</a>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <!-- @else-not-all-urls-present@@endif-all-urls-present@ -->
-
-@sections@
-
- <tr>
- <td class="box">
- <h2>More Privoxy:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-</body>
-
-</html>
+++ /dev/null
-##############################################################################
-#
-# File : $Source: /cvsroot/ijbswa/current/templates/edit-actions-list-button,v $
-#
-# Purpose : Template which forms part of edit-actions-list
-#
-#
-# Copyright : Written by and Copyright (C) 2001 the SourceForge
-# Privoxy team. http://www.privoxy.org/
-#
-# Original Author: Copyright (C) 2001 Jonathan Foster
-# http://www.jon-foster.co.uk/
-#
-# This program is free software; you can redistribute it
-# and/or modify it under the terms of the GNU General
-# Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will
-# be useful, but WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. See the GNU General Public
-# License for more details.
-#
-# The GNU General Public License should be included with
-# this file. If not, you can view it at
-# http://www.gnu.org/copyleft/gpl.html
-# or write to the Free Software Foundation, Inc., 59
-# Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-#############################################################################
- <a href="eas?f=@f@&v=@v@&s=@all-urls-s@&p=@button-name@#l@all-urls-s@">Set to @button-name@</a>
+++ /dev/null
-##############################################################################
-#
-# File : $Source: /cvsroot/ijbswa/current/templates/edit-actions-list-section,v $
-#
-# Purpose : Template which forms part of edit-actions-list
-#
-#
-# Copyright : Written by and Copyright (C) 2001 the SourceForge
-# Privoxy team. http://www.privoxy.org/
-#
-# Original Author: Copyright (C) 2001 Jonathan Foster
-# http://www.jon-foster.co.uk/
-#
-# This program is free software; you can redistribute it
-# and/or modify it under the terms of the GNU General
-# Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will
-# be useful, but WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. See the GNU General Public
-# License for more details.
-#
-# The GNU General Public License should be included with
-# this file. If not, you can view it at
-# http://www.gnu.org/copyleft/gpl.html
-# or write to the Free Software Foundation, Inc., 59
-# Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-#############################################################################
-#
-# Available variables include:
-#
-# filename
-# ver
-# sectionid
-# urls
-#
-#############################################################################
-#
-# ** Important note: **
-#
-# It is important to keep this file small. That's why all the
-# identifiers in the HTML are short and cryptic. Currently, the main
-# edit-actions page is ~300k. Before it was optimized, it was ~550k.
-#
-#############################################################################
-
-<tr><td class="container"><a name="l@s@"></a>
-<table border="0" width="100%" cellspacing="2" cellpadding="3" class="framed">
-<tr class="actions"><td class="header"><a href="@user-manual@@actions-help-prefix@ACTIONS">Actions</a>:</td></tr>
-<tr class="actions"><td class="indentbuttons"><a href="eafu?f=@f@&v=@v@&s=@s@">Edit</a></td></tr>
-<tr class="actions"><td class="action">@actions@</td></tr>
-<tr class="url"><td class="header"><a href="@user-manual@@actions-help-prefix@AF-PATTERNS">URL patterns</a>:</td></tr>
-<tr class="url"><td class="indentbuttons"><a href="eaa?f=@f@&v=@v@&s=@s@" onclick="return a_p(this,@s@);">Add</a></td></tr>
-@urls@
-<tr class="adv"><td class="header">Advanced:</td></tr>
-<tr class="adv"><td class="indentbuttons">
-@if-s-prev-exists-start@<a href="eass?f=@f@&v=@v@&s1=@s-prev@&s2=@s@#l@s-prev@">Move section up</a> @if-s-prev-exists-end@
-@if-s-next-exists-start@<a href="eass?f=@f@&v=@v@&s1=@s@&s2=@s-next@#l@s@">Move section down</a> @if-s-next-exists-end@
-<a href="easa?f=@f@&v=@v@&s=@s@#l@s-next@">Insert new section below</a>
-@if-empty-section-start@ <a href="easr?f=@f@&v=@v@&s=@s@#l@s@">Delete whole section</a>@if-empty-section-end@
-</td></tr>
-</table>
-</td></tr>
+++ /dev/null
-##############################################################################
-#
-# File : $Source: /cvsroot/ijbswa/current/templates/edit-actions-list-url,v $
-#
-# Purpose : Template which forms part of edit-actions-list
-#
-#
-# Copyright : Written by and Copyright (C) 2001 the SourceForge
-# Privoxy team. http://www.privoxy.org/
-#
-# Original Author: Copyright (C) 2001 Jonathan Foster
-# http://www.jon-foster.co.uk/
-#
-# This program is free software; you can redistribute it
-# and/or modify it under the terms of the GNU General
-# Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will
-# be useful, but WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. See the GNU General Public
-# License for more details.
-#
-# The GNU General Public License should be included with
-# this file. If not, you can view it at
-# http://www.gnu.org/copyleft/gpl.html
-# or write to the Free Software Foundation, Inc., 59
-# Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-#############################################################################
-#
-# Available variables include:
-#
-# filename
-# ver
-# sectionid
-# urls
-#
-#############################################################################
-#
-# ** Important note: **
-#
-# It is *extremely* important to keep this file small. That's why all the
-# identifiers in the HTML are short and cryptic. Currently, the main
-# edit-actions page is ~300k. Before it was optimized, it was ~550k.
-#
-#############################################################################
-<tr class="url" valign="top">
-<td class="indentbuttons"><a name="l@p@"
-href="ear?f=@f@&v=@v@&p=@p@" onclick="return rm_p(this, @p@,'@url@');">Remove</a> <a
-href="eau?f=@f@&v=@v@&p=@p@" onclick="return e_p(this, @p@,'@url@');">Edit</a> @url-html@</td>
-</tr>
+++ /dev/null
-##############################################################################
-#
-# File : $Source: /cvsroot/ijbswa/current/templates/edit-actions-remove-url-form,v $
-#
-# Purpose : Template used to confirm removal of a particular URL
-# pattern from an actions file. Only used on browsers that
-# don't support JavaScript.
-#
-#
-# Copyright : Written by and Copyright (C) 2001 the SourceForge
-# Privoxy team. http://www.privoxy.org/
-#
-# Original Author: Copyright (C) 2001 Jonathan Foster
-# http://www.jon-foster.co.uk/
-#
-# This program is free software; you can redistribute it
-# and/or modify it under the terms of the GNU General
-# Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will
-# be useful, but WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. See the GNU General Public
-# License for more details.
-#
-# The GNU General Public License should be included with
-# this file. If not, you can view it at
-# http://www.gnu.org/copyleft/gpl.html
-# or write to the Free Software Foundation, Inc., 59
-# Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-##############################################################################
-#
-# Standard support:
-#
-# This file currently produces valid HTML 4.01 Strict.
-#
-# If you change it, please save the generated page from your web browser
-# and then upload it to http://validator.w3.org/ for checking.
-#
-#############################################################################
-#
-# Available variables include:
-#
-# filename
-# ver
-# section
-# pattern
-# oldval
-# jumptarget - append to eal URL to jump to relevant section
-#
-#############################################################################
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-<head>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="stylesheet" type="text/css" href="@default-cgi@send-stylesheet">
- <link rel="shortcut icon" href="@default-cgi@favicon.ico" type="image/x-icon">
-
- <title>Privoxy@@my-hostname@: Remove URL Pattern</title>
-</head>
-
-<body>
-
- <table cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="title">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
- <tr>
- <td class="box">
- <h2>Remove URL Pattern</h2>
- <p>Are you sure you want to delete this URL pattern? The pattern is:</p>
- <p class="important">@u@</p>
- <p>
- <a class="cmd" href="edit-actions-remove-url?f=@f@&v=@v@&p=@p@">OK</a>
-
- <a class="cmd" href="edit-actions-list?f=@f@@jumptarget@">Cancel</a>
- </p>
- </td>
- </tr>
-
- <tr>
- <td class="box">
- <h2>More Privoxy:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-</body>
-
-</html>
+++ /dev/null
-##############################################################################
-#
-# File : $Source: /cvsroot/ijbswa/current/templates/edit-actions-url-form,v $
-#
-# Purpose : Template used to edit a URL pattern in an actions file.
-#
-#
-# Copyright : Written by and Copyright (C) 2001 the SourceForge
-# Privoxy team. http://www.privoxy.org/
-#
-# Original Author: Copyright (C) 2001 Jonathan Foster
-# http://www.jon-foster.co.uk/
-#
-# This program is free software; you can redistribute it
-# and/or modify it under the terms of the GNU General
-# Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will
-# be useful, but WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. See the GNU General Public
-# License for more details.
-#
-# The GNU General Public License should be included with
-# this file. If not, you can view it at
-# http://www.gnu.org/copyleft/gpl.html
-# or write to the Free Software Foundation, Inc., 59
-# Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-##############################################################################
-#
-# Standard support:
-#
-# This file currently produces valid HTML 4.01 Strict.
-#
-# If you change it, please save the generated page from your web browser
-# and then upload it to http://validator.w3.org/ for checking.
-#
-#############################################################################
-#
-# Available variables include:
-#
-# f - filename
-# v - version
-# s - section
-# p - pattern
-# u - old value of URL
-# jumptarget - append to eal URL to jump to relevant section
-#
-#############################################################################
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-<head>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="stylesheet" type="text/css" href="@default-cgi@send-stylesheet">
- <link rel="shortcut icon" href="@default-cgi@favicon.ico">
-
- <title>Privoxy@@my-hostname@: Edit URL Pattern</title>
-
- <script type="text/javascript">
-<!--
-function validate(text)
-{
- if (text=="")
- {
- alert("You need to type a pattern in order to continue!");
- return false;
- }
-
- return true;
-}
-//-->
- </script>
-</head>
-
-<body>
-
- <table cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="title">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
- <tr>
- <td class="box">
- <h2>Edit URL or TAG Pattern</h2>
- <form method="GET" action="edit-actions-url"
- onSubmit="return validate(u.value);">
- <p>
- <input type="hidden" name="f" value="@f@">
- <input type="hidden" name="v" value="@v@">
- <input type="hidden" name="p" value="@p@">
- <input type="text" name="u" value="@u@" size="78" class="pattern"><br>
- <input type="submit" value="Submit">
- <input type="reset" value="Reset">
- <a class="cmd" href="edit-actions-list?f=@f@@jumptarget@">Cancel</a>
- </p>
- </form>
- </td>
- </tr>
-
- <tr>
- <td class="box">
- <h2>More Privoxy:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-</body>
-
-</html>
+++ /dev/null
-##########################################################
-#
-# Forwarding-failed template for Privoxy.
-#
-#
-# USING HTML TEMPLATES:
-# ---------------------
-#
-# Template files are written in plain HTML, with a few
-# additions:
-#
-# - Lines that start with a '#' character like this one
-# are ignored
-#
-# - Each item in the below list of exported symbols will
-# be replaced by dynamically generated text, if they
-# are enclosed in '@'-characters. E.g. The string @version@
-# will be replaced by the version number of Privoxy.
-#
-# - One special application of this is to make whole blocks
-# of the HTML template disappear if the condition <name>
-# is not given. Simply enclose the block between the two
-# strings @if-<name>start and if-<name>-end@. The strings
-# should be placed in HTML comments (<!-- -->), so the
-# html structure won't be messed when the magic happens.
-#
-# USABLE SYMBOLS IN THIS TEMPLATE:
-# --------------------------------
-#
-# my-ip-addr:
-# The IP-address that the client used to reach this proxy
-# my-hostname:
-# The hostname associated with my-ip-addr
-# admin-address:
-# The email address of the pxoxy's administrator, as configured
-# in the config file
-# default-cgi:
-# The URL for the "main menu" builtin CGI of this proxy
-# menu:
-# List of <li> elements linking to the other available CGIs
-# version:
-# The version number of the proxy software
-# code-status:
-# The development status of the proxy software: "alpha", "beta",
-# or "stable".
-# homepage:
-# The URL of the SourceForge ijbswa project, who maintains this
-# software.
-#
-# gateway
-# The IP or hostname of the forwarding server
-# hostport:
-# The host and port part of the request that lead to this problem
-# path:
-# The path part of the request that lead to this problem
-# error-message:
-# The failure reason.
-# forwarding-type:
-# The type of the forwarding request: "socks4-", "socks4a-"
-# or (in the future) "" for direct connections to the forwarder.
-#
-#
-# CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
-# ------------------------------------------------------------------
-#
-# unstable:
-# this is an alpha or beta release of the proxy software
-# have-adminaddr-info:
-# An e-mail address for the local Privoxy adminstrator has
-# been specified and is available through the "admin-address"
-# symbol
-# have-proxy-info:
-# A URL for online documentation about this proxy has been
-# specified and is available through the "proxy-info-url"
-# symbol
-# have-help-info:
-# If either have-proxy-info is true or have-adminaddr-info is
-# true, have-help-info is true. Used to conditionally include
-# a grey box for any and all help info.
-#
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-<head>
- <title>503 - Forwarding failure (Privoxy@@my-hostname@)</title>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="shortcut icon" href="@default-cgi@error-favicon.ico">
- <style type="text/css">
-#include cgi-style.css
- </style>
-</head>
-
-<body>
-
- <table summary="" cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="status">
- 503
- </td>
- <td class="title" style="width: 100%">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning" colspan="2">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
- <tr>
- <td class="warning" colspan=2>
- <h2>Forwarding failure</h2>
- <p>Privoxy was unable to <b>@forwarding-type@forward</b> your request
- <a title="Repeat the request"
- href="@protocol@@hostport@@path@"><b>@protocol@@hostport@@path@</b></a>
- through <b>@gateway@</b>:
- <strong>@error-message@</strong></p>
- </p>
- <p>Just <a title="Repeat the request" href="@protocol@@hostport@@path@">try again</a> to
- see if this is a temporary problem, or check your <a title="Privoxy's show-status page"
- href="@default-cgi@show-status">forwarding settings</a>
- and make sure that all forwarding servers are working correctly and
- listening where they are supposed to be listening.
- </p>
- </td>
- </tr>
-
- <tr>
- <td class="box" colspan="2">
- <h2>More Privoxy:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info" colspan="2">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info" colspan="2">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-
-</body>
-</html>
+++ /dev/null
- <h2>Local Privoxy support:</h2>
-
-<!-- @if-have-proxy-info-start -->
- <p>You can consult the <a href="@proxy-info-url@">online documentation</a> for more information about this Privoxy installation.</p>
-<!-- if-have-proxy-info-end@ -->
-
-<!-- @if-have-adminaddr-info-start -->
- <p>Address e-mail questions about this Privoxy installation to
- <a href="mailto:@admin-address@"><code>@admin-address@</code></a>,
- who will be glad to help you.
- </p>
-<!-- if-have-adminaddr-info-end@ -->
+++ /dev/null
-##############################################################################
-#
-# File : $Source: /cvsroot/ijbswa/current/templates/mod-support-and-service,v $
-#
-# Purpose : Template that is included from most of Privoxy's CGI pages
-# to show the user how to get help or report problems.
-#
-#
-# Copyright : Written by and Copyright (C) 2002-2009 members of
-# the Privoxy team. http://www.privoxy.org/
-#
-# This template is free software; you can redistribute it
-# and/or modify it under the terms of the GNU General
-# Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-##############################################################################
- <h2>Support and Service:</h2>
- <p>
- The Privoxy Team values your feedback. To provide you with the best support,
- we ask that you:
- </p>
- <ul>
- <li>
- use the <a href="http://sourceforge.net/tracker/?group_id=11118&atid=211118">Support Tracker</a>
- if you need help.
- </li>
- <li>
- submit ads and configuration related problems with the actions files through the
- <a href="http://sourceforge.net/tracker/?group_id=11118&atid=460288">Actionsfile Feedback Tracker</a>.
- </li>
- <li>
- submit bugs only through the
- <a href="http://sourceforge.net/tracker/?group_id=11118&atid=111118">Bug Tracker</a>.
- Please make sure that the bug has not been submitted yet.
- </li>
- <li>
- submit feature requests only through the
- <a href="http://sourceforge.net/tracker/?atid=361118&group_id=11118&func=browse">Feature
- Request Tracker</a>.
- </li>
- <li>
- read the <a title="Contacting the developers, Bug Reporting and Feature Requests"
- href="@user-manual@contact.html">instructions in the User Manual</a>
- to make sure your request contains all the information we need.
- </li>
- </ul>
- <p>
- If you want to support the Privoxy Team, please have a look at the FAQ to learn how to
- <a href="http://www.privoxy.org/faq/general.html#PARTICIPATE">participate</a>
- or to <a href="http://www.privoxy.org/faq/general.html#DONATE">donate</a>.
- </p>
+++ /dev/null
- <h1>
- This is <a href="@homepage@">Privoxy</a> @version@ on @my-hostname@ (@my-ip-address@), port @my-port@<!-- @if-can-toggle-start -->,
- @if-enabled-display-then@enabled@else-not-enabled-display@disabled@endif-enabled-display@<!-- if-can-toggle-end@ -->
- </h1>
+++ /dev/null
- <h2>Warning:</h2>
- <p>
- <strong>This Privoxy version is based on <em class="warning">@code-status@</em> code and
- not intended for production systems!
- <br>Use at your own risk. See the <a title="GNU General Public License version 2"
- href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html">license</a> for details.</strong>
- </p>
+++ /dev/null
-##########################################################
-#
-# no-server-data Error Output template for Privoxy.
-#
-##########################################################
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-<head>
- <title>502 - No server or forwarder data received (Privoxy@@my-hostname@)</title>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="shortcut icon" href="@default-cgi@error-favicon.ico">
- <style type="text/css">
-#include cgi-style.css
- </style>
-</head>
-
-<body>
-
- <table summary="" cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="status">
- 502
- </td>
- <td class="title" style="width: 100%">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning" colspan="2">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
- <tr>
- <td class="warning" colspan=2>
- <h2>No server or forwarder data received</h2>
- <p>Your request for <a href="@protocol@@hostport@@path@"><b>@protocol@@hostport@@path@</b></a>
- could not be fulfilled, because the connection to <b>@host@</b> (@host-ip@) has been closed
- before Privoxy received any data for this request.
- </p>
- <p>This is often a temporary failure, so you might just
- <a href="@protocol@@hostport@@path@">try again</a>.
- </p>
- <p>
- If you get this message very often, consider disabling
- <a href="@user-manual@config.html#CONNECTION-SHARING">connection-sharing</a>
- (which should be off by default). If that doesn't help, you may have to additionally
- disable support for connection keep-alive by setting
- <a href="@user-manual@config.html#KEEP-ALIVE-TIMEOUT">keep-alive-timeout</a>
- to 0.
- </p>
- </td>
- </tr>
-
- <tr>
- <td class="box" colspan="2">
- <h2>More Privoxy:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info" colspan="2">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info" colspan="2">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-
-</body>
-</html>
+++ /dev/null
-##########################################################
-#
-# No-Such-Domain Error Output template for Privoxy.
-#
-#
-# USING HTML TEMPLATES:
-# ---------------------
-#
-# Template files are written win plain HTML, with a few
-# additions:
-#
-# - Lines that start with a '#' character like this one
-# are ignored
-#
-# - Each item in the below list of exported symbols will
-# be replaced by dynamically generated text, if they
-# are enclosed in '@'-characters. E.g. The string @version@
-# will be replaced by the version number of Privoxy.
-#
-# - One special application of this is to make whole blocks
-# of the HTML template disappear if the condition <name>
-# is not given. Simply enclose the block between the two
-# strings @if-<name>start and if-<name>-end@. The strings
-# should be placed in HTML comments (<!-- -->), so the
-# html structure won't be messed when the magic happens.
-#
-# USABLE SYMBOLS IN THIS TEMPLATE:
-# --------------------------------
-#
-# my-ip-addr:
-# The IP-address that the client used to reach this proxy
-# my-hostname:
-# The hostname associated with my-ip-addr
-# admin-address:
-# The email address of the proxy's administrator, as configured
-# in the 'config' file
-# default-cgi:
-# The URL for the "main menu" builtin CGI of this proxy
-# menu:
-# List of <li> elements linking to the other available CGIs
-# version:
-# The version number of the proxy software
-# code-status:
-# The development status of the proxy software: "alpha", "beta",
-# or "stable".
-# homepage:
-# The URL of the SourceForge ijbswa project, who maintains this
-# software.
-#
-# host:
-# The host part of the request that lead to this problem
-# hostport:
-# The host and port part of the request that lead to this problem
-# path:
-# The path part of the request that lead to this problem
-# proxy-info-url:
-# The URL to local online Privoxy documentation, if define in the
-# 'config' file
-#
-# CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
-# ------------------------------------------------------------------
-#
-# unstable:
-# this is an alpha or beta release of the proxy software
-# have-adminaddr-info:
-# An e-mail address for the local Privoxy adminstrator has
-# been specified and is available through the "admin-address"
-# symbol
-# have-proxy-info:
-# A URL for online documentation about this proxy has been
-# specified and is available through the "proxy-info-url"
-# symbol
-# have-help-info:
-# If either have-proxy-info is true or have-adminaddr-info is
-# true, have-help-info is true. Used to conditionally include
-# a grey box for any and all help info.
-#
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-<head>
- <title>404 - No such Domain (Privoxy@@my-hostname@)</title>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="shortcut icon" href="@default-cgi@error-favicon.ico">
- <style type="text/css">
-#include cgi-style.css
- </style>
-</head>
-
-<body>
-
- <table summary="" cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="status">
- 404
- </td>
- <td class="title" style="width: 100%">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning" colspan="2">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
- <tr>
- <td class="warning" colspan="2">
- <h2>No such domain</h2>
- <p>Your request for <a href="@protocol@@hostport@@path@"><b>@protocol@@hostport@@path@</b></a>
- could not be fulfilled, because the domain name <b>@host@</b> could not be resolved.
- </p>
- <p>This is often a temporary failure, so you might just
- <a href="@protocol@@hostport@@path@">try again</a>.
- </p>
- </td>
- </tr>
-
- <tr>
- <td class="box" colspan="2">
- <h2>More Privoxy:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info" colspan="2">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info" colspan="2">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-
-</body>
-</html>
+++ /dev/null
-##########################################################
-#
-# Show-Request-CGI Output template for Privoxy.
-#
-#
-# USING HTML TEMPLATES:
-# ---------------------
-#
-# Template files are written win plain HTML, with a few
-# additions:
-#
-# - Lines that start with a '#' character like this one
-# are ignored
-#
-# - Each item in the below list of exported symbols will
-# be replaced by dynamically generated text, if they
-# are enclosed in '@'-characters. E.g. The string @version@
-# will be replaced by the version number of Privoxy.
-#
-# - One special application of this is to make whole blocks
-# of the HTML template disappear if the condition <name>
-# is not given. Simply enclose the block between the two
-# strings @if-<name>start and if-<name>-end@. The strings
-# should be placed in HTML comments (<!-- -->), so the
-# html structure won't be messed when the magic happens.
-#
-# USABLE SYMBOLS IN THIS TEMPLATE:
-# --------------------------------
-#
-# my-ip-addr:
-# The IP-address that the client used to reach this proxy
-# my-hostname:
-# The hostname associated with my-ip-addr
-# admin-address:
-# The email address of the pxoxy's administrator, as configured
-# in the config file
-# default-cgi:
-# The URL for the "main menu" builtin CGI of this proxy
-# menu:
-# List of <li> elements linking to the other available CGIs
-# version:
-# The version number of the proxy software
-# code-status:
-# The development status of the proxy software: "alpha", "beta",
-# or "stable".
-# homepage:
-# The URL of the SourceForge ijbswa project, who maintains this
-# software.
-# client-request:
-# The request and headers that the client sent.
-# processed-request:
-# What we would have rewritten this request to, if this had not
-# been intercepted.
-#
-# CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
-# ------------------------------------------------------------------
-#
-# unstable:
-# this is an alpha or beta release of the proxy software
-# have-adminaddr-info:
-# An e-mail address for the local Privoxy adminstrator has
-# been specified and is available through the "admin-address"
-# symbol
-# have-proxy-info:
-# A URL for online documentation about this proxy has been
-# specified and is available through the "proxy-info-url"
-# symbol
-# have-help-info:
-# If either have-proxy-info is true or have-adminaddr-info is
-# true, have-help-info is true. Used to conditionally include
-# a grey box for any and all help info.
-#
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-<head>
- <title>Privoxy@@my-hostname@</title>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="stylesheet" type="text/css" href="@default-cgi@send-stylesheet">
- <link rel="shortcut icon" href="@default-cgi@favicon.ico" type="image/x-icon">
-</head>
-
-<body>
-
- <table cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="title">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
- <tr>
- <td class="box">
- <h2>Show-Request</h2>
- <p>
- Here you see the original headers that your client sent when requesting this page, along with
- the headers that Privoxy would have sent to the remote server if this request hadn't been
- intercepted.
- </p>
-
- <h3>Original Client Request:</h3>
- <pre>@client-request@</pre>
-
- <h3>Processed Request:</h3>
- <pre>@processed-request@</pre>
-
- </td>
- </tr>
-
- <tr>
- <td class="box">
- <h2>More Privoxy:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-
-</body>
-</html>
+++ /dev/null
-##########################################################
-#
-# Show-Status-CGI Output template for Privoxy.
-#
-# USING HTML TEMPLATES:
-# ---------------------
-#
-# Template files are written win plain HTML, with a few
-# additions:
-#
-# - Lines that start with a '#' character like this one
-# are ignored
-#
-# - Each item in the below list of exported symbols will
-# be replaced by dynamically generated text, if they
-# are enclosed in '@'-characters. E.g. The string @version@
-# will be replaced by the version number of Privoxy.
-#
-# - One special application of this is to make whole blocks
-# of the HTML template disappear if the condition <name>
-# is not given. Simply enclose the block between the two
-# strings @if-<name>start and if-<name>-end@. The strings
-# should be placed in HTML comments (<!-- -->), so the
-# html structure won't be messed when the magic happens.
-#
-# USABLE SYMBOLS IN THIS TEMPLATE:
-# --------------------------------
-#
-# my-ip-addr:
-# The IP-address that the client used to reach Privoxy
-# my-hostname:
-# The hostname associated with my-ip-addr
-# admin-address:
-# The email address of the Privoxy administrator, as configured
-# in the config file
-# default-cgi:
-# The URL for the "main menu" builtin CGI of Privoxy
-# menu:
-# List of <li> elements linking to the other available CGIs
-# version:
-# The Privoxy version number
-# code-status:
-# The Privoxy development status: "alpha", "beta", or "stable".
-# homepage:
-# The URL of the SourceForge ijbswa project, who maintains this
-# software.
-#
-# redirect-url:
-# The URL to a script that will redirect to the Privoxy
-# documentation for a given item
-# invocation:
-# The command line with which Privoxy was invoked
-# options:
-# The options read from the configfile, linked to their
-# explanations, plus warnings if parsing acl or forward
-# statements produced errors.
-# sourceversions:
-# A HTML-formatted list of the individual source file cvs versions
-# defines:
-# A HTML-formatted list of all conditional #defines used when
-# Privoxy was compiled
-#
-#
-# CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
-# ------------------------------------------------------------------
-#
-# unstable:
-# This is an alpha or beta Privoxy release
-# have-adminaddr-info:
-# An e-mail address for the local Privoxy adminstrator has
-# been specified and is available through the "admin-address"
-# symbol
-# have-proxy-info:
-# A URL for Privoxy's online documentation has been
-# specified and is available through the "proxy-info-url"
-# symbol
-# have-help-info:
-# If either have-proxy-info is true or have-adminaddr-info is
-# true, have-help-info is true. Used to conditionally include
-# a grey box for any and all help info.
-# statistics:
-# Privoxy was compiled with statistics support
-# have-stats:
-# There have been previous requests and statistics have
-# been collected. In this case, the following symbols
-# are available:
-# requests-received:
-# The number of requests received so far
-# requests-blocked:
-# The number of request blocked so far
-# percent-blocked:
-# The percentage of blocked requests
-# have-no-stats:
-# There haven't any statistics been collected yet
-# pcrs-support:
-# Privoxy was compiled with pcrs support
-# trust-support:
-# Privoxy was compiled with trust support
-# actions-filenames:
-# The path to the actions files.
-# re-filter-filenames:
-# The path to the re_filter files. Only available if
-# pcrs-support is set
-# trust-filename:
-# The path to the trust file. Only available if
-# trust-support is set
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-<head>
- <title>Privoxy@@my-hostname@: Proxy Status</title>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="stylesheet" type="text/css" href="@default-cgi@send-stylesheet">
- <link rel="shortcut icon" href="@default-cgi@favicon.ico" type="image/x-icon">
-</head>
-
-<body>
-
- <table summary="" cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="title">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
- <tr>
- <td class="box">
- <h2>The following files are in use:</h2>
- <table summary="Action, filter and trust files in use." class="transparent">
- <tr>
- <th colspan="2"><a href="@user-manual@@actions-help-prefix@ACTIONS-FILE">Actions Files:</a></th>
- </tr>
- @actions-filenames@
- <tr>
- <th colspan="2"><a href="@user-manual@filter-file.html">Filter Files:</a></th>
- </tr>
- @re-filter-filenames@
-<!-- @if-trust-support-start -->
- <tr>
- <th colspan="2"><a href="@user-manual@config.html#TRUSTFILE">Trust File:</a></th>
- </tr>
- <tr>
- <td>
- @trust-filename@
- </td>
- <td class="buttons">
- <!-- @if-have-trustfile-start -->
- <a href="show-status?file=trust">View</a>
- <!-- if-have-trustfile-end@ -->
- </td>
- </tr>
-<!-- if-trust-support-end@ -->
- </table>
-<!-- @if-cgi-editor-is-disabled-start -->
- <p>
- The CGI editor is currently disabled, thus no edit buttons are shown.<br>
- Please have a look at the
- <a href="@user-manual@config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions documentation</a>
- to learn how to enable it and what the risks are.
- </p>
-<!-- if-cgi-editor-is-disabled-end@ -->
- </td>
- </tr>
-
- <tr>
- <td class="box">
- <h2>Privoxy was <a href="@user-manual@startup.html#CMDOPTIONS">invoked</a> as follows:</h2>
- <p>@invocation@</p>
- </td>
- </tr>
-
- <tr>
- <td class="box">
- <h2>The following options were given in the <a href="@user-manual@config.html">config file</a>:</h2>
- <p>@options@</p>
- </td>
- </tr>
-
-<!-- @if-statistics-start -->
- <tr>
- <td class="box">
- <h2>Blocking Statistics:</h2>
- <p>
- <!-- @if-have-stats-start -->
- @requests-blocked@ out of @requests-received@ requests have been blocked,
- which equals a block rate of @percent-blocked@%.
- </p>
- <p>
- <strong>Note that the statistics currently don't work properly for
- reused connections where only the last request gets counted.
- You may want to look into Privoxy-Log-Parser's --statistics option,
- which doesn't have this limitation.</strong>
-<!-- if-have-stats-end@ -->
-<!-- @if-have-no-stats-start -->
- There haven't been any requests so far.
-<!-- if-have-no-stats-end@ -->
- </p>
- </td>
- </tr>
-<!-- if-statistics-end@ -->
-
- <tr>
- <td class="box">
- <h2>Conditional #defines:</h2>
- <table summary="The state of some ./configure options and what they do." border="1" style="margin-left: 10px">
- <tr>
- <th>#define</th> <th>Enabled?</th> <th>Effects when enabled</th>
- </tr>
-
- <tr>
- <td><code>FEATURE_ACCEPT_FILTER</code></td>
- <td>@if-FEATURE_ACCEPT_FILTER-then@ Yes @else-not-FEATURE_ACCEPT_FILTER@ No @endif-FEATURE_ACCEPT_FILTER@</td>
- <td>Support for FreeBSD's accf_http(9) which is also available on some other BSDs.</td>
- </tr>
- <tr>
- <td><code>FEATURE_ACL</code></td>
- <td>@if-FEATURE_ACL-then@ Yes @else-not-FEATURE_ACL@ No @endif-FEATURE_ACL@</td>
- <td>Allows the use of an ACL to control access to Privoxy by IP address.</td>
- </tr>
- <tr>
- <td><code>FEATURE_CGI_EDIT_ACTIONS</code></td>
- <td>@if-FEATURE_CGI_EDIT_ACTIONS-then@ Yes @else-not-FEATURE_CGI_EDIT_ACTIONS@ No @endif-FEATURE_CGI_EDIT_ACTIONS@</td>
- <td>Allows the use of the @if-FEATURE_CGI_EDIT_ACTIONS-then@<a
- href="@default-cgi@edit-actions">@else-not-FEATURE_CGI_EDIT_ACTIONS@
- @endif-FEATURE_CGI_EDIT_ACTIONS@web-based actions file
- editor@if-FEATURE_CGI_EDIT_ACTIONS-then@</a>@else-not-FEATURE_CGI_EDIT_ACTIONS@@endif-FEATURE_CGI_EDIT_ACTIONS@.</td>
- </tr>
- <tr>
- <td><code>FEATURE_COMPRESSION</code></td>
- <td>@if-FEATURE_COMPRESSION-then@ Yes @else-not-FEATURE_COMPRESSION@ No @endif-FEATURE_COMPRESSION@</td>
- <td>
- Allows to compress buffered content before sending it to the client, assuming the client supports it.
- </td>
- </tr>
- <tr>
- <td><code>FEATURE_CONNECTION_KEEP_ALIVE</code></td>
- <td>@if-FEATURE_CONNECTION_KEEP_ALIVE-then@ Yes @else-not-FEATURE_CONNECTION_KEEP_ALIVE@ No @endif-FEATURE_CONNECTION_KEEP_ALIVE@</td>
- <td>
- Allows to send multiple request through the same connections if the server supports it.
- Requires the keep-alive-timeout config directive to be set.
- </td>
- </tr>
- <tr>
- <td><code>FEATURE_CONNECTION_SHARING</code></td>
- <td>@if-FEATURE_CONNECTION_SHARING-then@ Yes @else-not-FEATURE_CONNECTION_SHARING@ No @endif-FEATURE_CONNECTION_SHARING@</td>
- <td>
- Allows to share outgoing connections between incoming connections.
- Requires the connection-sharing config directive to be set.
- </td>
- </tr>
- <tr>
- <td><code>FEATURE_FAST_REDIRECTS</code></td>
- <td>@if-FEATURE_FAST_REDIRECTS-then@ Yes @else-not-FEATURE_FAST_REDIRECTS@ No @endif-FEATURE_FAST_REDIRECTS@</td>
- <td>Allows the +fast-redirects action, to bypass redirect and logging scripts.</td>
- </tr>
- <tr>
- <td><code>FEATURE_FORCE_LOAD</code></td>
- <td>@if-FEATURE_FORCE_LOAD-then@ Yes @else-not-FEATURE_FORCE_LOAD@ No @endif-FEATURE_FORCE_LOAD@</td>
- <td>Allows bypassing all filtering for a single page using the prefix
- <q><code>@FORCE_PREFIX@</code></q>.</td>
- </tr>
- <tr>
- <td><code>FEATURE_GRACEFUL_TERMINATION</code></td>
- <td>@if-FEATURE_GRACEFUL_TERMINATION-then@ Yes @else-not-FEATURE_GRACEFUL_TERMINATION@ No @endif-FEATURE_GRACEFUL_TERMINATION@</td>
- <td>Allows to shutdown Privoxy through the web interface.</td>
- </tr>
- <tr>
- <td><code>FEATURE_IMAGE_BLOCKING</code></td>
- <td>@if-FEATURE_IMAGE_BLOCKING-then@ Yes @else-not-FEATURE_IMAGE_BLOCKING@ No @endif-FEATURE_IMAGE_BLOCKING@</td>
- <td>Allows the +handle-as-image action, to send <q>blocked</q> images instead of HTML.</td>
- </tr>
- <tr>
- <td><code>FEATURE_IPV6_SUPPORT</code></td>
- <td>@if-FEATURE_IPV6_SUPPORT-then@ Yes @else-not-FEATURE_IPV6_SUPPORT@ No @endif-FEATURE_IPV6_SUPPORT@</td>
- <td>
- Allows IPv6 addresses in incoming requests, when resolving domains to
- IP addresses and in the configuration files.
- </td>
- </tr>
- <tr>
- <td><code>FEATURE_IMAGE_DETECT_MSIE</code></td>
- <td>@if-FEATURE_IMAGE_DETECT_MSIE-then@ Yes @else-not-FEATURE_IMAGE_DETECT_MSIE@ No @endif-FEATURE_IMAGE_DETECT_MSIE@</td>
- <td>Enables automatic detection of image and HTML requests from
- Microsoft Internet Explorer users, overriding the setting of
- +image in the actions file.</td>
- </tr>
- <tr>
- <td><code>FEATURE_NO_GIFS</code></td>
- <td>@if-FEATURE_NO_GIFS-then@ Yes @else-not-FEATURE_NO_GIFS@ No @endif-FEATURE_NO_GIFS@</td>
- <td>Use PNG instead of GIF for the built-in images.</td>
- </tr>
- <tr>
- <td><code>FEATURE_PTHREAD</code></td>
- <td>@if-FEATURE_PTHREAD-then@ Yes @else-not-FEATURE_PTHREAD@ No @endif-FEATURE_PTHREAD@</td>
- <td>Use POSIX threads rather than native threads</td>
- </tr>
- <tr>
- <td><code>FEATURE_STATISTICS</code></td>
- <td>@if-FEATURE_STATISTICS-then@ Yes @else-not-FEATURE_STATISTICS@ No @endif-FEATURE_STATISTICS@</td>
- <td>Enables the statistics function.</td>
- </tr>
- <tr>
- <td><code>FEATURE_STRPTIME_SANITY_CHECKS</code></td>
- <td>@if-FEATURE_STRPTIME_SANITY_CHECKS-then@ Yes @else-not-FEATURE_STRPTIME_SANITY_CHECKS@ No @endif-FEATURE_STRPTIME_SANITY_CHECKS@</td>
- <td>Try to work around broken strptime() implementations.</td>
- </tr>
- <tr>
- <td><code>FEATURE_TOGGLE</code></td>
- <td>@if-FEATURE_TOGGLE-then@ Yes @else-not-FEATURE_TOGGLE@ No @endif-FEATURE_TOGGLE@</td>
- <td>Allow Privoxy to be <q>disabled</q> so it is just a normal non-blocking non-anonymizing proxy.</td>
- </tr>
- <tr>
- <td><code>FEATURE_TRUST</code></td>
- <td>@if-FEATURE_TRUST-then@ Yes @else-not-FEATURE_TRUST@ No @endif-FEATURE_TRUST@</td>
- <td>Allows the use of trust files.</td>
- </tr>
- <tr>
- <td><code>FEATURE_ZLIB</code></td>
- <td>@if-FEATURE_ZLIB-then@ Yes @else-not-FEATURE_ZLIB@ No @endif-FEATURE_ZLIB@</td>
- <td>Allows to decompress gzip and zlib compressed documents for filtering.
- Requires external zlib library and hasn't been tested on all platforms.</td>
- </tr>
- <tr>
- <td><code>STATIC_PCRE</code></td>
- <td>@if-STATIC_PCRE-then@ Yes @else-not-STATIC_PCRE@ No @endif-STATIC_PCRE@</td>
- <td>Use the supplied statically-linked PCRE library. This is set automatically
- by <code>./configure</code> if you do not have the libpcre installed.
- Dynamically linking to an external libpcre is recommended as the internal
- one is outdated and lacks various features and bug-fixes you may be interested in.</td>
- </tr>
- <tr>
- <td><code>STATIC_PCRS</code></td>
- <td>@if-STATIC_PCRS-then@ Yes @else-not-STATIC_PCRS@ No @endif-STATIC_PCRS@</td>
- <td>Use the supplied statically-linked PCRS library. This is set automatically
- by <code>./configure</code> if you do not have the libpcrs installed.</td>
- </tr>
- </table>
- </td>
- </tr>
-
- <tr>
- <td class="box">
- <h2>More Privoxy:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-
-</body>
-</html>
+++ /dev/null
-##########################################################
-#
-# Show-Status-CGI Output template for Privoxy.
-# (Variant for the show-file mode)
-#
-# USING HTML TEMPLATES:
-# ---------------------
-#
-# Template files are written win plain HTML, with a few
-# additions:
-#
-# - Lines that start with a '#' character like this one
-# are ignored
-#
-# - Each item in the below list of exported symbols will
-# be replaced by dynamically generated text, if they
-# are enclosed in '@'-characters. E.g. The string @version@
-# will be replaced by the version number of Privoxy.
-#
-# - One special application of this is to make whole blocks
-# of the HTML template disappear if the condition <name>
-# is not given. Simply enclose the block between the two
-# strings @if-<name>start and if-<name>-end@. The strings
-# should be placed in HTML comments (<!-- -->), so the
-# html structure won't be messed when the magic happens.
-#
-# USABLE SYMBOLS IN THIS TEMPLATE:
-# --------------------------------
-#
-# my-ip-addr:
-# The IP-address that the client used to reach this proxy
-# my-hostname:
-# The hostname associated with my-ip-addr
-# admin-address:
-# The email address of the pxoxy's administrator, as configured
-# in the config file
-# default-cgi:
-# The URL for the "main menu" builtin CGI of this proxy
-# menu:
-# List of <li> elements linking to the other available CGIs
-# version:
-# The version number of the proxy software
-# code-status:
-# The development status of the proxy software: "alpha", "beta",
-# or "stable".
-# homepage:
-# The URL of the SourceForge ijbswa project, who maintains this
-# software.
-#
-# file-description:
-# A descriptive name for the file being shown
-# contents:
-# The contents of the file being shown
-# filepath
-# The complete filename of the file being shown
-#
-#
-# CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
-# ------------------------------------------------------------------
-#
-# unstable:
-# This is an alpha or beta release of the proxy software
-# have-adminaddr-info:
-# An e-mail address for the local Privoxy adminstrator has
-# been specified and is available through the "admin-address"
-# symbol
-# have-proxy-info:
-# A URL for online documentation about this proxy has been
-# specified and is available through the "proxy-info-url"
-# symbol
-# have-help-info:
-# If either have-proxy-info is true or have-adminaddr-info is
-# true, have-help-info is true. Used to conditionally include
-# a grey box for any and all help info.
-#
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-<head>
- <title>Privoxy@@my-hostname@: Contents of @file-description@</title>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="stylesheet" type="text/css" href="@default-cgi@send-stylesheet">
- <link rel="shortcut icon" href="@default-cgi@favicon.ico" type="image/x-icon">
-</head>
-
-<body>
-
- <table cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="title">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
- <tr>
- <td class="box">
- <h2>Contents of @file-description@ @filepath@</h2>
- <pre>@contents@</pre>
- </td>
- </tr>
-
- <tr>
- <td class="box">
- <h2>More Privoxy:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-
-</body>
-</html>
+++ /dev/null
-########################################################################
-#
-# File : $Source: /cvsroot/ijbswa/current/templates/show-url-info,v $
-#
-# Purpose : Template for Privoxy's show-url-info CGI page.
-#
-# Copyright : Written by and Copyright (C) 2001-2007 the SourceForge
-# Privoxy team. http://www.privoxy.org/
-#
-# This program is free software; you can redistribute it
-# and/or modify it under the terms of the GNU General
-# Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will
-# be useful, but WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. See the GNU General Public
-# License for more details.
-#
-# The GNU General Public License should be included with
-# this file. If not, you can view it at
-# http://www.gnu.org/copyleft/gpl.html
-# or write to the Free Software Foundation, Inc., 59
-# Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-#########################################################################
-# USING HTML TEMPLATES:
-# ---------------------
-#
-# Template files are written win plain HTML, with a few
-# additions:
-#
-# - Lines that start with a '#' character like this one
-# are ignored
-#
-# - Each item in the below list of exported symbols will
-# be replaced by dynamically generated text, if they
-# are enclosed in '@'-characters. E.g. The string @version@
-# will be replaced by the version number of Privoxy.
-#
-# - One special application of this is to make whole blocks
-# of the HTML template disappear if the condition <name>
-# is not given. Simply enclose the block between the two
-# strings @if-<name>start and if-<name>-end@. The strings
-# should be placed in HTML comments (<!-- -->), so the
-# html structure won't be messed when the magic happens.
-#
-# USABLE SYMBOLS IN THIS TEMPLATE:
-# --------------------------------
-#
-# my-ip-addr:
-# The IP-address that the client used to reach Privoxy
-# my-hostname:
-# The hostname associated with my-ip-addr
-# admin-address:
-# The email address of the Privoxy administrator, as configured
-# in the config file
-# default-cgi:
-# The URL for Privoxy's "main menu" builtin CGI page
-# menu:
-# List of <li> elements linking to the other available CGIs
-# version:
-# Privoxy's version number
-# code-status:
-# Privoxy's development status: "alpha", "beta", or "stable".
-# homepage:
-# The Privoxy web site.
-#
-# CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
-# ------------------------------------------------------------------
-#
-# unstable:
-# this is an alpha or beta release of the proxy software
-# have-adminaddr-info:
-# An e-mail address for the local Privoxy adminstrator has
-# been specified and is available through the "admin-address"
-# symbol
-# have-proxy-info:
-# A URL for online documentation about this proxy has been
-# specified and is available through the "proxy-info-url"
-# symbol
-# have-help-info:
-# If either have-proxy-info is true or have-adminaddr-info is
-# true, have-help-info is true. Used to conditionally include
-# a grey box for any and all help info.
-# url-given:
-# The CGI was called with a url parameter. In that case, the
-# following symbols are available:
-# url:
-# The given URL
-# default:
-# The system default for actions
-# matches:
-# The list of all matches in the actions file that this URL
-# produced, along with the actions that were triggered by
-# these matches
-# final:
-# The actions that are associated with the URL at the end of
-# the matching process
-# no-forwarder: Requests to url will be made directly.
-# http-forwarder:
-# Requests to url will be made through a HTTP proxy
-# forward-host:
-# The IP address or its hostname
-# forward-port.
-# The proxy port
-# socks-forwarder:
-# Requests to url will be made through a socks proxy
-# socks-type:
-# The socks type: socks4 or socks4a
-# gateway-host:
-# The IP address or its hostname
-# gateway-port:
-# The proxy port.
-#
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-<head>
- <title>Privoxy@@my-hostname@ URL Info</title>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="stylesheet" type="text/css" href="@default-cgi@send-stylesheet">
- <link rel="shortcut icon" href="@default-cgi@favicon.ico" type="image/x-icon">
- <link rel="search" type="application/opensearchdescription+xml" title="Privoxy URL Info" href="/url-info-osd.xml">
-</head>
-
-<body>
-
- <table summary="" cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="title">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
-<!-- @if-url-given-start -->
- <tr>
- <td class="box">
-<!-- @if-valid-url-start -->
- <h2>Forwarding settings:</h2>
- <p>
- Requests for <a href="@url@">@url@</a> will be <!--
-
-# "Interesting" formatting to prevent white space at the end of the sentence.
-
- @if-no-forwarder-start -->
-
- made <b>directly</b>, no forwarding settings apply<!--
-
- if-no-forwarder-end@--><!--
- @if-http-forwarder-start --><!-- @if-socks-forwarder-start -->
-
- first <!--
-
- if-socks-forwarder-end@ --><!-- if-http-forwarder-end@ --><!--
- @if-socks-forwarder-start -->
-
- forwarded through <b>@socks-type@-proxy @gateway-host@:@gateway-port@</b><!--
-
- if-socks-forwarder-end@ --><!--
- @if-http-forwarder-start --><!-- @if-socks-forwarder-start -->
-
- and then <!--
-
- if-socks-forwarder-end@ --><!-- if-http-forwarder-end@ --><!--
- @if-http-forwarder-start -->
-
- forwarded through <b>HTTP-proxy @forward-host@:@forward-port@</b><!--
-
- if-http-forwarder-end@ -->.
- </td>
- </tr>
- <tr>
- <td class="box">
-<!-- @if-https-start -->
- <h2>NOTE:</h2>
- <p>This is a HTTPS URL, so the part after the "/" is ignored
- as Privoxy doesn't see the path for real HTTPS requests either.</p>
-<!-- if-https-end@ -->
-<!-- if-valid-url-end@ -->
- <h2>Matches for <a href="@url@">@url@</a>:</h2>
- @matches@
-<!-- @if-valid-url-start -->
-<!-- @if-cgi-editor-is-disabled-start -->
- <p>
- The CGI editor is currently disabled, thus no edit buttons are shown.<br>
- Please have a look at the
- <a href="@user-manual@config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions documentation</a>
- to learn how to enable it and what the risks are.
- </p>
-<!-- if-cgi-editor-is-disabled-end@ -->
-<!-- @if-valid-url-end -->
- </td>
- </tr>
-<!-- @if-valid-url-start -->
-<!-- @if-filters-might-be-ineffective-start -->
- <tr>
- <td class="warning">
- <h2>Warning:</h2>
- <p>
- This Privoxy version has been built without zlib support,
- <strong>content filters will not work if the server sends compressed content.</strong>
- Consider enabling the <a title="prevent-compression documentation"
- href="@user-manual@actions-file.html#PREVENT-COMPRESSION">prevent-compression</a>
- action for this URL or rebuild Privoxy with zlib support.
- </p>
- </td>
- </tr>
-<!-- if-filters-might-be-ineffective-end@ -->
- <tr>
- <td class="box">
- <h2>Final results:</h2>
- <b>@final@</b>
- </td>
- </tr>
-<!-- if-valid-url-end@ -->
-<!-- if-url-given-end@ -->
-
-<!-- @if-privoxy-is-toggled-off-start -->
-
- <tr>
- <td class="warning">
- <h2>Warning:</h2>
- <p>
- <strong>Privoxy is currently toggled off. Matching actions will not apply
- unless you <a href="@default-cgi@toggle?set=enable">toggle Privoxy on</a> first.</strong>
- </p>
- </td>
- </tr>
-<!-- if-privoxy-is-toggled-off-end@ -->
-
- <tr>
- <td class="box">
- <h2>Look up the actions for a
-<!-- @if-url-given-start -->new<!-- if-url-given-end@ -->
- URL:</h2>
- <form method="GET" action="@default-cgi@show-url-info">
- <p>
- <input type="text" name="url" size="80" value="@url@" class="url">
- <input type="submit" value="Go">
- </p>
- </form>
- </td>
- </tr>
-
- <tr>
- <td class="box">
- <h2>More Privoxy:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-
-</body>
-</html>
+++ /dev/null
-##########################################################
-#
-# Show-Status-CGI Output template for Privoxy.
-#
-# USING HTML TEMPLATES:
-# ---------------------
-#
-# Template files are written win plain HTML, with a few
-# additions:
-#
-# - Lines that start with a '#' character like this one
-# are ignored
-#
-# - Each item in the below list of exported symbols will
-# be replaced by dynamically generated text, if they
-# are enclosed in '@'-characters. E.g. The string @version@
-# will be replaced by the version number of Privoxy.
-#
-# - One special application of this is to make whole blocks
-# of the HTML template disappear if the condition <name>
-# is not given. Simply enclose the block between the two
-# strings @if-<name>start and if-<name>-end@. The strings
-# should be placed in HTML comments (<!-- -->), so the
-# html structure won't be messed when the magic happens.
-#
-# USABLE SYMBOLS IN THIS TEMPLATE:
-# --------------------------------
-#
-# my-ip-addr:
-# The IP-address that the client used to reach this proxy
-# my-hostname:
-# The hostname associated with my-ip-addr
-# admin-address:
-# The email address of the pxoxy's administrator, as configured
-# in the config file
-# default-cgi:
-# The URL for the "main menu" builtin CGI of this proxy
-# menu:
-# List of <li> elements linking to the other available CGIs
-# version:
-# The version number of the proxy software
-# code-status:
-# The development status of the proxy software: "alpha", "beta",
-# or "stable".
-# homepage:
-# The URL of the SourceForge ijbswa project, who maintains this
-# software.
-#
-# redirect-url:
-# The URL to a script that will redirect to the Privoxy
-# documentation for a given item
-# invocation:
-# The command line with whitch Privoxy was invoked
-# options:
-# The options read from the configfile, linked to their
-# explanations, plus warnings if parsing acl or forward
-# statements produced errors.
-# sourceversions:
-# A HTML-formatted list of the individual source file cvs versions
-# defines:
-# A HTML-formatted list of all conditional #defines used when
-# Privoxy was compiled
-#
-#
-# CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
-# ------------------------------------------------------------------
-#
-# unstable:
-# This is an alpha or beta release of the proxy software
-# have-adminaddr-info:
-# An e-mail address for the local Privoxy adminstrator has
-# been specified and is available through the "admin-address"
-# symbol
-# have-proxy-info:
-# A URL for online documentation about this proxy has been
-# specified and is available through the "proxy-info-url"
-# symbol
-# have-help-info:
-# If either have-proxy-info is true or have-adminaddr-info is
-# true, have-help-info is true. Used to conditionally include
-# a grey box for any and all help info.
-# sourceversions
-# The versions.
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-<head>
- <title>Privoxy@@my-hostname@: Detailed proxy version information</title>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="stylesheet" type="text/css" href="@default-cgi@send-stylesheet">
- <link rel="shortcut icon" href="@default-cgi@favicon.ico" type="image/x-icon">
-</head>
-
-<body>
-
- <table cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="title">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
- <tr>
- <td class="box">
- <h2>Source code versions:</h2>
- <p><i>(Note: This information is only relevant if you checked out Privoxy from CVS
- and compiled it yourself. If you downloaded a binary, .exe, RPM, or a .tgz file,
- then when you ask for support just mention the version number <b>@version@</b>
- and the type of download you got.)</i>
- </p>
- <pre>@sourceversions@</pre>
- </td>
- </tr>
-
- <tr>
- <td class="box">
- <h2>More Privoxy:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-
-</body>
-</html>
+++ /dev/null
-##########################################################
-#
-# Toggle Output template for Privoxy.
-#
-#
-# USING HTML TEMPLATES:
-# ---------------------
-#
-# Template files are written win plain HTML, with a few
-# additions:
-#
-# - Lines that start with a '#' character like this one
-# are ignored
-#
-# - Each item in the below list of exported symbols will
-# be replaced by dynamically generated text, if they
-# are enclosed in '@'-characters. E.g. The string @version@
-# will be replaced by the version number of Privoxy.
-#
-# - One special application of this is to make whole blocks
-# of the HTML template disappear if the condition <name>
-# is not given. Simply enclose the block between the two
-# strings @if-<name>start and if-<name>-end@. The strings
-# should be placed in HTML comments (<!-- -->), so the
-# html structure won't be messed when the magic happens.
-#
-# USABLE SYMBOLS IN THIS TEMPLATE:
-# --------------------------------
-#
-# my-ip-addr:
-# The IP-address that the client used to reach this proxy
-# my-hostname:
-# The hostname associated with my-ip-addr
-# admin-address:
-# The email address of the pxoxy's administrator, as configured
-# in the config file
-# default-cgi:
-# The URL for the "main menu" builtin CGI of this proxy
-# menu:
-# List of <li> elements linking to the other available CGIs
-# version:
-# The version number of the proxy software
-# code-status:
-# The development status of the proxy software: "alpha", "beta",
-# or "stable".
-# homepage:
-# The URL of the SourceForge ijbswa project, who maintains this
-# software.
-#
-# CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
-# ------------------------------------------------------------------
-#
-# unstable:
-# this is an alpha or beta release of the proxy software
-# have-adminaddr-info:
-# An e-mail address for the local Privoxy adminstrator has
-# been specified and is available through the "admin-address"
-# symbol
-# have-proxy-info:
-# A URL for online documentation about this proxy has been
-# specified and is available through the "proxy-info-url"
-# symbol
-# have-help-info:
-# If either have-proxy-info is true or have-adminaddr-info is
-# true, have-help-info is true. Used to conditionally include
-# a grey box for any and all help info.
-# @if-enabled-display-then@ on @else-not-enabled-display@ off @endif-enabled-display@
-#
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
-<head>
- <title>@if-enabled-display-then@Enabled@else-not-enabled-display@Disabled@endif-enabled-display@ - Privoxy@@my-hostname@</title>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="stylesheet" type="text/css" href="@default-cgi@send-stylesheet">
- <link rel="shortcut icon" href="@default-cgi@favicon.ico" type="image/x-icon">
-</head>
-
-<body>
-
- <table cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="title">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
- <tr>
- <td class="box">
- <h2>Privoxy is @if-enabled-display-then@Enabled@else-not-enabled-display@Disabled@endif-enabled-display@</h2>
- <p>When enabled, Privoxy performs its magic - blocking
- adverts, filtering cookies, regex-filtering, etc.</p>
- <p>When disabled, Privoxy behaves as a normal HTTP proxy,
- and will not affect your web browsing.</p>
- <p><a href="@default-cgi@toggle?set=@if-enabled-display-then@disable@else-not-enabled-display@enable@endif-enabled-display@">Click
- here</a> to @if-enabled-display-then@disable@else-not-enabled-display@enable@endif-enabled-display@ Privoxy.</p>
- </td>
- </tr>
-
- <tr>
- <td class="box">
- <h2>Bookmarklets</h2>
- <p>Here are some bookmarklets to allow you to easily access a
- "mini" version of this page. They are known to work with MS
- Internet Explorer, Netscape and Mozilla, but should work equally
- well in other browsers which support JavaScript. They are designed
- to run directly from your bookmarks - <b>not</b> by clicking the
- links below (although that will work for testing).
- </p>
- <p>To save them, right-click the link and choose
- "Add to Favorites" (IE) or "Add Bookmark" (Netscape). You
- will get a warning that the bookmark "may not be safe" - just
- click OK. Then you can run the Bookmarklet directly from your
- favourites/bookmarks. For even faster access, you can put
- them on the "Links" bar (IE) or the "Personal Toolbar"
- (Netscape), and run them with a single click.
- </p>
-
- <ul>
- <li><a href="javascript:void(window.open('@default-cgi@toggle?mini=y&set=enabled','ijbstatus','width=250,height=100,resizable=yes,scrollbars=no,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no').focus());">Privoxy - Enable</a></li>
- <li><a href="javascript:void(window.open('@default-cgi@toggle?mini=y&set=disabled','ijbstatus','width=250,height=100,resizable=yes,scrollbars=no,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no').focus());">Privoxy - Disable</a></li>
- <li><a href="javascript:void(window.open('@default-cgi@toggle?mini=y&set=toggle','ijbstatus','width=250,height=100,resizable=yes,scrollbars=no,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no').focus());">Privoxy - Toggle Privoxy</a>
- (Toggles between enabled and disabled)</li>
- <li><a href="javascript:void(window.open('@default-cgi@toggle?mini=y','ijbstatus','width=250,height=100,resizable=yes,scrollbars=no,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no').focus());">Privoxy - View Status</a></li>
- </ul>
-
- <p>
- <b>Credit:</b> The site which gave us the general idea for these
- bookmarklets is <a href="http://www.bookmarklets.com/">www.bookmarklets.com</a>.
- They have <a href="http://www.bookmarklets.com/about/">more information</a> about them.
- </p>
- </td>
- </tr>
-
- <tr>
- <td class="box">
- <h2>More Privoxy:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-
-</body>
-</html>
-
+++ /dev/null
-##########################################################
-#
-# Toggle Output template for Privoxy.
-#
-#
-# USING HTML TEMPLATES:
-# ---------------------
-#
-# Template files are written win plain HTML, with a few
-# additions:
-#
-# - Lines that start with a '#' character like this one
-# are ignored
-#
-# - Each item in the below list of exported symbols will
-# be replaced by dynamically generated text, if they
-# are enclosed in '@'-characters. E.g. The string @version@
-# will be replaced by the version number of Privoxy.
-#
-# - One special application of this is to make whole blocks
-# of the HTML template disappear if the condition <name>
-# is not given. Simply enclose the block between the two
-# strings @if-<name>start and if-<name>-end@. The strings
-# should be placed in HTML comments (<!-- -->), so the
-# html structure won't be messed when the magic happens.
-#
-# USABLE SYMBOLS IN THIS TEMPLATE:
-# --------------------------------
-#
-# my-ip-addr:
-# The IP-address that the client used to reach this proxy
-# my-hostname:
-# The hostname associated with my-ip-addr
-# admin-address:
-# The email address of the pxoxy's administrator, as configured
-# in the config file
-# default-cgi:
-# The URL for the "main menu" builtin CGI of this proxy
-# menu:
-# List of <li> elements linking to the other available CGIs
-# version:
-# The version number of the proxy software
-# code-status:
-# The development status of the proxy software: "alpha", "beta",
-# or "stable".
-# homepage:
-# The URL of the SourceForge ijbswa project, who maintains this
-# software.
-#
-# CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
-# ------------------------------------------------------------------
-#
-# unstable:
-# this is an alpha or beta release of the proxy software
-# have-adminaddr-info:
-# An e-mail address for the local Privoxy adminstrator has
-# been specified and is available through the "admin-address"
-# symbol
-# have-proxy-info:
-# A URL for online documentation about this proxy has been
-# specified and is available through the "proxy-info-url"
-# symbol
-# have-help-info:
-# If either have-proxy-info is true or have-adminaddr-info is
-# true, have-help-info is true. Used to conditionally include
-# a grey box for any and all help info.
-# @if-enabled-display-then@ on @else-not-enabled-display@ off @endif-enabled-display@
-#
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-
-<head>
- <title>@if-enabled-display-then@Enabled@else-not-enabled-display@Disabled@endif-enabled-display@ - Privoxy@@my-hostname@</title>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="stylesheet" type="text/css" href="@default-cgi@send-stylesheet">
- <link rel="shortcut icon" href="@default-cgi@favicon.ico" type="image/x-icon">
-</head>
-
-<body>
- <p class="whiteframed">
- <a href="@default-cgi@" target="_blank">Privoxy</a> is
- <b>@if-enabled-display-then@enabled@else-not-enabled-display@disabled@endif-enabled-display@</b>.
- <br><a href="@default-cgi@toggle?mini=y&set=@if-enabled-display-then@disable@else-not-enabled-display@enable@endif-enabled-display@"
- >@if-enabled-display-then@[Disable]@else-not-enabled-display@[Enable]@endif-enabled-display@</a> |
- <a href="javascript:window.close();">[Close]</a>
- </p>
-</body>
-</html>
+++ /dev/null
-##########################################################
-#
-# "Untrusted" Error Output template for Privoxy.
-#
-#
-# USING HTML TEMPLATES:
-# ---------------------
-#
-# Template files are written win plain HTML, with a few
-# additions:
-#
-# - Lines that start with a '#' character like this one
-# are ignored
-#
-# - Each item in the below list of exported symbols will
-# be replaced by dynamically generated text, if they
-# are enclosed in '@'-characters. E.g. The string @version@
-# will be replaced by the version number of Privoxy.
-#
-# - One special application of this is to make whole blocks
-# of the HTML template disappear if the condition <name>
-# is not given. Simply enclose the block between the two
-# strings @if-<name>start and if-<name>-end@. The strings
-# should be placed in HTML comments (<!-- -->), so the
-# html structure won't be messed when the magic happens.
-#
-# USABLE SYMBOLS IN THIS TEMPLATE:
-# --------------------------------
-#
-# my-ip-addr:
-# The IP-address that the client used to reach this proxy
-# my-hostname:
-# The hostname associated with my-ip-addr
-# admin-address:
-# The email address of the pxoxy's administrator, as configured
-# in the config file
-# default-cgi:
-# The URL for the "main menu" builtin CGI of this proxy
-# menu:
-# List of <li> elements linking to the other available CGIs
-# version:
-# The version number of the proxy software
-# code-status:
-# The development status of the proxy software: "alpha", "beta",
-# or "stable".
-# homepage:
-# The URL of the SourceForge ijbswa project, who maintains this
-# software.
-#
-# hostport:
-# The host and port part of the request that lead to this problem
-# path:
-# The path part of the request that lead to this problem
-# referrer:
-# The referrer of the request that lead to this problem
-# trusted-referrers:
-# An HTML-formatted list of referrers that are marked as trusted in
-# the trustfile
-#
-#
-# CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
-# ------------------------------------------------------------------
-#
-# unstable:
-# This is an alpha or beta release of the proxy software
-# have-adminaddr-info:
-# An e-mail address for the local Privoxy adminstrator has
-# been specified and is available through the "admin-address"
-# symbol
-# have-proxy-info:
-# A URL for online documentation about this proxy has been
-# specified and is available through the "proxy-info-url"
-# symbol
-# have-help-info:
-# If either have-proxy-info is true or have-adminaddr-info is
-# true, have-help-info is true. Used to conditionally include
-# a grey box for any and all help info.
-# force-support:
-# Privoxy has been compiled with support for forced loading
-# of blocked content. In that case, the symbol "force-prefix" is
-# avaiable, which translates to the FORCE_PREFIX
-# have-trust-info:
-# There were URLs with info on the trust policy defined in the config
-# file. In this case the list of URLs is available through the
-# "trust-info" symbol.
-#
-#
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html>
-
-<head>
- <title>Untrusted request (Privoxy@@my-hostname@)</title>
- <meta http-equiv="Content-Style-Type" content="text/css">
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta name="robots" content="noindex,nofollow">
- <link rel="shortcut icon" href="@default-cgi@error-favicon.ico">
- <style type="text/css">
-#include cgi-style.css
- </style>
-</head>
-
-<body>
-
- <table summary="" cellpadding="20" cellspacing="10" border="0" width="100%">
- <tr>
- <td class="status">
- UNTRUSTED
- </td>
- <td class="title" style="width: 100%">
-
-#include mod-title
-
- </td>
- </tr>
-
-<!-- @if-unstable-start -->
-# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
- <tr>
- <td class="warning" colspan="2">
-
-#include mod-unstable-warning
-
- </td>
- </tr>
-<!-- if-unstable-end@ -->
-
- <tr>
- <td class="warning" colspan="2">
- <h2>Request for untrusted URL</h2>
- <p>Your request for <b>@protocol@@hostport@@path@</b> was blocked,
- because neither the request URL itself, nor its referrer
- (<b>@referrer@</b>) were trusted.
- </p>
-<!-- @if-force-support-start -->
- <p>(You can <a href="@protocol@@hostport@@force-prefix@@path@">go there anyway</a>.)</p>
-<!-- if-force-support-end@ -->
- </td>
- </tr>
-
- <tr>
- <td class="box" colspan="2">
- <h2>The following referrers are trusted:</h2>
- <ul>
- @trusted-referrers@
- </ul>
- </td>
- </tr>
-
-<!-- @if-have-trust-info-start -->
- <tr>
- <td class="box" colspan="2">
- <h2>More information on the trust policy:</h2>
- <p>You can learn more about what this means and what you may be able to do about it by
- reading the following documents:
- </p>
- <ol>
- @trust-info@
- </ol>
- </td>
- </tr>
-<!-- if-have-trust-info-end@ -->
-
- <tr>
- <td class="box" colspan="2">
- <h2>More Privoxy:</h2>
- <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
- </td>
- </tr>
-
- <tr>
- <td class="info" colspan="2">
-
-#include mod-support-and-service
-
- </td>
- </tr>
-
-<!-- @if-have-help-info-start -->
- <tr>
- <td class="info" colspan="2">
-
-#include mod-local-help
-
- </td>
- </tr>
-<!-- if-have-help-info-end@ -->
-
- </table>
-
-</body>
-</html>
+++ /dev/null
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
- <ShortName>Privoxy URL Info</ShortName>
- <Description>
- Enter a URL to see which Privoxy actions apply.
- Only works while the browser is configured to use Privoxy.
- </Description>
- <InputEncoding>ISO-8859-1</InputEncoding>
- <OutputEncoding>ISO-8859-1</OutputEncoding>
- <Developer>Privoxy Team</Developer>
- <Contact>ijbswa-developers@lists.sourceforge.net</Contact>
- <Image width="16" height="16" type="image/x-icon">@default-cgi@favicon.ico</Image>
- <Url type="text/html" method="GET" template="@default-cgi@show-url-info?url={searchTerms}"/>
-</OpenSearchDescription>
+++ /dev/null
-######################################################################
-#
-# File : $Source: /cvsroot/ijbswa/current/trust,v $
-#
-# $Id: trust,v 1.6 2007/05/14 17:19:42 fabiankeil Exp $
-#
-# Purpose : Trustfiles are an experimental feature and can be used
-# to build "whitelists" (versus the usual "blacklists"
-# techniques).
-#
-# Copyright : Written by and Copyright
-# Privoxy team. http://www.privoxy.org/
-#
-# Based on the Internet Junkbuster originally written
-# by and Copyright (C) 1997 Anonymous Coders and
-# Junkbusters Corporation. http://www.junkbusters.com
-#
-# We value your feedback. However, to provide you with the best support,
-# please note:
-#
-# * Use the support forum to get help:
-# http://sourceforge.net/tracker/?group_id=11118&atid=211118
-# * Submit bugs only thru our bug forum:
-# http://sourceforge.net/tracker/?group_id=11118&atid=111118
-# Make sure that the bug has not already been submitted. Please try
-# to verify that it is a Privoxy bug, and not a browser or site
-# bug first. If you are using your own custom configuration, please
-# try the stock configs to see if the problem is a configuration
-# related bug. And if not using the latest development snapshot,
-# please try the latest one. Or even better, CVS sources.
-# * Submit feature requests only thru our feature request tracker:
-# http://sourceforge.net/tracker/?atid=361118&group_id=11118&func=browse
-#
-# For any other issues, feel free to use the mailing lists:
-# http://sourceforge.net/mail/?group_id=11118
-#
-# Anyone interested in actively participating in development and related
-# discussions can join the appropriate mailing list here:
-# http://sourceforge.net/mail/?group_id=11118. Archives are available
-# here too.
-#
-######################################################################
-#
-# Sample Trustfile for Privoxy
-
-# For this file to have any effect, the line in the main config file beginning
-# with "trustfile" must be uncommented, with the name of this file following the
-# word "trustfile".
-
-# Trustfiles are an experimental feature used for building "whitelists"
-# of "trusted" sites (versus the usual "blacklists" technique). For more
-# detail, see http://www.privoxy.org/user-manual/config.html#TRUSTFILE.
-
-# List trusted domains here. The default is to block any URL that is NOT
-# referenced. Access to trusted domains includes all paths within that
-# domain.
-
-# Preceding a domain with a '+' character will designate that domain
-# as a "trusted referrer", meaning any requests whose HTTP "Referer" headers
-# contain an URL from that domain will be allowed, and the previously untrusted
-# host will be dynamically added to this file. Thus, this builds a "white-list"
-# of hosts the user is allowed to visit.
-
-# Note this means that the file will grow with use!
-
-# Also note that you can only trust referrers if you control the user's
-# system and make sure that there are no programs available that allow
-# to set arbitrary headers.
-
-# Preceding the domain with '~' character allows access to that domain only
-# (including all paths within that domain), but does not allow access to links
-# to other, outside domains. Sites that are added dynamically by trusted
-# referrers will include the '~' character, and thus do not become trusted
-# referrers themselves.
-
-# Example: to allow example.com and to white-list domains that appear to
-# be reached through links from example.com, uncomment this line:
-
-# +example.com
-
-# The next two lines make sure that the user can access Privoxy's
-# CGI pages, without automatically trusting their links.
-
-~config.privoxy.org
-~p.p
+++ /dev/null
-######################################################################
-#
-# File : $Source: /cvsroot/ijbswa/current/user.action,v $
-#
-# $Id: user.action,v 1.13 2011/11/06 11:36:01 fabiankeil Exp $
-#
-# Purpose : User-maintained actions file, see
-# http://www.privoxy.org/user-manual/actions-file.html
-#
-######################################################################
-
-# This is the place to add your personal exceptions and additions to
-# the general policies as defined in default.action. (Here they will be
-# safe from updates to default.action.) Later defined actions always
-# take precedence, so anything defined here should have the last word.
-
-# See http://www.privoxy.org/user-manual/actions-file.html, or the
-# comments in default.action, for an explanation of what an "action" is
-# and what each action does.
-
-# The examples included here either use bogus sites, or have the actual
-# rules commented out (with the '#' character). Useful aliases are
-# included in the top section as a convenience.
-
-#############################################################################
-# Aliases
-#############################################################################
-{{alias}}
-#############################################################################
-#
-# You can define a short form for a list of permissions - e.g., instead
-# of "-crunch-incoming-cookies -crunch-outgoing-cookies -filter -fast-redirects",
-# you can just write "shop". This is called an alias.
-#
-# Currently, an alias can contain any character except space, tab, '=', '{'
-# or '}'.
-# But please use only 'a'-'z', '0'-'9', '+', and '-'.
-#
-# Alias names are not case sensitive.
-#
-# Aliases beginning with '+' or '-' may be used for system action names
-# in future releases - so try to avoid alias names like this. (e.g.
-# "+crunch-all-cookies" below is not a good name)
-#
-# Aliases must be defined before they are used.
-#
-# These aliases just save typing later:
-#
-+crunch-all-cookies = +crunch-incoming-cookies +crunch-outgoing-cookies
--crunch-all-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies
- allow-all-cookies = -crunch-all-cookies -session-cookies-only -filter{content-cookies}
- allow-popups = -filter{all-popups} -filter{unsolicited-popups}
-+block-as-image = +block{Blocked image request.} +handle-as-image
--block-as-image = -block
-
-# These aliases define combinations of actions
-# that are useful for certain types of sites:
-#
-fragile = -block -crunch-all-cookies -filter -fast-redirects -hide-referer -prevent-compression
-shop = -crunch-all-cookies allow-popups
-
-# Your favourite blend of filters:
-#
-myfilters = +filter{html-annoyances} +filter{js-annoyances} +filter{all-popups}\
- +filter{webbugs} +filter{banners-by-size}
-
-# Allow ads for selected useful free sites:
-#
-allow-ads = -block -filter{banners-by-size} -filter{banners-by-link}
-#... etc. Customize to your heart's content.
-
-## end aliases ########################################################
-#######################################################################
-
-# Begin examples: #####################################################
-
-# Say you have accounts on some sites that you visit regularly, and you
-# don't want to have to log in manually each time. So you'd like to allow
-# persistent cookies for these sites. The allow-all-cookies alias defined
-# above does exactly that, i.e. it disables crunching of cookies in any
-# direction, and the processing of cookies to make them only temporary.
-#
-{ allow-all-cookies }
-#.sourceforge.net
-#sunsolve.sun.com
-#slashdot.org
-#.yahoo.com
-#.msdn.microsoft.com
-#.redhat.com
-
-# Say the site where you do your homebanking needs to open popup
-# windows, but you have chosen to kill popups uncoditionally by default.
-# This will allow it for your-example-bank.com:
-#
-{ -filter{all-popups} }
-.banking.example.com
-
-# Some hosts and some file types you may not want to filter for
-# various reasons:
-#
-{ -filter }
-
-# Technical documentation is likely to contain strings that might
-# erroneously get altered by the JavaScript-oriented filters:
-#
-#.tldp.org
-#/(.*/)?selfhtml/
-
-# And this stupid host sends streaming video with a wrong MIME type,
-# so that Privoxy thinks it is getting HTML and starts filtering:
-#
-stupid-server.example.com/
-
-
-# Example of a simple "block" action. Say you've seen an ad on your
-# favourite page on example.com that you want to get rid of. You have
-# right-clicked the image, selected "copy image location" and pasted
-# the URL below while removing the leading http://, into a { +block{reason} }
-# section. Note that { +handle-as-image } need not be specified, since
-# all URLs ending in .gif will be tagged as images by the general rules
-# as set in default.action anyway:
-#
-{ +block{Nasty ads.} }
-www.example.com/nasty-ads/sponsor.gif
-
-# The URLs of dynamically generated banners, especially from large banner
-# farms, often don't use the well-known image file name extensions, which
-# makes it impossible for Privoxy to guess the file type just by looking
-# at the URL.
-# You can use the +block-as-image alias defined above for these cases.
-# Note that objects which match this rule but then turn out NOT to be an
-# image are typically rendered as a "broken image" icon by the browser.
-# Use cautiously.
-#
-{ +block-as-image }
-#.doubleclick.net
-#/Realmedia/ads/
-#ar.atwola.com/
-
-# Now you noticed that the default configuration breaks Forbes
-# Magazine, but you were too lazy to find out which action is the
-# culprit, and you were again too lazy to give feedback, so you just
-# used the fragile alias on the site, and -- whoa! -- it worked. The
-# 'fragile' aliases disables those actions that are most likely to break
-# a site. Also, good for testing purposes to see if it is Privoxy that
-# is causing the problem or not.
-#
-{ fragile }
-#.forbes.com
-
-# Here are some sites we wish to support, and we will allow their ads
-# through.
-#
-{ allow-ads }
-#.sourceforge.net
-#.slashdot.org
-#.osdn.net
-
-# user.action is generally the best place to define exceptions and
-# additions to the default policies of default.action. Some actions are
-# safe to have their default policies set here though. So let's set a
-# default policy to have a 'blank' image as opposed to the checkerboard
-# pattern for ALL sites. '/' of course matches all URLs.
-# patterns:
-#
-{ +set-image-blocker{blank} }
-#/
-
-# Enable the following section (not the regression-test directives)
-# to rewrite and redirect click-tracking URLs on news.google.com.
-# Disabling JavaScript should work as well and probably works more reliably.
-#
-# Redirected URL = http://news.google.com/news/url?ct2=us%2F0_0_s_1_1_a&sa=t&usg=AFQjCNHJWPc7ffoSXPSqBRz55jDA0KgxOQ&cid=8797762374160&url=http%3A%2F%2Fonline.wsj.com%2Farticle%2FSB10001424052970204485304576640791304008536.html&ei=YcqeTsymCIjxggf8uQE&rt=HOMEPAGE&vm=STANDARD&bvm=section&did=-6537064229385238098
-# Redirect Destination = http://online.wsj.com/article/SB10001424052970204485304576640791304008536.html
-# Ignore = Yes
-#
-#{+fast-redirects{check-decoded-url}}
-#news.google.com/news/url.*&url=http.*&
-
-# Enable the following section (not the regression-test directives)
-# to block various Facebook "like" and similar tracking URLs. At the
-# time this section was added it was reported to not break Facebook
-# itself but this may have changed by the time you read this. This URL
-# list is probably incomplete and if you don't have an account anyway,
-# you may prefer to block the whole domain.
-#
-# Blocked URL = http://www.facebook.com/plugins/likebox.php?href=http%3A%2F%2Ffacebook.com%2Farstechnica&width=300&colorscheme=light&show_faces=false&stream=false&header=false&height=62&border_color=%23FFFFFF
-# Ignore = Yes
-# Blocked URL = http://www.facebook.com/plugins/activity.php?site=arstechnica.com&width=300&height=370&header=false&colorscheme=light&recommendations=false&border_color=%23FFFFFF
-# Ignore = Yes
-# Blocked URL = http://www.facebook.com/plugins/fan.php?api_key=368513495882&connections=10&height=250&id=8304333127&locale=en_US&sdk=joey&stream=false&width=377
-# Ignore = Yes
-# Blocked URL = http://www.facebook.com/plugins/like.php?api_key=368513495882&channel_url=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%3Fversion%3D3%23cb%3Df13997452c%26origin%3Dhttp%253A%252F%252Fonline.wsj.com%252Ff1b037e354%26relation%3Dparent.parent%26transport%3Dpostmessage&extended_social_context=false&href=http%3A%2F%2Fonline.wsj.com%2Farticle%2FSB10001424052970204485304576640791304008536.html&layout=button_count&locale=en_US&node_type=link&ref=wsj_share_FB&sdk=joey&send=false&show_faces=false&width=90
-# Ignore = Yes
-#
-#{+block{Facebook "like" and similar tracking URLs.}}
-#www.facebook.com/(extern|plugins)/(login_status|like(box)?|activity|fan)\.php
+++ /dev/null
-# ********************************************************************
-#
-# File : $Source: /cvsroot/ijbswa/current/user.filter,v $
-#
-# $Id: user.filter,v 1.3 2008/05/21 20:17:03 fabiankeil Exp $
-#
-# Purpose : Rules to process the content of web pages
-#
-# Copyright : Written by and Copyright (C) 2006-2008 the
-# Privoxy team. http://www.privoxy.org/
-#
-# We value your feedback. However, to provide you with the best support,
-# please note:
-#
-# * Use the support forum to get help:
-# http://sourceforge.net/tracker/?group_id=11118&atid=211118
-# * Submit bugs only thru our bug forum:
-# http://sourceforge.net/tracker/?group_id=11118&atid=111118
-# Make sure that the bug has not already been submitted. Please try
-# to verify that it is a Privoxy bug, and not a browser or site
-# bug first. If you are using your own custom configuration, please
-# try the stock configs to see if the problem is a configuration
-# related bug. And if not using the latest development snapshot,
-# please try the latest one. Or even better, CVS sources.
-# * Submit feature requests only thru our feature request forum:
-# http://sourceforge.net/tracker/?atid=361118&group_id=11118&func=browse
-#
-# For any other issues, feel free to use the mailing lists:
-# http://sourceforge.net/mail/?group_id=11118
-#
-# Anyone interested in actively participating in development and related
-# discussions can join the appropriate mailing list here:
-# http://sourceforge.net/mail/?group_id=11118. Archives are available
-# here too.
-#
-#################################################################################
-#
-# Syntax:
-#
-# Generally filters start with a line like "FILTER: name description".
-# They are then referrable from the actionsfile with +filter{name}
-#
-# FILTER marks a filter as content filter, other filter
-# types are CLIENT-HEADER-FILTER, CLIENT-HEADER-TAGGER,
-# SERVER-HEADER-FILTER and SERVER-HEADER-TAGGER.
-#
-# Inside the filters, write one Perl-Style substitution (job) per line.
-# Jobs that precede the first FILTER: line are ignored.
-#
-# For Details see the pcrs manpage contained in this distribution.
-# (and the perlre, perlop and pcre manpages)
-#
-# Note that you are free to choose the delimiter as you see fit.
-#
-# Note2: In addition to the Perl options gimsx, the following nonstandard
-# options are supported:
-#
-# 'U' turns the default to ungreedy matching. Add ? to quantifiers to
-# switch back to greedy.
-#
-# 'T' (trivial) prevents parsing for backreferences in the substitute.
-# Use if you want to include text like '$&' in your substitute without
-# quoting.
-#
-# 'D' (Dynamic) allows the use of variables. Supported variables are:
-# $host, $origin (the IP address the request came from), $path and $url.
-#
-# Note that '$' is a bad choice as delimiter for dynamic filters as you
-# might end up with unintended variables if you use a variable name
-# directly after the delimiter. Variables will be resolved without
-# escaping anything, therefore you also have to be careful not to chose
-# delimiters that appear in the replacement text. For example '<' should
-# be save, while '?' will sooner or later cause conflicts with $url.
-#
-#################################################################################
+++ /dev/null
- Authors of Privoxy v2.9.x and 3.x
-===========================================================================
-
-Current Privoxy Team:
-
- Fabian Keil, lead developer
- David Schmidt
- Hal Burgiss
- Lee Rian
- Roland Rosenfeld
- Ian Silvester
-
-Former Privoxy Team Members:
-
- Johny Agotnes
- Rodrigo Barbosa
- Moritz Barsnick
- Ian Cummings
- Brian Dessent
- Jon Foster
- Karsten Hopp
- Alexander Lazic
- Daniel Leite
- Gábor Lipták
- Adam Lock
- Guy Laroche
- Justin McMurtry
- Mark Miller
- Gerry Murphy
- Andreas Oesterhelt
- Haroon Rafique
- Georg Sauthoff
- Thomas Steudten
- Jörg Strohmayer
- Rodney Stromlund
- Sviatoslav Sviridov
- Sarantis Paskalis
- Stefan Waldherr
-
-Thanks to the many people who have tested Privoxy, reported bugs, provided
-patches, made suggestions or contributed in some way. These include (in
-alphabetical order):
-
- Ken Arromdee
- Natxo Asenjo
- Devin Bayer
- Havard Berland
- David Bo
- Gergely Bor
- Francois Botha
- Reiner Buehl
- Andrew J. Caines
- Clifford Caoile
- Wan-Teh Chang
- Ramkumar Chinchani
- Billy Crook
- Frédéric Crozat
- Michael T. Davis
- Markus Dittrich
- Mattes Dolak
- Matthias Drochner
- Peter E.
- Florian Effenberger
- Markus Elfring
- Ryan Farmer
- Matthew Fischer
- Dean Gaudet
- Stephen Gildea
- Lizik Grelier
- Daniel Griscom
- Felix Gröbert
- Jeff H.
- Tim H.
- Aaron Hamid
- Darel Henman
- Magnus Holmgren
- Eric M. Hopper
- Ralf Horstmann
- Stefan Huehner
- Peter Hyman
- Derek Jennings
- Andrew Jones
- Julien Joubert
- Ralf Jungblut
- Petr Kadlec
- Steven Kolins
- Zeno Kugy
- David Laight
- Bert van Leeuwen
- Don Libes
- Paul Lieverse
- Han Liu
- Toby Lyward
- Wil Mahan
- Jindrich Makovicka
- Raphael Marichez
- Francois Marier
- Angelina Matson
- David Mediavilla
- Raphael Moll
- Amuro Namie
- Adam Piggott
- Petr PÃsar
- Dan Price
- Roberto Ragusa
- Félix Rauch
- Maynard Riley
- Andreas Rutkauskas
- Bart Schelstraete
- Chung-chieh Shan
- Simon South
- Dan Stahlke
- Oliver Stoeneberg
- Rick Sykes
- Spinor S.
- Peter Thoenen
- Martin Thomas
- Bobby G. Vinyard
- Jochen Voss
- Glenn Washburn
- Song Weijia
- Jörg Weinmann
- Darren Wiebe
- Anduin Withers
- Oliver Yeoh
- Jamie Zawinski
-
-Privoxy is based in part on code originally developed by Junkbusters Corp. and
-Anonymous Coders.
-
-Privoxy heavily relies on Philip Hazel's PCRE.
-
-The code to filter compressed content makes use of zlib which is written by
-Jean-loup Gailly and Mark Adler.
-
-On systems that lack snprintf(), Privoxy is using a version written by Mark
-Martinec. On systems that lack strptime(), Privoxy is using the one from the
-GNU C Library written by Ulrich Drepper.
-
-If we've missed you off this list, please let us know!
-
- Privoxy team. http://www.privoxy.org/
- <ijbswa-developers@lists.sourceforge.net>
-
+++ /dev/null
---------------------------------------------------------------------
-ChangeLog for Privoxy
---------------------------------------------------------------------
-*** Version 3.0.21 stable ***
-
-- Bug fixes:
- - On POSIX-like platforms, network sockets with file descriptor
- values above FD_SETSIZE are properly rejected. Previously they
- could cause memory corruption in configurations that allowed
- the limit to be reached.
- - Proxy authentication headers are removed unless the new directive
- enable-proxy-authentication-forwarding is used. Forwarding the
- headers potentionally allows malicious sites to trick the user
- into providing them with login information.
- Reported by Chris John Riley.
- - Compiles on OS/2 again now that unistd.h is only included
- on platforms that have it.
-
-- General improvements:
- - The show-status page shows the FEATURE_STRPTIME_SANITY_CHECKS status.
- - A couple of assert()s that could theoretically dereference
- NULL pointers in debug builds have been relocated.
- - Added an LSB info block to the generic start script.
- Based on a patch from Natxo Asenjo.
- - The max-client-connections default has been changed to 128
- which should be more than enough for most setups.
-
-- Action file improvements:
- - Block rover.ebay./ar.*\&adtype= instead of "/.*\&adtype=" which
- caused too man false positives.
- Reported by u302320 in #360284, additional feedback from Adam Piggott.
- - Unblock '.advrider.com/' and '/.*ADVrider'.
- Anonymously reported in #3603636.
- - Stop blocking '/js/slider\.js'.
- Reported by Adam Piggott in #3606635 and _lvm in #2791160.
-
-- Filter file improvements:
- - Added an iframes filter.
-
-- Documentation improvements:
- - The whole GPLv2 text is included in the user manual now,
- so Privoxy can serve it itself and the user can read it
- without having to wade through GPLv3 ads first.
- - Properly numbered and underlined a couple of section titles
- in the config that where previously overlooked due to a flaw
- in the conversion script. Reported by Ralf Jungblut.
- - Improved the support instruction to hopefully make it harder to
- unintentionally provide insufficient information when requesting
- support. Previously it wasn't obvious that the information we need
- in bug reports is usually also required in support requests.
- - Removed documentation about packages that haven't been provided
- in years.
-
-- Privoxy-Regression-Test:
- - Only log the test number when not running in verbose mode
- The position of the test is rarely relevant and it previously
- wasn't exactly obvious which one of the numbers was useful to
- repeat the test with --test-number.
-
-- GNUmakefile improvements:
- - Factor generate-config-file out of config-file to make testing
- more convenient.
- - The clean target now also takes care of patch leftovers.
-
-*** Version 3.0.20 beta ***
-
-- Bug fixes:
- - Client sockets are now properly shutdown and drained before being
- closed. This fixes page truncation issues with clients that aggressively
- pipeline data on platforms that otherwise discard already written data.
- The issue mainly affected Opera users and was initially reported
- by Kevin in #3464439, szotsaki provided additional information to track
- down the cause.
- - Fix latency calculation for shared connections (disabled by default).
- It was broken since their introduction in 2009. The calculated latency
- for most connections would be 0 in which case the timeout detection
- failed to account for the real latency.
- - Reject URLs with invalid port. Previously they were parsed incorrectly and
- characters between the port number and the first slash were silently
- dropped as shown by curl test 187.
- - The default-server-timeout and socket-timeout directives accept 0 as
- valid value.
- - Fix a race condition on Windows that could cause Privoxy to become
- unresponsive after toggling it on or off through the taskbar icon.
- Reported by Tim H. in #3525694.
- - Fix the compilation on Windows when configured without IPv6 support.
- - Fix an assertion that could cause debug builds to abort() in case of
- socks5 connection failures with "debug 2" enabled.
- - Fix an assertion that could cause debug builds to abort() if a filter
- contained nul bytes in the replacement text.
-
-- General improvements:
- - Significantly improved keep-alive support for both client and server
- connections.
- - New debug log level 65536 which logs all actions that were applied to
- the request.
- - New directive client-header-order to forward client headers in a
- different order than the one in which they arrived.
- - New directive tolerate-pipelining to allow client-side pipelining.
- If enabled (3.0.20 beta enables it by default), Privoxy will keep
- pipelined client requests around to deal with them once the current
- request has been served.
- - New --config-test option to let Privoxy exit after checking whether or not
- the configuration seems valid. The limitations noted in TODO #22 and #23
- still apply. Based on a patch by Ramkumar Chinchani.
- - New limit-cookie-lifetime{} action to let cookies expire before the end
- of the session. Suggested by Rick Sykes in #1049575.
- - Increase the hard-coded maximum number of actions and filter files from
- 10 to 30 (each). It doesn't significantly affect Privoxy's memory usage
- and recompiling wasn't an option for all Privoxy users that reached the
- limit.
- - Add support for chunk-encoded client request bodies. Previously
- chunk-encoded request bodies weren't guaranteed to be forwarded correctly,
- so this can also be considered a bug fix although chunk-encoded request
- bodies aren't commonly used in the real world.
- - Add support for Tor's optimistic-data SOCKS extension, which can reduce the
- latency for requests on newly created connections. Currently only the
- headers are sent optimistically and only if the client request has already
- been read completely which rules out requests with large bodies.
- - After preventing the client from pipelining, don't signal keep-alive
- intentions. When looking at the response headers alone, it previously
- wasn't obvious from the client's perspective that no additional responses
- should be expected.
- - Stop considering client sockets tainted after receiving a request with body.
- It hasn't been necessary for a while now and unnecessarily causes test
- failures when using curl's test suite.
- - Allow HTTP/1.0 clients to signal interest in keep-alive through the
- Proxy-Connection header. While such client are rare in the real world, it
- doesn't hurt and couple of curl tests rely on it.
- - Only remove duplicated Content-Type headers when filters are enabled.
- If they are not it doesn't cause ill effects and the user might not want it.
- Downgrade the removal message to LOG_LEVEL_HEADER to clarify that it's not
- an error in Privoxy and is unlikely to cause any problems in general.
- Anonymously reported in #3599335.
- - Set the socket option SO_LINGER for the client socket.
- - Move several variable declarations to the beginning of their code block.
- It's required when compiling with gcc 2.95 which is still used on some
- platforms. Initial patch submitted by Simon South in #3564815.
- - Optionally try to sanity-check strptime() results before trusting them.
- Broken strptime() implementations have caused problems in the past and
- the most recent offender seems to be FreeBSD's libc (standards/173421).
- - When filtering is enabled, let Range headers pass if the range starts at
- the beginning. This should work around (or at least reduce) the video
- playback issues with various Apple clients as reported by Duc in #3426305.
- - Do not confuse a client hanging up with a connection time out. If a client
- closes its side of the connection without sending a request line, do not
- send the CLIENT_CONNECTION_TIMEOUT_RESPONSE, but report the condition
- properly.
- - Allow closing curly braces as part of action values as long as they are
- escaped.
- - On Windows, the logfile is now written before showing the GUI error
- message which blocks until the user acknowledges it.
- Reported by Adriaan in #3593603.
- - Remove an unreasonable parameter limit in the CGI interface. The new
- parameter limit depends on the memory available and is currently unlikely
- to be reachable, due to other limits in both Privoxy and common clients.
- Reported by Andrew on ijbswa-users@.
- - Decrease the chances of parse failures after requests with unsupported
- methods were sent to the CGI interface.
-
-- Action file improvements:
- - Remove the comment that indicated that updated default.action versions
- are released on their own.
- - Block 'optimize.indieclick.com/' and 'optimized-by.rubiconproject.com/'
- - Unblock 'adjamblog.wordpress.com/' and 'adjamblog.files.wordpress.com/'.
- Reported by Ryan Farmer in #3496116.
- - Unblock '/.*Bugtracker'. Reported by pwhk in #3522341.
- - Add test URLs for '.freebsd.org' and '.watson.org'.
- - Unblock '.urbandictionary.com/popular'.
- - Block '.adnxs.com/'.
- - Block 'farm.plista.com/widgetdata.php'.
- - Block 'rotation.linuxnewmedia.com/'.
- - Block 'reklamy.sfd.pl/'. Reported by kacperdominik in #3399948.
- - Block 'g.adspeed.net/'.
- - Unblock 'websupport.wdc.com/'. Reported by Adam Piggot in #3577851.
- - Block '/openx/www/delivery/'.
- - Disable fast-redirects for '.googleapis.com/'.
- - Block 'imp.double.net/'. Reported by David Bo in #3070411.
- - Block 'gm-link.com/' which is used for email tracking.
- Reported by David Bo in #1812733.
- - Verify that requests to "bwp." are blocked. URL taken from #1736879
- submitted by Francois Marier.
- - Block '/.*bannerid='. Reported by Adam Piggott in #2975779.
- - Block 'cltomedia.info/delivery/' and '.adexprt.com/'.
- Anonymously reported in #2965254.
- - Block 'de17a.com/'. Reported by David Bo in #3061472.
- - Block 'oskar.tradera.com/'. Reported by David Bo in #3060596.
- - Block '/scripts/webtrends\.js'. Reported by johnd16 in #3002729.
- - Block requests for 'pool.*.adhese.com/'. Reported by johnd16 in #3002716.
- - Update path pattern for Coremetrics and add tests.
- Pattern and URLs submitted by Adam Piggott #3168443.
- - Enable +fast-redirects{check-decoded-url} for 'tr.anp.se/'.
- Reported by David Bo in #3268832.
- - Unblock '.conrad.se/newsletter/banners/'. Reported by David Bo in #3413824.
- - Block '.tynt.com/'. Reported by Dan Stahlke in #3421767.
- - Unblock '.bbci.co.uk/radio/'. Reported by Adam Piggott in #3569603.
- - Block requests to 'service.maxymiser.net/'.
- Reported by johnd16 in #3118401 (with a previous URL).
- - Disable fast-redirects for Google's "let's pretend your computer is
- infected" page.
- - Unblock '/.*download' to resolve actionsfile feedback #3498129.
- Submitted by Steven Kolins (soundcloud.com not working).
- - Unblock '.wlxrs.com/' which is required by hotmail.com.
- Fixes #3413827 submitted by David Bo.
- - Add two unblock patterns for popup radio and TV players.
- Submitted by Adam Piggott in #3596089.
-
-- Filter file improvements & bug fixes:
- - Add a referer tagger.
- - Reduce the likelihood that the google filter messes up HTML-generating
- JavaScript. Reported by Zeno Kugy in #3520260.
-
-- Documentation improvements:
- - Revised all OS X sections due to new packaging module (OSXPackageBuilder).
- - Update the list of supported operating systems to clarify that all Windows
- versions after 95 are expected to work and note that the platform-specific
- code for AmigaOS and QNX currently isn't maintained.
- - Update 'Signals' section, the only explicitly handled signals are SIGINT,
- SIGTERM and SIGHUP.
- - Add Haiku to the list of operating systems on which Privoxy is known to
- run.
- - Add DragonFly to the list of BSDs on which Privoxy is known to run.
- - Removed references to redhat-specific documentation set since it no longer
- exists.
- - Removed references to building PDFs since we no longer do so.
- - Multiple listen-address directives are supported since 3.0.18, correct the
- documentation to say so.
- - Remove bogus section about long and short being preferable to int.
- - Corrected some Internet JunkBuster references to Privoxy.
- - Removed references to www.junkbusters.com since it is no longer
- maintained. Reported by Angelina Matson.
- - Various grammar and spelling corrections
- - Add a client-header-tagger{} example for disabling filtering for range
- requests.
- - Correct a URL in the "Privoxy with Tor" FAQ.
- - Spell 'refresh-tags' correctly. Reported by Don in #3571927.
- - Sort manpage options alphabetically.
- - Remove an incorrect sentence in the toggle section. The toggle state
- doesn't affect whether or not the Windows version uses the tray icon.
- Reported by Zeno Kugy in #3596395.
- - Add new contributors since 3.0.19.
-
-- Log message improvements:
- - When stopping to watch a client socket due to pipelining, additionally log
- the socket number.
- - Log the client socket and its condition before closing it. This makes it
- more obvious that the socket actually gets closed and should help when
- diagnosing problems like #3464439.
- - In case of SOCKS5 failures, do not explicitly log the server's response.
- It hasn't helped so far and the response can already be logged by enabling
- "debug 32768" anyway. This reverts v1.81 and the follow-up bug fix v1.84.
- - Relocate the connection-accepted message from listen_loop() to serve().
- This way it's printed by the thread that is actually serving the
- connection which is nice when grepping for thread ids in log files.
-
-- Code cleanups:
- - Remove compatibility layer for versions prior to 3.0 since it has been
- obsolete for more than 10 years now.
- - Remove the ijb_isupper() and ijb_tolower() macros from parsers.c since
- they aren't used in this file.
- - Removed the 'Functions declared include:' comment sections since they tend
- to be incomplete, incorrect and out of date and the benefit seems
- questionable.
- - Various comment grammar and comprehensibility improvements.
- - Remove a pointless fflush() call in chat(). Flushing all streams pretty
- much all the time for no obvious reason is ridiculous.
- - Relocate ijb_isupper()'s definition to project.h and get the ijb_tolower()
- definition from there, too.
- - Relocate ijb_isdigit()'s definition to project.h.
- - Rename ijb_foo macros to privoxy_foo.
- - Add malloc_or_die() which will allow to simplify code paths where malloc()
- failures don't need to be handled gracefully.
- - Add strdup_or_die() which will allow to simplify code paths where strdup()
- failures don't need to be handled gracefully.
- - Replace strdup() calls with strdup_or_die() calls where it's safe and
- simplifies the code.
- - Fix white-space around parentheses.
- - Add missing white-space behind if's and the following parentheses.
- - Unwrap a memcpy() call in resolve_hostname_to_ip().
- - Declare pcrs_get_delimiter()'s delimiters[] static const.
- - Various optimisations to remove dead code and merge inefficient code
- structures for improved clarity, performance or code compactness.
- - Various data type corrections.
- - Change visibility of several code segments when compiling without
- FEATURE_CONNECTION_KEEP_ALIVE enabled for clarity.
- - In pcrs_get_delimiter(), do not use delimiters outside the ASCII range.
- Fixes a clang complaint.
- - Fix an error message in get_last_url() nobody is supposed to see.
- Reported by Matthew Fischer in #3507301.
- - Fix a typo in the no-zlib-support complaint. Patch submitted by Matthew
- Fischer in #3507304.
- - Shorten ssplit()'s prototype by removing the last two arguments. We always
- want to skip empty fields and ignore leading delimiters, so having
- parameters for this only complicates the API.
- - Use an enum for the type of the action value.
- - Rename action_name's member takes_value to value_type as it isn't used as
- boolean.
- - Turn family mismatches in match_sockaddr() into fatal errors.
- - Let enlist_unique_header() verify that the caller didn't pass a header
- containing either \r or \n.
- - Change the hashes used in load_config() to unsigned int. That's what
- hash_string() actually returns and using a potentially larger type
- is at best useless.
- - Use privoxy_tolower() instead of vanilla tolower() with manual casting of
- the argument.
- - Catch ssplit() failures in parse_cgi_parameters().
-
-- Privoxy-Regression-Test:
- - Add an 'Overwrite condition' directive to skip any matching tests before
- it. As it has a global scope, using it is more convenient than clowning
- around with the Ignore directive.
- - Log to STDOUT instead of STDERR.
- - Include the Privoxy version in the output.
- - Various grammar and spelling corrections in documentation and code.
- - Additional tests for range requests with filtering enabled.
- - Tests with mostly invalid range request.
- - Add a couple of hide-if-modified-since{} tests with different date formats.
- - Cleaned up the format of the regression-tests.action file to match the
- format of default.action.
- - Remove the "Copyright" line from print_version(). When using --help, every
- line of screen space matters and thus shouldn't be wasted on things the
- user doesn't care about.
-
-- Privoxy-Log-Parser:
- - Improve the --statistics performance by skipping sanity checks for input
- that shouldn't affect the results anyway. Add a --strict-checks option
- that enables some of the checks again, just in case anybody cares.
- - The distribution of client requests per connection is included in
- the --statistic output.
- - The --accept-unknown-messages option has been removed and the behavior
- is now the default.
- - Accept and (mostly) highlight new log messages introduced with
- Privoxy 3.0.20.
-
-- uagen:
- - Bump generated Firefox version to 17.
-
-- GNUmakefile improvements:
- - The dok-tidy target no longer taints documents with a tidy-mark
- - Change RA_MODE from 0664 to 0644. Suggested by Markus Dittrich in
- #3505445.
- - Remove tidy's clean flag as it changes the scope of attributes.
- Link-specific colors end up being applied to all text. Reported by Adam
- Piggott in #3569551.
- - Leave it up to the user whether or not smart tags are inserted.
- - Let w3m itself do the line wrapping for the config file. It works better
- than fmt as it can honour pre tags causing less unintentional line breaks.
- - Ditch a pointless '-r' passed to rm to delete files.
- - The config-file target now requires less manual intervention and updates
- the original config.
- - Change WDUMP to generate ASCII. Add WDUMP_UTF8 to allow UTF-8 in the
- AUTHORS file so the names are right.
- - Stop pretending that lynx and links are supported for the documentation.
-
-- configure improvements:
- - On Haiku, do not pass -lpthread to the compiler. Haiku's pthreads
- implementation is contained in its system library, libroot, so no
- additional library needs to be searched.
- Patch submitted by Simon South in #3564815.
- - Additional Haiku-specific improvements. Disable checks intended for
- multi-user systems as Haiku is presently single-user. Group Haiku-specific
- settings in their own section, following the pattern for Solaris, OS/2 and
- AmigaOS. Add additional library-related settings to remove the need for
- providing configure with custom LDFLAGS.
- Submitted by Simon South in #3574538.
-
-*** Version 3.0.19 Stable ***
-
-- Bug fixes:
- - Prevent a segmentation fault when de-chunking buffered content.
- It could be triggered by malicious web servers if Privoxy was
- configured to filter the content and running on a platform
- where SIZE_T_MAX isn't larger than UINT_MAX, which probably
- includes most 32-bit systems. On those platforms, all Privoxy
- versions before 3.0.19 appear to be affected.
- To be on the safe side, this bug should be presumed to allow
- code execution as proving that it doesn't seems unrealistic.
- - Do not expect a response from the SOCKS4/4A server until it
- got something to respond to. This regression was introduced
- in 3.0.18 and prevented the SOCKS4/4A negotiation from working.
- Reported by qqqqqw in #3459781.
-
-- General improvements:
- - Fix an off-by-one in an error message about connect failures.
- - Use a GNUMakefile variable for the webserver root directory and
- update the path. Sourceforge changed it which broke various
- web-related targets.
- - Update the CODE_STATUS description.
-
-*** Version 3.0.18 Stable ***
-
-- Bug fixes:
- - If a generated redirect URL contains characters RFC 3986 doesn't
- permit, they are (re)encoded. Not doing this makes Privoxy versions
- from 3.0.5 to 3.0.17 susceptible to HTTP response splitting (CWE-113)
- attacks if the +fast-redirects{check-decoded-url} action is used.
- - Fix a logic bug that could cause Privoxy to reuse a server
- socket after it got tainted by a server-header-tagger-induced
- block that was triggered before the whole server response had
- been read. If keep-alive was enabled and the request following
- the blocked one was to the same host and using the same forwarding
- settings, Privoxy would send it on the tainted server socket.
- While the server would simply treat it as a pipelined request,
- Privoxy would later on fail to properly parse the server's
- response as it would try to parse the unread data from the
- first response as server headers for the second one.
- Regression introduced in 3.0.17.
- - When implying keep-alive in client_connection(), remember that
- the client didn't. Fixes a regression introduced in 3.0.13 that
- would cause Privoxy to wait for additional client requests after
- receiving a HTTP/1.1 request with "Connection: close" set
- and connection sharing enabled.
- With clients which terminates the client connection after detecting
- that the whole body has been received it doesn't really matter,
- but with clients that don't the connection would be kept open until
- it timed out.
- - Fix a subtle race condition between prepare_csp_for_next_request()
- and sweep(). A thread preparing itself for the next client request
- could briefly appear to be inactive.
- If all other threads were already using more recent files,
- the thread could get its files swept away under its feet.
- So far this has only been reproduced while stress testing in
- valgrind while touching action files in a loop. It's unlikely
- to have caused any actual problems in the real world.
- - Disable filters if SDCH compression is used unless filtering is forced.
- If SDCH was combined with a supported compression algorithm, Privoxy
- previously could try to decompress it and ditch the Content-Encoding
- header even though the SDCH compression wasn't dealt with.
- Reported by zebul666 in #3225863.
- - Make a copy of the --user value and only mess with that when splitting
- user and group. On some operating systems modifying the value directly
- is reflected in the output of ps and friends and can be misleading.
- Reported by zepard in #3292710.
- - If forwarded-connect-retries is set, only retry if Privoxy is actually
- forwarding the request. Previously direct connections would be retried
- as well.
- - Fixed a small memory leak when retrying connections with IPv6
- support enabled.
- - Remove an incorrect assertion in compile_dynamic_pcrs_job_list()
- It could be triggered by a pcrs job with an invalid pcre
- pattern (for example one that contains a lone quantifier).
- - If the --user argument user[.group] contains a dot, always bail out
- if no group has been specified. Previously the intended, but undocumented
- (and apparently untested), behaviour was to try interpreting the whole
- argument as user name, but the detection was flawed and checked for '0'
- instead of '\0', thus merely preventing group names beginning with a zero.
- - In html_code_map[], use a numeric character reference instead of '
- which wasn't standardized before XHTML 1.0.
- - Fix an invalid free when compiled with FEATURE_GRACEFUL_TERMINATION
- and shut down through http://config.privoxy.org/die
- - In get_actions(), fix the "temporary" backwards compatibility hack
- to accept block actions without reason.
- It also covered other actions that should be rejected as invalid.
- Reported by Billy Crook.
-
-- General improvements:
- - Privoxy can (re)compress buffered content before delivering
- it to the client. Disabled by default as most users wouldn't
- benefit from it.
- - The +fast-redirects{check-decoded-url} action checks URL
- segments separately. If there are other parameters behind
- the redirect URL, this makes it unnecessary to cut them off
- by additionally using a +redirect{} pcrs command.
- Initial patch submitted by Jamie Zawinski in #3429848.
- - When loading action sections, verify that the referenced filters
- exist. Currently missing filters only result in an error message,
- but eventually the severity will be upgraded to fatal.
- - Allow to bind to multiple separate addresses.
- Patch set submitted by Petr Pisar in #3354485.
- - Set socket_error to errno if connecting fails in rfc2553_connect_to().
- Previously rejected direct connections could be incorrectly reported
- as DNS issues if Privoxy was compiled with IPv6 support.
- - Adjust url_code_map[] so spaces are replaced with %20 instead of '+'
- While '+' can be used by client's submitting form data, this is not
- actually what Privoxy is using the lookups for. This is more of a
- cosmetic issue and doesn't fix any known problems.
- - When compiled without FEATURE_FAST_REDIRECTS, do not silently
- ignore +fast-redirect{} directives
- - Added a workaround for GNU libc's strptime() reporting negative
- year values when the parsed year is only specified with two digits.
- On affected systems cookies with such a date would not be turned
- into session cookies by the +session-cookies-only action.
- Reported by Vaeinoe in #3403560
- - Fixed bind failures with certain GNU libc versions if no non-loopback
- IP address has been configured on the system. This is mainly an issue
- if the system is using DHCP and Privoxy is started before the network
- is completely configured.
- Reported by Raphael Marichez in #3349356.
- Additional insight from Petr Pisar.
- - Privoxy log messages now use the ISO 8601 date format %Y-%m-%d.
- It's only slightly longer than the old format, but contains
- the full date including the year and allows sorting by date
- (when grepping in multiple log files) without hassle.
- - In get_last_url(), do not bother trying to decode URLs that do
- not contain at least one '%' sign. It reduces the log noise and
- a number of unnecessary memory allocations.
- - In case of SOCKS5 failures, dump the socks response in the log message.
- - Simplify the signal setup in main().
- - Streamline socks5_connect() slightly.
- - In socks5_connect(), require a complete socks response from the server.
- Previously Privoxy didn't care how much data the server response
- contained as long as the first two bytes contained the expected
- values. While at it, shrink the buffer size so Privoxy can't read
- more than a whole socks response.
- - In chat(), do not bother to generate a client request in case of
- direct CONNECT requests. It will not be used anyway.
- - Reduce server_last_modified()'s stack size.
- - Shorten get_http_time() by using strftime().
- - Constify the known_http_methods pointers in unknown_method().
- - Constify the time_formats pointers in parse_header_time().
- - Constify the formerly_valid_actions pointers in action_used_to_be_valid().
- - Introduce a GNUMakefile MAN_PAGE variable that defaults to privoxy.1.
- The Debian package uses section 8 for the man page and this
- should simplify the patch.
- - Deduplicate the INADDR_NONE definition for Solaris by moving it to jbsockets.h
- - In block_url(), ditch the obsolete workaround for ancient Netscape versions
- that supposedly couldn't properly deal with status code 403.
- - Remove a useless NULL pointer check in load_trustfile().
- - Remove two useless NULL pointer checks in load_one_re_filterfile().
- - Change url_code_map[] from an array of pointers to an array of arrays
- It removes an unnecessary layer of indirection and on 64bit system reduces
- the size of the binary a bit.
- - Fix various typos. Fixes taken from Debian's 29_typos.dpatch by Roland Rosenfeld.
- - Add a dok-tidy GNUMakefile target to clean up the messy HTML
- generated by the other dok targets.
- - GNUisms in the GNUMakefile have been removed.
- - Change the HTTP version in static responses to 1.1
- - Synced config.sub and config.guess with upstream
- 2011-11-11/386c7218162c145f5f9e1ff7f558a3fbb66c37c5.
- - Add a dedicated function to parse the values of toggles. Reduces duplicated
- code in load_config() and provides better error handling. Invalid or missing
- toggle values are now a fatal error instead of being silently ignored.
- - Terminate HTML lines in static error messages with \n instead of \r\n.
- - Simplify cgi_error_unknown() a bit.
- - In LogPutString(), don't bother looking at pszText when not
- actually logging anything.
- - Change ssplit()'s fourth parameter from int to size_t.
- Fixes a clang complaint.
- - Add a warning that the statistics currently can't be trusted.
- Mention Privoxy-Log-Parser's --statistics option as
- an alternative for the time being.
- - In rfc2553_connect_to(), start setting cgi->error_message on error.
- - Change the expected status code returned for http://p.p/die depending
- on whether or not FEATURE_GRACEFUL_TERMINATION is available.
- - In cgi_die(), mark the client connection for closing.
- If the client will fetch the style sheet through another connection
- it gets the main thread out of the accept() state and should thus
- trigger the actual shutdown.
- - Add a proper CGI message for cgi_die().
- - Don't enforce a logical line length limit in read_config_line().
- - Slightly refactor server_last_modified() to remove useless gmtime*() calls.
- - In get_content_type(), also recognize '.jpeg' as JPEG extension.
- - Add '.png' to the list of recognized file extensions in get_content_type().
- - In block_url(), consistently use the block reason "Request blocked by Privoxy"
- In two places the reason was "Request for blocked URL" which hides the
- fact that the request got blocked by Privoxy and isn't necessarily
- correct as the block may be due to tags.
- - In listen_loop(), reload the configuration files after accepting
- a new connection instead of before.
- Previously the first connection that arrived after a configuration
- change would still be handled with the old configuration.
- - In chat()'s receive-data loop, skip a client socket check if
- the socket will be written to right away anyway. This can
- increase the transfer speed for unfiltered content on fast
- network connections.
- - The socket timeout is used for SOCKS negotiations as well which
- previously couldn't timeout.
- - Don't keep the client connection alive if any configuration file
- changed since the time the connection came in. This is closer to
- Privoxy's behaviour before keep-alive support for client connection
- has been added and also less confusing in general.
- - Treat all Content-Type header values containing the pattern
- 'script' as a sign of text. Reported by pribog in #3134970.
-
-- Action file improvements:
- - Moved the site-specific block pattern section below the one for the
- generic patterns so for requests that are matched in both, the block
- reason for the domain is shown which is usually more useful than showing
- the one for the generic pattern.
- - Remove -prevent-compression from the fragile alias. It's no longer
- used anywhere by default and isn't known to break stuff anyway.
- - Add a (disabled) section to block various Facebook tracking URLs.
- Reported by Dan Stahlke in #3421764.
- - Add a (disabled) section to rewrite and redirect click-tracking
- URLs used on news.google.com.
- Reported by Dan Stahlke in #3421755.
- - Unblock linuxcounter.net/.
- Reported by Dan Stahlke in #3422612.
- - Block 'www91.intel.com/' which is used by Omniture.
- Reported by Adam Piggott in #3167370.
- - Disable the handle-as-empty-doc-returns-ok option and mark it as deprecated.
- Reminded by tceverling in #2790091.
- - Add ".ivwbox.de/" to the "Cross-site user tracking" section.
- Reported by Nettozahler in #3172525.
- - Unblock and fast-redirect ".awin1.com/.*=http://".
- Reported by Adam Piggott in #3170921.
- - Block "b.collective-media.net/".
- - Widen the Debian popcon exception to "qa.debian.org/popcon".
- Seen in Debian's 05_default_action.dpatch by Roland Rosenfeld.
- - Block ".gemius.pl/" which only seems to be used for user tracking.
- Reported by johnd16 in #3002731. Additional input from Lee and movax.
- - Disable banners-by-size filters for '.thinkgeek.com/'.
- The filter only seems to catch pictures of the inventory.
- - Block requests for 'go.idmnet.bbelements.com/please/showit/'.
- Reported by kacperdominik in #3372959.
- - Unblock adainitiative.org/.
- - Add a fast-redirects exception for '.googleusercontent.com/.*=cache'.
- - Add a fast-redirects exception for webcache.googleusercontent.com/.
- - Unblock http://adassier.wordpress.com/ and http://adassier.files.wordpress.com/.
-
-- Filter file improvements:
- - Let the yahoo filter hide '.ads'.
- - Let the msn filter hide overlay ads for Facebook 'likes' in search
- results and elements with the id 's_notf_div'. They only seem to be
- used to advertise site 'enhancements'.
- - Let the js-events filter additionally disarm setInterval().
- Suggested by dg1727 in #3423775.
-
-- Documentation improvements:
- - Clarify the effect of compiling Privoxy with zlib support.
- Suggested by dg1727 in #3423782.
- - Point out that the SourceForge messaging system works like a black
- hole and should thus not be used to contact individual developers.
- - Mention some of the problems one can experience when not explicitly
- configuring an IP addresses as listen address.
- - Explicitly mention that hostnames can be used instead of IP addresses
- for the listen-address, that only the first address returned will be
- used and what happens if the address is invalid.
- Requested by Calestyo in #3302213.
-
-- Log message improvements:
- - If only the server connection is kept alive, do not pretend to
- wait for a new client request.
- - Remove a superfluous log message in forget_connection().
- - In chat(), properly report missing server responses as such
- instead of calling them empty.
- - In forwarded_connect(), fix a log message nobody should ever see.
- - Fix a log message in socks5_connect(), a failed write operation
- was logged as failed read operation.
- - Let load_one_actions_file() properly complain about a missing
- '{' at the beginning of the file.
- Simply stating that a line is invalid isn't particularly helpful.
- - Do not claim to listen on a socket until Privoxy actually does.
- Patch submitted by Petr Pisar #3354485
- - Prevent a duplicated LOG_LEVEL_CLF message when sending out
- the "no-server-data" response.
- - Also log the client socket when dropping a connection.
- - Include the destination host in the 'Request ... marked for
- blocking. limit-connect{...} doesn't allow CONNECT ...' message
- Patch submitted by Saperski in #3296250.
- - Prevent a duplicated log message if none of the resolved IP
- addresses were reachable.
- - In connect_to(), do not pretend to retry if forwarded-connect-retries
- is zero or unset.
- - When a specified user or group can't be found, put the name in
- single-quotes when logging it.
- - In rfc2553_connect_to(), explain getnameinfo() errors better.
- - Remove a useless log message in chat().
- - When retrying to connect, also log the maximum number of connection
- attempts.
- - Rephrase a log message in compile_dynamic_pcrs_job_list().
- Divide the error code and its meaning with a colon. Call the pcrs
- job dynamic and not the filter. Filters may contain dynamic and
- non-dynamic pcrs jobs at the same time. Only mention the name of
- the filter or tagger, but don't claim it's a filter when it could
- be a tagger.
- - In a fatal error message in load_one_actions_file(), cover both
- URL and TAG patterns.
- - In pcrs_strerror(), properly report unknown positive error code
- values as such. Previously they were handled like 0 (no error).
- - In compile_dynamic_pcrs_job_list(), also log the actual error code as
- pcrs_strerror() doesn't handle all errors reported by pcre.
- - Don't bother trying to continue chatting if the client didn't ask for it.
- Reduces log noise a bit.
- - Make two fatal error message in load_one_actions_file() more descriptive.
- - In cgi_send_user_manual(), log when rejecting a file name due to '/' or '..'.
- - In load_file(), log a message if opening a file failed.
- The CGI error message alone isn't too helpful.
- - In connection_destination_matches(), improve two log messages
- to help understand why the destinations don't match.
- - Rephrase a log message in serve(). Client request arrival
- should be differentiated from closed client connections now.
- - In serve(), log if a client connection isn't reused due to a
- configuration file change.
- - Let mark_server_socket_tainted() always mark the server socket tainted,
- just don't talk about it in cases where it has no effect. It doesn't change
- Privoxy's behaviour, but makes understanding the log file easier.
-
-- configure:
- - Added a --disable-ipv6-support switch for platforms where support
- is detected but doesn't actually work.
- - Do not check for the existence of strerror() and memmove() twice
- - Remove a useless test for setpgrp(2). Privoxy doesn't need it and
- it can cause problems when cross-compiling.
- - Rename the --disable-acl-files switch to --disable-acl-support.
- Since about 2001, ACL directives are specified in the standard
- config file.
- - Update the URL of the 'Removing outdated PCRE version after the
- next stable release' posting. The old URL stopped working after
- one of SF's recent site "optimizations". Reported by Han Liu.
-
-- Privoxy-Regression-Test:
- - Added --shuffle-tests option to increase the chances of detection race conditions.
- - Added a --local-test-file option that allows to use Privoxy-Regression-Test without Privoxy.
- - Added tests for missing socks4 and socks4a forwarders.
- - The --privoxy-address option now works with IPv6 addresses containing brackets, too.
- - Perform limited sanity checks for parameters that are supposed to have numerical values.
- - Added a --sleep-time option to specify a number of seconds to
- sleep between tests, defaults to 0.
- - Disable the range-requests tagger for tests that break if it's enabled.
- - Log messages use the ISO 8601 date format %Y-%m-%d.
- - Fix spelling in two error messages.
- - In the --help output, include a list of supported tests and their default levels.
- - Adjust the tests to properly deal with FEATURE_TOGGLE being disabled.
-
-- Privoxy-Log-Parser:
- - Perform limited sanity checks for command line parameters that
- are supposed to have numerical values.
- - Implement a --unbreak-lines-only option to try to revert MUA breakage.
- - Accept and highlight: Added header: Content-Encoding: deflate
- - Accept and highlight: Compressed content from 29258 to 8630 bytes.
- - Accept and highlight: Client request arrived in time on socket 21.
- - Highlight: Didn't receive data in time: a.fsdn.com:443
- - Accept log messages with ISO 8601 time stamps, too.
-
-- uagen:
- - Bump generated Firefox version to 8.0.
- - Only randomize the release date if the new --randomize-release-date
- option is enabled. Firefox versions after 4 use a fixed date string
- without meaning.
-
-*** Version 3.0.17 Stable ***
-
-- Fixed last-chunk-detection for responses where the body was small
- enough to be read with the headers, causing Privoxy to wait for the
- end of the content until the server closed the connection or the
- request timed out. Reported by "Karsten" in #3028326.
-- Responses with status code 204 weren't properly detected as body-less
- like RFC2616 mandates. Like the previous bug, this caused Privoxy to
- wait for the end of the content until the server closed the connection
- or the request timed out. Fixes #3022042 and #3025553, reported by a
- user with no visible name. Most likely also fixes a bunch of other
- AJAX-related problem reports that got closed in the past due to
- insufficient information and lack of feedback.
-- Fixed an ACL bug that made it impossible to build a blacklist.
- Usually the ACL directives are used in a whitelist, which worked
- as expected, but blacklisting is still useful for public proxies
- where one only needs to deny known abusers access.
-- Added LOG_LEVEL_RECEIVED to log the not-yet-parsed data read from the
- network. This should make debugging various parsing issues a lot easier.
-- The IPv6 code is enabled by default on Windows versions that support it.
- Patch submitted by oCameLo in #2942729.
-- In mingw32 versions, the user.filter file is reachable through the
- GUI, just like default.filter is. Feature request 3040263.
-- Added the configure option --enable-large-file-support to set a few
- defines that are required by platforms like GNU/Linux to support files
- larger then 2GB. Mainly interesting for users without proper logfile
- management.
-- Logging with "debug 16" no longer stops at the first nul byte which is
- pretty useless. Non-printable characters are replaced with their hex value
- so the result can't span multiple lines making parsing them harder then
- necessary.
-- Privoxy logs when reading an action, filter or trust file.
-- Fixed incorrect regression test markup which caused a test in
- 3.0.16 to fail while Privoxy itself was working correctly.
- While Privoxy accepts hide-referer, too, the action name is actually
- hide-referrer which is also the name used one the final results page,
- where the test expected the alias.
-
-- CGI interface improvements:
- - In finish_http_response(), continue to add the 'Connection: close'
- header if the client connection will not be kept alive.
- Anonymously pointed out in #2987454.
- - Apostrophes in block messages no longer cause parse errors
- when the blocked page is viewed with JavaScript enabled.
- Reported by dg1727 in #3062296.
- - Fix a bunch of anchors that used underscores instead of dashes.
- - Allow to keep the client connection alive after crunching the previous request.
- Already opened server connections can be kept alive, too.
- - In cgi_show_url_info(), don't forget to prefix URLs that only contain
- http:// or https:// in the path. Fixes #2975765 reported by Adam Piggott.
- - Show the 404 CGI page if cgi_send_user_manual() is called while
- local user manual delivery is disabled.
-
-- Action file improvements:
- - Enable user.filter by default. Suggested by David White in #3001830.
- - Block .sitestat.com/. Reported by johnd16 in #3002725.
- - Block .atemda.com/. Reported by johnd16 in #3002723.
- - Block js.adlink.net/. Reported by johnd16 in #3002720.
- - Block .analytics.yahoo.com/. Reported by johnd16 in #3002713.
- - Block sb.scorecardresearch.com, too. Reported by dg1727 in #2992652.
- - Fix problems noticed on Yahoo mail and news pages.
- - Remove the too broad yahoo section, only keeping the
- fast-redirects exception as discussed on ijbswa-devel@.
- - Don't block adesklets.sourceforge.net. Reported in #2974204.
- - Block chartbeat ping tracking. Reported in #2975895.
- - Tag CSS and image requests with cautious and medium settings, too.
- - Don't handle view.atdmt.com as image. It's used for click-throughs
- so users should be able to "go there anyway".
- Reported by Adam Piggott in #2975927.
- - Also let the refresh-tags filter remove invalid refresh tags where
- the 'url=' part is missing. Anonymously reported in #2986382.
- While at it, update the description to mention the fact that only
- refresh tags with refresh times above 9 seconds are covered.
- - javascript needs to be blocked with +handle-as-empty-document to
- work around Firefox bug 492459. So move .js blockers from
- +block{Might be a web-bug.} -handle-as-empty-document to
- +block{Might be a web-bug.} +handle-as-empty-document.
- - ijbswa-Feature Requests-3006719 - Block 160x578 Banners.
- - Block another omniture tracking domain.
- - Added a range-requests tagger.
- - Added two sections to get Flickr's Ajax interface working with
- default pre-settings. If you change the configuration to block
- cookies by default, you'll need additional exceptions.
- Reported by Mathias Homann in #3101419 and by Patrick on ijbswa-users@.
-
-- Documentation improvements:
- - Explicitly mention how to match all URLs.
- - Consistently recommend socks5 in the Tor FAQ entry and mention
- its advantage compared to socks4a. Reported by David in #2960129.
- - Slightly improve the explanation of why filtering may appear
- slower than it is.
- - Grammar fixes for the ACL section.
- - Fixed a link to the 'intercepting' entry and add another one.
- - Rename the 'Other' section to 'Mailing Lists' and reword it
- to make it clear that nobody is forced to use the trackers
- - Note that 'anonymously' posting on the trackers may not always
- be possible.
- - Suggest to enable debug 32768 when suspecting parsing problems.
-
-- Privoxy-Log-Parser improvements:
- - Gather statistics for ressources, methods, and HTTP versions
- used by the client.
- - Also gather statistics for blocked and redirected requests.
- - Provide the percentage of keep-alive offers the client accepted.
- - Add a --url-statistics-threshold option.
- - Add a --host-statistics-threshold option to also gather
- statistics about how many request where made per host.
- - Fix a bug in handle_loglevel_header() where a 'scan: ' got lost.
- - Add a --shorten-thread-ids option to replace the thread id with
- a decimal number.
- - Accept and ignore: Looks like we got the last chunk together
- with the server headers. We better stop reading.
- - Accept and ignore: Continue hack in da house.
- - Accept and higlight: Rejecting connection from 10.0.0.2.
- Maximum number of connections reached.
- - Accept and highlight: Loading actions file: /usr/local/etc/privoxy/default.action
- - Accept and highlight: Loading filter file: /usr/local/etc/privoxy/default.filter
- - Accept and highlight: Killed all-caps Host header line: HOST: bestproxydb.com
- - Accept and highlight: Reducing expected bytes to 0. Marking
- the server socket tainted after throwing 4 bytes away.
- - Accept: Merged multiple header lines to: 'X-FORWARDED-PROTO: http X-HOST: 127.0.0.1'
-
-- Code cleanups:
- - Remove the next member from the client_state struct. Only the main
- thread needs access to all client states so give it its own struct.
- - Garbage-collect request_contains_null_bytes().
- - Ditch redundant code in unload_configfile().
- - Ditch LogGetURLUnderCursor() which doesn't seem to be used anywhere.
- - In write_socket(), remove the write-only variable write_len in
- an ifdef __OS2__ block. Spotted by cppcheck.
- - In connect_to(), don't declare the variable 'flags' on OS/2 where
- it isn't used. Spotted by cppcheck.
- - Limit the scope of various variables. Spotted by cppcheck.
- - In add_to_iob(), turn an interestingly looking for loop into a
- boring while loop.
- - Code cleanup in preparation for external filters.
- - In listen_loop(), mention the socket on which we accepted the
- connection, not just the source IP address.
- - In write_socket(), also log the socket we're writing to.
- - In log_error(), assert that escaped characters get logged
- completely or not at all.
- - In log_error(), assert that ival and sval have reasonable values.
- There's no reason not to abort() if they don't.
- - Remove an incorrect cgi_error_unknown() call in a
- cannot-happen-situation in send_crunch_response().
- - Clean up white-space in http_response definition and
- move the crunch_reason to the beginning.
- - Turn http_response.reason into an enum and rename it
- to http_response.crunch_reason.
- - Silence a 'gcc (Debian 4.3.2-1.1) 4.3.2' warning on i686 GNU/Linux.
- - Fix white-space in a log message in remove_chunked_transfer_coding().
- While at it, add a note that the message doesn't seem to
- be entirely correct and should be improved later on.
-
-- GNUmakefile improvements:
- - Use $(SSH) instead of ssh, so one only needs to specify a username once.
- - Removed references to the action feedback thingy that hasn't been
- working for years.
- - Consistently use shell.sourceforge.net instead of shell.sf.net so
- one doesn't need to check server fingerprints twice.
- - Removed GNUisms in the webserver and webactions targets so they
- work with standard tar.
-
-*** Version 3.0.16 Stable ***
-
-- Added the config file option handle-as-empty-doc-returns-ok to
- work around Firefox bug #492459, which causes Firefox to hang
- if JavaScripts are blocked in certain situations. The option is
- enabled in the default config file.
-- Added the config file option default-server-timeout to control the
- assumed default server timeout. Since Privoxy no longer returns
- an error message for connection resets on reused client connections,
- assuming larger server timeout values appears to actually work
- pretty well as long as connections aren't shared.
-- Added optional support for FreeBSD's accf_http(9). Use the
- configure option --enable-accept-filter to enable it.
-- Added fancier Privoxy icons for win32. Contributed by Jeff H.
-- In daemon mode, fd 0, 1 and 2 are bound to /dev/null.
-- Resolve localhost using whatever address family the operating
- system feels like. Previous betas would try to use IPv4 as this
- is what most users expect, but this didn't work reliably on
- GNU/Linux systems.
-- In the action lists on CGI pages, actions and their parameters are
- no longer separated with a space. The action file parser doesn't
- actually allow this and will throw an invalid syntax error if actions
- and parameters in the action files are separated. Not adding the
- spaces means copy and pasting CGI output into the action files works.
-- The default keep-alive timeout has been reduced to 5 seconds to work
- around hangs in clients that treat the proxy like any other host and
- stop allowing any new connections if the "maximum number of
- connections per host" is reached.
-- Several webbug URLs that look like they are leading to images are now
- blocked as image instead of empty documents. Doing the latter causes
- WebKit-based clients to show a "missing image" icon which may mess up
- the layout.
-- The no-such-domain template is used for DNS resolution
- problems with FEATURE_IPV6_SUPPORT enabled. Previously the
- connect-failed template was used. Reported by 'zebul666'.
-- Accepts quoted expiration dates even though RFC 2109 10.1.2
- doesn't seem to allow them. Reported anonymously.
-- Don't try to forget connections if connection sharing is disabled.
- This wasn't a real problem but caused an unnecessary log message.
-- The still undocumented --enable-extended-host-patterns configure
- option has a better description.
-- Fixed an error message that would claim a write to the server
- failed when actually writing to the client failed.
-- Log the crunch reason before trying to write to the client.
- The log is easier to read that way.
-- Several log messages about client connections also mention
- the socket number.
-- handle-as-empty-document no longer depends on the image blocking
- code being enabled.
-- Privoxy-Log-Parser is roughly 40% faster in highlighting mode.
-- uagen, a Firefox User-Agent generator for Privoxy and Mozilla
- browsers has been imported and is available in the tarball's
- tools directory.
-- The scripts in the tools directory treat unknown parameters
- as fatal errors.
-
-*** Version 3.0.15 beta ***
-
-- In case of missing server data, no error message is send to the
- client if the request arrived on a reused connection. The client
- is then supposed to silently retry the request without bothering
- the user. This should significantly reduce the frequency of the
- "No server or forwarder data received" error message many users
- reported.
-- More reliable detection of prematurely closed client sockets
- with keep-alive enabled.
-- FEATURE_CONNECTION_KEEP_ALIVE is decoupled from
- FEATURE_CONNECTION_SHARING and now available on
- all platforms.
-- Improved handling of POST requests on reused connections.
- Should fix problems with stalled connections after submitting
- form data with some browser configurations.
-- Fixed various latency calculation issues.
-- Allows the client to pass NTLM authentication requests to a
- forwarding proxy. This was already assumed and hinted to work
- in 3.0.13 beta but actually didn't. Now it's confirmed to work
- with IE, Firefox and Chrome.
- Thanks to Francois Botha and Wan-Teh Chang
-- Fixed a calculation problem if receiving the server headers
- takes more than two reads, that could cause Privoxy to terminate
- the connection prematurely. Reported by Oliver.
-- Compiles again on platforms such as OpenBSD and systems
- using earlier glibc version that don't support AI_ADDRCONFIG.
- Anonymously submitted in #2872591.
-- A bunch of MS VC project files and Suse and Redhat RPM spec
- files have been removed as they were no longer maintained for
- quite some time.
-- Overly long action lines are properly rejected with a proper
- error message. Previously they would be either rejected as
- invalid or cause a core dump through abort().
-- Already timed-out connections are no longer temporarily remembered.
- They weren't reused anyway, but wasted a socket slot.
-- len refers to the number of bytes actually read which might
- differ from the ones received. Adjust log messages accordingly.
-- The optional JavaScript on the CGI page uses encodeURIComponent()
- instead of escape() which doesn't encode all characters that matter.
- Anonymously reported in #2832722.
-- Fix gcc45 warnings in decompress_iob().
-- Various log message improvements.
-- Privoxy-Regression-Test supports redirect tests.
-- Privoxy-Log-Parser can gather some connection statistics.
-
-*** Version 3.0.14 beta ***
-
-- The latency is taken into account when evaluating whether or not to
- reuse a connection. This should significantly reduce the number of
- connections problems several users reported.
-- If the server doesn't specify how long the connection stays alive,
- Privoxy errs on the safe side of caution and assumes it's only a second.
-- The error pages for connection timeouts or missing server data use a
- Last-Modified date in the past. Retry attempts are detected and Privoxy
- removes the If-Modified-Since header to prevent the server from responding
- with status code 304 in which case the client would reuse the error message.
-- Setting keep-alive-timeout to 0 disables keep-alive support. Previously
- Privoxy would claim to allow persistence but not reuse the connection.
-- Pipelined requests are less likely to be mistaken for the request
- body of the previous request. Note that Privoxy still has no real
- pipeline support and will either serialize pipelined requests or
- drop them in which case the client has to resent them.
-- Fixed a crash on some Windows versions when header randomization
- is enabled and the date couldn't be parsed.
-- Privoxy's keep-alive timeout for the current connection is reduced
- to the one specified in the client's Keep-Alive header.
-- For HTTP/1.1 requests, Privoxy implies keep-alive support by not
- setting any Connection header instead of using 'Connection: keep-alive'.
-- If the socket isn't reusable, Privoxy doesn't temporarily waste
- a socket slot to remember the connection.
-- If keep-alive support is disabled but compiled in, the client's
- Keep-Alive header is removed.
-- Fixed a bug on mingw32 where downloading large files failed if
- keep-alive support was enabled.
-- Fixed a bug that (at least theoretically) could cause log
- timestamps to be occasionally off by about a second.
-- No Proxy-Connection header if added if there already is one.
-- The configure script respects the $PATH variable when searching
- for groups and id.
-
-*** Version 3.0.13 beta ***
-
-- Added IPv6 support. Thanks to Petr Pisar who not only provided
- the initial patch but also helped a lot with the integration.
-- Added client-side keep-alive support.
-- The connection sharing code is only used if the connection-sharing
- option is enabled.
-- The max-client-connections option has been added to restrict
- the number of client connections below a value enforced by
- the operating system.
-- Fixed a regression reintroduced in 3.0.12 that could cause
- crashes on mingw32 if header date randomization was enabled.
-- Compressed content with extra fields couldn't be decompressed
- and would get passed to the client unfiltered. This problem
- has only be detected through statical analysis with clang as
- nobody seems to be using extra fields anyway.
-- If the server resets the Connection after sending only the headers
- Privoxy forwards what it got to the client. Previously Privoxy
- would deliver an error message instead.
-- Error messages in case of connection timeouts use the right
- HTTP status code.
-- If spawning a child to handle a request fails, the client
- gets an error message and Privoxy continues to listen for
- new requests right away.
-- The error messages in case of server-connection timeouts or
- prematurely closed server connections are now template-based.
-- If zlib support isn't compiled in, Privoxy no longer tries to
- filter compressed content unless explicitly asked to do so.
-- In case of connections that are denied based on ACL directives,
- the memory used for the client IP is no longer leaked.
-- Fixed another small memory leak if the client request times out
- while waiting for client headers other than the request line.
-- The client socket is kept open until the server socket has
- been marked as unused. This should increase the chances that
- the still-open connection will be reused for the client's next
- request to the same destination. Note that this only matters
- if connection-sharing is enabled.
-- A TODO list has been added to the source tarball to give potential
- volunteers a better idea of what the current goals are. Donations
- are still welcome too: http://www.privoxy.org/faq/general.html#DONATE
-
-*** Version 3.0.12 ***
-
-- The socket-timeout option now also works on platforms whose
- select() implementation modifies the timeout structure.
- Previously the timeout was triggered even if the connection
- didn't stall. Reported by cyberpatrol.
-- The Connection: keep-alive code properly deals with files
- larger than 2GB. Previously the connection was closed too
- early.
-- The content length for files above 2GB is logged correctly.
-- The user-manual directive on the show-status page links to
- the documentation location specified with the directive,
- not to the Privoxy website.
-- When running in daemon mode, Privoxy doesn't log anything
- to the console unless there are errors before the logfile
- has been opened.
-- The show-status page prints warnings about invalid directives
- on the same line as the directives themselves.
-- Fixed several justified (but harmless) compiler warnings,
- mostly on 64 bit platforms.
-- The mingw32 version explicitly requests the default charset
- to prevent display problems with some fonts available on more
- recent Windows versions. Patch by Burberry.
-- The mingw32 version uses the Privoxy icon in the alt-tab
- windows. Patch by Burberry.
-- The timestamp and the thread id is omitted in the "Fatal error"
- message box on mingw32.
-- Fixed two related mingw32-only buffer overflows. Triggering
- them required control over the configuration file, therefore
- this isn't seen as a security issue.
-- In verbose mode, or if the new option --show-skipped-tests
- is used, Privoxy-Regression-Test logs skipped tests and the
- skip reason.
-
-*** Version 3.0.11 ***
-
-- On most platforms, outgoing connections can be kept alive and
- reused if the server supports it. Whether or not this improves
- things depends on the connection.
-- When dropping privileges, membership in supplementary groups
- is given up as well. Not doing that can lead to Privoxy running
- with more rights than necessary and violates the principle of
- least privilege. Users of the --user option are advised to update.
- Thanks to Matthias Drochner for reporting the problem,
- providing the initial patch and testing the final version.
-- Passing invalid users or groups with the --user option
- didn't lead to program exit. Regression introduced in 3.0.7.
-- The match all section has been moved from default.action
- to a new file called match-all.action. As a result the
- default.action no longer needs to be touched by the user
- and can be safely overwritten by updates.
-- The standard.action file has been removed. Its content
- is now part of the default.action file.
-- In some situations the logged content length was slightly too low.
-- Crunched requests are logged with their own log level.
- If you used "debug 1" in the past, you'll probably want
- to additionally enable "debug 1024", otherwise only passed
- requests will be logged. If you only care about crunched
- requests, simply replace "debug 1" with "debug 1024".
-- The crunch reason has been moved to the beginning of the
- crunch message. For HTTP URLs, the protocol is logged as well.
-- Log messages are shortened by printing the thread id on its
- own (as opposed to putting it inside the string "Privoxy()").
-- The config option socket-timeout has been added to control
- the time Privoxy waits for data to arrive on a socket.
-- Support for remote toggling is controlled by the configure
- option --disable-toggle only. In previous versions it also
- depended on the action editor and thus configuring with the
- --disable-editor option would disable remote toggling support
- as well.
-- Requests with invalid HTTP versions are rejected.
-- The template symbol @date@ can be used to include a date(1)-like
- time string. Initial patch submitted by Endre Szabo.
-- Responses from shoutcast servers are accepted again.
- Problem reported and fix suggested by Stefan.
-- The hide-forwarded-for-headers action has been replaced with
- the change-x-forwarded-for{} action which can also be used to
- add X-Forwarded-For headers. The latter functionality already
- existed in Privoxy versions prior to 3.0.7 but has been removed
- as it was often used unintentionally (by not using the
- hide-forwarded-for-headers action).
-- A "clear log" view option was added to the mingw32 version
- to clear out all of the lines in the Privoxy log window.
- Based on a patch submitted by T Ford.
-- The mingw32 version uses "critical sections" now, which prevents
- log message corruption under load. As a side effect, the
- "no thread-safe PRNG" warning could be removed as well.
-- The mingw32 version's task bar icon is crossed out and
- the color changed to gray if Privoxy is toggled off.
-
-*** Version 3.0.10 ***
-
-- Ordinary configuration file changes no longer cause program
- termination on OS/2 if the name of the logfile hasn't been
- changed as well. This regression probably crept in with the
- logging improvements in 3.0.7. Reported by Maynard.
-- The img-reorder filter is less likely to mess up JavaScript code in
- img tags. Problem and solution reported by Glenn Washburn in #2014552.
-- The source tar ball now includes Privoxy-Log-Parser,
- a syntax-highlighter for Privoxy logs. For fancy screenshots see:
- http://www.fabiankeil.de/sourcecode/privoxy-log-parser/
- Documentation is available through perldoc(1).
-
-*** Version 3.0.9 beta ***
-
-- Added SOCKS5 support (with address resolution done by
- the SOCKS5 server). Patch provided by Eric M. Hopper.
-- The "blocked" CGI pages include a block reason that was
- provided as argument to the last-applying block action.
-- If enable-edit-actions is disabled (the default since 3.0.7 beta)
- the show-status page hides the edit buttons and explains why.
- Previously the user would get the "this feature has been disabled"
- message after using the edit button.
-- Forbidden CONNECT requests are treated like blocks by default.
- The now-pointless treat-forbidden-connects-like-blocks action
- has been removed.
-- Not enabling limit-connect now allows CONNECT requests to all ports.
- In previous versions it would only allow CONNECT requests to port 443.
- Use +limit-connect{443} if you think you need the old default behaviour.
-- The CGI editor gets turned off after three edit requests with invalid
- file modification timestamps. This makes life harder for attackers
- who can leverage browser bugs to send fake Referers and intend to
- brute-force edit URLs.
-- Action settings for multiple patterns in the same section are
- shared in memory. As a result these sections take up less space
- (and are loaded slightly faster). Problem reported by Franz Schwartau.
-- Linear white space in HTTP headers will be normalized to single
- spaces before parsing the header's content, headers split across
- multiple lines get merged first. This should prevent problems like:
- * letting the session-cookies-only action slip
- some Cookies through unmodified,
- * only suppressing the first line of a header,
- thus creating an invalid one, and
- * to incorrectly block headers with valid timestamps
- that weren't properly recognized.
- Headers that could trigger these problems are unlikely to appear
- in "normal" web traffic, but could be intentionally generated to
- fool some of Privoxy's header parsers.
-- Host information is gathered outside the main thread so it's less
- likely to delay other incoming connections if the host is misconfigured.
-- New config option "hostname" to use a hostname other than
- the one returned by the operating system. Useful to speed-up responses
- for CGI requests on misconfigured systems. Requested by Max Khon.
-- The CGI editor supports the "disable all filters of this type"
- directives "-client-header-filter", "-server-header-filter",
- "-client-header-tagger" and "-server-header-tagger".
-- Fixed false-positives with the link-by-url filter and URLs that
- contain the pattern "/jump/".
-- The less-download-windows filter no longer messes
- "Content-Type: application/x-shockwave-flash" headers up.
-- In the show-url-info page's "Final results" section active and
- inactive actions are listed separately. Patch provided by Lee.
-- The GNUmakefile supports the DESTDIR variable. Patch for
- the install target submitted by Radoslaw Zielinski.
-- Embedding the content of configuration files in the show-status
- page is significantly faster now. For a largish action file (1 MB)
- a speedup of about 2450 times has been measured. This is mostly
- interesting if you are using large action files or regularly use
- Privoxy-Regression-Test while running Privoxy through Valgrind,
- for stock configuration files it doesn't really matter.
-- If zlib support is unavailable and there are content
- filters active but the prevent-compression action is disabled,
- the show-url-info page includes a warning that compression
- might prevent filtering.
-- The show-url-info page provides an OpenSearch Description that
- allows to access the page through browser search plugins.
-- Custom client-header filters that rewrite the request line
- incorrectly no longer cause Privoxy to crash. Reported by din_a4.
-- The obsolete kill-popups action has been removed as the
- PCRS-based popup filters can do the same and are slightly
- less unreliable.
-- The inspect-jpegs action has been removed.
-- The send-wafer and send-vanilla-wafer actions have been removed.
- They weren't particular useful and their behaviour could be emulated
- with add-header anyway.
-- Privoxy-Regression-Test has been significantly improved.
-- Most sections in the default.action file contain tests for
- Privoxy-Regression-Test to verify that they are working as intended.
-- Parts of Privoxy have been refactored to increase maintainability.
-- Building with zlib (if available) is done by default.
-
-*** Version 3.0.8 ***
-
-- Fixed a small memory leak when listen-address only specifies the port.
-- The source tar balls now include Privoxy-Regression-Test which
- (upon other things) can be used to automatically detect some
- packaging problems. Packagers are welcome to give it a try.
-- Reverted a change in 3.0.7 that caused path patterns to be checked
- even if the host pattern match already failed. While this doesn't
- noticeable affect the performance, it makes it less likely to run
- out of stack space with overly-complex path patterns the user might
- have added.
-- Updated the msn, yahoo and google filters to work as advertised again.
-- The warning message shown by the show-status CGI page is easier to
- understand. Previously it wasn't clear that the error message
- is shown below the invalid directive. (Reported by Lee)
-- When regenerating Content-Disposition headers the more common
- spelling is used for the name. Previously it was written without caps.
-- Less confusing log message if the content type isn't overwritten
- because force-text-type wasn't used but the old type doesn't look
- like content that would be filtered normally.
-- Better log messages if the user tries to execute filters that
- don't exist.
-- Treat the non-standard Request-Range headers like standard range
- headers and suppress them if content filtering is enabled.
-- Prevent the log messages for CONNECT requests to unacceptable
- ports from printing the limit-connect argument as [null] if
- limit-connect hasn't been explicitly enabled.
-- Don't disable the mingw32 log window if the logfile directive
- isn't used. While it was an intentional change in 3.0.7 at least
- one user perceived it as a regression and the same effect can
- be achieved by disabling all debug directives.
-- Fixed two minor problems related to the win32 build process: a css
- file was not being in the installer and the trustfile comment in the
- config.txt referenced a nonexisting file
-- Minor documentation fixes.
-
-*** Version 3.0.7 beta ***
-
-- Added zlib support to filter content with gzip and deflate
- encoding. (Patch provided by Wil Mahan)
-- Dedicated filters and actions are used for header filtering.
- "filter-client-headers" and "filter-client-headers" are no longer
- supported, use server-header-filter{} and client-header-filter{}
- instead.
-- Tags can be used to change actions based on HTTP headers.
-- New server-header filter: less-download-windows.
-- New client-header taggers: css-requests, image-requests,
- client-ip-address, http-method, allow-post, complete-url,
- user-agent and privoxy-control.
-- New server-header taggers: content-type and privoxy-control.
-- The forward-override{} action allows to change the forwarding
- settings through the action files, for example based on client
- headers like the User-Agent, or the request origin.
-- Socks errors are no longer handled by the CGI page for
- DNS resolution failures.
-- CGI pages use favicons to signal whether they are error
- or control pages. This is useful if you rely heavily on
- browser tabs.
-- The show-url-info CGI page shows the forwarding settings.
-- "Crunch!" log messages (used when Privoxy answers requests
- by itself) now also contain the reason.
-- Allow to rewrite the request destination behind the client's back.
-- Fix socks requests on big-endian platforms. Patch provided by Song Weijia.
-- Fixes possible deadlocks and crashes on OpenBSD.
- Patch provided by Ralf Horstmann.
-- The CGI action editor allows to edit actionfiles with previously
- forbidden characters like dots.
-- New trust entries are saved with a comment that contains the
- trusted referring URL (Suggested by Daniel Griscom).
-- Filter descriptions are HTML encoded automatically.
-- New config option "split-large-forms" to work
- around a browser bug that caused IE6 and IE7 to ignore
- the Submit button on the edit-actions-for-url CGI page.
-- New config option "allow-cgi-request-crunching" to allow
- requests for Privoxy's CGI pages to be blocked, redirected
- or (un)trusted like ordinary requests.
-- Empty filter files no longer interrupt the filtering process
- prematurely and are correctly listed on the show-status CGI page.
-- New config option "accept-intercepted-requests" to combine
- Privoxy with any packet filter to build an intercepting proxy
- for HTTP/1.1 requests (and for HTTP/1.0 requests with Host header set).
-- fast-redirects{} catch redirects to https URLs as well.
-- redirect{s@foo@bar@} can be used to redirect to a rewritten
- version of the original URL.
-- Trap unsupported gopher proxy requests.
-- Fixed a bug in the User Manual delivery on Windows
- (mingw32 only). Images now show up correctly and HTML
- pages are no longer padded with garbage data.
-- Fixed several minor memory leaks, most of them discovered with Valgrind.
-- Only unlink the pidfile if it's actually used.
-- Retries after connection problems with forced requests
- aren't blocked again.
-- On Unix SIGABRT causes a core dump as expected and is no
- longer treated as normal shutdown signal.
-- The "access denied" CGI page is more descriptive and
- allows retries to circumvent the referrer check.
-- Updated PCRS to handle unexpected PCRE errors properly.
- Fixed crashes that could occur if Privoxy was build
- with external PCRE versions newer than Privoxy's internal
- one. (Reported by Chung-chieh Shan)
-- Fixed crashes with null bytes in PCRS replacement strings
- (Patch provided by Felix Gröbert).
-- Fixed crashes with header time randomization on mingw32.
-- The CGI style sheet is no longer delivered if the referring
- page isn't a Privoxy CGI page. This prevents a JavaScript-based
- Privoxy detection "attack". Note that detecting Privoxy is
- still possible through other ways and Privoxy was never intended
- to be invisible anyway.
-- Added support for AmigaOS 4, fixed build for AmigaOS 3.x.
-- The show-url-info CGI page displays a warning if Privoxy
- is currently toggled off.
-- The show-status CGI page suppresses the edit button
- for action files if Privoxy has no write access.
-- Most CGI error pages react properly to HEAD requests.
-- Requests with RFC 3253 HTTP methods (used by Subversion)
- are accepted. (Patch provided by Petr Kadlec)
-- New config option "templdir" to change the location
- of the CGI templates to make sure customized templates
- aren't "updated".
-- Better handling of "HTTP/1.1 100 Continue" responses.
-- The background of the PNG pattern is transparent.
-- Fixed XML syntax errors caused by banners-by-size and banners-by-url.
-- Fixed crashes and possible action file corruptions
- when lines containing hashes are written through the CGI editor.
-- Supports dynamic filters which can contain variables.
-- Supports tags to change the actions based on client or server headers.
-- Incorrect actions are logged before program termination.
-- The "actionsfile" syntax in the configuration file is consistent
- with the rest of the configuration options and requires the
- whole file name. This is an incompatible change, if you use
- an old configuration file you might have to append ".action"
- to your "actionsfile" directives.
-- With the configuration file option "enforce-blocks" the
- "go there anyway" mechanism can be disabled without recompiling
- Privoxy.
-- More precise error messages in case of incorrect acl syntax.
-- Logs a warning if filtering is enabled but impossible due
- to lack of zlib support or use of the prevent-compression action.
-- Less noisy handling of Cookie:" and "Connection:" headers.
-- Improved error messages in case of connection problems.
-- Fix a command-line-parsing bug that was introduced before 3.0.5
- beta and caused Privoxy to treat the last argument as configuration
- file if no configuration file was specified.
-- Treat unknown command line options as fatal errors instead
- of silently ignoring them.
-- Use string functions with length checks more often.
-- Don't log CONNECT requests twice.
-- Allow to log the source address for ACL-related connection drops.
-- Don't ignore applying filters if the server didn't
- specify a Content-Type. Bug reported by Amuro Namie.
-- Rejected CONNECT requests are logged with log level info
- (enabled by default) and the reason for the block.
-- New command line option "--pre-chroot-nslookup hostname" to
- intialize the resolver library before chroot'ing. On some systems this
- reduces the number of files that must be copied into the chroot tree.
- (Patch provided by Stephen Gildea)
-- Fix a long-standing memory corruption bug that could cause
- Privoxy to overwrite a single byte in memory it didn't explicitly
- allocate (but that probably was allocated anyway due to bucket size).
-- Send template-based CGI pages as HTTP/1.1 unless the client
- asked for HTTP/1.0.
-- Let the first line in connection established responses
- end in \r\n as required by RFC1945. Reported by Bert van Leeuwen.
-- If no log file has been specified, disable logging instead of logging
- to stderr.
-- Don't block stderr when in daemon mode.
-- Ignore missing zero-chunks when filtering chunk-encoded content.
- Earlier Privoxy versions would buffer and then forward the content
- unmodified which caused some browsers to simply show empty pages.
-- Fix double free in cgi_edit_actions_list(). Reported by Venustech AD-LAB.
-- The code to add X-Forwarded-For headers when the hide-forwarded-for-headers
- action isn't being used has been removed.
-- Fixed trustfile feature which previously didn't work without FEATURE_TOGGLE.
- Reported by Lee.
-- Minor code clean-ups, filter and action file updates.
- (Some of them reported by Davide Alberani, Markus Elfring,
- Stefan Huehner and Adam Piggott)
-
-*** Version 3.0.6 ***
-
-- New content filters: no-ping, google, msn, yahoo and blogspot.
-- New header filters: x-httpd-php-to-html, html-to-xml, xml-to-html
- and hide-tor-exit-notation.
-- The special header "X-Filter: No" now disables header filtering as well.
-- Improved the filters img-reorder, js-annoyances, webbugs,
- banners-by-size, banners-by-link and ie-exploits to make them
- less likely to break anything.
-- Removed outdated URL patterns in default.action and added new ones.
-- Added redirection from http://p.p/user-manual to http://p.p/user-manual/
-- Changed webinterface default values for hide-user-agent, hide-referrer
- and set-image-blocker.
-
-*** Version 3.0.5 beta ***
-
-- Windows version can be installed/started as a service.
-- Windows icon stays blue when Privoxy is idle, green when busy.
-- Integrated Fabian Keil's extensive patch. See:
- http://www.fabiankeil.de/sourcecode/privoxy/. Includes the
- following new or significantly improved actions (among many
- other improvements):
-
- content-type-overwrite{}
- crunch-client-header{string}
- crunch-if-none-match
- crunch-server-header{string}
- fast-redirects{check-decoded-url}
- filter-client-headers
- filter-server-headers
- force-text-mode
- handle-as-empty-document
- hide-accept-language{}
- hide-content-disposition{}
- hide-if-modified-since
- hide-referrer{conditional-block}
- overwrite-last-modified{}
- redirect{URL}
- treat-forbidden-connects-like-blocks
-
-- Standard-compliant clients are prevented from displaying cached
- copies of Privoxy's error messages after the cause of the problem
- has gone.
-- Improved DNS error handling.
-- Multiple filter files can now be specified in config.
-- Added jpeg filtering to defend against MS jpeg vulnerability MS04-028
- with the new inspect-jpegs action.
-- Removed the "arbitrary" 1000 filter limit - addresses tracker #911950
-- Thanks to Jindrich Makovicka for a race condition fix for the log
- file. The race condition remains for non-pthread implementations.
- Reference patch #1175720. Various other logging enhancements.
-- A pile of assorted bug fixes, memory leaks, enhancements, etc.
-- Moved Actions file reporting mechanism to SF tracker.
-- Two new options for config: enable-remote-http-toggle and
- forwarded-connect-retries.
-- Trap unsupported FTP requests.
-- Let text/xml be filtered.
-- Numerous updates to default.action
-- Increase the compiled in limit of trusted referrers from 64 to 512
- (for trustfile users).
-
-*** Version 3.0.3 ***
-
-- Fixed yet another two memory leaks. Process growth seems stopped now.
-- Further tightened security against malicious toggle-off links.
-- Excluded text/plain MIME types from filtering. This fixes a
- couple of client-crashing, download corruption and
- Privoxy performance issues, whose root cause lies in
- web servers labelling content of unknown type as text/plain.
-- Assorted fixes for POSIX compliance, signal handling, graceful
- termination, compiler warnings, OSX support, Win32 systray,
- error logging, hostname wildcards, correct detection of NetBSD.
-- Workarounds for client (iTunes etc) and server (PHP < 4.2.3) bugs
- including the notorious "blank page" problem.
-- Various filter improvements; most notably the unsolicited-popups
- filter became less destructive
-- Major revamp of the actions file
-
-*** Version 3.0.2 ***
-
-- Fixed two memory leaks, one serious
-- Fixed bug in pcrs which could cause crashes with user-defined filters
-- Fixed bug in domain name matching
-- Assorted small fixes (Win32 menu, CGI URL editor, ..)
-- Added basic support for the OPTIONS and TRACE http methods
-- Added workaround for Bug in Mac OSX that made Privoxy crash occasionally
-- Refined the default action file through >400 items of user feedback
-- Filter changes:
- - Assorted refinements, optimizations and fixes in the js-annoyances,
- img-reorder, banners-by-size, banners-by-link, webbugs, refresh-tags,
- html-annoyances, content-cookies and fun filters
- - Replaced filter "popups" by choice between two modes:
- - "unsolicited-popups" tries to catch only the unsolicited ones
- - "all-popups" tries to kill them all (as before)
- - New filter "tiny-textforms" Help those tiny or hard-wrap textareas.
- - New filter "jumping-windows" that prevents windows from resizing
- and moving themselves
- - New filter "demoronizer" which fixes MS's abuse of std charsets
- (common cases anyway).
- - Replaced "nimda" with more general "ie-exploits" filter in which
- all filters for exploits shall be collected
-- Improved cookie logging
-- Rewrote make install target. Added uninstall and install-strip
- targets.
-- Fixed a potential (application-level, NOT OS-level!) security
- problem involving remote toggling and action file manipulation
- by mailicious websites.
-- Added ability to chroot (thanks to Sviatoslav Sviridov)
-- Added more action aliases for prehistoric action names
-- Add Slackware support to Makefile.
-
-*** Version 3.0 ***
-
-- Fixed Windows startmenu items, log window and tray icon menus.
-- Added warning for bogus install target
-- Added quicktime-kioskmode filter and improved frameset-borders
-- Updated default.action based on latest feedback
-- New PDF doc build process
-- Add a user contrib module to cvs:
- http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/ijbswa/contrib/
-
-*** Version 2.9.18 ***
-
-- Added workaround for IE bug that broke CGI interface
-- Bugfix: String actions now reliably editable through CGI interface
-- Three filters fixed (again!)
-- Assorted small fixes and doc enhancements
-
-*** Version 2.9.16 ***
-
-- Major revamp of default.action to get rid of years of cruft.
-- Same for default.filter
-- Re-design and major improvements to the CGI editor interface.
-- Address spurious 'out of memory' error due to incorrect file permissions.
-- Impose buffer limits while reading client and server headers.
-- Better memory and CPU optimization.
-- Add Conectiva Linux package.
-- user-manual directive added to config for help links from within CGI
- editor.
-- Multiple actions files can now be specified in config.
-- Actions files are changed to: default.action, standard.action, and
- user.action. user.action is for personal/local configuration.
-- The usual many small and miscellaneous bug and security fixes.
-
-*** Version 2.9.14 beta ***
-
-- Fix Solaris compile problem (gateway.h and filters.h)
-- Makefile fixes for Solaris, FreeBSD (?)
-- Fix build failure where certain features were disabled.
-- 'blocked-compact' template is removed. Various CGI improvements,
- including an adaptive 'blocked' template.
-- Various tweaks for actions file to get ready for stable 3.0
-- Included a 'Bookmarklet' and PHP scripts for reporting actions file
- problems via web interface at privoxy.org. Accessed via internal CGIs.
-- Include cgi-style.css for templates.
-- #include mechansim for common text in templates
-- Various other minor fixes.
-
-*** Version 2.9.13 beta ***
-
-- *NEWS*: The project has been renamed to Privoxy! The new name is
- reflected throughout (file locations, etc).
-- ijb.action is now default.action. re_filterfile is now
- default.filter.
-- http://i.j.b/ is now http://p.p/
-- The 'logo' option for replacing ad iamges is removed now. 'Pattern'
- (checkerboard) is now the default.
-- RPM spec file make over.
-
-
-*** Version 2.9.12 beta ***
-
-- **READ**: The default listening PORT is NOW 8118!!! Changed from
- 8000 due to conflict with NAS (Network Audio Server, whatever that
- is.)
-- More CGI actions editor fixes and improvements.
-- Win32 command line fix ups.
-- re_filterfile now has modular sections that can be activated on a
- per site basis. Some new goodies there too.
-- +filter now takes arguments to match FILTER sections in re_filterfile
- for even more flexibility.
-- Added a new image blocker option: +image-blocker{pattern}, which
- displays a checkerboard patthern and scales better than the logo.
-- PNG images will be used in place of GIF for JB built-in images
- if configured with --enable-no-gif.
-- Clean up compiler warnings (mostly).
-- Improved handling of failed DNS lookups & diagnostics for failed bind
- to listen socket
-- Made --no-daemon mode log to tty instead of logfile.
-- Various spec file and init script cleanups and improvements (Redhat and
- SuSE).
-- CGI Editor works on OS/2 now.
-- Fix restart failure where sockets were in TIME_WAIT.
-- Fixes for actions cgi editor, make sure we have right file.
-- A --pidfile command line option now, in addition to --help,
- --version, --no-daemon, --user and configfile. --no-daemon replaces
- the former -d option and _DEBUG define. --user will drop privileges
- to the specified user.
-- Signal handling cleanups (*nix).
-- CGI actions editor improvements and fixes.
-- Error handling improvements, especially out of memory.
-- Default re_filterfile fix that caused spurious IJB logos
- (instead of 'blank').
-- configure.in threading fixes for Solaris.
-- Various other minor fixes.
-
-
-*** Version 2.9.11 beta Changes ***
-
-- Add "session" cookie concept where cookies exist for the life
- of that browser session only (ie never goes to disk).
-- Checks for correct header length.
-- Fix user:pass@host.domain.com auth bug.
-- Better signal handling on *nix.
-- Fix CFLAGS hard-coded in configure.in
-- Fix threading bug re: gethostbyname() that caused random
- URLs to fail in some cases.
-
-
-*** Version 2.9.11 Alpha Changes ***
-
-- A web-based editor for the actions file is included (go to http://i.j.b/).
-- Web-based toggle IJB on/off support.
-- Cookie handling has changed - the new +no-cookies-keep feature is now the
-default.
-- actionsfile is renamed to ijb.action.
-- junkbstr.txt is now config.txt on Win32.
-- Support for running IJB as a UNIX daemon process has improved.
-- Unix daemon now returns error code on failed start.
-- Timestamps in logfile and jarfile now.
-- Fix for the Netscape bug reintroduced in 2.9.9.
-- make should now abort if gmake (GNU make) not present.
-- Many other minor bugfixes
-- Start a ChangeLog :)
-
-
-
-*** Version 2.9.3 pre-Alpha Changes ***
-
-- Amiga support (completely untested by me - I don't have an Amiga)
-- "tinygif 3" support (redirects blocked images to a specified URL, so
-the browser doesn't have to load and cache many copies of the same
-image).
-- one case where there were both local and global "referrer" variables
-(yuck!) clarified by renaming the local one to "refer".
-- Fixed some places where close() was used instead of close_socket().
-Thanks to Jörg Strohmayer (joergs at users.sourceforge.net) for these.
-- Temporary hack to get FORCE_LOAD to work with IE. I just lowercased the
-FORCE_LOAD_PREFIX. Needs fixing properly.
-- Most URLs hardcoded into Junkbuster were changed to go through a script
-e.g. http://ijbswa.sourceforge.net/redirect.php?v=2.9.3&to=faq
-The only other URLs left are the GNU GPL:
- http://www.fsf.org/copyleft/gpl.html
-and the home page:
- http://ijbswa.sourceforge.net/
-... and various URLs which will be intercepted by Junkbuster anyway.
-TODO: Still need to do something with the URLs in Junkbuster Corp's
-copyright/trademark notice on the bottom of the show-proxy-args page.
-- PCRE or GNU Regex is now a #define option.
-
-
-*** Version 2.9.2 pre-Alpha Changes ***
-
-- Andreas applied the latest version of the FORCE patch.
-
-
-*** Version 2.9.1 pre-Alpha Changes ***
-
-- in parsers.c, fixed two #ifdef FORCE to #ifdef FORCE_LOAD
-(BTW: I think FORCE is precise enough, since loading remote
-data is the whole purpose of a proxy..)
-- Set the FORCE_PREFIX (back) to 'IJB-FORCE-LOAD-'. While 'noijb.'
-is more elegant and looks like a hostname in the URL, it doesn't
-make clear to the inexperienced user that the proxy is bypassed. It
-also has a higher name collision risk.
-- Filled in the function header templates for my functions in
-parsers.c (again). They obviously got lost in our current
-patch war ;-)
-- Cut the credit for the §-referrer-option from the config file,
-that Stefan had placed there.
-- Improved the re_filterfile
-
-
-*** Version 2.9.0 pre-Alpha Changes ***
-
-- Now use PCRE, not GNU REGEX. I have not yet had chance to check the
-syntax of the block/image/cookie file to ensure that they match what
-is expected - however they seem to work.
-- Replaced "configure" script with one generated by "autoconf". Also
-use a header "config.h" (was ijbconfig.h in my previous release) for
-the #defines. "config.h" is now generated with "autoheader" from
-"acconfig.h" and "configure.in". (Note that to install you do not
-need autoconf or autoheader - just run "./configure".)
-To see command-line options, run "./configure --help".
-This is my first ever autoconf script, so it has some rough edges
-(how PCRE is handled is the roughest).
-- Error logging code replaced with new module errlog.c, based on the
-one from JunkbusterMT (but with the threading code removed).
-- Most of Rodney's 0.21 and 0.21A patches applied. (Marked *). I did not
-apply all of these, since I had already independently done conditional
-popup file, conditional image file, and integration of popup code.
-- ACL, Jar and trust files conditionally compiled.
-- New source file headers.
-- Various cosmetic changes. (But I have not consistently ordered the
-config files - I think that's worthwhile, but it's 1am and I want to
-get this released!)
-- RCS tags on .h files.
-- RCS tags are const char[] rather than const char *. (Saves 4 bytes
-per tag ;-)
-- VC++ project files renamed to vc_junkbuster.*.
-- show-proxy-args now shows status of all conditionals, not just REGEX
-- Various functions moved around. Most notably all the system-specific
-sockets code which was spread between jcc.c, bind.c, and connect.c,
-has been moved to "jbsockets.c". The non-system-specific code from
-connect.c and socks4.c has been movet to "gateway.c". Also, the
-config file loader and the global variables it writes to have been
-moved to "loadcfg.c". (Maybe this should go into loaders.c?)
-And candidate for the "worst filename ever" award is "miscutil.c",
-which contains, well, miscellaneous utility functions like zalloc.
-(Suggestions for a better name for this file are welcome!)
-- Loaders now use a common function to read a line and skip comments,
-and this function also stores the proxy_args.
-- Added ./junkbuster --help (Not for Win32 GUI)
-- Added ./junkbuster --version (Not for Win32 GUI)
-- Win32 resources are now all marked as "U.S. English", rather than
-being a mix of "U.S. English", "U.K. English" and "Irish English".
-- Version number changes to 2.9.0
-
-
-----------------------------------------------------------------------
-Copyright : Written by and Copyright (C) 2001-2013 the
- Privoxy team. http://www.privoxy.org/
-
- Based on the Internet Junkbuster originally written
- by and Copyright (C) 1997 Anonymous Coders and
- Junkbusters Corporation. http://www.junkbusters.com/
-
- This program is free software; you can redistribute it
- and/or modify it under the terms of the GNU General
- Public License as published by the Free Software
- Foundation; either version 2 of the License, or (at
- your option) any later version.
-
- This program is distributed in the hope that it will
- be useful, but WITHOUT ANY WARRANTY; without even the
- implied warranty of MERCHANTABILITY or FITNESS FOR A
- PARTICULAR PURPOSE. See the GNU General Public
- License for more details.
-
- The GNU General Public License should be included with
- this file. If not, you can view it at
- http://www.gnu.org/copyleft/gpl.html
- or write to the Free Software Foundation, Inc., 59
- Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+++ /dev/null
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.
+++ /dev/null
-/*********************************************************************
- *
- * File : $Source: /cvsroot/ijbswa/current/README,v $
- *
- * Purpose : README file to give a short intro.
- *
- * Copyright : Written by and Copyright (C) 2001-2011 the
- * Privoxy team. http://www.privoxy.org/
- *
- * Based on the Internet Junkbuster originally written
- * by and Copyright (C) 1997 Anonymous Coders and
- * Junkbusters Corporation. http://www.junkbusters.com
- *
- * This program is free software; you can redistribute it
- * and/or modify it under the terms of the GNU General
- * Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at
- * your option) any later version.
- *
- * This program is distributed in the hope that it will
- * be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU General Public
- * License for more details.
- *
- * The GNU General Public License should be included with
- * this file. If not, you can view it at
- * http://www.gnu.org/copyleft/gpl.html
- * or write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- * USA
- *
- *********************************************************************/
-
-This README is included with Privoxy 3.0.21. See http://www.privoxy.org/ for
-more information. The current code maturity level is "stable".
-
--------------------------------------------------------------------------------
-
-Privoxy is a non-caching web proxy with advanced filtering capabilities for
-enhancing privacy, modifying web page data and HTTP headers, controlling
-access, and removing ads and other obnoxious Internet junk. Privoxy has a
-flexible configuration and can be customized to suit individual needs and
-tastes. It has application for both stand-alone systems and multi-user
-networks.
-
-Privoxy is Free Software and licensed under the GNU GPLv2.
-
-Privoxy is an associated project of Software in the Public Interest (SPI).
-
-Helping hands and donations are welcome:
-
- * http://www.privoxy.org/faq/general.html#PARTICIPATE
-
- * http://www.privoxy.org/faq/general.html#DONATE
-
--------------------------------------------------------------------------------
-
-1. CHANGES
-
-For a list of changes in this release, please have a look at the "ChangeLog",
-the "What's New" section or the "Upgrader's Notes" in the User Manual.
-
--------------------------------------------------------------------------------
-
-2. INSTALL
-
-See the INSTALL file in this directory, for installing from raw source, and the
-User Manual, for all other installation types.
-
--------------------------------------------------------------------------------
-
-3. RUN
-
-privoxy [--help] [--version] [--no-daemon] [--pidfile PIDFILE] [--user USER
-[.GROUP]] [--chroot] [--pre-chroot-nslookup HOSTNAME ][config_file]
-
-See the man page or User Manual for an explanation of each option, and other
-configuration and usage issues.
-
-If no config_file is specified on the command line, Privoxy will look for a
-file named 'config' in the current directory (except Win32 which will look for
-'config.txt'). If no config_file is found, Privoxy will fail to start.
-
--------------------------------------------------------------------------------
-
-4. CONFIGURATION
-
-See: 'config', 'default.action', 'user.action', 'default.filter', and
-'user.filter'. 'user.action' and 'user.filter' are for personal and local
-configuration preferences. These are all well commented. Most of the magic is
-in '*.action' files. 'user.action' should be used for any actions
-customizations. On Unix-like systems, these files are typically installed in /
-etc/privoxy. On Windows, then wherever the executable itself is installed.
-There are many significant changes and advances from earlier versions. The User
-Manual has an explanation of all configuration options, and examples: http://
-www.privoxy.org/user-manual/.
-
-Be sure to set your browser(s) for HTTP/HTTPS Proxy at <IP>:<Port>, or whatever
-you specify in the config file under 'listen-address'. DEFAULT is
-127.0.0.1:8118. Note that Privoxy ONLY proxies HTTP (and HTTPS) traffic. Do not
-try it with FTP or other protocols for the simple reason it does not work.
-
-The actions list can be configured via the web interface accessed via http://
-p.p/, as well other options.
-
--------------------------------------------------------------------------------
-
-5. DOCUMENTATION
-
-There should be documentation in the 'doc' subdirectory. In particular, see the
-User Manual there, the FAQ, and those interested in Privoxy development, should
-look at developer-manual.
-
-The source and configuration files are all well commented. The main
-configuration files are: 'config', 'default.action', and 'default.filter'.
-
-Included documentation may vary according to platform and packager. All
-documentation is posted on http://www.privoxy.org, in case you don't have it,
-or can't find it.
-
--------------------------------------------------------------------------------
-
-6. CONTACTING THE DEVELOPERS, BUG REPORTING AND FEATURE REQUESTS
-
-We value your feedback. In fact, we rely on it to improve Privoxy and its
-configuration. However, please note the following hints, so we can provide you
-with the best support.
-
--------------------------------------------------------------------------------
-
-6.1. Please provide sufficient information
-
-A lot of support requests don't contain enough information and can't be solved
-without a lot of back and forth which causes unnecessary delays. Reading this
-section should help to prevent that.
-
-Before contacting us to report a problem, please try to verify that it is a
-Privoxy problem, and not a browser or site problem or documented behaviour that
-just happens to be different than what you expected. If unsure, try toggling
-off Privoxy, and see if the problem persists.
-
-If you are using your own custom configuration, please try the default
-configuration to see if the problem is configuration related. If you're having
-problems with a feature that is disabled by default, please ask around on the
-mailing list if others can reproduce the problem.
-
-If you aren't using the latest Privoxy version, the problem may have been found
-and fixed in the meantime. We would appreciate if you could take the time to
-upgrade to the latest version and verify that the problem still exists.
-
-Please be sure to provide the following information when reporting problems or
-requesting support:
-
- * The exact Privoxy version you are using.
-
- * The operating system and versions you run Privoxy on, e.g. Windows XP SP2.
-
- * The name, platform, and version of the browser you were using (e.g.
- Internet Explorer v5.5 for Mac).
-
- * The URL where the problem occurred, or some way for us to duplicate the
- problem (e.g. http://somesite.example.com/?somethingelse=123).
-
- * Whether your version of Privoxy is one supplied by the Privoxy developers
- via SourceForge, or if you got your copy somewhere else.
-
- * Whether you are using Privoxy together with another proxy such as Tor. If
- so, please temporary disable the other proxy to see if the symptoms change.
-
- * Whether you are using a personal firewall product. If so, does Privoxy work
- without it?
-
- * Any other pertinent information to help identify the problem such as config
- or log file excerpts (yes, you should have log file entries for each action
- taken). To get a meaningful logfile, please make sure that the logfile
- directive is being used and the following debug options are enabled (all of
- them):
-
- debug 1 # Log the destination for each request Privoxy let through. See also debug 1024.
- debug 2 # show each connection status
- debug 4 # show I/O status
- debug 8 # show header parsing
- debug 128 # debug redirects
- debug 256 # debug GIF de-animation
- debug 512 # Common Log Format
- debug 1024 # Log the destination for requests Privoxy didn't let through, and the reason why.
- debug 4096 # Startup banner and warnings.
- debug 8192 # Non-fatal errors
-
- If you are having trouble with a filter, please additionally enable
-
- debug 64 # debug regular expression filters
-
- If you are using Privoxy 3.0.17 or later and suspect that it interprets the
- request or the response incorrectly, please enable
-
- debug 32768 # log all data read from the network
-
- It's easy for us to ignore log messages that aren't relevant but missing
- log messages may make it impossible to investigate a problem. If you aren't
- sure which of the debug directives are relevant, please just enable all of
- them and let us worry about it.
-
- Note that Privoxy log files may contain sensitive information so please
- don't submit any logfiles you didn't read first. You can mask sensitive
- information as long as it's clear that you removed something.
-
-You don't have to tell us your actual name when filing a problem report, but if
-you don't, please use a nickname so we can differentiate between your messages
-and the ones entered by other "anonymous" users that may respond to your
-request if they have the same problem or already found a solution. Note that
-due to spam the trackers may not always allow to post without being logged into
-SourceForge. If that's the case, you are still free to create a login that
-isn't directly linked to your name, though.
-
-Please also check the status of your request a few days after submitting it, as
-we may request additional information. If you use a SF id, you should
-automatically get a mail when someone responds to your request. Please don't
-bother to add an email address when using the tracker. If you prefer to
-communicate through email, just use one of the mailing lists directly.
-
-If you are new to reporting problems, you might be interested in How to Report
-Bugs Effectively.
-
-The appendix of the Privoxy User Manual also has helpful information on
-understanding actions, and action debugging.
-
--------------------------------------------------------------------------------
-
-6.2. Get Support
-
-For casual users, our support forum at SourceForge is probably best suited:
-http://sourceforge.net/tracker/?group_id=11118&atid=211118
-
-All users are of course welcome to discuss their issues on the users mailing
-list, where the developers also hang around.
-
-Please don't send private support requests to individual Privoxy developers,
-either use the mailing lists or the support trackers.
-
-If you have to contact a Privoxy developer directly for other reasons, please
-send a real mail and do not bother with SourceForge's messaging system. Answers
-to SourceForge messages are usually bounced by SourceForge's mail server in
-which case the developer wasted time writing a response you don't get. From
-your point of view it will look like your message has been completely ignored,
-so this is frustrating for all parties involved.
-
-Note that the Privoxy mailing lists are moderated. Posts from unsubscribed
-addresses have to be accepted manually by a moderator. This may cause a delay
-of several days and if you use a subject that doesn't clearly mention Privoxy
-or one of its features, your message may be accidentally discarded as spam.
-
-If you aren't subscribed, you should therefore spend a few seconds to come up
-with a proper subject. Additionally you should make it clear that you want to
-get CC'd. Otherwise some responses will be directed to the mailing list only,
-and you won't see them.
-
--------------------------------------------------------------------------------
-
-6.3. Reporting Problems
-
-"Problems" for our purposes, come in two forms:
-
- * Configuration issues, such as ads that slip through, or sites that don't
- function properly due to one Privoxy "action" or another being turned "on".
-
- * "Bugs" in the programming code that makes up Privoxy, such as that might
- cause a crash.
-
--------------------------------------------------------------------------------
-
-6.3.1. Reporting Ads or Other Configuration Problems
-
-Please send feedback on ads that slipped through, innocent images that were
-blocked, sites that don't work properly, and other configuration related
-problem of default.action file, to http://sourceforge.net/tracker/?group_id=
-11118&atid=460288, the Actions File Tracker.
-
-New, improved default.action files may occasionally be made available based on
-your feedback. These will be announced on the ijbswa-announce list and
-available from our the files section of our project page.
-
--------------------------------------------------------------------------------
-
-6.3.2. Reporting Bugs
-
-Please report all bugs through our bug tracker: http://sourceforge.net/tracker
-/?group_id=11118&atid=111118.
-
-Before doing so, please make sure that the bug has not already been submitted
-and observe the additional hints at the top of the submit form. If already
-submitted, please feel free to add any info to the original report that might
-help to solve the issue.
-
--------------------------------------------------------------------------------
-
-6.4. Request New Features
-
-You are welcome to submit ideas on new features or other proposals for
-improvement through our feature request tracker at http://sourceforge.net/
-tracker/?atid=361118&group_id=11118.
-
--------------------------------------------------------------------------------
-
-6.5. Mailing Lists
-
-If you prefer to communicate through email, instead of using a web interface,
-feel free to use one of the mailing lists. To discuss issues that haven't been
-completely diagnosed yet, please use the Privoxy users list. Technically
-interested users and people who wish to contribute to the project are always
-welcome on the developers list. You can find an overview of all Privoxy-related
-mailing lists, including list archives, at: http://sourceforge.net/mail/?
-group_id=11118.
-
+++ /dev/null
- Announcing Privoxy 3.0.21 stable
---------------------------------------------------------------------
-
-Privoxy 3.0.21 stable is a bug-fix release for Privoxy 3.0.20 beta.
-It also addresses two security issues that affect all previous
-Privoxy versions.
-
---------------------------------------------------------------------
-ChangeLog for Privoxy
---------------------------------------------------------------------
-*** Version 3.0.21 stable ***
-
-- Bug fixes:
- - On POSIX-like platforms, network sockets with file descriptor
- values above FD_SETSIZE are properly rejected. Previously they
- could cause memory corruption in configurations that allowed
- the limit to be reached.
- - Proxy authentication headers are removed unless the new directive
- enable-proxy-authentication-forwarding is used. Forwarding the
- headers potentionally allows malicious sites to trick the user
- into providing them with login information.
- Reported by Chris John Riley.
- - Compiles on OS/2 again now that unistd.h is only included
- on platforms that have it.
-
-- General improvements:
- - The show-status page shows the FEATURE_STRPTIME_SANITY_CHECKS status.
- - A couple of assert()s that could theoretically dereference
- NULL pointers in debug builds have been relocated.
- - Added an LSB info block to the generic start script.
- Based on a patch from Natxo Asenjo.
- - The max-client-connections default has been changed to 128
- which should be more than enough for most setups.
-
-- Action file improvements:
- - Block rover.ebay./ar.*\&adtype= instead of "/.*\&adtype=" which
- caused too man false positives.
- Reported by u302320 in #360284, additional feedback from Adam Piggott.
- - Unblock '.advrider.com/' and '/.*ADVrider'.
- Anonymously reported in #3603636.
- - Stop blocking '/js/slider\.js'.
- Reported by Adam Piggott in #3606635 and _lvm in #2791160.
-
-- Filter file improvements:
- - Added an iframes filter.
-
-- Documentation improvements:
- - The whole GPLv2 text is included in the user manual now,
- so Privoxy can serve it itself and the user can read it
- without having to wade through GPLv3 ads first.
- - Properly numbered and underlined a couple of section titles
- in the config that where previously overlooked due to a flaw
- in the conversion script. Reported by Ralf Jungblut.
- - Improved the support instruction to hopefully make it harder to
- unintentionally provide insufficient information when requesting
- support. Previously it wasn't obvious that the information we need
- in bug reports is usually also required in support requests.
- - Removed documentation about packages that haven't been provided
- in years.
-
-- Privoxy-Regression-Test:
- - Only log the test number when not running in verbose mode
- The position of the test is rarely relevant and it previously
- wasn't exactly obvious which one of the numbers was useful to
- repeat the test with --test-number.
-
-- GNUmakefile improvements:
- - Factor generate-config-file out of config-file to make testing
- more convenient.
- - The clean target now also takes care of patch leftovers.
-
-*** Version 3.0.20 beta ***
-
-- Bug fixes:
- - Client sockets are now properly shutdown and drained before being
- closed. This fixes page truncation issues with clients that aggressively
- pipeline data on platforms that otherwise discard already written data.
- The issue mainly affected Opera users and was initially reported
- by Kevin in #3464439, szotsaki provided additional information to track
- down the cause.
- - Fix latency calculation for shared connections (disabled by default).
- It was broken since their introduction in 2009. The calculated latency
- for most connections would be 0 in which case the timeout detection
- failed to account for the real latency.
- - Reject URLs with invalid port. Previously they were parsed incorrectly and
- characters between the port number and the first slash were silently
- dropped as shown by curl test 187.
- - The default-server-timeout and socket-timeout directives accept 0 as
- valid value.
- - Fix a race condition on Windows that could cause Privoxy to become
- unresponsive after toggling it on or off through the taskbar icon.
- Reported by Tim H. in #3525694.
- - Fix the compilation on Windows when configured without IPv6 support.
- - Fix an assertion that could cause debug builds to abort() in case of
- socks5 connection failures with "debug 2" enabled.
- - Fix an assertion that could cause debug builds to abort() if a filter
- contained nul bytes in the replacement text.
-
-- General improvements:
- - Significantly improved keep-alive support for both client and server
- connections.
- - New debug log level 65536 which logs all actions that were applied to
- the request.
- - New directive client-header-order to forward client headers in a
- different order than the one in which they arrived.
- - New directive tolerate-pipelining to allow client-side pipelining.
- If enabled (3.0.20 beta enables it by default), Privoxy will keep
- pipelined client requests around to deal with them once the current
- request has been served.
- - New --config-test option to let Privoxy exit after checking whether or not
- the configuration seems valid. The limitations noted in TODO #22 and #23
- still apply. Based on a patch by Ramkumar Chinchani.
- - New limit-cookie-lifetime{} action to let cookies expire before the end
- of the session. Suggested by Rick Sykes in #1049575.
- - Increase the hard-coded maximum number of actions and filter files from
- 10 to 30 (each). It doesn't significantly affect Privoxy's memory usage
- and recompiling wasn't an option for all Privoxy users that reached the
- limit.
- - Add support for chunk-encoded client request bodies. Previously
- chunk-encoded request bodies weren't guaranteed to be forwarded correctly,
- so this can also be considered a bug fix although chunk-encoded request
- bodies aren't commonly used in the real world.
- - Add support for Tor's optimistic-data SOCKS extension, which can reduce the
- latency for requests on newly created connections. Currently only the
- headers are sent optimistically and only if the client request has already
- been read completely which rules out requests with large bodies.
- - After preventing the client from pipelining, don't signal keep-alive
- intentions. When looking at the response headers alone, it previously
- wasn't obvious from the client's perspective that no additional responses
- should be expected.
- - Stop considering client sockets tainted after receiving a request with body.
- It hasn't been necessary for a while now and unnecessarily causes test
- failures when using curl's test suite.
- - Allow HTTP/1.0 clients to signal interest in keep-alive through the
- Proxy-Connection header. While such client are rare in the real world, it
- doesn't hurt and couple of curl tests rely on it.
- - Only remove duplicated Content-Type headers when filters are enabled.
- If they are not it doesn't cause ill effects and the user might not want it.
- Downgrade the removal message to LOG_LEVEL_HEADER to clarify that it's not
- an error in Privoxy and is unlikely to cause any problems in general.
- Anonymously reported in #3599335.
- - Set the socket option SO_LINGER for the client socket.
- - Move several variable declarations to the beginning of their code block.
- It's required when compiling with gcc 2.95 which is still used on some
- platforms. Initial patch submitted by Simon South in #3564815.
- - Optionally try to sanity-check strptime() results before trusting them.
- Broken strptime() implementations have caused problems in the past and
- the most recent offender seems to be FreeBSD's libc (standards/173421).
- - When filtering is enabled, let Range headers pass if the range starts at
- the beginning. This should work around (or at least reduce) the video
- playback issues with various Apple clients as reported by Duc in #3426305.
- - Do not confuse a client hanging up with a connection time out. If a client
- closes its side of the connection without sending a request line, do not
- send the CLIENT_CONNECTION_TIMEOUT_RESPONSE, but report the condition
- properly.
- - Allow closing curly braces as part of action values as long as they are
- escaped.
- - On Windows, the logfile is now written before showing the GUI error
- message which blocks until the user acknowledges it.
- Reported by Adriaan in #3593603.
- - Remove an unreasonable parameter limit in the CGI interface. The new
- parameter limit depends on the memory available and is currently unlikely
- to be reachable, due to other limits in both Privoxy and common clients.
- Reported by Andrew on ijbswa-users@.
- - Decrease the chances of parse failures after requests with unsupported
- methods were sent to the CGI interface.
-
-- Action file improvements:
- - Remove the comment that indicated that updated default.action versions
- are released on their own.
- - Block 'optimize.indieclick.com/' and 'optimized-by.rubiconproject.com/'
- - Unblock 'adjamblog.wordpress.com/' and 'adjamblog.files.wordpress.com/'.
- Reported by Ryan Farmer in #3496116.
- - Unblock '/.*Bugtracker'. Reported by pwhk in #3522341.
- - Add test URLs for '.freebsd.org' and '.watson.org'.
- - Unblock '.urbandictionary.com/popular'.
- - Block '.adnxs.com/'.
- - Block 'farm.plista.com/widgetdata.php'.
- - Block 'rotation.linuxnewmedia.com/'.
- - Block 'reklamy.sfd.pl/'. Reported by kacperdominik in #3399948.
- - Block 'g.adspeed.net/'.
- - Unblock 'websupport.wdc.com/'. Reported by Adam Piggot in #3577851.
- - Block '/openx/www/delivery/'.
- - Disable fast-redirects for '.googleapis.com/'.
- - Block 'imp.double.net/'. Reported by David Bo in #3070411.
- - Block 'gm-link.com/' which is used for email tracking.
- Reported by David Bo in #1812733.
- - Verify that requests to "bwp." are blocked. URL taken from #1736879
- submitted by Francois Marier.
- - Block '/.*bannerid='. Reported by Adam Piggott in #2975779.
- - Block 'cltomedia.info/delivery/' and '.adexprt.com/'.
- Anonymously reported in #2965254.
- - Block 'de17a.com/'. Reported by David Bo in #3061472.
- - Block 'oskar.tradera.com/'. Reported by David Bo in #3060596.
- - Block '/scripts/webtrends\.js'. Reported by johnd16 in #3002729.
- - Block requests for 'pool.*.adhese.com/'. Reported by johnd16 in #3002716.
- - Update path pattern for Coremetrics and add tests.
- Pattern and URLs submitted by Adam Piggott #3168443.
- - Enable +fast-redirects{check-decoded-url} for 'tr.anp.se/'.
- Reported by David Bo in #3268832.
- - Unblock '.conrad.se/newsletter/banners/'. Reported by David Bo in #3413824.
- - Block '.tynt.com/'. Reported by Dan Stahlke in #3421767.
- - Unblock '.bbci.co.uk/radio/'. Reported by Adam Piggott in #3569603.
- - Block requests to 'service.maxymiser.net/'.
- Reported by johnd16 in #3118401 (with a previous URL).
- - Disable fast-redirects for Google's "let's pretend your computer is
- infected" page.
- - Unblock '/.*download' to resolve actionsfile feedback #3498129.
- Submitted by Steven Kolins (soundcloud.com not working).
- - Unblock '.wlxrs.com/' which is required by hotmail.com.
- Fixes #3413827 submitted by David Bo.
- - Add two unblock patterns for popup radio and TV players.
- Submitted by Adam Piggott in #3596089.
-
-- Filter file improvements & bug fixes:
- - Add a referer tagger.
- - Reduce the likelihood that the google filter messes up HTML-generating
- JavaScript. Reported by Zeno Kugy in #3520260.
-
-- Documentation improvements:
- - Revised all OS X sections due to new packaging module (OSXPackageBuilder).
- - Update the list of supported operating systems to clarify that all Windows
- versions after 95 are expected to work and note that the platform-specific
- code for AmigaOS and QNX currently isn't maintained.
- - Update 'Signals' section, the only explicitly handled signals are SIGINT,
- SIGTERM and SIGHUP.
- - Add Haiku to the list of operating systems on which Privoxy is known to
- run.
- - Add DragonFly to the list of BSDs on which Privoxy is known to run.
- - Removed references to redhat-specific documentation set since it no longer
- exists.
- - Removed references to building PDFs since we no longer do so.
- - Multiple listen-address directives are supported since 3.0.18, correct the
- documentation to say so.
- - Remove bogus section about long and short being preferable to int.
- - Corrected some Internet JunkBuster references to Privoxy.
- - Removed references to www.junkbusters.com since it is no longer
- maintained. Reported by Angelina Matson.
- - Various grammar and spelling corrections
- - Add a client-header-tagger{} example for disabling filtering for range
- requests.
- - Correct a URL in the "Privoxy with Tor" FAQ.
- - Spell 'refresh-tags' correctly. Reported by Don in #3571927.
- - Sort manpage options alphabetically.
- - Remove an incorrect sentence in the toggle section. The toggle state
- doesn't affect whether or not the Windows version uses the tray icon.
- Reported by Zeno Kugy in #3596395.
- - Add new contributors since 3.0.19.
-
-- Log message improvements:
- - When stopping to watch a client socket due to pipelining, additionally log
- the socket number.
- - Log the client socket and its condition before closing it. This makes it
- more obvious that the socket actually gets closed and should help when
- diagnosing problems like #3464439.
- - In case of SOCKS5 failures, do not explicitly log the server's response.
- It hasn't helped so far and the response can already be logged by enabling
- "debug 32768" anyway. This reverts v1.81 and the follow-up bug fix v1.84.
- - Relocate the connection-accepted message from listen_loop() to serve().
- This way it's printed by the thread that is actually serving the
- connection which is nice when grepping for thread ids in log files.
-
-- Code cleanups:
- - Remove compatibility layer for versions prior to 3.0 since it has been
- obsolete for more than 10 years now.
- - Remove the ijb_isupper() and ijb_tolower() macros from parsers.c since
- they aren't used in this file.
- - Removed the 'Functions declared include:' comment sections since they tend
- to be incomplete, incorrect and out of date and the benefit seems
- questionable.
- - Various comment grammar and comprehensibility improvements.
- - Remove a pointless fflush() call in chat(). Flushing all streams pretty
- much all the time for no obvious reason is ridiculous.
- - Relocate ijb_isupper()'s definition to project.h and get the ijb_tolower()
- definition from there, too.
- - Relocate ijb_isdigit()'s definition to project.h.
- - Rename ijb_foo macros to privoxy_foo.
- - Add malloc_or_die() which will allow to simplify code paths where malloc()
- failures don't need to be handled gracefully.
- - Add strdup_or_die() which will allow to simplify code paths where strdup()
- failures don't need to be handled gracefully.
- - Replace strdup() calls with strdup_or_die() calls where it's safe and
- simplifies the code.
- - Fix white-space around parentheses.
- - Add missing white-space behind if's and the following parentheses.
- - Unwrap a memcpy() call in resolve_hostname_to_ip().
- - Declare pcrs_get_delimiter()'s delimiters[] static const.
- - Various optimisations to remove dead code and merge inefficient code
- structures for improved clarity, performance or code compactness.
- - Various data type corrections.
- - Change visibility of several code segments when compiling without
- FEATURE_CONNECTION_KEEP_ALIVE enabled for clarity.
- - In pcrs_get_delimiter(), do not use delimiters outside the ASCII range.
- Fixes a clang complaint.
- - Fix an error message in get_last_url() nobody is supposed to see.
- Reported by Matthew Fischer in #3507301.
- - Fix a typo in the no-zlib-support complaint. Patch submitted by Matthew
- Fischer in #3507304.
- - Shorten ssplit()'s prototype by removing the last two arguments. We always
- want to skip empty fields and ignore leading delimiters, so having
- parameters for this only complicates the API.
- - Use an enum for the type of the action value.
- - Rename action_name's member takes_value to value_type as it isn't used as
- boolean.
- - Turn family mismatches in match_sockaddr() into fatal errors.
- - Let enlist_unique_header() verify that the caller didn't pass a header
- containing either \r or \n.
- - Change the hashes used in load_config() to unsigned int. That's what
- hash_string() actually returns and using a potentially larger type
- is at best useless.
- - Use privoxy_tolower() instead of vanilla tolower() with manual casting of
- the argument.
- - Catch ssplit() failures in parse_cgi_parameters().
-
-- Privoxy-Regression-Test:
- - Add an 'Overwrite condition' directive to skip any matching tests before
- it. As it has a global scope, using it is more convenient than clowning
- around with the Ignore directive.
- - Log to STDOUT instead of STDERR.
- - Include the Privoxy version in the output.
- - Various grammar and spelling corrections in documentation and code.
- - Additional tests for range requests with filtering enabled.
- - Tests with mostly invalid range request.
- - Add a couple of hide-if-modified-since{} tests with different date formats.
- - Cleaned up the format of the regression-tests.action file to match the
- format of default.action.
- - Remove the "Copyright" line from print_version(). When using --help, every
- line of screen space matters and thus shouldn't be wasted on things the
- user doesn't care about.
-
-- Privoxy-Log-Parser:
- - Improve the --statistics performance by skipping sanity checks for input
- that shouldn't affect the results anyway. Add a --strict-checks option
- that enables some of the checks again, just in case anybody cares.
- - The distribution of client requests per connection is included in
- the --statistic output.
- - The --accept-unknown-messages option has been removed and the behavior
- is now the default.
- - Accept and (mostly) highlight new log messages introduced with
- Privoxy 3.0.20.
-
-- uagen:
- - Bump generated Firefox version to 17.
-
-- GNUmakefile improvements:
- - The dok-tidy target no longer taints documents with a tidy-mark
- - Change RA_MODE from 0664 to 0644. Suggested by Markus Dittrich in
- #3505445.
- - Remove tidy's clean flag as it changes the scope of attributes.
- Link-specific colors end up being applied to all text. Reported by Adam
- Piggott in #3569551.
- - Leave it up to the user whether or not smart tags are inserted.
- - Let w3m itself do the line wrapping for the config file. It works better
- than fmt as it can honour pre tags causing less unintentional line breaks.
- - Ditch a pointless '-r' passed to rm to delete files.
- - The config-file target now requires less manual intervention and updates
- the original config.
- - Change WDUMP to generate ASCII. Add WDUMP_UTF8 to allow UTF-8 in the
- AUTHORS file so the names are right.
- - Stop pretending that lynx and links are supported for the documentation.
-
-- configure improvements:
- - On Haiku, do not pass -lpthread to the compiler. Haiku's pthreads
- implementation is contained in its system library, libroot, so no
- additional library needs to be searched.
- Patch submitted by Simon South in #3564815.
- - Additional Haiku-specific improvements. Disable checks intended for
- multi-user systems as Haiku is presently single-user. Group Haiku-specific
- settings in their own section, following the pattern for Solaris, OS/2 and
- AmigaOS. Add additional library-related settings to remove the need for
- providing configure with custom LDFLAGS.
- Submitted by Simon South in #3574538.
-
------------------------------------------------------------------
-About Privoxy:
------------------------------------------------------------------
-
-Privoxy is a non-caching web proxy with advanced filtering capabilities for
-enhancing privacy, modifying web page data and HTTP headers, controlling
-access, and removing ads and other obnoxious Internet junk. Privoxy has a
-flexible configuration and can be customized to suit individual needs and
-tastes. It has application for both stand-alone systems and multi-user
-networks.
-
-Privoxy is Free Software and licensed under the GNU GPLv2.
-
-Privoxy is an associated project of Software in the Public Interest (SPI).
-
-Helping hands and donations are welcome:
-
- * http://www.privoxy.org/faq/general.html#PARTICIPATE
-
- * http://www.privoxy.org/faq/general.html#DONATE
-
-At present, Privoxy is known to run on Windows 95 and later versions
-(98, ME, 2000, XP, Vista, Windows 7 etc.), GNU/Linux (RedHat, SuSE,
-Debian, Fedora, Gentoo, Slackware and others), Mac OS X (10.4 and
-upwards on PPC and Intel processors), OS/2, Haiku, DragonFly,
-FreeBSD, NetBSD, OpenBSD, Solaris, and various other flavors of Unix.
-
-In addition to the core features of ad blocking and cookie management,
-Privoxy provides many supplemental features, that give the end-user
-more control, more privacy and more freedom:
-
-
- * Supports "Connection: keep-alive". Outgoing connections can be kept
- alive independently from the client. Currently not available on all
- platforms.
-
- * Supports IPv6, provided the operating system does so too,
- and the configure script detects it.
-
- * Supports tagging which allows to change the behaviour based on client
- and server headers.
-
- * Can be run as an "intercepting" proxy, which obviates the need to
- configure browsers individually.
-
- * Sophisticated actions and filters for manipulating both server and
- client headers.
-
- * Can be chained with other proxies.
-
- * Integrated browser based configuration and control utility at
- http://config.privoxy.org/ (shortcut: http://p.p/). Browser-based
- tracing of rule and filter effects. Remote toggling.
-
- * Web page filtering (text replacements, removes banners based on size,
- invisible <quote>web-bugs</quote> and HTML annoyances, etc.)
-
- * Modularized configuration that allows for standard settings and user
- settings to reside in separate files, so that installing updated actions
- files won't overwrite individual user settings.
-
- * Support for Perl Compatible Regular Expressions in the configuration
- files, and a more sophisticated and flexible configuration syntax.
-
- * GIF de-animation.
-
- * Bypass many click-tracking scripts (avoids script redirection).
-
- * User-customizable HTML templates for most proxy-generated pages (e.g.
- "blocked" page).
-
- * Auto-detection and re-reading of config file changes.
-
- * Most features are controllable on a per-site or per-location basis.
-
-
-Download location:
- http://sourceforge.net/project/showfiles.php?group_id=11118
-
-Home Page:
- http://www.privoxy.org/
-
-
- - Privoxy Developers <ijbswa-developers@lists.sourceforge.net>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Coding Guidelines</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy Developer Manual" href="index.html">
- <link rel="PREVIOUS" title="Documentation Guidelines" href=
- "documentation.html">
- <link rel="NEXT" title="Testing Guidelines" href="testing.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy Developer Manual</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href=
- "documentation.html" accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href="testing.html"
- accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="CODING" id="CODING">4. Coding
- Guidelines</a></h1>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="S1" id="S1">4.1. Introduction</a></h2>
-
- <p>This set of standards is designed to make our lives easier. It is
- developed with the simple goal of helping us keep the "new and improved
- <span class="APPLICATION">Privoxy</span>" consistent and reliable. Thus
- making maintenance easier and increasing chances of success of the
- project.</p>
-
- <p>And that of course comes back to us as individuals. If we can
- increase our development and product efficiencies then we can solve
- more of the request for changes/improvements and in general feel good
- about ourselves. ;-></p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="S2" id="S2">4.2. Using Comments</a></h2>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S3" id="S3">4.2.1. Comment, Comment,
- Comment</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>Comment as much as possible without commenting the obvious. For
- example do not comment "variable_a is equal to variable_b". Instead
- explain why variable_a should be equal to the variable_b. Just
- because a person can read code does not mean they will understand why
- or what is being done. A reader may spend a lot more time figuring
- out what is going on when a simple comment or explanation would have
- prevented the extra research. Please help your fellow Privoxy
- developers out!</p>
-
- <p>The comments will also help justify the intent of the code. If the
- comment describes something different than what the code is doing
- then maybe a programming error is occurring.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-/* if page size greater than 1k ... */
-if (page_length() > 1024)
-{
- ... "block" the page up ...
-}
-
-/* if page size is small, send it in blocks */
-if (page_length() > 1024)
-{
- ... "block" the page up ...
-}
-
-This demonstrates 2 cases of "what not to do". The first is a
-"syntax comment". The second is a comment that does not fit what
-is actually being done.
-</pre>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S4" id="S4">4.2.2. Use blocks for
- comments</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>Comments can help or they can clutter. They help when they are
- differentiated from the code they describe. One line comments do not
- offer effective separation between the comment and the code. Block
- identifiers do, by surrounding the code with a clear, definable
- pattern.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-/*********************************************************************
- * This will stand out clearly in your code!
- *********************************************************************/
-if (this_variable == that_variable)
-{
- do_something_very_important();
-}
-
-
-/* unfortunately, this may not */
-if (this_variable == that_variable)
-{
- do_something_very_important();
-}
-
-
-if (this_variable == that_variable) /* this may not either */
-{
- do_something_very_important();
-}
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Exception:</i></span></p>
-
- <p>If you are trying to add a small logic comment and do not wish to
- "disrupt" the flow of the code, feel free to use a 1 line comment
- which is NOT on the same line as the code.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S5" id="S5">4.2.3. Keep Comments on their
- own line</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>It goes back to the question of readability. If the comment is on
- the same line as the code it will be harder to read than the comment
- that is on its own line.</p>
-
- <p>There are three exceptions to this rule, which should be violated
- freely and often: during the definition of variables, at the end of
- closing braces, when used to comment parameters.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-/*********************************************************************
- * This will stand out clearly in your code,
- * But the second example won't.
- *********************************************************************/
-if (this_variable == this_variable)
-{
- do_something_very_important();
-}
-
-if (this_variable == this_variable) /*can you see me?*/
-{
- do_something_very_important(); /*not easily*/
-}
-
-
-/*********************************************************************
- * But, the encouraged exceptions:
- *********************************************************************/
-int urls_read = 0; /* # of urls read + rejected */
-int urls_rejected = 0; /* # of urls rejected */
-
-if (1 == X)
-{
- do_something_very_important();
-}
-
-
-short do_something_very_important(
- short firstparam, /* represents something */
- short nextparam /* represents something else */ )
-{
- ...code here...
-
-} /* -END- do_something_very_important */
-</pre>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S6" id="S6">4.2.4. Comment each logical
- step</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>Logical steps should be commented to help others follow the intent
- of the written code and comments will make the code more
- readable.</p>
-
- <p>If you have 25 lines of code without a comment, you should
- probably go back into it to see where you forgot to put one.</p>
-
- <p>Most "for", "while", "do", etc... loops _probably_ need a comment.
- After all, these are usually major logic containers.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S7" id="S7">4.2.5. Comment All Functions
- Thoroughly</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>A reader of the code should be able to look at the comments just
- prior to the beginning of a function and discern the reason for its
- existence and the consequences of using it. The reader should not
- have to read through the code to determine if a given function is
- safe for a desired use. The proper information thoroughly presented
- at the introduction of a function not only saves time for subsequent
- maintenance or debugging, it more importantly aids in code reuse by
- allowing a user to determine the safety and applicability of any
- function for the problem at hand. As a result of such benefits, all
- functions should contain the information presented in the addendum
- section of this document.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S8" id="S8">4.2.6. Comment at the end of
- braces if the content is more than one screen length</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>Each closing brace should be followed on the same line by a
- comment that describes the origination of the brace if the original
- brace is off of the screen, or otherwise far away from the closing
- brace. This will simplify the debugging, maintenance, and readability
- of the code.</p>
-
- <p>As a suggestion , use the following flags to make the comment and
- its brace more readable:</p>
-
- <p>use following a closing brace: } /* -END- if() or while () or
- etc... */</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-if (1 == X)
-{
- do_something_very_important();
- ...some long list of commands...
-} /* -END- if x is 1 */
-
-or:
-
-if (1 == X)
-{
- do_something_very_important();
- ...some long list of commands...
-} /* -END- if (1 == X) */
-</pre>
- </td>
- </tr>
- </table>
- </div>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="S9" id="S9">4.3. Naming Conventions</a></h2>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S10" id="S10">4.3.1. Variable
- Names</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>Use all lowercase, and separate words via an underscore ('_'). Do
- not start an identifier with an underscore. (ANSI C reserves these
- for use by the compiler and system headers.) Do not use identifiers
- which are reserved in ANSI C++. (E.g. template, class, true, false,
- ...). This is in case we ever decide to port Privoxy to C++.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-int ms_iis5_hack = 0;
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class="EMPHASIS">Instead
- of:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-int msiis5hack = 0; int msIis5Hack = 0;
-</pre>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S11" id="S11">4.3.2. Function
- Names</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>Use all lowercase, and separate words via an underscore ('_'). Do
- not start an identifier with an underscore. (ANSI C reserves these
- for use by the compiler and system headers.) Do not use identifiers
- which are reserved in ANSI C++. (E.g. template, class, true, false,
- ...). This is in case we ever decide to port Privoxy to C++.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-int load_some_file(struct client_state *csp)
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class="EMPHASIS">Instead
- of:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-int loadsomefile(struct client_state *csp)
-int loadSomeFile(struct client_state *csp)
-</pre>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S12" id="S12">4.3.3. Header file
- prototypes</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>Use a descriptive parameter name in the function prototype in
- header files. Use the same parameter name in the header file that you
- use in the c file.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-(.h) extern int load_aclfile(struct client_state *csp);
-(.c) int load_aclfile(struct client_state *csp)
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class="EMPHASIS">Instead
- of:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-(.h) extern int load_aclfile(struct client_state *); or
-(.h) extern int load_aclfile();
-(.c) int load_aclfile(struct client_state *csp)
-</pre>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S13" id="S13">4.3.4. Enumerations, and
- #defines</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>Use all capital letters, with underscores between words. Do not
- start an identifier with an underscore. (ANSI C reserves these for
- use by the compiler and system headers.)</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-(enumeration) : enum Boolean {FALSE, TRUE};
-(#define) : #define DEFAULT_SIZE 100;
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class="EMPHASIS">Note:</i></span> We
- have a standard naming scheme for #defines that toggle a feature in
- the preprocessor: FEATURE_>, where > is a short (preferably 1
- or 2 word) description.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-#define FEATURE_FORCE 1
-
-#ifdef FEATURE_FORCE
-#define FORCE_PREFIX blah
-#endif /* def FEATURE_FORCE */
-</pre>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S14" id="S14">4.3.5. Constants</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>Spell common words out entirely (do not remove vowels).</p>
-
- <p>Use only widely-known domain acronyms and abbreviations.
- Capitalize all letters of an acronym.</p>
-
- <p>Use underscore (_) to separate adjacent acronyms and
- abbreviations. Never terminate a name with an underscore.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-#define USE_IMAGE_LIST 1
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class="EMPHASIS">Instead
- of:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-#define USE_IMG_LST 1 or
-#define _USE_IMAGE_LIST 1 or
-#define USE_IMAGE_LIST_ 1 or
-#define use_image_list 1 or
-#define UseImageList 1
-</pre>
- </td>
- </tr>
- </table>
- </div>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="S15" id="S15">4.4. Using Space</a></h2>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S16" id="S16">4.4.1. Put braces on a line
- by themselves.</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>The brace needs to be on a line all by itself, not at the end of
- the statement. Curly braces should line up with the construct that
- they're associated with. This practice makes it easier to identify
- the opening and closing braces for a block.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-if (this == that)
-{
- ...
-}
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class="EMPHASIS">Instead
- of:</i></span></p>
-
- <p>if (this == that) { ... }</p>
-
- <p>or</p>
-
- <p>if (this == that) { ... }</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Note:</i></span> In the
- special case that the if-statement is inside a loop, and it is
- trivial, i.e. it tests for a condition that is obvious from the
- purpose of the block, one-liners as above may optically preserve the
- loop structure and make it easier to read.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Status:</i></span>
- developer-discretion.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example
- exception:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-while (more lines are read)
-{
- /* Please document what is/is not a comment line here */
- if (it's a comment) continue;
-
- do_something(line);
-}
-</pre>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S17" id="S17">4.4.2. ALL control
- statements should have a block</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>Using braces to make a block will make your code more readable and
- less prone to error. All control statements should have a block
- defined.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-if (this == that)
-{
- do_something();
- do_something_else();
-}
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class="EMPHASIS">Instead
- of:</i></span></p>
-
- <p>if (this == that) do_something(); do_something_else();</p>
-
- <p>or</p>
-
- <p>if (this == that) do_something();</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Note:</i></span> The
- first example in "Instead of" will execute in a manner other than
- that which the developer desired (per indentation). Using code braces
- would have prevented this "feature". The "explanation" and
- "exception" from the point above also applies.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S18" id="S18">4.4.3. Do not
- belabor/blow-up boolean expressions</a></h3>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-structure->flag = (condition);
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class="EMPHASIS">Instead
- of:</i></span></p>
-
- <p>if (condition) { structure->flag = 1; } else {
- structure->flag = 0; }</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Note:</i></span> The
- former is readable and concise. The later is wordy and inefficient.
- Please assume that any developer new to the project has at least a
- "good" knowledge of C/C++. (Hope I do not offend by that last comment
- ... 8-)</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S19" id="S19">4.4.4. Use white space
- freely because it is free</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>Make it readable. The notable exception to using white space
- freely is listed in the next guideline.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-int first_value = 0;
-int some_value = 0;
-int another_value = 0;
-int this_variable = 0;
-</pre>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S20" id="S20">4.4.5. Don't use white space
- around structure operators</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>- structure pointer operator ( "->" ) - member operator ( "." )
- - functions and parentheses</p>
-
- <p>It is a general coding practice to put pointers, references, and
- function parentheses next to names. With spaces, the connection
- between the object and variable/function name is not as clear.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-a_struct->a_member;
-a_struct.a_member;
-function_name();
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class="EMPHASIS">Instead of:</i></span>
- a_struct -> a_member; a_struct . a_member; function_name ();</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S21" id="S21">4.4.6. Make the last brace
- of a function stand out</a></h3>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-int function1( ... )
-{
- ...code...
- return(ret_code);
-
-} /* -END- function1 */
-
-
-int function2( ... )
-{
-} /* -END- function2 */
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class="EMPHASIS">Instead
- of:</i></span></p>
-
- <p>int function1( ... ) { ...code... return(ret_code); } int
- function2( ... ) { }</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Note:</i></span> Use 1
- blank line before the closing brace and 2 lines afterward. This makes
- the end of function standout to the most casual viewer. Although
- function comments help separate functions, this is still a good
- coding practice. In fact, I follow these rules when using blocks in
- "for", "while", "do" loops, and long if {} statements too. After all
- whitespace is free!</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Status:</i></span>
- developer-discretion on the number of blank lines. Enforced is the
- end of function comments.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S22" id="S22">4.4.7. Use 3 character
- indentions</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>If some use 8 character TABs and some use 3 character TABs, the
- code can look *very* ragged. So use 3 character indentions only. If
- you like to use TABs, pass your code through a filter such as "expand
- -t3" before checking in your code.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-static const char * const url_code_map[256] =
-{
- NULL, ...
-};
-
-
-int function1( ... )
-{
- if (1)
- {
- return ALWAYS_TRUE;
- }
- else
- {
- return HOW_DID_YOU_GET_HERE;
- }
-
- return NEVER_GETS_HERE;
-
-}
-</pre>
- </td>
- </tr>
- </table>
- </div>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="S23" id="S23">4.5. Initializing</a></h2>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S24" id="S24">4.5.1. Initialize all
- variables</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>Do not assume that the variables declared will not be used until
- after they have been assigned a value somewhere else in the code.
- Remove the chance of accidentally using an unassigned variable.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-short a_short = 0;
-float a_float = 0;
-struct *ptr = NULL;
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class="EMPHASIS">Note:</i></span> It is
- much easier to debug a SIGSEGV if the message says you are trying to
- access memory address 00000000 and not 129FA012; or array_ptr[20]
- causes a SIGSEV vs. array_ptr[0].</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Status:</i></span>
- developer-discretion if and only if the variable is assigned a value
- "shortly after" declaration.</p>
- </div>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="S25" id="S25">4.6. Functions</a></h2>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S26" id="S26">4.6.1. Name functions that
- return a boolean as a question.</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>Value should be phrased as a question that would logically be
- answered as a true or false statement</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-should_we_block_this();
-contains_an_image();
-is_web_page_blank();
-</pre>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S27" id="S27">4.6.2. Always specify a
- return type for a function.</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>The default return for a function is an int. To avoid ambiguity,
- create a return for a function when the return has a purpose, and
- create a void return type if the function does not need to return
- anything.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S28" id="S28">4.6.3. Minimize function
- calls when iterating by using variables</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>It is easy to write the following code, and a clear argument can
- be made that the code is easy to understand:</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-for (size_t cnt = 0; cnt < block_list_length(); cnt++)
-{
- ....
-}
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class="EMPHASIS">Note:</i></span>
- Unfortunately, this makes a function call for each and every
- iteration. This increases the overhead in the program, because the
- compiler has to look up the function each time, call it, and return a
- value. Depending on what occurs in the block_list_length() call, it
- might even be creating and destroying structures with each iteration,
- even though in each case it is comparing "cnt" to the same value,
- over and over. Remember too - even a call to block_list_length() is a
- function call, with the same overhead.</p>
-
- <p>Instead of using a function call during the iterations, assign the
- value to a variable, and evaluate using the variable.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-size_t len = block_list_length();
-
-for (size_t cnt = 0; cnt < len; cnt++)
-{
- ....
-}
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class="EMPHASIS">Exceptions:</i></span>
- if the value of block_list_length() *may* change or could
- *potentially* change, then you must code the function call in the
- for/while loop.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S29" id="S29">4.6.4. Pass and Return by
- Const Reference</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>This allows a developer to define a const pointer and call your
- function. If your function does not have the const keyword, we may
- not be able to use your function. Consider strcmp, if it were defined
- as: extern int strcmp(char *s1, char *s2);</p>
-
- <p>I could then not use it to compare argv's in main: int main(int
- argc, const char *argv[]) { strcmp(argv[0], "privoxy"); }</p>
-
- <p>Both these pointers are *const*! If the c runtime library
- maintainers do it, we should too.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S30" id="S30">4.6.5. Pass and Return by
- Value</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>Most structures cannot fit onto a normal stack entry (i.e. they
- are not 4 bytes or less). Aka, a function declaration like: int
- load_aclfile(struct client_state csp)</p>
-
- <p>would not work. So, to be consistent, we should declare all
- prototypes with "pass by value": int load_aclfile(struct client_state
- *csp)</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S31" id="S31">4.6.6. Names of include
- files</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>Your include statements should contain the file name without a
- path. The path should be listed in the Makefile, using -I as
- processor directive to search the indicated paths. An exception to
- this would be for some proprietary software that utilizes a partial
- path to distinguish their header files from system or other header
- files.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-#include <iostream.h> /* This is not a local include */
-#include "config.h" /* This IS a local include */
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Exception:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-/* This is not a local include, but requires a path element. */
-#include <sys/fileName.h>
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class="EMPHASIS">Note:</i></span>
- Please! do not add "-I." to the Makefile without a _very_ good
- reason. This duplicates the #include "file.h" behavior.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S32" id="S32">4.6.7. Provide multiple
- inclusion protection</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>Prevents compiler and linker errors resulting from redefinition of
- items.</p>
-
- <p>Wrap each header file with the following syntax to prevent
- multiple inclusions of the file. Of course, replace PROJECT_H with
- your file name, with "." Changed to "_", and make it uppercase.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-#ifndef PROJECT_H_INCLUDED
-#define PROJECT_H_INCLUDED
- ...
-#endif /* ndef PROJECT_H_INCLUDED */
-</pre>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S33" id="S33">4.6.8. Use `extern "C"` when
- appropriate</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>If our headers are included from C++, they must declare our
- functions as `extern "C"`. This has no cost in C, but increases the
- potential re-usability of our code.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-#ifdef __cplusplus
-extern "C"
-{
-#endif /* def __cplusplus */
-
-... function definitions here ...
-
-#ifdef __cplusplus
-}
-#endif /* def __cplusplus */
-</pre>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S34" id="S34">4.6.9. Where Possible, Use
- Forward Struct Declaration Instead of Includes</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>Useful in headers that include pointers to other struct's.
- Modifications to excess header files may cause needless compiles.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-/*********************************************************************
- * We're avoiding an include statement here!
- *********************************************************************/
-struct file_list;
-extern file_list *xyz;
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class="EMPHASIS">Note:</i></span> If you
- declare "file_list xyz;" (without the pointer), then including the
- proper header file is necessary. If you only want to prototype a
- pointer, however, the header file is unnecessary.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Status:</i></span> Use
- with discretion.</p>
- </div>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="S35" id="S35">4.7. General Coding
- Practices</a></h2>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S36" id="S36">4.7.1. Turn on
- warnings</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation</i></span></p>
-
- <p>Compiler warnings are meant to help you find bugs. You should turn
- on as many as possible. With GCC, the switch is "-Wall". Try and fix
- as many warnings as possible.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S37" id="S37">4.7.2. Provide a default
- case for all switch statements</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>What you think is guaranteed is never really guaranteed. The value
- that you don't think you need to check is the one that someday will
- be passed. So, to protect yourself from the unknown, always have a
- default step in a switch statement.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-switch (hash_string(cmd))
-{
- case hash_actions_file:
- ... code ...
- break;
-
- case hash_confdir:
- ... code ...
- break;
-
- default:
- log_error( ... );
- ... anomaly code goes here ...
- continue; / break; / exit( 1 ); / etc ...
-
-} /* end switch (hash_string(cmd)) */
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class="EMPHASIS">Note:</i></span> If you
- already have a default condition, you are obviously exempt from this
- point. Of note, most of the WIN32 code calls `DefWindowProc' after
- the switch statement. This API call *should* be included in a default
- statement.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Another
- Note:</i></span> This is not so much a readability issue as a robust
- programming issue. The "anomaly code goes here" may be no more than a
- print to the STDERR stream (as in load_config). Or it may really be
- an abort condition.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Status:</i></span>
- Programmer discretion is advised.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S38" id="S38">4.7.3. Try to avoid falling
- through cases in a switch statement.</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>In general, you will want to have a 'break' statement within each
- 'case' of a switch statement. This allows for the code to be more
- readable and understandable, and furthermore can prevent unwanted
- surprises if someone else later gets creative and moves the code
- around.</p>
-
- <p>The language allows you to plan the fall through from one case
- statement to another simply by omitting the break statement within
- the case statement. This feature does have benefits, but should only
- be used in rare cases. In general, use a break statement for each
- case statement.</p>
-
- <p>If you choose to allow fall through, you should comment both the
- fact of the fall through and reason why you felt it was
- necessary.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S40" id="S40">4.7.4. Don't mix size_t and
- other types</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>The type of size_t varies across platforms. Do not make
- assumptions about whether it is signed or unsigned, or about how long
- it is. Do not compare a size_t against another variable of a
- different type (or even against a constant) without casting one of
- the values.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S41" id="S41">4.7.5. Declare each variable
- and struct on its own line.</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>It can be tempting to declare a series of variables all on one
- line. Don't.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-long a = 0;
-long b = 0;
-long c = 0;
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class="EMPHASIS">Instead
- of:</i></span></p>
-
- <p>long a, b, c;</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Explanation:</i></span>
- - there is more room for comments on the individual variables -
- easier to add new variables without messing up the original ones -
- when searching on a variable to find its type, there is less clutter
- to "visually" eliminate</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Exceptions:</i></span>
- when you want to declare a bunch of loop variables or other trivial
- variables; feel free to declare them on one line. You should,
- although, provide a good comment on their functions.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Status:</i></span>
- developer-discretion.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S42" id="S42">4.7.6. Use malloc/zalloc
- sparingly</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>Create a local struct (on the stack) if the variable will live and
- die within the context of one function call.</p>
-
- <p>Only "malloc" a struct (on the heap) if the variable's life will
- extend beyond the context of one function call.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-If a function creates a struct and stores a pointer to it in a
-list, then it should definitely be allocated via `malloc'.
-</pre>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S43" id="S43">4.7.7. The Programmer Who
- Uses 'malloc' is Responsible for Ensuring 'free'</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>If you have to "malloc" an instance, you are responsible for
- insuring that the instance is `free'd, even if the deallocation event
- falls within some other programmer's code. You are also responsible
- for ensuring that deletion is timely (i.e. not too soon, not too
- late). This is known as "low-coupling" and is a "good thing (tm)".
- You may need to offer a free/unload/destructor type function to
- accommodate this.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-int load_re_filterfile(struct client_state *csp) { ... }
-static void unload_re_filterfile(void *f) { ... }
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Exceptions:</i></span></p>
-
- <p>The developer cannot be expected to provide `free'ing functions
- for C run-time library functions ... such as `strdup'.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Status:</i></span>
- developer-discretion. The "main" use of this standard is for
- allocating and freeing data structures (complex or nested).</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S44" id="S44">4.7.8. Add loaders to the
- `file_list' structure and in order</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>I have ordered all of the "blocker" file code to be in alpha
- order. It is easier to add/read new blockers when you expect a
- certain order.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Note:</i></span> It may
- appear that the alpha order is broken in places by POPUP tests coming
- before PCRS tests. But since POPUPs can also be referred to as
- KILLPOPUPs, it is clear that it should come first.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="S45" id="S45">4.7.9. "Uncertain" new code
- and/or changes to existing code, use XXX</a></h3>
-
- <p><span class="emphasis"><i class=
- "EMPHASIS">Explanation:</i></span></p>
-
- <p>If you have enough confidence in new code or confidence in your
- changes, but are not *quite* sure of the repercussions, add this:</p>
-
- <p>/* XXX: this code has a logic error on platform XYZ, * attempting
- to fix */ #ifdef PLATFORM ...changed code here... #endif</p>
-
- <p>or:</p>
-
- <p>/* XXX: I think the original author really meant this... */
- ...changed code here...</p>
-
- <p>or:</p>
-
- <p>/* XXX: new code that *may* break something else... */ ...new code
- here...</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Note:</i></span> If you
- make it clear that this may or may not be a "good thing (tm)", it
- will be easier to identify and include in the project (or conversely
- exclude from the project).</p>
- </div>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="S46" id="S46">4.8. Addendum: Template for
- files and function comment blocks:</a></h2>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example for file
- comments:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-const char FILENAME_rcs[] = "$I<!-- Break CVS Substitution -->d$";
-/*********************************************************************
- *
- * File : $S<!-- Break CVS Substitution -->ource$
- *
- * Purpose : (Fill me in with a good description!)
- *
- * Copyright : Written by and Copyright (C) 2001-2009
- * the Privoxy team. http://www.privoxy.org/
- *
- * This program is free software; you can redistribute it
- * and/or modify it under the terms of the GNU General
- * Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at
- * your option) any later version.
- *
- * This program is distributed in the hope that it will
- * be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU General Public
- * License for more details.
- *
- * The GNU General Public License should be included with
- * this file. If not, you can view it at
- * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
- * or write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 ,
- * USA
- *
- *********************************************************************/
-
-
-#include "config.h"
-
- ...necessary include files for us to do our work...
-
-const char FILENAME_h_rcs[] = FILENAME_H_VERSION;
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class="EMPHASIS">Note:</i></span> This
- declares the rcs variables that should be added to the
- "show-proxy-args" page. If this is a brand new creation by you, you are
- free to change the "Copyright" section to represent the rights you wish
- to maintain.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Note:</i></span> The
- formfeed character that is present right after the comment flower box
- is handy for (X|GNU)Emacs users to skip the verbiage and get to the
- heart of the code (via `forward-page' and `backward-page'). Please
- include it if you can.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example for file header
- comments:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-#ifndef _FILENAME_H
-#define _FILENAME_H
-#define FILENAME_H_VERSION "$I<!-- Break CVS Substitution -->d$"
-/*********************************************************************
- *
- * File : $S<!-- Break CVS Substitution -->ource$
- *
- * Purpose : (Fill me in with a good description!)
- *
- * Copyright : Written by and Copyright (C) 2001-2009
- * the Privoxy team. http://www.privoxy.org/
- *
- * This program is free software; you can redistribute it
- * and/or modify it under the terms of the GNU General
- * Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at
- * your option) any later version.
- *
- * This program is distributed in the hope that it will
- * be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU General Public
- * License for more details.
- *
- * The GNU General Public License should be included with
- * this file. If not, you can view it at
- * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
- * or write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 ,
- * USA
- *
- *********************************************************************/
-
-
-#include "project.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
- ... function headers here ...
-
-
-/* Revision control strings from this header and associated .c file */
-extern const char FILENAME_rcs[];
-extern const char FILENAME_h_rcs[];
-
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* ndef _FILENAME_H */
-
-/*
- Local Variables:
- tab-width: 3
- end:
-*/
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class="EMPHASIS">Example for function
- comments:</i></span></p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
-/*********************************************************************
- *
- * Function : FUNCTION_NAME
- *
- * Description : (Fill me in with a good description!)
- *
- * parameters :
- * 1 : param1 = pointer to an important thing
- * 2 : x = pointer to something else
- *
- * Returns : 0 => Ok, everything else is an error.
- *
- *********************************************************************/
-int FUNCTION_NAME(void *param1, const char *x)
-{
- ...
- return 0;
-
-}
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class="EMPHASIS">Note:</i></span> If we
- all follow this practice, we should be able to parse our code to create
- a "self-documenting" web page.</p>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href=
- "documentation.html" accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href="testing.html"
- accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">Documentation
- Guidelines</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">Testing Guidelines</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>The CVS Repository</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy Developer Manual" href="index.html">
- <link rel="PREVIOUS" title="Introduction" href="introduction.html">
- <link rel="NEXT" title="Documentation Guidelines" href=
- "documentation.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy Developer Manual</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href=
- "introduction.html" accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href=
- "documentation.html" accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="CVS" id="CVS">2. The CVS Repository</a></h1>
-
- <p>If you become part of the active development team, you will eventually
- need write access to our holy grail, the CVS repository. One of the team
- members will need to set this up for you. Please read this chapter
- completely before accessing via CVS.</p>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="CVSACCESS" id="CVSACCESS">2.1. Access to
- CVS</a></h2>
-
- <p>The project's CVS repository is hosted on <a href=
- "http://sourceforge.net/" target="_top">SourceForge.</a> Please refer
- to the chapters 6 and 7 in <a href=
- "http://sourceforge.net/docman/?group_id=1" target="_top">SF's site
- documentation</a> for the technical access details for your operating
- system. For historical reasons, the CVS server is called <tt class=
- "LITERAL">ijbswa.cvs.sourceforge.net</tt>, the repository is called
- <tt class="LITERAL">ijbswa</tt>, and the source tree module is called
- <tt class="LITERAL">current</tt>.</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="CVSBRANCHES" id="CVSBRANCHES">2.2.
- Branches</a></h2>
-
- <p>Within the CVS repository, there are modules and branches. As
- mentioned, the sources are in the <tt class="LITERAL">current</tt>
- <span class="QUOTE">"module"</span>. Other modules are present for
- platform specific issues. There is a webview of the CVS hierarchy at
- <a href="http://ijbswa.cvs.sourceforge.net/ijbswa/" target=
- "_top">http://ijbswa.cvs.sourceforge.net/ijbswa/</a>, which might help
- with visualizing how these pieces fit together.</p>
-
- <p>At one time there were two distinct branches: stable and unstable.
- The more drastic changes were to be in the unstable branch. These
- branches have now been merged to minimize time and effort of
- maintaining two branches.</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="CVSCOMMIT" id="CVSCOMMIT">2.3. CVS Commit
- Guidelines</a></h2>
-
- <p>The source tree is the heart of every software project. Every effort
- must be made to ensure that it is readable, compilable and consistent
- at all times. We expect anyone with CVS access to strictly adhere to
- the following guidelines:</p>
-
- <p>Basic Guidelines, for all branches:</p>
-
- <ul>
- <li>
- <p>Please don't commit even a small change without testing it
- thoroughly first. When we're close to a public release, ask a
- fellow developer to review your changes.</p>
- </li>
-
- <li>
- <p>Your commit message should give a concise overview of
- <span class="emphasis"><i class="EMPHASIS">what you
- changed</i></span> (no big details) and <span class=
- "emphasis"><i class="EMPHASIS">why you changed it</i></span> Just
- check previous messages for good examples.</p>
- </li>
-
- <li>
- <p>Don't use the same message on multiple files, unless it equally
- applies to all those files.</p>
- </li>
-
- <li>
- <p>If your changes span multiple files, and the code won't
- recompile unless all changes are committed (e.g. when changing the
- signature of a function), then commit all files one after another,
- without long delays in between. If necessary, prepare the commit
- messages in advance.</p>
- </li>
-
- <li>
- <p>Before changing things on CVS, make sure that your changes are
- in line with the team's general consensus on what should be
- done.</p>
- </li>
-
- <li>
- <p>Note that near a major public release, we get more cautious.
- There is always the possibility to submit a patch to the <a href=
- "http://sourceforge.net/tracker/?atid=311118&group_id=11118&func=browse"
- target="_top">patch tracker</a> instead.</p>
- </li>
- </ul>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="introduction.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href=
- "documentation.html" accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">Introduction</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">Documentation
- Guidelines</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Documentation Guidelines</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy Developer Manual" href="index.html">
- <link rel="PREVIOUS" title="The CVS Repository" href="cvs.html">
- <link rel="NEXT" title="Coding Guidelines" href="coding.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy Developer Manual</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href="cvs.html"
- accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href="coding.html"
- accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="DOCUMENTATION" id="DOCUMENTATION">3.
- Documentation Guidelines</a></h1>
-
- <p>All formal documents are maintained in Docbook SGML and located in the
- <samp class="COMPUTEROUTPUT">doc/source/*</samp> directory. You will need
- <a href="http://www.docbook.org" target="_top">Docbook</a>, the Docbook
- DTD's and the Docbook modular stylesheets (or comparable alternatives),
- and either <span class="APPLICATION">jade</span> or <span class=
- "APPLICATION">openjade</span> (recommended) installed in order to build
- docs from source. Currently there is <a href="../user-manual/index.html"
- target="_top"><i class="CITETITLE">user-manual</i></a>, <a href=
- "../faq/index.html" target="_top"><i class="CITETITLE">FAQ</i></a>, and,
- of course this, the <i class="CITETITLE">developer-manual</i> in this
- format. The <i class="CITETITLE">README</i>, <i class=
- "CITETITLE">AUTHORS</i>, <i class="CITETITLE">INSTALL</i>, <i class=
- "CITETITLE">privoxy.1</i> (man page), and <i class="CITETITLE">config</i>
- files are also now maintained as Docbook SGML. These files, when built,
- in the top-level source directory are generated files! Also, the
- <span class="APPLICATION">Privoxy</span> <tt class=
- "FILENAME">index.html</tt> (and a variation on this file, <tt class=
- "FILENAME">privoxy-index.html</tt>, meant for inclusion with doc
- packages), are maintained as SGML as well. <span class=
- "emphasis"><i class="EMPHASIS">DO NOT edit these directly</i></span>.
- Edit the SGML source, or contact someone involved in the
- documentation.</p>
-
- <p><tt class="FILENAME">config</tt> requires some special handling. The
- reason it is maintained this way is so that the extensive comments in the
- file mirror those in <i class="CITETITLE">user-manual</i>. But the
- conversion process requires going from SGML to HTML to text to special
- formatting required for the embedded comments. Some of this does not
- survive so well. Especially some of the examples that are longer than 80
- characters. The build process for this file outputs to <tt class=
- "FILENAME">config.new</tt>, which should be reviewed for errors and
- mis-formatting. Once satisfied that it is correct, then it should be hand
- copied to <tt class="FILENAME">config</tt>.</p>
-
- <p>Other, less formal documents (e.g. <tt class="FILENAME">LICENSE</tt>)
- are maintained as plain text files in the top-level source directory.</p>
-
- <p>Packagers are encouraged to include this documentation. For those
- without the ability to build the docs locally, text versions of each are
- kept in CVS. HTML versions are also being kept in CVS under <tt class=
- "FILENAME">doc/webserver/*</tt>.</p>
-
- <p>Formal documents are built with the Makefile targets of <samp class=
- "COMPUTEROUTPUT">make dok</samp>. The build process uses the document
- SGML sources in <samp class="COMPUTEROUTPUT">doc/source/*/*</samp> to
- update all text files in <samp class="COMPUTEROUTPUT">doc/text/</samp>
- and to update all HTML documents in <samp class=
- "COMPUTEROUTPUT">doc/webserver/</samp>.</p>
-
- <p>Documentation writers should please make sure documents build
- successfully before committing to CVS, if possible.</p>
-
- <p>How do you update the webserver (i.e. the pages on privoxy.org)?</p>
-
- <ol type="1">
- <li>
- <p>First, build the docs by running <samp class="COMPUTEROUTPUT">make
- dok</samp>.</p>
- </li>
-
- <li>
- <p>Run <samp class="COMPUTEROUTPUT">make webserver</samp> which
- copies all files from <samp class=
- "COMPUTEROUTPUT">doc/webserver</samp> to the sourceforge webserver
- via scp.</p>
- </li>
- </ol>
-
- <p>Finished docs should be occasionally submitted to CVS (<tt class=
- "FILENAME">doc/webserver/*/*.html</tt>) so that those without the ability
- to build them locally, have access to them if needed. This is especially
- important just prior to a new release! Please do this <span class=
- "emphasis"><i class="EMPHASIS">after</i></span> the <tt class=
- "LITERAL">$VERSION</tt> and other release specific data in <tt class=
- "FILENAME">configure.in</tt> has been updated (this is done just prior to
- a new release).</p>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="SGML" id="SGML">3.1. Quickstart to Docbook
- and SGML</a></h2>
-
- <p>If you are not familiar with SGML, it is a markup language similar
- to HTML. Actually, not a mark up language per se, but a language used
- to define markup languages. In fact, HTML is an SGML application. Both
- will use <span class="QUOTE">"tags"</span> to format text and other
- content. SGML tags can be much more varied, and flexible, but do much
- of the same kinds of things. The tags, or <span class=
- "QUOTE">"elements"</span>, are definable in SGML. There is no set
- <span class="QUOTE">"standards"</span>. Since we are using <span class=
- "APPLICATION">Docbook</span>, our tags are those that are defined by
- <span class="APPLICATION">Docbook</span>. Much of how the finish
- document is rendered is determined by the <span class=
- "QUOTE">"stylesheets"</span>. The stylesheets determine how each tag
- gets translated to HTML, or other formats.</p>
-
- <p>Tags in Docbook SGML need to be always <span class=
- "QUOTE">"closed"</span>. If not, you will likely generate errors.
- Example: <tt class="LITERAL"><title>My Title</title></tt>.
- They are also case-insensitive, but we strongly suggest using all lower
- case. This keeps compatibility with [Docbook] <span class=
- "APPLICATION">XML</span>.</p>
-
- <p>Our documents use <span class="QUOTE">"sections"</span> for the most
- part. Sections will be processed into HTML headers (e.g. <tt class=
- "LITERAL">h1</tt> for <tt class="LITERAL">sect1</tt>). The <span class=
- "APPLICATION">Docbook</span> stylesheets will use these to also
- generate the Table of Contents for each doc. Our TOC's are set to a
- depth of three. Meaning <tt class="LITERAL">sect1</tt>, <tt class=
- "LITERAL">sect2</tt>, and <tt class="LITERAL">sect3</tt> will have TOC
- entries, but <tt class="LITERAL">sect4</tt> will not. Each section
- requires a <tt class="LITERAL"><title></tt> element, and at least
- one <tt class="LITERAL"><para></tt>. There is a limit of five
- section levels in Docbook, but generally three should be sufficient for
- our purposes.</p>
-
- <p>Some common elements that you likely will use:</p>
-
- <table border="0">
- <tbody>
- <tr>
- <td><span class="emphasis"><i class=
- "EMPHASIS"><para></para></i></span>, paragraph
- delimiter. Most text needs to be within paragraph elements (there
- are some exceptions).</td>
- </tr>
-
- <tr>
- <td><span class="emphasis"><i class=
- "EMPHASIS"><emphasis></emphasis></i></span>, the
- stylesheets make this italics.</td>
- </tr>
-
- <tr>
- <td><span class="emphasis"><i class=
- "EMPHASIS"><filename></filename></i></span>, files
- and directories.</td>
- </tr>
-
- <tr>
- <td><span class="emphasis"><i class=
- "EMPHASIS"><command></command></i></span>, command
- examples.</td>
- </tr>
-
- <tr>
- <td><span class="emphasis"><i class=
- "EMPHASIS"><literallayout></literallayout></i></span>,
- like <tt class="LITERAL"><pre></tt>, more or less.</td>
- </tr>
-
- <tr>
- <td><span class="emphasis"><i class=
- "EMPHASIS"><itemizedlist></itemizedlist></i></span>,
- list with bullets.</td>
- </tr>
-
- <tr>
- <td><span class="emphasis"><i class=
- "EMPHASIS"><listitem></listitem></i></span>, member
- of the above.</td>
- </tr>
-
- <tr>
- <td><span class="emphasis"><i class=
- "EMPHASIS"><screen></screen></i></span>, screen
- output, implies <tt class=
- "LITERAL"><literallayout></tt>.</td>
- </tr>
-
- <tr>
- <td><span class="emphasis"><i class="EMPHASIS"><ulink
- url="example.com"></ulink></i></span>, like HTML
- <tt class="LITERAL"><a></tt> tag.</td>
- </tr>
-
- <tr>
- <td><span class="emphasis"><i class=
- "EMPHASIS"><quote></quote></i></span>, for, doh,
- quoting text.</td>
- </tr>
- </tbody>
- </table>
-
- <p>Look at any of the existing docs for examples of all these and
- more.</p>
-
- <p>You might also find <span class="QUOTE">"<a href=
- "http://opensource.bureau-cornavin.com/crash-course/index.html" target=
- "_top">Writing Documentation Using DocBook - A Crash Course</a>"</span>
- useful.</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="DOCSTYLE" id="DOCSTYLE">3.2. <span class=
- "APPLICATION">Privoxy</span> Documentation Style</a></h2>
-
- <p>It will be easier if everyone follows a similar writing style. This
- just makes it easier to read what someone else has written if it is all
- done in a similar fashion.</p>
-
- <p>Here it is:</p>
-
- <ul>
- <li>
- <p>All tags should be lower case.</p>
- </li>
-
- <li>
- <p>Tags delimiting a <span class="emphasis"><i class=
- "EMPHASIS">block</i></span> of text (even small blocks) should be
- on their own line. Like:</p>
-
- <p class="LITERALLAYOUT"> <para><br>
- Some text goes here.<br>
- </para><br>
- </p>Tags marking
- individual words, or few words, should be in-line:
-
- <p class="LITERALLAYOUT">
- Just to <emphasis>emphasize</emphasis>, some text goes here.<br>
-
- </p>
- </li>
-
- <li>
- <p>Tags should be nested and step indented for block text like:
- (except in-line tags)</p>
-
- <p class="LITERALLAYOUT"> <para><br>
- <itemizedlist><br>
- <para><br>
- <listitem><br>
- Some text goes here in our list example.<br>
-
- </listitem><br>
- </para><br>
- </itemizedlist><br>
- </para><br>
- </p>This makes it easier
- to find the text amongst the tags ;-)
- </li>
-
- <li>
- <p>Use white space to separate logical divisions within a document,
- like between sections. Running everything together consistently
- makes it harder to read and work on.</p>
- </li>
-
- <li>
- <p>Do not hesitate to make comments. Comments can either use the
- <comment> element, or the <!-- --> style comment
- familiar from HTML. (Note in Docbook v4.x <comment> is
- replaced by <remark>.)</p>
- </li>
-
- <li>
- <p>We have an international audience. Refrain from slang, or
- English idiosyncrasies (too many to list :). Humor also does not
- translate well sometimes.</p>
- </li>
-
- <li>
- <p>Try to keep overall line lengths in source files to 80
- characters or less for obvious reasons. This is not always
- possible, with lengthy URLs for instance.</p>
- </li>
-
- <li>
- <p>Our documents are available in differing formats. Right now,
- they are just plain text and/or HTML, but others are always a
- future possibility. Be careful with URLs (<ulink>), and avoid
- this mistake:</p>
-
- <p>My favorite site is <ulink
- url="http://example.com">here</ulink>.</p>
-
- <p>This will render as <span class="QUOTE">"My favorite site is
- here"</span>, which is not real helpful in a text doc. Better like
- this:</p>
-
- <p>My favorite site is <ulink
- url="http://example.com">example.com</ulink>.</p>
- </li>
-
- <li>
- <p>All documents should be spell checked occasionally. <span class=
- "APPLICATION">aspell</span> can check SGML with the <tt class=
- "LITERAL">-H</tt> option. (<span class="APPLICATION">ispell</span>
- I think too.)</p>
- </li>
- </ul>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="AEN208" id="AEN208">3.3. Privoxy Custom
- Entities</a></h2>
-
- <p><span class="APPLICATION">Privoxy</span> documentation is using a
- number of customized <span class="QUOTE">"entities"</span> to
- facilitate documentation maintenance.</p>
-
- <p>We are using a set of <span class="QUOTE">"boilerplate"</span> files
- with generic text, that is used by multiple docs. This way we can write
- something once, and use it repeatedly without having to re-write the
- same content over and over again. If editing such a file, keep in mind
- that it should be <span class="emphasis"><i class=
- "EMPHASIS">generic</i></span>. That is the purpose; so it can be used
- in varying contexts without additional modifications.</p>
-
- <p>We are also using what <span class="APPLICATION">Docbook</span>
- calls <span class="QUOTE">"internal entities"</span>. These are like
- variables in programming. Well, sort of. For instance, we have the
- <tt class="LITERAL">p-version</tt> entity that contains the current
- <span class="APPLICATION">Privoxy</span> version string. You are
- strongly encouraged to use these where possible. Some of these
- obviously require re-setting with each release (done by the Makefile).
- A sampling of custom entities are listed below. See any of the main
- docs for examples.</p>
-
- <ul>
- <li>
- <p>Re- <span class="QUOTE">"boilerplate"</span> text entities are
- defined like:</p>
-
- <p><tt class="LITERAL"><!entity supported SYSTEM
- "supported.sgml"></tt></p>
-
- <p>In this example, the contents of the file, <tt class=
- "FILENAME">supported.sgml</tt> is available for inclusion anywhere
- in the doc. To make this happen, just reference the now defined
- entity: <tt class="LITERAL">&supported;</tt> (starts with an
- ampersand and ends with a semi-colon), and the contents will be
- dumped into the finished doc at that point.</p>
- </li>
-
- <li>
- <p>Commonly used <span class="QUOTE">"internal
- entities"</span>:</p>
-
- <table border="0">
- <tbody>
- <tr>
- <td><span class="emphasis"><i class=
- "EMPHASIS">p-version</i></span>: the <span class=
- "APPLICATION">Privoxy</span> version string, e.g.
- <span class="QUOTE">"3.0.21"</span>.</td>
- </tr>
-
- <tr>
- <td><span class="emphasis"><i class=
- "EMPHASIS">p-status</i></span>: the project status, either
- <span class="QUOTE">"alpha"</span>, <span class=
- "QUOTE">"beta"</span>, or <span class=
- "QUOTE">"stable"</span>.</td>
- </tr>
-
- <tr>
- <td><span class="emphasis"><i class=
- "EMPHASIS">p-not-stable</i></span>: use to conditionally
- include text in <span class="QUOTE">"not stable"</span>
- releases (e.g. <span class="QUOTE">"beta"</span>).</td>
- </tr>
-
- <tr>
- <td><span class="emphasis"><i class=
- "EMPHASIS">p-stable</i></span>: just the opposite.</td>
- </tr>
-
- <tr>
- <td><span class="emphasis"><i class=
- "EMPHASIS">p-text</i></span>: this doc is only generated as
- text.</td>
- </tr>
- </tbody>
- </table>
- </li>
- </ul>
-
- <p>There are others in various places that are defined for a specific
- purpose. Read the source!</p>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="cvs.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href="coding.html"
- accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">The CVS Repository</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">Coding Guidelines</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Privoxy Developer Manual</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="NEXT" title="Introduction" href="introduction.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-</head>
-
-<body class="ARTICLE" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="ARTICLE">
- <div class="TITLEPAGE">
- <h1 class="TITLE"><a name="AEN2" id="AEN2">Privoxy Developer
- Manual</a></h1>
-
- <p class="PUBDATE"><sub><a href=
- "http://www.privoxy.org/user-manual/copyright.html" target=
- "_top">Copyright</a> © 2001-2013 by <a href=
- "http://www.privoxy.org/" target="_top">Privoxy
- Developers</a></sub><br></p>
-
- <p class="PUBDATE">$Id: developer-manual.sgml,v 2.57 2013/03/01
- 17:44:24 fabiankeil Exp $<br></p>
-
- <div>
- <div class="ABSTRACT">
- <a name="AEN9" id="AEN9"></a>
-
- <p>The developer manual provides guidance on coding, testing,
- packaging, documentation and other issues of importance to those
- involved with <span class="APPLICATION">Privoxy</span> development.
- It is mandatory (and helpful!) reading for anyone who wants to join
- the team. Note that it's currently out of date and may not be
- entirely correct. As always, patches are welcome.</p>
-
- <p>Please note that this document is constantly evolving. This copy
- represents the state at the release of version 3.0.21. You can find
- the latest version of the this manual at <a href=
- "http://www.privoxy.org/developer-manual/" target=
- "_top">http://www.privoxy.org/developer-manual/</a>. Please have a
- look at the <a href=
- "http://www.privoxy.org/user-manual/contact.html" target=
- "_top">contact section in the user manual</a> if you are interested
- in contacting the developers.</p>
- </div>
- </div>
- <hr>
- </div>
-
- <div class="TOC">
- <dl>
- <dt><b>Table of Contents</b></dt>
-
- <dt>1. <a href="introduction.html">Introduction</a></dt>
-
- <dd>
- <dl>
- <dt>1.1. <a href="introduction.html#QUICKSTART">Quickstart to
- Privoxy Development</a></dt>
- </dl>
- </dd>
-
- <dt>2. <a href="cvs.html">The CVS Repository</a></dt>
-
- <dd>
- <dl>
- <dt>2.1. <a href="cvs.html#CVSACCESS">Access to CVS</a></dt>
-
- <dt>2.2. <a href="cvs.html#CVSBRANCHES">Branches</a></dt>
-
- <dt>2.3. <a href="cvs.html#CVSCOMMIT">CVS Commit
- Guidelines</a></dt>
- </dl>
- </dd>
-
- <dt>3. <a href="documentation.html">Documentation Guidelines</a></dt>
-
- <dd>
- <dl>
- <dt>3.1. <a href="documentation.html#SGML">Quickstart to Docbook
- and SGML</a></dt>
-
- <dt>3.2. <a href="documentation.html#DOCSTYLE"><span class=
- "APPLICATION">Privoxy</span> Documentation Style</a></dt>
-
- <dt>3.3. <a href="documentation.html#AEN208">Privoxy Custom
- Entities</a></dt>
- </dl>
- </dd>
-
- <dt>4. <a href="coding.html">Coding Guidelines</a></dt>
-
- <dd>
- <dl>
- <dt>4.1. <a href="coding.html#S1">Introduction</a></dt>
-
- <dt>4.2. <a href="coding.html#S2">Using Comments</a></dt>
-
- <dd>
- <dl>
- <dt>4.2.1. <a href="coding.html#S3">Comment, Comment,
- Comment</a></dt>
-
- <dt>4.2.2. <a href="coding.html#S4">Use blocks for
- comments</a></dt>
-
- <dt>4.2.3. <a href="coding.html#S5">Keep Comments on their
- own line</a></dt>
-
- <dt>4.2.4. <a href="coding.html#S6">Comment each logical
- step</a></dt>
-
- <dt>4.2.5. <a href="coding.html#S7">Comment All Functions
- Thoroughly</a></dt>
-
- <dt>4.2.6. <a href="coding.html#S8">Comment at the end of
- braces if the content is more than one screen length</a></dt>
- </dl>
- </dd>
-
- <dt>4.3. <a href="coding.html#S9">Naming Conventions</a></dt>
-
- <dd>
- <dl>
- <dt>4.3.1. <a href="coding.html#S10">Variable Names</a></dt>
-
- <dt>4.3.2. <a href="coding.html#S11">Function Names</a></dt>
-
- <dt>4.3.3. <a href="coding.html#S12">Header file
- prototypes</a></dt>
-
- <dt>4.3.4. <a href="coding.html#S13">Enumerations, and
- #defines</a></dt>
-
- <dt>4.3.5. <a href="coding.html#S14">Constants</a></dt>
- </dl>
- </dd>
-
- <dt>4.4. <a href="coding.html#S15">Using Space</a></dt>
-
- <dd>
- <dl>
- <dt>4.4.1. <a href="coding.html#S16">Put braces on a line by
- themselves.</a></dt>
-
- <dt>4.4.2. <a href="coding.html#S17">ALL control statements
- should have a block</a></dt>
-
- <dt>4.4.3. <a href="coding.html#S18">Do not belabor/blow-up
- boolean expressions</a></dt>
-
- <dt>4.4.4. <a href="coding.html#S19">Use white space freely
- because it is free</a></dt>
-
- <dt>4.4.5. <a href="coding.html#S20">Don't use white space
- around structure operators</a></dt>
-
- <dt>4.4.6. <a href="coding.html#S21">Make the last brace of a
- function stand out</a></dt>
-
- <dt>4.4.7. <a href="coding.html#S22">Use 3 character
- indentions</a></dt>
- </dl>
- </dd>
-
- <dt>4.5. <a href="coding.html#S23">Initializing</a></dt>
-
- <dd>
- <dl>
- <dt>4.5.1. <a href="coding.html#S24">Initialize all
- variables</a></dt>
- </dl>
- </dd>
-
- <dt>4.6. <a href="coding.html#S25">Functions</a></dt>
-
- <dd>
- <dl>
- <dt>4.6.1. <a href="coding.html#S26">Name functions that
- return a boolean as a question.</a></dt>
-
- <dt>4.6.2. <a href="coding.html#S27">Always specify a return
- type for a function.</a></dt>
-
- <dt>4.6.3. <a href="coding.html#S28">Minimize function calls
- when iterating by using variables</a></dt>
-
- <dt>4.6.4. <a href="coding.html#S29">Pass and Return by Const
- Reference</a></dt>
-
- <dt>4.6.5. <a href="coding.html#S30">Pass and Return by
- Value</a></dt>
-
- <dt>4.6.6. <a href="coding.html#S31">Names of include
- files</a></dt>
-
- <dt>4.6.7. <a href="coding.html#S32">Provide multiple
- inclusion protection</a></dt>
-
- <dt>4.6.8. <a href="coding.html#S33">Use `extern "C"` when
- appropriate</a></dt>
-
- <dt>4.6.9. <a href="coding.html#S34">Where Possible, Use
- Forward Struct Declaration Instead of Includes</a></dt>
- </dl>
- </dd>
-
- <dt>4.7. <a href="coding.html#S35">General Coding
- Practices</a></dt>
-
- <dd>
- <dl>
- <dt>4.7.1. <a href="coding.html#S36">Turn on
- warnings</a></dt>
-
- <dt>4.7.2. <a href="coding.html#S37">Provide a default case
- for all switch statements</a></dt>
-
- <dt>4.7.3. <a href="coding.html#S38">Try to avoid falling
- through cases in a switch statement.</a></dt>
-
- <dt>4.7.4. <a href="coding.html#S40">Don't mix size_t and
- other types</a></dt>
-
- <dt>4.7.5. <a href="coding.html#S41">Declare each variable
- and struct on its own line.</a></dt>
-
- <dt>4.7.6. <a href="coding.html#S42">Use malloc/zalloc
- sparingly</a></dt>
-
- <dt>4.7.7. <a href="coding.html#S43">The Programmer Who Uses
- 'malloc' is Responsible for Ensuring 'free'</a></dt>
-
- <dt>4.7.8. <a href="coding.html#S44">Add loaders to the
- `file_list' structure and in order</a></dt>
-
- <dt>4.7.9. <a href="coding.html#S45">"Uncertain" new code
- and/or changes to existing code, use XXX</a></dt>
- </dl>
- </dd>
-
- <dt>4.8. <a href="coding.html#S46">Addendum: Template for files
- and function comment blocks:</a></dt>
- </dl>
- </dd>
-
- <dt>5. <a href="testing.html">Testing Guidelines</a></dt>
-
- <dd>
- <dl>
- <dt>5.1. <a href="testing.html#TESTING-PLAN">Testplan for
- releases</a></dt>
-
- <dt>5.2. <a href="testing.html#TESTING-REPORT">Test
- reports</a></dt>
- </dl>
- </dd>
-
- <dt>6. <a href="newrelease.html">Releasing a New Version</a></dt>
-
- <dd>
- <dl>
- <dt>6.1. <a href="newrelease.html#VERSIONNUMBERS">Version
- numbers</a></dt>
-
- <dt>6.2. <a href="newrelease.html#BEFORERELEASE">Before the
- Release: Freeze</a></dt>
-
- <dt>6.3. <a href="newrelease.html#THERELEASE">Building and
- Releasing the Packages</a></dt>
-
- <dd>
- <dl>
- <dt>6.3.1. <a href="newrelease.html#PACK-GUIDELINES">Note on
- Privoxy Packaging</a></dt>
-
- <dt>6.3.2. <a href=
- "newrelease.html#NEWRELEASE-TARBALL">Source Tarball</a></dt>
-
- <dt>6.3.3. <a href="newrelease.html#NEWRELEASE-RPM">SuSE,
- Conectiva or Red Hat RPM</a></dt>
-
- <dt>6.3.4. <a href=
- "newrelease.html#NEWRELEASE-OS2">OS/2</a></dt>
-
- <dt>6.3.5. <a href=
- "newrelease.html#NEWRELEASE-SOLARIS">Solaris</a></dt>
-
- <dt>6.3.6. <a href=
- "newrelease.html#NEWRELEASE-WINDOWS">Windows</a></dt>
-
- <dt>6.3.7. <a href=
- "newrelease.html#NEWRELEASE-DEBIAN">Debian</a></dt>
-
- <dt>6.3.8. <a href="newrelease.html#NEWRELEASE-MACOSX">Mac OS
- X</a></dt>
-
- <dt>6.3.9. <a href=
- "newrelease.html#NEWRELEASE-FREEBSD">FreeBSD</a></dt>
-
- <dt>6.3.10. <a href="newrelease.html#NEWRELEASE-HPUX">HP-UX
- 11</a></dt>
-
- <dt>6.3.11. <a href="newrelease.html#NEWRELEASE-AMIGA">Amiga
- OS</a></dt>
-
- <dt>6.3.12. <a href=
- "newrelease.html#NEWRELEASE-AIX">AIX</a></dt>
- </dl>
- </dd>
-
- <dt>6.4. <a href="newrelease.html#RELEASING">Uploading and
- Releasing Your Package</a></dt>
-
- <dt>6.5. <a href="newrelease.html#AFTERRELEASE">After the
- Release</a></dt>
- </dl>
- </dd>
-
- <dt>7. <a href="webserver-update.html">Update the Webserver</a></dt>
- </dl>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"> </td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top"><a href=
- "introduction.html" accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top"> </td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">Introduction</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Introduction</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy Developer Manual" href="index.html">
- <link rel="PREVIOUS" title="Privoxy Developer Manual" href="index.html">
- <link rel="NEXT" title="The CVS Repository" href="cvs.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy Developer Manual</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href="index.html"
- accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href="cvs.html"
- accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="INTRODUCTION" id="INTRODUCTION">1.
- Introduction</a></h1>
-
- <p><span class="APPLICATION">Privoxy</span>, as an heir to <span class=
- "APPLICATION">Junkbuster</span>, is a Free Software project and the code
- is licensed under the GNU General Public License version 2. As such,
- <span class="APPLICATION">Privoxy</span> development is potentially open
- to anyone who has the time, knowledge, and desire to contribute in any
- capacity. Our goals are simply to continue the mission, to improve
- <span class="APPLICATION">Privoxy</span>, and to make it available to as
- wide an audience as possible.</p>
-
- <p>One does not have to be a programmer to contribute. Packaging,
- testing, documenting and porting, are all important jobs as well.</p>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="QUICKSTART" id="QUICKSTART">1.1. Quickstart
- to Privoxy Development</a></h2>
-
- <p>The first step is to join the <a href=
- "mailto:ijbswa-developers@lists.sourceforge.net" target=
- "_top">developer's mailing list</a>. You can submit your ideas, or even
- better patches. Patches are best submitted to the Sourceforge tracker
- set up for this purpose, but can be sent to the list for review
- too.</p>
-
- <p>You will also need to have a cvs package installed, which will
- entail having ssh installed as well (which seems to be a requirement of
- SourceForge), in order to access the cvs repository. Having the GNU
- build tools is also going to be important (particularly, autoconf and
- gmake).</p>
-
- <p>For the time being (read, this section is under construction), you
- can also refer to the extensive comments in the source code. In fact,
- reading the code is recommended in any case.</p>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="index.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href="cvs.html"
- accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">Privoxy Developer
- Manual</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">The CVS Repository</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Releasing a New Version</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy Developer Manual" href="index.html">
- <link rel="PREVIOUS" title="Testing Guidelines" href="testing.html">
- <link rel="NEXT" title="Update the Webserver" href="webserver-update.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy Developer Manual</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href="testing.html"
- accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href=
- "webserver-update.html" accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="NEWRELEASE" id="NEWRELEASE">6. Releasing a New
- Version</a></h1>
-
- <p>When we release versions of <span class="APPLICATION">Privoxy</span>,
- our work leaves our cozy secret lab and has to work in the cold
- RealWorld[tm]. Once it is released, there is no way to call it back, so
- it is very important that great care is taken to ensure that everything
- runs fine, and not to introduce problems in the very last minute.</p>
-
- <p>So when releasing a new version, please adhere exactly to the
- procedure outlined in this chapter.</p>
-
- <p>The following programs are required to follow this process: <tt class=
- "FILENAME">ncftpput</tt> (ncftp), <tt class="FILENAME">scp, ssh</tt>
- (ssh), <tt class="FILENAME">gmake</tt> (GNU's version of make), autoconf,
- cvs.</p>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="VERSIONNUMBERS" id="VERSIONNUMBERS">6.1.
- Version numbers</a></h2>
-
- <p>First you need to determine which version number the release will
- have. <span class="APPLICATION">Privoxy</span> version numbers consist
- of three numbers, separated by dots, like in X.Y.Z (e.g. 3.0.0),
- where:</p>
-
- <ul>
- <li>
- <p>X, the version major, is rarely ever changed. It is increased by
- one if turning a development branch into stable substantially
- changes the functionality, user interface or configuration syntax.
- Majors 1 and 2 were <span class="APPLICATION">Junkbuster</span>,
- and 3 will be the first stable <span class=
- "APPLICATION">Privoxy</span> release.</p>
- </li>
-
- <li>
- <p>Y, the version minor, represents the branch within the major
- version. At any point in time, there are two branches being
- maintained: The stable branch, with an even minor, say, 2N, in
- which no functionality is being added and only bug-fixes are made,
- and 2N+1, the development branch, in which the further development
- of <span class="APPLICATION">Privoxy</span> takes place. This
- enables us to turn the code upside down and inside out, while at
- the same time providing and maintaining a stable version. The minor
- is reset to zero (and one) when the major is incremented. When a
- development branch has matured to the point where it can be turned
- into stable, the old stable branch 2N is given up (i.e. no longer
- maintained), the former development branch 2N+1 becomes the new
- stable branch 2N+2, and a new development branch 2N+3 is
- opened.</p>
- </li>
-
- <li>
- <p>Z, the point or sub version, represents a release of the
- software within a branch. It is therefore incremented immediately
- before each code freeze. In development branches, only the even
- point versions correspond to actual releases, while the odd ones
- denote the evolving state of the sources on CVS in between. It
- follows that Z is odd on CVS in development branches most of the
- time. There, it gets increased to an even number immediately before
- a code freeze, and is increased to an odd number again immediately
- thereafter. This ensures that builds from CVS snapshots are easily
- distinguished from released versions. The point version is reset to
- zero when the minor changes.</p>
-
- <p>Stable branches work a little differently, since there should be
- little to no development happening in such branches. Remember, only
- bugfixes, which presumably should have had some testing before
- being committed. Stable branches will then have their version
- reported as <tt class="LITERAL">0.0.0</tt>, during that period
- between releases when changes are being added. This is to denote
- that this code is <span class="emphasis"><i class="EMPHASIS">not
- for release</i></span>. Then as the release nears, the version is
- bumped according: e.g. <tt class="LITERAL">3.0.1 -> 0.0.0 ->
- 3.0.2</tt>.</p>
- </li>
- </ul>
-
- <p>In summary, the main CVS trunk is the development branch where new
- features are being worked on for the next stable series. This should
- almost always be where the most activity takes place. There is always
- at least one stable branch from the trunk, e.g now it is <tt class=
- "LITERAL">3.0</tt>, which is only used to release stable versions. Once
- the initial *.0 release of the stable branch has been done, then as a
- rule, only bugfixes that have had prior testing should be committed to
- the stable branch. Once there are enough bugfixes to justify a new
- release, the version of this branch is again incremented Example: 3.0.0
- -> 3.0.1 -> 3.0.2, etc are all stable releases from within the
- stable branch. 3.1.x is currently the main trunk, and where work on
- 3.2.x is taking place. If any questions, please post to the devel list
- <span class="emphasis"><i class="EMPHASIS">before</i></span> committing
- to a stable branch!</p>
-
- <p>Developers should remember too that if they commit a bugfix to the
- stable branch, this will more than likely require a separate submission
- to the main trunk, since these are separate development trees within
- CVS. If you are working on both, then this would require at least two
- separate check outs (i.e main trunk, <span class="emphasis"><i class=
- "EMPHASIS">and</i></span> the stable release branch, which is
- <tt class="LITERAL">v_3_0_branch</tt> at the moment).</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="BEFORERELEASE" id="BEFORERELEASE">6.2.
- Before the Release: Freeze</a></h2>
-
- <p>The following <span class="emphasis"><i class="EMPHASIS">must be
- done by one of the developers</i></span> prior to each new release.</p>
-
- <ul>
- <li>
- <p>Make sure that everybody who has worked on the code in the last
- couple of days has had a chance to yell <span class=
- "QUOTE">"no!"</span> in case they have pending changes/fixes in
- their pipelines. Announce the freeze so that nobody will interfere
- with last minute changes.</p>
- </li>
-
- <li>
- <p>Increment the version number (point from odd to even in
- development branches!) in <tt class="FILENAME">configure.in</tt>.
- (RPM spec files will need to be incremented as well.)</p>
- </li>
-
- <li>
- <p>If <tt class="FILENAME">default.action</tt> has changed since
- last release (i.e. software release or standalone actions file
- release), bump up its version info to A.B in this line:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- {+add-header{X-Actions-File-Version: A.B} -filter -no-popups}
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Then change the version info in doc/webserver/actions/index.php,
- line: '$required_actions_file_version = "A.B";'</p>
- </li>
-
- <li>
- <p>All documentation should be rebuild after the version bump.
- Finished docs should be then be committed to CVS (for those without
- the ability to build these). Some docs may require rather obscure
- processing tools. <tt class="FILENAME">config</tt>, the man page
- (and the html version of the man page) fall in this category.
- REAMDE, the man page, AUTHORS, and config should all also be
- committed to CVS for other packagers. The formal docs should be
- uploaded to the webserver. See the Section "Updating the webserver"
- in this manual for details.</p>
- </li>
-
- <li>
- <p>The <i class="CITETITLE">User Manual</i> is also used for
- context sensitive help for the CGI editor. This is version
- sensitive, so that the user will get appropriate help for his/her
- release. So with each release a fresh version should be uploaded to
- the webserver (this is in addition to the main <i class=
- "CITETITLE">User Manual</i> link from the main page since we need
- to keep manuals for various versions available). The CGI pages will
- link to something like <tt class=
- "LITERAL">http://privoxy.org/$(VERSION)/user-manual/</tt>. This
- will need to be updated for each new release. There is no Makefile
- target for this at this time!!! It needs to be done manually.</p>
- </li>
-
- <li>
- <p>All developers should look at the <tt class=
- "FILENAME">ChangeLog</tt> and make sure noteworthy changes are
- referenced.</p>
- </li>
-
- <li>
- <p><span class="emphasis"><i class="EMPHASIS">Commit all files that
- were changed in the above steps!</i></span></p>
- </li>
-
- <li>
- <p>Tag all files in CVS with the version number with <span class=
- "QUOTE">"<b class="COMMAND">cvs tag v_X_Y_Z</b>"</span>. Don't use
- vX_Y_Z, ver_X_Y_Z, v_X.Y.Z (won't work) etc.</p>
- </li>
-
- <li>
- <p>If the release was in a development branch, increase the point
- version from even to odd (X.Y.(Z+1)) again in <tt class=
- "FILENAME">configure.in</tt> and commit your change.</p>
- </li>
-
- <li>
- <p>On the webserver, copy the user manual to a new top-level
- directory called <tt class="FILENAME">X.Y.Z</tt>. This ensures that
- help links from the CGI pages, which have the version as a prefix,
- will go into the right version of the manual. If this is a
- development branch release, also symlink <tt class=
- "FILENAME">X.Y.(Z-1)</tt> to <tt class="FILENAME">X.Y.Z</tt> and
- <tt class="FILENAME">X.Y.(Z+1)</tt> to <tt class="FILENAME">.</tt>
- (i.e. dot).</p>
- </li>
- </ul>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="THERELEASE" id="THERELEASE">6.3. Building
- and Releasing the Packages</a></h2>
-
- <p>Now the individual packages can be built and released. Note that for
- GPL reasons the first package to be released is always the source
- tarball.</p>
-
- <p>For <span class="emphasis"><i class="EMPHASIS">all</i></span> types
- of packages, including the source tarball, <span class=
- "emphasis"><i class="EMPHASIS">you must make sure that you build from
- clean sources by exporting the right version from CVS into an empty
- directory</i></span> (just press return when asked for a password):</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- mkdir dist # delete or choose different name if it already exists
- cd dist
- cvs -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa login
- cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class="EMPHASIS">Do NOT change</i></span>
- a single bit, including, but not limited to version information after
- export from CVS. This is to make sure that all release packages, and
- with them, all future bug reports, are based on exactly the same
- code.</p>
-
- <div class="WARNING">
- <table class="WARNING" border="1" width="100%">
- <tr>
- <td align="center"><b>Warning</b></td>
- </tr>
-
- <tr>
- <td align="left">
- <p>Every significant release of Privoxy has included at least
- one package that either had incorrect versions of files,
- missing files, or incidental leftovers from a previous build
- process that gave unknown numbers of users headaches to try to
- figure out what was wrong. PLEASE, make sure you are using
- pristene sources, and are following the prescribed process!</p>
- </td>
- </tr>
- </table>
- </div>
-
- <p>Please find additional instructions for the source tarball and the
- individual platform dependent binary packages below. And details on the
- Sourceforge release process below that.</p>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="PACK-GUIDELINES" id=
- "PACK-GUIDELINES">6.3.1. Note on Privoxy Packaging</a></h3>
-
- <p>Please keep these general guidelines in mind when putting together
- your package. These apply to <span class="emphasis"><i class=
- "EMPHASIS">all</i></span> platforms!</p>
-
- <ul>
- <li>
- <p><span class="APPLICATION">Privoxy</span> <span class=
- "emphasis"><i class="EMPHASIS">requires</i></span> write access
- to: all <tt class="FILENAME">*.action</tt> files, all logfiles,
- and the <tt class="FILENAME">trust</tt> file. You will need to
- determine the best way to do this for your platform.</p>
- </li>
-
- <li>
- <p>Please include up to date documentation. At a bare
- minimum:</p>
-
- <table border="0">
- <tbody>
- <tr>
- <td><tt class="FILENAME">LICENSE</tt> (top-level
- directory)</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><tt class="FILENAME">README</tt> (top-level
- directory)</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><tt class="FILENAME">AUTHORS</tt> (top-level
- directory)</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><tt class="FILENAME">man page</tt> (top-level
- directory, Unix-like platforms only)</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><tt class="FILENAME">The User Manual</tt>
- (doc/webserver/user-manual/)</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><tt class="FILENAME">FAQ</tt> (doc/webserver/faq/)</td>
- </tr>
- </tbody>
- </table>
-
- <p>Also suggested: <tt class="FILENAME">Developer Manual</tt>
- (doc/webserver/developer-manual) and <tt class=
- "FILENAME">ChangeLog</tt> (top-level directory). <tt class=
- "FILENAME">FAQ</tt> and the manuals are HTML docs. There are also
- text versions in <tt class="FILENAME">doc/text/</tt> which could
- conceivably also be included.</p>
-
- <p>The documentation has been designed such that the manuals are
- linked to each other from parallel directories, and should be
- packaged that way. <tt class="FILENAME">privoxy-index.html</tt>
- can also be included and can serve as a focal point for docs and
- other links of interest (and possibly renamed to <tt class=
- "FILENAME">index.html</tt>). This should be one level up from the
- manuals. There is a link also on this page to an HTMLized version
- of the man page. To avoid 404 for this, it is in CVS as
- <tt class="FILENAME">doc/webserver/man-page/privoxy-man-page.html</tt>,
- and should be included along with the manuals. There is also a
- css stylesheets that can be included for better presentation:
- <tt class="FILENAME">p_doc.css</tt>. This should be in the same
- directory with <tt class="FILENAME">privoxy-index.html</tt>,
- (i.e. one level up from the manual directories).</p>
- </li>
-
- <li>
- <p><tt class="FILENAME">user.action</tt> and <tt class=
- "FILENAME">user.filter</tt> are designed for local preferences.
- Make sure these do not get overwritten! <tt class=
- "FILENAME">config</tt> should not be overwritten either. This has
- especially important configuration data in it. <tt class=
- "FILENAME">trust</tt> should be left in tact as well.</p>
- </li>
-
- <li>
- <p>Other configuration files (<tt class=
- "FILENAME">default.action</tt> and <tt class=
- "FILENAME">default.filter</tt>) should be installed as the new
- defaults, but all previously installed configuration files should
- be preserved as backups. This is just good manners :-) These
- files are likely to change between releases and contain important
- new features and bug fixes.</p>
- </li>
-
- <li>
- <p>Please check platform specific notes in this doc, if you
- haven't done <span class="QUOTE">"Privoxy"</span> packaging
- before for other platform specific issues. Conversely, please add
- any notes that you know are important for your platform (or
- contact one of the doc maintainers to do this if you can't).</p>
- </li>
-
- <li>
- <p>Packagers should do a <span class="QUOTE">"clean"</span>
- install of their package after building it. So any previous
- installs should be removed first to ensure the integrity of the
- newly built package. Then run the package for a while to make
- sure there are no obvious problems, before uploading.</p>
- </li>
- </ul>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="NEWRELEASE-TARBALL" id=
- "NEWRELEASE-TARBALL">6.3.2. Source Tarball</a></h3>
-
- <p>First, <span class="emphasis"><i class="EMPHASIS">make sure that
- you have freshly exported the right version into an empty
- directory</i></span>. (See "Building and releasing packages" above).
- Then run:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- cd current
- autoheader && autoconf && ./configure
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Then do:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- make tarball-dist
-</pre>
- </td>
- </tr>
- </table>
-
- <p>To upload the package to Sourceforge, simply issue</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- make tarball-upload
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Go to the displayed URL and release the file publicly on
- Sourceforge. For the change log field, use the relevant section of
- the <tt class="FILENAME">ChangeLog</tt> file.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="NEWRELEASE-RPM" id="NEWRELEASE-RPM">6.3.3.
- SuSE, Conectiva or Red Hat RPM</a></h3>
-
- <p>In following text, replace <tt class=
- "REPLACEABLE"><i>dist</i></tt> with either <span class=
- "QUOTE">"rh"</span> for Red Hat or <span class="QUOTE">"suse"</span>
- for SuSE.</p>
-
- <p>First, <span class="emphasis"><i class="EMPHASIS">make sure that
- you have freshly exported the right version into an empty
- directory</i></span>. (See "Building and releasing packages"
- above).</p>
-
- <p>As the only exception to not changing anything after export from
- CVS, now examine the file <tt class=
- "FILENAME">privoxy-</tt><tt class="REPLACEABLE"><i>dist</i></tt><tt class="FILENAME">.spec</tt>
- and make sure that the version information and the RPM release number
- are correct. The RPM release numbers for each version start at one.
- Hence it must be reset to one if this is the first RPM for <tt class=
- "REPLACEABLE"><i>dist</i></tt> which is built from version X.Y.Z.
- Check the <a href=
- "http://sourceforge.net/project/showfiles.php?group_id=11118" target=
- "_top">file list</a> if unsure. Else, it must be set to the highest
- already available RPM release number for that version plus one.</p>
-
- <p>Then run:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- cd current
- autoheader && autoconf && ./configure
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Then do</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- make <tt class="REPLACEABLE"><i>dist</i></tt>-dist
-</pre>
- </td>
- </tr>
- </table>
-
- <p>To upload the package to Sourceforge, simply issue</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- make <tt class="REPLACEABLE"><i>dist</i></tt>-upload <tt class=
-"REPLACEABLE"><i>rpm_packagerev</i></tt>
-</pre>
- </td>
- </tr>
- </table>
-
- <p>where <tt class="REPLACEABLE"><i>rpm_packagerev</i></tt> is the
- RPM release number as determined above. Go to the displayed URL and
- release the file publicly on Sourceforge. Use the release notes and
- change log from the source tarball package.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="NEWRELEASE-OS2" id="NEWRELEASE-OS2">6.3.4.
- OS/2</a></h3>
-
- <p>First, <span class="emphasis"><i class="EMPHASIS">make sure that
- you have freshly exported the right version into an empty
- directory</i></span>. (See "Building and releasing packages" above).
- Then get the OS/2 Setup module:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co os2setup
-</pre>
- </td>
- </tr>
- </table>
-
- <p>You will need a mix of development tools. The main compilation
- takes place with IBM Visual Age C++. Some ancillary work takes place
- with GNU tools, available from various sources like hobbes.nmsu.edu.
- Specificially, you will need <tt class="FILENAME">autoheader</tt>,
- <tt class="FILENAME">autoconf</tt> and <tt class="FILENAME">sh</tt>
- tools. The packaging takes place with WarpIN, available from various
- sources, including its home page: <a href=
- "http://www.xworkplace.org/" target="_top">xworkplace</a>.</p>
-
- <p>Change directory to the <tt class="FILENAME">os2setup</tt>
- directory. Edit the os2build.cmd file to set the final executable
- filename. For example,</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- installExeName='privoxyos2_setup_X.Y.Z.exe'
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Next, edit the <tt class="FILENAME">IJB.wis</tt> file so the
- release number matches in the <tt class="FILENAME">PACKAGEID</tt>
- section:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- PACKAGEID="Privoxy Team\Privoxy\Privoxy Package\X\Y\Z"
-</pre>
- </td>
- </tr>
- </table>
-
- <p>You're now ready to build. Run:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- os2build
-</pre>
- </td>
- </tr>
- </table>
-
- <p>You will find the WarpIN-installable executable in the <tt class=
- "FILENAME">./files</tt> directory. Upload this anonymously to
- <tt class="FILENAME">uploads.sourceforge.net/incoming</tt>, create a
- release for it, and you're done. Use the release notes and Change Log
- from the source tarball package.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="NEWRELEASE-SOLARIS" id=
- "NEWRELEASE-SOLARIS">6.3.5. Solaris</a></h3>
-
- <p>Login to Sourceforge's compilefarm via ssh:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- ssh cf.sourceforge.net
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Choose the right operating system (not the Debian one). When
- logged in, <span class="emphasis"><i class="EMPHASIS">make sure that
- you have freshly exported the right version into an empty
- directory</i></span>. (See "Building and releasing packages" above).
- Then run:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- cd current
- autoheader && autoconf && ./configure
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Then run</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- gmake solaris-dist
-</pre>
- </td>
- </tr>
- </table>
-
- <p>which creates a gzip'ed tar archive. Sadly, you cannot use
- <b class="COMMAND">make solaris-upload</b> on the Sourceforge machine
- (no ncftpput). You now have to manually upload the archive to
- Sourceforge's ftp server and release the file publicly. Use the
- release notes and Change Log from the source tarball package.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="NEWRELEASE-WINDOWS" id=
- "NEWRELEASE-WINDOWS">6.3.6. Windows</a></h3>
-
- <p>You should ensure you have the latest version of Cygwin (from
- <a href="http://www.cygwin.com/" target=
- "_top">http://www.cygwin.com/</a>). Run the following commands from
- within a Cygwin bash shell.</p>
-
- <p>First, <span class="emphasis"><i class="EMPHASIS">make sure that
- you have freshly exported the right version into an empty
- directory</i></span>. (See "Building and releasing packages" above).
- Then get the Windows setup module:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co winsetup
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Then you can build the package. This is fully automated, and is
- controlled by <tt class="FILENAME">winsetup/GNUmakefile</tt>. All you
- need to do is:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- cd winsetup
- make
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Now you can manually rename <tt class=
- "FILENAME">privoxy_setup.exe</tt> to <tt class=
- "FILENAME">privoxy_setup_X_Y_Z.exe</tt>, and upload it to
- SourceForge. When releasing the package on SourceForge, use the
- release notes and Change Log from the source tarball package.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="NEWRELEASE-DEBIAN" id=
- "NEWRELEASE-DEBIAN">6.3.7. Debian</a></h3>
-
- <p>First, <span class="emphasis"><i class="EMPHASIS">make sure that
- you have freshly exported the right version into an empty
- directory</i></span>. (See "Building and releasing packages" above).
- Then add a log entry to <tt class="FILENAME">debian/changelog</tt>,
- if it is not already there, for example by running:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- debchange -v 3.0.21-stable-1 "New upstream version"
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Then, run:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- dpkg-buildpackage -rfakeroot -us -uc -b
-</pre>
- </td>
- </tr>
- </table>
-
- <p>This will create <tt class=
- "FILENAME">../privoxy_3.0.21-stable-1_i386.deb</tt> which can be
- uploaded. To upload the package to Sourceforge, simply issue</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- make debian-upload
-</pre>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="NEWRELEASE-MACOSX" id=
- "NEWRELEASE-MACOSX">6.3.8. Mac OS X</a></h3>
-
- <p>First, <span class="emphasis"><i class="EMPHASIS">make sure that
- you have freshly exported the right version into an empty
- directory</i></span>. (See "Building and releasing packages"
- above).</p>
-
- <p>There are three modules available in the CVS repository for use on
- Mac OS X, though technically only two of them generate a release (the
- other can be used to install from source).</p>
-
- <div class="SECT4">
- <h4 class="SECT4"><a name="OS-X-OSXPACKAGEBUILDER-MODULE" id=
- "OS-X-OSXPACKAGEBUILDER-MODULE">6.3.8.1. OSXPackageBuilder
- module</a></h4>
-
- <p>The OSXPackageBuilder module generates OS X installer packages
- supporting all Macs running OS X 10.4 and above. Obtain it from CVS
- as follows into a folder parallel to the exported privoxy
- source:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co OSXPackageBuilder
-</pre>
- </td>
- </tr>
- </table>
-
- <p>The module contains complete instructions on its usage in the
- file <tt class="FILENAME">OS X Package Builder HOWTO.txt</tt>.</p>
-
- <p>Once the package(s) have been generated, you can then upload
- them directly to the Files section of the Sourceforge project in
- the Macintosh (OS X) folder. Each new version release of Privoxy
- should have a new subfolder created in which to store its files.
- Please ensure that the folder contains a readme file that makes it
- clear which package is for whichversion of OS X.</p>
- </div>
-
- <div class="SECT4">
- <h4 class="SECT4"><a name="OS-X-OSXSETUP-MODULE" id=
- "OS-X-OSXSETUP-MODULE">6.3.8.2. osxsetup module
- (DEPRECATED)</a></h4>
-
- <p><span class="emphasis"><i class="EMPHASIS">This module is
- deprecated since the installer it generates places all Privoxy
- files in one folder in a non-standard location, and supports only
- Intel Macs running OS X 10.6 or higher.</i></span></p>
-
- <p>Check out the module from CVS as follows into a folder parallel
- to the exported privoxy source:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co osxsetup
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Then run:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- cd osxsetup
- build
-</pre>
- </td>
- </tr>
- </table>
-
- <p>This will run <tt class="FILENAME">autoheader</tt>, <tt class=
- "FILENAME">autoconf</tt> and <tt class="FILENAME">configure</tt> as
- well as <tt class="FILENAME">make</tt>. Finally, it will copy over
- the necessary files to the ./osxsetup/files directory for further
- processing by <tt class="FILENAME">PackageMaker</tt>.</p>
-
- <p>Bring up PackageMaker with the PrivoxyPackage.pmsp definition
- file, modify the package name to match the release, and hit the
- "Create package" button. If you specify ./Privoxy.pkg as the output
- package name, you can then create the distributable zip file with
- the command:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- zip -r privoxyosx_setup_x.y.z.zip Privoxy.pkg
-</pre>
- </td>
- </tr>
- </table>
-
- <p>You can then upload this file directly to the Files section of
- the Sourceforge project in the Macintosh (OS X) folder. Each new
- version release of Privoxy should have a new subfolder created in
- which to store its files. Please ensure that the folder contains a
- readme file that makes it clear which version(s) of OS X the
- package supports.</p>
- </div>
-
- <div class="SECT4">
- <h4 class="SECT4"><a name="OS-X-MACSETUP-MODULE" id=
- "OS-X-MACSETUP-MODULE">6.3.8.3. macsetup module</a></h4>
-
- <p>The macsetup module is ideal if you wish to build and install
- Privoxy from source on a single machine.</p>
-
- <p>Check out the module from CVS as follows into a folder parallel
- to the exported privoxy source:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co macsetup
-</pre>
- </td>
- </tr>
- </table>
-
- <p>The module contains complete instructions on its usage in its
- <tt class="FILENAME">README</tt> file. The end result will be the
- exported version of Privoxy installed on the build machine.</p>
- </div>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="NEWRELEASE-FREEBSD" id=
- "NEWRELEASE-FREEBSD">6.3.9. FreeBSD</a></h3>
-
- <p>Login to Sourceforge's compile-farm via ssh:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- ssh cf.sourceforge.net
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Choose the right operating system. When logged in, <span class=
- "emphasis"><i class="EMPHASIS">make sure that you have freshly
- exported the right version into an empty directory</i></span>. (See
- "Building and releasing packages" above). Then run:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- cd current
- autoheader && autoconf && ./configure
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Then run:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- gmake freebsd-dist
-</pre>
- </td>
- </tr>
- </table>
-
- <p>which creates a gzip'ed tar archive. Sadly, you cannot use
- <b class="COMMAND">make freebsd-upload</b> on the Sourceforge machine
- (no ncftpput). You now have to manually upload the archive to
- Sourceforge's ftp server and release the file publicly. Use the
- release notes and Change Log from the source tarball package.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="NEWRELEASE-HPUX" id=
- "NEWRELEASE-HPUX">6.3.10. HP-UX 11</a></h3>
-
- <p>First, <span class="emphasis"><i class="EMPHASIS">make sure that
- you have freshly exported the right version into an empty
- directory</i></span>. (See "Building and releasing packages" above).
- Then run:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- cd current
- autoheader && autoconf && ./configure
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Then do FIXME.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="NEWRELEASE-AMIGA" id=
- "NEWRELEASE-AMIGA">6.3.11. Amiga OS</a></h3>
-
- <p>First, <span class="emphasis"><i class="EMPHASIS">make sure that
- you have freshly exported the right version into an empty
- directory</i></span>. (See "Building and releasing packages" above).
- Then run:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- cd current
- autoheader && autoconf && ./configure
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Then do FIXME.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="NEWRELEASE-AIX" id=
- "NEWRELEASE-AIX">6.3.12. AIX</a></h3>
-
- <p>Login to Sourceforge's compilefarm via ssh:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- ssh cf.sourceforge.net
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Choose the right operating system. When logged in, <span class=
- "emphasis"><i class="EMPHASIS">make sure that you have freshly
- exported the right version into an empty directory</i></span>. (See
- "Building and releasing packages" above). Then run:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- cd current
- autoheader && autoconf && ./configure
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Then run:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- make aix-dist
-</pre>
- </td>
- </tr>
- </table>
-
- <p>which creates a gzip'ed tar archive. Sadly, you cannot use
- <b class="COMMAND">make aix-upload</b> on the Sourceforge machine (no
- ncftpput). You now have to manually upload the archive to
- Sourceforge's ftp server and release the file publicly. Use the
- release notes and Change Log from the source tarball package.</p>
- </div>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="RELEASING" id="RELEASING">6.4. Uploading and
- Releasing Your Package</a></h2>
-
- <p>After the package is ready, it is time to upload it to SourceForge,
- and go through the release steps. The upload is done via FTP:</p>
-
- <ul>
- <li>
- <p>Upload to: <a href="ftp://upload.sourceforge.net/incoming"
- target="_top">ftp://upload.sourceforge.net/incoming</a></p>
- </li>
-
- <li>
- <p>user: <tt class="LITERAL">anonymous</tt></p>
- </li>
-
- <li>
- <p>password: <tt class=
- "LITERAL">ijbswa-developers@lists.sourceforge.net</tt></p>
- </li>
- </ul>
-
- <p>Or use the <b class="COMMAND">make</b> targets as described
- above.</p>
-
- <p>Once this done go to <a href=
- "https://sourceforge.net/project/admin/editpackages.php?group_id=11118"
- target=
- "_top">https://sourceforge.net/project/admin/editpackages.php?group_id=11118</a>,
- making sure you are logged in. Find your target platform in the second
- column, and click <tt class="LITERAL">Add Release</tt>. You will then
- need to create a new release for your package, using the format of
- <tt class="LITERAL">$VERSION ($CODE_STATUS)</tt>, e.g. <span class=
- "emphasis"><i class="EMPHASIS">3.0.21 (beta)</i></span>.</p>
-
- <p>Now just follow the prompts. Be sure to add any appropriate Release
- notes. You should see your freshly uploaded packages in <span class=
- "QUOTE">"Step 2. Add Files To This Release"</span>. Check the
- appropriate box(es). Remember at each step to hit the <span class=
- "QUOTE">"Refresh/Submit"</span> buttons! You should now see your
- file(s) listed in Step 3. Fill out the forms with the appropriate
- information for your platform, being sure to hit <span class=
- "QUOTE">"Update"</span> for each file. If anyone is monitoring your
- platform, check the <span class="QUOTE">"email"</span> box at the very
- bottom to notify them of the new package. This should do it!</p>
-
- <p>If you have made errors, or need to make changes, you can go through
- essentially the same steps, but select <tt class="LITERAL">Edit
- Release</tt>, instead of <tt class="LITERAL">Add Release</tt>.</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="AFTERRELEASE" id="AFTERRELEASE">6.5. After
- the Release</a></h2>
-
- <p>When all (or: most of the) packages have been uploaded and made
- available, send an email to the <a href=
- "mailto:ijbswa-announce@lists.sourceforge.net" target="_top">announce
- mailing list</a>, Subject: "Version X.Y.Z available for download". Be
- sure to include the <a href=
- "http://sourceforge.net/project/showfiles.php?group_id=11118" target=
- "_top">download location</a>, the release notes and the Changelog.
- Also, post an updated News item on the project page Sourceforge, and
- update the Home page and docs linked from the Home page (see below).
- Other news sites and release oriented sites, such as Freshmeat, should
- also be notified.</p>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="testing.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href=
- "webserver-update.html" accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">Testing Guidelines</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">Update the Webserver</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Testing Guidelines</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy Developer Manual" href="index.html">
- <link rel="PREVIOUS" title="Coding Guidelines" href="coding.html">
- <link rel="NEXT" title="Releasing a New Version" href="newrelease.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy Developer Manual</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href="coding.html"
- accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href=
- "newrelease.html" accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="TESTING" id="TESTING">5. Testing
- Guidelines</a></h1>
-
- <p>To be filled.</p>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="TESTING-PLAN" id="TESTING-PLAN">5.1.
- Testplan for releases</a></h2>
-
- <p>Explain release numbers. major, minor. developer releases. etc.</p>
-
- <ol type="1">
- <li>
- <p>Remove any existing rpm with rpm -e</p>
- </li>
-
- <li>
- <p>Remove any file that was left over. This includes (but is not
- limited to)</p>
-
- <ul>
- <li>
- <p>/var/log/privoxy</p>
- </li>
-
- <li>
- <p>/etc/privoxy</p>
- </li>
-
- <li>
- <p>/usr/sbin/privoxy</p>
- </li>
-
- <li>
- <p>/etc/init.d/privoxy</p>
- </li>
-
- <li>
- <p>/usr/doc/privoxy*</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Install the rpm. Any error messages?</p>
- </li>
-
- <li>
- <p>start,stop,status <span class="APPLICATION">Privoxy</span> with
- the specific script (e.g. /etc/rc.d/init/privoxy stop). Reboot your
- machine. Does autostart work?</p>
- </li>
-
- <li>
- <p>Start browsing. Does <span class="APPLICATION">Privoxy</span>
- work? Logfile written?</p>
- </li>
-
- <li>
- <p>Remove the rpm. Any error messages? All files removed?</p>
- </li>
- </ol>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="TESTING-REPORT" id="TESTING-REPORT">5.2.
- Test reports</a></h2>
-
- <p>Please submit test reports only with the <a href=
- "http://sourceforge.net/tracker/?func=add&group_id=11118&atid=395005"
- target="_top">test form</a> at sourceforge. Three simple steps:</p>
-
- <ul>
- <li>
- <p>Select category: the distribution you test on.</p>
- </li>
-
- <li>
- <p>Select group: the version of <span class=
- "APPLICATION">Privoxy</span> that we are about to release.</p>
- </li>
-
- <li>
- <p>Fill the Summary and Detailed Description with something
- intelligent (keep it short and precise).</p>
- </li>
- </ul>Do not mail to the mailing list (we cannot keep track on issues
- there).
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="coding.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href="newrelease.html"
- accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">Coding Guidelines</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">Releasing a New
- Version</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Update the Webserver</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy Developer Manual" href="index.html">
- <link rel="PREVIOUS" title="Releasing a New Version" href=
- "newrelease.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy Developer Manual</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href=
- "newrelease.html" accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"> </td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="WEBSERVER-UPDATE" id="WEBSERVER-UPDATE">7.
- Update the Webserver</a></h1>
-
- <p>The webserver should be updated at least with each stable release.
- When updating, please follow these steps to make sure that no broken
- links, inconsistent contents or permission problems will occur (as it has
- many times in the past!):</p>
-
- <p>If you have changed anything in the stable-branch documentation source
- SGML files, do:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- make dok
-</pre>
- </td>
- </tr>
- </table>
-
- <p>That will generate <tt class=
- "FILENAME">doc/webserver/user-manual</tt>, <tt class=
- "FILENAME">doc/webserver/developer-manual</tt>, <tt class=
- "FILENAME">doc/webserver/faq</tt>, <tt class=
- "FILENAME">doc/webserver/index.html</tt> automatically.</p>
-
- <p>If you changed the manual page sources, generate <tt class=
- "FILENAME">doc/webserver/man-page/privoxy-man-page.html</tt> by running
- <span class="QUOTE">"<b class="COMMAND">make man</b>"</span>. (This is a
- separate target due to dependencies on some obscure perl scripts [now in
- CVS, but not well tested]. See comments in <tt class=
- "FILENAME">GNUmakefile</tt>.)</p>
-
- <p>If you want to add new files to the webserver, create them locally in
- the <tt class="FILENAME">doc/webserver/*</tt> directory (or create new
- directories under <tt class="FILENAME">doc/webserver</tt>).</p>
-
- <p>Next, commit any changes from the above steps to CVS. All set? If
- these are docs in the stable branch, then do:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- make webserver
-</pre>
- </td>
- </tr>
- </table>
-
- <p>This will do the upload to <a href="http://www.privoxy.org/" target=
- "_top">the webserver</a> (www.privoxy.org) and ensure all files and
- directories there are group writable.</p>
-
- <p>Please do <span class="emphasis"><i class="EMPHASIS">NOT</i></span>
- use any other means of transferring files to the webserver to avoid
- permission problems. Also, please do not upload docs from development
- branches or versions. The publicly posted docs should be in sync with the
- last official release.</p>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="newrelease.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"> </td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">Releasing a New
- Version</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top"> </td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Configuration</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy Frequently Asked Questions" href=
- "index.html">
- <link rel="PREVIOUS" title="Installation" href="installation.html">
- <link rel="NEXT" title="Miscellaneous" href="misc.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy Frequently Asked
- Questions</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href=
- "installation.html" accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href="misc.html"
- accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="CONFIGURATION" id="CONFIGURATION">3.
- Configuration</a></h1>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="AEN366" id="AEN366">3.1. What exactly is an
- <span class="QUOTE">"actions"</span> file?</a></h3>
-
- <p><span class="APPLICATION">Privoxy</span> utilizes the concept of
- <span class="QUOTE">" <a href=
- "../user-manual/actions-file.html#ACTIONS" target=
- "_top">actions</a>"</span> that are used to manipulate and control web
- page data. <a href="../user-manual/actions-file.html" target=
- "_top">Actions files</a> are where these <a href=
- "../user-manual/actions-file.html#ACTIONS" target="_top">actions</a>
- that <span class="APPLICATION">Privoxy</span> could take while
- processing a certain request, are configured. Typically, you would
- define a set of default actions that apply globally to all URLs, then
- add exceptions to these defaults where needed. There is a wide array of
- actions available that give the user a high degree of control and
- flexibility on how to process each and every web page.</p>
-
- <p>Actions can be defined on a <a href=
- "../user-manual/actions-file.html#AF-PATTERNS" target="_top">URL
- pattern</a> basis, i.e. for single URLs, whole web sites, groups or
- parts thereof etc. Actions can also be grouped together and then
- applied to requests matching one or more patterns. There are many
- possible actions that might apply to any given site. As an example, if
- you are blocking <a href="http://en.wikipedia.org/wiki/Browser_cookie"
- target="_top">cookies</a> as one of your default actions, but need to
- accept cookies from a given site, you would need to define an exception
- for this site in one of your actions files, preferably in <tt class=
- "FILENAME">user.action</tt>.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="ACTIONSS" id="ACTIONSS">3.2. The
- <span class="QUOTE">"actions"</span> concept confuses me. Please list
- some of these <span class="QUOTE">"actions"</span>.</a></h3>
-
- <p>For a comprehensive discussion of the actions concept, please refer
- to the <a href="../user-manual/actions-file.html" target="_top">actions
- file chapter</a> in the <a href="../user-manual/index.html" target=
- "_top">User Manual</a>. It includes a <a href=
- "../user-manual/actions-file.html#ACTIONS" target="_top">list of all
- actions</a> and an <a href=
- "../user-manual/actions-file.html#ACT-EXAMPLES" target="_top">actions
- file tutorial</a> to get you started.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="AEN389" id="AEN389">3.3. How are actions
- files configured? What is the easiest way to do this?</a></h3>
-
- <p>Actions files are just text files in a special syntax and can be
- edited with a text editor. But probably the easiest way is to access
- <span class="APPLICATION">Privoxy</span>'s user interface with your web
- browser at <a href="http://config.privoxy.org/" target=
- "_top">http://config.privoxy.org/</a> (Shortcut: <a href="http://p.p/"
- target="_top">http://p.p/</a>) and then select <span class=
- "QUOTE">"<a href="http://config.privoxy.org/show-status" target=
- "_top">View & change the current configuration</a>"</span> from the
- menu. Note that this feature must be explicitly enabled in the main
- config file (see <a href=
- "../user-manual/config.html#ENABLE-EDIT-ACTIONS" target=
- "_top">enable-edit-actions</a>).</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="AEN398" id="AEN398">3.4. There are several
- different <span class="QUOTE">"actions"</span> files. What are the
- differences?</a></h3>
-
- <p>Please have a look at the <a href="../user-manual/actions-file.html"
- target="_top">the actions chapter</a> in the <a href=
- "../user-manual/index.html" target="_top">User Manual</a> for a
- detailed explanation.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="GETUPDATES" id="GETUPDATES">3.5. Where can I
- get updated Actions Files?</a></h3>
-
- <p>Based on your feedback and the continuing development, updates of
- <tt class="FILENAME">default.action</tt> will be made available from
- time to time on the <a href=
- "http://sourceforge.net/project/showfiles.php?group_id=11118" target=
- "_top">files section</a> of our <a href=
- "http://sf.net/projects/ijbswa/" target="_top">project page</a>.</p>
-
- <p>If you wish to receive an email notification whenever we release
- updates of <span class="APPLICATION">Privoxy</span> or the actions
- file, <a href=
- "http://lists.sourceforge.net/lists/listinfo/ijbswa-announce/" target=
- "_top">subscribe to our announce mailing list</a>,
- ijbswa-announce@lists.sourceforge.net.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="NEWCONFIG" id="NEWCONFIG">3.6. Can I use my
- old config files?</a></h3>
-
- <p>The syntax and purpose of configuration files has remained roughly
- the same throughout the 3.x series, but backwards compatibility is not
- guaranteed. Also each release contains updated, <span class=
- "QUOTE">"improved"</span> versions and it is therefore strongly
- recommended to install the newer configuration files and merge back
- your modifications.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="DIFFICULT" id="DIFFICULT">3.7. Why is the
- configuration so complicated?</a></h3>
-
- <p><span class="QUOTE">"Complicated"</span> is in the eye of the
- beholder. Those that are familiar with some of the underlying concepts,
- such as regular expression syntax, take to it like a fish takes to
- water. Also, software that tries hard to be <span class="QUOTE">"user
- friendly"</span>, often lacks sophistication and flexibility. There is
- always that trade-off there between power vs. easy-of-use. Furthermore,
- anyone is welcome to contribute ideas and implementations to enhance
- <span class="APPLICATION">Privoxy</span>.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="YAHOO" id="YAHOO">3.8. How can I make my
- Yahoo/Hotmail/Gmail account work?</a></h3>
-
- <p>The default configuration shouldn't impact the usability of any of
- these services. It may, however, make all <a href=
- "http://en.wikipedia.org/wiki/Browser_cookie" target="_top">cookies</a>
- temporary, so that your browser will forget your login credentials in
- between browser sessions. If you would like not to have to log in
- manually each time you access those websites, simply turn off all
- cookie handling for them in the <tt class="FILENAME">user.action</tt>
- file. An example for yahoo might look like:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Allow all cookies for Yahoo login:
-#
-{ -<a href="../user-manual/actions-file.html#CRUNCH-INCOMING-COOKIES" target=
-"_top">crunch-incoming-cookies</a> -<a href=
-"../user-manual/actions-file.html#CRUNCH-OUTGOING-COOKIES" target=
-"_top">crunch-outgoing-cookies</a> -<a href=
-"../user-manual/actions-file.html#SESSION-COOKIES-ONLY" target=
-"_top">session-cookies-only</a> }
-.login.yahoo.com
-</pre>
- </td>
- </tr>
- </table>
-
- <p>These kinds of sites are often quite complex and heavy with <a href=
- "http://en.wikipedia.org/wiki/Javascript" target="_top">Javascript</a>
- and thus <span class="QUOTE">"fragile"</span>. So if <span class=
- "emphasis"><i class="EMPHASIS">still</i></span> a problem, we have an
- <a href="../user-manual/actions-file.html#ALIASES" target=
- "_top">alias</a> just for such sticky situations:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Gmail is a _fragile_ site:
-#
-{ <tt class="LITERAL">fragile</tt> }
- # Gmail is ...
- mail.google.com
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Be sure to flush your browser's caches whenever making these kinds
- of changes, just to make sure the changes <span class=
- "QUOTE">"take"</span>.</p>
-
- <p>Make sure the domain, host and path are appropriate as well. Your
- browser can tell you where you are specifically and you should use that
- information for your configuration settings. Note that above it is not
- referenced as <tt class="LITERAL">gmail.com</tt>, which is a valid
- domain name.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="CONFIGFILES" id="CONFIGFILES">3.9. What's
- the difference between the <span class="QUOTE">"Cautious"</span>,
- <span class="QUOTE">"Medium"</span> and <span class=
- "QUOTE">"Advanced"</span> defaults?</a></h3>
-
- <p>Configuring <span class="APPLICATION">Privoxy</span> is not entirely
- trivial. To help you get started, we provide you with three different
- default action <span class="QUOTE">"profiles"</span> in the web based
- actions file editor at <a href="http://config.privoxy.org/show-status"
- target="_top">http://config.privoxy.org/show-status</a>. See the
- <a href="../user-manual/actions-file.html" target="_top"><i class=
- "CITETITLE">User Manual</i></a> for a list of actions, and how the
- default profiles are set.</p>
-
- <p>Where the defaults are likely to break some sites, exceptions for
- known popular <span class="QUOTE">"problem"</span> sites are included,
- but in general, the more aggressive your default settings are, the more
- exceptions you will have to make later. New users are best to start off
- in <span class="QUOTE">"Cautious"</span> setting. This is safest and
- will have the fewest problems. See the <a href=
- "../user-manual/index.html" target="_top"><i class="CITETITLE">User
- Manual</i></a> for a more detailed discussion.</p>
-
- <p>It should be noted that the <span class="QUOTE">"Advanced"</span>
- profile (formerly known as the <span class=
- "QUOTE">"Adventuresome"</span> profile) is more aggressive, and will
- make use of some of <span class="APPLICATION">Privoxy's</span> advanced
- features. Use at your own risk!</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="BROWSECONFIG" id="BROWSECONFIG">3.10. Why
- can I change the configuration with a browser? Does that not raise
- security issues?</a></h3>
-
- <p>It may seem strange that regular users can edit the config files
- with their browsers, although the whole <tt class=
- "FILENAME">/etc/privoxy</tt> hierarchy belongs to the user <span class=
- "QUOTE">"privoxy"</span>, with only 644 permissions.</p>
-
- <p>When you use the browser-based editor, <span class=
- "APPLICATION">Privoxy</span> itself is writing to the config files.
- Because <span class="APPLICATION">Privoxy</span> is running as the user
- <span class="QUOTE">"privoxy"</span>, it can update its own config
- files.</p>
-
- <p>If you run <span class="APPLICATION">Privoxy</span> for multiple
- untrusted users (e.g. in a LAN) or aren't entirely in control of your
- own browser, you will probably want to make sure that the web-based
- editor and remote toggle features are <span class="QUOTE">"off"</span>
- by setting <span class="QUOTE">"<tt class="LITERAL"><a href=
- "../user-manual/config.html#ENABLE-EDIT-ACTIONS" target=
- "_top">enable-edit-actions</a> 0</tt>"</span> and <span class=
- "QUOTE">"<tt class="LITERAL"><a href=
- "../user-manual/config.html#ENABLE-REMOTE-TOGGLE" target=
- "_top">enable-remote-toggle</a> 0</tt>"</span> in the <a href=
- "../user-manual/config.html" target="_top">main configuration
- file</a>.</p>
-
- <p>As of <span class="APPLICATION">Privoxy</span> 3.0.7 these options
- are disabled by default.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="AEN486" id="AEN486">3.11. What is the
- <tt class="FILENAME">default.filter</tt> file? What is a <span class=
- "QUOTE">"filter"</span>?</a></h3>
-
- <p>The <a href="../user-manual/filter-file.html" target=
- "_top"><tt class="FILENAME">default.filter</tt></a> file is where
- <span class="emphasis"><i class="EMPHASIS">filters</i></span> as
- supplied by the developers are defined. Filters are a special subset of
- actions that can be used to modify or remove web page content or
- headers on the fly. Content filters can be applied to <span class=
- "emphasis"><i class="EMPHASIS">anything</i></span> in the page source,
- header filters can be applied to either server or client headers.
- Regular expressions are used to accomplish this.</p>
-
- <p>There are a number of pre-defined filters to deal with common
- annoyances. The filters are only defined here, to invoke them, you need
- to use the <a href="../user-manual/actions-file.html#FILTER" target=
- "_top"><tt class="LITERAL">filter</tt> action</a> in one of the actions
- files. Content filtering is automatically disabled for inappropriate
- MIME types, but if you know better than Privoxy what should or should
- not be filtered you can filter any content you like.</p>
-
- <p>Filters should <span class="emphasis"><i class=
- "EMPHASIS">not</i></span> be confused with <a href=
- "../user-manual/actions-file.html#BLOCK" target="_top"><tt class=
- "LITERAL">blocks</tt></a>, which is a completely different action, and
- is more typically used to block ads and unwanted sites.</p>
-
- <p>If you are familiar with regular expressions, and HTML, you can look
- at the provided <tt class="FILENAME">default.filter</tt> with a text
- editor and define your own filters. This is potentially a very powerful
- feature, but requires some expertise in both regular expressions and
- HTML/HTTP. You should place any modifications to the default filters,
- or any new ones you create in a separate file, such as <tt class=
- "FILENAME">user.filter</tt>, so they won't be overwritten during
- upgrades. The ability to define multiple filter files in <tt class=
- "FILENAME">config</tt> is a new feature as of v. 3.0.5.</p>
-
- <p>There is no GUI editor option for this part of the configuration,
- but you can disable/enable the various pre-defined filters of the
- included <tt class="FILENAME">default.filter</tt> file with the
- <a href="http://config.privoxy.org/show-status" target="_top">web-based
- actions file editor</a>. Note that the custom actions editor must be
- explicitly enabled in the main config file (see <a href=
- "../user-manual/config.html#ENABLE-EDIT-ACTIONS" target=
- "_top">enable-edit-actions</a>).</p>
-
- <p>If you intend to develop your own filters, you might want to have a
- look at <a href="http://www.fabiankeil.de/sourcecode/pft/" target=
- "_top">Privoxy-Filter-Test</a>.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="LANCONFIG" id="LANCONFIG">3.12. How can I
- set up Privoxy to act as a proxy for my LAN?</a></h3>
-
- <p>By default, <span class="APPLICATION">Privoxy</span> only responds
- to requests from <tt class="LITERAL">127.0.0.1</tt> (localhost). To
- have it act as a server for a network, this needs to be changed in the
- <a href="../user-manual/config.html" target="_top">main configuration
- file</a>. Look for the <tt class="LITERAL"><a href=
- "../user-manual/config.html#LISTEN-ADDRESS" target=
- "_top">listen-address</a></tt> option, which may be commented out with
- a <span class="QUOTE">"#"</span> symbol. Make sure it is uncommented,
- and assign it the address of the LAN gateway interface, and port number
- to use. Assuming your LAN address is 192.168.1.1 and you wish to run
- <span class="APPLICATION">Privoxy</span> on port 8118, this line should
- look like:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- listen-address 192.168.1.1:8118
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Save the file, and restart <span class="APPLICATION">Privoxy</span>.
- Configure all browsers on the network then to use this address and port
- number.</p>
-
- <p>Alternately, you can have <span class="APPLICATION">Privoxy</span>
- listen on all available interfaces:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- listen-address :8118
-</pre>
- </td>
- </tr>
- </table>
-
- <p>And then use <span class="APPLICATION">Privoxy's</span> <a href=
- "../user-manual/config.html#PERMIT-ACCESS" target=
- "_top">permit-access</a> feature to limit connections. A firewall in
- this situation is recommended as well.</p>
-
- <p>The above steps should be the same for any TCP network, regardless
- of operating system.</p>
-
- <p>If you run <span class="APPLICATION">Privoxy</span> on a LAN with
- untrusted users, we recommend that you double-check the <a href=
- "../user-manual/config.html#ACCESS-CONTROL" target="_top">access
- control and security</a> options!</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="AEN537" id="AEN537">3.13. Instead of ads,
- now I get a checkerboard pattern. I don't want to see
- anything.</a></h3>
-
- <p>The replacement for blocked images can be controlled with the
- <a href="../user-manual/actions-file.html#SET-IMAGE-BLOCKER" target=
- "_top"><tt class="LITERAL">set-image-blocker</tt> action</a>. You have
- the choice of a checkerboard pattern, a transparent 1x1 GIF image (aka
- <span class="QUOTE">"blank"</span>), or a redirect to a custom image of
- your choice. Note that this choice only has effect for images which are
- blocked as images, i.e. whose URLs match both a <tt class=
- "LITERAL"><a href="../user-manual/actions-file.html#HANDLE-AS-IMAGE"
- target="_top">handle-as-image</a></tt> <span class="emphasis"><i class=
- "EMPHASIS">and</i></span> <tt class="LITERAL"><a href=
- "../user-manual/actions-file.html#BLOCK" target="_top">block</a></tt>
- action.</p>
-
- <p>If you want to see nothing, then change the <a href=
- "../user-manual/actions-file.html#SET-IMAGE-BLOCKER" target=
- "_top"><tt class="LITERAL">set-image-blocker</tt> action</a> to
- <span class="QUOTE">"blank"</span>. This can be done by editing the
- <tt class="FILENAME">user.action</tt> file, or through the <a href=
- "http://config.privoxy.org/show-status" target="_top">web-based actions
- file editor</a>.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="AEN554" id="AEN554">3.14. Why would anybody
- want to see a checkerboard pattern?</a></h3>
-
- <p>Remember that <a href="general.html#WHATSANAD">telling which image
- is an ad and which isn't</a>, is an educated guess. While we hope that
- the standard configuration is rather smart, it will make occasional
- mistakes. The checkerboard image is visually decent, and it shows you
- where images have been blocked, which can be very helpful in case some
- navigation aid or otherwise innocent image was erroneously blocked. It
- is recommended for new users so they can <span class=
- "QUOTE">"see"</span> what is happening. Some people might also enjoy
- seeing how many banners they <span class="emphasis"><i class=
- "EMPHASIS">don't</i></span> have to see.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="AEN560" id="AEN560">3.15. I see some images
- being replaced with text instead of the checkerboard image. Why and how
- do I get rid of this?</a></h3>
-
- <p>This happens when the banners are not embedded in the HTML code of
- the page itself, but in separate HTML (sub)documents that are loaded
- into (i)frames or (i)layers, and these external HTML documents are
- blocked. Being non-images they get replaced by a substitute HTML page
- rather than a substitute image, which wouldn't work out technically,
- since the browser expects and accepts only HTML when it has requested
- an HTML document.</p>
-
- <p>The substitute page adapts to the available space and shows itself
- as a miniature two-liner if loaded into small frames, or full-blown
- with a large red "BLOCKED" banner if space allows.</p>
-
- <p>If you prefer the banners to be blocked by images, you must see to
- it that the HTML documents in which they are embedded are not blocked.
- Clicking the <span class="QUOTE">"See why"</span> link offered in the
- substitute page will show you which rule blocked the page. After
- changing the rule and un-blocking the HTML documents, the browser will
- try to load the actual banner images and the usual image blocking will
- (hopefully!) kick in.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="SRVANY" id="SRVANY">3.16. Can Privoxy run as
- a service on Win2K/NT/XP?</a></h3>
-
- <p>Yes. Version 3.0.5 introduces full <span class=
- "APPLICATION">Windows</span> service functionality. See <a href=
- "../user-manual/installation.html#installation-pack-win" target=
- "_top">the <i class="CITETITLE">User Manual</i></a> for details on how
- to install and configure <span class="APPLICATION">Privoxy</span> as a
- service.</p>
-
- <p>Earlier 3.x versions could run as a system service using <b class=
- "COMMAND">srvany.exe</b>. See the discussion at <a href=
- "http://sourceforge.net/tracker/?func=detail&atid=361118&aid=485617&group_id=11118"
- target=
- "_top">http://sourceforge.net/tracker/?func=detail&atid=361118&aid=485617&group_id=11118</a>,
- for details, and a sample configuration.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="OTHERPROXY" id="OTHERPROXY">3.17. How can I
- make Privoxy work with other proxies?</a></h3>
-
- <p>This can be done and is often useful to combine the benefits of
- <span class="APPLICATION">Privoxy</span> with those of a another proxy,
- for example to cache content. See the <a href=
- "../user-manual/config.html#FORWARDING" target="_top">forwarding
- chapter</a> in the <a href="../user-manual/index.html" target=
- "_top">User Manual</a> which describes how to do this. If you intend to
- use Privoxy with Tor, please also have a look at <a href=
- "misc.html#TOR">How do I use Privoxy together with Tor</a>.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="PORT-80" id="PORT-80">3.18. Can I just set
- Privoxy to use port 80 and thus avoid individual browser
- configuration?</a></h3>
-
- <p>No, its more complicated than that. This only works with special
- kinds of proxies known as <span class="QUOTE">"intercepting"</span>
- proxies (<a href="configuration.html#INTERCEPTING">see below</a>).</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="TRANSPARENT" id="TRANSPARENT">3.19. Can
- Privoxy run as a <span class="QUOTE">"transparent"</span>
- proxy?</a></h3>
-
- <p>The whole idea of Privoxy is to modify client requests and server
- responses in all sorts of ways and therefore it's not a transparent
- proxy as described in <a href="http://tools.ietf.org/html/rfc2616"
- target="_top">RFC 2616</a>.</p>
-
- <p>However, some people say <span class="QUOTE">"transparent
- proxy"</span> when they mean <span class="QUOTE">"intercepting
- proxy"</span>. If you are one of them, please read the <a href=
- "configuration.html#INTERCEPTING">next entry</a>.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="INTERCEPTING" id="INTERCEPTING">3.20. Can
- Privoxy run as a <span class="QUOTE">"intercepting"</span>
- proxy?</a></h3>
-
- <p><span class="APPLICATION">Privoxy</span> can't intercept traffic
- itself, but it can handle requests that where intercepted and
- redirected with a packet filter (like <span class=
- "APPLICATION">PF</span> or <span class="APPLICATION">iptables</span>),
- as long as the <tt class="LITERAL">Host</tt> header is present.</p>
-
- <p>As the <tt class="LITERAL">Host</tt> header is required by HTTP/1.1
- and as most web sites rely on it anyway, this limitation shouldn't be a
- problem.</p>
-
- <p>Please refer to your packet filter's documentation to learn how to
- intercept and redirect traffic into <span class=
- "APPLICATION">Privoxy</span>. Afterward you just have to configure
- <span class="APPLICATION">Privoxy</span> to <a href=
- "../user-manual/config.html#ACCEPT-INTERCEPTED-REQUESTS" target=
- "_top">accept intercepted requests</a>.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="OUTLOOK" id="OUTLOOK">3.21. How can I
- configure Privoxy for use with Outlook?</a></h3>
-
- <p>Versions of <span class="APPLICATION">Outlook</span> prior to Office
- 2007, use <span class="APPLICATION">Internet Explorer</span> components
- to both render HTML, and fetch any HTTP requests that may be embedded
- in an HTML email. So however you have <span class=
- "APPLICATION">Privoxy</span> configured to work with IE, this
- configuration should automatically be shared, at least with older
- version of Internet Explorer.</p>
-
- <p>Starting with Office 2007, Microsoft is instead using the MS-Word
- rendering engine with Outlook. It is unknown whether this can be
- configured to use a proxy.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="OUTLOOK-MORE" id="OUTLOOK-MORE">3.22. How
- can I have separate rules just for HTML mail?</a></h3>
-
- <p>The short answer is, you can't. <span class=
- "APPLICATION">Privoxy</span> has no way of knowing which particular
- application makes a request, so there is no way to distinguish between
- web pages and HTML mail. <span class="APPLICATION">Privoxy</span> just
- blindly proxies all requests. In the case of <span class=
- "APPLICATION">Outlook Express</span> (see above), OE uses IE anyway,
- and there is no way for <span class="APPLICATION">Privoxy</span> to
- ever be able to distinguish between them (nor could any other proxy
- type application for that matter).</p>
-
- <p>For a good discussion of some of the issues involved (including
- privacy and security issues), see <a href=
- "http://sourceforge.net/tracker/?func=detail&atid=211118&aid=629518&group_id=11118"
- target=
- "_top">http://sourceforge.net/tracker/?func=detail&atid=211118&aid=629518&group_id=11118</a>.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="SNEAKY-COOKIES" id="SNEAKY-COOKIES">3.23. I
- sometimes notice cookies sneaking through. How?</a></h3>
-
- <p><a href="http://en.wikipedia.org/wiki/Browser_cookie" target=
- "_top">Cookies</a> can be set in several ways. The classic method is
- via the <tt class="LITERAL">Set-Cookie</tt> HTTP header. This is
- straightforward, and an easy one to manipulate, such as the
- <span class="APPLICATION">Privoxy</span> concept of <a href=
- "../user-manual/actions-file.html#SESSION-COOKIES-ONLY" target=
- "_top">session-cookies-only</a>. There is also the possibility of using
- <a href="http://en.wikipedia.org/wiki/Javascript" target=
- "_top">Javascript</a> to set cookies (<span class=
- "APPLICATION">Privoxy</span> calls these <tt class=
- "LITERAL">content-cookies</tt>). This is trickier because the syntax
- can vary widely, and thus requires a certain amount of guesswork. It is
- not realistic to catch all of these short of disabling Javascript,
- which would break many sites. And lastly, if the cookies are embedded
- in a HTTPS/SSL secure session via Javascript, they are beyond
- <span class="APPLICATION">Privoxy's</span> reach.</p>
-
- <p>All in all, <span class="APPLICATION">Privoxy</span> can help manage
- cookies in general, can help minimize the loss of privacy posed by
- cookies, but can't realistically stop all cookies.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="EVIL-COOKIES" id="EVIL-COOKIES">3.24. Are
- all cookies bad? Why?</a></h3>
-
- <p>No, in fact there are many beneficial uses of <a href=
- "http://en.wikipedia.org/wiki/Browser_cookie" target=
- "_top">cookies</a>. Cookies are just a method that browsers can use to
- store data between pages, or between browser sessions. Sometimes there
- is a good reason for this, and the user's life is a bit easier as a
- result. But there is a long history of some websites taking advantage
- of this layer of trust, and using the data they glean from you and your
- browsing habits for their own purposes, and maybe to your potential
- detriment. Such sites are using you and storing their data on your
- system. That is why the privacy conscious watch from whom those cookies
- come, and why they really <span class="emphasis"><i class=
- "EMPHASIS">need</i></span> to be there.</p>
-
- <p>See the <a href="http://en.wikipedia.org/wiki/Browser_cookie"
- target="_top">Wikipedia cookie definition</a> for more.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="ALLOW-COOKIES" id="ALLOW-COOKIES">3.25. How
- can I allow permanent cookies for my trusted sites?</a></h3>
-
- <p>There are several actions that relate to cookies. The default
- behavior is to allow only <span class="QUOTE">"session cookies"</span>,
- which means the cookies only last for the current browser session. This
- eliminates most kinds of abuse related to cookies. But there may be
- cases where you want cookies to last.</p>
-
- <p>To disable all cookie actions, so that cookies are allowed
- unrestricted, both in and out, for <tt class=
- "LITERAL">example.com</tt>:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- { -crunch-incoming-cookies -crunch-outgoing-cookies -session-cookies-only -filter{content-cookies} }
- .example.com
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Place the above in <tt class="FILENAME">user.action</tt>. Note that
- some of these may be off by default anyway, so this might be redundant,
- but there is no harm being explicit in what you want to happen.
- <tt class="FILENAME">user.action</tt> includes an alias for this
- situation, called <tt class="LITERAL">allow-all-cookies</tt>.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="MULTIPLES" id="MULTIPLES">3.26. Can I have
- separate configurations for different users?</a></h3>
-
- <p>Each instance of <span class="APPLICATION">Privoxy</span> has its
- own configuration, including such attributes as the TCP port that it
- listens on. What you can do is run multiple instances of <span class=
- "APPLICATION">Privoxy</span>, each with a unique <a href=
- "../user-manual/config.html#LISTEN-ADDRESS" target=
- "_top">listen-address</a> configuration setting, and configuration
- path, and then each of these can have their own configurations. Think
- of it as per-port configuration.</p>
-
- <p>Simple enough for a few users, but for large installations, consider
- having groups of users that might share like configurations.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="WHITELISTS" id="WHITELISTS">3.27. Can I
- set-up Privoxy as a whitelist of <span class="QUOTE">"good"</span>
- sites?</a></h3>
-
- <p>Sure. There are a couple of things you can do for simple
- white-listing. Here's one real easy one:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- ############################################################
- # Blacklist
- ############################################################
- { <a href="../user-manual/actions-file.html#BLOCK" target=
-"_top">+block</a> }
- / # Block *all* URLs
-
- ############################################################
- # Whitelist
- ############################################################
- { <a href="../user-manual/actions-file.html#BLOCK" target=
-"_top">-block</a> }
- kids.example.com
- toys.example.com
- games.example.com
-</pre>
- </td>
- </tr>
- </table>
-
- <p>This allows access to only those three sites by first blocking all
- URLs, and then subsequently allowing three specific exceptions.</p>
-
- <p>Another approach is <span class="APPLICATION">Privoxy's</span>
- <tt class="LITERAL">trustfile</tt> concept, which incorporates the
- notion of <span class="QUOTE">"trusted referrers"</span>. See the
- <a href="../user-manual/config.html#TRUSTFILE" target="_top">Trust
- documentation</a> for details.</p>
-
- <p>These are fairly simple approaches and are not completely foolproof.
- There are various other configuration options that should be disabled
- (described elsewhere here and in <a href="../user-manual/" target=
- "_top">the User Manual</a>) so that users can't modify their own
- configuration and easily circumvent the whitelist.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="NO-ADBLOCK" id="NO-ADBLOCK">3.28. How can I
- turn off ad-blocking?</a></h3>
-
- <p>Ad blocking is achieved through a complex application of various
- <span class="APPLICATION">Privoxy</span> <a href=
- "../user-manual/actions-file.html" target="_top">actions</a>. These
- actions are deployed against simple images, banners, flash animations,
- text pages, JavaScript, pop-ups and pop-unders, etc., so its not as
- simple as just turning one or two actions off. The various actions that
- make up <span class="APPLICATION">Privoxy</span> ad blocking are
- hard-coded into the default configuration files. It has been assumed
- that everyone using <span class="APPLICATION">Privoxy</span> is
- interested in this particular feature.</p>
-
- <p>If you want to do without this, there are several approaches you can
- take: You can manually undo the many block rules in <tt class=
- "FILENAME">default.action</tt>. Or even easier, just create your own
- <tt class="FILENAME">default.action</tt> file from scratch without the
- many ad blocking rules, and corresponding exceptions. Or lastly, if you
- are not concerned about the additional blocks that are done for privacy
- reasons, you can very easily over-ride <span class="emphasis"><i class=
- "EMPHASIS">all</i></span> blocking with the following very simple rule
- in your <tt class="FILENAME">user.action</tt>:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- # Unblock everybody, everywhere
- { <a href="../user-manual/actions-file.html#BLOCK" target=
-"_top">-block</a> }
- / # UN-Block *all* URLs
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Or even a more comprehensive reversing of various ad related
- actions:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- # Unblock everybody, everywhere, and turn off appropriate filtering, etc
- { <a href="../user-manual/actions-file.html#BLOCK" target=
-"_top">-block</a> \
- <a href="../user-manual/actions-file.html#FILTER-BANNERS-BY-SIZE" target=
-"_top">-filter{banners-by-size}</a> \
- <a href="../user-manual/actions-file.html#FILTER-BANNERS-BY-LINK" target=
-"_top">-filter{banners-by-link}</a> \
- <tt class="LITERAL">allow-popups</tt> \
- }
- / # UN-Block *all* URLs and allow ads
-</pre>
- </td>
- </tr>
- </table>
-
- <p>This last <span class="QUOTE">"action"</span> in this compound
- statement, <tt class="LITERAL">allow-popups</tt>, is an <a href=
- "../user-manual/actions-file.html#ALIASES" target="_top">alias</a> that
- disables various pop-up blocking features.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="TEMPLATES" id="TEMPLATES">3.29. How can I
- have custom template pages, like the <span class="emphasis"><i class=
- "EMPHASIS">BLOCKED</i></span> page?</a></h3>
-
- <p><span class="APPLICATION">Privoxy</span> <span class=
- "QUOTE">"templates"</span> are specialized text files utilized by
- <span class="APPLICATION">Privoxy</span> for various purposes and can
- easily be modified using any text editor. All the template pages are
- installed in a sub-directory appropriately named: <tt class=
- "FILENAME">templates</tt>. Knowing something about HTML syntax will of
- course be helpful.</p>
-
- <p>Be forewarned that the default templates are subject to being
- overwritten during upgrades. You can, however, create completely new
- templates, place them in another directory and specify the alternate
- path in the main <tt class="FILENAME">config</tt>. For details, have a
- look at the <a href="../user-manual/config.html#templdir" target=
- "_top">templdir</a> option.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="BLOCKALL" id="BLOCKALL">3.30. How can I
- remove the <span class="QUOTE">"Go There Anyway"</span> link from the
- <span class="emphasis"><i class="EMPHASIS">BLOCKED</i></span>
- page?</a></h3>
-
- <p>There is more than one way to do it (although Perl is not
- involved).</p>
-
- <p>Editing the BLOCKED template page (see above) may dissuade some
- users, but this method is easily circumvented. Where you need this
- level of control, you might want to build <span class=
- "APPLICATION">Privoxy</span> from source, and disable various features
- that are available as compile-time options. You should <b class=
- "COMMAND">configure</b> the sources as follows:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- ./configure --disable-toggle --disable-editor --disable-force
-</pre>
- </td>
- </tr>
- </table>
-
- <p>This will create an executable with hard-coded security features so
- that <span class="APPLICATION">Privoxy</span> does not allow easy
- bypassing of blocked sites, or changing the current configuration via
- any connected user's web browser.</p>
-
- <p>Finally, all of these features can also be toggled on/off via
- options in <span class="APPLICATION">Privoxy's</span> main <a href=
- "../user-manual/config.html#ACCESS-CONTROL" target="_top">config</a>
- file which means you don't have to recompile anything.</p>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="installation.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href="misc.html"
- accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">Installation</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">Miscellaneous</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Contacting the developers, Bug Reporting and Feature
- Requests</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy Frequently Asked Questions" href=
- "index.html">
- <link rel="PREVIOUS" title="Troubleshooting" href="trouble.html">
- <link rel="NEXT" title="Privoxy Copyright, License and History" href=
- "copyright.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy Frequently Asked
- Questions</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href="trouble.html"
- accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href=
- "copyright.html" accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="CONTACT" id="CONTACT">6. Contacting the
- developers, Bug Reporting and Feature Requests</a></h1>
-
- <p>We value your feedback. In fact, we rely on it to improve <span class=
- "APPLICATION">Privoxy</span> and its configuration. However, please note
- the following hints, so we can provide you with the best support.</p>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="SUFFICIENT-INFORMATION" id=
- "SUFFICIENT-INFORMATION">6.1. Please provide sufficient
- information</a></h2>
-
- <p>A lot of support requests don't contain enough information and can't
- be solved without a lot of back and forth which causes unnecessary
- delays. Reading this section should help to prevent that.</p>
-
- <p>Before contacting us to report a problem, please try to verify that
- it is a <span class="APPLICATION">Privoxy</span> problem, and not a
- browser or site problem or documented behaviour that just happens to be
- different than what you expected. If unsure, try <a href=
- "http://config.privoxy.org/toggle?set=disable" target="_top">toggling
- off</a> <span class="APPLICATION">Privoxy</span>, and see if the
- problem persists.</p>
-
- <p>If you are using your own custom configuration, please try the
- default configuration to see if the problem is configuration related.
- If you're having problems with a feature that is disabled by default,
- please ask around on the mailing list if others can reproduce the
- problem.</p>
-
- <p>If you aren't using the latest Privoxy version, the problem may have
- been found and fixed in the meantime. We would appreciate if you could
- take the time to <a href=
- "http://www.privoxy.org/user-manual/installation.html" target=
- "_top">upgrade to the latest version</a> and verify that the problem
- still exists.</p>
-
- <p>Please be sure to provide the following information when reporting
- problems or requesting support:</p>
-
- <ul>
- <li>
- <p>The exact <span class="APPLICATION">Privoxy</span> version you
- are using.</p>
- </li>
-
- <li>
- <p>The operating system and versions you run <span class=
- "APPLICATION">Privoxy</span> on, e.g. <span class=
- "APPLICATION">Windows XP SP2</span>.</p>
- </li>
-
- <li>
- <p>The name, platform, and version of the <span class=
- "APPLICATION">browser</span> you were using (e.g. <span class=
- "APPLICATION">Internet Explorer v5.5</span> for Mac).</p>
- </li>
-
- <li>
- <p>The URL where the problem occurred, or some way for us to
- duplicate the problem (e.g. <tt class=
- "LITERAL">http://somesite.example.com/?somethingelse=123</tt>).</p>
- </li>
-
- <li>
- <p>Whether your version of <span class="APPLICATION">Privoxy</span>
- is one supplied by the <span class="APPLICATION">Privoxy</span>
- developers via SourceForge, or if you got your copy somewhere
- else.</p>
- </li>
-
- <li>
- <p>Whether you are using <span class="APPLICATION">Privoxy</span>
- together with another proxy such as <span class=
- "APPLICATION">Tor</span>. If so, please temporary disable the other
- proxy to see if the symptoms change.</p>
- </li>
-
- <li>
- <p>Whether you are using a personal firewall product. If so, does
- <span class="APPLICATION">Privoxy</span> work without it?</p>
- </li>
-
- <li>
- <p>Any other pertinent information to help identify the problem
- such as config or log file excerpts (yes, you should have log file
- entries for each action taken). To get a meaningful logfile, please
- make sure that the <a href="../user-manual/config.html#LOGFILE"
- target="_top">logfile directive</a> is being used and the following
- <a href="../user-manual/config.html#DEBUG" target="_top">debug
- options</a> are enabled (all of them):</p>
-
- <p class="LITERALLAYOUT">
- debug 1 # Log the destination for each request Privoxy let through. See also debug 1024.<br>
-
- debug 2 # show each connection status<br>
-
- debug 4 # show I/O status<br>
-
- debug 8 # show header parsing<br>
-
- debug 128 # debug redirects<br>
- debug 256 # debug GIF de-animation<br>
-
- debug 512 # Common Log Format<br>
-
- debug 1024 # Log the destination for requests Privoxy didn't let through, and the reason why.<br>
-
- debug 4096 # Startup banner and warnings.<br>
-
- debug 8192 # Non-fatal errors</p>
-
- <p>If you are having trouble with a filter, please additionally
- enable</p>
-
- <p class="LITERALLAYOUT">
- debug 64 # debug regular expression filters</p>If
- you are using Privoxy 3.0.17 or later and suspect that it
- interprets the request or the response incorrectly, please enable
-
- <p class="LITERALLAYOUT">
- debug 32768 # log all data read from the network</p>
-
- <p>It's easy for us to ignore log messages that aren't relevant but
- missing log messages may make it impossible to investigate a
- problem. If you aren't sure which of the debug directives are
- relevant, please just enable all of them and let us worry about
- it.</p>
-
- <p>Note that Privoxy log files may contain sensitive information so
- please don't submit any logfiles you didn't read first. You can
- mask sensitive information as long as it's clear that you removed
- something.</p>
- </li>
- </ul>
-
- <p>You don't have to tell us your actual name when filing a problem
- report, but if you don't, please use a nickname so we can differentiate
- between your messages and the ones entered by other "anonymous" users
- that may respond to your request if they have the same problem or
- already found a solution. Note that due to spam the trackers may not
- always allow to post without being logged into SourceForge. If that's
- the case, you are still free to create a login that isn't directly
- linked to your name, though.</p>
-
- <p>Please also check the status of your request a few days after
- submitting it, as we may request additional information. If you use a
- SF id, you should automatically get a mail when someone responds to
- your request. Please don't bother to add an email address when using
- the tracker. If you prefer to communicate through email, just use one
- of the mailing lists directly.</p>
-
- <p>If you are new to reporting problems, you might be interested in
- <a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html" target=
- "_top">How to Report Bugs Effectively</a>.</p>
-
- <p>The <a href=
- "http://www.privoxy.org/user-manual/appendix.html#ACTIONSANAT" target=
- "_top">appendix of the Privoxy User Manual</a> also has helpful
- information on understanding <tt class="LITERAL">actions</tt>, and
- <tt class="LITERAL">action</tt> debugging.</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="CONTACT-SUPPORT" id="CONTACT-SUPPORT">6.2.
- Get Support</a></h2>
-
- <p>For casual users, our <a href=
- "http://sourceforge.net/tracker/?group_id=11118&atid=211118"
- target="_top">support forum at SourceForge</a> is probably best suited:
- <a href=
- "http://sourceforge.net/tracker/?group_id=11118&atid=211118"
- target="_top">http://sourceforge.net/tracker/?group_id=11118&atid=211118</a></p>
-
- <p>All users are of course welcome to discuss their issues on the
- <a href="http://lists.sourceforge.net/lists/listinfo/ijbswa-users"
- target="_top">users mailing list</a>, where the developers also hang
- around.</p>
-
- <p>Please don't send private support requests to individual Privoxy
- developers, either use the mailing lists or the support trackers.</p>
-
- <p>If you have to contact a Privoxy developer directly for other
- reasons, please send a real mail and do not bother with SourceForge's
- messaging system. Answers to SourceForge messages are usually bounced
- by SourceForge's mail server in which case the developer wasted time
- writing a response you don't get. From your point of view it will look
- like your message has been completely ignored, so this is frustrating
- for all parties involved.</p>
-
- <p>Note that the Privoxy mailing lists are moderated. Posts from
- unsubscribed addresses have to be accepted manually by a moderator.
- This may cause a delay of several days and if you use a subject that
- doesn't clearly mention Privoxy or one of its features, your message
- may be accidentally discarded as spam.</p>
-
- <p>If you aren't subscribed, you should therefore spend a few seconds
- to come up with a proper subject. Additionally you should make it clear
- that you want to get CC'd. Otherwise some responses will be directed to
- the mailing list only, and you won't see them.</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="REPORTING" id="REPORTING">6.3. Reporting
- Problems</a></h2>
-
- <p><span class="QUOTE">"Problems"</span> for our purposes, come in two
- forms:</p>
-
- <ul>
- <li>
- <p>Configuration issues, such as ads that slip through, or sites
- that don't function properly due to one <span class=
- "APPLICATION">Privoxy</span> <span class="QUOTE">"action"</span> or
- another being turned <span class="QUOTE">"on"</span>.</p>
- </li>
-
- <li>
- <p><span class="QUOTE">"Bugs"</span> in the programming code that
- makes up <span class="APPLICATION">Privoxy</span>, such as that
- might cause a crash.</p>
- </li>
- </ul>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="CONTACT-ADS" id="CONTACT-ADS">6.3.1.
- Reporting Ads or Other Configuration Problems</a></h3>
-
- <p>Please send feedback on ads that slipped through, innocent images
- that were blocked, sites that don't work properly, and other
- configuration related problem of <tt class=
- "FILENAME">default.action</tt> file, to <a href=
- "http://sourceforge.net/tracker/?group_id=11118&atid=460288"
- target=
- "_top">http://sourceforge.net/tracker/?group_id=11118&atid=460288</a>,
- the Actions File Tracker.</p>
-
- <p>New, improved <tt class="FILENAME">default.action</tt> files may
- occasionally be made available based on your feedback. These will be
- announced on the <a href=
- "http://lists.sourceforge.net/lists/listinfo/ijbswa-announce" target=
- "_top">ijbswa-announce</a> list and available from our the <a href=
- "http://sourceforge.net/project/showfiles.php?group_id=11118" target=
- "_top">files section</a> of our <a href=
- "http://sf.net/projects/ijbswa/" target="_top">project page</a>.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="CONTACT-BUGS" id="CONTACT-BUGS">6.3.2.
- Reporting Bugs</a></h3>
-
- <p>Please report all bugs through our bug tracker: <a href=
- "http://sourceforge.net/tracker/?group_id=11118&atid=111118"
- target=
- "_top">http://sourceforge.net/tracker/?group_id=11118&atid=111118</a>.</p>
-
- <p>Before doing so, please make sure that the bug has <span class=
- "emphasis"><i class="EMPHASIS">not already been submitted</i></span>
- and observe the additional hints at the top of the <a href=
- "http://sourceforge.net/tracker/?func=add&group_id=11118&atid=111118"
- target="_top">submit form</a>. If already submitted, please feel free
- to add any info to the original report that might help to solve the
- issue.</p>
- </div>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="CONTACT-FEATURE" id="CONTACT-FEATURE">6.4.
- Request New Features</a></h2>
-
- <p>You are welcome to submit ideas on new features or other proposals
- for improvement through our feature request tracker at <a href=
- "http://sourceforge.net/tracker/?atid=361118&group_id=11118"
- target="_top">http://sourceforge.net/tracker/?atid=361118&group_id=11118</a>.</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="MAILING-LISTS" id="MAILING-LISTS">6.5.
- Mailing Lists</a></h2>
-
- <p>If you prefer to communicate through email, instead of using a web
- interface, feel free to use one of the mailing lists. To discuss issues
- that haven't been completely diagnosed yet, please use the Privoxy
- users list. Technically interested users and people who wish to
- contribute to the project are always welcome on the developers list.
- You can find an overview of all <span class=
- "APPLICATION">Privoxy</span>-related mailing lists, including list
- archives, at: <a href="http://sourceforge.net/mail/?group_id=11118"
- target="_top">http://sourceforge.net/mail/?group_id=11118</a>.</p>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="trouble.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href="copyright.html"
- accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">Troubleshooting</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">Privoxy Copyright, License
- and History</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Privoxy Copyright, License and History</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy Frequently Asked Questions" href=
- "index.html">
- <link rel="PREVIOUS" title=
- "Contacting the developers, Bug Reporting and Feature Requests" href=
- "contact.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy Frequently Asked
- Questions</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href="contact.html"
- accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"> </td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="COPYRIGHT" id="COPYRIGHT">7. Privoxy
- Copyright, License and History</a></h1>
-
- <p>Copyright © 2001-2013 by Privoxy Developers <code class=
- "EMAIL"><<a href=
- "mailto:ijbswa-developers@lists.sourceforge.net">ijbswa-developers@lists.sourceforge.net</a>></code></p>
-
- <p>Some source code is based on code Copyright © 1997 by Anonymous
- Coders and Junkbusters, Inc. and licensed under the <i class=
- "CITETITLE">GNU General Public License</i>.</p>
-
- <p>Portions of this document are <span class="QUOTE">"borrowed"</span>
- from the original <span class="APPLICATION">Junkbuster</span> (tm) FAQ,
- and modified as appropriate for <span class=
- "APPLICATION">Privoxy</span>.</p>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="AEN1470" id="AEN1470">7.1. License</a></h2>
-
- <p><span class="APPLICATION">Privoxy</span> is free software; you can
- redistribute it and/or modify it under the terms of the <i class=
- "CITETITLE">GNU General Public License</i>, version 2, as published by
- the Free Software Foundation.</p>
-
- <p><span class="APPLICATION">Privoxy</span> is distributed in the hope
- that it will be useful, but WITHOUT ANY WARRANTY; without even the
- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- PURPOSE. See the <a href=
- "http://www.privoxy.org/user-manual/copyright.html#LICENSE" target=
- "_top"><i class="CITETITLE">license</i></a> for details.</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="AEN1479" id="AEN1479">7.2. History</a></h2>
-
- <p>A long time ago, there was the <span class="APPLICATION">Internet
- Junkbuster</span>, by Anonymous Coders and Junkbusters Corporation.
- This saved many users a lot of pain in the early days of web
- advertising and user tracking.</p>
-
- <p>But the web, its protocols and standards, and with it, the
- techniques for forcing ads on users, give up autonomy over their
- browsing, and for tracking them, keeps evolving. Unfortunately, the
- <span class="APPLICATION">Internet Junkbuster</span> did not. Version
- 2.0.2, published in 1998, was the last official release, available from
- Junkbusters Corporation. Fortunately, it had been released under the
- GNU <a href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
- target="_top">GPL</a>, which allowed further development by others.</p>
-
- <p>So Stefan Waldherr started maintaining an improved version of the
- software, to which eventually a number of people contributed patches.
- It could already replace banners with a transparent image, and had a
- first version of pop-up killing, but it was still very closely based on
- the original, with all its limitations, such as the lack of HTTP/1.1
- support, flexible per-site configuration, or content modification. The
- last release from this effort was version 2.0.2-10, published in
- 2000.</p>
-
- <p>Then, some <a href=
- "http://www.privoxy.org/user-manual/copyright.html#AUTHORS" target=
- "_top">developers</a> picked up the thread, and started turning the
- software inside out, upside down, and then reassembled it, adding many
- <a href="http://www.privoxy.org/user-manual/introduction.html#FEATURES"
- target="_top">new features</a> along the way.</p>
-
- <p>The result of this is <span class="APPLICATION">Privoxy</span>,
- whose first stable version, 3.0, was released August, 2002.</p>
-
- <p>As of 2012 the Junkbusters Corporation's website
- (http://www.junkbusters.com/) has been shut down, but Privoxy is still
- actively maintained.</p>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="contact.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"> </td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">Contacting the developers,
- Bug Reporting and Feature Requests</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top"> </td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>General Information</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy Frequently Asked Questions" href=
- "index.html">
- <link rel="PREVIOUS" title="Privoxy Frequently Asked Questions" href=
- "index.html">
- <link rel="NEXT" title="Installation" href="installation.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy Frequently Asked
- Questions</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href="index.html"
- accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href=
- "installation.html" accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="GENERAL" id="GENERAL">1. General
- Information</a></h1>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="WHO-USES" id="WHO-USES">1.1. Who should give
- <span class="APPLICATION">Privoxy</span> a try?</a></h3>
-
- <p>Anyone who is interested in security, privacy, or in finer-grained
- control over their web and Internet experience.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="BESTCHOICE" id="BESTCHOICE">1.2. Is Privoxy
- the best choice for me?</a></h3>
-
- <p><span class="APPLICATION">Privoxy</span> is certainly a good choice,
- especially for those who want more control and security. Those with the
- willingness to read the documentation and the ability to fine-tune
- their installation will benefit the most.</p>
-
- <p>One of <span class="APPLICATION">Privoxy's</span> strengths is that
- it is highly configurable giving you the ability to completely
- personalize your installation. Being familiar with, or at least having
- an interest in learning about <a href=
- "http://en.wikipedia.org/wiki/Http" target="_top">HTTP</a> and other
- networking protocols, <a href="http://en.wikipedia.org/wiki/Html"
- target="_top">HTML</a>, and <a href=
- "http://en.wikipedia.org/wiki/Regular_expressions" target=
- "_top"><span class="QUOTE">"Regular Expressions"</span></a> will be a
- big plus and will help you get the most out of <span class=
- "APPLICATION">Privoxy</span>. A new installation just includes a very
- basic configuration. The user should take this as a starting point
- only, and enhance it as he or she sees fit. In fact, the user is
- encouraged, and expected to, fine-tune the configuration.</p>
-
- <p>Much of <span class="APPLICATION">Privoxy's</span> configuration can
- be done with a <a href="http://en.wikipedia.org/wiki/Web_browser"
- target="_top">Web browser</a>. But there are areas where configuration
- is done using a <a href="http://en.wikipedia.org/wiki/Text_editors"
- target="_top">text editor</a> to edit configuration files. Also note
- that the web-based action editor doesn't use authentication and should
- only be enabled in environments where all clients with access to
- <span class="APPLICATION">Privoxy</span> listening port can be
- trusted.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="PROXYMORON" id="PROXYMORON">1.3. What is a
- <span class="QUOTE">"proxy"</span>? How does Privoxy work?</a></h3>
-
- <p>A <a href="http://en.wikipedia.org/wiki/Proxy_server" target=
- "_top">web proxy</a> is a service, based on a software such as
- <span class="APPLICATION">Privoxy</span>, that clients (i.e. browsers)
- can use instead of connecting to web servers directly. The clients then
- ask the proxy to request objects (web pages, images, movies etc) on
- their behalf and to forward the data to the clients. It is a
- <span class="QUOTE">"go-between"</span>. For details, see <a href=
- "http://en.wikipedia.org/wiki/Proxy_server" target="_top">Wikipedia's
- proxy definition</a>.</p>
-
- <p>There are many reasons to use web proxies, such as security
- (firewalling), efficiency (caching) and others, and there are any
- number of proxies to accommodate those needs.</p>
-
- <p><span class="APPLICATION">Privoxy</span> is a proxy that is
- primarily focused on privacy enhancement, ad and junk elimination and
- freeing the user from restrictions placed on his activities. Sitting
- between your browser(s) and the Internet, it is in a perfect position
- to filter outbound personal information that your browser is leaking,
- as well as inbound junk. It uses a variety of techniques to do this,
- all of which are under your complete control via the various
- configuration files and options. Being a proxy also makes it easier to
- share configurations among multiple browsers and/or users.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="OTHERSTUFF" id="OTHERSTUFF">1.4. Does
- Privoxy do anything more than ad blocking?</a></h3>
-
- <p>Yes, ad blocking is but one possible use. There are many, many ways
- <span class="APPLICATION">Privoxy</span> can be used to sanitize and
- customize web browsing.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="NEWJB" id="NEWJB">1.5. What is this new
- version of <span class="QUOTE">"Junkbuster"</span>?</a></h3>
-
- <p>A long time ago, there was the <span class="APPLICATION">Internet
- Junkbuster</span>, by Anonymous Coders and Junkbusters Corporation.
- This saved many users a lot of pain in the early days of web
- advertising and user tracking.</p>
-
- <p>But the web, its protocols and standards, and with it, the
- techniques for forcing ads on users, give up autonomy over their
- browsing, and for tracking them, keeps evolving. Unfortunately, the
- <span class="APPLICATION">Internet Junkbuster</span> did not. Version
- 2.0.2, published in 1998, was the last official release, available from
- Junkbusters Corporation. Fortunately, it had been released under the
- GNU <a href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
- target="_top">GPL</a>, which allowed further development by others.</p>
-
- <p>So Stefan Waldherr started maintaining an improved version of the
- software, to which eventually a number of people contributed patches.
- It could already replace banners with a transparent image, and had a
- first version of pop-up killing, but it was still very closely based on
- the original, with all its limitations, such as the lack of HTTP/1.1
- support, flexible per-site configuration, or content modification. The
- last release from this effort was version 2.0.2-10, published in
- 2000.</p>
-
- <p>Then, some <a href=
- "http://www.privoxy.org/user-manual/copyright.html#AUTHORS" target=
- "_top">developers</a> picked up the thread, and started turning the
- software inside out, upside down, and then reassembled it, adding many
- <a href="http://www.privoxy.org/user-manual/introduction.html#FEATURES"
- target="_top">new features</a> along the way.</p>
-
- <p>The result of this is <span class="APPLICATION">Privoxy</span>,
- whose first stable version, 3.0, was released August, 2002.</p>
-
- <p>As of 2012 the Junkbusters Corporation's website
- (http://www.junkbusters.com/) has been shut down, but Privoxy is still
- actively maintained.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="AEN82" id="AEN82">1.6. Why <span class=
- "QUOTE">"Privoxy"</span>? Why change the name from Junkbuster at
- all?</a></h3>
-
- <p>Though outdated, Junkbusters Corporation continued to offer their
- original version of the <span class="APPLICATION">Internet
- Junkbuster</span> for a while, so publishing our <span class=
- "APPLICATION">Junkbuster</span>-derived software under the same name
- would have led to confusion.</p>
-
- <p>There were also potential legal reasons not to use the <span class=
- "APPLICATION">Junkbuster</span> name, as it was (and maybe still is) a
- registered trademark of Junkbusters Corporation. There were, however,
- no objections from Junkbusters Corporation to the <span class=
- "APPLICATION">Privoxy</span> project itself, and they, in fact, shared
- our ideals and goals.</p>
-
- <p>The Privoxy developers also believed that there were so many
- improvements over the original code, that it was time to make a clean
- break from the past and make a name in their own right.</p>
-
- <p><span class="APPLICATION">Privoxy</span> is the <span class=
- "QUOTE">"<span class="emphasis"><i class="EMPHASIS">Privacy Enhancing
- Proxy</i></span>"</span>. Also, its content modification and junk
- suppression gives <span class="emphasis"><i class=
- "EMPHASIS">you</i></span>, the user, more control, more freedom, and
- allows you to browse your personal and <span class=
- "QUOTE">"<span class="emphasis"><i class="EMPHASIS">private</i></span>
- edition"</span> of the web.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="DIFFERS" id="DIFFERS">1.7. How does Privoxy
- differ from the old Junkbuster?</a></h3>
-
- <p><span class="APPLICATION">Privoxy</span> picks up where <span class=
- "APPLICATION">Junkbuster</span> left off. <span class=
- "APPLICATION">Privoxy</span> still blocks ads and banners, still
- manages <a href="http://en.wikipedia.org/wiki/Browser_cookie" target=
- "_top">cookies</a>, and still helps protect your privacy. But, most of
- these features have been enhanced, and many new ones have been added,
- all in the same vein.</p>
-
- <p><span class="APPLICATION">Privoxy</span>'s new features include:</p>
-
- <ul>
- <li>
- <p>Supports "Connection: keep-alive". Outgoing connections can be
- kept alive independently from the client.</p>
- </li>
-
- <li>
- <p>Supports IPv6, provided the operating system does so too, and
- the configure script detects it.</p>
- </li>
-
- <li>
- <p>Supports tagging which allows to change the behaviour based on
- client and server headers.</p>
- </li>
-
- <li>
- <p>Can be run as an "intercepting" proxy, which obviates the need
- to configure browsers individually.</p>
- </li>
-
- <li>
- <p>Sophisticated actions and filters for manipulating both server
- and client headers.</p>
- </li>
-
- <li>
- <p>Can be chained with other proxies.</p>
- </li>
-
- <li>
- <p>Integrated browser-based configuration and control utility at
- <a href="http://config.privoxy.org/" target=
- "_top">http://config.privoxy.org/</a> (shortcut: <a href=
- "http://p.p/" target="_top">http://p.p/</a>). Browser-based tracing
- of rule and filter effects. Remote toggling.</p>
- </li>
-
- <li>
- <p>Web page filtering (text replacements, removes banners based on
- size, invisible <span class="QUOTE">"web-bugs"</span> and HTML
- annoyances, etc.)</p>
- </li>
-
- <li>
- <p>Modularized configuration that allows for standard settings and
- user settings to reside in separate files, so that installing
- updated actions files won't overwrite individual user settings.</p>
- </li>
-
- <li>
- <p>Support for Perl Compatible Regular Expressions in the
- configuration files, and a more sophisticated and flexible
- configuration syntax.</p>
- </li>
-
- <li>
- <p>GIF de-animation.</p>
- </li>
-
- <li>
- <p>Bypass many click-tracking scripts (avoids script
- redirection).</p>
- </li>
-
- <li>
- <p>User-customizable HTML templates for most proxy-generated pages
- (e.g. "blocked" page).</p>
- </li>
-
- <li>
- <p>Auto-detection and re-reading of config file changes.</p>
- </li>
-
- <li>
- <p>Most features are controllable on a per-site or per-location
- basis.</p>
- </li>
-
- <li>
- <p>Many smaller new features added, limitations and bugs
- removed.</p>
- </li>
- </ul>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="WHATSANAD" id="WHATSANAD">1.8. How does
- Privoxy know what is an ad, and what is not?</a></h3>
-
- <p><span class="APPLICATION">Privoxy</span>'s approach to blocking ads
- is twofold:</p>
-
- <p>First, there are certain patterns in the <span class=
- "emphasis"><i class="EMPHASIS">locations</i></span> (URLs) of banner
- images. This applies to both the path (you wouldn't guess how many web
- sites serve their banners from a directory called <span class=
- "QUOTE">"banners"</span>!) and the host (blocking the big banner
- hosting services like doublecklick.net already helps a lot).
- <span class="APPLICATION">Privoxy</span> takes advantage of this fact
- by using <a href="../user-manual/actions-file.html#AF-PATTERNS" target=
- "_top">URL patterns</a> to sort out and block the requests for things
- that sound like they would be ads or banners.</p>
-
- <p>Second, banners tend to come in certain <span class=
- "emphasis"><i class="EMPHASIS">sizes</i></span>. But you can't tell the
- size of an image by its URL without downloading it, and if you do, it's
- too late to save bandwidth. Therefore, <span class=
- "APPLICATION">Privoxy</span> also inspects the HTML sources of web
- pages while they are loaded, and replaces references to images with
- standard banner sizes by dummy references, so that your browser doesn't
- request them anymore in the first place.</p>
-
- <p>Both of this involves a certain amount of guesswork and is, of
- course, freely and readily configurable.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="AEN158" id="AEN158">1.9. Can Privoxy make
- mistakes? This does not sound very scientific.</a></h3>
-
- <p>Actually, it's a black art ;-) And yes, it is always possible to
- have a broad rule accidentally block or change something by mistake.
- You will almost surely run into such situations at some point. It is
- tricky writing rules to cover every conceivable possibility, and not
- occasionally get false positives.</p>
-
- <p>But this should not be a big concern since the <span class=
- "APPLICATION">Privoxy</span> configuration is very flexible, and
- includes tools to help identify these types of situations so they can
- be addressed as needed, allowing you to customize your installation.
- (<a href="trouble.html#BADSITE">See the Troubleshooting section
- below</a>.)</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="AEN164" id="AEN164">1.10. Will I have to
- configure Privoxy before I can use it?</a></h3>
-
- <p>That depends on your expectations. The default installation should
- give you a good starting point, and block <span class=
- "emphasis"><i class="EMPHASIS">most</i></span> ads and unwanted
- content, but many of the more advanced features are off by default, and
- require you to activate them.</p>
-
- <p>You do have to set up your browser to use <span class=
- "APPLICATION">Privoxy</span> (see the <a href=
- "installation.html#FIRSTSTEP">Installation section below</a>).</p>
-
- <p>And you will certainly run into situations where there are false
- positives, or ads not being blocked that you may not want to see. In
- these cases, you would certainly benefit by customizing <span class=
- "APPLICATION">Privoxy's</span> configuration to more closely match your
- individual situation. And we encourage you to do this. This is where
- the real power of <span class="APPLICATION">Privoxy</span> lies!</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="LAN" id="LAN">1.11. Can Privoxy run as a
- server on a network?</a></h3>
-
- <p>Yes, <span class="APPLICATION">Privoxy</span> runs as a server
- already, and can easily be configured to <span class=
- "QUOTE">"serve"</span> more than one client. See <a href=
- "configuration.html#LANCONFIG">How can I set up Privoxy to act as a
- proxy for my LAN</a> below.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="BROWSERS2" id="BROWSERS2">1.12. My browser
- does the same things as Privoxy. Why should I use Privoxy at
- all?</a></h3>
-
- <p>Modern browsers do indeed have <span class="emphasis"><i class=
- "EMPHASIS">some</i></span> of the same functionality as <span class=
- "APPLICATION">Privoxy</span>. Maybe this is adequate for you. But
- <span class="APPLICATION">Privoxy</span> is very versatile and
- powerful, and can probably do a number of things your browser just
- can't.</p>
-
- <p>In addition, a proxy is good choice if you use multiple browsers, or
- have a LAN with multiple computers since <span class=
- "APPLICATION">Privoxy</span> can run as a server application. This way
- all the configuration is in one place, and you don't have to maintain a
- similar configuration for possibly many browsers or users.</p>
-
- <p>Note, however, that it's recommended to leverage both your browser's
- and <span class="APPLICATION">Privoxy's</span> privacy enhancing
- features at the same time. While your browser probably lacks some
- features <span class="APPLICATION">Privoxy</span> offers, it should
- also be able to do some things more reliable, for example restricting
- and suppressing JavaScript.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="WHYTRUST" id="WHYTRUST">1.13. Why should I
- trust Privoxy?</a></h3>
-
- <p>The most important reason is because you have access to <span class=
- "emphasis"><i class="EMPHASIS">everything</i></span>, and you can
- control everything. You can check every line of every configuration
- file yourself. You can check every last bit of source code should you
- desire. And even if you can't read code, there should be some comfort
- in knowing that other people can, and do read it. You can build the
- software from scratch, if you want, so that you know the executable is
- clean, and that it is <span class="emphasis"><i class=
- "EMPHASIS">yours</i></span>. In fact, we encourage this level of
- scrutiny. It is one reason we use <span class=
- "APPLICATION">Privoxy</span> ourselves.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="LICENSE" id="LICENSE">1.14. Is there is a
- license or fee? What about a warranty? Registration?</a></h3>
-
- <p><span class="APPLICATION">Privoxy</span> is free software and
- licensed under the <a href=
- "http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" target=
- "_top">GNU General Public License (GPL) version 2</a>. It is free to
- use, copy, modify or distribute as you wish under the terms of this
- license. Please see the <a href="copyright.html">Copyright</a> section
- for more information on the license and copyright. Or the <tt class=
- "FILENAME">LICENSE</tt> file that should be included.</p>
-
- <p>There is <span class="emphasis"><i class="EMPHASIS">no
- warranty</i></span> of any kind, expressed, implied or otherwise. That
- is something that would cost real money ;-) There is no registration
- either.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="SPYWARE" id="SPYWARE">1.15. Can Privoxy
- remove spyware? Adware? Viruses?</a></h3>
-
- <p>No, at least not reliably enough to trust it. <span class=
- "APPLICATION">Privoxy</span> is not designed to be a malware removal
- tool and the default configuration doesn't even try to filter out any
- malware.</p>
-
- <p><span class="APPLICATION">Privoxy</span> could help prevent contact
- from (known) sites that use such tactics with appropriate configuration
- rules, and thus could conceivably prevent contamination from such
- sites. However, keeping such a configuration up to date would require a
- lot of time and effort that would be better spend on keeping your
- software itself up to date so it doesn't have known
- vulnerabilities.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="OTHERADS" id="OTHERADS">1.16. Can I use
- Privoxy with other ad-blocking software?</a></h3>
-
- <p><span class="APPLICATION">Privoxy</span> should work fine with other
- proxies and other software in general.</p>
-
- <p>But it is probably not necessary to use <span class=
- "APPLICATION">Privoxy</span> in conjunction with other ad-blocking
- products, and this could conceivably cause undesirable results. It
- might be better to choose one software or the other and work a little
- to tweak its configuration to your liking.</p>
-
- <p>Note that this is an advice specific to ad blocking.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="HELP-THE-DEVELOPERS" id=
- "HELP-THE-DEVELOPERS">1.17. I would like to help you, what can I
- do?</a></h3>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="PARTICIPATE" id="PARTICIPATE">1.17.1.
- Would you like to participate?</a></h4>
-
- <p>Well, we <span class="emphasis"><i class=
- "EMPHASIS">always</i></span> need help. There is something for
- everybody who wants to help us. We welcome new developers, packagers,
- testers, documentation writers or really anyone with a desire to help
- in any way. You <span class="emphasis"><i class="EMPHASIS">DO
- NOT</i></span> need to be a <span class="QUOTE">"programmer"</span>.
- There are many other tasks available. In fact, the programmers often
- can't spend as much time programming because of some of the other,
- more mundane things that need to be done, like checking the Tracker
- feedback sections or responding to user questions on the mailing
- lists.</p>
-
- <p>So first thing, subscribe to the <a href=
- "https://lists.sourceforge.net/lists/listinfo/ijbswa-users" target=
- "_top">Privoxy Users</a> or the <a href=
- "https://lists.sourceforge.net/lists/listinfo/ijbswa-developers"
- target="_top">Privoxy Developers</a> mailing list, join the
- discussion, help out other users, provide general feedback or report
- problems you noticed.</p>
-
- <p>If you intend to help out with the trackers, you also might want
- to <a href="https://sourceforge.net/account/register.php" target=
- "_top">get an account on SourceForge.net</a> so we don't confuse you
- with the other name-less users.</p>
-
- <p>We also have a <a href="../developer-manual/index.html" target=
- "_top">Developer's Manual</a>. While it is partly out of date, it's
- still worth reading.</p>
-
- <p>Our <a href=
- "http://ijbswa.cvs.sourceforge.net/viewvc/ijbswa/current/TODO?view=markup"
- target="_top">TODO list</a> may be of interest to you as well. Please
- let us know if you want to work on one of the items listed.</p>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="DONATE" id="DONATE">1.17.2. Would you like
- to donate?</a></h4>
-
- <p><span class="APPLICATION">Privoxy</span> is developed by unpaid
- volunteers and thus our current running costs are pretty low.
- Nevertheless, we have plans that will cost money in the future. They
- include, but aren't limited to spending money on:</p>
-
- <ul>
- <li>
- <p>Hardware to help make sure <span class=
- "APPLICATION">Privoxy</span> keeps running on platforms the
- developers currently can't test on and can be ported to
- others.</p>
- </li>
-
- <li>
- <p>Technical books to educate our developers about said platforms
- or to improve their knowledge in general.</p>
- </li>
-
- <li>
- <p>More reliable hosting,</p>
- </li>
- </ul>
-
- <p>We would like to get this money through donations made by our
- users.</p>
-
- <p><span class="APPLICATION">Privoxy</span> has therefore become an
- associated project of <a href=
- "http://www.spi-inc.org/about-spi/about-spi" target="_top">Software
- in the Public Interest (SPI)</a>, which allows us to receive
- donations. In the United States they are tax-deductible, in a few
- other western countries they might be tax-deductible in the
- future.</p>
-
- <p>If you read this section before you may notice that paying for the
- project domain privoxy.org is no longer on the list. It has been
- transferred to SPI is sponsored by Mythic Beasts Ltd.</p>
-
- <p>If you enjoy our software and feel like helping out with a
- donation, please have a look at <a href=
- "http://www.spi-inc.org/donations" target="_top">SPI's donation
- page</a> to see what the options are. If you have any questions
- regarding donations please mail to either the public user mailing
- list or, if it's a private matter, to <a href=
- "mailto:fk@fabiankeil.de" target="_top">Fabian Keil</a> (Privoxy's
- SPI liason) directly.</p>
- </div>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="index.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href=
- "installation.html" accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">Privoxy Frequently Asked
- Questions</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">Installation</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Privoxy Frequently Asked Questions</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="NEXT" title="General Information" href="general.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-</head>
-
-<body class="ARTICLE" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="ARTICLE">
- <div class="TITLEPAGE">
- <h1 class="TITLE"><a name="AEN2" id="AEN2">Privoxy Frequently Asked
- Questions</a></h1>
-
- <p class="PUBDATE"><sub><a href="copyright.html">Copyright</a> ©
- 2001-2011 by <a href="http://www.privoxy.org/" target="_top">Privoxy
- Developers</a></sub><br></p>
-
- <p class="PUBDATE">$Id: faq.sgml,v 2.92 2013/03/01 17:44:24 fabiankeil
- Exp $<br></p>
-
- <div>
- <div class="ABSTRACT">
- <a name="AEN9" id="AEN9"></a>
-
- <p>This FAQ gives quick answers to frequently asked questions about
- <a href="http://www.privoxy.org/" target="_top">Privoxy</a>. It is
- not a substitute for the <a href="../user-manual/index.html"
- target="_top"><i class="CITETITLE">Privoxy User Manual</i></a>.</p>
-
- <p>What is Privoxy?</p>
-
- <p>Privoxy is a non-caching web proxy with advanced filtering
- capabilities for enhancing privacy, modifying web page data and
- HTTP headers, controlling access, and removing ads and other
- obnoxious Internet junk. Privoxy has a flexible configuration and
- can be customized to suit individual needs and tastes. It has
- application for both stand-alone systems and multi-user
- networks.</p>
-
- <p>Privoxy is Free Software and licensed under the GNU GPLv2.</p>
-
- <p>Privoxy is an associated project of Software in the Public
- Interest (SPI).</p>
-
- <p>Helping hands and donations are welcome:</p>
-
- <ul>
- <li>
- <p><a href=
- "http://www.privoxy.org/faq/general.html#PARTICIPATE" target=
- "_top">http://www.privoxy.org/faq/general.html#PARTICIPATE</a></p>
- </li>
-
- <li>
- <p><a href="http://www.privoxy.org/faq/general.html#DONATE"
- target=
- "_top">http://www.privoxy.org/faq/general.html#DONATE</a></p>
- </li>
- </ul>
-
- <p>Please note that this document is a work in progress. This copy
- represents the state at the release of version 3.0.21. You can find
- the latest version of the document at <a href=
- "http://www.privoxy.org/faq/" target=
- "_top">http://www.privoxy.org/faq/</a>. Please see the <a href=
- "contact.html">Contact section</a> if you want to contact the
- developers.</p>
- </div>
- </div>
- <hr>
- </div>
-
- <div class="TOC">
- <dl>
- <dt><b>Table of Contents</b></dt>
-
- <dt>1. <a href="general.html">General Information</a></dt>
-
- <dd>
- <dl>
- <dt>1.1. <a href="general.html#WHO-USES">Who should give
- <span class="APPLICATION">Privoxy</span> a try?</a></dt>
-
- <dt>1.2. <a href="general.html#BESTCHOICE">Is Privoxy the best
- choice for me?</a></dt>
-
- <dt>1.3. <a href="general.html#PROXYMORON">What is a <span class=
- "QUOTE">"proxy"</span>? How does Privoxy work?</a></dt>
-
- <dt>1.4. <a href="general.html#OTHERSTUFF">Does Privoxy do
- anything more than ad blocking?</a></dt>
-
- <dt>1.5. <a href="general.html#NEWJB">What is this new version of
- <span class="QUOTE">"Junkbuster"</span>?</a></dt>
-
- <dt>1.6. <a href="general.html#AEN82">Why <span class=
- "QUOTE">"Privoxy"</span>? Why change the name from Junkbuster at
- all?</a></dt>
-
- <dt>1.7. <a href="general.html#DIFFERS">How does Privoxy differ
- from the old Junkbuster?</a></dt>
-
- <dt>1.8. <a href="general.html#WHATSANAD">How does Privoxy know
- what is an ad, and what is not?</a></dt>
-
- <dt>1.9. <a href="general.html#AEN158">Can Privoxy make mistakes?
- This does not sound very scientific.</a></dt>
-
- <dt>1.10. <a href="general.html#AEN164">Will I have to configure
- Privoxy before I can use it?</a></dt>
-
- <dt>1.11. <a href="general.html#LAN">Can Privoxy run as a server
- on a network?</a></dt>
-
- <dt>1.12. <a href="general.html#BROWSERS2">My browser does the
- same things as Privoxy. Why should I use Privoxy at all?</a></dt>
-
- <dt>1.13. <a href="general.html#WHYTRUST">Why should I trust
- Privoxy?</a></dt>
-
- <dt>1.14. <a href="general.html#LICENSE">Is there is a license or
- fee? What about a warranty? Registration?</a></dt>
-
- <dt>1.15. <a href="general.html#SPYWARE">Can Privoxy remove
- spyware? Adware? Viruses?</a></dt>
-
- <dt>1.16. <a href="general.html#OTHERADS">Can I use Privoxy with
- other ad-blocking software?</a></dt>
-
- <dt>1.17. <a href="general.html#HELP-THE-DEVELOPERS">I would like
- to help you, what can I do?</a></dt>
-
- <dd>
- <dl>
- <dt>1.17.1. <a href="general.html#PARTICIPATE">Would you like
- to participate?</a></dt>
-
- <dt>1.17.2. <a href="general.html#DONATE">Would you like to
- donate?</a></dt>
- </dl>
- </dd>
- </dl>
- </dd>
-
- <dt>2. <a href="installation.html">Installation</a></dt>
-
- <dd>
- <dl>
- <dt>2.1. <a href="installation.html#WHICHBROWSERS">Which browsers
- are supported by Privoxy?</a></dt>
-
- <dt>2.2. <a href="installation.html#WHICHOS">Which operating
- systems are supported?</a></dt>
-
- <dt>2.3. <a href="installation.html#EMAIL-CLIENT">Can I use
- Privoxy with my email client?</a></dt>
-
- <dt>2.4. <a href="installation.html#FIRSTSTEP">I just installed
- Privoxy. Is there anything special I have to do now?</a></dt>
-
- <dt>2.5. <a href="installation.html#LOCALHOST">What is the proxy
- address of Privoxy?</a></dt>
-
- <dt>2.6. <a href="installation.html#NOTHING">I just installed
- Privoxy, and nothing is happening. All the ads are there. What's
- wrong?</a></dt>
-
- <dt>2.7. <a href="installation.html#NOTUSED">I get a <span class=
- "QUOTE">"Privoxy is not being used"</span> dummy page although
- Privoxy is running and being used.</a></dt>
- </dl>
- </dd>
-
- <dt>3. <a href="configuration.html">Configuration</a></dt>
-
- <dd>
- <dl>
- <dt>3.1. <a href="configuration.html#AEN366">What exactly is an
- <span class="QUOTE">"actions"</span> file?</a></dt>
-
- <dt>3.2. <a href="configuration.html#ACTIONSS">The <span class=
- "QUOTE">"actions"</span> concept confuses me. Please list some of
- these <span class="QUOTE">"actions"</span>.</a></dt>
-
- <dt>3.3. <a href="configuration.html#AEN389">How are actions
- files configured? What is the easiest way to do this?</a></dt>
-
- <dt>3.4. <a href="configuration.html#AEN398">There are several
- different <span class="QUOTE">"actions"</span> files. What are
- the differences?</a></dt>
-
- <dt>3.5. <a href="configuration.html#GETUPDATES">Where can I get
- updated Actions Files?</a></dt>
-
- <dt>3.6. <a href="configuration.html#NEWCONFIG">Can I use my old
- config files?</a></dt>
-
- <dt>3.7. <a href="configuration.html#DIFFICULT">Why is the
- configuration so complicated?</a></dt>
-
- <dt>3.8. <a href="configuration.html#YAHOO">How can I make my
- Yahoo/Hotmail/Gmail account work?</a></dt>
-
- <dt>3.9. <a href="configuration.html#CONFIGFILES">What's the
- difference between the <span class="QUOTE">"Cautious"</span>,
- <span class="QUOTE">"Medium"</span> and <span class=
- "QUOTE">"Advanced"</span> defaults?</a></dt>
-
- <dt>3.10. <a href="configuration.html#BROWSECONFIG">Why can I
- change the configuration with a browser? Does that not raise
- security issues?</a></dt>
-
- <dt>3.11. <a href="configuration.html#AEN486">What is the
- <tt class="FILENAME">default.filter</tt> file? What is a
- <span class="QUOTE">"filter"</span>?</a></dt>
-
- <dt>3.12. <a href="configuration.html#LANCONFIG">How can I set up
- Privoxy to act as a proxy for my LAN?</a></dt>
-
- <dt>3.13. <a href="configuration.html#AEN537">Instead of ads, now
- I get a checkerboard pattern. I don't want to see
- anything.</a></dt>
-
- <dt>3.14. <a href="configuration.html#AEN554">Why would anybody
- want to see a checkerboard pattern?</a></dt>
-
- <dt>3.15. <a href="configuration.html#AEN560">I see some images
- being replaced with text instead of the checkerboard image. Why
- and how do I get rid of this?</a></dt>
-
- <dt>3.16. <a href="configuration.html#SRVANY">Can Privoxy run as
- a service on Win2K/NT/XP?</a></dt>
-
- <dt>3.17. <a href="configuration.html#OTHERPROXY">How can I make
- Privoxy work with other proxies?</a></dt>
-
- <dt>3.18. <a href="configuration.html#PORT-80">Can I just set
- Privoxy to use port 80 and thus avoid individual browser
- configuration?</a></dt>
-
- <dt>3.19. <a href="configuration.html#TRANSPARENT">Can Privoxy
- run as a <span class="QUOTE">"transparent"</span> proxy?</a></dt>
-
- <dt>3.20. <a href="configuration.html#INTERCEPTING">Can Privoxy
- run as a <span class="QUOTE">"intercepting"</span>
- proxy?</a></dt>
-
- <dt>3.21. <a href="configuration.html#OUTLOOK">How can I
- configure Privoxy for use with Outlook?</a></dt>
-
- <dt>3.22. <a href="configuration.html#OUTLOOK-MORE">How can I
- have separate rules just for HTML mail?</a></dt>
-
- <dt>3.23. <a href="configuration.html#SNEAKY-COOKIES">I sometimes
- notice cookies sneaking through. How?</a></dt>
-
- <dt>3.24. <a href="configuration.html#EVIL-COOKIES">Are all
- cookies bad? Why?</a></dt>
-
- <dt>3.25. <a href="configuration.html#ALLOW-COOKIES">How can I
- allow permanent cookies for my trusted sites?</a></dt>
-
- <dt>3.26. <a href="configuration.html#MULTIPLES">Can I have
- separate configurations for different users?</a></dt>
-
- <dt>3.27. <a href="configuration.html#WHITELISTS">Can I set-up
- Privoxy as a whitelist of <span class="QUOTE">"good"</span>
- sites?</a></dt>
-
- <dt>3.28. <a href="configuration.html#NO-ADBLOCK">How can I turn
- off ad-blocking?</a></dt>
-
- <dt>3.29. <a href="configuration.html#TEMPLATES">How can I have
- custom template pages, like the <span class="emphasis"><i class=
- "EMPHASIS">BLOCKED</i></span> page?</a></dt>
-
- <dt>3.30. <a href="configuration.html#BLOCKALL">How can I remove
- the <span class="QUOTE">"Go There Anyway"</span> link from the
- <span class="emphasis"><i class="EMPHASIS">BLOCKED</i></span>
- page?</a></dt>
- </dl>
- </dd>
-
- <dt>4. <a href="misc.html">Miscellaneous</a></dt>
-
- <dd>
- <dl>
- <dt>4.1. <a href="misc.html#AEN735">How much does Privoxy slow my
- browsing down? This has to add extra time to browsing.</a></dt>
-
- <dt>4.2. <a href="misc.html#LOADINGTIMES">I notice considerable
- delays in page requests. What's wrong?</a></dt>
-
- <dt>4.3. <a href="misc.html#CONFIGURL">What are
- "http://config.privoxy.org/" and "http://p.p/"?</a></dt>
-
- <dt>4.4. <a href="misc.html#NEWADS">How can I submit new ads, or
- report problems?</a></dt>
-
- <dt>4.5. <a href="misc.html#NEWADS2">If I do submit missed ads,
- will they be included in future updates?</a></dt>
-
- <dt>4.6. <a href="misc.html#NOONECARES">Why doesn't anyone answer
- my support request?</a></dt>
-
- <dt>4.7. <a href="misc.html#IP">How can I hide my IP
- address?</a></dt>
-
- <dt>4.8. <a href="misc.html#AEN800">Can Privoxy guarantee I am
- anonymous?</a></dt>
-
- <dt>4.9. <a href="misc.html#AEN818">A test site says I am not
- using a Proxy.</a></dt>
-
- <dt>4.10. <a href="misc.html#TOR">How do I use Privoxy together
- with Tor?</a></dt>
-
- <dt>4.11. <a href="misc.html#AEN874">Might some things break
- because header information or content is being altered?</a></dt>
-
- <dt>4.12. <a href="misc.html#AEN888">Can Privoxy act as a
- <span class="QUOTE">"caching"</span> proxy to speed up web
- browsing?</a></dt>
-
- <dt>4.13. <a href="misc.html#AEN898">What about as a firewall?
- Can Privoxy protect me?</a></dt>
-
- <dt>4.14. <a href="misc.html#AEN903">I have large empty spaces /
- a checkerboard pattern now where ads used to be. Why?</a></dt>
-
- <dt>4.15. <a href="misc.html#AEN911">How can Privoxy filter
- Secure (HTTPS) URLs?</a></dt>
-
- <dt>4.16. <a href="misc.html#AEN925">Privoxy runs as a
- <span class="QUOTE">"server"</span>. How secure is it? Do I need
- to take any special precautions?</a></dt>
-
- <dt>4.17. <a href="misc.html#TURNOFF">Can I temporarily disable
- Privoxy?</a></dt>
-
- <dt>4.18. <a href="misc.html#REALLYOFF">When <span class=
- "QUOTE">"disabled"</span> is Privoxy totally out of the
- picture?</a></dt>
-
- <dt>4.19. <a href="misc.html#TURNOFF2">How can I tell Privoxy to
- totally ignore certain sites?</a></dt>
-
- <dt>4.20. <a href="misc.html#CRUNCH">My logs show Privoxy
- <span class="QUOTE">"crunches"</span> ads, but also its own
- internal CGI pages. What is a <span class=
- "QUOTE">"crunch"</span>?</a></dt>
-
- <dt>4.21. <a href="misc.html#DOWNLOADS">Can Privoxy effect files
- that I download from a webserver? FTP server?</a></dt>
-
- <dt>4.22. <a href="misc.html#DOWNLOADS2">I just downloaded a Perl
- script, and Privoxy altered it! Yikes, what is wrong!</a></dt>
-
- <dt>4.23. <a href="misc.html#HOSTSFILE">Should I continue to use
- a <span class="QUOTE">"HOSTS"</span> file for
- ad-blocking?</a></dt>
-
- <dt>4.24. <a href="misc.html#SEEALSO">Where can I find more
- information about Privoxy and related issues?</a></dt>
-
- <dt>4.25. <a href="misc.html#MICROSUCK">I've noticed that Privoxy
- changes <span class="QUOTE">"Microsoft"</span> to <span class=
- "QUOTE">"MicroSuck"</span>! Why are you manipulating my
- browsing?</a></dt>
-
- <dt>4.26. <a href="misc.html#VALID">Does Privoxy produce
- <span class="QUOTE">"valid"</span> HTML (or XHTML)?</a></dt>
-
- <dt>4.27. <a href="misc.html#SURPRISE-PRIVOXY">How did you manage
- to get Privoxy on my computer without my consent?</a></dt>
- </dl>
- </dd>
-
- <dt>5. <a href="trouble.html">Troubleshooting</a></dt>
-
- <dd>
- <dl>
- <dt>5.1. <a href="trouble.html#AEN1091">I cannot connect to any
- websites. Or, I am getting <span class="QUOTE">"connection
- refused"</span> message with every web page. Why?</a></dt>
-
- <dt>5.2. <a href="trouble.html#ERROR503">Why am I getting a 503
- Error (WSAECONNREFUSED) on every page?</a></dt>
-
- <dt>5.3. <a href="trouble.html#AEN1114">I just added a new rule,
- but the steenkin ad is still getting through. How?</a></dt>
-
- <dt>5.4. <a href="trouble.html#BADSITE">One of my favorite sites
- does not work with Privoxy. What can I do?</a></dt>
-
- <dt>5.5. <a href="trouble.html#DUN">After installing Privoxy, I
- have to log in every time I start IE. What gives?</a></dt>
-
- <dt>5.6. <a href="trouble.html#FTP">I cannot connect to any FTP
- sites. Privoxy is blocking me.</a></dt>
-
- <dt>5.7. <a href="trouble.html#MACOSXIE">In Mac OS X, I can't
- configure Microsoft Internet Explorer to use Privoxy as the HTTP
- proxy.</a></dt>
-
- <dt>5.8. <a href="trouble.html#MACOSXUNINSTALL">In Mac OS X, I
- dragged the Privoxy folder to the trash in order to uninstall it.
- Now the finder tells me I don't have sufficient privileges to
- empty the trash.</a></dt>
-
- <dt>5.9. <a href="trouble.html#MACOSXIMAGES">In Mac OS X Panther
- (10.3), images often fail to load and/or I experience random
- delays in page loading. I'm using <tt class=
- "LITERAL">localhost</tt> as my browser's proxy setting.</a></dt>
-
- <dt>5.10. <a href="trouble.html#BLANKPAGE">I get a completely
- blank page at one site. <span class="QUOTE">"View Source"</span>
- shows only: <span class=
- "MARKUP"><html><body></body></html></span>.
- Without Privoxy the page loads fine.</a></dt>
-
- <dt>5.11. <a href="trouble.html#NOHOSTNAME">My logs show many
- <span class="QUOTE">"Unable to get my own hostname"</span> lines.
- Why?</a></dt>
-
- <dt>5.12. <a href="trouble.html#INUSE">When I try to launch
- Privoxy, I get an error message <span class="QUOTE">"port 8118 is
- already in use"</span> (or similar wording). Why?</a></dt>
-
- <dt>5.13. <a href="trouble.html#DEMORONIZER">Pages with UTF-8
- fonts are garbled.</a></dt>
-
- <dt>5.14. <a href="trouble.html#DEMORONIZER2">Why are binary
- files (such as images) corrupted when Privoxy is used?</a></dt>
-
- <dt>5.15. <a href="trouble.html#DEMORONIZER3">What is the
- <span class="QUOTE">"demoronizer"</span> and why is it
- there?</a></dt>
-
- <dt>5.16. <a href="trouble.html#WINDOWOPEN">Why do I keep seeing
- <span class="QUOTE">"PrivoxyWindowOpen()"</span> in raw source
- code?</a></dt>
-
- <dt>5.17. <a href="trouble.html#DNSERRORS">I am getting too many
- DNS errors like <span class="QUOTE">"404 No Such Domain"</span>.
- Why can't Privoxy do this better?</a></dt>
-
- <dt>5.18. <a href="trouble.html#ALLCPU">At one site Privoxy just
- hangs, and starts taking all CPU. Why is this?</a></dt>
-
- <dt>5.19. <a href="trouble.html#SLOWCRAWL">I just installed
- Privoxy, and all my browsing has slowed to a crawl. What
- gives?</a></dt>
-
- <dt>5.20. <a href="trouble.html#PREVENTCOMP">Why do my filters
- work on some sites but not on others?</a></dt>
-
- <dt>5.21. <a href="trouble.html#SSL-WARNINGS">On some HTTPS sites
- my browser warns me about unauthenticated content, the URL bar
- doesn't get highlighted and the lock symbol appears to be broken.
- What's going on?</a></dt>
-
- <dt>5.22. <a href="trouble.html#SE-LINUX">I get selinux error
- messages. How can I fix this?</a></dt>
-
- <dt>5.23. <a href="trouble.html#GENTOO-RICERS">I compiled
- <span class="APPLICATION">Privoxy</span> with Gentoo's portage
- and it appears to be very slow. Why?</a></dt>
- </dl>
- </dd>
-
- <dt>6. <a href="contact.html">Contacting the developers, Bug
- Reporting and Feature Requests</a></dt>
-
- <dd>
- <dl>
- <dt>6.1. <a href="contact.html#SUFFICIENT-INFORMATION">Please
- provide sufficient information</a></dt>
-
- <dt>6.2. <a href="contact.html#CONTACT-SUPPORT">Get
- Support</a></dt>
-
- <dt>6.3. <a href="contact.html#REPORTING">Reporting
- Problems</a></dt>
-
- <dd>
- <dl>
- <dt>6.3.1. <a href="contact.html#CONTACT-ADS">Reporting Ads
- or Other Configuration Problems</a></dt>
-
- <dt>6.3.2. <a href="contact.html#CONTACT-BUGS">Reporting
- Bugs</a></dt>
- </dl>
- </dd>
-
- <dt>6.4. <a href="contact.html#CONTACT-FEATURE">Request New
- Features</a></dt>
-
- <dt>6.5. <a href="contact.html#MAILING-LISTS">Mailing
- Lists</a></dt>
- </dl>
- </dd>
-
- <dt>7. <a href="copyright.html">Privoxy Copyright, License and
- History</a></dt>
-
- <dd>
- <dl>
- <dt>7.1. <a href="copyright.html#AEN1470">License</a></dt>
-
- <dt>7.2. <a href="copyright.html#AEN1479">History</a></dt>
- </dl>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"> </td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top"><a href="general.html"
- accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top"> </td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">General Information</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Installation</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy Frequently Asked Questions" href=
- "index.html">
- <link rel="PREVIOUS" title="General Information" href="general.html">
- <link rel="NEXT" title="Configuration" href="configuration.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy Frequently Asked
- Questions</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href="general.html"
- accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href=
- "configuration.html" accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="INSTALLATION" id="INSTALLATION">2.
- Installation</a></h1>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="WHICHBROWSERS" id="WHICHBROWSERS">2.1. Which
- browsers are supported by Privoxy?</a></h3>
-
- <p>Any browser that can be configured to use a proxy, which should be
- virtually all browsers, including <span class=
- "APPLICATION">Firefox</span>, <span class="APPLICATION">Internet
- Explorer</span>, <span class="APPLICATION">Opera</span>, and
- <span class="APPLICATION">Safari</span> among others. Direct browser
- support is not an absolute requirement since <span class=
- "APPLICATION">Privoxy</span> runs as a separate application and talks
- to the browser in the standardized HTTP protocol, just like a web
- server does.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="WHICHOS" id="WHICHOS">2.2. Which operating
- systems are supported?</a></h3>
-
- <p>At present, <span class="APPLICATION">Privoxy</span> is known to run
- on Windows 95 and later versions (98, ME, 2000, XP, Vista, Windows 7
- etc.), GNU/Linux (RedHat, SuSE, Debian, Fedora, Gentoo, Slackware and
- others), Mac OS X (10.4 and upwards on PPC and Intel processors), OS/2,
- Haiku, DragonFly, FreeBSD, NetBSD, OpenBSD, Solaris, and various other
- flavors of Unix.</p>
-
- <p><span class="APPLICATION">Privoxy</span> used to work on AmigaOS and
- QNX, too, but the code currently isn't maintained and its status
- unknown. It might no longer compile, but getting it working again
- shouldn't be too hard.</p>
-
- <p>But any operating system that runs TCP/IP, can conceivably take
- advantage of <span class="APPLICATION">Privoxy</span> in a networked
- situation where <span class="APPLICATION">Privoxy</span> would run as a
- server on a LAN gateway. Then only the <span class=
- "QUOTE">"gateway"</span> needs to be running one of the above operating
- systems.</p>
-
- <p>Source code is freely available, so porting to other operating
- systems is always a possibility.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="EMAIL-CLIENT" id="EMAIL-CLIENT">2.3. Can I
- use Privoxy with my email client?</a></h3>
-
- <p>As long as there is some way to set a HTTP proxy for the client,
- then yes, any application can be used, whether it is strictly speaking
- a <span class="QUOTE">"browser"</span> or not. Though this may not be
- the best approach for dealing with some of the common abuses of HTML in
- email. See <a href="configuration.html#OUTLOOK">How can I configure
- <span class="APPLICATION">Privoxy</span> with <span class=
- "APPLICATION">Outlook</span>?</a> below for more on this.</p>
-
- <p>Be aware that HTML email presents a number of unique security and
- privacy related issues, that can require advanced skills to overcome.
- The developers recommend using email clients that can be configured to
- convert HTML to plain text for these reasons.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="FIRSTSTEP" id="FIRSTSTEP">2.4. I just
- installed Privoxy. Is there anything special I have to do now?</a></h3>
-
- <p>All browsers should be told to use <span class=
- "APPLICATION">Privoxy</span> as a proxy by specifying the correct proxy
- address and port number in the appropriate configuration area for the
- browser. It's possible to combine <span class=
- "APPLICATION">Privoxy</span> with a packet filter to intercept HTTP
- requests even if the client isn't explicitly configured to use
- <span class="APPLICATION">Privoxy</span>, but where possible,
- configuring the client is recommended. See <a href=
- "../user-manual/startup.html" target="_top">the User Manual for more
- details</a>. You should also flush your browser's memory and disk cache
- to get rid of any cached junk items, and remove any stored <a href=
- "http://en.wikipedia.org/wiki/Browser_cookie" target=
- "_top">cookies</a>.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="LOCALHOST" id="LOCALHOST">2.5. What is the
- proxy address of Privoxy?</a></h3>
-
- <p>If you set up the <span class="APPLICATION">Privoxy</span> to run on
- the computer you browse from (rather than your ISP's server or some
- networked computer on a LAN), the proxy will be on <tt class=
- "LITERAL">127.0.0.1</tt> (sometimes referred to as <span class=
- "QUOTE">"localhost"</span>, which is the special name used by every
- computer on the Internet to refer to itself) and the port will be 8118
- (unless you used the <a href=
- "../user-manual/config.html#LISTEN-ADDRESS" target=
- "_top">listen-address</a> config option to tell <span class=
- "APPLICATION">Privoxy</span> to run on a different port).</p>
-
- <p>When configuring your browser's proxy settings you typically enter
- the word <span class="QUOTE">"localhost"</span> or the IP address
- <span class="QUOTE">"127.0.0.1"</span> in the boxes next to
- <span class="QUOTE">"HTTP"</span> and <span class=
- "QUOTE">"Secure"</span> (HTTPS) and then the number <span class=
- "QUOTE">"8118"</span> for <span class="QUOTE">"port"</span>. This tells
- your browser to send all web requests to <span class=
- "APPLICATION">Privoxy</span> instead of directly to the Internet.</p>
-
- <p><span class="APPLICATION">Privoxy</span> can also be used to proxy
- for a Local Area Network. In this case, your would enter either the IP
- address of the LAN host where <span class="APPLICATION">Privoxy</span>
- is running, or the equivalent hostname, e.g. <tt class=
- "LITERAL">192.168.1.1</tt>. Port assignment would be same as above.
- Note that <span class="APPLICATION">Privoxy</span> doesn't listen on
- any LAN interfaces by default.</p>
-
- <p><span class="APPLICATION">Privoxy</span> does not currently handle
- any other protocols such as FTP, SMTP, IM, IRC, ICQ, etc.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="NOTHING" id="NOTHING">2.6. I just installed
- Privoxy, and nothing is happening. All the ads are there. What's
- wrong?</a></h3>
-
- <p>Did you configure your browser to use <span class=
- "APPLICATION">Privoxy</span> as a proxy? It does not sound like it. See
- above. You might also try flushing the browser's caches to force a full
- re-reading of pages. You can verify that <span class=
- "APPLICATION">Privoxy</span> is running, and your browser is correctly
- configured by entering the special URL: <a href="http://p.p/" target=
- "_top">http://p.p/</a>. This should take you to a page titled
- <span class="QUOTE">"This is Privoxy.."</span> with access to
- <span class="APPLICATION">Privoxy's</span> internal configuration. If
- you see this, then you are good to go. If you receive a page saying
- <span class="QUOTE">"Privoxy is not running"</span>, then the browser
- is not set up to use your <span class="APPLICATION">Privoxy</span>
- installation. If you receive anything else (probably nothing at all),
- it could either be that the browser is not set up correctly, or that
- <span class="APPLICATION">Privoxy</span> is not running at all. Check
- the <a href="../user-manual/config.html#LOGFILE" target="_top">log
- file</a>. For instructions on starting <span class=
- "APPLICATION">Privoxy</span> and browser configuration, see the
- <a href="http://www.privoxy.org/user-manual/startup.html" target=
- "_top">chapter on starting <span class="APPLICATION">Privoxy</span></a>
- in the <a href="http://www.privoxy.org/user-manual/" target="_top">User
- Manual</a>.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="NOTUSED" id="NOTUSED">2.7. I get a
- <span class="QUOTE">"Privoxy is not being used"</span> dummy page
- although Privoxy is running and being used.</a></h3>
-
- <p>First, make sure that Privoxy is <span class="emphasis"><i class=
- "EMPHASIS">really</i></span> running and being used by visiting
- <a href="http://p.p/" target="_top">http://p.p/</a>. You should see the
- <span class="APPLICATION">Privoxy</span> main page. If not, see the
- <a href="http://www.privoxy.org/user-manual/startup.html" target=
- "_top">chapter on starting <span class="APPLICATION">Privoxy</span></a>
- in the <a href="http://www.privoxy.org/user-manual/" target="_top">User
- Manual</a>.</p>
-
- <p>Now if <a href="http://p.p/" target="_top">http://p.p/</a> works for
- you, but other parts of <span class="APPLICATION">Privoxy</span>'s web
- interface show the dummy page, your browser has cached a redirection it
- encountered before <span class="APPLICATION">Privoxy</span> was being
- used. You need to clear your browser's cache. Note that shift-reloading
- the dummy page won't help, since that'll only refresh the dummy page,
- not the redirection that lead you there.</p>
-
- <p>The procedure for clearing the cache varies from browser to browser.
- For example, <span class="APPLICATION">Mozilla/Netscape</span> users
- would click <span class="GUIBUTTON">Edit</span> --> <span class=
- "GUIBUTTON">Preferences</span> --> <span class=
- "GUIBUTTON">Advanced</span> --> <span class="GUIBUTTON">Cache</span>
- and then click both <span class="QUOTE">"<span class="GUIBUTTON">Clear
- Memory Cache</span>"</span> and <span class="QUOTE">"<span class=
- "GUIBUTTON">Clear Disk Cache</span>"</span>. In some <span class=
- "APPLICATION">Firefox</span> versions it's <span class=
- "GUIBUTTON">Tools</span> --> <span class="GUIBUTTON">Options</span>
- --> <span class="GUIBUTTON">Privacy</span> --> <span class=
- "GUIBUTTON">Cache</span> and then click <span class=
- "QUOTE">"<span class="GUIBUTTON">Clear Cache Now</span>"</span>.</p>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="general.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href=
- "configuration.html" accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">General Information</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">Configuration</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Miscellaneous</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy Frequently Asked Questions" href=
- "index.html">
- <link rel="PREVIOUS" title="Configuration" href="configuration.html">
- <link rel="NEXT" title="Troubleshooting" href="trouble.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy Frequently Asked
- Questions</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href=
- "configuration.html" accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href="trouble.html"
- accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="MISC" id="MISC">4. Miscellaneous</a></h1>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="AEN735" id="AEN735">4.1. How much does
- Privoxy slow my browsing down? This has to add extra time to
- browsing.</a></h3>
-
- <p>How much of an impact depends on many things, including the CPU of
- the host system, how aggressive the configuration is, which specific
- actions are being triggered, the size of the page, the bandwidth of the
- connection, etc.</p>
-
- <p>Overall, it should not slow you down any in real terms, and may
- actually help speed things up since ads, banners and other junk are not
- typically being retrieved and displayed. The actual processing time
- required by <span class="APPLICATION">Privoxy</span> itself for each
- page, is relatively small in the overall scheme of things, and happens
- very quickly. This is typically more than offset by time saved not
- downloading and rendering ad images and other junk content (if ad
- blocking is being used).</p>
-
- <p><span class="QUOTE">"Filtering"</span> content via the <tt class=
- "LITERAL"><a href="../user-manual/actions-file.html#FILTER" target=
- "_top">filter</a></tt> or <tt class="LITERAL"><a href=
- "../user-manual/actions-file.html#DEANIMATE-GIFS" target=
- "_top">deanimate-gifs</a></tt> actions may cause a perceived slowdown,
- since the entire document needs to be buffered before displaying. And
- on very large documents, filtering may have some measurable impact. How
- much depends on the page size, the actual definition of the filter(s),
- etc. See below. Most other actions have little to no impact on
- speed.</p>
-
- <p>Also, when filtering is enabled but zlib support isn't available,
- compression is often disabled (see <a href=
- "../user-manual/actions-file.html#PREVENT-COMPRESSION" target=
- "_top">prevent-compression</a>). This can have an impact on speed as
- well, although it's probably smaller than you might think. Again, the
- page size, etc. will determine how much of an impact.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="LOADINGTIMES" id="LOADINGTIMES">4.2. I
- notice considerable delays in page requests. What's wrong?</a></h3>
-
- <p>If you use any <tt class="LITERAL"><a href=
- "../user-manual/actions-file.html#FILTER" target="_top">filter</a></tt>
- action, such as filtering banners by size, web-bugs etc, or the
- <tt class="LITERAL"><a href=
- "../user-manual/actions-file.html#DEANIMATE-GIFS" target=
- "_top">deanimate-gifs</a></tt> action, the entire document must be
- loaded into memory in order for the filtering mechanism to work, and
- nothing is sent to the browser during this time.</p>
-
- <p>The loading time typically does not really change much in real
- numbers, but the feeling is different, because most browsers are able
- to start rendering incomplete content, giving the user a feeling of "it
- works". This effect is more noticeable on slower dialup connections.
- Extremely large documents may have some impact on the time to load the
- page where there is filtering being done. But overall, the difference
- should be very minimal. If there is a big impact, then probably some
- other situation is contributing (like anti-virus software).</p>
-
- <p>Filtering is automatically disabled for inappropriate MIME types.
- But note that if the web server mis-reports the MIME type, then content
- that should not be filtered, could be. <span class=
- "APPLICATION">Privoxy</span> only knows how to differentiate filterable
- content because of the MIME type as reported by the server, or because
- of some configuration setting that enables/disables filtering.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="CONFIGURL" id="CONFIGURL">4.3. What are
- "http://config.privoxy.org/" and "http://p.p/"?</a></h3>
-
- <p><a href="http://config.privoxy.org/" target=
- "_top">http://config.privoxy.org/</a> is the address of <span class=
- "APPLICATION">Privoxy</span>'s built-in user interface, and <a href=
- "http://p.p/" target="_top">http://p.p/</a> is a shortcut for it.</p>
-
- <p>Since <span class="APPLICATION">Privoxy</span> sits between your web
- browser and the Internet, it can simply intercept requests for these
- addresses and answer them with its built-in <span class="QUOTE">"web
- server"</span>.</p>
-
- <p>This also makes for a good test for your browser configuration: If
- entering the URL <a href="http://config.privoxy.org/" target=
- "_top">http://config.privoxy.org/</a> takes you to a page saying
- <span class="QUOTE">"This is Privoxy ..."</span>, everything is OK. If
- you get a page saying <span class="QUOTE">"Privoxy is not
- working"</span> instead, then your browser didn't use <span class=
- "APPLICATION">Privoxy</span> for the request, hence it could not be
- intercepted, and you have accessed the <span class="emphasis"><i class=
- "EMPHASIS">real</i></span> web site at config.privoxy.org.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="NEWADS" id="NEWADS">4.4. How can I submit
- new ads, or report problems?</a></h3>
-
- <p>Please see the <a href="contact.html">Contact section</a> for
- various ways to interact with the developers.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="NEWADS2" id="NEWADS2">4.5. If I do submit
- missed ads, will they be included in future updates?</a></h3>
-
- <p>Whether such submissions are eventually included in the <tt class=
- "FILENAME">default.action</tt> configuration file depends on how
- significant the issue is. We of course want to address any potential
- problem with major, high-profile sites such as <i class=
- "CITETITLE">Google</i>, <i class="CITETITLE">Yahoo</i>, etc. Any site
- with global or regional reach, has a good chance of being a candidate.
- But at the other end of the spectrum are any number of smaller,
- low-profile sites such as for local clubs or schools. Since their reach
- and impact are much less, they are best handled by inclusion in the
- user's <tt class="FILENAME">user.action</tt>, and thus would be
- unlikely to be included.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="NOONECARES" id="NOONECARES">4.6. Why doesn't
- anyone answer my support request?</a></h3>
-
- <p>Rest assured that it has been read and considered. Why it is not
- answered, could be for various reasons, including no one has a good
- answer for it, no one has had time to yet investigate it thoroughly, it
- has been reported numerous times already, or because not enough
- information was provided to help us help you. Your efforts are not
- wasted, and we do appreciate them.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="IP" id="IP">4.7. How can I hide my IP
- address?</a></h3>
-
- <p>If you run both the browser and <span class=
- "APPLICATION">Privoxy</span> locally, you cannot hide your IP address
- with <span class="APPLICATION">Privoxy</span> or ultimately any other
- software alone. The server needs to know your IP address so that it
- knows where to send the responses back.</p>
-
- <p>There are many publicly usable "anonymous" proxies out there, which
- provide a further level of indirection between you and the web
- server.</p>
-
- <p>However, these proxies are called "anonymous" because you don't need
- to authenticate, not because they would offer any real anonymity. Most
- of them will log your IP address and make it available to the
- authorities in case you violate the law of the country they run in. In
- fact you can't even rule out that some of them only exist to *collect*
- information on (those suspicious) people with a more than average
- preference for privacy.</p>
-
- <p>If you want to hide your IP address from most adversaries, you
- should consider chaining <span class="APPLICATION">Privoxy</span> with
- <a href="https://www.torproject.org/" target="_top">Tor</a>. The
- configuration details can be found in <a href="#TOR" target="_top">How
- do I use <span class="APPLICATION">Privoxy</span> together with
- <span class="APPLICATION">Tor</span> section</a> just below.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="AEN800" id="AEN800">4.8. Can Privoxy
- guarantee I am anonymous?</a></h3>
-
- <p>No. Your chances of remaining anonymous are improved, but unless you
- <a href="#TOR" target="_top">chain <span class=
- "APPLICATION">Privoxy</span> with <span class=
- "APPLICATION">Tor</span></a> or a similar proxy and know what you're
- doing when it comes to configuring the rest of your system, you should
- assume that everything you do on the Web can be traced back to you.</p>
-
- <p><span class="APPLICATION">Privoxy</span> can remove various
- information about you, and allows <span class="emphasis"><i class=
- "EMPHASIS">you</i></span> more freedom to decide which sites you can
- trust, and what details you want to reveal. But it neither hides your
- IP address, nor can it guarantee that the rest of the system behaves
- correctly. There are several possibilities how a web sites can find out
- who you are, even if you are using a strict <span class=
- "APPLICATION">Privoxy</span> configuration and chained it with
- <span class="APPLICATION">Tor</span>.</p>
-
- <p>Most of <span class="APPLICATION">Privoxy's</span> privacy-enhancing
- features can be easily subverted by an insecure browser configuration,
- therefore you should use a browser that can be configured to only
- execute code from trusted sites, and be careful which sites you trust.
- For example there is no point in having <span class=
- "APPLICATION">Privoxy</span> modify the User-Agent header, if websites
- can get all the information they want through JavaScript, ActiveX,
- Flash, Java etc.</p>
-
- <p>A few browsers disclose the user's email address in certain
- situations, such as when transferring a file by FTP. <span class=
- "APPLICATION">Privoxy</span> does not filter FTP. If you need this
- feature, or are concerned about the mail handler of your browser
- disclosing your email address, you might consider products such as
- <span class="APPLICATION">NSClean</span>.</p>
-
- <p>Browsers available only as binaries could use non-standard headers
- to give out any information they can have access to: see the
- manufacturer's license agreement. It's impossible to anticipate and
- prevent every breach of privacy that might occur. The professionally
- paranoid prefer browsers available as source code, because anticipating
- their behavior is easier. Trust the source, Luke!</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="AEN818" id="AEN818">4.9. A test site says I
- am not using a Proxy.</a></h3>
-
- <p>Good! Actually, they are probably testing for some other kinds of
- proxies. Hiding yourself completely would require additional steps.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="TOR" id="TOR">4.10. How do I use Privoxy
- together with Tor?</a></h3>
-
- <p>Before you configure <span class="APPLICATION">Privoxy</span> to use
- <a href="https://www.torproject.org/" target="_top">Tor</a>, please
- follow the <i class="CITETITLE">User Manual</i> chapters <a href=
- "../user-manual/installation.html" target="_top">2. Installation</a>
- and <a href="../user-manual/startup.html" target="_top">5. Startup</a>
- to make sure <span class="APPLICATION">Privoxy</span> itself is setup
- correctly.</p>
-
- <p>If it is, refer to <a href=
- "https://www.torproject.org/documentation.html" target="_top">Tor's
- extensive documentation</a> to learn how to install <span class=
- "APPLICATION">Tor</span>, and make sure <span class=
- "APPLICATION">Tor</span>'s logfile says that <span class="QUOTE">"Tor
- has successfully opened a circuit"</span> and it <span class=
- "QUOTE">"looks like client functionality is working"</span>.</p>
-
- <p>If either <span class="APPLICATION">Tor</span> or <span class=
- "APPLICATION">Privoxy</span> isn't working, their combination most
- likely will neither. Testing them on their own will also help you to
- direct problem reports to the right audience. If <span class=
- "APPLICATION">Privoxy</span> isn't working, don't bother the
- <span class="APPLICATION">Tor</span> developers. If <span class=
- "APPLICATION">Tor</span> isn't working, don't send bug reports to the
- <span class="APPLICATION">Privoxy</span> Team.</p>
-
- <p>If you verified that <span class="APPLICATION">Privoxy</span> and
- <span class="APPLICATION">Tor</span> are working, it is time to connect
- them. As far as <span class="APPLICATION">Privoxy</span> is concerned,
- <span class="APPLICATION">Tor</span> is just another proxy that can be
- reached by socks4, socks4a and socks5. Most likely you are interested
- in <span class="APPLICATION">Tor</span> to increase your anonymity
- level, therefore you should use socks5, to make sure DNS requests are
- done through <span class="APPLICATION">Tor</span> and thus invisible to
- your local network. Using socks4a would work too, but with socks5 you
- get more precise error messages.</p>
-
- <p>Since <span class="APPLICATION">Privoxy</span> 3.0.5, its <a href=
- "../user-manual/config.html" target="_top">main configuration file</a>
- is already prepared for <span class="APPLICATION">Tor</span>, if you
- are using a default <span class="APPLICATION">Tor</span> configuration
- and run it on the same system as <span class=
- "APPLICATION">Privoxy</span>, you just have to edit the <a href=
- "../user-manual/config.html#FORWARDING" target="_top">forwarding
- section</a> and uncomment the line:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-# forward-socks5 / 127.0.0.1:9050 .
-
-</pre>
- </td>
- </tr>
- </table>
-
- <p>This is enough to reach the Internet, but additionally you might
- want to uncomment the following forward rules, to make sure your local
- network is still reachable through Privoxy:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-# forward 192.168.*.*/ .
-# forward 10.*.*.*/ .
-# forward 127.*.*.*/ .
-
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Unencrypted connections to systems in these address ranges will be
- as (un)secure as the local network is, but the alternative is that your
- browser can't reach the network at all. Then again, that may actually
- be desired and if you don't know for sure that your browser has to be
- able to reach the local network, there's no reason to allow it.</p>
-
- <p>If you want your browser to be able to reach servers in your local
- network by using their names, you will need additional exceptions that
- look like this:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-# forward localhost/ .
-
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Save the modified configuration file and open <a href=
- "http://config.privoxy.org/show-status" target=
- "_top">http://config.privoxy.org/show-status</a> in your browser,
- confirm that <span class="APPLICATION">Privoxy</span> has reloaded its
- configuration and that there are no other forward lines, unless you
- know that you need them. If everything looks good, refer to <a href=
- "https://wiki.torproject.org/noreply/TheOnionRouter/TorFAQ#IsMyConnectionPrivate"
- target="_top">Tor Faq 4.2</a> to learn how to verify that you are
- really using <span class="APPLICATION">Tor</span>.</p>
-
- <p>Afterward, please take the time to at least skim through the rest of
- <span class="APPLICATION">Tor's</span> documentation. Make sure you
- understand what <span class="APPLICATION">Tor</span> does, why it is no
- replacement for application level security, and why you probably don't
- want to use it for unencrypted logins.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="AEN874" id="AEN874">4.11. Might some things
- break because header information or content is being altered?</a></h3>
-
- <p>Definitely. It is common for sites to use browser type, browser
- version, HTTP header content, and various other techniques in order to
- dynamically decide what to display and how to display it. What you see,
- and what I see, might be very different. There are many, many ways that
- this can be handled, so having hard and fast rules, is tricky.</p>
-
- <p>The <span class="QUOTE">"User-Agent"</span> is sometimes used in
- this way to identify the browser, and adjust content accordingly.</p>
-
- <p>Also, different browsers use different encodings of non-English
- characters, certain web servers convert pages on-the-fly according to
- the User Agent header. Giving a <span class="QUOTE">"User Agent"</span>
- with the wrong operating system or browser manufacturer causes some
- sites in these languages to be garbled; Surfers to Eastern European
- sites should change it to something closer. And then some page access
- counters work by looking at the <span class="QUOTE">"Referer"</span>
- header; they may fail or break if unavailable. The weather maps of
- Intellicast have been blocked by their server when no <span class=
- "QUOTE">"Referer"</span> or cookie is provided, is another example.
- (But you can forge both headers without giving information away). There
- are many other ways things can go wrong when trying to fool a web
- server. The results of which could inadvertently cause pages to load
- incorrectly, partially, or even not at all. And there may be no obvious
- clues as to just what went wrong, or why. Nowhere will there be a
- message that says <span class="QUOTE">"<span class="emphasis"><i class=
- "EMPHASIS">Turn off <tt class="LITERAL">fast-redirects</tt> or
- else!</i></span> "</span></p>
-
- <p>Similar thoughts apply to modifying JavaScript, and, to a lesser
- degree, HTML elements.</p>
-
- <p>If you have problems with a site, you will have to adjust your
- configuration accordingly. Cookies are probably the most likely
- adjustment that may be required, but by no means the only one.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="AEN888" id="AEN888">4.12. Can Privoxy act as
- a <span class="QUOTE">"caching"</span> proxy to speed up web
- browsing?</a></h3>
-
- <p>No, it does not have this ability at all. You want something like
- <a href="http://www.squid-cache.org/" target="_top">Squid</a> or
- <a href="http://www.pps.jussieu.fr/~jch/software/polipo/" target=
- "_top">Polipo</a> for this. And, yes, before you ask, <span class=
- "APPLICATION">Privoxy</span> can co-exist with other kinds of proxies
- like <span class="APPLICATION">Squid</span>. See the <a href=
- "../user-manual/config.html#FORWARDING" target="_top">forwarding
- chapter</a> in the <a href="../user-manual/index.html" target=
- "_top">user manual</a> for details.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="AEN898" id="AEN898">4.13. What about as a
- firewall? Can Privoxy protect me?</a></h3>
-
- <p>Not in the way you mean, or in the way some firewall vendors claim
- they can. <span class="APPLICATION">Privoxy</span> can help protect
- your privacy, but can't protect your system from intrusion attempts. It
- is, of course, perfectly possible to use <span class=
- "emphasis"><i class="EMPHASIS">both</i></span>.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="AEN903" id="AEN903">4.14. I have large empty
- spaces / a checkerboard pattern now where ads used to be. Why?</a></h3>
-
- <p>It is technically possible to eliminate banners and ads in a way
- that frees their allocated page space. This could easily be done by
- blocking with <span class="APPLICATION">Privoxy's</span> filters, and
- eliminating the <span class="emphasis"><i class=
- "EMPHASIS">entire</i></span> image references from the HTML page
- source.</p>
-
- <p>But, this would consume considerably more CPU resources (IOW, slow
- things down), would likely destroy the layout of some web pages which
- rely on the banners utilizing a certain amount of page space, and might
- fail in other cases, where the screen space is reserved (e.g. by HTML
- tables for instance). Also, making ads and banners disappear without
- any trace complicates troubleshooting, and would sooner or later be
- problematic.</p>
-
- <p>The better alternative is to instead let them stay, and block the
- resulting requests for the banners themselves as is now the case. This
- leaves either empty space, or the familiar checkerboard pattern.</p>
-
- <p>So the developers won't support this in the default configuration,
- but you can of course define appropriate filters yourself to achieve
- this.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="AEN911" id="AEN911">4.15. How can Privoxy
- filter Secure (HTTPS) URLs?</a></h3>
-
- <p>Since secure HTTP connections are encrypted SSL sessions between
- your browser and the secure site, and are meant to be reliably
- <span class="emphasis"><i class="EMPHASIS">secure</i></span>, there is
- little that <span class="APPLICATION">Privoxy</span> can do but hand
- the raw gibberish data though from one end to the other
- unprocessed.</p>
-
- <p>The only exception to this is blocking by host patterns, as the
- client needs to tell <span class="APPLICATION">Privoxy</span> the name
- of the remote server, so that <span class="APPLICATION">Privoxy</span>
- can establish the connection. If that name matches a host-only pattern,
- the connection will be blocked.</p>
-
- <p>As far as ad blocking is concerned, this is less of a restriction
- than it may seem, since ad sources are often identifiable by the host
- name, and often the banners to be placed in an encrypted page come
- unencrypted nonetheless for efficiency reasons, which exposes them to
- the full power of <span class="APPLICATION">Privoxy</span>'s ad
- blocking.</p>
-
- <p><span class="QUOTE">"Content cookies"</span> (those that are
- embedded in the actual HTML or JS page content, see <tt class=
- "LITERAL"><a href=
- "../user-manual/actions-file.html#FILTER-CONTENT-COOKIES" target=
- "_top">filter{content-cookies}</a></tt>), in an SSL transaction will be
- impossible to block under these conditions. Fortunately, this does not
- seem to be a very common scenario since most cookies come by
- traditional means.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="AEN925" id="AEN925">4.16. Privoxy runs as a
- <span class="QUOTE">"server"</span>. How secure is it? Do I need to
- take any special precautions?</a></h3>
-
- <p>On Unix-like systems, <span class="APPLICATION">Privoxy</span> can
- run as a non-privileged user, which is how we recommend it be run.
- Also, by default <span class="APPLICATION">Privoxy</span> listens to
- requests from <span class="QUOTE">"localhost"</span> only.</p>
-
- <p>The server aspect of <span class="APPLICATION">Privoxy</span> is not
- itself directly exposed to the Internet in this configuration. If you
- want to have <span class="APPLICATION">Privoxy</span> serve as a LAN
- proxy, this will have to be opened up to allow for LAN requests. In
- this case, we'd recommend you specify only the LAN gateway address,
- e.g. 192.168.1.1, in the main <span class="APPLICATION">Privoxy</span>
- configuration file and check all <a href=
- "../user-manual/config.html#ACCESS-CONTROL" target="_top">access
- control and security options</a>. All LAN hosts can then use this as
- their proxy address in the browser proxy configuration, but
- <span class="APPLICATION">Privoxy</span> will not listen on any
- external interfaces. ACLs can be defined in addition, and using a
- firewall is always good too. Better safe than sorry.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="TURNOFF" id="TURNOFF">4.17. Can I
- temporarily disable Privoxy?</a></h3>
-
- <p><span class="APPLICATION">Privoxy</span> doesn't have a transparent
- proxy mode, but you can toggle off blocking and content filtering.</p>
-
- <p>The easiest way to do that is to point your browser to the remote
- toggle URL: <a href="http://config.privoxy.org/toggle" target=
- "_top">http://config.privoxy.org/toggle</a>.</p>
-
- <p>See the <a href="../user-manual/appendix.html#BOOKMARKLETS" target=
- "_top">Bookmarklets section</a> of the <i class="CITETITLE">User
- Manual</i> for an easy way to access this feature. Note that this is a
- feature that may need to be enabled in the main <tt class=
- "FILENAME">config</tt> file.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="REALLYOFF" id="REALLYOFF">4.18. When
- <span class="QUOTE">"disabled"</span> is Privoxy totally out of the
- picture?</a></h3>
-
- <p>No, this just means all optional filtering and actions are disabled.
- <span class="APPLICATION">Privoxy</span> is still acting as a proxy,
- but just doing less of the things that <span class=
- "APPLICATION">Privoxy</span> would normally be expected to do. It is
- still a <span class="QUOTE">"middle-man"</span> in the interaction
- between your browser and web sites. See below to bypass the proxy.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="TURNOFF2" id="TURNOFF2">4.19. How can I tell
- Privoxy to totally ignore certain sites?</a></h3>
-
- <p>Bypassing a proxy, or proxying based on arbitrary criteria, is
- purely a browser configuration issue, not a <span class=
- "APPLICATION">Privoxy</span> issue. Modern browsers typically do have
- settings for not proxying certain sites. Check your browser's help
- files.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="CRUNCH" id="CRUNCH">4.20. My logs show
- Privoxy <span class="QUOTE">"crunches"</span> ads, but also its own
- internal CGI pages. What is a <span class=
- "QUOTE">"crunch"</span>?</a></h3>
-
- <p>A <span class="QUOTE">"crunch"</span> simply means <span class=
- "APPLICATION">Privoxy</span> intercepted <span class=
- "emphasis"><i class="EMPHASIS">something</i></span>, nothing more.
- Often this is indeed ads or banners, but <span class=
- "APPLICATION">Privoxy</span> uses the same mechanism for trapping
- requests for its own internal pages. For instance, a request for
- <span class="APPLICATION">Privoxy's</span> configuration page at:
- <a href="http://config.privoxy.org" target=
- "_top">http://config.privoxy.org</a>, is intercepted (i.e. it does not
- go out to the 'net), and the familiar CGI configuration is returned to
- the browser, and the log consequently will show a <span class=
- "QUOTE">"crunch"</span>.</p>
-
- <p>Since version 3.0.7, Privoxy will also log the crunch reason. If you
- are using an older version you might want to upgrade.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="DOWNLOADS" id="DOWNLOADS">4.21. Can Privoxy
- effect files that I download from a webserver? FTP server?</a></h3>
-
- <p>From the webserver's perspective, there is no difference between
- viewing a document (i.e. a page), and downloading a file. The same is
- true of <span class="APPLICATION">Privoxy</span>. If there is a match
- for a <tt class="LITERAL"><a href=
- "../user-manual/actions-file.html#BLOCK" target="_top">block</a></tt>
- pattern, it will still be blocked, and of course this is obvious.</p>
-
- <p>Filtering is potentially more of a concern since the results are not
- always so obvious, and the effects of filtering are there whether the
- file is simply viewed, or downloaded. And potentially whether the
- content is some obnoxious advertisement, or Mr. Jimmy's latest/greatest
- source code jewel. Of course, one of these presumably is <span class=
- "QUOTE">"bad"</span> content that we don't want, and the other is
- <span class="QUOTE">"good"</span> content that we do want. <span class=
- "APPLICATION">Privoxy</span> is blind to the differences, and can only
- distinguish <span class="QUOTE">"good from bad"</span> by the
- configuration parameters <span class="emphasis"><i class=
- "EMPHASIS">we</i></span> give it.</p>
-
- <p><span class="APPLICATION">Privoxy</span> knows the differences in
- files according to the <span class="QUOTE">"Content Type"</span> as
- reported by the webserver. If this is reported accurately (e.g.
- <span class="QUOTE">"application/zip"</span> for a zip archive), then
- <span class="APPLICATION">Privoxy</span> knows to ignore these where
- appropriate. <span class="APPLICATION">Privoxy</span> potentially can
- filter HTML as well as plain text documents, subject to configuration
- parameters of course. Also, documents that are of an unknown type
- (generally assumed to be <span class="QUOTE">"text/plain"</span>) can
- be filtered, as will those that might be incorrectly reported by the
- webserver. If such a file is a downloaded file that is intended to be
- saved to disk, then any content that might have been altered by
- filtering, will be saved too, for these (probably rare) cases.</p>
-
- <p>Note that versions later than 3.0.2 do NOT filter document types
- reported as <span class="QUOTE">"text/plain"</span>. Prior to this,
- <span class="APPLICATION">Privoxy</span> did filter this document
- type.</p>
-
- <p>In short, filtering is <span class="QUOTE">"ON"</span> if a) the
- content type as reported by the webserver is appropriate <span class=
- "emphasis"><i class="EMPHASIS">and</i></span> b) the configuration
- allows it (or at least does not disallow it). That's it. There is no
- magic cookie anywhere to say this is <span class="QUOTE">"good"</span>
- and this is <span class="QUOTE">"bad"</span>. It's the configuration
- that lets it all happen or not.</p>
-
- <p>If you download text files, you probably do not want these to be
- filtered, particularly if the content is source code, or other critical
- content. Source code sometimes might be mistaken for Javascript (i.e.
- the kind that might open a pop-up window). It is recommended to turn
- off filtering for download sites (particularly if the content may be
- plain text files and you are using version 3.0.2 or earlier) in your
- <tt class="FILENAME">user.action</tt> file. And also, for any site or
- page where making <span class="emphasis"><i class=
- "EMPHASIS">any</i></span> changes at all to the content is to be
- avoided.</p>
-
- <p><span class="APPLICATION">Privoxy</span> does not do FTP at all,
- only HTTP and HTTPS (SSL) protocols.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="DOWNLOADS2" id="DOWNLOADS2">4.22. I just
- downloaded a Perl script, and Privoxy altered it! Yikes, what is
- wrong!</a></h3>
-
- <p>Please read above.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="HOSTSFILE" id="HOSTSFILE">4.23. Should I
- continue to use a <span class="QUOTE">"HOSTS"</span> file for
- ad-blocking?</a></h3>
-
- <p>One time-tested technique to defeat common ads is to trick the local
- DNS system by giving a phony IP address for the ad generator in the
- local <tt class="FILENAME">HOSTS</tt> file, typically using <tt class=
- "LITERAL">127.0.0.1</tt>, aka <tt class="LITERAL">localhost</tt>. This
- effectively blocks the ad.</p>
-
- <p>There is no reason to use this technique in conjunction with
- <span class="APPLICATION">Privoxy</span>. <span class=
- "APPLICATION">Privoxy</span> does essentially the same thing, much more
- elegantly and with much more flexibility. A large <tt class=
- "FILENAME">HOSTS</tt> file, in fact, not only duplicates effort, but
- may get in the way and seriously slow down your system. It is
- recommended to remove such entries from your <tt class=
- "FILENAME">HOSTS</tt> file. If you think your hosts list is neglected
- by <span class="APPLICATION">Privoxy's</span> configuration, consider
- adding your list to your <tt class="FILENAME">user.action</tt>
- file:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- { +block }
- www.ad.example1.com
- ad.example2.com
- ads.galore.example.com
- etc.example.com
-</pre>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="SEEALSO" id="SEEALSO">4.24. Where can I find
- more information about Privoxy and related issues?</a></h3>
-
- <p>Other references and sites of interest to <span class=
- "APPLICATION">Privoxy</span> users:</p>
-
- <table border="0">
- <tbody>
- <tr>
- <td><a href="http://www.privoxy.org/" target=
- "_top">http://www.privoxy.org/</a>, the <span class=
- "APPLICATION">Privoxy</span> Home page.</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><a href="http://www.privoxy.org/faq/" target=
- "_top">http://www.privoxy.org/faq/</a>, the <span class=
- "APPLICATION">Privoxy</span> FAQ.</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><a href="http://www.privoxy.org/developer-manual/" target=
- "_top">http://www.privoxy.org/developer-manual/</a>, the
- <span class="APPLICATION">Privoxy</span> developer manual.</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><a href="https://sourceforge.net/projects/ijbswa/" target=
- "_top">https://sourceforge.net/projects/ijbswa/</a>, the Project
- Page for <span class="APPLICATION">Privoxy</span> on <a href=
- "http://sourceforge.net" target="_top">SourceForge</a>.</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><a href="http://config.privoxy.org/" target=
- "_top">http://config.privoxy.org/</a>, the web-based user
- interface. <span class="APPLICATION">Privoxy</span> must be
- running for this to work. Shortcut: <a href="http://p.p/" target=
- "_top">http://p.p/</a></td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><a href=
- "https://sourceforge.net/tracker/?group_id=11118&atid=460288"
- target=
- "_top">https://sourceforge.net/tracker/?group_id=11118&atid=460288</a>,
- to submit <span class="QUOTE">"misses"</span> and other
- configuration related suggestions to the developers.</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><a href="http://www.squid-cache.org/" target=
- "_top">http://www.squid-cache.org/</a>, a popular caching proxy,
- which is often used together with <span class=
- "APPLICATION">Privoxy</span>.</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><a href="http://www.pps.jussieu.fr/~jch/software/polipo/"
- target=
- "_top">http://www.pps.jussieu.fr/~jch/software/polipo/</a>,
- <span class="APPLICATION">Polipo</span> is a caching proxy with
- advanced features like pipelining, multiplexing and caching of
- partial instances. In many setups it can be used as <span class=
- "APPLICATION">Squid</span> replacement.</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><a href="https://www.torproject.org/" target=
- "_top">https://www.torproject.org/</a>, <span class=
- "APPLICATION">Tor</span> can help anonymize web browsing, web
- publishing, instant messaging, IRC, SSH, and other
- applications.</td>
- </tr>
- </tbody>
- </table>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="MICROSUCK" id="MICROSUCK">4.25. I've noticed
- that Privoxy changes <span class="QUOTE">"Microsoft"</span> to
- <span class="QUOTE">"MicroSuck"</span>! Why are you manipulating my
- browsing?</a></h3>
-
- <p>We're not. The text substitutions that you are seeing are disabled
- in the default configuration as shipped. You have either manually
- activated the <span class="QUOTE">"<tt class="LITERAL">fun</tt>"</span>
- filter which is clearly labeled <span class="QUOTE">"Text replacements
- for subversive browsing fun!"</span> or you are using an older Privoxy
- version and have implicitly activated it by choosing the <span class=
- "QUOTE">"Advanced"</span> profile in the web-based editor. Please
- upgrade.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="VALID" id="VALID">4.26. Does Privoxy produce
- <span class="QUOTE">"valid"</span> HTML (or XHTML)?</a></h3>
-
- <p>Privoxy generates HTML in both its own <span class=
- "QUOTE">"templates"</span>, and possibly whenever there are text
- substitutions via a <span class="APPLICATION">Privoxy</span> filter.
- While this should always conform to the HTML 4.01 specifications, it
- has not been validated against this or any other standard.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="SURPRISE-PRIVOXY" id=
- "SURPRISE-PRIVOXY">4.27. How did you manage to get Privoxy on my
- computer without my consent?</a></h3>
-
- <p>We didn't. We make Privoxy available for download, but we don't go
- around installing it on other people's systems behind their back. If
- you discover Privoxy running on your system and are sure you didn't
- install it yourself, somebody else did. You may not even be running the
- real Privoxy, but maybe something else that only pretends to be
- Privoxy, or maybe something that is based on the real Privoxy, but has
- been modified.</p>
-
- <p>Lately there have been reports of problems with some kind of Privoxy
- versions that come preinstalled on some Netbooks. Some of the problems
- described are inconsistent with the behaviour of official Privoxy
- versions, which suggests that the preinstalled software may contain
- vendor modifications that we don't know about and thus can't debug.</p>
-
- <p>Privoxy's <a href="copyright.html">license</a> allows vendor
- modifications, but the vendor has to comply with the license, which
- involves informing the user about the changes and to make the changes
- available under the same license as Privoxy itself.</p>
-
- <p>If you are having trouble with a modified Privoxy version, please
- try to talk to whoever made the modifications before reporting the
- problem to us. Please also try to convince whoever made the
- modifications to talk to us. If you think somebody gave you a modified
- Privoxy version without complying to the license, please let us
- know.</p>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href=
- "configuration.html" accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href="trouble.html"
- accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">Configuration</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">Troubleshooting</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Troubleshooting</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy Frequently Asked Questions" href=
- "index.html">
- <link rel="PREVIOUS" title="Miscellaneous" href="misc.html">
- <link rel="NEXT" title=
- "Contacting the developers, Bug Reporting and Feature Requests" href=
- "contact.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy Frequently Asked
- Questions</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href="misc.html"
- accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href="contact.html"
- accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="TROUBLE" id="TROUBLE">5.
- Troubleshooting</a></h1>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="AEN1091" id="AEN1091">5.1. I cannot connect
- to any websites. Or, I am getting <span class="QUOTE">"connection
- refused"</span> message with every web page. Why?</a></h3>
-
- <p>There are several possibilities:</p>
-
- <ul>
- <li>
- <p><span class="APPLICATION">Privoxy</span> is not running.
- Solution: verify that <span class="APPLICATION">Privoxy</span> is
- installed correctly, has not crashed, and is indeed running. Turn
- on <span class="APPLICATION">Privoxy's</span> logging, and look at
- the logs to see what they say.</p>
- </li>
-
- <li>
- <p>Or your browser is configured for a different port than what
- <span class="APPLICATION">Privoxy</span> is using. Solution: verify
- that <span class="APPLICATION">Privoxy</span> and your browser are
- set to the same port (<tt class="LITERAL">listen-address</tt>).</p>
- </li>
-
- <li>
- <p>Or if using a forwarding rule, you have a configuration problem
- or a problem with a host in the forwarding chain. Solution:
- temporarily alter your configuration and take the forwarders out of
- the equation.</p>
- </li>
-
- <li>
- <p>Or you have a firewall that is interfering and blocking you.
- Solution: try disabling or removing the firewall as a simple
- test.</p>
- </li>
- </ul>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="ERROR503" id="ERROR503">5.2. Why am I
- getting a 503 Error (WSAECONNREFUSED) on every page?</a></h3>
-
- <p>More than likely this is a problem with your TCP/IP networking.
- ZoneAlarm has been reported to cause this symptom -- even if not
- running! The solution is to either fight the ZA configuration, or
- uninstall ZoneAlarm, and then find something better behaved in its
- place. Other personal firewall type products may cause similar type
- problems if not configured correctly.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="AEN1114" id="AEN1114">5.3. I just added a
- new rule, but the steenkin ad is still getting through. How?</a></h3>
-
- <p>If the ad had been displayed before you added its URL, it will
- probably be held in the browser's cache for some time, so it will be
- displayed without the need for any request to the server, and
- <span class="APPLICATION">Privoxy</span> will not be involved. Flush
- the browser's caches, and then try again.</p>
-
- <p>If this doesn't help, you probably have an error in the rule you
- applied. Try pasting the full URL of the offending ad into <a href=
- "http://config.privoxy.org/show-url-info" target=
- "_top">http://config.privoxy.org/show-url-info</a> and see if it really
- matches your new rule. Blocking ads is like blocking spam: a lot of
- tinkering is required to stay ahead of the game. And remember you need
- to block the URL of the ad in question, which may be entirely different
- from the site URL itself. Most ads are hosted on different servers than
- the main site itself. If you right-click on the ad, you should be able
- to get all the relevant information you need. Alternately, you can find
- the correct URL by looking at <span class=
- "APPLICATION">Privoxy's</span> logs (you may need to enable logging in
- the main config file if its disabled).</p>
-
- <p>Below is a slightly modified real-life log snippet that originates
- with one requested URL: <tt class="LITERAL">www.example.com</tt> (name
- of site was changed for this example, the number of requests is real).
- You can see in this the complexity of what goes into making up this one
- <span class="QUOTE">"page"</span>. There are eight different domains
- involved here, with thirty two separate URLs requested in all, making
- up all manner of images, Shockwave Flash, JavaScript, CSS stylesheets,
- scripts, and other related content. Some of this content is obviously
- <span class="QUOTE">"good"</span> or <span class="QUOTE">"bad"</span>,
- but not all. Many of the more questionable looking requests, are going
- to outside domains that seem to be identifying themselves with
- suspicious looking names, making our job a little easier. <span class=
- "APPLICATION">Privoxy</span> has <span class="QUOTE">"crunched"</span>
- (meaning caught and BLOCKED) quite a few items in this example, but
- perhaps missed a few as well.</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-Request: www.example.com/
-Request: www.example.com/favicon.ico
-Request: img.example.com/main.css
-Request: img.example.com/sr.js
-Request: example.betamarker.com/example.html
-Request: www.lik-sang.com/Banners/bestsellers/skyscraper.php?likref=BSellers
-Request: img.example.com/pb.png
-Request: www.google-analytics.com/urchin.js crunch! (Blocked)
-Request: www.advertising-department.com/ats/switch.ps.php?26856 crunch! (Blocked)
-Request: img.example.com/p.gif
-Request: www.popuptraffic.com/assign.php?l=example&mode=behind crunch! (Blocked)
-Request: www.popuptraffic.com/scripts/popup.php?hid=5c3cf&tmpl=PBa.tmpl crunch! (Blocked)
-Request: www.popuptraffic.com/assign.php?l=example crunch! (Blocked)
-Request: www.lik-sang.com/Banners/best_sellers/best_sellers.css
-Request: www.adtrak.net/adx.js crunch! (Blocked)
-Request: img.example.com/hbg.gif
-Request: img.example.com/example.jpg
-Request: img.example.com/mt.png
-Request: img.example.com/mm.png
-Request: img.example.com/mb.png
-Request: www.popuptraffic.com/scripts/popup.php?hid=a71b91fa5&tmpl=Ua.tmp crunch! (Blocked)
-Request: www.example.com/tracker.js
-Request: www.lik-sang.com/Banners/best_sellers/lsi_head.gif
-Request: www.adtrak.net/adjs.php?n=020548130&what=zone:61 crunch! (Blocked)
-Request: www.adtrak.net/adjs.php?n=463594413&what=zone:58&source=Ua crunch! (Blocked)
-Request: www.lik-sang.com/Banners/best_sellers/bottomani.swf
-Request: mmm.elitemediagroup.net/install.php?allowpop=no&popupmincook=0&allowsp2=1 crunch! (Blocked)
-Request: www.example.com/tracker.js?screen=1400x1050&win=962x693
-Request: www.adtrak.net/adlog.php?bannerid=1309&clientid=439&zoneid=61 crunch! (Blocked)
-Request: 66.70.21.80/scripts/click.php?hid=5c3cf599a9efd0320d26&si
-Request: 66.70.21.80/img/pixel.gif
-Request: www.adtrak.net/adlog.php?bannerid=1309&clientid=439&zoneid=58&source=Ua&block=86400 crunch! (Blocked)
-Request: 66.70.21.80/scripts/click.php?hid=a71b9f6504b0c5681fa5&si=Ua
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Despite 12 out of 32 requests being blocked, the page looked, and
- seemed to behave perfectly <span class="QUOTE">"normal"</span> (minus
- some ads, of course).</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="BADSITE" id="BADSITE">5.4. One of my
- favorite sites does not work with Privoxy. What can I do?</a></h3>
-
- <p>First verify that it is indeed a <span class=
- "APPLICATION">Privoxy</span> problem, by toggling off <span class=
- "APPLICATION">Privoxy</span> through <a href=
- "http://config.privoxy.org/toggle" target=
- "_top">http://config.privoxy.org/toggle</a> (the toggle feature may
- need to be enabled in the main <tt class="FILENAME">config</tt>), and
- then shift-reloading the problem page (i.e. holding down the shift key
- while clicking reload. Alternatively, flush your browser's disk and
- memory caches).</p>
-
- <p>If the problem went away, we know we have a configuration related
- problem. Now go to <a href="http://config.privoxy.org/show-url-info"
- target="_top">http://config.privoxy.org/show-url-info</a> and paste the
- full URL of the page in question into the prompt. See which actions are
- being applied to the URL, and which matches in which actions files are
- responsible for that. It might be helpful also to look at your logs for
- this site too, to see what else might be happening (note: logging may
- need to be enabled in the main config file). Many sites are complex and
- require a number of related pages to help present their content. Look
- at what else might be used by the page in question, and what of that
- might be <span class="emphasis"><i class=
- "EMPHASIS">required</i></span>. Now, armed with this information, go to
- <a href="http://config.privoxy.org/show-status" target=
- "_top">http://config.privoxy.org/show-status</a> and select the
- appropriate actions files for editing.</p>
-
- <p>You can now either look for a section which disables the actions
- that you suspect to cause the problem and add a pattern for your site
- there, or make up a completely new section for your site. In any case,
- the recommended way is to disable only the prime suspect, reload the
- problem page, and only if the problem persists, disable more and more
- actions until you have identified the culprit. You may or may not want
- to turn the other actions on again. Remember to flush your browser's
- caches in between any such changes!</p>
-
- <p>Alternately, if you are comfortable with a text editor, you can
- accomplish the same thing by editing the appropriate actions file.
- Probably the easiest way to deal with such problems when editing by
- hand is to add your site to a <tt class="LITERAL">{ fragile }</tt>
- section in <tt class="FILENAME">user.action</tt>, which is an alias
- that turns off most <span class="QUOTE">"dangerous"</span> actions, but
- is also likely to turn off more actions then needed, and thus lower
- your privacy and protection more than necessary,</p>
-
- <p>Troubleshooting actions is discussed in more detail in the <a href=
- "../user-manual/appendix.html#ACTIONSANAT" target="_top">User Manual
- appendix, Troubleshooting: the Anatomy of an Action</a>. There is also
- an <a href="../user-manual/actions-file.html#ACT-EXAMPLES" target=
- "_top">actions tutorial</a> with general configuration information and
- examples.</p>
-
- <p>As a last resort, you can always see if your browser has a setting
- that will bypass the proxy setting for selective sites. Modern browsers
- can do this.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="DUN" id="DUN">5.5. After installing Privoxy,
- I have to log in every time I start IE. What gives?</a></h3>
-
- <p>This is a quirk that effects the installation of <span class=
- "APPLICATION">Privoxy</span>, in conjunction with Internet Explorer and
- Internet Connection Sharing on Windows 2000 and Windows XP. The
- symptoms may appear to be corrupted or invalid DUN settings, or
- passwords.</p>
-
- <p>When setting up an NT based Windows system with <span class=
- "APPLICATION">Privoxy</span> you may find that things do not seem to be
- doing what you expect. When you set your system up you will probably
- have set up Internet Connection Sharing (ICS) with Dial up Networking
- (DUN) when logged in with administrator privileges. You will probably
- have made this DUN connection available to other accounts that you may
- have set-up on your system. E.g. Mum or Dad sets up the system and
- makes accounts suitably configured for the kids.</p>
-
- <p>When setting up <span class="APPLICATION">Privoxy</span> in this
- environment you will have to alter the proxy set-up of Internet
- Explorer (IE) for the specific DUN connection on which you wish to use
- <span class="APPLICATION">Privoxy</span>. When you do this the ICS DUN
- set-up becomes user specific. In this instance you will see no
- difference if you change the DUN connection under the account used to
- set-up the connection. However when you do this from another user you
- will notice that the DUN connection changes to make available to "Me
- only". You will also find that you have to store the password under
- each different user!</p>
-
- <p>The reason for this is that each user's set-up for IE is user
- specific. Each set-up DUN connection and each LAN connection in IE
- store the settings for each user individually. As such this enforces
- individual configurations rather than common ones. Hence the first time
- you use a DUN connection after re-booting your system it may not
- perform as you expect, and prompt you for the password. Just set and
- save the password again and all should be OK.</p>
-
- <p>[Thanks to Ray Griffith for this submission.]</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="FTP" id="FTP">5.6. I cannot connect to any
- FTP sites. Privoxy is blocking me.</a></h3>
-
- <p><span class="APPLICATION">Privoxy</span> cannot act as a proxy for
- FTP traffic, so do not configure your browser to use <span class=
- "APPLICATION">Privoxy</span> as an FTP proxy. The same is true for
- <span class="emphasis"><i class="EMPHASIS">any protocol other than HTTP
- or HTTPS (SSL)</i></span>.</p>
-
- <p>Most browsers understand FTP as well as HTTP. If you connect to a
- site, with a URL like <tt class="LITERAL">ftp://ftp.example.com</tt>,
- your browser is making an FTP connection, and not a HTTP connection. So
- while your browser may speak FTP, <span class=
- "APPLICATION">Privoxy</span> does not, and cannot proxy such
- traffic.</p>
-
- <p>To complicate matters, some systems may have a generic <span class=
- "QUOTE">"proxy"</span> setting, which will enable various protocols,
- including <span class="emphasis"><i class="EMPHASIS">both</i></span>
- HTTP and FTP proxying! So it is possible to accidentally enable FTP
- proxying in these cases. And of course, if this happens, <span class=
- "APPLICATION">Privoxy</span> will indeed cause problems since it does
- not know FTP. Newer version will give a sane error message if a FTP
- connection is attempted. Just disable the FTP setting and all will be
- well again.</p>
-
- <p>Will <span class="APPLICATION">Privoxy</span> ever proxy FTP
- traffic? Unlikely. There just is not much reason, and the work to make
- this happen is more than it may seem.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="MACOSXIE" id="MACOSXIE">5.7. In Mac OS X, I
- can't configure Microsoft Internet Explorer to use Privoxy as the HTTP
- proxy.</a></h3>
-
- <p>Microsoft Internet Explorer (in versions like 5.1) respects
- system-wide network settings. In order to change the HTTP proxy, open
- System Preferences, and click on the Network icon. In the settings pane
- that comes up, click on the Proxies tab. Ensure the "Web Proxy (HTTP)"
- checkbox is checked and enter <tt class="LITERAL">127.0.0.1</tt> in the
- entry field. Enter <tt class="LITERAL">8118</tt> in the Port field. The
- next time you start IE, it should reflect these values.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="MACOSXUNINSTALL" id="MACOSXUNINSTALL">5.8.
- In Mac OS X, I dragged the Privoxy folder to the trash in order to
- uninstall it. Now the finder tells me I don't have sufficient
- privileges to empty the trash.</a></h3>
-
- <p>Note: This ONLY applies to privoxy 3.0.6 and earlier.</p>
-
- <p>Just dragging the <span class="APPLICATION">Privoxy</span> folder to
- the trash is not enough to delete it. <span class=
- "APPLICATION">Privoxy</span> supplies an <span class=
- "APPLICATION">uninstall.command</span> file that takes care of these
- details. Open the trash, drag the <span class=
- "APPLICATION">uninstall.command</span> file out of the trash and
- double-click on it. You will be prompted for confirmation and the
- administration password.</p>
-
- <p>The trash may still appear full after this command; emptying the
- trash from the desktop should make it appear empty again.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="MACOSXIMAGES" id="MACOSXIMAGES">5.9. In Mac
- OS X Panther (10.3), images often fail to load and/or I experience
- random delays in page loading. I'm using <tt class=
- "LITERAL">localhost</tt> as my browser's proxy setting.</a></h3>
-
- <p>We believe this is due to an IPv6-related bug in Mac OS X, but don't
- fully understand the issue yet. In any case, changing the proxy setting
- to <tt class="LITERAL">127.0.0.1</tt> instead of <tt class=
- "LITERAL">localhost</tt> works around the problem.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="BLANKPAGE" id="BLANKPAGE">5.10. I get a
- completely blank page at one site. <span class="QUOTE">"View
- Source"</span> shows only: <span class=
- "MARKUP"><html><body></body></html></span>.
- Without Privoxy the page loads fine.</a></h3>
-
- <p>Chances are that the site suffers from a bug in <a href=
- "http://www.php.net/" target="_top"><span class=
- "APPLICATION">PHP</span></a>, which results in empty pages being sent
- if the client explicitly requests an uncompressed page, like
- <span class="APPLICATION">Privoxy</span> does. This bug has been fixed
- in PHP 4.2.3.</p>
-
- <p>To find out if this is in fact the source of the problem, try adding
- the site to a <tt class="LITERAL">-prevent-compression</tt> section in
- <tt class="FILENAME">user.action</tt>:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- # Make exceptions for ill-behaved sites:
- #
- {-prevent-compression}
- .example.com
-</pre>
- </td>
- </tr>
- </table>
-
- <p>If that works, you may also want to report the problem to the site's
- webmasters, telling them to use zlib.output_compression instead of
- ob_gzhandler in their PHP applications (workaround) or upgrade to PHP
- 4.2.3 or later (fix).</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="NOHOSTNAME" id="NOHOSTNAME">5.11. My logs
- show many <span class="QUOTE">"Unable to get my own hostname"</span>
- lines. Why?</a></h3>
-
- <p><span class="APPLICATION">Privoxy</span> tries to get the hostname
- of the system its running on from the IP address of the system
- interface it is bound to (from the <tt class="FILENAME">config</tt>
- file <span class="emphasis"><i class=
- "EMPHASIS">listen-address</i></span> setting). If the system cannot
- supply this information, <span class="APPLICATION">Privoxy</span> logs
- this condition.</p>
-
- <p>Typically, this would be considered a minor system configuration
- error. It is not a fatal error to <span class=
- "APPLICATION">Privoxy</span> however, but may result in a much slower
- response from <span class="APPLICATION">Privoxy</span> on some
- platforms due to DNS timeouts.</p>
-
- <p>This can be caused by a problem with the local <tt class=
- "FILENAME">hosts</tt> file. If this file has been changed from the
- original, try reverting it to see if that helps. Make sure whatever
- name(s) are used for the local system, that they resolve both ways.</p>
-
- <p>You should also be able to work around the problem with the <a href=
- "../user-manual/config.html#HOSTNAME" target="_top">hostname
- option</a>.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="INUSE" id="INUSE">5.12. When I try to launch
- Privoxy, I get an error message <span class="QUOTE">"port 8118 is
- already in use"</span> (or similar wording). Why?</a></h3>
-
- <p>Port 8118 is <span class="APPLICATION">Privoxy's</span> default TCP
- <span class="QUOTE">"listening"</span> port. Typically this message
- would mean that there is already one instance of <span class=
- "APPLICATION">Privoxy</span> running, and your system is actually
- trying to start a second <span class="APPLICATION">Privoxy</span> on
- the same port, which will not work. (You can have multiple instances
- but they must be assigned different ports.) How and why this might
- happen varies from platform to platform, but you need to check your
- installation and start-up procedures.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="DEMORONIZER" id="DEMORONIZER">5.13. Pages
- with UTF-8 fonts are garbled.</a></h3>
-
- <p>This is caused by the <span class="QUOTE">"demoronizer"</span>
- filter. You should either upgrade <span class=
- "APPLICATION">Privoxy</span>, or at least upgrade to the most recent
- <tt class="FILENAME">default.action</tt> file available from <a href=
- "http://sourceforge.net/project/showfiles.php?group_id=11118" target=
- "_top">SourceForge</a>. Or you can simply disable the demoronizer
- filter.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="DEMORONIZER2" id="DEMORONIZER2">5.14. Why
- are binary files (such as images) corrupted when Privoxy is
- used?</a></h3>
-
- <p>This may also be caused by the <span class=
- "QUOTE">"demoronizer"</span> filter, in conjunction with a web server
- that is misreporting the content type. Binary files are exempted from
- <span class="APPLICATION">Privoxy's</span> filtering (unless the web
- server by mistake says the file is something else). Either upgrade
- <span class="APPLICATION">Privoxy</span>, or go to the most recent
- <tt class="FILENAME">default.action</tt> file available from <a href=
- "http://sourceforge.net/project/showfiles.php?group_id=11118" target=
- "_top">SourceForge</a>.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="DEMORONIZER3" id="DEMORONIZER3">5.15. What
- is the <span class="QUOTE">"demoronizer"</span> and why is it
- there?</a></h3>
-
- <p>The original demoronizer was a Perl script that cleaned up HTML
- pages which were created with certain Microsoft products. MS has used
- proprietary extensions to standardized font encodings (ISO 8859-1),
- which has caused problems for pages that are viewed with non-Microsoft
- products (and are expecting to see a standard set of fonts). The
- demoronizer corrected these errors so the pages displayed correctly.
- <span class="APPLICATION">Privoxy</span> borrowed from this script,
- introducing a filter based on the original demoronizer, which in turn
- could correct these errors on the fly.</p>
-
- <p>But this is only needed in some situations, and will cause serious
- problems in some other situations.</p>
-
- <p>If you are using Microsoft products, you do not need it. If you need
- to view pages with UTF-8 characters (such as Cyrillic or Chinese), then
- it will cause corruption of the fonts, and thus <span class=
- "emphasis"><i class="EMPHASIS">should not be on</i></span>.</p>
-
- <p>On the other hand, if you use non-Microsoft products, and you
- occasionally notice weird characters on pages, you might want to try
- it.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="WINDOWOPEN" id="WINDOWOPEN">5.16. Why do I
- keep seeing <span class="QUOTE">"PrivoxyWindowOpen()"</span> in raw
- source code?</a></h3>
-
- <p><span class="APPLICATION">Privoxy</span> is attempting to disable
- malicious <a href="http://en.wikipedia.org/wiki/Javascript" target=
- "_top">Javascript</a> in this case, with the <tt class=
- "LITERAL">unsolicited-popups</tt> filter. <span class=
- "APPLICATION">Privoxy</span> cannot tell very well <span class=
- "QUOTE">"good"</span> code snippets from <span class=
- "QUOTE">"bad"</span> code snippets.</p>
-
- <p>If you see this in HTML source, and the page displays without
- problems, then this is good, and likely some pop-up window was
- disabled. If you see this where it is causing a problem, such as a
- downloaded program source code file, then you should set an exception
- for this site or page such that the integrity of the page stays in tact
- by disabling all filtering.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="DNSERRORS" id="DNSERRORS">5.17. I am getting
- too many DNS errors like <span class="QUOTE">"404 No Such
- Domain"</span>. Why can't Privoxy do this better?</a></h3>
-
- <p>There are potentially several factors here. First of all, the DNS
- resolution is done by the underlying operating system -- not
- <span class="APPLICATION">Privoxy</span> itself. <span class=
- "APPLICATION">Privoxy</span> merely initiates the process and hands it
- off, and then later reports whatever the outcome was and tries to give
- a coherent message if there seems to be a problem. In some cases, this
- might otherwise be mitigated by the browser itself which might try some
- work-arounds and alternate approaches (e.g adding <span class=
- "QUOTE">"www."</span> to the URL).</p>
-
- <p>In other cases, if <span class="APPLICATION">Privoxy</span> is being
- chained with another proxy, this could complicate the issue, and cause
- undue delays and timeouts. In the case of a <span class=
- "QUOTE">"socks4a"</span> proxy, the socks server handles all the DNS.
- <span class="APPLICATION">Privoxy</span> would just be the <span class=
- "QUOTE">"messenger"</span> which is reporting whatever problem occurred
- downstream, and not the root cause of the error.</p>
-
- <p>In any case, versions newer than 3.0.3 include various improvements
- to help <span class="APPLICATION">Privoxy</span> better handle these
- cases.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="ALLCPU" id="ALLCPU">5.18. At one site
- Privoxy just hangs, and starts taking all CPU. Why is this?</a></h3>
-
- <p>This is probably a manifestation of the <span class="QUOTE">"100%
- cpu"</span> problem that occurs on pages containing many (thousands
- upon thousands) of blank lines. The blank lines are in the raw HTML
- source of the page, and the browser just ignores them. But the pattern
- matching in <span class="APPLICATION">Privoxy's</span> page filtering
- mechanism is trying to match against absurdly long strings and this
- becomes very CPU-intensive, taking a long, long time to complete.</p>
-
- <p>Until a better solution comes along, disable filtering on these
- pages, particularly the <tt class="LITERAL">js-annoyances</tt> and
- <tt class="LITERAL">unsolicited-popups</tt> filters. If you run into
- this problem with a recent <span class="APPLICATION">Privoxy</span>
- version, please send a problem report.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="SLOWCRAWL" id="SLOWCRAWL">5.19. I just
- installed Privoxy, and all my browsing has slowed to a crawl. What
- gives?</a></h3>
-
- <p>This should not happen, and for the overwhelming number of users
- world-wide, it does not happen. I would suspect some inadvertent
- interaction of software components such as anti-virus software, spyware
- protectors, personal firewalls or similar components. Try disabling (or
- uninstalling) these one at a time and see if that helps. Either way, if
- you are using a recent <span class="APPLICATION">Privoxy</span>
- version, please report the problem.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="PREVENTCOMP" id="PREVENTCOMP">5.20. Why do
- my filters work on some sites but not on others?</a></h3>
-
- <p>It's probably due to compression. It is a common practice for web
- servers to send their content <span class="QUOTE">"compressed"</span>
- in order to speed things up, and then let the browser <span class=
- "QUOTE">"uncompress"</span> them. When compiled with zlib support
- <span class="APPLICATION">Privoxy</span> can decompress content before
- filtering, otherwise you may want to enable <a href=
- "../user-manual/actions-file.html#PREVENT-COMPRESSION" target=
- "_top">prevent-compression</a>.</p>
-
- <p>As of <span class="APPLICATION">Privoxy</span> 3.0.9, zlib support
- is enabled in the default builds.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="SSL-WARNINGS" id="SSL-WARNINGS">5.21. On
- some HTTPS sites my browser warns me about unauthenticated content, the
- URL bar doesn't get highlighted and the lock symbol appears to be
- broken. What's going on?</a></h3>
-
- <p>Probably the browser is requesting ads through HTTPS and
- <span class="APPLICATION">Privoxy</span> is blocking the requests.
- Privoxy's error messages are delivered unencrypted and while it's
- obvious for the browser that the HTTPS request is already blocked by
- the proxy, some warn about unauthenticated content anyway.</p>
-
- <p>To work around the problem you can redirect those requests to an
- invalid local address instead of blocking them. While the redirects
- aren't encrypted either, many browsers don't care. They simply follow
- the redirect, fail to reach a server and display an error message
- instead of the ad.</p>
-
- <p>To do that, enable logging to figure out which requests get blocked
- by <span class="APPLICATION">Privoxy</span> and add the hosts (no path
- patterns) to a section like this:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-{+redirect{http://127.0.0.1:0/} -block -limit-connect}
-.ivwbox.de:443/
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Additionally you have to configure your browser to contact
- <span class="QUOTE">"127.0.0.1:0"</span> directly (instead of through
- <span class="APPLICATION">Privoxy</span>).</p>
-
- <p>To add a proxy exception in <span class="APPLICATION">Mozilla
- Firefox</span> open the <span class="QUOTE">"Preferences"</span>, click
- the <span class="QUOTE">"Settings"</span> button located on the
- <span class="QUOTE">"Network"</span> tab in the <span class=
- "QUOTE">"Advanced"</span> section, and add <span class=
- "QUOTE">"127.0.0.1:0"</span> in the <span class="QUOTE">"No Proxy
- for:"</span> field.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="SE-LINUX" id="SE-LINUX">5.22. I get selinux
- error messages. How can I fix this?</a></h3>
-
- <p>Please report the problem to the creator of your selinux
- policies.</p>
-
- <p>The problem is that some selinux policy writers aren't familiar with
- the application they are trying to <span class="QUOTE">"secure"</span>
- and thus create policies that make no sense.</p>
-
- <p>In <span class="APPLICATION">Privoxy's</span> case the problem
- usually is that the policy only allows outgoing connections for certain
- destination ports (e.g. 80 and 443). While this may cover the standard
- ports, websites occasionally use other ports as well. This isn't a
- security problem and therefore <span class=
- "APPLICATION">Privoxy's</span> default configuration doesn't block
- these requests.</p>
-
- <p>If you really want to block these ports (and don't be able to load
- websites that don't use standard ports), you should configure Privoxy
- to block these ports as well, so it doesn't trigger the selinux
- warnings.</p>
- </div>
-
- <div class="SECT2">
- <h3 class="SECT2"><a name="GENTOO-RICERS" id="GENTOO-RICERS">5.23. I
- compiled <span class="APPLICATION">Privoxy</span> with Gentoo's portage
- and it appears to be very slow. Why?</a></h3>
-
- <p>Probably you unintentionally compiled <span class=
- "APPLICATION">Privoxy</span> without threading support in which case
- requests have to be serialized and only one can be served at the same
- time.</p>
-
- <p>Check your <span class="QUOTE">"USE"</span> flags and make sure they
- include <span class="QUOTE">"threads"</span>. If they don't, add the
- flag and rebuild <span class="APPLICATION">Privoxy</span>.</p>
-
- <p>If you compiled <span class="APPLICATION">Privoxy</span> with
- threading support (on POSIX-based systems), the <span class=
- "QUOTE">"Conditional #defines"</span> section on <a href=
- "http://config.privoxy.org/show-status" target=
- "_top">http://config.privoxy.org/show-status</a> will list <span class=
- "QUOTE">"FEATURE_PTHREAD"</span> as <span class=
- "QUOTE">"enabled"</span>.</p>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="misc.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href="contact.html"
- accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">Miscellaneous</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">Contacting the developers,
- Bug Reporting and Feature Requests</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-<head>
- <title>Man page of PRIVOXY</title>
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
-</head>
-
-<body>
- <h1>PRIVOXY</h1>Section: (1)<br>
- Updated: 02 March 2013<br>
- <a href="#index">Index</a>
- <hr>
- <a name="lbAB" id="lbAB"> </a>
-
- <h2>NAME</h2>privoxy - Privacy Enhancing Proxy <a name="lbAC" id=
- "lbAC"> </a>
-
- <h2>SYNOPSIS</h2>
-
- <p><b>privoxy</b> [<b>--chroot</b> ] [<b>--config-test</b> ] [<b>--help</b>
- ] [<b>--no-daemon</b> ] [<b>--pidfile</b> <i>pidfile</i> ]
- [<b>--pre-chroot-nslookup</b> <i>hostname</i> ] [<b>--user</b>
- <i>user[.group]</i> ] [<b>--version</b> ] [<i>configfile</i> ]</p>
-
- <p><a name="lbAD" id="lbAD"> </a></p>
-
- <h2>OPTIONS</h2>
-
- <p><b>Privoxy</b> may be invoked with the following command line
- options:</p>
-
- <dl compact>
- <dt><b>--chroot</b></dt>
-
- <dd>Before changing to the user ID given in the --user option, chroot to
- that user's home directory, i.e. make the kernel pretend to the
- <b>Privoxy</b> process that the directory tree starts there. If set up
- carefully, this can limit the impact of possible vulnerabilities in
- <b>Privoxy</b> to the files contained in that hierarchy.</dd>
-
- <dt><b>--config-test</b></dt>
-
- <dd>
- Exit after loading the configuration files before binding to the listen
- address. The exit code signals whether or not the configuration files
- have been successfully loaded.
-
- <p>If the exit code is 1, at least one of the configuration files is
- invalid, if it is 0, all the configuration files have been successfully
- loaded (but may still contain errors that can currently only be
- detected at run time).</p>
-
- <p>This option doesn't affect the log setting, combination with
- "--no-daemon" is recommended if a configured log file shouldn't be
- used.</p>
- </dd>
-
- <dt><b>--help</b></dt>
-
- <dd>Print brief usage info and exit.</dd>
-
- <dt><b>--no-daemon</b></dt>
-
- <dd>Don't become a daemon, i.e. don't fork and become process group
- leader, don't detach from controlling tty, and do all logging there.</dd>
-
- <dt><b>--pidfile</b> <i>pidfile</i></dt>
-
- <dd>On startup, write the process ID to <i>pidfile</i>. Delete the
- <i>pidfile</i> on exit. Failure to create or delete the <i>pidfile</i> is
- non-fatal. If no <b>--pidfile</b> option is given, no PID file will be
- used.</dd>
-
- <dt><b>--pre-chroot-nslookup</b> <i>hostname</i></dt>
-
- <dd>Initialize the resolver library using <i>hostname</i> before
- chroot'ing. On some systems this reduces the number of files that must be
- copied into the chroot tree.</dd>
-
- <dt><b>--user</b> <i>user[.group]</i></dt>
-
- <dd>After (optionally) writing the PID file, assume the user ID of
- <i>user</i> and the GID of <i>group</i>, or, if the optional <i>group</i>
- was not given, the default group of <i>user</i>. Exit if the privileges
- are not sufficient to do so.</dd>
-
- <dt><b>--version</b></dt>
-
- <dd>Print version info and exit.</dd>
- </dl>
-
- <p>If the <i>configfile</i> is not specified on the command line,
- <b>Privoxy</b> will look for a file named <i>config</i> in the current
- directory. If no <i>configfile</i> is found, <b>Privoxy</b> will fail to
- start. <a name="lbAE" id="lbAE"> </a></p>
-
- <h2>DESCRIPTION</h2>
-
- <p>Privoxy is a non-caching web proxy with advanced filtering capabilities
- for enhancing privacy, modifying web page data and HTTP headers,
- controlling access, and removing ads and other obnoxious Internet junk.
- Privoxy has a flexible configuration and can be customized to suit
- individual needs and tastes. It has application for both stand-alone
- systems and multi-user networks.</p>
-
- <p>Privoxy is Free Software and licensed under the GNU GPLv2.</p>
-
- <p>Privoxy is an associated project of Software in the Public Interest
- (SPI).</p>
-
- <p>Helping hands and donations are welcome:</p>
-
- <dl compact>
- <dt>•</dt>
-
- <dd><a href=
- "http://www.privoxy.org/faq/general.html#PARTICIPATE">http://www.privoxy.org/faq/general.html#PARTICIPATE</a></dd>
-
- <dt>•</dt>
-
- <dd><a href=
- "http://www.privoxy.org/faq/general.html#DONATE">http://www.privoxy.org/faq/general.html#DONATE</a></dd>
- </dl><a name="lbAF" id="lbAF"> </a>
-
- <h2>INSTALLATION AND USAGE</h2>
-
- <p>Browsers can either be individually configured to use <b>Privoxy</b> as
- a HTTP proxy (recommended), or <b>Privoxy</b> can be combined with a packet
- filter to build an intercepting proxy (see <i>config</i>). The default
- setting is for localhost, on port 8118 (configurable in the main config
- file). To set the HTTP proxy in Firefox, go through: <b>Tools</b>;
- <b>Options</b>; <b>General</b>; <b>Connection Settings</b>; <b>Manual Proxy
- Configuration</b>.</p>
-
- <p>For Internet Explorer, go through: <b>Tools</b>; <b>Internet
- Properties</b>; <b>Connections</b>; <b>LAN Settings</b>.</p>
-
- <p>The Secure (SSL) Proxy should also be set to the same values, otherwise
- https: URLs will not be proxied. Note: <b>Privoxy</b> can only proxy HTTP
- and HTTPS traffic. Do not try it with FTP or other protocols. HTTPS
- presents some limitations, and not all features will work with HTTPS
- connections.</p>
-
- <p>For other browsers, check the documentation. <a name="lbAG" id=
- "lbAG"> </a></p>
-
- <h2>CONFIGURATION</h2>
-
- <p><b>Privoxy</b> can be configured with the various configuration files.
- The default configuration files are: <i>config</i>, <i>default.filter</i>,
- <i>default.action</i> and <i>default.action</i>. <i>user.action</i> should
- be used for locally defined exceptions to the default rules in
- <i>match-all.action</i> and <i>default.action</i>, and <i>user.filter</i>
- for locally defined filters. These are well commented. On Unix and
- Unix-like systems, these are located in <i>/etc/privoxy/</i> by
- default.</p>
-
- <p><b>Privoxy</b> uses the concept of <b>actions</b> in order to manipulate
- the data stream between the browser and remote sites. There are various
- actions available with specific functions for such things as blocking web
- sites, managing cookies, etc. These actions can be invoked individually or
- combined, and used against individual URLs, or groups of URLs that can be
- defined using wildcards and regular expressions. The result is that the
- user has greatly enhanced control and freedom.</p>
-
- <p>The actions list (ad blocks, etc) can also be configured with your web
- browser at <a href=
- "http://config.privoxy.org/">http://config.privoxy.org/</a> (assuming the
- configuration allows it). <b>Privoxy's</b> configuration parameters can
- also be viewed at the same page. In addition, <b>Privoxy</b> can be toggled
- on/off. This is an internal page, and does not require Internet access.</p>
-
- <p>See the <i>User Manual</i> for a detailed explanation of installation,
- general usage, all configuration options, new features and notes on
- upgrading. <a name="lbAH" id="lbAH"> </a></p>
-
- <h2>FILES</h2>
- <pre>
- <i>/usr/sbin/privoxy</i>
- <i>/etc/privoxy/config</i>
- <i>/etc/privoxy/match-all.action</i>
- <i>/etc/privoxy/default.action</i>
- <i>/etc/privoxy/user.action</i>
- <i>/etc/privoxy/default.filter</i>
- <i>/etc/privoxy/user.filter</i>
- <i>/etc/privoxy/trust</i>
- <i>/etc/privoxy/templates/*</i>
- <i>/var/log/privoxy/logfile</i>
-</pre>
-
- <p>Various other files should be included, but may vary depending on
- platform and build configuration. Additional documentation should be
- included in the local documentation directory. <a name="lbAI" id=
- "lbAI"> </a></p>
-
- <h2>SIGNALS</h2>
-
- <p><b>Privoxy</b> terminates on the <b>SIGINT</b> and <b>SIGTERM</b>
- signals. Log rotation scripts may cause a re-opening of the logfile by
- sending a <b>SIGHUP</b> to <b>Privoxy</b>. Note that unlike other daemons,
- <b>Privoxy</b> does not need to be made aware of config file changes by
- <b>SIGHUP</b> -- it will detect them automatically. Signals other than the
- ones listed above aren't explicitly handled and result in the default
- action defined by the operating system. <a name="lbAJ" id=
- "lbAJ"> </a></p>
-
- <h2>NOTES</h2>
-
- <p>Please see the <i>User Manual</i> on how to contact the developers, for
- feature requests, reporting problems, and other questions. <a name="lbAK"
- id="lbAK"> </a></p>
-
- <h2>SEE ALSO</h2>
-
- <p>Other references and sites of interest to <b>Privoxy</b> users:</p>
-
- <p><a href="http://www.privoxy.org/">http://www.privoxy.org/,</a> the
- <b>Privoxy</b> Home page.</p>
-
- <p><a href="http://www.privoxy.org/faq/">http://www.privoxy.org/faq/,</a>
- the <b>Privoxy</b> FAQ.</p>
-
- <p><a href=
- "http://www.privoxy.org/developer-manual/">http://www.privoxy.org/developer-manual/,</a>
- the <b>Privoxy</b> developer manual.</p>
-
- <p><a href=
- "https://sourceforge.net/projects/ijbswa/">https://sourceforge.net/projects/ijbswa/,</a>
- the Project Page for <b>Privoxy</b> on SourceForge.</p>
-
- <p><a href="http://config.privoxy.org/">http://config.privoxy.org/,</a> the
- web-based user interface. <b>Privoxy</b> must be running for this to work.
- Shortcut: <a href="http://p.p/">http://p.p/</a></p>
-
- <p><a href=
- "https://sourceforge.net/tracker/?group_id=11118">https://sourceforge.net/tracker/?group_id=11118</a>&atid=460288,
- to submit ``misses'' and other configuration related suggestions to the
- developers. <a name="lbAL" id="lbAL"> </a></p>
-
- <h2>DEVELOPMENT TEAM</h2>
- <pre>
- Fabian Keil, lead developer
- David Schmidt
- Hal Burgiss
- Lee Rian
- Roland Rosenfeld
- Ian Silvester
-</pre><a name="lbAM" id="lbAM"> </a>
-
- <h2>COPYRIGHT AND LICENSE</h2><a name="lbAN" id="lbAN"> </a>
-
- <h3>COPYRIGHT</h3>
-
- <p>Copyright (C) 2001-2013 by Privoxy Developers <<a href=
- "mailto:ijbswa-developers@lists.sourceforge.net">ijbswa-developers@lists.sourceforge.net</a>></p>
-
- <p>Some source code is based on code Copyright (C) 1997 by Anonymous Coders
- and Junkbusters, Inc. and licensed under the <i>GNU General Public
- License</i>. <a name="lbAO" id="lbAO"> </a></p>
-
- <h3>LICENSE</h3>
-
- <p><b>Privoxy</b> is free software; you can redistribute it and/or modify
- it under the terms of the <i>GNU General Public License</i>, version 2, as
- published by the Free Software Foundation.</p>
-
- <p><b>Privoxy</b> is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- or FITNESS FOR A PARTICULAR PURPOSE. See the <i>license</i> for
- details.</p>
- <hr>
- <a name="index" id="index"> </a>
-
- <h2>Index</h2>
-
- <dl>
- <dt><a href="#lbAB">NAME</a></dt>
-
- <dt><a href="#lbAC">SYNOPSIS</a></dt>
-
- <dt><a href="#lbAD">OPTIONS</a></dt>
-
- <dt><a href="#lbAE">DESCRIPTION</a></dt>
-
- <dt><a href="#lbAF">INSTALLATION AND USAGE</a></dt>
-
- <dt><a href="#lbAG">CONFIGURATION</a></dt>
-
- <dt><a href="#lbAH">FILES</a></dt>
-
- <dt><a href="#lbAI">SIGNALS</a></dt>
-
- <dt><a href="#lbAJ">NOTES</a></dt>
-
- <dt><a href="#lbAK">SEE ALSO</a></dt>
-
- <dt><a href="#lbAL">DEVELOPMENT TEAM</a></dt>
-
- <dt><a href="#lbAM">COPYRIGHT AND LICENSE</a></dt>
-
- <dd>
- <dl>
- <dt><a href="#lbAN">COPYRIGHT</a></dt>
-
- <dt><a href="#lbAO">LICENSE</a></dt>
- </dl>
- </dd>
- </dl>
- <hr>
- This document was created by man2html, using the manual pages.<br>
- Time: 14:21:31 GMT, March 02, 2013
-</body>
-</html>
+++ /dev/null
-/*
- * CSS for Privoxy documentation
- *
- * $Id: p_doc.css,v 1.5 2006/09/09 19:13:42 hal9 Exp $
- */
-
-/*
- * Global fonts, colors, margins:
- */
-body,td,th { font-family: arial, helvetica, sans-serif; }
-body { margin: 4%; color: #000000; background-color: #eeeeee; }
-
-/*
- * Headings hierarchy in terms of size and color:
- */
-h1 { color: #4c000f; font-size: 160%; }
-h2 { color: #660014; font-size: 140%; }
-h3 { color: #820019; font-size: 120%; }
-h4 { color: #99001d; font-size: 110%; }
-
-/*
- * Make headings stand out:
- * Indent all content in chapters, by additional 2%,
- * and then pull the headings back left.
- */
-div.sect1 { margin-left: 2%; }
-h1,h2,h3,h4 {margin-left: -2%; }
-h1.title { margin-left: 0; }
-h2.subtitle { margin-left: 0; }
-
-/*
- * Underlined links disturb the examples;
- * Let them get darker instead of purple after visited.
- */
-a { text-decoration: none; }
-a:link { color: #0c29ff; }
-a:visited { color: #071899; }
-
-/*
- * Special highlighting:
- * Code examples in embedded in the text flow become half-bold,
- * Emphasis gets h4-red.
- * Warnings get the same bg as in privoxy.css
- */
-tt.literal { font-weight: 600; }
-i.emphasis { color: #99001d; }
-table.warning { border: 0; background-color: #ffdddd;}
-span.guibutton {
- white-space: nowrap;
- width: auto;
- padding: 2px;
- background-color: #dddddd;
- color: #000000;
- text-decoration: none;
- border-top: 1px solid #ffffff;
- border-left: 1px solid #ffffff;
- border-bottom: 1px solid #000000;
- border-right: 1px solid #000000;
-}
-
-/*
- * Misc:
- */
-ul { list-style-type: square; }
-/* Privoxy, of course */
-.application {font-weight: bold; font-size:105%; color: #99001d;}
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Privoxy - The Privacy Enhancing Proxy</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="STYLESHEET" type="text/css" href="p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
- <meta name="description" content=
- "Privoxy helps users to protect their privacy.">
-</head>
-
-<body class="ARTICLE" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="ARTICLE">
- <div class="TITLEPAGE">
- <h1 class="TITLE"><a name="AEN2" id="AEN2">Privoxy - The Privacy
- Enhancing Proxy</a></h1>
-
- <h2 class="SUBTITLE">Project Index Page v3.0.21</h2>
-
- <div>
- <div class="ABSTRACT">
- <a name="AEN5" id="AEN5"></a>
-
- <p>Privoxy is a non-caching web proxy with advanced filtering
- capabilities for enhancing privacy, modifying web page data and
- HTTP headers, controlling access, and removing ads and other
- obnoxious Internet junk. Privoxy has a flexible configuration and
- can be customized to suit individual needs and tastes. It has
- application for both stand-alone systems and multi-user
- networks.</p>
-
- <p>Privoxy is Free Software and licensed under the GNU GPLv2.</p>
-
- <p>Privoxy is an associated project of Software in the Public
- Interest (SPI).</p>
-
- <p>Helping hands and donations are welcome:</p>
-
- <ul>
- <li>
- <p><a href=
- "http://www.privoxy.org/faq/general.html#PARTICIPATE" target=
- "_top">http://www.privoxy.org/faq/general.html#PARTICIPATE</a></p>
- </li>
-
- <li>
- <p><a href="http://www.privoxy.org/faq/general.html#DONATE"
- target=
- "_top">http://www.privoxy.org/faq/general.html#DONATE</a></p>
- </li>
- </ul>
- </div>
- </div>
- <hr>
- </div>
-
- <div class="SECT1">
- <h3 class="SECT1"><a name="DOWNLOAD" id="DOWNLOAD">Download</a></h3>
-
- <ul>
- <li>
- <p><a href="https://sourceforge.net/projects/ijbswa/files/" target=
- "_top">Download recent releases</a></p>
- </li>
-
- <li>
- <p><a href="user-manual/quickstart.html" target="_top">Quickstart
- after installation</a></p>
- </li>
- </ul>
- </div>
-
- <div class="SECT1">
- <hr>
-
- <h3 class="SECT1"><a name="DOCS" id="DOCS">Documentation</a></h3>
-
- <ul>
- <li>
- <p><a href="user-manual/index.html" target="_top">User
- manual</a></p>
- </li>
-
- <li>
- <p><a href="faq/index.html" target="_top">Frequently Asked
- Questions</a></p>
- </li>
-
- <li>
- <p><a href="developer-manual/index.html" target="_top">Developer
- Manual</a></p>
- </li>
-
- <li>
- <p><a href="man-page/privoxy-man-page.html" target="_top">Classic
- Man Page</a></p>
- </li>
- </ul>
- </div>
-
- <div class="SECT1">
- <hr>
-
- <h3 class="SECT1"><a name="MOREINFO" id="MOREINFO">More
- information</a></h3>
-
- <ul>
- <li>
- <p><a href="user-manual/contact.html" target="_top">Support &
- Service</a></p>
- </li>
-
- <li>
- <p><a href="user-manual/copyright.html" target="_top">Copyright,
- License, History & Authors</a></p>
- </li>
-
- <li>
- <p><a href="user-manual/introduction.html#FEATURES" target=
- "_top">List of (new) Features</a></p>
- </li>
-
- <li>
- <p><a href="https://sourceforge.net/projects/ijbswa/" target=
- "_top">The project page</a></p>
- </li>
-
- <li>
- <p><a href="user-manual/seealso.html" target="_top">Related
- links</a></p>
- </li>
-
- <li>
- <p><a href="http://www.privoxy.org/team/index.html" target=
- "_top">Pictures of the Privoxy Team</a></p>
- </li>
- </ul>
- </div>
-
- <div class="SECT1">
- <hr>
-
- <h2 class="SECT1"><a name="AEN65" id="AEN65"></a></h2>
-
- <p><sub>Copyright © 2001-2013 by Privoxy Developers</sub></p>
- </div>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-<head>
- <meta name="generator" content=
- "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-
- <title>Privoxy - Team Photos</title>
- <link rel="stylesheet" type="text/css" href="../p_doc.css">
- <style type="text/css">
-h1.c1 {margin-left: 0%}
- </style>
-</head>
-
-<body>
- <h1 class="c1">Privoxy - Team Photos</h1>
- <hr>
-
- <p>In our day jobs, we're all models ;-)</p>
-
- <table align="center">
- <tr>
- <td><a href="01stefanw.jpg"><img src="01stefanw_t.jpg" width="80"
- height="80" border="0" title="Stefan Waldherr"></a></td>
-
- <td><a href="02jon.jpg"><img src="02jon_t.jpg" width="80" height="80"
- border="0" title="Jon Foster"></a></td>
-
- <td><a href="03andreas.jpg"><img src="03andreas_t.jpg" width="80"
- height="80" border="0" title="Andreas Oesterhelt"></a></td>
-
- <td><a href="04rodney.jpg"><img src="04rodney_t.jpg" width="80" height=
- "80" border="0" title="Rodney Stromlund"></a></td>
- </tr>
-
- <tr>
- <td><a href="05david.jpg"><img src="05david_t.jpg" width="80" height=
- "80" border="0" title="David Schmidt"></a></td>
-
- <td><a href="06member.jpg"><img src="06member_t.jpg" width="80" height=
- "80" border="0" title="N/A"></a></td>
-
- <td><a href="07member.jpg"><img src="07member_t.jpg" width="80" height=
- "80" border="0" title="N/A"></a></td>
-
- <td><a href="08member.jpg"><img src="08member_t.jpg" width="80" height=
- "80" border="0" title="N/A"></a></td>
- </tr>
- </table>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Actions Files</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy 3.0.21 User Manual" href="index.html">
- <link rel="PREVIOUS" title="The Main Configuration File" href=
- "config.html">
- <link rel="NEXT" title="Filter Files" href="filter-file.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
- <link rel="STYLESHEET" type="text/css" href="p_doc.css">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy 3.0.21 User Manual</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href="config.html"
- accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href=
- "filter-file.html" accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="ACTIONS-FILE" id="ACTIONS-FILE">8. Actions
- Files</a></h1>
-
- <p>The actions files are used to define what <span class=
- "emphasis"><i class="EMPHASIS">actions</i></span> <span class=
- "APPLICATION">Privoxy</span> takes for which URLs, and thus determines
- how ad images, cookies and various other aspects of HTTP content and
- transactions are handled, and on which sites (or even parts thereof).
- There are a number of such actions, with a wide range of functionality.
- Each action does something a little different. These actions give us a
- veritable arsenal of tools with which to exert our control, preferences
- and independence. Actions can be combined so that their effects are
- aggregated when applied against a given set of URLs.</p>
-
- <p>There are three action files included with <span class=
- "APPLICATION">Privoxy</span> with differing purposes:</p>
-
- <ul>
- <li>
- <p><tt class="FILENAME">match-all.action</tt> - is used to define
- which <span class="QUOTE">"actions"</span> relating to
- banner-blocking, images, pop-ups, content modification, cookie
- handling etc should be applied by default. It should be the first
- actions file loaded</p>
- </li>
-
- <li>
- <p><tt class="FILENAME">default.action</tt> - defines many exceptions
- (both positive and negative) from the default set of actions that's
- configured in <tt class="FILENAME">match-all.action</tt>. It is a set
- of rules that should work reasonably well as-is for most users. This
- file is only supposed to be edited by the developers. It should be
- the second actions file loaded.</p>
- </li>
-
- <li>
- <p><tt class="FILENAME">user.action</tt> - is intended to be for
- local site preferences and exceptions. As an example, if your ISP or
- your bank has specific requirements, and need special handling, this
- kind of thing should go here. This file will not be upgraded.</p>
- </li>
-
- <li>
- <p><span class="GUIBUTTON">Edit</span> <span class="GUIBUTTON">Set to
- Cautious</span> <span class="GUIBUTTON">Set to Medium</span>
- <span class="GUIBUTTON">Set to Advanced</span></p>
-
- <p>These have increasing levels of aggressiveness <span class=
- "emphasis"><i class="EMPHASIS">and have no influence on your browsing
- unless you select them explicitly in the editor</i></span>. A default
- installation should be pre-set to <tt class="LITERAL">Cautious</tt>.
- New users should try this for a while before adjusting the settings
- to more aggressive levels. The more aggressive the settings, then the
- more likelihood there is of problems such as sites not working as
- they should.</p>
-
- <p>The <span class="GUIBUTTON">Edit</span> button allows you to turn
- each action on/off individually for fine-tuning. The <span class=
- "GUIBUTTON">Cautious</span> button changes the actions list to
- low/safe settings which will activate ad blocking and a minimal set
- of <span class="APPLICATION">Privoxy</span>'s features, and
- subsequently there will be less of a chance for accidental problems.
- The <span class="GUIBUTTON">Medium</span> button sets the list to a
- medium level of other features and a low level set of privacy
- features. The <span class="GUIBUTTON">Advanced</span> button sets the
- list to a high level of ad blocking and medium level of privacy. See
- the chart below. The latter three buttons over-ride any changes via
- with the <span class="GUIBUTTON">Edit</span> button. More fine-tuning
- can be done in the lower sections of this internal page.</p>
-
- <p>While the actions file editor allows to enable these settings in
- all actions files, they are only supposed to be enabled in the first
- one to make sure you don't unintentionally overrule earlier
- rules.</p>
-
- <p>The default profiles, and their associated actions, as pre-defined
- in <tt class="FILENAME">default.action</tt> are:</p>
-
- <div class="TABLE">
- <a name="AEN2858" id="AEN2858"></a>
-
- <p><b>Table 1. Default Configurations</b></p>
-
- <table border="1" frame="border" rules="all" class="CALSTABLE">
- <col width="1*" title="C1">
- <col width="1*" title="C2">
- <col width="1*" title="C3">
- <col width="1*" title="C4">
-
- <thead>
- <tr>
- <th>Feature</th>
-
- <th>Cautious</th>
-
- <th>Medium</th>
-
- <th>Advanced</th>
- </tr>
- </thead>
-
- <tbody>
- <tr>
- <td>Ad-blocking Aggressiveness</td>
-
- <td>medium</td>
-
- <td>high</td>
-
- <td>high</td>
- </tr>
-
- <tr>
- <td>Ad-filtering by size</td>
-
- <td>no</td>
-
- <td>yes</td>
-
- <td>yes</td>
- </tr>
-
- <tr>
- <td>Ad-filtering by link</td>
-
- <td>no</td>
-
- <td>no</td>
-
- <td>yes</td>
- </tr>
-
- <tr>
- <td>Pop-up killing</td>
-
- <td>blocks only</td>
-
- <td>blocks only</td>
-
- <td>blocks only</td>
- </tr>
-
- <tr>
- <td>Privacy Features</td>
-
- <td>low</td>
-
- <td>medium</td>
-
- <td>medium/high</td>
- </tr>
-
- <tr>
- <td>Cookie handling</td>
-
- <td>none</td>
-
- <td>session-only</td>
-
- <td>kill</td>
- </tr>
-
- <tr>
- <td>Referer forging</td>
-
- <td>no</td>
-
- <td>yes</td>
-
- <td>yes</td>
- </tr>
-
- <tr>
- <td>GIF de-animation</td>
-
- <td>no</td>
-
- <td>yes</td>
-
- <td>yes</td>
- </tr>
-
- <tr>
- <td>Fast redirects</td>
-
- <td>no</td>
-
- <td>no</td>
-
- <td>yes</td>
- </tr>
-
- <tr>
- <td>HTML taming</td>
-
- <td>no</td>
-
- <td>no</td>
-
- <td>yes</td>
- </tr>
-
- <tr>
- <td>JavaScript taming</td>
-
- <td>no</td>
-
- <td>no</td>
-
- <td>yes</td>
- </tr>
-
- <tr>
- <td>Web-bug killing</td>
-
- <td>no</td>
-
- <td>yes</td>
-
- <td>yes</td>
- </tr>
-
- <tr>
- <td>Image tag reordering</td>
-
- <td>no</td>
-
- <td>yes</td>
-
- <td>yes</td>
- </tr>
- </tbody>
- </table>
- </div>
- </li>
- </ul>
-
- <p>The list of actions files to be used are defined in the main
- configuration file, and are processed in the order they are defined (e.g.
- <tt class="FILENAME">default.action</tt> is typically processed before
- <tt class="FILENAME">user.action</tt>). The content of these can all be
- viewed and edited from <a href="http://config.privoxy.org/show-status"
- target="_top">http://config.privoxy.org/show-status</a>. The over-riding
- principle when applying actions, is that the last action that matches a
- given URL wins. The broadest, most general rules go first (defined in
- <tt class="FILENAME">default.action</tt>), followed by any exceptions
- (typically also in <tt class="FILENAME">default.action</tt>), which are
- then followed lastly by any local preferences (typically in <span class=
- "emphasis"><i class="EMPHASIS">user</i></span><tt class=
- "FILENAME">.action</tt>). Generally, <tt class=
- "FILENAME">user.action</tt> has the last word.</p>
-
- <p>An actions file typically has multiple sections. If you want to use
- <span class="QUOTE">"aliases"</span> in an actions file, you have to
- place the (optional) <a href="actions-file.html#ALIASES">alias
- section</a> at the top of that file. Then comes the default set of rules
- which will apply universally to all sites and pages (be <span class=
- "emphasis"><i class="EMPHASIS">very careful</i></span> with using such a
- universal set in <tt class="FILENAME">user.action</tt> or any other
- actions file after <tt class="FILENAME">default.action</tt>, because it
- will override the result from consulting any previous file). And then
- below that, exceptions to the defined universal policies. You can regard
- <tt class="FILENAME">user.action</tt> as an appendix to <tt class=
- "FILENAME">default.action</tt>, with the advantage that it is a separate
- file, which makes preserving your personal settings across <span class=
- "APPLICATION">Privoxy</span> upgrades easier.</p>
-
- <p>Actions can be used to block anything you want, including ads,
- banners, or just some obnoxious URL whose content you would rather not
- see. Cookies can be accepted or rejected, or accepted only during the
- current browser session (i.e. not written to disk), content can be
- modified, some JavaScripts tamed, user-tracking fooled, and much more.
- See below for a <a href="actions-file.html#ACTIONS">complete list of
- actions</a>.</p>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="AEN2957" id="AEN2957">8.1. Finding the Right
- Mix</a></h2>
-
- <p>Note that some <a href="actions-file.html#ACTIONS">actions</a>, like
- cookie suppression or script disabling, may render some sites unusable
- that rely on these techniques to work properly. Finding the right mix
- of actions is not always easy and certainly a matter of personal taste.
- And, things can always change, requiring refinements in the
- configuration. In general, it can be said that the more <span class=
- "QUOTE">"aggressive"</span> your default settings (in the top section
- of the actions file) are, the more exceptions for <span class=
- "QUOTE">"trusted"</span> sites you will have to make later. If, for
- example, you want to crunch all cookies per default, you'll have to
- make exceptions from that rule for sites that you regularly use and
- that require cookies for actually useful purposes, like maybe your
- bank, favorite shop, or newspaper.</p>
-
- <p>We have tried to provide you with reasonable rules to start from in
- the distribution actions files. But there is no general rule of thumb
- on these things. There just are too many variables, and sites are
- constantly changing. Sooner or later you will want to change the rules
- (and read this chapter again :).</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="AEN2964" id="AEN2964">8.2. How to
- Edit</a></h2>
-
- <p>The easiest way to edit the actions files is with a browser by using
- our browser-based editor, which can be reached from <a href=
- "http://config.privoxy.org/show-status" target=
- "_top">http://config.privoxy.org/show-status</a>. Note: the config file
- option <a href=
- "config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</a> must be
- enabled for this to work. The editor allows both fine-grained control
- over every single feature on a per-URL basis, and easy choosing from
- wholesale sets of defaults like <span class="QUOTE">"Cautious"</span>,
- <span class="QUOTE">"Medium"</span> or <span class=
- "QUOTE">"Advanced"</span>. Warning: the <span class=
- "QUOTE">"Advanced"</span> setting is more aggressive, and will be more
- likely to cause problems for some sites. Experienced users only!</p>
-
- <p>If you prefer plain text editing to GUIs, you can of course also
- directly edit the the actions files with your favorite text editor.
- Look at <tt class="FILENAME">default.action</tt> which is richly
- commented with many good examples.</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="ACTIONS-APPLY" id="ACTIONS-APPLY">8.3. How
- Actions are Applied to Requests</a></h2>
-
- <p>Actions files are divided into sections. There are special sections,
- like the <span class="QUOTE">"<a href=
- "actions-file.html#ALIASES">alias</a>"</span> sections which will be
- discussed later. For now let's concentrate on regular sections: They
- have a heading line (often split up to multiple lines for readability)
- which consist of a list of actions, separated by whitespace and
- enclosed in curly braces. Below that, there is a list of URL and tag
- patterns, each on a separate line.</p>
-
- <p>To determine which actions apply to a request, the URL of the
- request is compared to all URL patterns in each <span class=
- "QUOTE">"action file"</span>. Every time it matches, the list of
- applicable actions for the request is incrementally updated, using the
- heading of the section in which the pattern is located. The same is
- done again for tags and tag patterns later on.</p>
-
- <p>If multiple applying sections set the same action differently, the
- last match wins. If not, the effects are aggregated. E.g. a URL might
- match a regular section with a heading line of <tt class="LITERAL">{
- +<a href="actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a>
- }</tt>, then later another one with just <tt class="LITERAL">{
- +<a href="actions-file.html#BLOCK">block</a> }</tt>, resulting in
- <span class="emphasis"><i class="EMPHASIS">both</i></span> actions to
- apply. And there may well be cases where you will want to combine
- actions together. Such a section then might look like:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- { +<tt class="LITERAL">handle-as-image</tt> +<tt class=
-"LITERAL">block{Banner ads.}</tt> }
- # Block these as if they were images. Send no block page.
- banners.example.com
- media.example.com/.*banners
- .example.com/images/ads/
-</pre>
- </td>
- </tr>
- </table>
-
- <p>You can trace this process for URL patterns and any given URL by
- visiting <a href="http://config.privoxy.org/show-url-info" target=
- "_top">http://config.privoxy.org/show-url-info</a>.</p>
-
- <p>Examples and more detail on this is provided in the Appendix,
- <a href="appendix.html#ACTIONSANAT">Troubleshooting: Anatomy of an
- Action</a> section.</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="AF-PATTERNS" id="AF-PATTERNS">8.4.
- Patterns</a></h2>
-
- <p>As mentioned, <span class="APPLICATION">Privoxy</span> uses
- <span class="QUOTE">"patterns"</span> to determine what <span class=
- "emphasis"><i class="EMPHASIS">actions</i></span> might apply to which
- sites and pages your browser attempts to access. These <span class=
- "QUOTE">"patterns"</span> use wild card type <span class=
- "emphasis"><i class="EMPHASIS">pattern</i></span> matching to achieve a
- high degree of flexibility. This allows one expression to be expanded
- and potentially match against many similar patterns.</p>
-
- <p>Generally, an URL pattern has the form <tt class=
- "LITERAL"><domain><port>/<path></tt>, where the
- <tt class="LITERAL"><domain></tt>, the <tt class=
- "LITERAL"><port></tt> and the <tt class=
- "LITERAL"><path></tt> are optional. (This is why the special
- <tt class="LITERAL">/</tt> pattern matches all URLs). Note that the
- protocol portion of the URL pattern (e.g. <tt class=
- "LITERAL">http://</tt>) should <span class="emphasis"><i class=
- "EMPHASIS">not</i></span> be included in the pattern. This is assumed
- already!</p>
-
- <p>The pattern matching syntax is different for the domain and path
- parts of the URL. The domain part uses a simple globbing type matching
- technique, while the path part uses more flexible <a href=
- "http://en.wikipedia.org/wiki/Regular_expressions" target=
- "_top"><span class="QUOTE">"Regular Expressions"</span></a> (POSIX
- 1003.2).</p>
-
- <p>The port part of a pattern is a decimal port number preceded by a
- colon (<tt class="LITERAL">:</tt>). If the domain part contains a
- numerical IPv6 address, it has to be put into angle brackets
- (<tt class="LITERAL"><</tt>, <tt class="LITERAL">></tt>).</p>
-
- <div class="VARIABLELIST">
- <dl>
- <dt><tt class="LITERAL">www.example.com/</tt></dt>
-
- <dd>
- <p>is a domain-only pattern and will match any request to
- <tt class="LITERAL">www.example.com</tt>, regardless of which
- document on that server is requested. So ALL pages in this domain
- would be covered by the scope of this action. Note that a simple
- <tt class="LITERAL">example.com</tt> is different and would NOT
- match.</p>
- </dd>
-
- <dt><tt class="LITERAL">www.example.com</tt></dt>
-
- <dd>
- <p>means exactly the same. For domain-only patterns, the trailing
- <tt class="LITERAL">/</tt> may be omitted.</p>
- </dd>
-
- <dt><tt class="LITERAL">www.example.com/index.html</tt></dt>
-
- <dd>
- <p>matches all the documents on <tt class=
- "LITERAL">www.example.com</tt> whose name starts with <tt class=
- "LITERAL">/index.html</tt>.</p>
- </dd>
-
- <dt><tt class="LITERAL">www.example.com/index.html$</tt></dt>
-
- <dd>
- <p>matches only the single document <tt class=
- "LITERAL">/index.html</tt> on <tt class=
- "LITERAL">www.example.com</tt>.</p>
- </dd>
-
- <dt><tt class="LITERAL">/index.html$</tt></dt>
-
- <dd>
- <p>matches the document <tt class="LITERAL">/index.html</tt>,
- regardless of the domain, i.e. on <span class=
- "emphasis"><i class="EMPHASIS">any</i></span> web server
- anywhere.</p>
- </dd>
-
- <dt><tt class="LITERAL">/</tt></dt>
-
- <dd>
- <p>Matches any URL because there's no requirement for either the
- domain or the path to match anything.</p>
- </dd>
-
- <dt><tt class="LITERAL">:8000/</tt></dt>
-
- <dd>
- <p>Matches any URL pointing to TCP port 8000.</p>
- </dd>
-
- <dt><tt class="LITERAL"><2001:db8::1>/</tt></dt>
-
- <dd>
- <p>Matches any URL with the host address <tt class=
- "LITERAL">2001:db8::1</tt>. (Note that the real URL uses plain
- brackets, not angle brackets.)</p>
- </dd>
-
- <dt><tt class="LITERAL">index.html</tt></dt>
-
- <dd>
- <p>matches nothing, since it would be interpreted as a domain
- name and there is no top-level domain called <tt class=
- "LITERAL">.html</tt>. So its a mistake.</p>
- </dd>
- </dl>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="AEN3076" id="AEN3076">8.4.1. The Domain
- Pattern</a></h3>
-
- <p>The matching of the domain part offers some flexible options: if
- the domain starts or ends with a dot, it becomes unanchored at that
- end. For example:</p>
-
- <div class="VARIABLELIST">
- <dl>
- <dt><tt class="LITERAL">.example.com</tt></dt>
-
- <dd>
- <p>matches any domain with first-level domain <tt class=
- "LITERAL">com</tt> and second-level domain <tt class=
- "LITERAL">example</tt>. For example <tt class=
- "LITERAL">www.example.com</tt>, <tt class=
- "LITERAL">example.com</tt> and <tt class=
- "LITERAL">foo.bar.baz.example.com</tt>. Note that it wouldn't
- match if the second-level domain was <tt class=
- "LITERAL">another-example</tt>.</p>
- </dd>
-
- <dt><tt class="LITERAL">www.</tt></dt>
-
- <dd>
- <p>matches any domain that <span class="emphasis"><i class=
- "EMPHASIS">STARTS</i></span> with <tt class="LITERAL">www.</tt>
- (It also matches the domain <tt class="LITERAL">www</tt> but
- most of the time that doesn't matter.)</p>
- </dd>
-
- <dt><tt class="LITERAL">.example.</tt></dt>
-
- <dd>
- <p>matches any domain that <span class="emphasis"><i class=
- "EMPHASIS">CONTAINS</i></span> <tt class=
- "LITERAL">.example.</tt>. And, by the way, also included would
- be any files or documents that exist within that domain since
- no path limitations are specified. (Correctly speaking: It
- matches any FQDN that contains <tt class="LITERAL">example</tt>
- as a domain.) This might be <tt class=
- "LITERAL">www.example.com</tt>, <tt class=
- "LITERAL">news.example.de</tt>, or <tt class=
- "LITERAL">www.example.net/cgi/testing.pl</tt> for instance. All
- these cases are matched.</p>
- </dd>
- </dl>
- </div>
-
- <p>Additionally, there are wild-cards that you can use in the domain
- names themselves. These work similarly to shell globbing type
- wild-cards: <span class="QUOTE">"*"</span> represents zero or more
- arbitrary characters (this is equivalent to the <a href=
- "http://en.wikipedia.org/wiki/Regular_expressions" target=
- "_top"><span class="QUOTE">"Regular Expression"</span></a> based
- syntax of <span class="QUOTE">".*"</span>), <span class=
- "QUOTE">"?"</span> represents any single character (this is
- equivalent to the regular expression syntax of a simple <span class=
- "QUOTE">"."</span>), and you can define <span class=
- "QUOTE">"character classes"</span> in square brackets which is
- similar to the same regular expression technique. All of this can be
- freely mixed:</p>
-
- <div class="VARIABLELIST">
- <dl>
- <dt><tt class="LITERAL">ad*.example.com</tt></dt>
-
- <dd>
- <p>matches <span class="QUOTE">"adserver.example.com"</span>,
- <span class="QUOTE">"ads.example.com"</span>, etc but not
- <span class="QUOTE">"sfads.example.com"</span></p>
- </dd>
-
- <dt><tt class="LITERAL">*ad*.example.com</tt></dt>
-
- <dd>
- <p>matches all of the above, and then some.</p>
- </dd>
-
- <dt><tt class="LITERAL">.?pix.com</tt></dt>
-
- <dd>
- <p>matches <tt class="LITERAL">www.ipix.com</tt>, <tt class=
- "LITERAL">pictures.epix.com</tt>, <tt class=
- "LITERAL">a.b.c.d.e.upix.com</tt> etc.</p>
- </dd>
-
- <dt><tt class="LITERAL">www[1-9a-ez].example.c*</tt></dt>
-
- <dd>
- <p>matches <tt class="LITERAL">www1.example.com</tt>,
- <tt class="LITERAL">www4.example.cc</tt>, <tt class=
- "LITERAL">wwwd.example.cy</tt>, <tt class=
- "LITERAL">wwwz.example.com</tt> etc., but <span class=
- "emphasis"><i class="EMPHASIS">not</i></span> <tt class=
- "LITERAL">wwww.example.com</tt>.</p>
- </dd>
- </dl>
- </div>
-
- <p>While flexible, this is not the sophistication of full regular
- expression based syntax.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="AEN3152" id="AEN3152">8.4.2. The Path
- Pattern</a></h3>
-
- <p><span class="APPLICATION">Privoxy</span> uses <span class=
- "QUOTE">"modern"</span> POSIX 1003.2 <a href=
- "http://en.wikipedia.org/wiki/Regular_expressions" target=
- "_top"><span class="QUOTE">"Regular Expressions"</span></a> for
- matching the path portion (after the slash), and is thus more
- flexible.</p>
-
- <p>There is an <a href="appendix.html#REGEX">Appendix</a> with a
- brief quick-start into regular expressions, you also might want to
- have a look at your operating system's documentation on regular
- expressions (try <tt class="LITERAL">man re_format</tt>).</p>
-
- <p>Note that the path pattern is automatically left-anchored at the
- <span class="QUOTE">"/"</span>, i.e. it matches as if it would start
- with a <span class="QUOTE">"^"</span> (regular expression speak for
- the beginning of a line).</p>
-
- <p>Please also note that matching in the path is <span class=
- "emphasis"><i class="EMPHASIS">CASE INSENSITIVE</i></span> by
- default, but you can switch to case sensitive at any point in the
- pattern by using the <span class="QUOTE">"(?-i)"</span> switch:
- <tt class="LITERAL">www.example.com/(?-i)PaTtErN.*</tt> will match
- only documents whose path starts with <tt class=
- "LITERAL">PaTtErN</tt> in <span class="emphasis"><i class=
- "EMPHASIS">exactly</i></span> this capitalization.</p>
-
- <div class="VARIABLELIST">
- <dl>
- <dt><tt class="LITERAL">.example.com/.*</tt></dt>
-
- <dd>
- <p>Is equivalent to just <span class=
- "QUOTE">".example.com"</span>, since any documents within that
- domain are matched with or without the <span class=
- "QUOTE">".*"</span> regular expression. This is redundant</p>
- </dd>
-
- <dt><tt class="LITERAL">.example.com/.*/index.html$</tt></dt>
-
- <dd>
- <p>Will match any page in the domain of <span class=
- "QUOTE">"example.com"</span> that is named <span class=
- "QUOTE">"index.html"</span>, and that is part of some path. For
- example, it matches <span class=
- "QUOTE">"www.example.com/testing/index.html"</span> but NOT
- <span class="QUOTE">"www.example.com/index.html"</span> because
- the regular expression called for at least two <span class=
- "QUOTE">"/'s"</span>, thus the path requirement. It also would
- match <span class=
- "QUOTE">"www.example.com/testing/index_html"</span>, because of
- the special meta-character <span class="QUOTE">"."</span>.</p>
- </dd>
-
- <dt><tt class="LITERAL">.example.com/(.*/)?index\.html$</tt></dt>
-
- <dd>
- <p>This regular expression is conditional so it will match any
- page named <span class="QUOTE">"index.html"</span> regardless
- of path which in this case can have one or more <span class=
- "QUOTE">"/'s"</span>. And this one must contain exactly
- <span class="QUOTE">".html"</span> (but does not have to end
- with that!).</p>
- </dd>
-
- <dt><tt class=
- "LITERAL">.example.com/(.*/)(ads|banners?|junk)</tt></dt>
-
- <dd>
- <p>This regular expression will match any path of <span class=
- "QUOTE">"example.com"</span> that contains any of the words
- <span class="QUOTE">"ads"</span>, <span class=
- "QUOTE">"banner"</span>, <span class="QUOTE">"banners"</span>
- (because of the <span class="QUOTE">"?"</span>) or <span class=
- "QUOTE">"junk"</span>. The path does not have to end in these
- words, just contain them.</p>
- </dd>
-
- <dt><tt class=
- "LITERAL">.example.com/(.*/)(ads|banners?|junk)/.*\.(jpe?g|gif|png)$</tt></dt>
-
- <dd>
- <p>This is very much the same as above, except now it must end
- in either <span class="QUOTE">".jpg"</span>, <span class=
- "QUOTE">".jpeg"</span>, <span class="QUOTE">".gif"</span> or
- <span class="QUOTE">".png"</span>. So this one is limited to
- common image formats.</p>
- </dd>
- </dl>
- </div>
-
- <p>There are many, many good examples to be found in <tt class=
- "FILENAME">default.action</tt>, and more tutorials below in <a href=
- "appendix.html#REGEX">Appendix on regular expressions</a>.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="TAG-PATTERN" id="TAG-PATTERN">8.4.3. The
- Tag Pattern</a></h3>
-
- <p>Tag patterns are used to change the applying actions based on the
- request's tags. Tags can be created with either the <a href=
- "actions-file.html#CLIENT-HEADER-TAGGER">client-header-tagger</a> or
- the <a href=
- "actions-file.html#SERVER-HEADER-TAGGER">server-header-tagger</a>
- action.</p>
-
- <p>Tag patterns have to start with <span class="QUOTE">"TAG:"</span>,
- so <span class="APPLICATION">Privoxy</span> can tell them apart from
- URL patterns. Everything after the colon including white space, is
- interpreted as a regular expression with path pattern syntax, except
- that tag patterns aren't left-anchored automatically (<span class=
- "APPLICATION">Privoxy</span> doesn't silently add a <span class=
- "QUOTE">"^"</span>, you have to do it yourself if you need it).</p>
-
- <p>To match all requests that are tagged with <span class=
- "QUOTE">"foo"</span> your pattern line should be <span class=
- "QUOTE">"TAG:^foo$"</span>, <span class="QUOTE">"TAG:foo"</span>
- would work as well, but it would also match requests whose tags
- contain <span class="QUOTE">"foo"</span> somewhere. <span class=
- "QUOTE">"TAG: foo"</span> wouldn't work as it requires white
- space.</p>
-
- <p>Sections can contain URL and tag patterns at the same time, but
- tag patterns are checked after the URL patterns and thus always
- overrule them, even if they are located before the URL patterns.</p>
-
- <p>Once a new tag is added, Privoxy checks right away if it's matched
- by one of the tag patterns and updates the action settings
- accordingly. As a result tags can be used to activate other tagger
- actions, as long as these other taggers look for headers that haven't
- already be parsed.</p>
-
- <p>For example you could tag client requests which use the <tt class=
- "LITERAL">POST</tt> method, then use this tag to activate another
- tagger that adds a tag if cookies are sent, and then use a block
- action based on the cookie tag. This allows the outcome of one
- action, to be input into a subsequent action. However if you'd
- reverse the position of the described taggers, and activated the
- method tagger based on the cookie tagger, no method tags would be
- created. The method tagger would look for the request line, but at
- the time the cookie tag is created, the request line has already been
- parsed.</p>
-
- <p>While this is a limitation you should be aware of, this kind of
- indirection is seldom needed anyway and even the example doesn't make
- too much sense.</p>
- </div>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="ACTIONS" id="ACTIONS">8.5. Actions</a></h2>
-
- <p>All actions are disabled by default, until they are explicitly
- enabled somewhere in an actions file. Actions are turned on if preceded
- with a <span class="QUOTE">"+"</span>, and turned off if preceded with
- a <span class="QUOTE">"-"</span>. So a <tt class="LITERAL">+action</tt>
- means <span class="QUOTE">"do that action"</span>, e.g. <tt class=
- "LITERAL">+block</tt> means <span class="QUOTE">"please block URLs that
- match the following patterns"</span>, and <tt class=
- "LITERAL">-block</tt> means <span class="QUOTE">"don't block URLs that
- match the following patterns, even if <tt class="LITERAL">+block</tt>
- previously applied."</span></p>
-
- <p>Again, actions are invoked by placing them on a line, enclosed in
- curly braces and separated by whitespace, like in <tt class=
- "LITERAL">{+some-action -some-other-action{some-parameter}}</tt>,
- followed by a list of URL patterns, one per line, to which they apply.
- Together, the actions line and the following pattern lines make up a
- section of the actions file.</p>
-
- <p>Actions fall into three categories:</p>
-
- <ul>
- <li>
- <p>Boolean, i.e the action can only be <span class=
- "QUOTE">"enabled"</span> or <span class="QUOTE">"disabled"</span>.
- Syntax:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
- +<tt class="REPLACEABLE"><i>name</i></tt> # enable action <tt class=
-"REPLACEABLE"><i>name</i></tt>
- -<tt class=
-"REPLACEABLE"><i>name</i></tt> # disable action <tt class="REPLACEABLE"><i>name</i></tt>
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Example: <tt class="LITERAL">+handle-as-image</tt></p>
- </li>
-
- <li>
- <p>Parameterized, where some value is required in order to enable
- this type of action. Syntax:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
- +<tt class="REPLACEABLE"><i>name</i></tt>{<tt class=
-"REPLACEABLE"><i>param</i></tt>} # enable action and set parameter to <tt class="REPLACEABLE"><i>param</i></tt>,
- # overwriting parameter from previous match if necessary
- -<tt class=
-"REPLACEABLE"><i>name</i></tt> # disable action. The parameter can be omitted
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Note that if the URL matches multiple positive forms of a
- parameterized action, the last match wins, i.e. the params from
- earlier matches are simply ignored.</p>
-
- <p>Example: <tt class="LITERAL">+hide-user-agent{Mozilla/5.0 (X11;
- U; FreeBSD i386; en-US; rv:1.8.1.4) Gecko/20070602
- Firefox/2.0.0.4}</tt></p>
- </li>
-
- <li>
- <p>Multi-value. These look exactly like parameterized actions, but
- they behave differently: If the action applies multiple times to
- the same URL, but with different parameters, <span class=
- "emphasis"><i class="EMPHASIS">all</i></span> the parameters from
- <span class="emphasis"><i class="EMPHASIS">all</i></span> matches
- are remembered. This is used for actions that can be executed for
- the same request repeatedly, like adding multiple headers, or
- filtering through multiple filters. Syntax:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
- +<tt class="REPLACEABLE"><i>name</i></tt>{<tt class=
-"REPLACEABLE"><i>param</i></tt>} # enable action and add <tt class=
-"REPLACEABLE"><i>param</i></tt> to the list of parameters
- -<tt class="REPLACEABLE"><i>name</i></tt>{<tt class=
-"REPLACEABLE"><i>param</i></tt>} # remove the parameter <tt class=
-"REPLACEABLE"><i>param</i></tt> from the list of parameters
- # If it was the last one left, disable the action.
- <tt class=
-"REPLACEABLE"><i>-name</i></tt> # disable this action completely and remove all parameters from the list
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Examples: <tt class="LITERAL">+add-header{X-Fun-Header: Some
- text}</tt> and <tt class=
- "LITERAL">+filter{html-annoyances}</tt></p>
- </li>
- </ul>
-
- <p>If nothing is specified in any actions file, no <span class=
- "QUOTE">"actions"</span> are taken. So in this case <span class=
- "APPLICATION">Privoxy</span> would just be a normal, non-blocking,
- non-filtering proxy. You must specifically enable the privacy and
- blocking features you need (although the provided default actions files
- will give a good starting point).</p>
-
- <p>Later defined action sections always over-ride earlier ones of the
- same type. So exceptions to any rules you make, should come in the
- latter part of the file (or in a file that is processed later when
- using multiple actions files such as <tt class=
- "FILENAME">user.action</tt>). For multi-valued actions, the actions are
- applied in the order they are specified. Actions files are processed in
- the order they are defined in <tt class="FILENAME">config</tt> (the
- default installation has three actions files). It also quite possible
- for any given URL to match more than one <span class=
- "QUOTE">"pattern"</span> (because of wildcards and regular
- expressions), and thus to trigger more than one set of actions! Last
- match wins.</p>
-
- <p>The list of valid <span class="APPLICATION">Privoxy</span> actions
- are:</p>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="ADD-HEADER" id="ADD-HEADER">8.5.1.
- add-header</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Confuse log analysis, custom applications</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Sends a user defined HTTP header to the web server.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Multi-value.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>Any string value is possible. Validity of the defined HTTP
- headers is not checked. It is recommended that you use the
- <span class="QUOTE">"<tt class="LITERAL">X-</tt>"</span> prefix
- for custom headers.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>This action may be specified multiple times, in order to
- define multiple headers. This is rarely needed for the typical
- user. If you don't know what <span class="QUOTE">"HTTP
- headers"</span> are, you definitely don't need to worry about
- this one.</p>
-
- <p>Headers added by this action are not modified by other
- actions.</p>
- </dd>
-
- <dt>Example usage:</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+add-header{X-User-Tracking: sucks}
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="BLOCK" id="BLOCK">8.5.2. block</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Block ads or other unwanted content</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Requests for URLs to which this action applies are blocked,
- i.e. the requests are trapped by <span class=
- "APPLICATION">Privoxy</span> and the requested URL is never
- retrieved, but is answered locally with a substitute page or
- image, as determined by the <tt class="LITERAL"><a href=
- "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></tt>,
- <tt class="LITERAL"><a href=
- "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker</a></tt>,
- and <tt class="LITERAL"><a href=
- "actions-file.html#HANDLE-AS-EMPTY-DOCUMENT">handle-as-empty-document</a></tt>
- actions.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Parameterized.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>A block reason that should be given to the user.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p><span class="APPLICATION">Privoxy</span> sends a special
- <span class="QUOTE">"BLOCKED"</span> page for requests to
- blocked pages. This page contains the block reason given as
- parameter, a link to find out why the block action applies, and
- a click-through to the blocked content (the latter only if the
- force feature is available and enabled).</p>
-
- <p>A very important exception occurs if <span class=
- "emphasis"><i class="EMPHASIS">both</i></span> <tt class=
- "LITERAL">block</tt> and <tt class="LITERAL"><a href=
- "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></tt>,
- apply to the same request: it will then be replaced by an
- image. If <tt class="LITERAL"><a href=
- "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker</a></tt>
- (see below) also applies, the type of image will be determined
- by its parameter, if not, the standard checkerboard pattern is
- sent.</p>
-
- <p>It is important to understand this process, in order to
- understand how <span class="APPLICATION">Privoxy</span> deals
- with ads and other unwanted content. Blocking is a core
- feature, and one upon which various other features depend.</p>
-
- <p>The <tt class="LITERAL"><a href=
- "actions-file.html#FILTER">filter</a></tt> action can perform a
- very similar task, by <span class="QUOTE">"blocking"</span>
- banner images and other content through rewriting the relevant
- URLs in the document's HTML source, so they don't get requested
- in the first place. Note that this is a totally different
- technique, and it's easy to confuse the two.</p>
- </dd>
-
- <dt>Example usage (section):</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-{+block{No nasty stuff for you.}}
-# Block and replace with "blocked" page
- .nasty-stuff.example.com
-
-{+block{Doubleclick banners.} +handle-as-image}
-# Block and replace with image
- .ad.doubleclick.net
- .ads.r.us/banners/
-
-{+block{Layered ads.} +handle-as-empty-document}
-# Block and then ignore
- adserver.example.net/.*\.js$
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="CHANGE-X-FORWARDED-FOR" id=
- "CHANGE-X-FORWARDED-FOR">8.5.3. change-x-forwarded-for</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Improve privacy by not forwarding the source of the request
- in the HTTP headers.</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Deletes the <span class="QUOTE">"X-Forwarded-For:"</span>
- HTTP header from the client request, or adds a new one.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Parameterized.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <ul>
- <li>
- <p><span class="QUOTE">"block"</span> to delete the
- header.</p>
- </li>
-
- <li>
- <p><span class="QUOTE">"add"</span> to create the header
- (or append the client's IP address to an already existing
- one).</p>
- </li>
- </ul>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>It is safe and recommended to use <tt class=
- "LITERAL">block</tt>.</p>
-
- <p>Forwarding the source address of the request may make sense
- in some multi-user setups but is also a privacy risk.</p>
- </dd>
-
- <dt>Example usage:</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+change-x-forwarded-for{block}
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="CLIENT-HEADER-FILTER" id=
- "CLIENT-HEADER-FILTER">8.5.4. client-header-filter</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Rewrite or remove single client headers.</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>All client headers to which this action applies are filtered
- on-the-fly through the specified regular expression based
- substitutions.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Parameterized.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>The name of a client-header filter, as defined in one of the
- <a href="filter-file.html">filter files</a>.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>Client-header filters are applied to each header on its own,
- not to all at once. This makes it easier to diagnose problems,
- but on the downside you can't write filters that only change
- header x if header y's value is z. You can do that by using
- tags though.</p>
-
- <p>Client-header filters are executed after the other header
- actions have finished and use their output as input.</p>
-
- <p>If the request URI gets changed, <span class=
- "APPLICATION">Privoxy</span> will detect that and use the new
- one. This can be used to rewrite the request destination behind
- the client's back, for example to specify a Tor exit relay for
- certain requests.</p>
-
- <p>Please refer to the <a href="filter-file.html">filter file
- chapter</a> to learn which client-header filters are available
- by default, and how to create your own.</p>
- </dd>
-
- <dt>Example usage (section):</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Hide Tor exit notation in Host and Referer Headers
-{+client-header-filter{hide-tor-exit-notation}}
-/
-
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="CLIENT-HEADER-TAGGER" id=
- "CLIENT-HEADER-TAGGER">8.5.5. client-header-tagger</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Block requests based on their headers.</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Client headers to which this action applies are filtered
- on-the-fly through the specified regular expression based
- substitutions, the result is used as tag.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Parameterized.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>The name of a client-header tagger, as defined in one of the
- <a href="filter-file.html">filter files</a>.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>Client-header taggers are applied to each header on its own,
- and as the header isn't modified, each tagger <span class=
- "QUOTE">"sees"</span> the original.</p>
-
- <p>Client-header taggers are the first actions that are
- executed and their tags can be used to control every other
- action.</p>
- </dd>
-
- <dt>Example usage (section):</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Tag every request with the User-Agent header
-{+client-header-tagger{user-agent}}
-/
-
-# Tagging itself doesn't change the action
-# settings, sections with TAG patterns do:
-#
-# If it's a download agent, use a different forwarding proxy,
-# show the real User-Agent and make sure resume works.
-{+forward-override{forward-socks5 10.0.0.2:2222 .} \
- -hide-if-modified-since \
- -overwrite-last-modified \
- -hide-user-agent \
- -filter \
- -deanimate-gifs \
-}
-TAG:^User-Agent: NetBSD-ftp/
-TAG:^User-Agent: Novell ZYPP Installer
-TAG:^User-Agent: RPM APT-HTTP/
-TAG:^User-Agent: fetch libfetch/
-TAG:^User-Agent: Ubuntu APT-HTTP/
-TAG:^User-Agent: MPlayer/
-
-</pre>
- </td>
- </tr>
- </table>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Tag all requests with the Range header set
-{+client-header-tagger{range-requests}}
-/
-
-# Disable filtering for the tagged requests.
-#
-# With filtering enabled Privoxy would remove the Range headers
-# to be able to filter the whole response. The downside is that
-# it prevents clients from resuming downloads or skipping over
-# parts of multimedia files.
-{-filter -deanimate-gifs}
-TAG:^RANGE-REQUEST$
-
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="CONTENT-TYPE-OVERWRITE" id=
- "CONTENT-TYPE-OVERWRITE">8.5.6. content-type-overwrite</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Stop useless download menus from popping up, or change the
- browser's rendering mode</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Replaces the <span class="QUOTE">"Content-Type:"</span> HTTP
- server header.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Parameterized.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>Any string.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>The <span class="QUOTE">"Content-Type:"</span> HTTP server
- header is used by the browser to decide what to do with the
- document. The value of this header can cause the browser to
- open a download menu instead of displaying the document by
- itself, even if the document's format is supported by the
- browser.</p>
-
- <p>The declared content type can also affect which rendering
- mode the browser chooses. If XHTML is delivered as <span class=
- "QUOTE">"text/html"</span>, many browsers treat it as yet
- another broken HTML document. If it is send as <span class=
- "QUOTE">"application/xml"</span>, browsers with XHTML support
- will only display it, if the syntax is correct.</p>
-
- <p>If you see a web site that proudly uses XHTML buttons, but
- sets <span class="QUOTE">"Content-Type: text/html"</span>, you
- can use <span class="APPLICATION">Privoxy</span> to overwrite
- it with <span class="QUOTE">"application/xml"</span> and
- validate the web master's claim inside your XHTML-supporting
- browser. If the syntax is incorrect, the browser will complain
- loudly.</p>
-
- <p>You can also go the opposite direction: if your browser
- prints error messages instead of rendering a document falsely
- declared as XHTML, you can overwrite the content type with
- <span class="QUOTE">"text/html"</span> and have it rendered as
- broken HTML document.</p>
-
- <p>By default <tt class="LITERAL">content-type-overwrite</tt>
- only replaces <span class="QUOTE">"Content-Type:"</span>
- headers that look like some kind of text. If you want to
- overwrite it unconditionally, you have to combine it with
- <tt class="LITERAL"><a href=
- "actions-file.html#FORCE-TEXT-MODE">force-text-mode</a></tt>.
- This limitation exists for a reason, think twice before
- circumventing it.</p>
-
- <p>Most of the time it's easier to replace this action with a
- custom <tt class="LITERAL"><a href=
- "actions-file.html#SERVER-HEADER-FILTER">server-header
- filter</a></tt>. It allows you to activate it for every
- document of a certain site and it will still only replace the
- content types you aimed at.</p>
-
- <p>Of course you can apply <tt class=
- "LITERAL">content-type-overwrite</tt> to a whole site and then
- make URL based exceptions, but it's a lot more work to get the
- same precision.</p>
- </dd>
-
- <dt>Example usage (sections):</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Check if www.example.net/ really uses valid XHTML
-{ +content-type-overwrite{application/xml} }
-www.example.net/
-
-# but leave the content type unmodified if the URL looks like a style sheet
-{-content-type-overwrite}
-www.example.net/.*\.css$
-www.example.net/.*style
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="CRUNCH-CLIENT-HEADER" id=
- "CRUNCH-CLIENT-HEADER">8.5.7. crunch-client-header</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Remove a client header <span class=
- "APPLICATION">Privoxy</span> has no dedicated action for.</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Deletes every header sent by the client that contains the
- string the user supplied as parameter.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Parameterized.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>Any string.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>This action allows you to block client headers for which no
- dedicated <span class="APPLICATION">Privoxy</span> action
- exists. <span class="APPLICATION">Privoxy</span> will remove
- every client header that contains the string you supplied as
- parameter.</p>
-
- <p>Regular expressions are <span class="emphasis"><i class=
- "EMPHASIS">not supported</i></span> and you can't use this
- action to block different headers in the same request, unless
- they contain the same string.</p>
-
- <p><tt class="LITERAL">crunch-client-header</tt> is only meant
- for quick tests. If you have to block several different
- headers, or only want to modify parts of them, you should use a
- <tt class="LITERAL"><a href=
- "actions-file.html#CLIENT-HEADER-FILTER">client-header
- filter</a></tt>.</p>
-
- <div class="WARNING">
- <table class="WARNING" border="1" width="90%">
- <tr>
- <td align="center"><b>Warning</b></td>
- </tr>
-
- <tr>
- <td align="left">
- <p>Don't block any header without understanding the
- consequences.</p>
- </td>
- </tr>
- </table>
- </div>
- </dd>
-
- <dt>Example usage (section):</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Block the non-existent "Privacy-Violation:" client header
-{ +crunch-client-header{Privacy-Violation:} }
-/
-
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="CRUNCH-IF-NONE-MATCH" id=
- "CRUNCH-IF-NONE-MATCH">8.5.8. crunch-if-none-match</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Prevent yet another way to track the user's steps between
- sessions.</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Deletes the <span class="QUOTE">"If-None-Match:"</span> HTTP
- client header.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Boolean.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>N/A</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>Removing the <span class="QUOTE">"If-None-Match:"</span>
- HTTP client header is useful for filter testing, where you want
- to force a real reload instead of getting status code
- <span class="QUOTE">"304"</span> which would cause the browser
- to use a cached copy of the page.</p>
-
- <p>It is also useful to make sure the header isn't used as a
- cookie replacement (unlikely but possible).</p>
-
- <p>Blocking the <span class="QUOTE">"If-None-Match:"</span>
- header shouldn't cause any caching problems, as long as the
- <span class="QUOTE">"If-Modified-Since:"</span> header isn't
- blocked or missing as well.</p>
-
- <p>It is recommended to use this action together with
- <tt class="LITERAL"><a href=
- "actions-file.html#HIDE-IF-MODIFIED-SINCE">hide-if-modified-since</a></tt>
- and <tt class="LITERAL"><a href=
- "actions-file.html#OVERWRITE-LAST-MODIFIED">overwrite-last-modified</a></tt>.</p>
- </dd>
-
- <dt>Example usage (section):</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Let the browser revalidate cached documents but don't
-# allow the server to use the revalidation headers for user tracking.
-{+hide-if-modified-since{-60} \
- +overwrite-last-modified{randomize} \
- +crunch-if-none-match}
-/
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="CRUNCH-INCOMING-COOKIES" id=
- "CRUNCH-INCOMING-COOKIES">8.5.9. crunch-incoming-cookies</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Prevent the web server from setting HTTP cookies on your
- system</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Deletes any <span class="QUOTE">"Set-Cookie:"</span> HTTP
- headers from server replies.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Boolean.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>N/A</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>This action is only concerned with <span class=
- "emphasis"><i class="EMPHASIS">incoming</i></span> HTTP
- cookies. For <span class="emphasis"><i class=
- "EMPHASIS">outgoing</i></span> HTTP cookies, use <tt class=
- "LITERAL"><a href=
- "actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a></tt>.
- Use <span class="emphasis"><i class="EMPHASIS">both</i></span>
- to disable HTTP cookies completely.</p>
-
- <p>It makes <span class="emphasis"><i class="EMPHASIS">no sense
- at all</i></span> to use this action in conjunction with the
- <tt class="LITERAL"><a href=
- "actions-file.html#SESSION-COOKIES-ONLY">session-cookies-only</a></tt>
- action, since it would prevent the session cookies from being
- set. See also <tt class="LITERAL"><a href=
- "actions-file.html#FILTER-CONTENT-COOKIES">filter-content-cookies</a></tt>.</p>
- </dd>
-
- <dt>Example usage:</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+crunch-incoming-cookies
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="CRUNCH-SERVER-HEADER" id=
- "CRUNCH-SERVER-HEADER">8.5.10. crunch-server-header</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Remove a server header <span class=
- "APPLICATION">Privoxy</span> has no dedicated action for.</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Deletes every header sent by the server that contains the
- string the user supplied as parameter.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Parameterized.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>Any string.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>This action allows you to block server headers for which no
- dedicated <span class="APPLICATION">Privoxy</span> action
- exists. <span class="APPLICATION">Privoxy</span> will remove
- every server header that contains the string you supplied as
- parameter.</p>
-
- <p>Regular expressions are <span class="emphasis"><i class=
- "EMPHASIS">not supported</i></span> and you can't use this
- action to block different headers in the same request, unless
- they contain the same string.</p>
-
- <p><tt class="LITERAL">crunch-server-header</tt> is only meant
- for quick tests. If you have to block several different
- headers, or only want to modify parts of them, you should use a
- custom <tt class="LITERAL"><a href=
- "actions-file.html#SERVER-HEADER-FILTER">server-header
- filter</a></tt>.</p>
-
- <div class="WARNING">
- <table class="WARNING" border="1" width="90%">
- <tr>
- <td align="center"><b>Warning</b></td>
- </tr>
-
- <tr>
- <td align="left">
- <p>Don't block any header without understanding the
- consequences.</p>
- </td>
- </tr>
- </table>
- </div>
- </dd>
-
- <dt>Example usage (section):</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Crunch server headers that try to prevent caching
-{ +crunch-server-header{no-cache} }
-/
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="CRUNCH-OUTGOING-COOKIES" id=
- "CRUNCH-OUTGOING-COOKIES">8.5.11. crunch-outgoing-cookies</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Prevent the web server from reading any HTTP cookies from
- your system</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Deletes any <span class="QUOTE">"Cookie:"</span> HTTP
- headers from client requests.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Boolean.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>N/A</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>This action is only concerned with <span class=
- "emphasis"><i class="EMPHASIS">outgoing</i></span> HTTP
- cookies. For <span class="emphasis"><i class=
- "EMPHASIS">incoming</i></span> HTTP cookies, use <tt class=
- "LITERAL"><a href=
- "actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a></tt>.
- Use <span class="emphasis"><i class="EMPHASIS">both</i></span>
- to disable HTTP cookies completely.</p>
-
- <p>It makes <span class="emphasis"><i class="EMPHASIS">no sense
- at all</i></span> to use this action in conjunction with the
- <tt class="LITERAL"><a href=
- "actions-file.html#SESSION-COOKIES-ONLY">session-cookies-only</a></tt>
- action, since it would prevent the session cookies from being
- read.</p>
- </dd>
-
- <dt>Example usage:</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+crunch-outgoing-cookies
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="DEANIMATE-GIFS" id=
- "DEANIMATE-GIFS">8.5.12. deanimate-gifs</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Stop those annoying, distracting animated GIF images.</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>De-animate GIF animations, i.e. reduce them to their first
- or last image.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Parameterized.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p><span class="QUOTE">"last"</span> or <span class=
- "QUOTE">"first"</span></p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>This will also shrink the images considerably (in bytes, not
- pixels!). If the option <span class="QUOTE">"first"</span> is
- given, the first frame of the animation is used as the
- replacement. If <span class="QUOTE">"last"</span> is given, the
- last frame of the animation is used instead, which probably
- makes more sense for most banner animations, but also has the
- risk of not showing the entire last frame (if it is only a
- delta to an earlier frame).</p>
-
- <p>You can safely use this action with patterns that will also
- match non-GIF objects, because no attempt will be made at
- anything that doesn't look like a GIF.</p>
- </dd>
-
- <dt>Example usage:</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+deanimate-gifs{last}
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="DOWNGRADE-HTTP-VERSION" id=
- "DOWNGRADE-HTTP-VERSION">8.5.13. downgrade-http-version</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Work around (very rare) problems with HTTP/1.1</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Downgrades HTTP/1.1 client requests and server replies to
- HTTP/1.0.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Boolean.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>N/A</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>This is a left-over from the time when <span class=
- "APPLICATION">Privoxy</span> didn't support important HTTP/1.1
- features well. It is left here for the unlikely case that you
- experience HTTP/1.1-related problems with some server out
- there.</p>
-
- <p>Note that enabling this action is only a workaround. It
- should not be enabled for sites that work without it. While it
- shouldn't break any pages, it has an (usually negative)
- performance impact.</p>
-
- <p>If you come across a site where enabling this action helps,
- please report it, so the cause of the problem can be analyzed.
- If the problem turns out to be caused by a bug in <span class=
- "APPLICATION">Privoxy</span> it should be fixed so the
- following release works without the work around.</p>
- </dd>
-
- <dt>Example usage (section):</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-{+downgrade-http-version}
-problem-host.example.com
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="FAST-REDIRECTS" id=
- "FAST-REDIRECTS">8.5.14. fast-redirects</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Fool some click-tracking scripts and speed up indirect
- links.</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Detects redirection URLs and redirects the browser without
- contacting the redirection server first.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Parameterized.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <ul>
- <li>
- <p><span class="QUOTE">"simple-check"</span> to just search
- for the string <span class="QUOTE">"http://"</span> to
- detect redirection URLs.</p>
- </li>
-
- <li>
- <p><span class="QUOTE">"check-decoded-url"</span> to decode
- URLs (if necessary) before searching for redirection
- URLs.</p>
- </li>
- </ul>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>Many sites, like yahoo.com, don't just link to other sites.
- Instead, they will link to some script on their own servers,
- giving the destination as a parameter, which will then redirect
- you to the final target. URLs resulting from this scheme
- typically look like: <span class=
- "QUOTE">"http://www.example.org/click-tracker.cgi?target=http%3a//www.example.net/"</span>.</p>
-
- <p>Sometimes, there are even multiple consecutive redirects
- encoded in the URL. These redirections via scripts make your
- web browsing more traceable, since the server from which you
- follow such a link can see where you go to. Apart from that,
- valuable bandwidth and time is wasted, while your browser asks
- the server for one redirect after the other. Plus, it feeds the
- advertisers.</p>
-
- <p>This feature is currently not very smart and is scheduled
- for improvement. If it is enabled by default, you will have to
- create some exceptions to this action. It can lead to failures
- in several ways:</p>
-
- <p>Not every URLs with other URLs as parameters is evil. Some
- sites offer a real service that requires this information to
- work. For example a validation service needs to know, which
- document to validate. <tt class="LITERAL">fast-redirects</tt>
- assumes that every URL parameter that looks like another URL is
- a redirection target, and will always redirect to the last one.
- Most of the time the assumption is correct, but if it isn't,
- the user gets redirected anyway.</p>
-
- <p>Another failure occurs if the URL contains other parameters
- after the URL parameter. The URL: <span class=
- "QUOTE">"http://www.example.org/?redirect=http%3a//www.example.net/&foo=bar"</span>.
- contains the redirection URL <span class=
- "QUOTE">"http://www.example.net/"</span>, followed by another
- parameter. <tt class="LITERAL">fast-redirects</tt> doesn't know
- that and will cause a redirect to <span class=
- "QUOTE">"http://www.example.net/&foo=bar"</span>. Depending
- on the target server configuration, the parameter will be
- silently ignored or lead to a <span class="QUOTE">"page not
- found"</span> error. You can prevent this problem by first
- using the <tt class="LITERAL"><a href=
- "actions-file.html#REDIRECT">redirect</a></tt> action to remove
- the last part of the URL, but it requires a little effort.</p>
-
- <p>To detect a redirection URL, <tt class=
- "LITERAL">fast-redirects</tt> only looks for the string
- <span class="QUOTE">"http://"</span>, either in plain text
- (invalid but often used) or encoded as <span class=
- "QUOTE">"http%3a//"</span>. Some sites use their own URL
- encoding scheme, encrypt the address of the target server or
- replace it with a database id. In theses cases <tt class=
- "LITERAL">fast-redirects</tt> is fooled and the request reaches
- the redirection server where it probably gets logged.</p>
- </dd>
-
- <dt>Example usage:</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
- { +fast-redirects{simple-check} }
- one.example.com
-
- { +fast-redirects{check-decoded-url} }
- another.example.com/testing
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="FILTER" id="FILTER">8.5.15.
- filter</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Get rid of HTML and JavaScript annoyances, banner
- advertisements (by size), do fun text replacements, add
- personalized effects, etc.</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>All instances of text-based type, most notably HTML and
- JavaScript, to which this action applies, can be filtered
- on-the-fly through the specified regular expression based
- substitutions. (Note: as of version 3.0.3 plain text documents
- are exempted from filtering, because web servers often use the
- <tt class="LITERAL">text/plain</tt> MIME type for all files
- whose type they don't know.)</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Parameterized.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>The name of a content filter, as defined in the <a href=
- "filter-file.html">filter file</a>. Filters can be defined in
- one or more files as defined by the <tt class=
- "LITERAL"><a href="config.html#FILTERFILE">filterfile</a></tt>
- option in the <a href="config.html">config file</a>. <tt class=
- "FILENAME">default.filter</tt> is the collection of filters
- supplied by the developers. Locally defined filters should go
- in their own file, such as <tt class=
- "FILENAME">user.filter</tt>.</p>
-
- <p>When used in its negative form, and without parameters,
- <span class="emphasis"><i class="EMPHASIS">all</i></span>
- filtering is completely disabled.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>For your convenience, there are a number of pre-defined
- filters available in the distribution filter file that you can
- use. See the examples below for a list.</p>
-
- <p>Filtering requires buffering the page content, which may
- appear to slow down page rendering since nothing is displayed
- until all content has passed the filters. (The total time until
- the page is completely rendered doesn't change much, but it may
- be perceived as slower since the page is not incrementally
- displayed.) This effect will be more noticeable on slower
- connections.</p>
-
- <p><span class="QUOTE">"Rolling your own"</span> filters
- requires a knowledge of <a href=
- "http://en.wikipedia.org/wiki/Regular_expressions" target=
- "_top"><span class="QUOTE">"Regular Expressions"</span></a> and
- <a href="http://en.wikipedia.org/wiki/Html" target=
- "_top"><span class="QUOTE">"HTML"</span></a>. This is very
- powerful feature, and potentially very intrusive. Filters
- should be used with caution, and where an equivalent
- <span class="QUOTE">"action"</span> is not available.</p>
-
- <p>The amount of data that can be filtered is limited to the
- <tt class="LITERAL"><a href=
- "config.html#BUFFER-LIMIT">buffer-limit</a></tt> option in the
- main <a href="config.html">config file</a>. The default is 4096
- KB (4 Megs). Once this limit is exceeded, the buffered data,
- and all pending data, is passed through unfiltered.</p>
-
- <p>Inappropriate MIME types, such as zipped files, are not
- filtered at all. (Again, only text-based types except plain
- text). Encrypted SSL data (from HTTPS servers) cannot be
- filtered either, since this would violate the integrity of the
- secure transaction. In some situations it might be necessary to
- protect certain text, like source code, from filtering by
- defining appropriate <tt class="LITERAL">-filter</tt>
- exceptions.</p>
-
- <p>Compressed content can't be filtered either, but if
- <span class="APPLICATION">Privoxy</span> is compiled with zlib
- support and a supported compression algorithm is used (gzip or
- deflate), <span class="APPLICATION">Privoxy</span> can first
- decompress the content and then filter it.</p>
-
- <p>If you use a <span class="APPLICATION">Privoxy</span>
- version without zlib support, but want filtering to work on as
- much documents as possible, even those that would normally be
- sent compressed, you must use the <tt class="LITERAL"><a href=
- "actions-file.html#PREVENT-COMPRESSION">prevent-compression</a></tt>
- action in conjunction with <tt class="LITERAL">filter</tt>.</p>
-
- <p>Content filtering can achieve some of the same effects as
- the <tt class="LITERAL"><a href=
- "actions-file.html#BLOCK">block</a></tt> action, i.e. it can be
- used to block ads and banners. But the mechanism works quite
- differently. One effective use, is to block ad banners based on
- their size (see below), since many of these seem to be somewhat
- standardized.</p>
-
- <p><a href="contact.html">Feedback</a> with suggestions for new
- or improved filters is particularly welcome!</p>
-
- <p>The below list has only the names and a one-line description
- of each predefined filter. There are <a href=
- "filter-file.html#PREDEFINED-FILTERS">more verbose
- explanations</a> of what these filters do in the <a href=
- "filter-file.html">filter file chapter</a>.</p>
- </dd>
-
- <dt>Example usage (with filters from the distribution <tt class=
- "FILENAME">default.filter</tt> file). See <a href=
- "filter-file.html#PREDEFINED-FILTERS">the Predefined Filters
- section</a> for more explanation on each:</dt>
-
- <dd>
- <p><a name="FILTER-JS-ANNOYANCES" id=
- "FILTER-JS-ANNOYANCES"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{js-annoyances} # Get rid of particularly annoying JavaScript abuse.
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-JS-EVENTS" id="FILTER-JS-EVENTS"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{js-events} # Kill JavaScript event bindings and timers (Radically destructive! Only for extra nasty sites).
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-HTML-ANNOYANCES" id=
- "FILTER-HTML-ANNOYANCES"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{html-annoyances} # Get rid of particularly annoying HTML abuse.
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-CONTENT-COOKIES" id=
- "FILTER-CONTENT-COOKIES"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{content-cookies} # Kill cookies that come in the HTML or JS content.
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-REFRESH-TAGS" id=
- "FILTER-REFRESH-TAGS"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{refresh-tags} # Kill automatic refresh tags if refresh time is larger than 9 seconds.
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-UNSOLICITED-POPUPS" id=
- "FILTER-UNSOLICITED-POPUPS"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{unsolicited-popups} # Disable only unsolicited pop-up windows.
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-ALL-POPUPS" id="FILTER-ALL-POPUPS"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{all-popups} # Kill all popups in JavaScript and HTML.
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-IMG-REORDER" id=
- "FILTER-IMG-REORDER"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{img-reorder} # Reorder attributes in <img> tags to make the banners-by-* filters more effective.
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-BANNERS-BY-SIZE" id=
- "FILTER-BANNERS-BY-SIZE"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{banners-by-size} # Kill banners by size.
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-BANNERS-BY-LINK" id=
- "FILTER-BANNERS-BY-LINK"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{banners-by-link} # Kill banners by their links to known clicktrackers.
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-WEBBUGS" id="FILTER-WEBBUGS"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{webbugs} # Squish WebBugs (1x1 invisible GIFs used for user tracking).
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-TINY-TEXTFORMS" id=
- "FILTER-TINY-TEXTFORMS"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{tiny-textforms} # Extend those tiny textareas up to 40x80 and kill the hard wrap.
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-JUMPING-WINDOWS" id=
- "FILTER-JUMPING-WINDOWS"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{jumping-windows} # Prevent windows from resizing and moving themselves.
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-FRAMESET-BORDERS" id=
- "FILTER-FRAMESET-BORDERS"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{frameset-borders} # Give frames a border and make them resizable.
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-IFRAMES" id="FILTER-IFRAMES"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{iframes} # Removes all detected iframes. Should only be enabled for individual sites.
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-DEMORONIZER" id=
- "FILTER-DEMORONIZER"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{demoronizer} # Fix MS's non-standard use of standard charsets.
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-SHOCKWAVE-FLASH" id=
- "FILTER-SHOCKWAVE-FLASH"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{shockwave-flash} # Kill embedded Shockwave Flash objects.
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-QUICKTIME-KIOSKMODE" id=
- "FILTER-QUICKTIME-KIOSKMODE"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{quicktime-kioskmode} # Make Quicktime movies saveable.
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-FUN" id="FILTER-FUN"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{fun} # Text replacements for subversive browsing fun!
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-CRUDE-PARENTAL" id=
- "FILTER-CRUDE-PARENTAL"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{crude-parental} # Crude parental filtering. Note that this filter doesn't work reliably.
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-IE-EXPLOITS" id=
- "FILTER-IE-EXPLOITS"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{ie-exploits} # Disable some known Internet Explorer bug exploits.
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-SITE-SPECIFICS" id=
- "FILTER-SITE-SPECIFICS"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{site-specifics} # Cure for site-specific problems. Don't apply generally!
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-NO-PING" id="FILTER-NO-PING"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{no-ping} # Removes non-standard ping attributes in <a> and <area> tags.
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-GOOGLE" id="FILTER-GOOGLE"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{google} # CSS-based block for Google text ads. Also removes a width limitation and the toolbar advertisement.
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-YAHOO" id="FILTER-YAHOO"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{yahoo} # CSS-based block for Yahoo text ads. Also removes a width limitation.
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-MSN" id="FILTER-MSN"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{msn} # CSS-based block for MSN text ads. Also removes tracking URLs and a width limitation.
-</pre>
- </td>
- </tr>
- </table>
-
- <p><a name="FILTER-BLOGSPOT" id="FILTER-BLOGSPOT"></a></p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+filter{blogspot} # Cleans up some Blogspot blogs. Read the fine print before using this.
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="FORCE-TEXT-MODE" id=
- "FORCE-TEXT-MODE">8.5.16. force-text-mode</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Force <span class="APPLICATION">Privoxy</span> to treat a
- document as if it was in some kind of <span class=
- "emphasis"><i class="EMPHASIS">text</i></span> format.</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Declares a document as text, even if the <span class=
- "QUOTE">"Content-Type:"</span> isn't detected as such.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Boolean.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>N/A</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>As explained <tt class="LITERAL"><a href=
- "actions-file.html#FILTER">above</a></tt>, <span class=
- "APPLICATION">Privoxy</span> tries to only filter files that
- are in some kind of text format. The same restrictions apply to
- <tt class="LITERAL"><a href=
- "actions-file.html#CONTENT-TYPE-OVERWRITE">content-type-overwrite</a></tt>.
- <tt class="LITERAL">force-text-mode</tt> declares a document as
- text, without looking at the <span class=
- "QUOTE">"Content-Type:"</span> first.</p>
-
- <div class="WARNING">
- <table class="WARNING" border="1" width="90%">
- <tr>
- <td align="center"><b>Warning</b></td>
- </tr>
-
- <tr>
- <td align="left">
- <p>Think twice before activating this action. Filtering
- binary data with regular expressions can cause file
- damage.</p>
- </td>
- </tr>
- </table>
- </div>
- </dd>
-
- <dt>Example usage:</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+force-text-mode
-
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="FORWARD-OVERRIDE" id=
- "FORWARD-OVERRIDE">8.5.17. forward-override</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Change the forwarding settings based on User-Agent or
- request origin</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Overrules the forward directives in the configuration
- file.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Multi-value.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <ul>
- <li>
- <p><span class="QUOTE">"forward ."</span> to use a direct
- connection without any additional proxies.</p>
- </li>
-
- <li>
- <p><span class="QUOTE">"forward 127.0.0.1:8123"</span> to
- use the HTTP proxy listening at 127.0.0.1 port 8123.</p>
- </li>
-
- <li>
- <p><span class="QUOTE">"forward-socks4a 127.0.0.1:9050
- ."</span> to use the socks4a proxy listening at 127.0.0.1
- port 9050. Replace <span class=
- "QUOTE">"forward-socks4a"</span> with <span class=
- "QUOTE">"forward-socks4"</span> to use a socks4 connection
- (with local DNS resolution) instead, use <span class=
- "QUOTE">"forward-socks5"</span> for socks5 connections
- (with remote DNS resolution).</p>
- </li>
-
- <li>
- <p><span class="QUOTE">"forward-socks4a 127.0.0.1:9050
- proxy.example.org:8000"</span> to use the socks4a proxy
- listening at 127.0.0.1 port 9050 to reach the HTTP proxy
- listening at proxy.example.org port 8000. Replace
- <span class="QUOTE">"forward-socks4a"</span> with
- <span class="QUOTE">"forward-socks4"</span> to use a socks4
- connection (with local DNS resolution) instead, use
- <span class="QUOTE">"forward-socks5"</span> for socks5
- connections (with remote DNS resolution).</p>
- </li>
- </ul>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>This action takes parameters similar to the <a href=
- "config.html#FORWARDING">forward</a> directives in the
- configuration file, but without the URL pattern. It can be used
- as replacement, but normally it's only used in cases where
- matching based on the request URL isn't sufficient.</p>
-
- <div class="WARNING">
- <table class="WARNING" border="1" width="90%">
- <tr>
- <td align="center"><b>Warning</b></td>
- </tr>
-
- <tr>
- <td align="left">
- <p>Please read the description for the <a href=
- "config.html#FORWARDING">forward</a> directives before
- using this action. Forwarding to the wrong people will
- reduce your privacy and increase the chances of
- man-in-the-middle attacks.</p>
-
- <p>If the ports are missing or invalid, default values
- will be used. This might change in the future and you
- shouldn't rely on it. Otherwise incorrect syntax causes
- Privoxy to exit.</p>
-
- <p>Use the <a href=
- "http://config.privoxy.org/show-url-info" target=
- "_top">show-url-info CGI page</a> to verify that your
- forward settings do what you thought the do.</p>
- </td>
- </tr>
- </table>
- </div>
- </dd>
-
- <dt>Example usage:</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Always use direct connections for requests previously tagged as
-# <span class="QUOTE">"User-Agent: fetch libfetch/2.0"</span> and make sure
-# resuming downloads continues to work.
-# This way you can continue to use Tor for your normal browsing,
-# without overloading the Tor network with your FreeBSD ports updates
-# or downloads of bigger files like ISOs.
-# Note that HTTP headers are easy to fake and therefore their
-# values are as (un)trustworthy as your clients and users.
-{+forward-override{forward .} \
- -hide-if-modified-since \
- -overwrite-last-modified \
-}
-TAG:^User-Agent: fetch libfetch/2\.0$
-
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="HANDLE-AS-EMPTY-DOCUMENT" id=
- "HANDLE-AS-EMPTY-DOCUMENT">8.5.18. handle-as-empty-document</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Mark URLs that should be replaced by empty documents
- <span class="emphasis"><i class="EMPHASIS">if they get
- blocked</i></span></p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>This action alone doesn't do anything noticeable. It just
- marks URLs. If the <tt class="LITERAL"><a href=
- "actions-file.html#BLOCK">block</a></tt> action <span class=
- "emphasis"><i class="EMPHASIS">also applies</i></span>, the
- presence or absence of this mark decides whether an HTML
- <span class="QUOTE">"BLOCKED"</span> page, or an empty document
- will be sent to the client as a substitute for the blocked
- content. The <span class="emphasis"><i class=
- "EMPHASIS">empty</i></span> document isn't literally empty, but
- actually contains a single space.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Boolean.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>N/A</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>Some browsers complain about syntax errors if JavaScript
- documents are blocked with <span class=
- "APPLICATION">Privoxy's</span> default HTML page; this option
- can be used to silence them. And of course this action can also
- be used to eliminate the <span class=
- "APPLICATION">Privoxy</span> BLOCKED message in frames.</p>
-
- <p>The content type for the empty document can be specified
- with <tt class="LITERAL"><a href=
- "actions-file.html#CONTENT-TYPE-OVERWRITE">content-type-overwrite{}</a></tt>,
- but usually this isn't necessary.</p>
- </dd>
-
- <dt>Example usage:</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Block all documents on example.org that end with ".js",
-# but send an empty document instead of the usual HTML message.
-{+block{Blocked JavaScript} +handle-as-empty-document}
-example.org/.*\.js$
-
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="HANDLE-AS-IMAGE" id=
- "HANDLE-AS-IMAGE">8.5.19. handle-as-image</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Mark URLs as belonging to images (so they'll be replaced by
- images <span class="emphasis"><i class="EMPHASIS">if they do
- get blocked</i></span>, rather than HTML pages)</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>This action alone doesn't do anything noticeable. It just
- marks URLs as images. If the <tt class="LITERAL"><a href=
- "actions-file.html#BLOCK">block</a></tt> action <span class=
- "emphasis"><i class="EMPHASIS">also applies</i></span>, the
- presence or absence of this mark decides whether an HTML
- <span class="QUOTE">"blocked"</span> page, or a replacement
- image (as determined by the <tt class="LITERAL"><a href=
- "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker</a></tt>
- action) will be sent to the client as a substitute for the
- blocked content.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Boolean.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>N/A</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>The below generic example section is actually part of
- <tt class="FILENAME">default.action</tt>. It marks all URLs
- with well-known image file name extensions as images and should
- be left intact.</p>
-
- <p>Users will probably only want to use the handle-as-image
- action in conjunction with <tt class="LITERAL"><a href=
- "actions-file.html#BLOCK">block</a></tt>, to block sources of
- banners, whose URLs don't reflect the file type, like in the
- second example section.</p>
-
- <p>Note that you cannot treat HTML pages as images in most
- cases. For instance, (in-line) ad frames require an HTML page
- to be sent, or they won't display properly. Forcing <tt class=
- "LITERAL">handle-as-image</tt> in this situation will not
- replace the ad frame with an image, but lead to error
- messages.</p>
- </dd>
-
- <dt>Example usage (sections):</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Generic image extensions:
-#
-{+handle-as-image}
-/.*\.(gif|jpg|jpeg|png|bmp|ico)$
-
-# These don't look like images, but they're banners and should be
-# blocked as images:
-#
-{+block{Nasty banners.} +handle-as-image}
-nasty-banner-server.example.com/junk.cgi\?output=trash
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="HIDE-ACCEPT-LANGUAGE" id=
- "HIDE-ACCEPT-LANGUAGE">8.5.20. hide-accept-language</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Pretend to use different language settings.</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Deletes or replaces the <span class=
- "QUOTE">"Accept-Language:"</span> HTTP header in client
- requests.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Parameterized.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>Keyword: <span class="QUOTE">"block"</span>, or any user
- defined value.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>Faking the browser's language settings can be useful to make
- a foreign User-Agent set with <tt class="LITERAL"><a href=
- "actions-file.html#HIDE-USER-AGENT">hide-user-agent</a></tt>
- more believable.</p>
-
- <p>However some sites with content in different languages check
- the <span class="QUOTE">"Accept-Language:"</span> to decide
- which one to take by default. Sometimes it isn't possible to
- later switch to another language without changing the
- <span class="QUOTE">"Accept-Language:"</span> header first.</p>
-
- <p>Therefore it's a good idea to either only change the
- <span class="QUOTE">"Accept-Language:"</span> header to
- languages you understand, or to languages that aren't wide
- spread.</p>
-
- <p>Before setting the <span class=
- "QUOTE">"Accept-Language:"</span> header to a rare language,
- you should consider that it helps to make your requests unique
- and thus easier to trace. If you don't plan to change this
- header frequently, you should stick to a common language.</p>
- </dd>
-
- <dt>Example usage (section):</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Pretend to use Canadian language settings.
-{+hide-accept-language{en-ca} \
-+hide-user-agent{Mozilla/5.0 (X11; U; OpenBSD i386; en-CA; rv:1.8.0.4) Gecko/20060628 Firefox/1.5.0.4} \
-}
-/
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="HIDE-CONTENT-DISPOSITION" id=
- "HIDE-CONTENT-DISPOSITION">8.5.21. hide-content-disposition</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Prevent download menus for content you prefer to view inside
- the browser.</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Deletes or replaces the <span class=
- "QUOTE">"Content-Disposition:"</span> HTTP header set by some
- servers.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Parameterized.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>Keyword: <span class="QUOTE">"block"</span>, or any user
- defined value.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>Some servers set the <span class=
- "QUOTE">"Content-Disposition:"</span> HTTP header for documents
- they assume you want to save locally before viewing them. The
- <span class="QUOTE">"Content-Disposition:"</span> header
- contains the file name the browser is supposed to use by
- default.</p>
-
- <p>In most browsers that understand this header, it makes it
- impossible to <span class="emphasis"><i class="EMPHASIS">just
- view</i></span> the document, without downloading it first,
- even if it's just a simple text file or an image.</p>
-
- <p>Removing the <span class=
- "QUOTE">"Content-Disposition:"</span> header helps to prevent
- this annoyance, but some browsers additionally check the
- <span class="QUOTE">"Content-Type:"</span> header, before they
- decide if they can display a document without saving it first.
- In these cases, you have to change this header as well, before
- the browser stops displaying download menus.</p>
-
- <p>It is also possible to change the server's file name
- suggestion to another one, but in most cases it isn't worth the
- time to set it up.</p>
-
- <p>This action will probably be removed in the future, use
- server-header filters instead.</p>
- </dd>
-
- <dt>Example usage:</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Disarm the download link in Sourceforge's patch tracker
-{ -filter \
- +content-type-overwrite{text/plain}\
- +hide-content-disposition{block} }
- .sourceforge.net/tracker/download\.php
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="HIDE-IF-MODIFIED-SINCE" id=
- "HIDE-IF-MODIFIED-SINCE">8.5.22. hide-if-modified-since</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Prevent yet another way to track the user's steps between
- sessions.</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Deletes the <span class="QUOTE">"If-Modified-Since:"</span>
- HTTP client header or modifies its value.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Parameterized.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>Keyword: <span class="QUOTE">"block"</span>, or a user
- defined value that specifies a range of hours.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>Removing this header is useful for filter testing, where you
- want to force a real reload instead of getting status code
- <span class="QUOTE">"304"</span>, which would cause the browser
- to use a cached copy of the page.</p>
-
- <p>Instead of removing the header, <tt class=
- "LITERAL">hide-if-modified-since</tt> can also add or subtract
- a random amount of time to/from the header's value. You specify
- a range of minutes where the random factor should be chosen
- from and <span class="APPLICATION">Privoxy</span> does the
- rest. A negative value means subtracting, a positive value
- adding.</p>
-
- <p>Randomizing the value of the <span class=
- "QUOTE">"If-Modified-Since:"</span> makes it less likely that
- the server can use the time as a cookie replacement, but you
- will run into caching problems if the random range is too
- high.</p>
-
- <p>It is a good idea to only use a small negative value and let
- <tt class="LITERAL"><a href=
- "actions-file.html#OVERWRITE-LAST-MODIFIED">overwrite-last-modified</a></tt>
- handle the greater changes.</p>
-
- <p>It is also recommended to use this action together with
- <tt class="LITERAL"><a href=
- "actions-file.html#CRUNCH-IF-NONE-MATCH">crunch-if-none-match</a></tt>,
- otherwise it's more or less pointless.</p>
- </dd>
-
- <dt>Example usage (section):</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Let the browser revalidate but make tracking based on the time less likely.
-{+hide-if-modified-since{-60} \
- +overwrite-last-modified{randomize} \
- +crunch-if-none-match}
-/
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="HIDE-FROM-HEADER" id=
- "HIDE-FROM-HEADER">8.5.23. hide-from-header</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Keep your (old and ill) browser from telling web servers
- your email address</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Deletes any existing <span class="QUOTE">"From:"</span> HTTP
- header, or replaces it with the specified string.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Parameterized.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>Keyword: <span class="QUOTE">"block"</span>, or any user
- defined value.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>The keyword <span class="QUOTE">"block"</span> will
- completely remove the header (not to be confused with the
- <tt class="LITERAL"><a href=
- "actions-file.html#BLOCK">block</a></tt> action).</p>
-
- <p>Alternately, you can specify any value you prefer to be sent
- to the web server. If you do, it is a matter of fairness not to
- use any address that is actually used by a real person.</p>
-
- <p>This action is rarely needed, as modern web browsers don't
- send <span class="QUOTE">"From:"</span> headers anymore.</p>
- </dd>
-
- <dt>Example usage:</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+hide-from-header{block}
-</pre>
- </td>
- </tr>
- </table>or
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+hide-from-header{spam-me-senseless@sittingduck.example.com}
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="HIDE-REFERRER" id="HIDE-REFERRER">8.5.24.
- hide-referrer</a></h4><a name="HIDE-REFERER" id="HIDE-REFERER"></a>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Conceal which link you followed to get to a particular
- site</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Deletes the <span class="QUOTE">"Referer:"</span> (sic) HTTP
- header from the client request, or replaces it with a forged
- one.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Parameterized.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <ul>
- <li>
- <p><span class="QUOTE">"conditional-block"</span> to delete
- the header completely if the host has changed.</p>
- </li>
-
- <li>
- <p><span class="QUOTE">"conditional-forge"</span> to forge
- the header if the host has changed.</p>
- </li>
-
- <li>
- <p><span class="QUOTE">"block"</span> to delete the header
- unconditionally.</p>
- </li>
-
- <li>
- <p><span class="QUOTE">"forge"</span> to pretend to be
- coming from the homepage of the server we are talking
- to.</p>
- </li>
-
- <li>
- <p>Any other string to set a user defined referrer.</p>
- </li>
- </ul>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p><tt class="LITERAL">conditional-block</tt> is the only
- parameter, that isn't easily detected in the server's log file.
- If it blocks the referrer, the request will look like the
- visitor used a bookmark or typed in the address directly.</p>
-
- <p>Leaving the referrer unmodified for requests on the same
- host allows the server owner to see the visitor's <span class=
- "QUOTE">"click path"</span>, but in most cases she could also
- get that information by comparing other parts of the log file:
- for example the User-Agent if it isn't a very common one, or
- the user's IP address if it doesn't change between different
- requests.</p>
-
- <p>Always blocking the referrer, or using a custom one, can
- lead to failures on servers that check the referrer before they
- answer any requests, in an attempt to prevent their content
- from being embedded or linked to elsewhere.</p>
-
- <p>Both <tt class="LITERAL">conditional-block</tt> and
- <tt class="LITERAL">forge</tt> will work with referrer checks,
- as long as content and valid referring page are on the same
- host. Most of the time that's the case.</p>
-
- <p><tt class="LITERAL">hide-referer</tt> is an alternate
- spelling of <tt class="LITERAL">hide-referrer</tt> and the two
- can be can be freely substituted with each other. (<span class=
- "QUOTE">"referrer"</span> is the correct English spelling,
- however the HTTP specification has a bug - it requires it to be
- spelled as <span class="QUOTE">"referer"</span>.)</p>
- </dd>
-
- <dt>Example usage:</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+hide-referrer{forge}
-</pre>
- </td>
- </tr>
- </table>or
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+hide-referrer{http://www.yahoo.com/}
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="HIDE-USER-AGENT" id=
- "HIDE-USER-AGENT">8.5.25. hide-user-agent</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Try to conceal your type of browser and client operating
- system</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Replaces the value of the <span class=
- "QUOTE">"User-Agent:"</span> HTTP header in client requests
- with the specified value.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Parameterized.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>Any user-defined string.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <div class="WARNING">
- <table class="WARNING" border="1" width="90%">
- <tr>
- <td align="center"><b>Warning</b></td>
- </tr>
-
- <tr>
- <td align="left">
- <p>This can lead to problems on web sites that depend
- on looking at this header in order to customize their
- content for different browsers (which, by the way, is
- <span class="emphasis"><i class=
- "EMPHASIS">NOT</i></span> the right thing to do: good
- web sites work browser-independently).</p>
- </td>
- </tr>
- </table>
- </div>
-
- <p>Using this action in multi-user setups or wherever different
- types of browsers will access the same <span class=
- "APPLICATION">Privoxy</span> is <span class=
- "emphasis"><i class="EMPHASIS">not recommended</i></span>. In
- single-user, single-browser setups, you might use it to delete
- your OS version information from the headers, because it is an
- invitation to exploit known bugs for your OS. It is also
- occasionally useful to forge this in order to access sites that
- won't let you in otherwise (though there may be a good reason
- in some cases).</p>
-
- <p>More information on known user-agent strings can be found at
- <a href="http://www.user-agents.org/" target=
- "_top">http://www.user-agents.org/</a> and <a href=
- "http://en.wikipedia.org/wiki/User_agent" target=
- "_top">http://en.wikipedia.org/wiki/User_agent</a>.</p>
- </dd>
-
- <dt>Example usage:</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+hide-user-agent{Netscape 6.1 (X11; I; Linux 2.4.18 i686)}
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="LIMIT-CONNECT" id="LIMIT-CONNECT">8.5.26.
- limit-connect</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Prevent abuse of <span class="APPLICATION">Privoxy</span> as
- a TCP proxy relay or disable SSL for untrusted sites</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Specifies to which ports HTTP CONNECT requests are
- allowable.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Parameterized.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>A comma-separated list of ports or port ranges (the latter
- using dashes, with the minimum defaulting to 0 and the maximum
- to 65K).</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>By default, i.e. if no <tt class=
- "LITERAL">limit-connect</tt> action applies, <span class=
- "APPLICATION">Privoxy</span> allows HTTP CONNECT requests to
- all ports. Use <tt class="LITERAL">limit-connect</tt> if
- fine-grained control is desired for some or all
- destinations.</p>
-
- <p>The CONNECT methods exists in HTTP to allow access to secure
- websites (<span class="QUOTE">"https://"</span> URLs) through
- proxies. It works very simply: the proxy connects to the server
- on the specified port, and then short-circuits its connections
- to the client and to the remote server. This means
- CONNECT-enabled proxies can be used as TCP relays very
- easily.</p>
-
- <p><span class="APPLICATION">Privoxy</span> relays HTTPS
- traffic without seeing the decoded content. Websites can
- leverage this limitation to circumvent <span class=
- "APPLICATION">Privoxy</span>'s filters. By specifying an
- invalid port range you can disable HTTPS entirely.</p>
- </dd>
-
- <dt>Example usages:</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+limit-connect{443} # Port 443 is OK.
-+limit-connect{80,443} # Ports 80 and 443 are OK.
-+limit-connect{-3, 7, 20-100, 500-} # Ports less than 3, 7, 20 to 100 and above 500 are OK.
-+limit-connect{-} # All ports are OK
-+limit-connect{,} # No HTTPS/SSL traffic is allowed
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="LIMIT-COOKIE-LIFETIME" id=
- "LIMIT-COOKIE-LIFETIME">8.5.27. limit-cookie-lifetime</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Limit the lifetime of HTTP cookies to a couple of minutes or
- hours.</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Overwrites the expires field in Set-Cookie server headers if
- it's above the specified limit.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Parameterized.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>The lifetime limit in minutes, or 0.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>This action reduces the lifetime of HTTP cookies coming from
- the server to the specified number of minutes, starting from
- the time the cookie passes Privoxy.</p>
-
- <p>Cookies with a lifetime below the limit are not modified.
- The lifetime of session cookies is set to the specified
- limit.</p>
-
- <p>The effect of this action depends on the server.</p>
-
- <p>In case of servers which refresh their cookies with each
- response (or at least frequently), the lifetime limit set by
- this action is updated as well. Thus, a session associated with
- the cookie continues to work with this action enabled, as long
- as a new request is made before the last limit set is
- reached.</p>
-
- <p>However, some servers send their cookies once, with a
- lifetime of several years (the year 2037 is a popular choice),
- and do not refresh them until a certain event in the future,
- for example the user logging out. In this case this action may
- limit the absolute lifetime of the session, even if requests
- are made frequently.</p>
-
- <p>If the parameter is <span class="QUOTE">"0"</span>, this
- action behaves like <tt class="LITERAL"><a href=
- "actions-file.html#SESSION-COOKIES-ONLY">session-cookies-only</a></tt>.</p>
- </dd>
-
- <dt>Example usages:</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+limit-cookie-lifetime{60}
-
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="PREVENT-COMPRESSION" id=
- "PREVENT-COMPRESSION">8.5.28. prevent-compression</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Ensure that servers send the content uncompressed, so it can
- be passed through <tt class="LITERAL"><a href=
- "actions-file.html#FILTER">filter</a></tt>s.</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Removes the Accept-Encoding header which can be used to ask
- for compressed transfer.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Boolean.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>N/A</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>More and more websites send their content compressed by
- default, which is generally a good idea and saves bandwidth.
- But the <tt class="LITERAL"><a href=
- "actions-file.html#FILTER">filter</a></tt> and <tt class=
- "LITERAL"><a href=
- "actions-file.html#DEANIMATE-GIFS">deanimate-gifs</a></tt>
- actions need access to the uncompressed data.</p>
-
- <p>When compiled with zlib support (available since
- <span class="APPLICATION">Privoxy</span> 3.0.7), content that
- should be filtered is decompressed on-the-fly and you don't
- have to worry about this action. If you are using an older
- <span class="APPLICATION">Privoxy</span> version, or one that
- hasn't been compiled with zlib support, this action can be used
- to convince the server to send the content uncompressed.</p>
-
- <p>Most text-based instances compress very well, the size is
- seldom decreased by less than 50%, for markup-heavy instances
- like news feeds saving more than 90% of the original size isn't
- unusual.</p>
-
- <p>Not using compression will therefore slow down the transfer,
- and you should only enable this action if you really need it.
- As of <span class="APPLICATION">Privoxy</span> 3.0.7 it's
- disabled in all predefined action settings.</p>
-
- <p>Note that some (rare) ill-configured sites don't handle
- requests for uncompressed documents correctly. Broken PHP
- applications tend to send an empty document body, some IIS
- versions only send the beginning of the content. If you enable
- <tt class="LITERAL">prevent-compression</tt> per default, you
- might want to add exceptions for those sites. See the example
- for how to do that.</p>
- </dd>
-
- <dt>Example usage (sections):</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Selectively turn off compression, and enable a filter
-#
-{ +filter{tiny-textforms} +prevent-compression }
-# Match only these sites
- .google.
- sourceforge.net
- sf.net
-
-# Or instead, we could set a universal default:
-#
-{ +prevent-compression }
- / # Match all sites
-
-# Then maybe make exceptions for broken sites:
-#
-{ -prevent-compression }
-.compusa.com/
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="OVERWRITE-LAST-MODIFIED" id=
- "OVERWRITE-LAST-MODIFIED">8.5.29. overwrite-last-modified</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Prevent yet another way to track the user's steps between
- sessions.</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Deletes the <span class="QUOTE">"Last-Modified:"</span> HTTP
- server header or modifies its value.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Parameterized.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>One of the keywords: <span class="QUOTE">"block"</span>,
- <span class="QUOTE">"reset-to-request-time"</span> and
- <span class="QUOTE">"randomize"</span></p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>Removing the <span class="QUOTE">"Last-Modified:"</span>
- header is useful for filter testing, where you want to force a
- real reload instead of getting status code <span class=
- "QUOTE">"304"</span>, which would cause the browser to reuse
- the old version of the page.</p>
-
- <p>The <span class="QUOTE">"randomize"</span> option overwrites
- the value of the <span class="QUOTE">"Last-Modified:"</span>
- header with a randomly chosen time between the original value
- and the current time. In theory the server could send each
- document with a different <span class=
- "QUOTE">"Last-Modified:"</span> header to track visits without
- using cookies. <span class="QUOTE">"Randomize"</span> makes it
- impossible and the browser can still revalidate cached
- documents.</p>
-
- <p><span class="QUOTE">"reset-to-request-time"</span>
- overwrites the value of the <span class=
- "QUOTE">"Last-Modified:"</span> header with the current time.
- You could use this option together with <tt class=
- "LITERAL"><a href=
- "actions-file.html#HIDE-IF-MODIFIED-SINCE">hide-if-modified-since</a></tt>
- to further customize your random range.</p>
-
- <p>The preferred parameter here is <span class=
- "QUOTE">"randomize"</span>. It is safe to use, as long as the
- time settings are more or less correct. If the server sets the
- <span class="QUOTE">"Last-Modified:"</span> header to the time
- of the request, the random range becomes zero and the value
- stays the same. Therefore you should later randomize it a
- second time with <tt class="LITERAL"><a href=
- "actions-file.html#HIDE-IF-MODIFIED-SINCE">hided-if-modified-since</a></tt>,
- just to be sure.</p>
-
- <p>It is also recommended to use this action together with
- <tt class="LITERAL"><a href=
- "actions-file.html#CRUNCH-IF-NONE-MATCH">crunch-if-none-match</a></tt>.</p>
- </dd>
-
- <dt>Example usage:</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Let the browser revalidate without being tracked across sessions
-{ +hide-if-modified-since{-60} \
- +overwrite-last-modified{randomize} \
- +crunch-if-none-match}
-/
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="REDIRECT" id="REDIRECT">8.5.30.
- redirect</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Redirect requests to other sites.</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Convinces the browser that the requested document has been
- moved to another location and the browser should get it from
- there.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Parameterized</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>An absolute URL or a single pcrs command.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>Requests to which this action applies are answered with a
- HTTP redirect to URLs of your choosing. The new URL is either
- provided as parameter, or derived by applying a single pcrs
- command to the original URL.</p>
-
- <p>The syntax for pcrs commands is documented in the <a href=
- "filter-file.html">filter file</a> section.</p>
-
- <p>This action will be ignored if you use it together with
- <tt class="LITERAL"><a href=
- "actions-file.html#BLOCK">block</a></tt>. It can be combined
- with <tt class="LITERAL"><a href=
- "actions-file.html#FAST-REDIRECTS">fast-redirects{check-decoded-url}</a></tt>
- to redirect to a decoded version of a rewritten URL.</p>
-
- <p>Use this action carefully, make sure not to create
- redirection loops and be aware that using your own redirects
- might make it possible to fingerprint your requests.</p>
-
- <p>In case of problems with your redirects, or simply to watch
- them working, enable <a href="config.html#DEBUG">debug
- 128</a>.</p>
- </dd>
-
- <dt>Example usages:</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Replace example.com's style sheet with another one
-{ +redirect{http://localhost/css-replacements/example.com.css} }
- example.com/stylesheet\.css
-
-# Create a short, easy to remember nickname for a favorite site
-# (relies on the browser accept and forward invalid URLs to <span class=
-"APPLICATION">Privoxy</span>)
-{ +redirect{http://www.privoxy.org/user-manual/actions-file.html} }
- a
-
-# Always use the expanded view for Undeadly.org articles
-# (Note the $ at the end of the URL pattern to make sure
-# the request for the rewritten URL isn't redirected as well)
-{+redirect{s@$@&mode=expanded@}}
-undeadly.org/cgi\?action=article&sid=\d*$
-
-# Redirect Google search requests to MSN
-{+redirect{s@^http://[^/]*/search\?q=([^&]*).*@http://search.msn.com/results.aspx?q=$1@}}
-.google.com/search
-
-# Redirect MSN search requests to Yahoo
-{+redirect{s@^http://[^/]*/results\.aspx\?q=([^&]*).*@http://search.yahoo.com/search?p=$1@}}
-search.msn.com//results\.aspx\?q=
-
-# Redirect remote requests for this manual
-# to the local version delivered by Privoxy
-{+redirect{s@^http://www@http://config@}}
-www.privoxy.org/user-manual/
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="SERVER-HEADER-FILTER" id=
- "SERVER-HEADER-FILTER">8.5.31. server-header-filter</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Rewrite or remove single server headers.</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>All server headers to which this action applies are filtered
- on-the-fly through the specified regular expression based
- substitutions.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Parameterized.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>The name of a server-header filter, as defined in one of the
- <a href="filter-file.html">filter files</a>.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>Server-header filters are applied to each header on its own,
- not to all at once. This makes it easier to diagnose problems,
- but on the downside you can't write filters that only change
- header x if header y's value is z. You can do that by using
- tags though.</p>
-
- <p>Server-header filters are executed after the other header
- actions have finished and use their output as input.</p>
-
- <p>Please refer to the <a href="filter-file.html">filter file
- chapter</a> to learn which server-header filters are available
- by default, and how to create your own.</p>
- </dd>
-
- <dt>Example usage (section):</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-{+server-header-filter{html-to-xml}}
-example.org/xml-instance-that-is-delivered-as-html
-
-{+server-header-filter{xml-to-html}}
-example.org/instance-that-is-delivered-as-xml-but-is-not
-
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="SERVER-HEADER-TAGGER" id=
- "SERVER-HEADER-TAGGER">8.5.32. server-header-tagger</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Enable or disable filters based on the Content-Type
- header.</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Server headers to which this action applies are filtered
- on-the-fly through the specified regular expression based
- substitutions, the result is used as tag.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Parameterized.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>The name of a server-header tagger, as defined in one of the
- <a href="filter-file.html">filter files</a>.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>Server-header taggers are applied to each header on its own,
- and as the header isn't modified, each tagger <span class=
- "QUOTE">"sees"</span> the original.</p>
-
- <p>Server-header taggers are executed before all other header
- actions that modify server headers. Their tags can be used to
- control all of the other server-header actions, the content
- filters and the crunch actions (<a href=
- "actions-file.html#REDIRECT">redirect</a> and <a href=
- "actions-file.html#BLOCK">block</a>).</p>
-
- <p>Obviously crunching based on tags created by server-header
- taggers doesn't prevent the request from showing up in the
- server's log file.</p>
- </dd>
-
- <dt>Example usage (section):</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Tag every request with the content type declared by the server
-{+server-header-tagger{content-type}}
-/
-
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="SESSION-COOKIES-ONLY" id=
- "SESSION-COOKIES-ONLY">8.5.33. session-cookies-only</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Allow only temporary <span class="QUOTE">"session"</span>
- cookies (for the current browser session <span class=
- "emphasis"><i class="EMPHASIS">only</i></span>).</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>Deletes the <span class="QUOTE">"expires"</span> field from
- <span class="QUOTE">"Set-Cookie:"</span> server headers. Most
- browsers will not store such cookies permanently and forget
- them in between sessions.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Boolean.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <p>N/A</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>This is less strict than <tt class="LITERAL"><a href=
- "actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a></tt>
- / <tt class="LITERAL"><a href=
- "actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a></tt>
- and allows you to browse websites that insist or rely on
- setting cookies, without compromising your privacy too
- badly.</p>
-
- <p>Most browsers will not permanently store cookies that have
- been processed by <tt class="LITERAL">session-cookies-only</tt>
- and will forget about them between sessions. This makes
- profiling cookies useless, but won't break sites which require
- cookies so that you can log in for transactions. This is
- generally turned on for all sites, and is the recommended
- setting.</p>
-
- <p>It makes <span class="emphasis"><i class="EMPHASIS">no sense
- at all</i></span> to use <tt class=
- "LITERAL">session-cookies-only</tt> together with <tt class=
- "LITERAL"><a href=
- "actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a></tt>
- or <tt class="LITERAL"><a href=
- "actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a></tt>.
- If you do, cookies will be plainly killed.</p>
-
- <p>Note that it is up to the browser how it handles such
- cookies without an <span class="QUOTE">"expires"</span> field.
- If you use an exotic browser, you might want to try it out to
- be sure.</p>
-
- <p>This setting also has no effect on cookies that may have
- been stored previously by the browser before starting
- <span class="APPLICATION">Privoxy</span>. These would have to
- be removed manually.</p>
-
- <p><span class="APPLICATION">Privoxy</span> also uses the
- <a href=
- "actions-file.html#FILTER-CONTENT-COOKIES">content-cookies
- filter</a> to block some types of cookies. Content cookies are
- not effected by <tt class=
- "LITERAL">session-cookies-only</tt>.</p>
- </dd>
-
- <dt>Example usage:</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+session-cookies-only
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="SET-IMAGE-BLOCKER" id=
- "SET-IMAGE-BLOCKER">8.5.34. set-image-blocker</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Typical use:</dt>
-
- <dd>
- <p>Choose the replacement for blocked images</p>
- </dd>
-
- <dt>Effect:</dt>
-
- <dd>
- <p>This action alone doesn't do anything noticeable. If
- <span class="emphasis"><i class="EMPHASIS">both</i></span>
- <tt class="LITERAL"><a href=
- "actions-file.html#BLOCK">block</a></tt> <span class=
- "emphasis"><i class="EMPHASIS">and</i></span> <tt class=
- "LITERAL"><a href=
- "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></tt>
- <span class="emphasis"><i class="EMPHASIS">also</i></span>
- apply, i.e. if the request is to be blocked as an image,
- <span class="emphasis"><i class="EMPHASIS">then</i></span> the
- parameter of this action decides what will be sent as a
- replacement.</p>
- </dd>
-
- <dt>Type:</dt>
-
- <dd>
- <p>Parameterized.</p>
- </dd>
-
- <dt>Parameter:</dt>
-
- <dd>
- <ul>
- <li>
- <p><span class="QUOTE">"pattern"</span> to send a built-in
- checkerboard pattern image. The image is visually decent,
- scales very well, and makes it obvious where banners were
- busted.</p>
- </li>
-
- <li>
- <p><span class="QUOTE">"blank"</span> to send a built-in
- transparent image. This makes banners disappear completely,
- but makes it hard to detect where <span class=
- "APPLICATION">Privoxy</span> has blocked images on a given
- page and complicates troubleshooting if <span class=
- "APPLICATION">Privoxy</span> has blocked innocent images,
- like navigation icons.</p>
- </li>
-
- <li>
- <p><span class="QUOTE">"<tt class=
- "REPLACEABLE"><i>target-url</i></tt>"</span> to send a
- redirect to <tt class="REPLACEABLE"><i>target-url</i></tt>.
- You can redirect to any image anywhere, even in your local
- filesystem via <span class="QUOTE">"file:///"</span> URL.
- (But note that not all browsers support redirecting to a
- local file system).</p>
-
- <p>A good application of redirects is to use special
- <span class="APPLICATION">Privoxy</span>-built-in URLs,
- which send the built-in images, as <tt class=
- "REPLACEABLE"><i>target-url</i></tt>. This has the same
- visual effect as specifying <span class=
- "QUOTE">"blank"</span> or <span class=
- "QUOTE">"pattern"</span> in the first place, but enables
- your browser to cache the replacement image, instead of
- requesting it over and over again.</p>
- </li>
- </ul>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>The URLs for the built-in images are <span class=
- "QUOTE">"http://config.privoxy.org/send-banner?type=<tt class=
- "REPLACEABLE"><i>type</i></tt>"</span>, where <tt class=
- "REPLACEABLE"><i>type</i></tt> is either <span class=
- "QUOTE">"blank"</span> or <span class=
- "QUOTE">"pattern"</span>.</p>
-
- <p>There is a third (advanced) type, called <span class=
- "QUOTE">"auto"</span>. It is <span class="emphasis"><i class=
- "EMPHASIS">NOT</i></span> to be used in <tt class=
- "LITERAL">set-image-blocker</tt>, but meant for use from
- <a href="filter-file.html">filters</a>. Auto will select the
- type of image that would have applied to the referring page,
- had it been an image.</p>
- </dd>
-
- <dt>Example usage:</dt>
-
- <dd>
- <p>Built-in pattern:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+set-image-blocker{pattern}
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Redirect to the BSD daemon:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+set-image-blocker{http://www.freebsd.org/gifs/dae_up3.gif}
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Redirect to the built-in pattern for better caching:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
-+set-image-blocker{http://config.privoxy.org/send-banner?type=pattern}
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="AEN4827" id="AEN4827">8.5.35.
- Summary</a></h3>
-
- <p>Note that many of these actions have the potential to cause a page
- to misbehave, possibly even not to display at all. There are many
- ways a site designer may choose to design his site, and what HTTP
- header content, and other criteria, he may depend on. There is no way
- to have hard and fast rules for all sites. See the <a href=
- "appendix.html#ACTIONSANAT">Appendix</a> for a brief example on
- troubleshooting actions.</p>
- </div>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="ALIASES" id="ALIASES">8.6. Aliases</a></h2>
-
- <p>Custom <span class="QUOTE">"actions"</span>, known to <span class=
- "APPLICATION">Privoxy</span> as <span class="QUOTE">"aliases"</span>,
- can be defined by combining other actions. These can in turn be invoked
- just like the built-in actions. Currently, an alias name can contain
- any character except space, tab, <span class="QUOTE">"="</span>,
- <span class="QUOTE">"{"</span> and <span class="QUOTE">"}"</span>, but
- we <span class="emphasis"><i class="EMPHASIS">strongly
- recommend</i></span> that you only use <span class="QUOTE">"a"</span>
- to <span class="QUOTE">"z"</span>, <span class="QUOTE">"0"</span> to
- <span class="QUOTE">"9"</span>, <span class="QUOTE">"+"</span>, and
- <span class="QUOTE">"-"</span>. Alias names are not case sensitive, and
- are not required to start with a <span class="QUOTE">"+"</span> or
- <span class="QUOTE">"-"</span> sign, since they are merely textually
- expanded.</p>
-
- <p>Aliases can be used throughout the actions file, but they
- <span class="emphasis"><i class="EMPHASIS">must be defined in a special
- section at the top of the file!</i></span> And there can only be one
- such section per actions file. Each actions file may have its own alias
- section, and the aliases defined in it are only visible within that
- file.</p>
-
- <p>There are two main reasons to use aliases: One is to save typing for
- frequently used combinations of actions, the other one is a gain in
- flexibility: If you decide once how you want to handle shops by
- defining an alias called <span class="QUOTE">"shop"</span>, you can
- later change your policy on shops in <span class="emphasis"><i class=
- "EMPHASIS">one</i></span> place, and your changes will take effect
- everywhere in the actions file where the <span class=
- "QUOTE">"shop"</span> alias is used. Calling aliases by their purpose
- also makes your actions files more readable.</p>
-
- <p>Currently, there is one big drawback to using aliases, though:
- <span class="APPLICATION">Privoxy</span>'s built-in web-based action
- file editor honors aliases when reading the actions files, but it
- expands them before writing. So the effects of your aliases are of
- course preserved, but the aliases themselves are lost when you edit
- sections that use aliases with it.</p>
-
- <p>Now let's define some aliases...</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- # Useful custom aliases we can use later.
- #
- # Note the (required!) section header line and that this section
- # must be at the top of the actions file!
- #
- {{alias}}
-
- # These aliases just save typing later:
- # (Note that some already use other aliases!)
- #
- +crunch-all-cookies = +<a href=
-"actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> +<a href="actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a>
- -crunch-all-cookies = -<a href=
-"actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> -<a href="actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a>
- +block-as-image = +block{Blocked image.} +handle-as-image
- allow-all-cookies = -crunch-all-cookies -<a href=
-"actions-file.html#SESSION-COOKIES-ONLY">session-cookies-only</a> -<a href=
-"actions-file.html#FILTER-CONTENT-COOKIES">filter{content-cookies}</a>
-
- # These aliases define combinations of actions
- # that are useful for certain types of sites:
- #
- fragile = -<a href="actions-file.html#BLOCK">block</a> -<a href=
-"actions-file.html#FILTER">filter</a> -crunch-all-cookies -<a href=
-"actions-file.html#FAST-REDIRECTS">fast-redirects</a> -<a href=
-"actions-file.html#HIDE-REFERER">hide-referrer</a> -<a href=
-"actions-file.html#PREVENT-COMPRESSION">prevent-compression</a>
-
- shop = -crunch-all-cookies -<a href=
-"actions-file.html#FILTER-ALL-POPUPS">filter{all-popups}</a>
-
- # Short names for other aliases, for really lazy people ;-)
- #
- c0 = +crunch-all-cookies
- c1 = -crunch-all-cookies
-</pre>
- </td>
- </tr>
- </table>
-
- <p>...and put them to use. These sections would appear in the lower
- part of an actions file and define exceptions to the default actions
- (as specified further up for the <span class="QUOTE">"/"</span>
- pattern):</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- # These sites are either very complex or very keen on
- # user data and require minimal interference to work:
- #
- {fragile}
- .office.microsoft.com
- .windowsupdate.microsoft.com
- # Gmail is really mail.google.com, not gmail.com
- mail.google.com
-
- # Shopping sites:
- # Allow cookies (for setting and retrieving your customer data)
- #
- {shop}
- .quietpc.com
- .worldpay.com # for quietpc.com
- mybank.example.com
-
- # These shops require pop-ups:
- #
- {-filter{all-popups} -filter{unsolicited-popups}}
- .dabs.com
- .overclockers.co.uk
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Aliases like <span class="QUOTE">"shop"</span> and <span class=
- "QUOTE">"fragile"</span> are typically used for <span class=
- "QUOTE">"problem"</span> sites that require more than one action to be
- disabled in order to function properly.</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="ACT-EXAMPLES" id="ACT-EXAMPLES">8.7. Actions
- Files Tutorial</a></h2>
-
- <p>The above chapters have shown <a href="actions-file.html">which
- actions files there are and how they are organized</a>, how actions are
- <a href="actions-file.html#ACTIONS">specified</a> and <a href=
- "actions-file.html#ACTIONS-APPLY">applied to URLs</a>, how <a href=
- "actions-file.html#AF-PATTERNS">patterns</a> work, and how to define
- and use <a href="actions-file.html#ALIASES">aliases</a>. Now, let's
- look at an example <tt class="FILENAME">match-all.action</tt>,
- <tt class="FILENAME">default.action</tt> and <tt class=
- "FILENAME">user.action</tt> file and see how all these pieces come
- together:</p>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="AEN4891" id="AEN4891">8.7.1.
- match-all.action</a></h3>
-
- <p>Remember <span class="emphasis"><i class="EMPHASIS">all actions
- are disabled when matching starts</i></span>, so we have to
- explicitly enable the ones we want.</p>
-
- <p>While the <tt class="FILENAME">match-all.action</tt> file only
- contains a single section, it is probably the most important one. It
- has only one pattern, <span class="QUOTE">"<tt class=
- "LITERAL">/</tt>"</span>, but this pattern <a href=
- "actions-file.html#AF-PATTERNS">matches all URLs</a>. Therefore, the
- set of actions used in this <span class="QUOTE">"default"</span>
- section <span class="emphasis"><i class="EMPHASIS">will be applied to
- all requests as a start</i></span>. It can be partly or wholly
- overridden by other actions files like <tt class=
- "FILENAME">default.action</tt> and <tt class=
- "FILENAME">user.action</tt>, but it will still be largely responsible
- for your overall browsing experience.</p>
-
- <p>Again, at the start of matching, all actions are disabled, so
- there is no need to disable any actions here. (Remember: a
- <span class="QUOTE">"+"</span> preceding the action name enables the
- action, a <span class="QUOTE">"-"</span> disables!). Also note how
- this long line has been made more readable by splitting it into
- multiple lines with line continuation.</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-{ \
- +<a href=
-"actions-file.html#CHANGE-X-FORWARDED-FOR">change-x-forwarded-for{block}</a> \
- +<a href="actions-file.html#HIDE-FROM-HEADER">hide-from-header{block}</a> \
- +<a href=
-"actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker{pattern}</a> \
-}
-/ # Match all URLs
-
-</pre>
- </td>
- </tr>
- </table>
-
- <p>The default behavior is now set.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="AEN4913" id="AEN4913">8.7.2.
- default.action</a></h3>
-
- <p>If you aren't a developer, there's no need for you to edit the
- <tt class="FILENAME">default.action</tt> file. It is maintained by
- the <span class="APPLICATION">Privoxy</span> developers and if you
- disagree with some of the sections, you should overrule them in your
- <tt class="FILENAME">user.action</tt>.</p>
-
- <p>Understanding the <tt class="FILENAME">default.action</tt> file
- can help you with your <tt class="FILENAME">user.action</tt>,
- though.</p>
-
- <p>The first section in this file is a special section for internal
- use that prevents older <span class="APPLICATION">Privoxy</span>
- versions from reading the file:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-##########################################################################
-# Settings -- Don't change! For internal Privoxy use ONLY.
-##########################################################################
-{{settings}}
-for-privoxy-version=3.0.11
-</pre>
- </td>
- </tr>
- </table>
-
- <p>After that comes the (optional) alias section. We'll use the
- example section from the above <a href=
- "actions-file.html#ALIASES">chapter on aliases</a>, that also
- explains why and how aliases are used:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-##########################################################################
-# Aliases
-##########################################################################
-{{alias}}
-
- # These aliases just save typing later:
- # (Note that some already use other aliases!)
- #
- +crunch-all-cookies = +<a href=
-"actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> +<a href="actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a>
- -crunch-all-cookies = -<a href=
-"actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> -<a href="actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a>
- +block-as-image = +block{Blocked image.} +handle-as-image
- mercy-for-cookies = -crunch-all-cookies -<a href=
-"actions-file.html#SESSION-COOKIES-ONLY">session-cookies-only</a> -<a href=
-"actions-file.html#FILTER-CONTENT-COOKIES">filter{content-cookies}</a>
-
- # These aliases define combinations of actions
- # that are useful for certain types of sites:
- #
- fragile = -<a href="actions-file.html#BLOCK">block</a> -<a href=
-"actions-file.html#FILTER">filter</a> -crunch-all-cookies -<a href=
-"actions-file.html#FAST-REDIRECTS">fast-redirects</a> -<a href=
-"actions-file.html#HIDE-REFERER">hide-referrer</a>
- shop = -crunch-all-cookies -<a href=
-"actions-file.html#FILTER-ALL-POPUPS">filter{all-popups}</a>
-</pre>
- </td>
- </tr>
- </table>
-
- <p>The first of our specialized sections is concerned with
- <span class="QUOTE">"fragile"</span> sites, i.e. sites that require
- minimum interference, because they are either very complex or very
- keen on tracking you (and have mechanisms in place that make them
- unusable for people who avoid being tracked). We will simply use our
- pre-defined <tt class="LITERAL">fragile</tt> alias instead of stating
- the list of actions explicitly:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-##########################################################################
-# Exceptions for sites that'll break under the default action set:
-##########################################################################
-
-# "Fragile" Use a minimum set of actions for these sites (see alias above):
-#
-{ fragile }
-.office.microsoft.com # surprise, surprise!
-.windowsupdate.microsoft.com
-mail.google.com
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Shopping sites are not as fragile, but they typically require
- cookies to log in, and pop-up windows for shopping carts or item
- details. Again, we'll use a pre-defined alias:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Shopping sites:
-#
-{ shop }
-.quietpc.com
-.worldpay.com # for quietpc.com
-.jungle.com
-.scan.co.uk
-</pre>
- </td>
- </tr>
- </table>
-
- <p>The <tt class="LITERAL"><a href=
- "actions-file.html#FAST-REDIRECTS">fast-redirects</a></tt> action,
- which may have been enabled in <tt class=
- "FILENAME">match-all.action</tt>, breaks some sites. So disable it
- for popular sites where we know it misbehaves:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-{ -<a href="actions-file.html#FAST-REDIRECTS">fast-redirects</a> }
-login.yahoo.com
-edit.*.yahoo.com
-.google.com
-.altavista.com/.*(like|url|link):http
-.altavista.com/trans.*urltext=http
-.nytimes.com
-</pre>
- </td>
- </tr>
- </table>
-
- <p>It is important that <span class="APPLICATION">Privoxy</span>
- knows which URLs belong to images, so that <span class=
- "emphasis"><i class="EMPHASIS">if</i></span> they are to be blocked,
- a substitute image can be sent, rather than an HTML page. Contacting
- the remote site to find out is not an option, since it would destroy
- the loading time advantage of banner blocking, and it would feed the
- advertisers information about you. We can mark any URL as an image
- with the <tt class="LITERAL"><a href=
- "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></tt> action,
- and marking all URLs that end in a known image file extension is a
- good start:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-##########################################################################
-# Images:
-##########################################################################
-
-# Define which file types will be treated as images, in case they get
-# blocked further down this file:
-#
-{ +<a href="actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a> }
-/.*\.(gif|jpe?g|png|bmp|ico)$
-</pre>
- </td>
- </tr>
- </table>
-
- <p>And then there are known banner sources. They often use scripts to
- generate the banners, so it won't be visible from the URL that the
- request is for an image. Hence we block them <span class=
- "emphasis"><i class="EMPHASIS">and</i></span> mark them as images in
- one go, with the help of our <tt class="LITERAL">+block-as-image</tt>
- alias defined above. (We could of course just as well use <tt class=
- "LITERAL">+<a href="actions-file.html#BLOCK">block</a> +<a href=
- "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></tt> here.)
- Remember that the type of the replacement image is chosen by the
- <tt class="LITERAL"><a href=
- "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker</a></tt>
- action. Since all URLs have matched the default section with its
- <tt class="LITERAL">+<a href=
- "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker</a>{pattern}</tt>
- action before, it still applies and needn't be repeated:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Known ad generators:
-#
-{ +block-as-image }
-ar.atwola.com
-.ad.doubleclick.net
-.ad.*.doubleclick.net
-.a.yimg.com/(?:(?!/i/).)*$
-.a[0-9].yimg.com/(?:(?!/i/).)*$
-bs*.gsanet.com
-.qkimg.net
-</pre>
- </td>
- </tr>
- </table>
-
- <p>One of the most important jobs of <span class=
- "APPLICATION">Privoxy</span> is to block banners. Many of these can
- be <span class="QUOTE">"blocked"</span> by the <tt class=
- "LITERAL"><a href=
- "actions-file.html#FILTER">filter</a>{banners-by-size}</tt> action,
- which we enabled above, and which deletes the references to banner
- images from the pages while they are loaded, so the browser doesn't
- request them anymore, and hence they don't need to be blocked here.
- But this naturally doesn't catch all banners, and some people choose
- not to use filters, so we need a comprehensive list of patterns for
- banner URLs here, and apply the <tt class="LITERAL"><a href=
- "actions-file.html#BLOCK">block</a></tt> action to them.</p>
-
- <p>First comes many generic patterns, which do most of the work, by
- matching typical domain and path name components of banners. Then
- comes a list of individual patterns for specific sites, which is
- omitted here to keep the example short:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-##########################################################################
-# Block these fine banners:
-##########################################################################
-{ <a href="actions-file.html#BLOCK">+block{Banner ads.}</a> }
-
-# Generic patterns:
-#
-ad*.
-.*ads.
-banner?.
-count*.
-/.*count(er)?\.(pl|cgi|exe|dll|asp|php[34]?)
-/(?:.*/)?(publicite|werbung|rekla(ma|me|am)|annonse|maino(kset|nta|s)?)/
-
-# Site-specific patterns (abbreviated):
-#
-.hitbox.com
-</pre>
- </td>
- </tr>
- </table>
-
- <p>It's quite remarkable how many advertisers actually call their
- banner servers ads.<tt class="REPLACEABLE"><i>company</i></tt>.com,
- or call the directory in which the banners are stored simply
- <span class="QUOTE">"banners"</span>. So the above generic patterns
- are surprisingly effective.</p>
-
- <p>But being very generic, they necessarily also catch URLs that we
- don't want to block. The pattern <tt class="LITERAL">.*ads.</tt> e.g.
- catches <span class="QUOTE">"nasty-<span class="emphasis"><i class=
- "EMPHASIS">ads</i></span>.nasty-corp.com"</span> as intended, but
- also <span class="QUOTE">"downlo<span class="emphasis"><i class=
- "EMPHASIS">ads</i></span>.sourcefroge.net"</span> or <span class=
- "QUOTE">"<span class="emphasis"><i class=
- "EMPHASIS">ads</i></span>l.some-provider.net."</span> So here come
- some well-known exceptions to the <tt class="LITERAL">+<a href=
- "actions-file.html#BLOCK">block</a></tt> section above.</p>
-
- <p>Note that these are exceptions to exceptions from the default!
- Consider the URL <span class=
- "QUOTE">"downloads.sourcefroge.net"</span>: Initially, all actions
- are deactivated, so it wouldn't get blocked. Then comes the defaults
- section, which matches the URL, but just deactivates the <tt class=
- "LITERAL"><a href="actions-file.html#BLOCK">block</a></tt> action
- once again. Then it matches <tt class="LITERAL">.*ads.</tt>, an
- exception to the general non-blocking policy, and suddenly <tt class=
- "LITERAL"><a href="actions-file.html#BLOCK">+block</a></tt> applies.
- And now, it'll match <tt class="LITERAL">.*loads.</tt>, where
- <tt class="LITERAL"><a href="actions-file.html#BLOCK">-block</a></tt>
- applies, so (unless it matches <span class="emphasis"><i class=
- "EMPHASIS">again</i></span> further down) it ends up with no
- <tt class="LITERAL"><a href="actions-file.html#BLOCK">block</a></tt>
- action applying.</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-##########################################################################
-# Save some innocent victims of the above generic block patterns:
-##########################################################################
-
-# By domain:
-#
-{ -<a href="actions-file.html#BLOCK">block</a> }
-adv[io]*. # (for advogato.org and advice.*)
-adsl. # (has nothing to do with ads)
-adobe. # (has nothing to do with ads either)
-ad[ud]*. # (adult.* and add.*)
-.edu # (universities don't host banners (yet!))
-.*loads. # (downloads, uploads etc)
-
-# By path:
-#
-/.*loads/
-
-# Site-specific:
-#
-www.globalintersec.com/adv # (adv = advanced)
-www.ugu.com/sui/ugu/adv
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Filtering source code can have nasty side effects, so make an
- exception for our friends at sourceforge.net, and all paths with
- <span class="QUOTE">"cvs"</span> in them. Note that <tt class=
- "LITERAL">-<a href="actions-file.html#FILTER">filter</a></tt>
- disables <span class="emphasis"><i class="EMPHASIS">all</i></span>
- filters in one fell swoop!</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Don't filter code!
-#
-{ -<a href="actions-file.html#FILTER">filter</a> }
-/(.*/)?cvs
-bugzilla.
-developer.
-wiki.
-.sourceforge.net
-</pre>
- </td>
- </tr>
- </table>
-
- <p>The actual <tt class="FILENAME">default.action</tt> is of course
- much more comprehensive, but we hope this example made clear how it
- works.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="AEN5026" id="AEN5026">8.7.3.
- user.action</a></h3>
-
- <p>So far we are painting with a broad brush by setting general
- policies, which would be a reasonable starting point for many people.
- Now, you might want to be more specific and have customized rules
- that are more suitable to your personal habits and preferences. These
- would be for narrowly defined situations like your ISP or your bank,
- and should be placed in <tt class="FILENAME">user.action</tt>, which
- is parsed after all other actions files and hence has the last word,
- over-riding any previously defined actions. <tt class=
- "FILENAME">user.action</tt> is also a <span class=
- "emphasis"><i class="EMPHASIS">safe</i></span> place for your
- personal settings, since <tt class="FILENAME">default.action</tt> is
- actively maintained by the <span class="APPLICATION">Privoxy</span>
- developers and you'll probably want to install updated versions from
- time to time.</p>
-
- <p>So let's look at a few examples of things that one might typically
- do in <tt class="FILENAME">user.action</tt>:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-# My user.action file. <fred@example.com>
-</pre>
- </td>
- </tr>
- </table>
-
- <p>As <a href="actions-file.html#ALIASES">aliases</a> are local to
- the actions file that they are defined in, you can't use the ones
- from <tt class="FILENAME">default.action</tt>, unless you repeat them
- here:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Aliases are local to the file they are defined in.
-# (Re-)define aliases for this file:
-#
-{{alias}}
-#
-# These aliases just save typing later, and the alias names should
-# be self explanatory.
-#
-+crunch-all-cookies = +crunch-incoming-cookies +crunch-outgoing-cookies
--crunch-all-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies
- allow-all-cookies = -crunch-all-cookies -session-cookies-only
- allow-popups = -filter{all-popups}
-+block-as-image = +block{Blocked as image.} +handle-as-image
--block-as-image = -block
-
-# These aliases define combinations of actions that are useful for
-# certain types of sites:
-#
-fragile = -block -crunch-all-cookies -filter -fast-redirects -hide-referrer
-shop = -crunch-all-cookies allow-popups
-
-# Allow ads for selected useful free sites:
-#
-allow-ads = -block -filter{banners-by-size} -filter{banners-by-link}
-
-# Alias for specific file types that are text, but might have conflicting
-# MIME types. We want the browser to force these to be text documents.
-handle-as-text = -<a href="actions-file.html#FILTER">filter</a> +-<a href=
-"actions-file.html#CONTENT-TYPE-OVERWRITE">content-type-overwrite{text/plain}</a> +-<a href="actions-file.html#FORCE-TEXT-MODE">force-text-mode</a> -<a href="actions-file.html#HIDE-CONTENT-DISPOSITION">hide-content-disposition</a>
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Say you have accounts on some sites that you visit regularly, and
- you don't want to have to log in manually each time. So you'd like to
- allow persistent cookies for these sites. The <tt class=
- "LITERAL">allow-all-cookies</tt> alias defined above does exactly
- that, i.e. it disables crunching of cookies in any direction, and the
- processing of cookies to make them only temporary.</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-{ allow-all-cookies }
- sourceforge.net
- .yahoo.com
- .msdn.microsoft.com
- .redhat.com
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Your bank is allergic to some filter, but you don't know which, so
- you disable them all:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-{ -<a href="actions-file.html#FILTER">filter</a> }
- .your-home-banking-site.com
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Some file types you may not want to filter for various
- reasons:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Technical documentation is likely to contain strings that might
-# erroneously get altered by the JavaScript-oriented filters:
-#
-.tldp.org
-/(.*/)?selfhtml/
-
-# And this stupid host sends streaming video with a wrong MIME type,
-# so that Privoxy thinks it is getting HTML and starts filtering:
-#
-stupid-server.example.com/
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Example of a simple <a href="actions-file.html#BLOCK">block</a>
- action. Say you've seen an ad on your favourite page on example.com
- that you want to get rid of. You have right-clicked the image,
- selected <span class="QUOTE">"copy image location"</span> and pasted
- the URL below while removing the leading http://, into a <tt class=
- "LITERAL">{ +block{} }</tt> section. Note that <tt class="LITERAL">{
- +handle-as-image }</tt> need not be specified, since all URLs ending
- in <tt class="LITERAL">.gif</tt> will be tagged as images by the
- general rules as set in default.action anyway:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-{ +<a href="actions-file.html#BLOCK">block</a>{Nasty ads.} }
- www.example.com/nasty-ads/sponsor\.gif
- another.example.net/more/junk/here/
-</pre>
- </td>
- </tr>
- </table>
-
- <p>The URLs of dynamically generated banners, especially from large
- banner farms, often don't use the well-known image file name
- extensions, which makes it impossible for <span class=
- "APPLICATION">Privoxy</span> to guess the file type just by looking
- at the URL. You can use the <tt class="LITERAL">+block-as-image</tt>
- alias defined above for these cases. Note that objects which match
- this rule but then turn out NOT to be an image are typically rendered
- as a <span class="QUOTE">"broken image"</span> icon by the browser.
- Use cautiously.</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-{ +block-as-image }
- .doubleclick.net
- .fastclick.net
- /Realmedia/ads/
- ar.atwola.com/
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Now you noticed that the default configuration breaks Forbes
- Magazine, but you were too lazy to find out which action is the
- culprit, and you were again too lazy to give <a href=
- "contact.html">feedback</a>, so you just used the <tt class=
- "LITERAL">fragile</tt> alias on the site, and -- <span class=
- "emphasis"><i class="EMPHASIS">whoa!</i></span> -- it worked. The
- <tt class="LITERAL">fragile</tt> aliases disables those actions that
- are most likely to break a site. Also, good for testing purposes to
- see if it is <span class="APPLICATION">Privoxy</span> that is causing
- the problem or not. We later find other regular sites that misbehave,
- and add those to our personalized list of troublemakers:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-{ fragile }
- .forbes.com
- webmail.example.com
- .mybank.com
-</pre>
- </td>
- </tr>
- </table>
-
- <p>You like the <span class="QUOTE">"fun"</span> text replacements in
- <tt class="FILENAME">default.filter</tt>, but it is disabled in the
- distributed actions file. So you'd like to turn it on in your
- private, update-safe config, once and for all:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-{ +<a href="actions-file.html#FILTER-FUN">filter{fun}</a> }
- / # For ALL sites!
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Note that the above is not really a good idea: There are
- exceptions to the filters in <tt class="FILENAME">default.action</tt>
- for things that really shouldn't be filtered, like code on
- CVS->Web interfaces. Since <tt class="FILENAME">user.action</tt>
- has the last word, these exceptions won't be valid for the
- <span class="QUOTE">"fun"</span> filtering specified here.</p>
-
- <p>You might also worry about how your favourite free websites are
- funded, and find that they rely on displaying banner advertisements
- to survive. So you might want to specifically allow banners for those
- sites that you feel provide value to you:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-{ allow-ads }
- .sourceforge.net
- .slashdot.org
- .osdn.net
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Note that <tt class="LITERAL">allow-ads</tt> has been aliased to
- <tt class="LITERAL">-<a href=
- "actions-file.html#BLOCK">block</a></tt>, <tt class=
- "LITERAL">-<a href=
- "actions-file.html#FILTER-BANNERS-BY-SIZE">filter{banners-by-size}</a></tt>,
- and <tt class="LITERAL">-<a href=
- "actions-file.html#FILTER-BANNERS-BY-LINK">filter{banners-by-link}</a></tt>
- above.</p>
-
- <p>Invoke another alias here to force an over-ride of the MIME type
- <tt class="LITERAL">application/x-sh</tt> which typically would open
- a download type dialog. In my case, I want to look at the shell
- script, and then I can save it should I choose to.</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-{ handle-as-text }
- /.*\.sh$
-</pre>
- </td>
- </tr>
- </table>
-
- <p><tt class="FILENAME">user.action</tt> is generally the best place
- to define exceptions and additions to the default policies of
- <tt class="FILENAME">default.action</tt>. Some actions are safe to
- have their default policies set here though. So let's set a default
- policy to have a <span class="QUOTE">"blank"</span> image as opposed
- to the checkerboard pattern for <span class="emphasis"><i class=
- "EMPHASIS">ALL</i></span> sites. <span class="QUOTE">"/"</span> of
- course matches all URL paths and patterns:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-{ +<a href=
-"actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker{blank}</a> }
-/ # ALL sites
-</pre>
- </td>
- </tr>
- </table>
- </div>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="config.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href="filter-file.html"
- accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">The Main Configuration
- File</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">Filter Files</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Appendix</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy 3.0.21 User Manual" href="index.html">
- <link rel="PREVIOUS" title="See Also" href="seealso.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
- <link rel="STYLESHEET" type="text/css" href="p_doc.css">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy 3.0.21 User Manual</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href="seealso.html"
- accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"> </td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="APPENDIX" id="APPENDIX">14. Appendix</a></h1>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="REGEX" id="REGEX">14.1. Regular
- Expressions</a></h2>
-
- <p><span class="APPLICATION">Privoxy</span> uses Perl-style
- <span class="QUOTE">"regular expressions"</span> in its <a href=
- "actions-file.html">actions files</a> and <a href=
- "filter-file.html">filter file</a>, through the <a href=
- "http://www.pcre.org/" target="_top">PCRE</a> and <span class=
- "APPLICATION">PCRS</span> libraries.</p>
-
- <p>If you are reading this, you probably don't understand what
- <span class="QUOTE">"regular expressions"</span> are, or what they can
- do. So this will be a very brief introduction only. A full explanation
- would require a <a href="http://www.oreilly.com/catalog/regex/" target=
- "_top">book</a> ;-)</p>
-
- <p>Regular expressions provide a language to describe patterns that can
- be run against strings of characters (letter, numbers, etc), to see if
- they match the string or not. The patterns are themselves (sometimes
- complex) strings of literal characters, combined with wild-cards, and
- other special characters, called meta-characters. The <span class=
- "QUOTE">"meta-characters"</span> have special meanings and are used to
- build complex patterns to be matched against. Perl Compatible Regular
- Expressions are an especially convenient <span class=
- "QUOTE">"dialect"</span> of the regular expression language.</p>
-
- <p>To make a simple analogy, we do something similar when we use
- wild-card characters when listing files with the <b class=
- "COMMAND">dir</b> command in DOS. <tt class="LITERAL">*.*</tt> matches
- all filenames. The <span class="QUOTE">"special"</span> character here
- is the asterisk which matches any and all characters. We can be more
- specific and use <tt class="LITERAL">?</tt> to match just individual
- characters. So <span class="QUOTE">"dir file?.text"</span> would match
- <span class="QUOTE">"file1.txt"</span>, <span class=
- "QUOTE">"file2.txt"</span>, etc. We are pattern matching, using a
- similar technique to <span class="QUOTE">"regular
- expressions"</span>!</p>
-
- <p>Regular expressions do essentially the same thing, but are much,
- much more powerful. There are many more <span class="QUOTE">"special
- characters"</span> and ways of building complex patterns however. Let's
- look at a few of the common ones, and then some examples:</p>
-
- <table border="0">
- <tbody>
- <tr>
- <td><span class="emphasis"><i class="EMPHASIS">.</i></span> -
- Matches any single character, e.g. <span class=
- "QUOTE">"a"</span>, <span class="QUOTE">"A"</span>, <span class=
- "QUOTE">"4"</span>, <span class="QUOTE">":"</span>, or
- <span class="QUOTE">"@"</span>.</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><span class="emphasis"><i class="EMPHASIS">?</i></span> - The
- preceding character or expression is matched ZERO or ONE times.
- Either/or.</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><span class="emphasis"><i class="EMPHASIS">+</i></span> - The
- preceding character or expression is matched ONE or MORE
- times.</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><span class="emphasis"><i class="EMPHASIS">*</i></span> - The
- preceding character or expression is matched ZERO or MORE
- times.</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><span class="emphasis"><i class="EMPHASIS">\</i></span> - The
- <span class="QUOTE">"escape"</span> character denotes that the
- following character should be taken literally. This is used where
- one of the special characters (e.g. <span class=
- "QUOTE">"."</span>) needs to be taken literally and not as a
- special meta-character. Example: <span class=
- "QUOTE">"example\.com"</span>, makes sure the period is
- recognized only as a period (and not expanded to its
- meta-character meaning of any single character).</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><span class="emphasis"><i class="EMPHASIS">[ ]</i></span> -
- Characters enclosed in brackets will be matched if any of the
- enclosed characters are encountered. For instance, <span class=
- "QUOTE">"[0-9]"</span> matches any numeric digit (zero through
- nine). As an example, we can combine this with <span class=
- "QUOTE">"+"</span> to match any digit one of more times:
- <span class="QUOTE">"[0-9]+"</span>.</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><span class="emphasis"><i class="EMPHASIS">( )</i></span> -
- parentheses are used to group a sub-expression, or multiple
- sub-expressions.</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><span class="emphasis"><i class="EMPHASIS">|</i></span> - The
- <span class="QUOTE">"bar"</span> character works like an
- <span class="QUOTE">"or"</span> conditional statement. A match is
- successful if the sub-expression on either side of <span class=
- "QUOTE">"|"</span> matches. As an example: <span class=
- "QUOTE">"/(this|that) example/"</span> uses grouping and the bar
- character and would match either <span class="QUOTE">"this
- example"</span> or <span class="QUOTE">"that example"</span>, and
- nothing else.</td>
- </tr>
- </tbody>
- </table>
-
- <p>These are just some of the ones you are likely to use when matching
- URLs with <span class="APPLICATION">Privoxy</span>, and is a long way
- from a definitive list. This is enough to get us started with a few
- simple examples which may be more illuminating:</p>
-
- <p><span class="emphasis"><i class="EMPHASIS"><tt class=
- "LITERAL">/.*/banners/.*</tt></i></span> - A simple example that uses
- the common combination of <span class="QUOTE">"."</span> and
- <span class="QUOTE">"*"</span> to denote any character, zero or more
- times. In other words, any string at all. So we start with a literal
- forward slash, then our regular expression pattern (<span class=
- "QUOTE">".*"</span>) another literal forward slash, the string
- <span class="QUOTE">"banners"</span>, another forward slash, and lastly
- another <span class="QUOTE">".*"</span>. We are building a directory
- path here. This will match any file with the path that has a directory
- named <span class="QUOTE">"banners"</span> in it. The <span class=
- "QUOTE">".*"</span> matches any characters, and this could conceivably
- be more forward slashes, so it might expand into a much longer looking
- path. For example, this could match: <span class=
- "QUOTE">"/eye/hate/spammers/banners/annoy_me_please.gif"</span>, or
- just <span class="QUOTE">"/banners/annoying.html"</span>, or almost an
- infinite number of other possible combinations, just so it has
- <span class="QUOTE">"banners"</span> in the path somewhere.</p>
-
- <p>And now something a little more complex:</p>
-
- <p><span class="emphasis"><i class="EMPHASIS"><tt class=
- "LITERAL">/.*/adv((er)?ts?|ertis(ing|ements?))?/</tt></i></span> - We
- have several literal forward slashes again (<span class=
- "QUOTE">"/"</span>), so we are building another expression that is a
- file path statement. We have another <span class="QUOTE">".*"</span>,
- so we are matching against any conceivable sub-path, just so it matches
- our expression. The only true literal that <span class=
- "emphasis"><i class="EMPHASIS">must match</i></span> our pattern is
- <span class="APPLICATION">adv</span>, together with the forward
- slashes. What comes after the <span class="QUOTE">"adv"</span> string
- is the interesting part.</p>
-
- <p>Remember the <span class="QUOTE">"?"</span> means the preceding
- expression (either a literal character or anything grouped with
- <span class="QUOTE">"(...)"</span> in this case) can exist or not,
- since this means either zero or one match. So <span class=
- "QUOTE">"((er)?ts?|ertis(ing|ements?))"</span> is optional, as are the
- individual sub-expressions: <span class="QUOTE">"(er)"</span>,
- <span class="QUOTE">"(ing|ements?)"</span>, and the <span class=
- "QUOTE">"s"</span>. The <span class="QUOTE">"|"</span> means
- <span class="QUOTE">"or"</span>. We have two of those. For instance,
- <span class="QUOTE">"(ing|ements?)"</span>, can expand to match either
- <span class="QUOTE">"ing"</span> <span class="emphasis"><i class=
- "EMPHASIS">OR</i></span> <span class="QUOTE">"ements?"</span>. What is
- being done here, is an attempt at matching as many variations of
- <span class="QUOTE">"advertisement"</span>, and similar, as possible.
- So this would expand to match just <span class="QUOTE">"adv"</span>, or
- <span class="QUOTE">"advert"</span>, or <span class=
- "QUOTE">"adverts"</span>, or <span class="QUOTE">"advertising"</span>,
- or <span class="QUOTE">"advertisement"</span>, or <span class=
- "QUOTE">"advertisements"</span>. You get the idea. But it would not
- match <span class="QUOTE">"advertizements"</span> (with a <span class=
- "QUOTE">"z"</span>). We could fix that by changing our regular
- expression to: <span class=
- "QUOTE">"/.*/adv((er)?ts?|erti(s|z)(ing|ements?))?/"</span>, which
- would then match either spelling.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS"><tt class=
- "LITERAL">/.*/advert[0-9]+\.(gif|jpe?g)</tt></i></span> - Again another
- path statement with forward slashes. Anything in the square brackets
- <span class="QUOTE">"[ ]"</span> can be matched. This is using
- <span class="QUOTE">"0-9"</span> as a shorthand expression to mean any
- digit one through nine. It is the same as saying <span class=
- "QUOTE">"0123456789"</span>. So any digit matches. The <span class=
- "QUOTE">"+"</span> means one or more of the preceding expression must
- be included. The preceding expression here is what is in the square
- brackets -- in this case, any digit one through nine. Then, at the end,
- we have a grouping: <span class="QUOTE">"(gif|jpe?g)"</span>. This
- includes a <span class="QUOTE">"|"</span>, so this needs to match the
- expression on either side of that bar character also. A simple
- <span class="QUOTE">"gif"</span> on one side, and the other side will
- in turn match either <span class="QUOTE">"jpeg"</span> or <span class=
- "QUOTE">"jpg"</span>, since the <span class="QUOTE">"?"</span> means
- the letter <span class="QUOTE">"e"</span> is optional and can be
- matched once or not at all. So we are building an expression here to
- match image GIF or JPEG type image file. It must include the literal
- string <span class="QUOTE">"advert"</span>, then one or more digits,
- and a <span class="QUOTE">"."</span> (which is now a literal, and not a
- special character, since it is escaped with <span class=
- "QUOTE">"\"</span>), and lastly either <span class=
- "QUOTE">"gif"</span>, or <span class="QUOTE">"jpeg"</span>, or
- <span class="QUOTE">"jpg"</span>. Some possible matches would include:
- <span class="QUOTE">"//advert1.jpg"</span>, <span class=
- "QUOTE">"/nasty/ads/advert1234.gif"</span>, <span class=
- "QUOTE">"/banners/from/hell/advert99.jpg"</span>. It would not match
- <span class="QUOTE">"advert1.gif"</span> (no leading slash), or
- <span class="QUOTE">"/adverts232.jpg"</span> (the expression does not
- include an <span class="QUOTE">"s"</span>), or <span class=
- "QUOTE">"/advert1.jsp"</span> (<span class="QUOTE">"jsp"</span> is not
- in the expression anywhere).</p>
-
- <p>We are barely scratching the surface of regular expressions here so
- that you can understand the default <span class=
- "APPLICATION">Privoxy</span> configuration files, and maybe use this
- knowledge to customize your own installation. There is much, much more
- that can be done with regular expressions. Now that you know enough to
- get started, you can learn more on your own :/</p>
-
- <p>More reading on Perl Compatible Regular expressions: <a href=
- "http://perldoc.perl.org/perlre.html" target=
- "_top">http://perldoc.perl.org/perlre.html</a></p>
-
- <p>For information on regular expression based substitutions and their
- applications in filters, please see the <a href=
- "filter-file.html">filter file tutorial</a> in this manual.</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="AEN5902" id="AEN5902">14.2. Privoxy's
- Internal Pages</a></h2>
-
- <p>Since <span class="APPLICATION">Privoxy</span> proxies each
- requested web page, it is easy for <span class=
- "APPLICATION">Privoxy</span> to trap certain special URLs. In this way,
- we can talk directly to <span class="APPLICATION">Privoxy</span>, and
- see how it is configured, see how our rules are being applied, change
- these rules and other configuration options, and even turn <span class=
- "APPLICATION">Privoxy's</span> filtering off, all with a web
- browser.</p>
-
- <p>The URLs listed below are the special ones that allow direct access
- to <span class="APPLICATION">Privoxy</span>. Of course, <span class=
- "APPLICATION">Privoxy</span> must be running to access these. If not,
- you will get a friendly error message. Internet access is not necessary
- either.</p>
-
- <ul>
- <li>
- <p>Privoxy main page:</p><a name="AEN5916" id="AEN5916"></a>
-
- <blockquote class="BLOCKQUOTE">
- <p><a href="http://config.privoxy.org/" target=
- "_top">http://config.privoxy.org/</a></p>
- </blockquote>
-
- <p>There is a shortcut: <a href="http://p.p/" target=
- "_top">http://p.p/</a> (But it doesn't provide a fall-back to a
- real page, in case the request is not sent through <span class=
- "APPLICATION">Privoxy</span>)</p>
- </li>
-
- <li>
- <p>Show information about the current configuration, including
- viewing and editing of actions files:</p><a name="AEN5924" id=
- "AEN5924"></a>
-
- <blockquote class="BLOCKQUOTE">
- <p><a href="http://config.privoxy.org/show-status" target=
- "_top">http://config.privoxy.org/show-status</a></p>
- </blockquote>
- </li>
-
- <li>
- <p>Show the source code version numbers:</p><a name="AEN5929" id=
- "AEN5929"></a>
-
- <blockquote class="BLOCKQUOTE">
- <p><a href="http://config.privoxy.org/show-version" target=
- "_top">http://config.privoxy.org/show-version</a></p>
- </blockquote>
- </li>
-
- <li>
- <p>Show the browser's request headers:</p><a name="AEN5934" id=
- "AEN5934"></a>
-
- <blockquote class="BLOCKQUOTE">
- <p><a href="http://config.privoxy.org/show-request" target=
- "_top">http://config.privoxy.org/show-request</a></p>
- </blockquote>
- </li>
-
- <li>
- <p>Show which actions apply to a URL and why:</p><a name="AEN5939"
- id="AEN5939"></a>
-
- <blockquote class="BLOCKQUOTE">
- <p><a href="http://config.privoxy.org/show-url-info" target=
- "_top">http://config.privoxy.org/show-url-info</a></p>
- </blockquote>
- </li>
-
- <li>
- <p>Toggle Privoxy on or off. This feature can be turned off/on in
- the main <tt class="FILENAME">config</tt> file. When toggled
- <span class="QUOTE">"off"</span>, <span class=
- "QUOTE">"Privoxy"</span> continues to run, but only as a
- pass-through proxy, with no actions taking place:</p><a name=
- "AEN5947" id="AEN5947"></a>
-
- <blockquote class="BLOCKQUOTE">
- <p><a href="http://config.privoxy.org/toggle" target=
- "_top">http://config.privoxy.org/toggle</a></p>
- </blockquote>
-
- <p>Short cuts. Turn off, then on:</p><a name="AEN5951" id=
- "AEN5951"></a>
-
- <blockquote class="BLOCKQUOTE">
- <p><a href="http://config.privoxy.org/toggle?set=disable" target=
- "_top">http://config.privoxy.org/toggle?set=disable</a></p>
- </blockquote><a name="AEN5954" id="AEN5954"></a>
-
- <blockquote class="BLOCKQUOTE">
- <p><a href="http://config.privoxy.org/toggle?set=enable" target=
- "_top">http://config.privoxy.org/toggle?set=enable</a></p>
- </blockquote>
- </li>
- </ul>
-
- <p>These may be bookmarked for quick reference. See next.</p>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="BOOKMARKLETS" id="BOOKMARKLETS">14.2.1.
- Bookmarklets</a></h3>
-
- <p>Below are some <span class="QUOTE">"bookmarklets"</span> to allow
- you to easily access a <span class="QUOTE">"mini"</span> version of
- some of <span class="APPLICATION">Privoxy's</span> special pages.
- They are designed for MS Internet Explorer, but should work equally
- well in Netscape, Mozilla, and other browsers which support
- JavaScript. They are designed to run directly from your bookmarks -
- not by clicking the links below (although that should work for
- testing).</p>
-
- <p>To save them, right-click the link and choose <span class=
- "QUOTE">"Add to Favorites"</span> (IE) or <span class="QUOTE">"Add
- Bookmark"</span> (Netscape). You will get a warning that the bookmark
- <span class="QUOTE">"may not be safe"</span> - just click OK. Then
- you can run the Bookmarklet directly from your favorites/bookmarks.
- For even faster access, you can put them on the <span class=
- "QUOTE">"Links"</span> bar (IE) or the <span class="QUOTE">"Personal
- Toolbar"</span> (Netscape), and run them with a single click.</p>
-
- <ul>
- <li>
- <p><a href=
- "javascript:void(window.open('http://config.privoxy.org/toggle?mini=y&set=enabled','ijbstatus','width=250,height=100,resizable=yes,scrollbars=no,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no').focus());"
- target="_top">Privoxy - Enable</a></p>
- </li>
-
- <li>
- <p><a href=
- "javascript:void(window.open('http://config.privoxy.org/toggle?mini=y&set=disabled','ijbstatus','width=250,height=100,resizable=yes,scrollbars=no,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no').focus());"
- target="_top">Privoxy - Disable</a></p>
- </li>
-
- <li>
- <p><a href=
- "javascript:void(window.open('http://config.privoxy.org/toggle?mini=y&set=toggle','ijbstatus','width=250,height=100,resizable=yes,scrollbars=no,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no').focus());"
- target="_top">Privoxy - Toggle Privoxy</a> (Toggles between
- enabled and disabled)</p>
- </li>
-
- <li>
- <p><a href=
- "javascript:void(window.open('http://config.privoxy.org/toggle?mini=y','ijbstatus','width=250,height=2,resizable=yes,scrollbars=no,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no').focus());"
- target="_top">Privoxy- View Status</a></p>
- </li>
-
- <li>
- <p><a href=
- "javascript:void(window.open('http://config.privoxy.org/show-url-info?url='+escape(location.href),'Why').focus());"
- target="_top">Privoxy - Why?</a></p>
- </li>
- </ul>
-
- <p>Credit: The site which gave us the general idea for these
- bookmarklets is <a href="http://www.bookmarklets.com/" target=
- "_top">www.bookmarklets.com</a>. They have more information about
- bookmarklets.</p>
- </div>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="CHAIN" id="CHAIN">14.3. Chain of
- Events</a></h2>
-
- <p>Let's take a quick look at how some of <span class=
- "APPLICATION">Privoxy's</span> core features are triggered, and the
- ensuing sequence of events when a web page is requested by your
- browser:</p>
-
- <ul>
- <li>
- <p>First, your web browser requests a web page. The browser knows
- to send the request to <span class="APPLICATION">Privoxy</span>,
- which will in turn, relay the request to the remote web server
- after passing the following tests:</p>
- </li>
-
- <li>
- <p><span class="APPLICATION">Privoxy</span> traps any request for
- its own internal CGI pages (e.g <a href="http://p.p/" target=
- "_top">http://p.p/</a>) and sends the CGI page back to the
- browser.</p>
- </li>
-
- <li>
- <p>Next, <span class="APPLICATION">Privoxy</span> checks to see if
- the URL matches any <a href="actions-file.html#BLOCK"><span class=
- "QUOTE">"+block"</span></a> patterns. If so, the URL is then
- blocked, and the remote web server will not be contacted. <a href=
- "actions-file.html#HANDLE-AS-IMAGE"><span class=
- "QUOTE">"+handle-as-image"</span></a> and <a href=
- "actions-file.html#HANDLE-AS-EMPTY-DOCUMENT"><span class=
- "QUOTE">"+handle-as-empty-document"</span></a> are then checked,
- and if there is no match, an HTML <span class=
- "QUOTE">"BLOCKED"</span> page is sent back to the browser.
- Otherwise, if it does match, an image is returned for the former,
- and an empty text document for the latter. The type of image would
- depend on the setting of <a href=
- "actions-file.html#SET-IMAGE-BLOCKER"><span class=
- "QUOTE">"+set-image-blocker"</span></a> (blank, checkerboard
- pattern, or an HTTP redirect to an image elsewhere).</p>
- </li>
-
- <li>
- <p>Untrusted URLs are blocked. If URLs are being added to the
- <tt class="FILENAME">trust</tt> file, then that is done.</p>
- </li>
-
- <li>
- <p>If the URL pattern matches the <a href=
- "actions-file.html#FAST-REDIRECTS"><span class=
- "QUOTE">"+fast-redirects"</span></a> action, it is then processed.
- Unwanted parts of the requested URL are stripped.</p>
- </li>
-
- <li>
- <p>Now the rest of the client browser's request headers are
- processed. If any of these match any of the relevant actions (e.g.
- <a href="actions-file.html#HIDE-USER-AGENT"><span class=
- "QUOTE">"+hide-user-agent"</span></a>, etc.), headers are
- suppressed or forged as determined by these actions and their
- parameters.</p>
- </li>
-
- <li>
- <p>Now the web server starts sending its response back (i.e.
- typically a web page).</p>
- </li>
-
- <li>
- <p>First, the server headers are read and processed to determine,
- among other things, the MIME type (document type) and encoding. The
- headers are then filtered as determined by the <a href=
- "actions-file.html#CRUNCH-INCOMING-COOKIES"><span class=
- "QUOTE">"+crunch-incoming-cookies"</span></a>, <a href=
- "actions-file.html#SESSION-COOKIES-ONLY"><span class=
- "QUOTE">"+session-cookies-only"</span></a>, and <a href=
- "actions-file.html#DOWNGRADE-HTTP-VERSION"><span class=
- "QUOTE">"+downgrade-http-version"</span></a> actions.</p>
- </li>
-
- <li>
- <p>If any <a href="actions-file.html#FILTER"><span class=
- "QUOTE">"+filter"</span></a> action or <a href=
- "actions-file.html#DEANIMATE-GIFS"><span class=
- "QUOTE">"+deanimate-gifs"</span></a> action applies (and the
- document type fits the action), the rest of the page is read into
- memory (up to a configurable limit). Then the filter rules (from
- <tt class="FILENAME">default.filter</tt> and any other filter
- files) are processed against the buffered content. Filters are
- applied in the order they are specified in one of the filter files.
- Animated GIFs, if present, are reduced to either the first or last
- frame, depending on the action setting.The entire page, which is
- now filtered, is then sent by <span class=
- "APPLICATION">Privoxy</span> back to your browser.</p>
-
- <p>If neither a <a href="actions-file.html#FILTER"><span class=
- "QUOTE">"+filter"</span></a> action or <a href=
- "actions-file.html#DEANIMATE-GIFS"><span class=
- "QUOTE">"+deanimate-gifs"</span></a> matches, then <span class=
- "APPLICATION">Privoxy</span> passes the raw data through to the
- client browser as it becomes available.</p>
- </li>
-
- <li>
- <p>As the browser receives the now (possibly filtered) page
- content, it reads and then requests any URLs that may be embedded
- within the page source, e.g. ad images, stylesheets, JavaScript,
- other HTML documents (e.g. frames), sounds, etc. For each of these
- objects, the browser issues a separate request (this is easily
- viewable in <span class="APPLICATION">Privoxy's</span> logs). And
- each such request is in turn processed just as above. Note that a
- complex web page will have many, many such embedded URLs. If these
- secondary requests are to a different server, then quite possibly a
- very differing set of actions is triggered.</p>
- </li>
- </ul>
-
- <p>NOTE: This is somewhat of a simplistic overview of what happens with
- each URL request. For the sake of brevity and simplicity, we have
- focused on <span class="APPLICATION">Privoxy's</span> core features
- only.</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="ACTIONSANAT" id="ACTIONSANAT">14.4.
- Troubleshooting: Anatomy of an Action</a></h2>
-
- <p>The way <span class="APPLICATION">Privoxy</span> applies <a href=
- "actions-file.html#ACTIONS">actions</a> and <a href=
- "actions-file.html#FILTER">filters</a> to any given URL can be complex,
- and not always so easy to understand what is happening. And sometimes
- we need to be able to <span class="emphasis"><i class=
- "EMPHASIS">see</i></span> just what <span class=
- "APPLICATION">Privoxy</span> is doing. Especially, if something
- <span class="APPLICATION">Privoxy</span> is doing is causing us a
- problem inadvertently. It can be a little daunting to look at the
- actions and filters files themselves, since they tend to be filled with
- <a href="appendix.html#REGEX">regular expressions</a> whose
- consequences are not always so obvious.</p>
-
- <p>One quick test to see if <span class="APPLICATION">Privoxy</span> is
- causing a problem or not, is to disable it temporarily. This should be
- the first troubleshooting step. See <a href=
- "appendix.html#BOOKMARKLETS">the Bookmarklets</a> section on a quick
- and easy way to do this (be sure to flush caches afterward!). Looking
- at the logs is a good idea too. (Note that both the toggle feature and
- logging are enabled via <tt class="FILENAME">config</tt> file settings,
- and may need to be turned <span class="QUOTE">"on"</span>.)</p>
-
- <p>Another easy troubleshooting step to try is if you have done any
- customization of your installation, revert back to the installed
- defaults and see if that helps. There are times the developers get
- complaints about one thing or another, and the problem is more related
- to a customized configuration issue.</p>
-
- <p><span class="APPLICATION">Privoxy</span> also provides the <a href=
- "http://config.privoxy.org/show-url-info" target=
- "_top">http://config.privoxy.org/show-url-info</a> page that can show
- us very specifically how <span class="APPLICATION">actions</span> are
- being applied to any given URL. This is a big help for
- troubleshooting.</p>
-
- <p>First, enter one URL (or partial URL) at the prompt, and then
- <span class="APPLICATION">Privoxy</span> will tell us how the current
- configuration will handle it. This will not help with filtering effects
- (i.e. the <a href="actions-file.html#FILTER"><span class=
- "QUOTE">"+filter"</span></a> action) from one of the filter files since
- this is handled very differently and not so easy to trap! It also will
- not tell you about any other URLs that may be embedded within the URL
- you are testing. For instance, images such as ads are expressed as URLs
- within the raw page source of HTML pages. So you will only get info for
- the actual URL that is pasted into the prompt area -- not any sub-URLs.
- If you want to know about embedded URLs like ads, you will have to dig
- those out of the HTML source. Use your browser's <span class=
- "QUOTE">"View Page Source"</span> option for this. Or right click on
- the ad, and grab the URL.</p>
-
- <p>Let's try an example, <a href="http://google.com" target=
- "_top">google.com</a>, and look at it one section at a time in a sample
- configuration (your real configuration may vary):</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- Matches for http://www.google.com:
-
- In file: default.action <span class="GUIBUTTON">[ View ]</span> <span class=
-"GUIBUTTON">[ Edit ]</span>
-
- {+change-x-forwarded-for{block}
- +deanimate-gifs {last}
- +fast-redirects {check-decoded-url}
- +filter {refresh-tags}
- +filter {img-reorder}
- +filter {banners-by-size}
- +filter {webbugs}
- +filter {jumping-windows}
- +filter {ie-exploits}
- +hide-from-header {block}
- +hide-referrer {forge}
- +session-cookies-only
- +set-image-blocker {pattern}
-/
-
- { -session-cookies-only }
- .google.com
-
- { -fast-redirects }
- .google.com
-
-In file: user.action <span class="GUIBUTTON">[ View ]</span> <span class=
-"GUIBUTTON">[ Edit ]</span>
-(no matches in this file)
-</pre>
- </td>
- </tr>
- </table>
-
- <p>This is telling us how we have defined our <a href=
- "actions-file.html#ACTIONS"><span class="QUOTE">"actions"</span></a>,
- and which ones match for our test case, <span class=
- "QUOTE">"google.com"</span>. Displayed is all the actions that are
- available to us. Remember, the <tt class="LITERAL">+</tt> sign denotes
- <span class="QUOTE">"on"</span>. <tt class="LITERAL">-</tt> denotes
- <span class="QUOTE">"off"</span>. So some are <span class=
- "QUOTE">"on"</span> here, but many are <span class=
- "QUOTE">"off"</span>. Each example we try may provide a slightly
- different end result, depending on our configuration directives.</p>
-
- <p>The first listing is for our <tt class=
- "FILENAME">default.action</tt> file. The large, multi-line listing, is
- how the actions are set to match for all URLs, i.e. our default
- settings. If you look at your <span class="QUOTE">"actions"</span>
- file, this would be the section just below the <span class=
- "QUOTE">"aliases"</span> section near the top. This will apply to all
- URLs as signified by the single forward slash at the end of the listing
- -- <span class="QUOTE">" / "</span>.</p>
-
- <p>But we have defined additional actions that would be exceptions to
- these general rules, and then we list specific URLs (or patterns) that
- these exceptions would apply to. Last match wins. Just below this then
- are two explicit matches for <span class="QUOTE">".google.com"</span>.
- The first is negating our previous cookie setting, which was for
- <a href="actions-file.html#SESSION-COOKIES-ONLY"><span class=
- "QUOTE">"+session-cookies-only"</span></a> (i.e. not persistent). So we
- will allow persistent cookies for google, at least that is how it is in
- this example. The second turns <span class="emphasis"><i class=
- "EMPHASIS">off</i></span> any <a href=
- "actions-file.html#FAST-REDIRECTS"><span class=
- "QUOTE">"+fast-redirects"</span></a> action, allowing this to take
- place unmolested. Note that there is a leading dot here -- <span class=
- "QUOTE">".google.com"</span>. This will match any hosts and
- sub-domains, in the google.com domain also, such as <span class=
- "QUOTE">"www.google.com"</span> or <span class=
- "QUOTE">"mail.google.com"</span>. But it would not match <span class=
- "QUOTE">"www.google.de"</span>! So, apparently, we have these two
- actions defined as exceptions to the general rules at the top somewhere
- in the lower part of our <tt class="FILENAME">default.action</tt> file,
- and <span class="QUOTE">"google.com"</span> is referenced somewhere in
- these latter sections.</p>
-
- <p>Then, for our <tt class="FILENAME">user.action</tt> file, we again
- have no hits. So there is nothing google-specific that we might have
- added to our own, local configuration. If there was, those actions
- would over-rule any actions from previously processed files, such as
- <tt class="FILENAME">default.action</tt>. <tt class=
- "FILENAME">user.action</tt> typically has the last word. This is the
- best place to put hard and fast exceptions,</p>
-
- <p>And finally we pull it all together in the bottom section and
- summarize how <span class="APPLICATION">Privoxy</span> is applying all
- its <span class="QUOTE">"actions"</span> to <span class=
- "QUOTE">"google.com"</span>:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- Final results:
-
- -add-header
- -block
- +change-x-forwarded-for{block}
- -client-header-filter{hide-tor-exit-notation}
- -content-type-overwrite
- -crunch-client-header
- -crunch-if-none-match
- -crunch-incoming-cookies
- -crunch-outgoing-cookies
- -crunch-server-header
- +deanimate-gifs {last}
- -downgrade-http-version
- -fast-redirects
- -filter {js-events}
- -filter {content-cookies}
- -filter {all-popups}
- -filter {banners-by-link}
- -filter {tiny-textforms}
- -filter {frameset-borders}
- -filter {demoronizer}
- -filter {shockwave-flash}
- -filter {quicktime-kioskmode}
- -filter {fun}
- -filter {crude-parental}
- -filter {site-specifics}
- -filter {js-annoyances}
- -filter {html-annoyances}
- +filter {refresh-tags}
- -filter {unsolicited-popups}
- +filter {img-reorder}
- +filter {banners-by-size}
- +filter {webbugs}
- +filter {jumping-windows}
- +filter {ie-exploits}
- -filter {google}
- -filter {yahoo}
- -filter {msn}
- -filter {blogspot}
- -filter {no-ping}
- -force-text-mode
- -handle-as-empty-document
- -handle-as-image
- -hide-accept-language
- -hide-content-disposition
- +hide-from-header {block}
- -hide-if-modified-since
- +hide-referrer {forge}
- -hide-user-agent
- -limit-connect
- -overwrite-last-modified
- -prevent-compression
- -redirect
- -server-header-filter{xml-to-html}
- -server-header-filter{html-to-xml}
- -session-cookies-only
- +set-image-blocker {pattern}
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Notice the only difference here to the previous listing, is to
- <span class="QUOTE">"fast-redirects"</span> and <span class=
- "QUOTE">"session-cookies-only"</span>, which are activated specifically
- for this site in our configuration, and thus show in the <span class=
- "QUOTE">"Final Results"</span>.</p>
-
- <p>Now another example, <span class=
- "QUOTE">"ad.doubleclick.net"</span>:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- { +block{Domains starts with "ad"} }
- ad*.
-
- { +block{Domain contains "ad"} }
- .ad.
-
- { +block{Doubleclick banner server} +handle-as-image }
- .[a-vx-z]*.doubleclick.net
-</pre>
- </td>
- </tr>
- </table>
-
- <p>We'll just show the interesting part here - the explicit matches. It
- is matched three different times. Two <span class=
- "QUOTE">"+block{}"</span> sections, and a <span class="QUOTE">"+block{}
- +handle-as-image"</span>, which is the expanded form of one of our
- aliases that had been defined as: <span class=
- "QUOTE">"+block-as-image"</span>. (<a href=
- "actions-file.html#ALIASES"><span class="QUOTE">"Aliases"</span></a>
- are defined in the first section of the actions file and typically used
- to combine more than one action.)</p>
-
- <p>Any one of these would have done the trick and blocked this as an
- unwanted image. This is unnecessarily redundant since the last case
- effectively would also cover the first. No point in taking chances with
- these guys though ;-) Note that if you want an ad or obnoxious URL to
- be invisible, it should be defined as <span class=
- "QUOTE">"ad.doubleclick.net"</span> is done here -- as both a <a href=
- "actions-file.html#BLOCK"><span class="QUOTE">"+block{}"</span></a>
- <span class="emphasis"><i class="EMPHASIS">and</i></span> an <a href=
- "actions-file.html#HANDLE-AS-IMAGE"><span class=
- "QUOTE">"+handle-as-image"</span></a>. The custom alias <span class=
- "QUOTE">"<tt class="LITERAL">+block-as-image</tt>"</span> just
- simplifies the process and make it more readable.</p>
-
- <p>One last example. Let's try <span class=
- "QUOTE">"http://www.example.net/adsl/HOWTO/"</span>. This one is giving
- us problems. We are getting a blank page. Hmmm ...</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- Matches for http://www.example.net/adsl/HOWTO/:
-
- In file: default.action <span class="GUIBUTTON">[ View ]</span> <span class=
-"GUIBUTTON">[ Edit ]</span>
-
- {-add-header
- -block
- +change-x-forwarded-for{block}
- -client-header-filter{hide-tor-exit-notation}
- -content-type-overwrite
- -crunch-client-header
- -crunch-if-none-match
- -crunch-incoming-cookies
- -crunch-outgoing-cookies
- -crunch-server-header
- +deanimate-gifs
- -downgrade-http-version
- +fast-redirects {check-decoded-url}
- -filter {js-events}
- -filter {content-cookies}
- -filter {all-popups}
- -filter {banners-by-link}
- -filter {tiny-textforms}
- -filter {frameset-borders}
- -filter {demoronizer}
- -filter {shockwave-flash}
- -filter {quicktime-kioskmode}
- -filter {fun}
- -filter {crude-parental}
- -filter {site-specifics}
- -filter {js-annoyances}
- -filter {html-annoyances}
- +filter {refresh-tags}
- -filter {unsolicited-popups}
- +filter {img-reorder}
- +filter {banners-by-size}
- +filter {webbugs}
- +filter {jumping-windows}
- +filter {ie-exploits}
- -filter {google}
- -filter {yahoo}
- -filter {msn}
- -filter {blogspot}
- -filter {no-ping}
- -force-text-mode
- -handle-as-empty-document
- -handle-as-image
- -hide-accept-language
- -hide-content-disposition
- +hide-from-header{block}
- +hide-referer{forge}
- -hide-user-agent
- -overwrite-last-modified
- +prevent-compression
- -redirect
- -server-header-filter{xml-to-html}
- -server-header-filter{html-to-xml}
- +session-cookies-only
- +set-image-blocker{blank} }
- /
-
- { +block{Path contains "ads".} +handle-as-image }
- /ads
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Ooops, the <span class="QUOTE">"/adsl/"</span> is matching
- <span class="QUOTE">"/ads"</span> in our configuration! But we did not
- want this at all! Now we see why we get the blank page. It is actually
- triggering two different actions here, and the effects are aggregated
- so that the URL is blocked, and <span class=
- "APPLICATION">Privoxy</span> is told to treat the block as if it were
- an image. But this is, of course, all wrong. We could now add a new
- action below this (or better in our own <tt class=
- "FILENAME">user.action</tt> file) that explicitly <span class=
- "emphasis"><i class="EMPHASIS">un</i></span> blocks ( <a href=
- "actions-file.html#BLOCK"><span class="QUOTE">"{-block}"</span></a>)
- paths with <span class="QUOTE">"adsl"</span> in them (remember, last
- match in the configuration wins). There are various ways to handle such
- exceptions. Example:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- { -block }
- /adsl
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Now the page displays ;-) Remember to flush your browser's caches
- when making these kinds of changes to your configuration to insure that
- you get a freshly delivered page! Or, try using <tt class=
- "LITERAL">Shift+Reload</tt>.</p>
-
- <p>But now what about a situation where we get no explicit matches like
- we did with:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- { +block{Path starts with "ads".} +handle-as-image }
- /ads
-</pre>
- </td>
- </tr>
- </table>
-
- <p>That actually was very helpful and pointed us quickly to where the
- problem was. If you don't get this kind of match, then it means one of
- the default rules in the first section of <tt class=
- "FILENAME">default.action</tt> is causing the problem. This would
- require some guesswork, and maybe a little trial and error to isolate
- the offending rule. One likely cause would be one of the <a href=
- "actions-file.html#FILTER"><span class="QUOTE">"+filter"</span></a>
- actions. These tend to be harder to troubleshoot. Try adding the URL
- for the site to one of aliases that turn off <a href=
- "actions-file.html#FILTER"><span class=
- "QUOTE">"+filter"</span></a>:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- { shop }
- .quietpc.com
- .worldpay.com # for quietpc.com
- .jungle.com
- .scan.co.uk
- .forbes.com
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="QUOTE">"<tt class="LITERAL">{ shop }</tt>"</span> is an
- <span class="QUOTE">"alias"</span> that expands to <span class=
- "QUOTE">"<tt class="LITERAL">{ -filter -session-cookies-only
- }</tt>"</span>. Or you could do your own exception to negate
- filtering:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- { -filter }
- # Disable ALL filter actions for sites in this section
- .forbes.com
- developer.ibm.com
- localhost
-</pre>
- </td>
- </tr>
- </table>
-
- <p>This would turn off all filtering for these sites. This is best put
- in <tt class="FILENAME">user.action</tt>, for local site exceptions.
- Note that when a simple domain pattern is used by itself (without the
- subsequent path portion), all sub-pages within that domain are included
- automatically in the scope of the action.</p>
-
- <p>Images that are inexplicably being blocked, may well be hitting the
- <a href="actions-file.html#FILTER-BANNERS-BY-SIZE"><span class=
- "QUOTE">"+filter{banners-by-size}"</span></a> rule, which assumes that
- images of certain sizes are ad banners (works well <span class=
- "emphasis"><i class="EMPHASIS">most of the time</i></span> since these
- tend to be standardized).</p>
-
- <p><span class="QUOTE">"<tt class="LITERAL">{ fragile }</tt>"</span> is
- an alias that disables most actions that are the most likely to cause
- trouble. This can be used as a last resort for problem sites.</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- { fragile }
- # Handle with care: easy to break
- mail.google.
- mybank.example.com
-</pre>
- </td>
- </tr>
- </table>
-
- <p><span class="emphasis"><i class="EMPHASIS">Remember to flush
- caches!</i></span> Note that the <tt class="LITERAL">mail.google</tt>
- reference lacks the TLD portion (e.g. <span class=
- "QUOTE">".com"</span>). This will effectively match any TLD with
- <tt class="LITERAL">google</tt> in it, such as <tt class=
- "LITERAL">mail.google.de.</tt>, just as an example.</p>
-
- <p>If this still does not work, you will have to go through the
- remaining actions one by one to find which one(s) is causing the
- problem.</p>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="seealso.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"> </td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">See Also</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top"> </td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>The Main Configuration File</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy 3.0.21 User Manual" href="index.html">
- <link rel="PREVIOUS" title="Privoxy Configuration" href=
- "configuration.html">
- <link rel="NEXT" title="Actions Files" href="actions-file.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
- <link rel="STYLESHEET" type="text/css" href="p_doc.css">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy 3.0.21 User Manual</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href=
- "configuration.html" accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href=
- "actions-file.html" accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="CONFIG" id="CONFIG">7. The Main Configuration
- File</a></h1>
-
- <p>By default, the main configuration file is named <tt class=
- "FILENAME">config</tt>, with the exception of Windows, where it is named
- <tt class="FILENAME">config.txt</tt>. Configuration lines consist of an
- initial keyword followed by a list of values, all separated by whitespace
- (any number of spaces or tabs). For example:</p>
-
- <p class="LITERALLAYOUT"><tt class="LITERAL"> <span class=
- "emphasis"><i class="EMPHASIS">confdir /etc/privoxy</i></span></tt></p>
-
- <p>Assigns the value <tt class="LITERAL">/etc/privoxy</tt> to the option
- <tt class="LITERAL">confdir</tt> and thus indicates that the
- configuration directory is named <span class=
- "QUOTE">"/etc/privoxy/"</span>.</p>
-
- <p>All options in the config file except for <tt class=
- "LITERAL">confdir</tt> and <tt class="LITERAL">logdir</tt> are optional.
- Watch out in the below description for what happens if you leave them
- unset.</p>
-
- <p>The main config file controls all aspects of <span class=
- "APPLICATION">Privoxy</span>'s operation that are not location dependent
- (i.e. they apply universally, no matter where you may be surfing). Like
- the filter and action files, the config file is a plain text file and can
- be modified with a text editor like emacs, vim or notepad.exe.</p>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="LOCAL-SET-UP" id="LOCAL-SET-UP">7.1. Local
- Set-up Documentation</a></h2>
-
- <p>If you intend to operate <span class="APPLICATION">Privoxy</span>
- for more users than just yourself, it might be a good idea to let them
- know how to reach you, what you block and why you do that, your
- policies, etc.</p>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="USER-MANUAL" id="USER-MANUAL">7.1.1.
- user-manual</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>Location of the <span class="APPLICATION">Privoxy</span>
- User Manual.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p>A fully qualified URI</p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p><span class="emphasis"><i class=
- "EMPHASIS">Unset</i></span></p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p><a href="http://www.privoxy.org/user-manual/" target=
- "_top">http://www.privoxy.org/<tt class=
- "REPLACEABLE"><i>version</i></tt>/user-manual/</a> will be
- used, where <tt class="REPLACEABLE"><i>version</i></tt> is the
- <span class="APPLICATION">Privoxy</span> version.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>The User Manual URI is the single best source of information
- on <span class="APPLICATION">Privoxy</span>, and is used for
- help links from some of the internal CGI pages. The manual
- itself is normally packaged with the binary distributions, so
- you probably want to set this to a locally installed copy.</p>
-
- <p>Examples:</p>
-
- <p>The best all purpose solution is simply to put the full
- local <tt class="LITERAL">PATH</tt> to where the <i class=
- "CITETITLE">User Manual</i> is located:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
- user-manual /usr/share/doc/privoxy/user-manual
-</pre>
- </td>
- </tr>
- </table>
-
- <p>The User Manual is then available to anyone with access to
- <span class="APPLICATION">Privoxy</span>, by following the
- built-in URL: <tt class=
- "LITERAL">http://config.privoxy.org/user-manual/</tt> (or the
- shortcut: <tt class=
- "LITERAL">http://p.p/user-manual/</tt>).</p>
-
- <p>If the documentation is not on the local system, it can be
- accessed from a remote server, as:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
- user-manual http://example.com/privoxy/user-manual/
-</pre>
- </td>
- </tr>
- </table>
-
- <div class="WARNING">
- <table class="WARNING" border="1" width="90%">
- <tr>
- <td align="center"><b>Warning</b></td>
- </tr>
-
- <tr>
- <td align="left">
- <p>If set, this option should be <span class=
- "emphasis"><i class="EMPHASIS">the first option in the
- config file</i></span>, because it is used while the
- config file is being read on start-up.</p>
- </td>
- </tr>
- </table>
- </div>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="TRUST-INFO-URL" id="TRUST-INFO-URL">7.1.2.
- trust-info-url</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>A URL to be displayed in the error page that users will see
- if access to an untrusted page is denied.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p>URL</p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p><span class="emphasis"><i class=
- "EMPHASIS">Unset</i></span></p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>No links are displayed on the "untrusted" error page.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>The value of this option only matters if the experimental
- trust mechanism has been activated. (See <a href=
- "config.html#TRUSTFILE"><span class="emphasis"><i class=
- "EMPHASIS">trustfile</i></span></a> below.)</p>
-
- <p>If you use the trust mechanism, it is a good idea to write
- up some on-line documentation about your trust policy and to
- specify the URL(s) here. Use multiple times for multiple
- URLs.</p>
-
- <p>The URL(s) should be added to the trustfile as well, so
- users don't end up locked out from the information on why they
- were locked out in the first place!</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="ADMIN-ADDRESS" id="ADMIN-ADDRESS">7.1.3.
- admin-address</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>An email address to reach the <span class=
- "APPLICATION">Privoxy</span> administrator.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p>Email address</p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p><span class="emphasis"><i class=
- "EMPHASIS">Unset</i></span></p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>No email address is displayed on error pages and the CGI
- user interface.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>If both <tt class="LITERAL">admin-address</tt> and
- <tt class="LITERAL">proxy-info-url</tt> are unset, the whole
- "Local Privoxy Support" box on all generated pages will not be
- shown.</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="PROXY-INFO-URL" id="PROXY-INFO-URL">7.1.4.
- proxy-info-url</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>A URL to documentation about the local <span class=
- "APPLICATION">Privoxy</span> setup, configuration or
- policies.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p>URL</p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p><span class="emphasis"><i class=
- "EMPHASIS">Unset</i></span></p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>No link to local documentation is displayed on error pages
- and the CGI user interface.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>If both <tt class="LITERAL">admin-address</tt> and
- <tt class="LITERAL">proxy-info-url</tt> are unset, the whole
- "Local Privoxy Support" box on all generated pages will not be
- shown.</p>
-
- <p>This URL shouldn't be blocked ;-)</p>
- </dd>
- </dl>
- </div>
- </div>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="CONF-LOG-LOC" id="CONF-LOG-LOC">7.2.
- Configuration and Log File Locations</a></h2>
-
- <p><span class="APPLICATION">Privoxy</span> can (and normally does) use
- a number of other files for additional configuration, help and logging.
- This section of the configuration file tells <span class=
- "APPLICATION">Privoxy</span> where to find those other files.</p>
-
- <p>The user running <span class="APPLICATION">Privoxy</span>, must have
- read permission for all configuration files, and write permission to
- any files that would be modified, such as log files and actions
- files.</p>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="CONFDIR" id="CONFDIR">7.2.1.
- confdir</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>The directory where the other configuration files are
- located.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p>Path name</p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p>/etc/privoxy (Unix) <span class="emphasis"><i class=
- "EMPHASIS">or</i></span> <span class=
- "APPLICATION">Privoxy</span> installation dir (Windows)</p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p><span class="emphasis"><i class=
- "EMPHASIS">Mandatory</i></span></p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>No trailing <span class="QUOTE">"<tt class=
- "LITERAL">/</tt>"</span>, please.</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="TEMPLDIR" id="TEMPLDIR">7.2.2.
- templdir</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>An alternative directory where the templates are loaded
- from.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p>Path name</p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p>unset</p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>The templates are assumed to be located in
- confdir/template.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p><span class="APPLICATION">Privoxy's</span> original
- templates are usually overwritten with each update. Use this
- option to relocate customized templates that should be kept. As
- template variables might change between updates, you shouldn't
- expect templates to work with <span class=
- "APPLICATION">Privoxy</span> releases other than the one they
- were part of, though.</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="LOGDIR" id="LOGDIR">7.2.3. logdir</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>The directory where all logging takes place (i.e. where the
- <tt class="FILENAME">logfile</tt> is located).</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p>Path name</p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p>/var/log/privoxy (Unix) <span class="emphasis"><i class=
- "EMPHASIS">or</i></span> <span class=
- "APPLICATION">Privoxy</span> installation dir (Windows)</p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p><span class="emphasis"><i class=
- "EMPHASIS">Mandatory</i></span></p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>No trailing <span class="QUOTE">"<tt class=
- "LITERAL">/</tt>"</span>, please.</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="ACTIONSFILE" id="ACTIONSFILE">7.2.4.
- actionsfile</a></h4><a name="DEFAULT.ACTION" id=
- "DEFAULT.ACTION"></a><a name="STANDARD.ACTION" id=
- "STANDARD.ACTION"></a><a name="USER.ACTION" id="USER.ACTION"></a>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>The <a href="actions-file.html">actions file(s)</a> to
- use</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p>Complete file name, relative to <tt class=
- "LITERAL">confdir</tt></p>
- </dd>
-
- <dt>Default values:</dt>
-
- <dd>
- <table border="0">
- <tbody>
- <tr>
- <td>
- <p class="LITERALLAYOUT">
- match-all.action # Actions that are applied to all sites and maybe overruled later on.</p>
- </td>
- </tr>
-
- <tr>
- <td>
- <p class="LITERALLAYOUT">
- default.action # Main actions file</p>
- </td>
- </tr>
-
- <tr>
- <td>
- <p class="LITERALLAYOUT">
- user.action # User customizations</p>
- </td>
- </tr>
- </tbody>
- </table>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>No actions are taken at all. More or less neutral
- proxying.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>Multiple <tt class="LITERAL">actionsfile</tt> lines are
- permitted, and are in fact recommended!</p>
-
- <p>The default values are <tt class=
- "FILENAME">default.action</tt>, which is the <span class=
- "QUOTE">"main"</span> actions file maintained by the
- developers, and <tt class="FILENAME">user.action</tt>, where
- you can make your personal additions.</p>
-
- <p>Actions files contain all the per site and per URL
- configuration for ad blocking, cookie management, privacy
- considerations, etc. There is no point in using <span class=
- "APPLICATION">Privoxy</span> without at least one actions
- file.</p>
-
- <p>Note that since Privoxy 3.0.7, the complete filename,
- including the <span class="QUOTE">".action"</span> extension
- has to be specified. The syntax change was necessary to be
- consistent with the other file options and to allow previously
- forbidden characters.</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="FILTERFILE" id="FILTERFILE">7.2.5.
- filterfile</a></h4><a name="DEFAULT.FILTER" id="DEFAULT.FILTER"></a>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>The <a href="filter-file.html">filter file(s)</a> to use</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p>File name, relative to <tt class="LITERAL">confdir</tt></p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p>default.filter (Unix) <span class="emphasis"><i class=
- "EMPHASIS">or</i></span> default.filter.txt (Windows)</p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>No textual content filtering takes place, i.e. all
- <tt class="LITERAL">+<a href=
- "actions-file.html#FILTER">filter</a>{<tt class=
- "REPLACEABLE"><i>name</i></tt>}</tt> actions in the actions
- files are turned neutral.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>Multiple <tt class="LITERAL">filterfile</tt> lines are
- permitted.</p>
-
- <p>The <a href="filter-file.html">filter files</a> contain
- content modification rules that use <a href=
- "appendix.html#REGEX">regular expressions</a>. These rules
- permit powerful changes on the content of Web pages, and
- optionally the headers as well, e.g., you could try to disable
- your favorite JavaScript annoyances, re-write the actual
- displayed text, or just have some fun playing buzzword bingo
- with web pages.</p>
-
- <p>The <tt class="LITERAL">+<a href=
- "actions-file.html#FILTER">filter</a>{<tt class=
- "REPLACEABLE"><i>name</i></tt>}</tt> actions rely on the
- relevant filter (<tt class="REPLACEABLE"><i>name</i></tt>) to
- be defined in a filter file!</p>
-
- <p>A pre-defined filter file called <tt class=
- "FILENAME">default.filter</tt> that contains a number of useful
- filters for common problems is included in the distribution.
- See the section on the <tt class="LITERAL"><a href=
- "actions-file.html#FILTER">filter</a></tt> action for a
- list.</p>
-
- <p>It is recommended to place any locally adapted filters into
- a separate file, such as <tt class=
- "FILENAME">user.filter</tt>.</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="LOGFILE" id="LOGFILE">7.2.6.
- logfile</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>The log file to use</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p>File name, relative to <tt class="LITERAL">logdir</tt></p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p><span class="emphasis"><i class="EMPHASIS">Unset (commented
- out)</i></span>. When activated: logfile (Unix) <span class=
- "emphasis"><i class="EMPHASIS">or</i></span> privoxy.log
- (Windows).</p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>No logfile is written.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>The logfile is where all logging and error messages are
- written. The level of detail and number of messages are set
- with the <tt class="LITERAL">debug</tt> option (see below). The
- logfile can be useful for tracking down a problem with
- <span class="APPLICATION">Privoxy</span> (e.g., it's not
- blocking an ad you think it should block) and it can help you
- to monitor what your browser is doing.</p>
-
- <p>Depending on the debug options below, the logfile may be a
- privacy risk if third parties can get access to it. As most
- users will never look at it, <span class=
- "APPLICATION">Privoxy</span> 3.0.7 and later only log fatal
- errors by default.</p>
-
- <p>For most troubleshooting purposes, you will have to change
- that, please refer to the debugging section for details.</p>
-
- <p>Your logfile will grow indefinitely, and you will probably
- want to periodically remove it. On Unix systems, you can do
- this with a cron job (see <span class="QUOTE">"man
- cron"</span>).</p>
-
- <p>Any log files must be writable by whatever user <span class=
- "APPLICATION">Privoxy</span> is being run as (on Unix, default
- user id is <span class="QUOTE">"privoxy"</span>).</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="TRUSTFILE" id="TRUSTFILE">7.2.7.
- trustfile</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>The name of the trust file to use</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p>File name, relative to <tt class="LITERAL">confdir</tt></p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p><span class="emphasis"><i class="EMPHASIS">Unset (commented
- out)</i></span>. When activated: trust (Unix) <span class=
- "emphasis"><i class="EMPHASIS">or</i></span> trust.txt
- (Windows)</p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>The entire trust mechanism is disabled.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>The trust mechanism is an experimental feature for building
- white-lists and should be used with care. It is <span class=
- "emphasis"><i class="EMPHASIS">NOT</i></span> recommended for
- the casual user.</p>
-
- <p>If you specify a trust file, <span class=
- "APPLICATION">Privoxy</span> will only allow access to sites
- that are specified in the trustfile. Sites can be listed in one
- of two ways:</p>
-
- <p>Prepending a <tt class="LITERAL">~</tt> character limits
- access to this site only (and any sub-paths within this site),
- e.g. <tt class="LITERAL">~www.example.com</tt> allows access to
- <tt class="LITERAL">~www.example.com/features/news.html</tt>,
- etc.</p>
-
- <p>Or, you can designate sites as <span class=
- "emphasis"><i class="EMPHASIS">trusted referrers</i></span>, by
- prepending the name with a <tt class="LITERAL">+</tt>
- character. The effect is that access to untrusted sites will be
- granted -- but only if a link from this trusted referrer was
- used to get there. The link target will then be added to the
- <span class="QUOTE">"trustfile"</span> so that future, direct
- accesses will be granted. Sites added via this mechanism do not
- become trusted referrers themselves (i.e. they are added with a
- <tt class="LITERAL">~</tt> designation). There is a limit of
- 512 such entries, after which new entries will not be made.</p>
-
- <p>If you use the <tt class="LITERAL">+</tt> operator in the
- trust file, it may grow considerably over time.</p>
-
- <p>It is recommended that <span class=
- "APPLICATION">Privoxy</span> be compiled with the <tt class=
- "LITERAL">--disable-force</tt>, <tt class=
- "LITERAL">--disable-toggle</tt> and <tt class=
- "LITERAL">--disable-editor</tt> options, if this feature is to
- be used.</p>
-
- <p>Possible applications include limiting Internet access for
- children.</p>
- </dd>
- </dl>
- </div>
- </div>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="DEBUGGING" id="DEBUGGING">7.3.
- Debugging</a></h2>
-
- <p>These options are mainly useful when tracing a problem. Note that
- you might also want to invoke <span class="APPLICATION">Privoxy</span>
- with the <tt class="LITERAL">--no-daemon</tt> command line option when
- debugging.</p>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="DEBUG" id="DEBUG">7.3.1. debug</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>Key values that determine what information gets logged.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p>Integer values</p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p>0 (i.e.: only fatal errors (that cause Privoxy to exit) are
- logged)</p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>Default value is used (see above).</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>The available debug levels are:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- debug 1 # Log the destination for each request <span class=
-"APPLICATION">Privoxy</span> let through. See also debug 1024.
- debug 2 # show each connection status
- debug 4 # show I/O status
- debug 8 # show header parsing
- debug 16 # log all data written to the network
- debug 32 # debug force feature
- debug 64 # debug regular expression filters
- debug 128 # debug redirects
- debug 256 # debug GIF de-animation
- debug 512 # Common Log Format
- debug 1024 # Log the destination for requests <span class=
-"APPLICATION">Privoxy</span> didn't let through, and the reason why.
- debug 2048 # CGI user interface
- debug 4096 # Startup banner and warnings.
- debug 8192 # Non-fatal errors
- debug 32768 # log all data read from the network
- debug 65536 # Log the applying actions
-</pre>
- </td>
- </tr>
- </table>
-
- <p>To select multiple debug levels, you can either add them or
- use multiple <tt class="LITERAL">debug</tt> lines.</p>
-
- <p>A debug level of 1 is informative because it will show you
- each request as it happens. <span class="emphasis"><i class=
- "EMPHASIS">1, 1024, 4096 and 8192 are recommended</i></span> so
- that you will notice when things go wrong. The other levels are
- probably only of interest if you are hunting down a specific
- problem. They can produce a hell of an output (especially
- 16).</p>
-
- <p><span class="APPLICATION">Privoxy</span> used to ship with
- the debug levels recommended above enabled by default, but due
- to privacy concerns 3.0.7 and later are configured to only log
- fatal errors.</p>
-
- <p>If you are used to the more verbose settings, simply enable
- the debug lines below again.</p>
-
- <p>If you want to use pure CLF (Common Log Format), you should
- set <span class="QUOTE">"debug 512"</span> <span class=
- "emphasis"><i class="EMPHASIS">ONLY</i></span> and not enable
- anything else.</p>
-
- <p><span class="APPLICATION">Privoxy</span> has a hard-coded
- limit for the length of log messages. If it's reached, messages
- are logged truncated and marked with <span class="QUOTE">"...
- [too long, truncated]"</span>.</p>
-
- <p>Please don't file any support requests without trying to
- reproduce the problem with increased debug level first. Once
- you read the log messages, you may even be able to solve the
- problem on your own.</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="SINGLE-THREADED" id=
- "SINGLE-THREADED">7.3.2. single-threaded</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>Whether to run only one server thread.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p><span class="emphasis"><i class=
- "EMPHASIS">None</i></span></p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p><span class="emphasis"><i class=
- "EMPHASIS">Unset</i></span></p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>Multi-threaded (or, where unavailable: forked) operation,
- i.e. the ability to serve multiple requests simultaneously.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>This option is only there for debugging purposes.
- <span class="emphasis"><i class="EMPHASIS">It will drastically
- reduce performance.</i></span></p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="HOSTNAME" id="HOSTNAME">7.3.3.
- hostname</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>The hostname shown on the CGI pages.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p>Text</p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p><span class="emphasis"><i class=
- "EMPHASIS">Unset</i></span></p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>The hostname provided by the operating system is used.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>On some misconfigured systems resolving the hostname fails
- or takes too much time and slows Privoxy down. Setting a fixed
- hostname works around the problem.</p>
-
- <p>In other circumstances it might be desirable to show a
- hostname other than the one returned by the operating system.
- For example if the system has several different hostnames and
- you don't want to use the first one.</p>
-
- <p>Note that Privoxy does not validate the specified hostname
- value.</p>
- </dd>
- </dl>
- </div>
- </div>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="ACCESS-CONTROL" id="ACCESS-CONTROL">7.4.
- Access Control and Security</a></h2>
-
- <p>This section of the config file controls the security-relevant
- aspects of <span class="APPLICATION">Privoxy</span>'s
- configuration.</p>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="LISTEN-ADDRESS" id="LISTEN-ADDRESS">7.4.1.
- listen-address</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>The address and TCP port on which <span class=
- "APPLICATION">Privoxy</span> will listen for client
- requests.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p>[<tt class="REPLACEABLE"><i>IP-Address</i></tt>]:<tt class=
- "REPLACEABLE"><i>Port</i></tt></p>
-
- <p>[<tt class="REPLACEABLE"><i>Hostname</i></tt>]:<tt class=
- "REPLACEABLE"><i>Port</i></tt></p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p>127.0.0.1:8118</p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>Bind to 127.0.0.1 (IPv4 localhost), port 8118. This is
- suitable and recommended for home users who run <span class=
- "APPLICATION">Privoxy</span> on the same machine as their
- browser.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>You will need to configure your browser(s) to this proxy
- address and port.</p>
-
- <p>If you already have another service running on port 8118, or
- if you want to serve requests from other machines (e.g. on your
- local network) as well, you will need to override the
- default.</p>
-
- <p>You can use this statement multiple times to make
- <span class="APPLICATION">Privoxy</span> listen on more ports
- or more <abbr class="ABBREV">IP</abbr> addresses. Suitable if
- your operating system does not support sharing <abbr class=
- "ABBREV">IPv6</abbr> and <abbr class="ABBREV">IPv4</abbr>
- protocols on the same socket.</p>
-
- <p>If a hostname is used instead of an IP address, <span class=
- "APPLICATION">Privoxy</span> will try to resolve it to an IP
- address and if there are multiple, use the first one
- returned.</p>
-
- <p>If the address for the hostname isn't already known on the
- system (for example because it's in /etc/hostname), this may
- result in DNS traffic.</p>
-
- <p>If the specified address isn't available on the system, or
- if the hostname can't be resolved, <span class=
- "APPLICATION">Privoxy</span> will fail to start.</p>
-
- <p>IPv6 addresses containing colons have to be quoted by
- brackets. They can only be used if <span class=
- "APPLICATION">Privoxy</span> has been compiled with IPv6
- support. If you aren't sure if your version supports it, have a
- look at <tt class=
- "LITERAL">http://config.privoxy.org/show-status</tt>.</p>
-
- <p>Some operating systems will prefer IPv6 to IPv4 addresses
- even if the system has no IPv6 connectivity which is usually
- not expected by the user. Some even rely on DNS to resolve
- localhost which mean the "localhost" address used may not
- actually be local.</p>
-
- <p>It is therefore recommended to explicitly configure the
- intended IP address instead of relying on the operating system,
- unless there's a strong reason not to.</p>
-
- <p>If you leave out the address, <span class=
- "APPLICATION">Privoxy</span> will bind to all IPv4 interfaces
- (addresses) on your machine and may become reachable from the
- Internet and/or the local network. Be aware that some GNU/Linux
- distributions modify that behaviour without updating the
- documentation. Check for non-standard patches if your
- <span class="APPLICATION">Privoxy</span> version behaves
- differently.</p>
-
- <p>If you configure <span class="APPLICATION">Privoxy</span> to
- be reachable from the network, consider using <a href=
- "config.html#ACLS">access control lists</a> (ACL's, see below),
- and/or a firewall.</p>
-
- <p>If you open <span class="APPLICATION">Privoxy</span> to
- untrusted users, you will also want to make sure that the
- following actions are disabled: <tt class="LITERAL"><a href=
- "config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</a></tt>
- and <tt class="LITERAL"><a href=
- "config.html#ENABLE-REMOTE-TOGGLE">enable-remote-toggle</a></tt></p>
- </dd>
-
- <dt>Example:</dt>
-
- <dd>
- <p>Suppose you are running <span class=
- "APPLICATION">Privoxy</span> on a machine which has the address
- 192.168.0.1 on your local private network (192.168.0.0) and has
- another outside connection with a different address. You want
- it to serve requests from inside only:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- listen-address 192.168.0.1:8118
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Suppose you are running <span class=
- "APPLICATION">Privoxy</span> on an IPv6-capable machine and you
- want it to listen on the IPv6 address of the loopback
- device:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- listen-address [::1]:8118
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="TOGGLE" id="TOGGLE">7.4.2. toggle</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>Initial state of "toggle" status</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p>1 or 0</p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p>1</p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>Act as if toggled on</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>If set to 0, <span class="APPLICATION">Privoxy</span> will
- start in <span class="QUOTE">"toggled off"</span> mode, i.e.
- mostly behave like a normal, content-neutral proxy with both ad
- blocking and content filtering disabled. See <tt class=
- "LITERAL">enable-remote-toggle</tt> below.</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="ENABLE-REMOTE-TOGGLE" id=
- "ENABLE-REMOTE-TOGGLE">7.4.3. enable-remote-toggle</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>Whether or not the <a href=
- "http://config.privoxy.org/toggle" target="_top">web-based
- toggle feature</a> may be used</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p>0 or 1</p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p>0</p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>The web-based toggle feature is disabled.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>When toggled off, <span class="APPLICATION">Privoxy</span>
- mostly acts like a normal, content-neutral proxy, i.e. doesn't
- block ads or filter content.</p>
-
- <p>Access to the toggle feature can <span class=
- "emphasis"><i class="EMPHASIS">not</i></span> be controlled
- separately by <span class="QUOTE">"ACLs"</span> or HTTP
- authentication, so that everybody who can access <span class=
- "APPLICATION">Privoxy</span> (see <span class=
- "QUOTE">"ACLs"</span> and <tt class=
- "LITERAL">listen-address</tt> above) can toggle it for all
- users. So this option is <span class="emphasis"><i class=
- "EMPHASIS">not recommended</i></span> for multi-user
- environments with untrusted users.</p>
-
- <p>Note that malicious client side code (e.g Java) is also
- capable of using this option.</p>
-
- <p>As a lot of <span class="APPLICATION">Privoxy</span> users
- don't read documentation, this feature is disabled by
- default.</p>
-
- <p>Note that you must have compiled <span class=
- "APPLICATION">Privoxy</span> with support for this feature,
- otherwise this option has no effect.</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="ENABLE-REMOTE-HTTP-TOGGLE" id=
- "ENABLE-REMOTE-HTTP-TOGGLE">7.4.4. enable-remote-http-toggle</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>Whether or not Privoxy recognizes special HTTP headers to
- change its behaviour.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p>0 or 1</p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p>0</p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>Privoxy ignores special HTTP headers.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>When toggled on, the client can change <span class=
- "APPLICATION">Privoxy's</span> behaviour by setting special
- HTTP headers. Currently the only supported special header is
- <span class="QUOTE">"X-Filter: No"</span>, to disable filtering
- for the ongoing request, even if it is enabled in one of the
- action files.</p>
-
- <p>This feature is disabled by default. If you are using
- <span class="APPLICATION">Privoxy</span> in a environment with
- trusted clients, you may enable this feature at your
- discretion. Note that malicious client side code (e.g Java) is
- also capable of using this feature.</p>
-
- <p>This option will be removed in future releases as it has
- been obsoleted by the more general header taggers.</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="ENABLE-EDIT-ACTIONS" id=
- "ENABLE-EDIT-ACTIONS">7.4.5. enable-edit-actions</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>Whether or not the <a href=
- "http://config.privoxy.org/show-status" target="_top">web-based
- actions file editor</a> may be used</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p>0 or 1</p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p>0</p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>The web-based actions file editor is disabled.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>Access to the editor can <span class="emphasis"><i class=
- "EMPHASIS">not</i></span> be controlled separately by
- <span class="QUOTE">"ACLs"</span> or HTTP authentication, so
- that everybody who can access <span class=
- "APPLICATION">Privoxy</span> (see <span class=
- "QUOTE">"ACLs"</span> and <tt class=
- "LITERAL">listen-address</tt> above) can modify its
- configuration for all users.</p>
-
- <p>This option is <span class="emphasis"><i class=
- "EMPHASIS">not recommended</i></span> for environments with
- untrusted users and as a lot of <span class=
- "APPLICATION">Privoxy</span> users don't read documentation,
- this feature is disabled by default.</p>
-
- <p>Note that malicious client side code (e.g Java) is also
- capable of using the actions editor and you shouldn't enable
- this options unless you understand the consequences and are
- sure your browser is configured correctly.</p>
-
- <p>Note that you must have compiled <span class=
- "APPLICATION">Privoxy</span> with support for this feature,
- otherwise this option has no effect.</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="ENFORCE-BLOCKS" id="ENFORCE-BLOCKS">7.4.6.
- enforce-blocks</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>Whether the user is allowed to ignore blocks and can
- <span class="QUOTE">"go there anyway"</span>.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p><tt class="REPLACEABLE"><i>0 or 1</i></tt></p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p><span class="emphasis"><i class="EMPHASIS">0</i></span></p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>Blocks are not enforced.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p><span class="APPLICATION">Privoxy</span> is mainly used to
- block and filter requests as a service to the user, for example
- to block ads and other junk that clogs the pipes. <span class=
- "APPLICATION">Privoxy's</span> configuration isn't perfect and
- sometimes innocent pages are blocked. In this situation it
- makes sense to allow the user to enforce the request and have
- <span class="APPLICATION">Privoxy</span> ignore the block.</p>
-
- <p>In the default configuration <span class=
- "APPLICATION">Privoxy's</span> <span class=
- "QUOTE">"Blocked"</span> page contains a <span class=
- "QUOTE">"go there anyway"</span> link to adds a special string
- (the force prefix) to the request URL. If that link is used,
- <span class="APPLICATION">Privoxy</span> will detect the force
- prefix, remove it again and let the request pass.</p>
-
- <p>Of course <span class="APPLICATION">Privoxy</span> can also
- be used to enforce a network policy. In that case the user
- obviously should not be able to bypass any blocks, and that's
- what the <span class="QUOTE">"enforce-blocks"</span> option is
- for. If it's enabled, <span class="APPLICATION">Privoxy</span>
- hides the <span class="QUOTE">"go there anyway"</span> link. If
- the user adds the force prefix by hand, it will not be accepted
- and the circumvention attempt is logged.</p>
- </dd>
-
- <dt>Examples:</dt>
-
- <dd>
- <p>enforce-blocks 1</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="ACLS" id="ACLS">7.4.7. ACLs: permit-access
- and deny-access</a></h4><a name="PERMIT-ACCESS" id=
- "PERMIT-ACCESS"></a><a name="DENY-ACCESS" id="DENY-ACCESS"></a>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>Who can access what.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p><tt class="REPLACEABLE"><i>src_addr</i></tt>[:<tt class=
- "REPLACEABLE"><i>port</i></tt>][/<tt class=
- "REPLACEABLE"><i>src_masklen</i></tt>] [<tt class=
- "REPLACEABLE"><i>dst_addr</i></tt>[:<tt class=
- "REPLACEABLE"><i>port</i></tt>][/<tt class=
- "REPLACEABLE"><i>dst_masklen</i></tt>]]</p>
-
- <p>Where <tt class="REPLACEABLE"><i>src_addr</i></tt> and
- <tt class="REPLACEABLE"><i>dst_addr</i></tt> are IPv4 addresses
- in dotted decimal notation or valid DNS names, <tt class=
- "REPLACEABLE"><i>port</i></tt> is a port number, and <tt class=
- "REPLACEABLE"><i>src_masklen</i></tt> and <tt class=
- "REPLACEABLE"><i>dst_masklen</i></tt> are subnet masks in CIDR
- notation, i.e. integer values from 2 to 30 representing the
- length (in bits) of the network address. The masks and the
- whole destination part are optional.</p>
-
- <p>If your system implements <a href=
- "http://tools.ietf.org/html/rfc3493" target="_top">RFC
- 3493</a>, then <tt class="REPLACEABLE"><i>src_addr</i></tt> and
- <tt class="REPLACEABLE"><i>dst_addr</i></tt> can be IPv6
- addresses delimeted by brackets, <tt class=
- "REPLACEABLE"><i>port</i></tt> can be a number or a service
- name, and <tt class="REPLACEABLE"><i>src_masklen</i></tt> and
- <tt class="REPLACEABLE"><i>dst_masklen</i></tt> can be a number
- from 0 to 128.</p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p><span class="emphasis"><i class=
- "EMPHASIS">Unset</i></span></p>
-
- <p>If no <tt class="REPLACEABLE"><i>port</i></tt> is specified,
- any port will match. If no <tt class=
- "REPLACEABLE"><i>src_masklen</i></tt> or <tt class=
- "REPLACEABLE"><i>src_masklen</i></tt> is given, the complete IP
- address has to match (i.e. 32 bits for IPv4 and 128 bits for
- IPv6).</p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>Don't restrict access further than implied by <tt class=
- "LITERAL">listen-address</tt></p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>Access controls are included at the request of ISPs and
- systems administrators, and <span class="emphasis"><i class=
- "EMPHASIS">are not usually needed by individual
- users</i></span>. For a typical home user, it will normally
- suffice to ensure that <span class="APPLICATION">Privoxy</span>
- only listens on the localhost (127.0.0.1) or internal (home)
- network address by means of the <a href=
- "config.html#LISTEN-ADDRESS"><span class="emphasis"><i class=
- "EMPHASIS">listen-address</i></span></a> option.</p>
-
- <p>Please see the warnings in the FAQ that <span class=
- "APPLICATION">Privoxy</span> is not intended to be a substitute
- for a firewall or to encourage anyone to defer addressing basic
- security weaknesses.</p>
-
- <p>Multiple ACL lines are OK. If any ACLs are specified,
- <span class="APPLICATION">Privoxy</span> only talks to IP
- addresses that match at least one <tt class=
- "LITERAL">permit-access</tt> line and don't match any
- subsequent <tt class="LITERAL">deny-access</tt> line. In other
- words, the last match wins, with the default being <tt class=
- "LITERAL">deny-access</tt>.</p>
-
- <p>If <span class="APPLICATION">Privoxy</span> is using a
- forwarder (see <tt class="LITERAL">forward</tt> below) for a
- particular destination URL, the <tt class=
- "REPLACEABLE"><i>dst_addr</i></tt> that is examined is the
- address of the forwarder and <span class="emphasis"><i class=
- "EMPHASIS">NOT</i></span> the address of the ultimate target.
- This is necessary because it may be impossible for the local
- <span class="APPLICATION">Privoxy</span> to determine the IP
- address of the ultimate target (that's often what gateways are
- used for).</p>
-
- <p>You should prefer using IP addresses over DNS names, because
- the address lookups take time. All DNS names must resolve! You
- can <span class="emphasis"><i class="EMPHASIS">not</i></span>
- use domain patterns like <span class="QUOTE">"*.org"</span> or
- partial domain names. If a DNS name resolves to multiple IP
- addresses, only the first one is used.</p>
-
- <p>Some systems allow IPv4 clients to connect to IPv6 server
- sockets. Then the client's IPv4 address will be translated by
- the system into IPv6 address space with special prefix
- ::ffff:0:0/96 (so called IPv4 mapped IPv6 address).
- <span class="APPLICATION">Privoxy</span> can handle it and maps
- such ACL addresses automatically.</p>
-
- <p>Denying access to particular sites by ACL may have undesired
- side effects if the site in question is hosted on a machine
- which also hosts other sites (most sites are).</p>
- </dd>
-
- <dt>Examples:</dt>
-
- <dd>
- <p>Explicitly define the default behavior if no ACL and
- <tt class="LITERAL">listen-address</tt> are set: <span class=
- "QUOTE">"localhost"</span> is OK. The absence of a <tt class=
- "REPLACEABLE"><i>dst_addr</i></tt> implies that <span class=
- "emphasis"><i class="EMPHASIS">all</i></span> destination
- addresses are OK:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
- permit-access localhost
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Allow any host on the same class C subnet as www.privoxy.org
- access to nothing but www.example.com (or other domains hosted
- on the same system):</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
- permit-access www.privoxy.org/24 www.example.com/32
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Allow access from any host on the 26-bit subnet
- 192.168.45.64 to anywhere, with the exception that
- 192.168.45.73 may not access the IP address behind
- www.dirty-stuff.example.com:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
- permit-access 192.168.45.64/26
- deny-access 192.168.45.73 www.dirty-stuff.example.com
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Allow access from the IPv4 network 192.0.2.0/24 even if
- listening on an IPv6 wild card address (not supported on all
- platforms):</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- permit-access 192.0.2.0/24
-</pre>
- </td>
- </tr>
- </table>
-
- <p>This is equivalent to the following line even if listening
- on an IPv4 address (not supported on all platforms):</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- permit-access [::ffff:192.0.2.0]/120
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="BUFFER-LIMIT" id="BUFFER-LIMIT">7.4.8.
- buffer-limit</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>Maximum size of the buffer for content filtering.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p>Size in Kbytes</p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p>4096</p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>Use a 4MB (4096 KB) limit.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>For content filtering, i.e. the <tt class=
- "LITERAL">+filter</tt> and <tt class=
- "LITERAL">+deanimate-gif</tt> actions, it is necessary that
- <span class="APPLICATION">Privoxy</span> buffers the entire
- document body. This can be potentially dangerous, since a
- server could just keep sending data indefinitely and wait for
- your RAM to exhaust -- with nasty consequences. Hence this
- option.</p>
-
- <p>When a document buffer size reaches the <tt class=
- "LITERAL">buffer-limit</tt>, it is flushed to the client
- unfiltered and no further attempt to filter the rest of the
- document is made. Remember that there may be multiple threads
- running, which might require up to <tt class=
- "LITERAL">buffer-limit</tt> Kbytes <span class=
- "emphasis"><i class="EMPHASIS">each</i></span>, unless you have
- enabled <span class="QUOTE">"single-threaded"</span> above.</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="ENABLE-PROXY-AUTHENTICATION-FORWARDING"
- id="ENABLE-PROXY-AUTHENTICATION-FORWARDING">7.4.9.
- enable-proxy-authentication-forwarding</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>Whether or not proxy authentication through <span class=
- "APPLICATION">Privoxy</span> should work.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p>0 or 1</p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p>0</p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>Proxy authentication headers are removed.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>Privoxy itself does not support proxy authentication, but
- can allow clients to authenticate against Privoxy's parent
- proxy.</p>
-
- <p>By default Privoxy (3.0.21 and later) don't do that and
- remove Proxy-Authorization headers in requests and
- Proxy-Authenticate headers in responses to make it harder for
- malicious sites to trick inexperienced users into providing
- login information.</p>
-
- <p>If this option is enabled the headers are forwarded.</p>
-
- <p>Enabling this option is <span class="emphasis"><i class=
- "EMPHASIS">not recommended</i></span> if there is no parent
- proxy that requires authentication or if the local network
- between Privoxy and the parent proxy isn't trustworthy. If
- proxy authentication is only required for some requests, it is
- recommended to use a client header filter to remove the
- authentication headers for requests where they aren't
- needed.</p>
- </dd>
- </dl>
- </div>
- </div>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="FORWARDING" id="FORWARDING">7.5.
- Forwarding</a></h2>
-
- <p>This feature allows routing of HTTP requests through a chain of
- multiple proxies.</p>
-
- <p>Forwarding can be used to chain Privoxy with a caching proxy to
- speed up browsing. Using a parent proxy may also be necessary if the
- machine that <span class="APPLICATION">Privoxy</span> runs on has no
- direct Internet access.</p>
-
- <p>Note that parent proxies can severely decrease your privacy level.
- For example a parent proxy could add your IP address to the request
- headers and if it's a caching proxy it may add the <span class=
- "QUOTE">"Etag"</span> header to revalidation requests again, even
- though you configured Privoxy to remove it. It may also ignore
- Privoxy's header time randomization and use the original values which
- could be used by the server as cookie replacement to track your steps
- between visits.</p>
-
- <p>Also specified here are SOCKS proxies. <span class=
- "APPLICATION">Privoxy</span> supports the SOCKS 4 and SOCKS 4A
- protocols.</p>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="FORWARD" id="FORWARD">7.5.1.
- forward</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>To which parent HTTP proxy specific requests should be
- routed.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p><tt class="REPLACEABLE"><i>target_pattern</i></tt>
- <tt class="REPLACEABLE"><i>http_parent</i></tt>[:<tt class=
- "REPLACEABLE"><i>port</i></tt>]</p>
-
- <p>where <tt class="REPLACEABLE"><i>target_pattern</i></tt> is
- a <a href="actions-file.html#AF-PATTERNS">URL pattern</a> that
- specifies to which requests (i.e. URLs) this forward rule shall
- apply. Use <tt class="LITERAL">/</tt> to denote <span class=
- "QUOTE">"all URLs"</span>. <tt class=
- "REPLACEABLE"><i>http_parent</i></tt>[:<tt class=
- "REPLACEABLE"><i>port</i></tt>] is the DNS name or IP address
- of the parent HTTP proxy through which the requests should be
- forwarded, optionally followed by its listening port (default:
- 8000). Use a single dot (<tt class="LITERAL">.</tt>) to denote
- <span class="QUOTE">"no forwarding"</span>.</p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p><span class="emphasis"><i class=
- "EMPHASIS">Unset</i></span></p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>Don't use parent HTTP proxies.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>If <tt class="REPLACEABLE"><i>http_parent</i></tt> is
- <span class="QUOTE">"."</span>, then requests are not forwarded
- to another HTTP proxy but are made directly to the web
- servers.</p>
-
- <p><tt class="REPLACEABLE"><i>http_parent</i></tt> can be a
- numerical IPv6 address (if <a href=
- "http://tools.ietf.org/html/rfc3493" target="_top">RFC 3493</a>
- is implemented). To prevent clashes with the port delimiter,
- the whole IP address has to be put into brackets. On the other
- hand a <tt class="REPLACEABLE"><i>target_pattern</i></tt>
- containing an IPv6 address has to be put into angle brackets
- (normal brackets are reserved for regular expressions
- already).</p>
-
- <p>Multiple lines are OK, they are checked in sequence, and the
- last match wins.</p>
- </dd>
-
- <dt>Examples:</dt>
-
- <dd>
- <p>Everything goes to an example parent proxy, except SSL on
- port 443 (which it doesn't handle):</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
- forward / parent-proxy.example.org:8080
- forward :443 .
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Everything goes to our example ISP's caching proxy, except
- for requests to that ISP's sites:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
- forward / caching-proxy.isp.example.net:8000
- forward .isp.example.net .
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Parent proxy specified by an IPv6 address:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- forward / [2001:DB8::1]:8000
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Suppose your parent proxy doesn't support IPv6:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="PROGRAMLISTING">
- forward / parent-proxy.example.org:8000
- forward ipv6-server.example.org .
- forward <[2-3][0-9a-f][0-9a-f][0-9a-f]:*> .
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="SOCKS" id="SOCKS">7.5.2. forward-socks4,
- forward-socks4a, forward-socks5 and forward-socks5t</a></h4><a name=
- "FORWARD-SOCKS4" id="FORWARD-SOCKS4"></a><a name="FORWARD-SOCKS4A"
- id="FORWARD-SOCKS4A"></a>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>Through which SOCKS proxy (and optionally to which parent
- HTTP proxy) specific requests should be routed.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p><tt class="REPLACEABLE"><i>target_pattern</i></tt>
- <tt class="REPLACEABLE"><i>socks_proxy</i></tt>[:<tt class=
- "REPLACEABLE"><i>port</i></tt>] <tt class=
- "REPLACEABLE"><i>http_parent</i></tt>[:<tt class=
- "REPLACEABLE"><i>port</i></tt>]</p>
-
- <p>where <tt class="REPLACEABLE"><i>target_pattern</i></tt> is
- a <a href="actions-file.html#AF-PATTERNS">URL pattern</a> that
- specifies to which requests (i.e. URLs) this forward rule shall
- apply. Use <tt class="LITERAL">/</tt> to denote <span class=
- "QUOTE">"all URLs"</span>. <tt class=
- "REPLACEABLE"><i>http_parent</i></tt> and <tt class=
- "REPLACEABLE"><i>socks_proxy</i></tt> are IP addresses in
- dotted decimal notation or valid DNS names (<tt class=
- "REPLACEABLE"><i>http_parent</i></tt> may be <span class=
- "QUOTE">"."</span> to denote <span class="QUOTE">"no HTTP
- forwarding"</span>), and the optional <tt class=
- "REPLACEABLE"><i>port</i></tt> parameters are TCP ports, i.e.
- integer values from 1 to 65535</p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p><span class="emphasis"><i class=
- "EMPHASIS">Unset</i></span></p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>Don't use SOCKS proxies.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>Multiple lines are OK, they are checked in sequence, and the
- last match wins.</p>
-
- <p>The difference between <tt class=
- "LITERAL">forward-socks4</tt> and <tt class=
- "LITERAL">forward-socks4a</tt> is that in the SOCKS 4A
- protocol, the DNS resolution of the target hostname happens on
- the SOCKS server, while in SOCKS 4 it happens locally.</p>
-
- <p>With <tt class="LITERAL">forward-socks5</tt> the DNS
- resolution will happen on the remote server as well.</p>
-
- <p><tt class="LITERAL">forward-socks5t</tt> works like vanilla
- <tt class="LITERAL">forward-socks5</tt> but lets <span class=
- "APPLICATION">Privoxy</span> additionally use Tor-specific
- SOCKS extensions. Currently the only supported SOCKS extension
- is optimistic data which can reduce the latency for the first
- request made on a newly created connection.</p>
-
- <p><tt class="REPLACEABLE"><i>socks_proxy</i></tt> and
- <tt class="REPLACEABLE"><i>http_parent</i></tt> can be a
- numerical IPv6 address (if <a href=
- "http://tools.ietf.org/html/rfc3493" target="_top">RFC 3493</a>
- is implemented). To prevent clashes with the port delimiter,
- the whole IP address has to be put into brackets. On the other
- hand a <tt class="REPLACEABLE"><i>target_pattern</i></tt>
- containing an IPv6 address has to be put into angle brackets
- (normal brackets are reserved for regular expressions
- already).</p>
-
- <p>If <tt class="REPLACEABLE"><i>http_parent</i></tt> is
- <span class="QUOTE">"."</span>, then requests are not forwarded
- to another HTTP proxy but are made (HTTP-wise) directly to the
- web servers, albeit through a SOCKS proxy.</p>
- </dd>
-
- <dt>Examples:</dt>
-
- <dd>
- <p>From the company example.com, direct connections are made to
- all <span class="QUOTE">"internal"</span> domains, but
- everything outbound goes through their ISP's proxy by way of
- example.com's corporate SOCKS 4A gateway to the Internet.</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
- forward-socks4a / socks-gw.example.com:1080 www-cache.isp.example.net:8080
- forward .example.com .
-</pre>
- </td>
- </tr>
- </table>
-
- <p>A rule that uses a SOCKS 4 gateway for all destinations but
- no HTTP parent looks like this:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
- forward-socks4 / socks-gw.example.com:1080 .
-</pre>
- </td>
- </tr>
- </table>
-
- <p>To chain Privoxy and Tor, both running on the same system,
- you would use something like:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
- forward-socks5 / 127.0.0.1:9050 .
-</pre>
- </td>
- </tr>
- </table>
-
- <p>The public <span class="APPLICATION">Tor</span> network
- can't be used to reach your local network, if you need to
- access local servers you therefore might want to make some
- exceptions:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
- forward 192.168.*.*/ .
- forward 10.*.*.*/ .
- forward 127.*.*.*/ .
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Unencrypted connections to systems in these address ranges
- will be as (un)secure as the local network is, but the
- alternative is that you can't reach the local network through
- <span class="APPLICATION">Privoxy</span> at all. Of course this
- may actually be desired and there is no reason to make these
- exceptions if you aren't sure you need them.</p>
-
- <p>If you also want to be able to reach servers in your local
- network by using their names, you will need additional
- exceptions that look like this:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
- forward localhost/ .
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="ADVANCED-FORWARDING-EXAMPLES" id=
- "ADVANCED-FORWARDING-EXAMPLES">7.5.3. Advanced Forwarding
- Examples</a></h4>
-
- <p>If you have links to multiple ISPs that provide various special
- content only to their subscribers, you can configure multiple
- <span class="APPLICATION">Privoxies</span> which have connections to
- the respective ISPs to act as forwarders to each other, so that
- <span class="emphasis"><i class="EMPHASIS">your</i></span> users can
- see the internal content of all ISPs.</p>
-
- <p>Assume that host-a has a PPP connection to isp-a.example.net. And
- host-b has a PPP connection to isp-b.example.org. Both run
- <span class="APPLICATION">Privoxy</span>. Their forwarding
- configuration can look like this:</p>
-
- <p>host-a:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- forward / .
- forward .isp-b.example.net host-b:8118
-</pre>
- </td>
- </tr>
- </table>
-
- <p>host-b:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- forward / .
- forward .isp-a.example.org host-a:8118
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Now, your users can set their browser's proxy to use either host-a
- or host-b and be able to browse the internal content of both isp-a
- and isp-b.</p>
-
- <p>If you intend to chain <span class="APPLICATION">Privoxy</span>
- and <span class="APPLICATION">squid</span> locally, then chaining as
- <tt class="LITERAL">browser -> squid -> privoxy</tt> is the
- recommended way.</p>
-
- <p>Assuming that <span class="APPLICATION">Privoxy</span> and
- <span class="APPLICATION">squid</span> run on the same box, your
- <span class="APPLICATION">squid</span> configuration could then look
- like this:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- # Define Privoxy as parent proxy (without ICP)
- cache_peer 127.0.0.1 parent 8118 7 no-query
-
- # Define ACL for protocol FTP
- acl ftp proto FTP
-
- # Do not forward FTP requests to Privoxy
- always_direct allow ftp
-
- # Forward all the rest to Privoxy
- never_direct allow all
-</pre>
- </td>
- </tr>
- </table>
-
- <p>You would then need to change your browser's proxy settings to
- <span class="APPLICATION">squid</span>'s address and port. Squid
- normally uses port 3128. If unsure consult <tt class=
- "LITERAL">http_port</tt> in <tt class="FILENAME">squid.conf</tt>.</p>
-
- <p>You could just as well decide to only forward requests you suspect
- of leading to Windows executables through a virus-scanning parent
- proxy, say, on <tt class="LITERAL">antivir.example.com</tt>, port
- 8010:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- forward / .
- forward /.*\.(exe|com|dll|zip)$ antivir.example.com:8010
-</pre>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="FORWARDED-CONNECT-RETRIES" id=
- "FORWARDED-CONNECT-RETRIES">7.5.4. forwarded-connect-retries</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>How often Privoxy retries if a forwarded connection request
- fails.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p><tt class="REPLACEABLE"><i>Number of retries.</i></tt></p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p><span class="emphasis"><i class="EMPHASIS">0</i></span></p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>Connections forwarded through other proxies are treated like
- direct connections and no retry attempts are made.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p><tt class=
- "REPLACEABLE"><i>forwarded-connect-retries</i></tt> is mainly
- interesting for socks4a connections, where <span class=
- "APPLICATION">Privoxy</span> can't detect why the connections
- failed. The connection might have failed because of a DNS
- timeout in which case a retry makes sense, but it might also
- have failed because the server doesn't exist or isn't
- reachable. In this case the retry will just delay the
- appearance of Privoxy's error message.</p>
-
- <p>Note that in the context of this option, <span class=
- "QUOTE">"forwarded connections"</span> includes all connections
- that Privoxy forwards through other proxies. This option is not
- limited to the HTTP CONNECT method.</p>
-
- <p>Only use this option, if you are getting lots of
- forwarding-related error messages that go away when you try
- again manually. Start with a small value and check Privoxy's
- logfile from time to time, to see how many retries are usually
- needed.</p>
- </dd>
-
- <dt>Examples:</dt>
-
- <dd>
- <p>forwarded-connect-retries 1</p>
- </dd>
- </dl>
- </div>
- </div>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="MISC" id="MISC">7.6. Miscellaneous</a></h2>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="ACCEPT-INTERCEPTED-REQUESTS" id=
- "ACCEPT-INTERCEPTED-REQUESTS">7.6.1.
- accept-intercepted-requests</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>Whether intercepted requests should be treated as valid.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p><tt class="REPLACEABLE"><i>0 or 1</i></tt></p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p><span class="emphasis"><i class="EMPHASIS">0</i></span></p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>Only proxy requests are accepted, intercepted requests are
- treated as invalid.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>If you don't trust your clients and want to force them to
- use <span class="APPLICATION">Privoxy</span>, enable this
- option and configure your packet filter to redirect outgoing
- HTTP connections into <span class=
- "APPLICATION">Privoxy</span>.</p>
-
- <p>Make sure that <span class="APPLICATION">Privoxy's</span>
- own requests aren't redirected as well. Additionally take care
- that <span class="APPLICATION">Privoxy</span> can't
- intentionally connect to itself, otherwise you could run into
- redirection loops if <span class="APPLICATION">Privoxy's</span>
- listening port is reachable by the outside or an attacker has
- access to the pages you visit.</p>
- </dd>
-
- <dt>Examples:</dt>
-
- <dd>
- <p>accept-intercepted-requests 1</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="ALLOW-CGI-REQUEST-CRUNCHING" id=
- "ALLOW-CGI-REQUEST-CRUNCHING">7.6.2.
- allow-cgi-request-crunching</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>Whether requests to <span class=
- "APPLICATION">Privoxy's</span> CGI pages can be blocked or
- redirected.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p><tt class="REPLACEABLE"><i>0 or 1</i></tt></p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p><span class="emphasis"><i class="EMPHASIS">0</i></span></p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p><span class="APPLICATION">Privoxy</span> ignores block and
- redirect actions for its CGI pages.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>By default <span class="APPLICATION">Privoxy</span> ignores
- block or redirect actions for its CGI pages. Intercepting these
- requests can be useful in multi-user setups to implement
- fine-grained access control, but it can also render the
- complete web interface useless and make debugging problems
- painful if done without care.</p>
-
- <p>Don't enable this option unless you're sure that you really
- need it.</p>
- </dd>
-
- <dt>Examples:</dt>
-
- <dd>
- <p>allow-cgi-request-crunching 1</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="SPLIT-LARGE-FORMS" id=
- "SPLIT-LARGE-FORMS">7.6.3. split-large-forms</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>Whether the CGI interface should stay compatible with broken
- HTTP clients.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p><tt class="REPLACEABLE"><i>0 or 1</i></tt></p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p><span class="emphasis"><i class="EMPHASIS">0</i></span></p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>The CGI form generate long GET URLs.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p><span class="APPLICATION">Privoxy's</span> CGI forms can
- lead to rather long URLs. This isn't a problem as far as the
- HTTP standard is concerned, but it can confuse clients with
- arbitrary URL length limitations.</p>
-
- <p>Enabling split-large-forms causes <span class=
- "APPLICATION">Privoxy</span> to divide big forms into smaller
- ones to keep the URL length down. It makes editing a lot less
- convenient and you can no longer submit all changes at once,
- but at least it works around this browser bug.</p>
-
- <p>If you don't notice any editing problems, there is no reason
- to enable this option, but if one of the submit buttons appears
- to be broken, you should give it a try.</p>
- </dd>
-
- <dt>Examples:</dt>
-
- <dd>
- <p>split-large-forms 1</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="KEEP-ALIVE-TIMEOUT" id=
- "KEEP-ALIVE-TIMEOUT">7.6.4. keep-alive-timeout</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>Number of seconds after which an open connection will no
- longer be reused.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p><tt class="REPLACEABLE"><i>Time in seconds.</i></tt></p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p>None</p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>Connections are not kept alive.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>This option allows clients to keep the connection to
- <span class="APPLICATION">Privoxy</span> alive. If the server
- supports it, <span class="APPLICATION">Privoxy</span> will keep
- the connection to the server alive as well. Under certain
- circumstances this may result in speed-ups.</p>
-
- <p>By default, <span class="APPLICATION">Privoxy</span> will
- close the connection to the server if the client connection
- gets closed, or if the specified timeout has been reached
- without a new request coming in. This behaviour can be changed
- with the <a href="#CONNECTION-SHARING" target=
- "_top">connection-sharing</a> option.</p>
-
- <p>This option has no effect if <span class=
- "APPLICATION">Privoxy</span> has been compiled without
- keep-alive support.</p>
-
- <p>Note that a timeout of five seconds as used in the default
- configuration file significantly decreases the number of
- connections that will be reused. The value is used because some
- browsers limit the number of connections they open to a single
- host and apply the same limit to proxies. This can result in a
- single website <span class="QUOTE">"grabbing"</span> all the
- connections the browser allows, which means connections to
- other websites can't be opened until the connections currently
- in use time out.</p>
-
- <p>Several users have reported this as a Privoxy bug, so the
- default value has been reduced. Consider increasing it to 300
- seconds or even more if you think your browser can handle it.
- If your browser appears to be hanging, it probably can't.</p>
- </dd>
-
- <dt>Examples:</dt>
-
- <dd>
- <p>keep-alive-timeout 300</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="TOLERATE-PIPELINING" id=
- "TOLERATE-PIPELINING">7.6.5. tolerate-pipelining</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>Whether or not pipelined requests should be served.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p><tt class="REPLACEABLE"><i>0 or 1.</i></tt></p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p>None</p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>If Privoxy receives more than one request at once, it
- terminates the client connection after serving the first
- one.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p><span class="APPLICATION">Privoxy</span> currently doesn't
- pipeline outgoing requests, thus allowing pipelining on the
- client connection is not guaranteed to improve the
- performance.</p>
-
- <p>By default <span class="APPLICATION">Privoxy</span> tries to
- discourage clients from pipelining by discarding aggressively
- pipelined requests, which forces the client to resend them
- through a new connection.</p>
-
- <p>This option lets <span class="APPLICATION">Privoxy</span>
- tolerate pipelining. Whether or not that improves performance
- mainly depends on the client configuration.</p>
-
- <p>If you are seeing problems with pages not properly loading,
- disabling this option could work around the problem.</p>
- </dd>
-
- <dt>Examples:</dt>
-
- <dd>
- <p>tolerate-pipelining 1</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="DEFAULT-SERVER-TIMEOUT" id=
- "DEFAULT-SERVER-TIMEOUT">7.6.6. default-server-timeout</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>Assumed server-side keep-alive timeout if not specified by
- the server.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p><tt class="REPLACEABLE"><i>Time in seconds.</i></tt></p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p>None</p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>Connections for which the server didn't specify the
- keep-alive timeout are not reused.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>Enabling this option significantly increases the number of
- connections that are reused, provided the <a href=
- "#KEEP-ALIVE-TIMEOUT" target="_top">keep-alive-timeout</a>
- option is also enabled.</p>
-
- <p>While it also increases the number of connections problems
- when <span class="APPLICATION">Privoxy</span> tries to reuse a
- connection that already has been closed on the server side, or
- is closed while <span class="APPLICATION">Privoxy</span> is
- trying to reuse it, this should only be a problem if it happens
- for the first request sent by the client. If it happens for
- requests on reused client connections, <span class=
- "APPLICATION">Privoxy</span> will simply close the connection
- and the client is supposed to retry the request without
- bothering the user.</p>
-
- <p>Enabling this option is therefore only recommended if the
- <a href="#CONNECTION-SHARING" target=
- "_top">connection-sharing</a> option is disabled.</p>
-
- <p>It is an error to specify a value larger than the <a href=
- "#KEEP-ALIVE-TIMEOUT" target="_top">keep-alive-timeout</a>
- value.</p>
-
- <p>This option has no effect if <span class=
- "APPLICATION">Privoxy</span> has been compiled without
- keep-alive support.</p>
- </dd>
-
- <dt>Examples:</dt>
-
- <dd>
- <p>default-server-timeout 60</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="CONNECTION-SHARING" id=
- "CONNECTION-SHARING">7.6.7. connection-sharing</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>Whether or not outgoing connections that have been kept
- alive should be shared between different incoming
- connections.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p><tt class="REPLACEABLE"><i>0 or 1</i></tt></p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p>None</p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>Connections are not shared.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>This option has no effect if <span class=
- "APPLICATION">Privoxy</span> has been compiled without
- keep-alive support, or if it's disabled.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>Note that reusing connections doesn't necessary cause
- speedups. There are also a few privacy implications you should
- be aware of.</p>
-
- <p>If this option is effective, outgoing connections are shared
- between clients (if there are more than one) and closing the
- browser that initiated the outgoing connection does no longer
- affect the connection between <span class=
- "APPLICATION">Privoxy</span> and the server unless the client's
- request hasn't been completed yet.</p>
-
- <p>If the outgoing connection is idle, it will not be closed
- until either <span class="APPLICATION">Privoxy's</span> or the
- server's timeout is reached. While it's open, the server knows
- that the system running <span class=
- "APPLICATION">Privoxy</span> is still there.</p>
-
- <p>If there are more than one client (maybe even belonging to
- multiple users), they will be able to reuse each others
- connections. This is potentially dangerous in case of
- authentication schemes like NTLM where only the connection is
- authenticated, instead of requiring authentication for each
- request.</p>
-
- <p>If there is only a single client, and if said client can
- keep connections alive on its own, enabling this option has
- next to no effect. If the client doesn't support connection
- keep-alive, enabling this option may make sense as it allows
- <span class="APPLICATION">Privoxy</span> to keep outgoing
- connections alive even if the client itself doesn't support
- it.</p>
-
- <p>You should also be aware that enabling this option increases
- the likelihood of getting the "No server or forwarder data"
- error message, especially if you are using a slow connection to
- the Internet.</p>
-
- <p>This option should only be used by experienced users who
- understand the risks and can weight them against the
- benefits.</p>
- </dd>
-
- <dt>Examples:</dt>
-
- <dd>
- <p>connection-sharing 1</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="SOCKET-TIMEOUT" id="SOCKET-TIMEOUT">7.6.8.
- socket-timeout</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>Number of seconds after which a socket times out if no data
- is received.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p><tt class="REPLACEABLE"><i>Time in seconds.</i></tt></p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p>None</p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>A default value of 300 seconds is used.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>The default is quite high and you probably want to reduce
- it. If you aren't using an occasionally slow proxy like Tor,
- reducing it to a few seconds should be fine.</p>
- </dd>
-
- <dt>Examples:</dt>
-
- <dd>
- <p>socket-timeout 300</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="MAX-CLIENT-CONNECTIONS" id=
- "MAX-CLIENT-CONNECTIONS">7.6.9. max-client-connections</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>Maximum number of client connections that will be
- served.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p><tt class="REPLACEABLE"><i>Positive number.</i></tt></p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p>128</p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>Connections are served until a resource limit is
- reached.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p><span class="APPLICATION">Privoxy</span> creates one thread
- (or process) for every incoming client connection that isn't
- rejected based on the access control settings.</p>
-
- <p>If the system is powerful enough, <span class=
- "APPLICATION">Privoxy</span> can theoretically deal with
- several hundred (or thousand) connections at the same time, but
- some operating systems enforce resource limits by shutting down
- offending processes and their default limits may be below the
- ones <span class="APPLICATION">Privoxy</span> would require
- under heavy load.</p>
-
- <p>Configuring <span class="APPLICATION">Privoxy</span> to
- enforce a connection limit below the thread or process limit
- used by the operating system makes sure this doesn't happen.
- Simply increasing the operating system's limit would work too,
- but if <span class="APPLICATION">Privoxy</span> isn't the only
- application running on the system, you may actually want to
- limit the resources used by <span class=
- "APPLICATION">Privoxy</span>.</p>
-
- <p>If <span class="APPLICATION">Privoxy</span> is only used by
- a single trusted user, limiting the number of client
- connections is probably unnecessary. If there are multiple
- possibly untrusted users you probably still want to
- additionally use a packet filter to limit the maximal number of
- incoming connections per client. Otherwise a malicious user
- could intentionally create a high number of connections to
- prevent other users from using <span class=
- "APPLICATION">Privoxy</span>.</p>
-
- <p>Obviously using this option only makes sense if you choose a
- limit below the one enforced by the operating system.</p>
-
- <p>One most POSIX-compliant systems <span class=
- "APPLICATION">Privoxy</span> can't properly deal with more than
- FD_SETSIZE file descriptors at the same time and has to reject
- connections if the limit is reached. This will likely change in
- a future version, but currently this limit can't be increased
- without recompiling <span class="APPLICATION">Privoxy</span>
- with a different FD_SETSIZE limit.</p>
- </dd>
-
- <dt>Examples:</dt>
-
- <dd>
- <p>max-client-connections 256</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="HANDLE-AS-EMPTY-DOC-RETURNS-OK" id=
- "HANDLE-AS-EMPTY-DOC-RETURNS-OK">7.6.10.
- handle-as-empty-doc-returns-ok</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>The status code Privoxy returns for pages blocked with
- <tt class="LITERAL"><a href=
- "actions-file.html#HANDLE-AS-EMPTY-DOCUMENT" target=
- "_top">+handle-as-empty-document</a></tt>.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p><tt class="REPLACEABLE"><i>0 or 1</i></tt></p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p>0</p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>Privoxy returns a status 403(forbidden) for all blocked
- pages.</p>
- </dd>
-
- <dt>Effect if set:</dt>
-
- <dd>
- <p>Privoxy returns a status 200(OK) for pages blocked with
- +handle-as-empty-document and a status 403(Forbidden) for all
- other blocked pages.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>This is a work-around for Firefox bug 492459: <span class=
- "QUOTE">" Websites are no longer rendered if SSL requests for
- JavaScripts are blocked by a proxy. "</span> (<a href=
- "https://bugzilla.mozilla.org/show_bug.cgi?id=492459" target=
- "_top">https://bugzilla.mozilla.org/show_bug.cgi?id=492459</a>)
- As the bug has been fixed for quite some time this option
- should no longer be needed and will be removed in a future
- release. Please speak up if you have a reason why the option
- should be kept around.</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="ENABLE-COMPRESSION" id=
- "ENABLE-COMPRESSION">7.6.11. enable-compression</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>Whether or not buffered content is compressed before
- delivery.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p><tt class="REPLACEABLE"><i>0 or 1</i></tt></p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p>0</p>
- </dd>
-
- <dt>Effect if unset:</dt>
-
- <dd>
- <p>Privoxy does not compress buffered content.</p>
- </dd>
-
- <dt>Effect if set:</dt>
-
- <dd>
- <p>Privoxy compresses buffered content before delivering it to
- the client, provided the client supports it.</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>This directive is only supported if Privoxy has been
- compiled with FEATURE_COMPRESSION, which should not to be
- confused with FEATURE_ZLIB.</p>
-
- <p>Compressing buffered content is mainly useful if Privoxy and
- the client are running on different systems. If they are
- running on the same system, enabling compression is likely to
- slow things down. If you didn't measure otherwise, you should
- assume that it does and keep this option disabled.</p>
-
- <p>Privoxy will not compress buffered content below a certain
- length.</p>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="COMPRESSION-LEVEL" id=
- "COMPRESSION-LEVEL">7.6.12. compression-level</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>The compression level that is passed to the zlib library
- when compressing buffered content.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p><tt class="REPLACEABLE"><i>Positive number ranging from 0 to
- 9.</i></tt></p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p>1</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>Compressing the data more takes usually longer than
- compressing it less or not compressing it at all. Which level
- is best depends on the connection between Privoxy and the
- client. If you can't be bothered to benchmark it for yourself,
- you should stick with the default and keep compression
- disabled.</p>
-
- <p>If compression is disabled, the compression level is
- irrelevant.</p>
- </dd>
-
- <dt>Examples:</dt>
-
- <dd>
- <table border="0" bgcolor="#E0E0E0" width="90%">
- <tr>
- <td>
- <pre class="SCREEN">
- # Best speed (compared to the other levels)
- compression-level 1
- # Best compression
- compression-level 9
- # No compression. Only useful for testing as the added header
- # slightly increases the amount of data that has to be sent.
- # If your benchmark shows that using this compression level
- # is superior to using no compression at all, the benchmark
- # is likely to be flawed.
- compression-level 0
-
-</pre>
- </td>
- </tr>
- </table>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="CLIENT-HEADER-ORDER" id=
- "CLIENT-HEADER-ORDER">7.6.13. client-header-order</a></h4>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Specifies:</dt>
-
- <dd>
- <p>The order in which client headers are sorted before
- forwarding them.</p>
- </dd>
-
- <dt>Type of value:</dt>
-
- <dd>
- <p><tt class="REPLACEABLE"><i>Client header names delimited by
- spaces or tabs</i></tt></p>
- </dd>
-
- <dt>Default value:</dt>
-
- <dd>
- <p>None</p>
- </dd>
-
- <dt>Notes:</dt>
-
- <dd>
- <p>By default <span class="APPLICATION">Privoxy</span> leaves
- the client headers in the order they were sent by the client.
- Headers are modified in-place, new headers are added at the end
- of the already existing headers.</p>
-
- <p>The header order can be used to fingerprint client requests
- independently of other headers like the User-Agent.</p>
-
- <p>This directive allows to sort the headers differently to
- better mimic a different User-Agent. Client headers will be
- emitted in the order given, headers whose name isn't explicitly
- specified are added at the end.</p>
-
- <p>Note that sorting headers in an uncommon way will make
- fingerprinting actually easier. Encrypted headers are not
- affected by this directive.</p>
- </dd>
- </dl>
- </div>
- </div>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="WINDOWS-GUI" id="WINDOWS-GUI">7.7. Windows
- GUI Options</a></h2>
-
- <p><span class="APPLICATION">Privoxy</span> has a number of options
- specific to the Windows GUI interface:</p><a name="ACTIVITY-ANIMATION"
- id="ACTIVITY-ANIMATION"></a>
-
- <p>If <span class="QUOTE">"activity-animation"</span> is set to 1, the
- <span class="APPLICATION">Privoxy</span> icon will animate when
- <span class="QUOTE">"Privoxy"</span> is active. To turn off, set to
- 0.</p>
-
- <p class="LITERALLAYOUT"><tt class="LITERAL"> <span class=
- "emphasis"><i class="EMPHASIS">activity-animation 1</i></span><br>
- </tt></p><a name="LOG-MESSAGES" id=
- "LOG-MESSAGES"></a>
-
- <p>If <span class="QUOTE">"log-messages"</span> is set to 1,
- <span class="APPLICATION">Privoxy</span> copies log messages to the
- console window. The log detail depends on the <a href=
- "config.html#DEBUG">debug</a> directive.</p>
-
- <p class="LITERALLAYOUT"><tt class="LITERAL"> <span class=
- "emphasis"><i class="EMPHASIS">log-messages 1</i></span><br>
- </tt></p><a name="LOG-BUFFER-SIZE" id=
- "LOG-BUFFER-SIZE"></a>
-
- <p>If <span class="QUOTE">"log-buffer-size"</span> is set to 1, the
- size of the log buffer, i.e. the amount of memory used for the log
- messages displayed in the console window, will be limited to
- <span class="QUOTE">"log-max-lines"</span> (see below).</p>
-
- <p>Warning: Setting this to 0 will result in the buffer to grow
- infinitely and eat up all your memory!</p>
-
- <p class="LITERALLAYOUT"><tt class="LITERAL"> <span class=
- "emphasis"><i class="EMPHASIS">log-buffer-size 1</i></span><br>
- </tt></p><a name="LOG-MAX-LINES" id=
- "LOG-MAX-LINES"></a>
-
- <p><span class="APPLICATION">log-max-lines</span> is the maximum number
- of lines held in the log buffer. See above.</p>
-
- <p class="LITERALLAYOUT"><tt class="LITERAL"> <span class=
- "emphasis"><i class="EMPHASIS">log-max-lines 200</i></span><br>
- </tt></p><a name="LOG-HIGHLIGHT-MESSAGES" id=
- "LOG-HIGHLIGHT-MESSAGES"></a>
-
- <p>If <span class="QUOTE">"log-highlight-messages"</span> is set to 1,
- <span class="APPLICATION">Privoxy</span> will highlight portions of the
- log messages with a bold-faced font:</p>
-
- <p class="LITERALLAYOUT"><tt class="LITERAL"> <span class=
- "emphasis"><i class="EMPHASIS">log-highlight-messages 1</i></span><br>
- </tt></p><a name="LOG-FONT-NAME" id=
- "LOG-FONT-NAME"></a>
-
- <p>The font used in the console window:</p>
-
- <p class="LITERALLAYOUT"><tt class="LITERAL"> <span class=
- "emphasis"><i class="EMPHASIS">log-font-name Comic Sans
- MS</i></span><br>
- </tt></p><a name="LOG-FONT-SIZE" id=
- "LOG-FONT-SIZE"></a>
-
- <p>Font size used in the console window:</p>
-
- <p class="LITERALLAYOUT"><tt class="LITERAL"> <span class=
- "emphasis"><i class="EMPHASIS">log-font-size 8</i></span><br>
- </tt></p><a name="SHOW-ON-TASK-BAR" id=
- "SHOW-ON-TASK-BAR"></a>
-
- <p><span class="QUOTE">"show-on-task-bar"</span> controls whether or
- not <span class="APPLICATION">Privoxy</span> will appear as a button on
- the Task bar when minimized:</p>
-
- <p class="LITERALLAYOUT"><tt class="LITERAL"> <span class=
- "emphasis"><i class="EMPHASIS">show-on-task-bar 0</i></span><br>
- </tt></p><a name="CLOSE-BUTTON-MINIMIZES" id=
- "CLOSE-BUTTON-MINIMIZES"></a>
-
- <p>If <span class="QUOTE">"close-button-minimizes"</span> is set to 1,
- the Windows close button will minimize <span class=
- "APPLICATION">Privoxy</span> instead of closing the program (close with
- the exit option on the File menu).</p>
-
- <p class="LITERALLAYOUT"><tt class="LITERAL"> <span class=
- "emphasis"><i class="EMPHASIS">close-button-minimizes 1</i></span><br>
- </tt></p><a name="HIDE-CONSOLE" id=
- "HIDE-CONSOLE"></a>
-
- <p>The <span class="QUOTE">"hide-console"</span> option is specific to
- the MS-Win console version of <span class="APPLICATION">Privoxy</span>.
- If this option is used, <span class="APPLICATION">Privoxy</span> will
- disconnect from and hide the command console.</p>
-
- <p class="LITERALLAYOUT"><tt class="LITERAL"> #<span class=
- "emphasis"><i class="EMPHASIS">hide-console</i></span><br>
- </tt></p>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href=
- "configuration.html" accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href=
- "actions-file.html" accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">Privoxy Configuration</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">Actions Files</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Privoxy Configuration</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy 3.0.21 User Manual" href="index.html">
- <link rel="PREVIOUS" title="Starting Privoxy" href="startup.html">
- <link rel="NEXT" title="The Main Configuration File" href="config.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
- <link rel="STYLESHEET" type="text/css" href="p_doc.css">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy 3.0.21 User Manual</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href="startup.html"
- accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href="config.html"
- accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="CONFIGURATION" id="CONFIGURATION">6. Privoxy
- Configuration</a></h1>
-
- <p>All <span class="APPLICATION">Privoxy</span> configuration is stored
- in text files. These files can be edited with a text editor. Many
- important aspects of <span class="APPLICATION">Privoxy</span> can also be
- controlled easily with a web browser.</p>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="AEN1078" id="AEN1078">6.1. Controlling
- Privoxy with Your Web Browser</a></h2>
-
- <p><span class="APPLICATION">Privoxy</span>'s user interface can be
- reached through the special URL <a href="http://config.privoxy.org/"
- target="_top">http://config.privoxy.org/</a> (shortcut: <a href=
- "http://p.p/" target="_top">http://p.p/</a>), which is a built-in page
- and works without Internet access. You will see the following
- section:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-
-</pre>
-
- <h2 class="BRIDGEHEAD"><a name="AEN1086" id=
- "AEN1086"></a> Privoxy Menu</h2>
- <pre>
-</pre>
-
- <table border="0">
- <tbody>
- <tr>
- <td>
- ▪ <a href="http://config.privoxy.org/show-status"
- target="_top">View & change the current
- configuration</a></td>
- </tr>
-
- <tr>
- <td>
- ▪ <a href="http://config.privoxy.org/show-version"
- target="_top">View the source code version numbers</a></td>
- </tr>
-
- <tr>
- <td>
- ▪ <a href="http://config.privoxy.org/show-request"
- target="_top">View the request headers.</a></td>
- </tr>
-
- <tr>
- <td>
- ▪ <a href="http://config.privoxy.org/show-url-info"
- target="_top">Look up which actions apply to a URL and
- why</a></td>
- </tr>
-
- <tr>
- <td>
- ▪ <a href="http://config.privoxy.org/toggle"
- target="_top">Toggle Privoxy on or off</a></td>
- </tr>
-
- <tr>
- <td>
- ▪ <a href="http://www.privoxy.org/3.0.21/user-manual/"
- target="_top">Documentation</a></td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
- </table>
-
- <p>This should be self-explanatory. Note the first item leads to an
- editor for the <a href="actions-file.html">actions files</a>, which is
- where the ad, banner, cookie, and URL blocking magic is configured as
- well as other advanced features of <span class=
- "APPLICATION">Privoxy</span>. This is an easy way to adjust various
- aspects of <span class="APPLICATION">Privoxy</span> configuration. The
- actions file, and other configuration files, are explained in detail
- below.</p>
-
- <p><span class="QUOTE">"Toggle Privoxy On or Off"</span> is handy for
- sites that might have problems with your current actions and filters.
- You can in fact use it as a test to see whether it is <span class=
- "APPLICATION">Privoxy</span> causing the problem or not. <span class=
- "APPLICATION">Privoxy</span> continues to run as a proxy in this case,
- but all manipulation is disabled, i.e. <span class=
- "APPLICATION">Privoxy</span> acts like a normal forwarding proxy. There
- is even a toggle <a href="appendix.html#BOOKMARKLETS">Bookmarklet</a>
- offered, so that you can toggle <span class=
- "APPLICATION">Privoxy</span> with one click from your browser.</p>
-
- <p>Note that several of the features described above are disabled by
- default in <span class="APPLICATION">Privoxy</span> 3.0.7 beta and
- later. Check the <a href="config.html" target="_top">configuration
- file</a> to learn why and in which cases it's safe to enable them
- again.</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="CONFOVERVIEW" id="CONFOVERVIEW">6.2.
- Configuration Files Overview</a></h2>
-
- <p>For Unix, *BSD and Linux, all configuration files are located in
- <tt class="FILENAME">/etc/privoxy/</tt> by default. For MS Windows,
- OS/2, and AmigaOS these are all in the same directory as the
- <span class="APPLICATION">Privoxy</span> executable.</p>
-
- <p>The installed defaults provide a reasonable starting point, though
- some settings may be aggressive by some standards. For the time being,
- the principle configuration files are:</p>
-
- <ul>
- <li>
- <p>The <a href="config.html">main configuration file</a> is named
- <tt class="FILENAME">config</tt> on Linux, Unix, BSD, OS/2, and
- AmigaOS and <tt class="FILENAME">config.txt</tt> on Windows. This
- is a required file.</p>
- </li>
-
- <li>
- <p><tt class="FILENAME">match-all.action</tt> is used to define
- which <span class="QUOTE">"actions"</span> relating to
- banner-blocking, images, pop-ups, content modification, cookie
- handling etc should be applied by default. It should be the first
- actions file loaded.</p>
-
- <p><tt class="FILENAME">default.action</tt> defines many exceptions
- (both positive and negative) from the default set of actions that's
- configured in <tt class="FILENAME">match-all.action</tt>. It should
- be the second actions file loaded and shouldn't be edited by the
- user.</p>
-
- <p>Multiple actions files may be defined in <tt class=
- "FILENAME">config</tt>. These are processed in the order they are
- defined. Local customizations and locally preferred exceptions to
- the default policies as defined in <tt class=
- "FILENAME">match-all.action</tt> (which you will most probably want
- to define sooner or later) are best applied in <tt class=
- "FILENAME">user.action</tt>, where you can preserve them across
- upgrades. The file isn't installed by all installers, but you can
- easily create it yourself with a text editor.</p>
-
- <p>There is also a web based editor that can be accessed from
- <a href="http://config.privoxy.org/show-status" target=
- "_top">http://config.privoxy.org/show-status</a> (Shortcut:
- <a href="http://p.p/show-status" target=
- "_top">http://p.p/show-status</a>) for the various actions
- files.</p>
- </li>
-
- <li>
- <p><span class="QUOTE">"Filter files"</span> (the <a href=
- "filter-file.html">filter file</a>) can be used to re-write the raw
- page content, including viewable text as well as embedded HTML and
- JavaScript, and whatever else lurks on any given web page. The
- filtering jobs are only pre-defined here; whether to apply them or
- not is up to the actions files. <tt class=
- "FILENAME">default.filter</tt> includes various filters made
- available for use by the developers. Some are much more intrusive
- than others, and all should be used with caution. You may define
- additional filter files in <tt class="FILENAME">config</tt> as you
- can with actions files. We suggest <tt class=
- "FILENAME">user.filter</tt> for any locally defined filters or
- customizations.</p>
- </li>
- </ul>
-
- <p>The syntax of the configuration and filter files may change between
- different Privoxy versions, unfortunately some enhancements cost
- backwards compatibility.</p>
-
- <p>All files use the <span class="QUOTE">"<tt class=
- "LITERAL">#</tt>"</span> character to denote a comment (the rest of the
- line will be ignored) and understand line continuation through placing
- a backslash ("<tt class="LITERAL">\</tt>") as the very last character
- in a line. If the <tt class="LITERAL">#</tt> is preceded by a
- backslash, it looses its special function. Placing a <tt class=
- "LITERAL">#</tt> in front of an otherwise valid configuration line to
- prevent it from being interpreted is called "commenting out" that line.
- Blank lines are ignored.</p>
-
- <p>The actions files and filter files can use Perl style <a href=
- "appendix.html#REGEX">regular expressions</a> for maximum
- flexibility.</p>
-
- <p>After making any changes, there is no need to restart <span class=
- "APPLICATION">Privoxy</span> in order for the changes to take effect.
- <span class="APPLICATION">Privoxy</span> detects such changes
- automatically. Note, however, that it may take one or two additional
- requests for the change to take effect. When changing the listening
- address of <span class="APPLICATION">Privoxy</span>, these <span class=
- "QUOTE">"wake up"</span> requests must obviously be sent to the
- <span class="emphasis"><i class="EMPHASIS">old</i></span> listening
- address.</p>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="startup.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href="config.html"
- accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">Starting Privoxy</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">The Main Configuration
- File</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Contacting the Developers, Bug Reporting and Feature
- Requests</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy 3.0.21 User Manual" href="index.html">
- <link rel="PREVIOUS" title="Privoxy's Template Files" href=
- "templates.html">
- <link rel="NEXT" title="Privoxy Copyright, License and History" href=
- "copyright.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
- <link rel="STYLESHEET" type="text/css" href="p_doc.css">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy 3.0.21 User Manual</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href="templates.html"
- accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href=
- "copyright.html" accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="CONTACT" id="CONTACT">11. Contacting the
- Developers, Bug Reporting and Feature Requests</a></h1>
-
- <p>We value your feedback. In fact, we rely on it to improve <span class=
- "APPLICATION">Privoxy</span> and its configuration. However, please note
- the following hints, so we can provide you with the best support.</p>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="SUFFICIENT-INFORMATION" id=
- "SUFFICIENT-INFORMATION">11.1. Please provide sufficient
- information</a></h2>
-
- <p>A lot of support requests don't contain enough information and can't
- be solved without a lot of back and forth which causes unnecessary
- delays. Reading this section should help to prevent that.</p>
-
- <p>Before contacting us to report a problem, please try to verify that
- it is a <span class="APPLICATION">Privoxy</span> problem, and not a
- browser or site problem or documented behaviour that just happens to be
- different than what you expected. If unsure, try <a href=
- "http://config.privoxy.org/toggle?set=disable" target="_top">toggling
- off</a> <span class="APPLICATION">Privoxy</span>, and see if the
- problem persists.</p>
-
- <p>If you are using your own custom configuration, please try the
- default configuration to see if the problem is configuration related.
- If you're having problems with a feature that is disabled by default,
- please ask around on the mailing list if others can reproduce the
- problem.</p>
-
- <p>If you aren't using the latest Privoxy version, the problem may have
- been found and fixed in the meantime. We would appreciate if you could
- take the time to <a href=
- "http://www.privoxy.org/user-manual/installation.html" target=
- "_top">upgrade to the latest version</a> and verify that the problem
- still exists.</p>
-
- <p>Please be sure to provide the following information when reporting
- problems or requesting support:</p>
-
- <ul>
- <li>
- <p>The exact <span class="APPLICATION">Privoxy</span> version you
- are using.</p>
- </li>
-
- <li>
- <p>The operating system and versions you run <span class=
- "APPLICATION">Privoxy</span> on, e.g. <span class=
- "APPLICATION">Windows XP SP2</span>.</p>
- </li>
-
- <li>
- <p>The name, platform, and version of the <span class=
- "APPLICATION">browser</span> you were using (e.g. <span class=
- "APPLICATION">Internet Explorer v5.5</span> for Mac).</p>
- </li>
-
- <li>
- <p>The URL where the problem occurred, or some way for us to
- duplicate the problem (e.g. <tt class=
- "LITERAL">http://somesite.example.com/?somethingelse=123</tt>).</p>
- </li>
-
- <li>
- <p>Whether your version of <span class="APPLICATION">Privoxy</span>
- is one supplied by the <span class="APPLICATION">Privoxy</span>
- developers via SourceForge, or if you got your copy somewhere
- else.</p>
- </li>
-
- <li>
- <p>Whether you are using <span class="APPLICATION">Privoxy</span>
- together with another proxy such as <span class=
- "APPLICATION">Tor</span>. If so, please temporary disable the other
- proxy to see if the symptoms change.</p>
- </li>
-
- <li>
- <p>Whether you are using a personal firewall product. If so, does
- <span class="APPLICATION">Privoxy</span> work without it?</p>
- </li>
-
- <li>
- <p>Any other pertinent information to help identify the problem
- such as config or log file excerpts (yes, you should have log file
- entries for each action taken). To get a meaningful logfile, please
- make sure that the <a href="../user-manual/config.html#LOGFILE"
- target="_top">logfile directive</a> is being used and the following
- <a href="../user-manual/config.html#DEBUG" target="_top">debug
- options</a> are enabled (all of them):</p>
-
- <p class="LITERALLAYOUT">
- debug 1 # Log the destination for each request Privoxy let through. See also debug 1024.<br>
-
- debug 2 # show each connection status<br>
-
- debug 4 # show I/O status<br>
-
- debug 8 # show header parsing<br>
-
- debug 128 # debug redirects<br>
- debug 256 # debug GIF de-animation<br>
-
- debug 512 # Common Log Format<br>
-
- debug 1024 # Log the destination for requests Privoxy didn't let through, and the reason why.<br>
-
- debug 4096 # Startup banner and warnings.<br>
-
- debug 8192 # Non-fatal errors</p>
-
- <p>If you are having trouble with a filter, please additionally
- enable</p>
-
- <p class="LITERALLAYOUT">
- debug 64 # debug regular expression filters</p>If
- you are using Privoxy 3.0.17 or later and suspect that it
- interprets the request or the response incorrectly, please enable
-
- <p class="LITERALLAYOUT">
- debug 32768 # log all data read from the network</p>
-
- <p>It's easy for us to ignore log messages that aren't relevant but
- missing log messages may make it impossible to investigate a
- problem. If you aren't sure which of the debug directives are
- relevant, please just enable all of them and let us worry about
- it.</p>
-
- <p>Note that Privoxy log files may contain sensitive information so
- please don't submit any logfiles you didn't read first. You can
- mask sensitive information as long as it's clear that you removed
- something.</p>
- </li>
- </ul>
-
- <p>You don't have to tell us your actual name when filing a problem
- report, but if you don't, please use a nickname so we can differentiate
- between your messages and the ones entered by other "anonymous" users
- that may respond to your request if they have the same problem or
- already found a solution. Note that due to spam the trackers may not
- always allow to post without being logged into SourceForge. If that's
- the case, you are still free to create a login that isn't directly
- linked to your name, though.</p>
-
- <p>Please also check the status of your request a few days after
- submitting it, as we may request additional information. If you use a
- SF id, you should automatically get a mail when someone responds to
- your request. Please don't bother to add an email address when using
- the tracker. If you prefer to communicate through email, just use one
- of the mailing lists directly.</p>
-
- <p>If you are new to reporting problems, you might be interested in
- <a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html" target=
- "_top">How to Report Bugs Effectively</a>.</p>
-
- <p>The <a href=
- "http://www.privoxy.org/user-manual/appendix.html#ACTIONSANAT" target=
- "_top">appendix of the Privoxy User Manual</a> also has helpful
- information on understanding <tt class="LITERAL">actions</tt>, and
- <tt class="LITERAL">action</tt> debugging.</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="CONTACT-SUPPORT" id="CONTACT-SUPPORT">11.2.
- Get Support</a></h2>
-
- <p>For casual users, our <a href=
- "http://sourceforge.net/tracker/?group_id=11118&atid=211118"
- target="_top">support forum at SourceForge</a> is probably best suited:
- <a href=
- "http://sourceforge.net/tracker/?group_id=11118&atid=211118"
- target="_top">http://sourceforge.net/tracker/?group_id=11118&atid=211118</a></p>
-
- <p>All users are of course welcome to discuss their issues on the
- <a href="http://lists.sourceforge.net/lists/listinfo/ijbswa-users"
- target="_top">users mailing list</a>, where the developers also hang
- around.</p>
-
- <p>Please don't send private support requests to individual Privoxy
- developers, either use the mailing lists or the support trackers.</p>
-
- <p>If you have to contact a Privoxy developer directly for other
- reasons, please send a real mail and do not bother with SourceForge's
- messaging system. Answers to SourceForge messages are usually bounced
- by SourceForge's mail server in which case the developer wasted time
- writing a response you don't get. From your point of view it will look
- like your message has been completely ignored, so this is frustrating
- for all parties involved.</p>
-
- <p>Note that the Privoxy mailing lists are moderated. Posts from
- unsubscribed addresses have to be accepted manually by a moderator.
- This may cause a delay of several days and if you use a subject that
- doesn't clearly mention Privoxy or one of its features, your message
- may be accidentally discarded as spam.</p>
-
- <p>If you aren't subscribed, you should therefore spend a few seconds
- to come up with a proper subject. Additionally you should make it clear
- that you want to get CC'd. Otherwise some responses will be directed to
- the mailing list only, and you won't see them.</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="REPORTING" id="REPORTING">11.3. Reporting
- Problems</a></h2>
-
- <p><span class="QUOTE">"Problems"</span> for our purposes, come in two
- forms:</p>
-
- <ul>
- <li>
- <p>Configuration issues, such as ads that slip through, or sites
- that don't function properly due to one <span class=
- "APPLICATION">Privoxy</span> <span class="QUOTE">"action"</span> or
- another being turned <span class="QUOTE">"on"</span>.</p>
- </li>
-
- <li>
- <p><span class="QUOTE">"Bugs"</span> in the programming code that
- makes up <span class="APPLICATION">Privoxy</span>, such as that
- might cause a crash.</p>
- </li>
- </ul>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="CONTACT-ADS" id="CONTACT-ADS">11.3.1.
- Reporting Ads or Other Configuration Problems</a></h3>
-
- <p>Please send feedback on ads that slipped through, innocent images
- that were blocked, sites that don't work properly, and other
- configuration related problem of <tt class=
- "FILENAME">default.action</tt> file, to <a href=
- "http://sourceforge.net/tracker/?group_id=11118&atid=460288"
- target=
- "_top">http://sourceforge.net/tracker/?group_id=11118&atid=460288</a>,
- the Actions File Tracker.</p>
-
- <p>New, improved <tt class="FILENAME">default.action</tt> files may
- occasionally be made available based on your feedback. These will be
- announced on the <a href=
- "http://lists.sourceforge.net/lists/listinfo/ijbswa-announce" target=
- "_top">ijbswa-announce</a> list and available from our the <a href=
- "http://sourceforge.net/project/showfiles.php?group_id=11118" target=
- "_top">files section</a> of our <a href=
- "http://sf.net/projects/ijbswa/" target="_top">project page</a>.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="CONTACT-BUGS" id="CONTACT-BUGS">11.3.2.
- Reporting Bugs</a></h3>
-
- <p>Please report all bugs through our bug tracker: <a href=
- "http://sourceforge.net/tracker/?group_id=11118&atid=111118"
- target=
- "_top">http://sourceforge.net/tracker/?group_id=11118&atid=111118</a>.</p>
-
- <p>Before doing so, please make sure that the bug has <span class=
- "emphasis"><i class="EMPHASIS">not already been submitted</i></span>
- and observe the additional hints at the top of the <a href=
- "http://sourceforge.net/tracker/?func=add&group_id=11118&atid=111118"
- target="_top">submit form</a>. If already submitted, please feel free
- to add any info to the original report that might help to solve the
- issue.</p>
- </div>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="CONTACT-FEATURE" id="CONTACT-FEATURE">11.4.
- Request New Features</a></h2>
-
- <p>You are welcome to submit ideas on new features or other proposals
- for improvement through our feature request tracker at <a href=
- "http://sourceforge.net/tracker/?atid=361118&group_id=11118"
- target="_top">http://sourceforge.net/tracker/?atid=361118&group_id=11118</a>.</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="MAILING-LISTS" id="MAILING-LISTS">11.5.
- Mailing Lists</a></h2>
-
- <p>If you prefer to communicate through email, instead of using a web
- interface, feel free to use one of the mailing lists. To discuss issues
- that haven't been completely diagnosed yet, please use the Privoxy
- users list. Technically interested users and people who wish to
- contribute to the project are always welcome on the developers list.
- You can find an overview of all <span class=
- "APPLICATION">Privoxy</span>-related mailing lists, including list
- archives, at: <a href="http://sourceforge.net/mail/?group_id=11118"
- target="_top">http://sourceforge.net/mail/?group_id=11118</a>.</p>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="templates.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href="copyright.html"
- accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">Privoxy's Template
- Files</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">Privoxy Copyright, License
- and History</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Privoxy Copyright, License and History</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy 3.0.21 User Manual" href="index.html">
- <link rel="PREVIOUS" title=
- "Contacting the Developers, Bug Reporting and Feature Requests" href=
- "contact.html">
- <link rel="NEXT" title="See Also" href="seealso.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
- <link rel="STYLESHEET" type="text/css" href="p_doc.css">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy 3.0.21 User Manual</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href="contact.html"
- accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href="seealso.html"
- accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="COPYRIGHT" id="COPYRIGHT">12. Privoxy
- Copyright, License and History</a></h1>
-
- <p>Copyright © 2001-2013 by Privoxy Developers <code class=
- "EMAIL"><<a href=
- "mailto:ijbswa-developers@lists.sourceforge.net">ijbswa-developers@lists.sourceforge.net</a>></code></p>
-
- <p>Some source code is based on code Copyright © 1997 by Anonymous
- Coders and Junkbusters, Inc. and licensed under the <i class=
- "CITETITLE">GNU General Public License</i>.</p>
-
- <p><span class="APPLICATION">Privoxy</span> is free software; you can
- redistribute it and/or modify it under the terms of the <i class=
- "CITETITLE">GNU General Public License</i>, version 2, as published by
- the Free Software Foundation and included in the next section.</p>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="LICENSE" id="LICENSE">12.1. License</a></h2>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.
-
-</pre>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="HISTORY" id="HISTORY">12.2. History</a></h2>
-
- <p>A long time ago, there was the <span class="APPLICATION">Internet
- Junkbuster</span>, by Anonymous Coders and Junkbusters Corporation.
- This saved many users a lot of pain in the early days of web
- advertising and user tracking.</p>
-
- <p>But the web, its protocols and standards, and with it, the
- techniques for forcing ads on users, give up autonomy over their
- browsing, and for tracking them, keeps evolving. Unfortunately, the
- <span class="APPLICATION">Internet Junkbuster</span> did not. Version
- 2.0.2, published in 1998, was the last official release, available from
- Junkbusters Corporation. Fortunately, it had been released under the
- GNU <a href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
- target="_top">GPL</a>, which allowed further development by others.</p>
-
- <p>So Stefan Waldherr started maintaining an improved version of the
- software, to which eventually a number of people contributed patches.
- It could already replace banners with a transparent image, and had a
- first version of pop-up killing, but it was still very closely based on
- the original, with all its limitations, such as the lack of HTTP/1.1
- support, flexible per-site configuration, or content modification. The
- last release from this effort was version 2.0.2-10, published in
- 2000.</p>
-
- <p>Then, some <a href=
- "http://www.privoxy.org/user-manual/copyright.html#AUTHORS" target=
- "_top">developers</a> picked up the thread, and started turning the
- software inside out, upside down, and then reassembled it, adding many
- <a href="http://www.privoxy.org/user-manual/introduction.html#FEATURES"
- target="_top">new features</a> along the way.</p>
-
- <p>The result of this is <span class="APPLICATION">Privoxy</span>,
- whose first stable version, 3.0, was released August, 2002.</p>
-
- <p>As of 2012 the Junkbusters Corporation's website
- (http://www.junkbusters.com/) has been shut down, but Privoxy is still
- actively maintained.</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="AUTHORS" id="AUTHORS">12.3. Authors</a></h2>
-
- <p>Current Privoxy Team:</p>
-
- <p class="LITERALLAYOUT">
- Fabian Keil, lead developer<br>
- David Schmidt<br>
- Hal Burgiss<br>
- Lee Rian<br>
- Roland Rosenfeld<br>
- Ian Silvester</p>
-
- <p>Former Privoxy Team Members:</p>
-
- <p class="LITERALLAYOUT"> Johny Agotnes<br>
- Rodrigo Barbosa<br>
- Moritz Barsnick<br>
- Ian Cummings<br>
- Brian Dessent<br>
- Jon Foster<br>
- Karsten Hopp<br>
- Alexander Lazic<br>
- Daniel Leite<br>
- Gábor Lipták<br>
- Adam Lock<br>
- Guy Laroche<br>
- Justin McMurtry<br>
- Mark Miller<br>
- Gerry Murphy<br>
- Andreas Oesterhelt<br>
- Haroon Rafique<br>
- Georg Sauthoff<br>
- Thomas Steudten<br>
- Jörg Strohmayer<br>
- Rodney Stromlund<br>
- Sviatoslav Sviridov<br>
- Sarantis Paskalis<br>
- Stefan Waldherr</p>
-
- <p>Thanks to the many people who have tested Privoxy, reported bugs,
- provided patches, made suggestions or contributed in some way. These
- include (in alphabetical order):</p>
-
- <p class="LITERALLAYOUT"> Ken Arromdee<br>
- Natxo Asenjo<br>
- Devin Bayer<br>
- Havard Berland<br>
- David Bo<br>
- Gergely Bor<br>
- Francois Botha<br>
- Reiner Buehl<br>
- Andrew J. Caines<br>
- Clifford Caoile<br>
- Wan-Teh Chang<br>
- Ramkumar Chinchani<br>
- Billy Crook<br>
- Frédéric Crozat<br>
- Michael T. Davis<br>
- Markus Dittrich<br>
- Mattes Dolak<br>
- Matthias Drochner<br>
- Peter E.<br>
- Florian Effenberger<br>
- Markus Elfring<br>
- Ryan Farmer<br>
- Matthew Fischer<br>
- Dean Gaudet<br>
- Stephen Gildea<br>
- Lizik Grelier<br>
- Daniel Griscom<br>
- Felix Gröbert<br>
- Jeff H.<br>
- Tim H.<br>
- Aaron Hamid<br>
- Darel Henman<br>
- Magnus Holmgren<br>
- Eric M. Hopper<br>
- Ralf Horstmann<br>
- Stefan Huehner<br>
- Peter Hyman<br>
- Derek Jennings<br>
- Andrew Jones<br>
- Julien Joubert<br>
- Ralf Jungblut<br>
- Petr Kadlec<br>
- Steven Kolins<br>
- Zeno Kugy<br>
- David Laight<br>
- Bert van Leeuwen<br>
- Don Libes<br>
- Paul Lieverse<br>
- Han Liu<br>
- Toby Lyward<br>
- Wil Mahan<br>
- Jindrich Makovicka<br>
- Raphael Marichez<br>
- Francois Marier<br>
- Angelina Matson<br>
- David Mediavilla<br>
- Raphael Moll<br>
- Amuro Namie<br>
- Adam Piggott<br>
- Petr Písar<br>
- Dan Price<br>
- Roberto Ragusa<br>
- Félix Rauch<br>
- Maynard Riley<br>
- Andreas Rutkauskas<br>
- Bart Schelstraete<br>
- Chung-chieh Shan<br>
- Simon South<br>
- Dan Stahlke<br>
- Oliver Stoeneberg<br>
- Rick Sykes<br>
- Spinor S.<br>
- Peter Thoenen<br>
- Martin Thomas<br>
- Bobby G. Vinyard<br>
- Jochen Voss<br>
- Glenn Washburn<br>
- Song Weijia<br>
- Jörg Weinmann<br>
- Darren Wiebe<br>
- Anduin Withers<br>
- Oliver Yeoh<br>
- Jamie Zawinski</p>
-
- <p>Privoxy is based in part on code originally developed by Junkbusters
- Corp. and Anonymous Coders.</p>
-
- <p>Privoxy heavily relies on Philip Hazel's PCRE.</p>
-
- <p>The code to filter compressed content makes use of zlib which is
- written by Jean-loup Gailly and Mark Adler.</p>
-
- <p>On systems that lack snprintf(), Privoxy is using a version written
- by Mark Martinec. On systems that lack strptime(), Privoxy is using the
- one from the GNU C Library written by Ulrich Drepper.</p>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="contact.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href="seealso.html"
- accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">Contacting the Developers,
- Bug Reporting and Feature Requests</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">See Also</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Filter Files</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy 3.0.21 User Manual" href="index.html">
- <link rel="PREVIOUS" title="Actions Files" href="actions-file.html">
- <link rel="NEXT" title="Privoxy's Template Files" href="templates.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
- <link rel="STYLESHEET" type="text/css" href="p_doc.css">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy 3.0.21 User Manual</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href=
- "actions-file.html" accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href=
- "templates.html" accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="FILTER-FILE" id="FILTER-FILE">9. Filter
- Files</a></h1>
-
- <p>On-the-fly text substitutions need to be defined in a <span class=
- "QUOTE">"filter file"</span>. Once defined, they can then be invoked as
- an <span class="QUOTE">"action"</span>.</p>
-
- <p><span class="APPLICATION">Privoxy</span> supports three different
- filter actions: <tt class="LITERAL"><a href=
- "actions-file.html#FILTER">filter</a></tt> to rewrite the content that is
- send to the client, <tt class="LITERAL"><a href=
- "actions-file.html#CLIENT-HEADER-FILTER">client-header-filter</a></tt> to
- rewrite headers that are send by the client, and <tt class=
- "LITERAL"><a href=
- "actions-file.html#SERVER-HEADER-FILTER">server-header-filter</a></tt> to
- rewrite headers that are send by the server.</p>
-
- <p><span class="APPLICATION">Privoxy</span> also supports two tagger
- actions: <tt class="LITERAL"><a href=
- "actions-file.html#CLIENT-HEADER-TAGGER">client-header-tagger</a></tt>
- and <tt class="LITERAL"><a href=
- "actions-file.html#SERVER-HEADER-TAGGER">server-header-tagger</a></tt>.
- Taggers and filters use the same syntax in the filter files, the
- difference is that taggers don't modify the text they are filtering, but
- use a rewritten version of the filtered text as tag. The tags can then be
- used to change the applying actions through sections with <a href=
- "actions-file.html#TAG-PATTERN">tag-patterns</a>.</p>
-
- <p>Multiple filter files can be defined through the <tt class=
- "LITERAL"><a href="config.html#FILTERFILE">filterfile</a></tt> config
- directive. The filters as supplied by the developers are located in
- <tt class="FILENAME">default.filter</tt>. It is recommended that any
- locally defined or modified filters go in a separately defined file such
- as <tt class="FILENAME">user.filter</tt>.</p>
-
- <p>Common tasks for content filters are to eliminate common annoyances in
- HTML and JavaScript, such as pop-up windows, exit consoles, crippled
- windows without navigation tools, the infamous <BLINK> tag etc, to
- suppress images with certain width and height attributes (standard banner
- sizes or web-bugs), or just to have fun.</p>
-
- <p>Enabled content filters are applied to any content whose <span class=
- "QUOTE">"Content Type"</span> header is recognised as a sign of
- text-based content, with the exception of <tt class=
- "LITERAL">text/plain</tt>. Use the <a href=
- "actions-file.html#FORCE-TEXT-MODE">force-text-mode</a> action to also
- filter other content.</p>
-
- <p>Substitutions are made at the source level, so if you want to
- <span class="QUOTE">"roll your own"</span> filters, you should first be
- familiar with HTML syntax, and, of course, regular expressions.</p>
-
- <p>Just like the <a href="actions-file.html">actions files</a>, the
- filter file is organized in sections, which are called <span class=
- "emphasis"><i class="EMPHASIS">filters</i></span> here. Each filter
- consists of a heading line, that starts with one of the <span class=
- "emphasis"><i class="EMPHASIS">keywords</i></span> <tt class=
- "LITERAL">FILTER:</tt>, <tt class="LITERAL">CLIENT-HEADER-FILTER:</tt> or
- <tt class="LITERAL">SERVER-HEADER-FILTER:</tt> followed by the filter's
- <span class="emphasis"><i class="EMPHASIS">name</i></span>, and a short
- (one line) <span class="emphasis"><i class=
- "EMPHASIS">description</i></span> of what it does. Below that line come
- the <span class="emphasis"><i class="EMPHASIS">jobs</i></span>, i.e.
- lines that define the actual text substitutions. By convention, the name
- of a filter should describe what the filter <span class=
- "emphasis"><i class="EMPHASIS">eliminates</i></span>. The comment is used
- in the <a href="http://config.privoxy.org/" target="_top">web-based user
- interface</a>.</p>
-
- <p>Once a filter called <tt class="REPLACEABLE"><i>name</i></tt> has been
- defined in the filter file, it can be invoked by using an action of the
- form +<tt class="LITERAL"><a href=
- "actions-file.html#FILTER">filter</a>{<tt class=
- "REPLACEABLE"><i>name</i></tt>}</tt> in any <a href=
- "actions-file.html">actions file</a>.</p>
-
- <p>Filter definitions start with a header line that contains the filter
- type, the filter name and the filter description. A content filter header
- line for a filter called <span class="QUOTE">"foo"</span> could look like
- this:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-FILTER: foo Replace all "foo" with "bar"
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Below that line, and up to the next header line, come the jobs that
- define what text replacements the filter executes. They are specified in
- a syntax that imitates <a href="http://www.perl.org/" target=
- "_top">Perl</a>'s <tt class="LITERAL">s///</tt> operator. If you are
- familiar with Perl, you will find this to be quite intuitive, and may
- want to look at the PCRS documentation for the subtle differences to Perl
- behaviour. Most notably, the non-standard option letter <tt class=
- "LITERAL">U</tt> is supported, which turns the default to ungreedy
- matching.</p>
-
- <p>If you are new to <a href=
- "http://en.wikipedia.org/wiki/Regular_expressions" target=
- "_top"><span class="QUOTE">"Regular Expressions"</span></a>, you might
- want to take a look at the <a href="appendix.html#REGEX">Appendix on
- regular expressions</a>, and see the <a href=
- "http://perldoc.perl.org/perlre.html" target="_top">Perl manual</a> for
- <a href="http://perldoc.perl.org/perlop.html" target="_top">the
- <tt class="LITERAL">s///</tt> operator's syntax</a> and <a href=
- "http://perldoc.perl.org/perlre.html" target="_top">Perl-style regular
- expressions</a> in general. The below examples might also help to get you
- started.</p>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="AEN5181" id="AEN5181">9.1. Filter File
- Tutorial</a></h2>
-
- <p>Now, let's complete our <span class="QUOTE">"foo"</span> content
- filter. We have already defined the heading, but the jobs are still
- missing. Since all it does is to replace <span class=
- "QUOTE">"foo"</span> with <span class="QUOTE">"bar"</span>, there is
- only one (trivial) job needed:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-s/foo/bar/
-</pre>
- </td>
- </tr>
- </table>
-
- <p>But wait! Didn't the comment say that <span class=
- "emphasis"><i class="EMPHASIS">all</i></span> occurrences of
- <span class="QUOTE">"foo"</span> should be replaced? Our current job
- will only take care of the first <span class="QUOTE">"foo"</span> on
- each page. For global substitution, we'll need to add the <tt class=
- "LITERAL">g</tt> option:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-s/foo/bar/g
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Our complete filter now looks like this:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-FILTER: foo Replace all "foo" with "bar"
-s/foo/bar/g
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Let's look at some real filters for more interesting examples. Here
- you see a filter that protects against some common annoyances that
- arise from JavaScript abuse. Let's look at its jobs one after the
- other:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-FILTER: js-annoyances Get rid of particularly annoying JavaScript abuse
-
-# Get rid of JavaScript referrer tracking. Test page: http://www.randomoddness.com/untitled.htm
-#
-s|(<script.*)document\.referrer(.*</script>)|$1"Not Your Business!"$2|Usg
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Following the header line and a comment, you see the job. Note that
- it uses <tt class="LITERAL">|</tt> as the delimiter instead of
- <tt class="LITERAL">/</tt>, because the pattern contains a forward
- slash, which would otherwise have to be escaped by a backslash
- (<tt class="LITERAL">\</tt>).</p>
-
- <p>Now, let's examine the pattern: it starts with the text <tt class=
- "LITERAL"><script.*</tt> enclosed in parentheses. Since the dot
- matches any character, and <tt class="LITERAL">*</tt> means:
- <span class="QUOTE">"Match an arbitrary number of the element left of
- myself"</span>, this matches <span class="QUOTE">"<script"</span>,
- followed by <span class="emphasis"><i class="EMPHASIS">any</i></span>
- text, i.e. it matches the whole page, from the start of the first
- <script> tag.</p>
-
- <p>That's more than we want, but the pattern continues: <tt class=
- "LITERAL">document\.referrer</tt> matches only the exact string
- <span class="QUOTE">"document.referrer"</span>. The dot needed to be
- <span class="emphasis"><i class="EMPHASIS">escaped</i></span>, i.e.
- preceded by a backslash, to take away its special meaning as a joker,
- and make it just a regular dot. So far, the meaning is: Match from the
- start of the first <script> tag in a the page, up to, and
- including, the text <span class="QUOTE">"document.referrer"</span>, if
- <span class="emphasis"><i class="EMPHASIS">both</i></span> are present
- in the page (and appear in that order).</p>
-
- <p>But there's still more pattern to go. The next element, again
- enclosed in parentheses, is <tt class="LITERAL">.*</script></tt>.
- You already know what <tt class="LITERAL">.*</tt> means, so the whole
- pattern translates to: Match from the start of the first <script>
- tag in a page to the end of the last <script> tag, provided that
- the text <span class="QUOTE">"document.referrer"</span> appears
- somewhere in between.</p>
-
- <p>This is still not the whole story, since we have ignored the options
- and the parentheses: The portions of the page matched by sub-patterns
- that are enclosed in parentheses, will be remembered and be available
- through the variables <tt class="LITERAL">$1, $2, ...</tt> in the
- substitute. The <tt class="LITERAL">U</tt> option switches to ungreedy
- matching, which means that the first <tt class="LITERAL">.*</tt> in the
- pattern will only <span class="QUOTE">"eat up"</span> all text in
- between <span class="QUOTE">"<script"</span> and the <span class=
- "emphasis"><i class="EMPHASIS">first</i></span> occurrence of
- <span class="QUOTE">"document.referrer"</span>, and that the second
- <tt class="LITERAL">.*</tt> will only span the text up to the
- <span class="emphasis"><i class="EMPHASIS">first</i></span>
- <span class="QUOTE">"</script>"</span> tag. Furthermore, the
- <tt class="LITERAL">s</tt> option says that the match may span multiple
- lines in the page, and the <tt class="LITERAL">g</tt> option again
- means that the substitution is global.</p>
-
- <p>So, to summarize, the pattern means: Match all scripts that contain
- the text <span class="QUOTE">"document.referrer"</span>. Remember the
- parts of the script from (and including) the start tag up to (and
- excluding) the string <span class="QUOTE">"document.referrer"</span> as
- <tt class="LITERAL">$1</tt>, and the part following that string, up to
- and including the closing tag, as <tt class="LITERAL">$2</tt>.</p>
-
- <p>Now the pattern is deciphered, but wasn't this about substituting
- things? So lets look at the substitute: <tt class="LITERAL">$1"Not Your
- Business!"$2</tt> is easy to read: The text remembered as <tt class=
- "LITERAL">$1</tt>, followed by <tt class="LITERAL">"Not Your
- Business!"</tt> (<span class="emphasis"><i class=
- "EMPHASIS">including</i></span> the quotation marks!), followed by the
- text remembered as <tt class="LITERAL">$2</tt>. This produces an exact
- copy of the original string, with the middle part (the <span class=
- "QUOTE">"document.referrer"</span>) replaced by <tt class=
- "LITERAL">"Not Your Business!"</tt>.</p>
-
- <p>The whole job now reads: Replace <span class=
- "QUOTE">"document.referrer"</span> by <tt class="LITERAL">"Not Your
- Business!"</tt> wherever it appears inside a <script> tag. Note
- that this job won't break JavaScript syntax, since both the original
- and the replacement are syntactically valid string objects. The script
- just won't have access to the referrer information anymore.</p>
-
- <p>We'll show you two other jobs from the JavaScript taming department,
- but this time only point out the constructs of special interest:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-# The status bar is for displaying link targets, not pointless blahblah
-#
-s/window\.status\s*=\s*(['"]).*?\1/dUmMy=1/ig
-</pre>
- </td>
- </tr>
- </table>
-
- <p><tt class="LITERAL">\s</tt> stands for whitespace characters (space,
- tab, newline, carriage return, form feed), so that <tt class=
- "LITERAL">\s*</tt> means: <span class="QUOTE">"zero or more
- whitespace"</span>. The <tt class="LITERAL">?</tt> in <tt class=
- "LITERAL">.*?</tt> makes this matching of arbitrary text ungreedy.
- (Note that the <tt class="LITERAL">U</tt> option is not set). The
- <tt class="LITERAL">['"]</tt> construct means: <span class="QUOTE">"a
- single <span class="emphasis"><i class="EMPHASIS">or</i></span> a
- double quote"</span>. Finally, <tt class="LITERAL">\1</tt> is a
- back-reference to the first parenthesis just like <tt class=
- "LITERAL">$1</tt> above, with the difference that in the <span class=
- "emphasis"><i class="EMPHASIS">pattern</i></span>, a backslash
- indicates a back-reference, whereas in the <span class=
- "emphasis"><i class="EMPHASIS">substitute</i></span>, it's the
- dollar.</p>
-
- <p>So what does this job do? It replaces assignments of single- or
- double-quoted strings to the <span class="QUOTE">"window.status"</span>
- object with a dummy assignment (using a variable name that is hopefully
- odd enough not to conflict with real variables in scripts). Thus, it
- catches many cases where e.g. pointless descriptions are displayed in
- the status bar instead of the link target when you move your mouse over
- links.</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Kill OnUnload popups. Yummy. Test: http://www.zdnet.com/zdsubs/yahoo/tree/yfs.html
-#
-s/(<body [^>]*)onunload(.*>)/$1never$2/iU
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Including the <a href=
- "http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/events.html#Events-eventgroupings-htmlevents"
- target="_top">OnUnload event binding</a> in the HTML DOM was a
- <span class="emphasis"><i class="EMPHASIS">CRIME</i></span>. When I
- close a browser window, I want it to close and die. Basta. This job
- replaces the <span class="QUOTE">"onunload"</span> attribute in
- <span class="QUOTE">"<body>"</span> tags with the dummy word
- <tt class="LITERAL">never</tt>. Note that the <tt class=
- "LITERAL">i</tt> option makes the pattern matching case-insensitive.
- Also note that ungreedy matching alone doesn't always guarantee a
- minimal match: In the first parenthesis, we had to use <tt class=
- "LITERAL">[^>]*</tt> instead of <tt class="LITERAL">.*</tt> to
- prevent the match from exceeding the <body> tag if it doesn't
- contain <span class="QUOTE">"OnUnload"</span>, but the page's content
- does.</p>
-
- <p>The last example is from the fun department:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-FILTER: fun Fun text replacements
-
-# Spice the daily news:
-#
-s/microsoft(?!\.com)/MicroSuck/ig
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Note the <tt class="LITERAL">(?!\.com)</tt> part (a so-called
- negative lookahead) in the job's pattern, which means: Don't match, if
- the string <span class="QUOTE">".com"</span> appears directly following
- <span class="QUOTE">"microsoft"</span> in the page. This prevents links
- to microsoft.com from being trashed, while still replacing the word
- everywhere else.</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-# Buzzword Bingo (example for extended regex syntax)
-#
-s* industry[ -]leading \
-| cutting[ -]edge \
-| customer[ -]focused \
-| market[ -]driven \
-| award[ -]winning # Comments are OK, too! \
-| high[ -]performance \
-| solutions[ -]based \
-| unmatched \
-| unparalleled \
-| unrivalled \
-*<font color="red"><b>BINGO!</b></font> \
-*igx
-</pre>
- </td>
- </tr>
- </table>
-
- <p>The <tt class="LITERAL">x</tt> option in this job turns on extended
- syntax, and allows for e.g. the liberal use of (non-interpreted!)
- whitespace for nicer formatting.</p>
-
- <p>You get the idea?</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="PREDEFINED-FILTERS" id=
- "PREDEFINED-FILTERS">9.2. The Pre-defined Filters</a></h2>
-
- <p>The distribution <tt class="FILENAME">default.filter</tt> file
- contains a selection of pre-defined filters for your convenience:</p>
-
- <div class="VARIABLELIST">
- <dl>
- <dt><span class="emphasis"><i class=
- "EMPHASIS">js-annoyances</i></span></dt>
-
- <dd>
- <p>The purpose of this filter is to get rid of particularly
- annoying JavaScript abuse. To that end, it</p>
-
- <ul>
- <li>
- <p>replaces JavaScript references to the browser's referrer
- information with the string "Not Your Business!". This
- compliments the <tt class="LITERAL"><a href=
- "actions-file.html#HIDE-REFERRER">hide-referrer</a></tt>
- action on the content level.</p>
- </li>
-
- <li>
- <p>removes the bindings to the DOM's <a href=
- "http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/events.html#Events-eventgroupings-htmlevents"
- target="_top">unload event</a> which we feel has no right to
- exist and is responsible for most <span class="QUOTE">"exit
- consoles"</span>, i.e. nasty windows that pop up when you
- close another one.</p>
- </li>
-
- <li>
- <p>removes code that causes new windows to be opened with
- undesired properties, such as being full-screen,
- non-resizeable, without location, status or menu bar etc.</p>
- </li>
- </ul>
-
- <p>Use with caution. This is an aggressive filter, and can break
- sites that rely heavily on JavaScript.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">js-events</i></span></dt>
-
- <dd>
- <p>This is a very radical measure. It removes virtually all
- JavaScript event bindings, which means that scripts can not react
- to user actions such as mouse movements or clicks, window
- resizing etc, anymore. Use with caution!</p>
-
- <p>We <span class="emphasis"><i class="EMPHASIS">strongly
- discourage</i></span> using this filter as a default since it
- breaks many legitimate scripts. It is meant for use only on
- extra-nasty sites (should you really need to go there).</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">html-annoyances</i></span></dt>
-
- <dd>
- <p>This filter will undo many common instances of HTML based
- abuse.</p>
-
- <p>The <tt class="LITERAL">BLINK</tt> and <tt class=
- "LITERAL">MARQUEE</tt> tags are neutralized (yeah baby!), and
- browser windows will be created as resizeable (as of course they
- should be!), and will have location, scroll and menu bars -- even
- if specified otherwise.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">content-cookies</i></span></dt>
-
- <dd>
- <p>Most cookies are set in the HTTP dialog, where they can be
- intercepted by the <tt class="LITERAL"><a href=
- "actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a></tt>
- and <tt class="LITERAL"><a href=
- "actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a></tt>
- actions. But web sites increasingly make use of HTML meta tags
- and JavaScript to sneak cookies to the browser on the content
- level.</p>
-
- <p>This filter disables most HTML and JavaScript code that reads
- or sets cookies. It cannot detect all clever uses of these types
- of code, so it should not be relied on as an absolute fix. Use it
- wherever you would also use the cookie crunch actions.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">refresh-tags</i></span></dt>
-
- <dd>
- <p>Disable any refresh tags if the interval is greater than nine
- seconds (so that redirections done via refresh tags are not
- destroyed). This is useful for dial-on-demand setups, or for
- those who find this HTML feature annoying.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">unsolicited-popups</i></span></dt>
-
- <dd>
- <p>This filter attempts to prevent only <span class=
- "QUOTE">"unsolicited"</span> pop-up windows from opening, yet
- still allow pop-up windows that the user has explicitly chosen to
- open. It was added in version 3.0.1, as an improvement over
- earlier such filters.</p>
-
- <p>Technical note: The filter works by redefining the window.open
- JavaScript function to a dummy function, <tt class=
- "LITERAL">PrivoxyWindowOpen()</tt>, during the loading and
- rendering phase of each HTML page access, and restoring the
- function afterward.</p>
-
- <p>This is recommended only for browsers that cannot perform this
- function reliably themselves. And be aware that some sites
- require such windows in order to function normally. Use with
- caution.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">all-popups</i></span></dt>
-
- <dd>
- <p>Attempt to prevent <span class="emphasis"><i class=
- "EMPHASIS">all</i></span> pop-up windows from opening. Note this
- should be used with even more discretion than the above, since it
- is more likely to break some sites that require pop-ups for
- normal usage. Use with caution.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">img-reorder</i></span></dt>
-
- <dd>
- <p>This is a helper filter that has no value if used alone. It
- makes the <tt class="LITERAL">banners-by-size</tt> and <tt class=
- "LITERAL">banners-by-link</tt> (see below) filters more effective
- and should be enabled together with them.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">banners-by-size</i></span></dt>
-
- <dd>
- <p>This filter removes image tags purely based on what size they
- are. Fortunately for us, many ads and banner images tend to
- conform to certain standardized sizes, which makes this filter
- quite effective for ad stripping purposes.</p>
-
- <p>Occasionally this filter will cause false positives on images
- that are not ads, but just happen to be of one of the standard
- banner sizes.</p>
-
- <p>Recommended only for those who require extreme ad blocking.
- The default block rules should catch 95+% of all ads <span class=
- "emphasis"><i class="EMPHASIS">without</i></span> this filter
- enabled.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">banners-by-link</i></span></dt>
-
- <dd>
- <p>This is an experimental filter that attempts to kill any
- banners if their URLs seem to point to known or suspected click
- trackers. It is currently not of much value and is not
- recommended for use by default.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">webbugs</i></span></dt>
-
- <dd>
- <p>Webbugs are small, invisible images (technically 1X1 GIF
- images), that are used to track users across websites, and
- collect information on them. As an HTML page is loaded by the
- browser, an embedded image tag causes the browser to contact a
- third-party site, disclosing the tracking information through the
- requested URL and/or cookies for that third-party domain, without
- the user ever becoming aware of the interaction with the
- third-party site. HTML-ized spam also uses a similar technique to
- verify email addresses.</p>
-
- <p>This filter removes the HTML code that loads such <span class=
- "QUOTE">"webbugs"</span>.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">tiny-textforms</i></span></dt>
-
- <dd>
- <p>A rather special-purpose filter that can be used to enlarge
- textareas (those multi-line text boxes in web forms) and turn off
- hard word wrap in them. It was written for the sourceforge.net
- tracker system where such boxes are a nuisance, but it can be
- handy on other sites, too.</p>
-
- <p>It is not recommended to use this filter as a default.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">jumping-windows</i></span></dt>
-
- <dd>
- <p>Many consider windows that move, or resize themselves to be
- abusive. This filter neutralizes the related JavaScript code.
- Note that some sites might not display or behave as intended when
- using this filter. Use with caution.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">frameset-borders</i></span></dt>
-
- <dd>
- <p>Some web designers seem to assume that everyone in the world
- will view their web sites using the same browser brand and
- version, screen resolution etc, because only that assumption
- could explain why they'd use static frame sizes, yet prevent
- their frames from being resized by the user, should they be too
- small to show their whole content.</p>
-
- <p>This filter removes the related HTML code. It should only be
- applied to sites which need it.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">demoronizer</i></span></dt>
-
- <dd>
- <p>Many Microsoft products that generate HTML use non-standard
- extensions (read: violations) of the ISO 8859-1 aka Latin-1
- character set. This can cause those HTML documents to display
- with errors on standard-compliant platforms.</p>
-
- <p>This filter translates the MS-only characters into Latin-1
- equivalents. It is not necessary when using MS products, and will
- cause corruption of all documents that use 8-bit character sets
- other than Latin-1. It's mostly worthwhile for Europeans on
- non-MS platforms, if weird garbage characters sometimes appear on
- some pages, or user agents that don't correct for this on the
- fly.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">shockwave-flash</i></span></dt>
-
- <dd>
- <p>A filter for shockwave haters. As the name suggests, this
- filter strips code out of web pages that is used to embed
- shockwave flash objects.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">quicktime-kioskmode</i></span></dt>
-
- <dd>
- <p>Change HTML code that embeds Quicktime objects so that
- kioskmode, which prevents saving, is disabled.</p>
- </dd>
-
- <dt><span class="emphasis"><i class="EMPHASIS">fun</i></span></dt>
-
- <dd>
- <p>Text replacements for subversive browsing fun. Make fun of
- your favorite Monopolist or play buzzword bingo.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">crude-parental</i></span></dt>
-
- <dd>
- <p>A demonstration-only filter that shows how <span class=
- "APPLICATION">Privoxy</span> can be used to delete web content on
- a keyword basis.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">ie-exploits</i></span></dt>
-
- <dd>
- <p>An experimental collection of text replacements to disable
- malicious HTML and JavaScript code that exploits known security
- holes in Internet Explorer.</p>
-
- <p>Presently, it only protects against Nimda and a cross-site
- scripting bug, and would need active maintenance to provide more
- substantial protection.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">site-specifics</i></span></dt>
-
- <dd>
- <p>Some web sites have very specific problems, the cure for which
- doesn't apply anywhere else, or could even cause damage on other
- sites.</p>
-
- <p>This is a collection of such site-specific cures which should
- only be applied to the sites they were intended for, which is
- what the supplied <tt class="FILENAME">default.action</tt> file
- does. Users shouldn't need to change anything regarding this
- filter.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">google</i></span></dt>
-
- <dd>
- <p>A CSS based block for Google text ads. Also removes a width
- limitation and the toolbar advertisement.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">yahoo</i></span></dt>
-
- <dd>
- <p>Another CSS based block, this time for Yahoo text ads. And
- removes a width limitation as well.</p>
- </dd>
-
- <dt><span class="emphasis"><i class="EMPHASIS">msn</i></span></dt>
-
- <dd>
- <p>Another CSS based block, this time for MSN text ads. And
- removes tracking URLs, as well as a width limitation.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">blogspot</i></span></dt>
-
- <dd>
- <p>Cleans up some Blogspot blogs. Read the fine print before
- using this one!</p>
-
- <p>This filter also intentionally removes some navigation stuff
- and sets the page width to 100%. As a result, some rounded
- <span class="QUOTE">"corners"</span> would appear to early or not
- at all and as fixing this would require a browser that
- understands background-size (CSS3), they are removed instead.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">xml-to-html</i></span></dt>
-
- <dd>
- <p>Server-header filter to change the Content-Type from xml to
- html.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">html-to-xml</i></span></dt>
-
- <dd>
- <p>Server-header filter to change the Content-Type from html to
- xml.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">no-ping</i></span></dt>
-
- <dd>
- <p>Removes the non-standard <tt class="LITERAL">ping</tt>
- attribute from anchor and area HTML tags.</p>
- </dd>
-
- <dt><span class="emphasis"><i class=
- "EMPHASIS">hide-tor-exit-notation</i></span></dt>
-
- <dd>
- <p>Client-header filter to remove the <b class="COMMAND">Tor</b>
- exit node notation found in Host and Referer headers.</p>
-
- <p>If <span class="APPLICATION">Privoxy</span> and <b class=
- "COMMAND">Tor</b> are chained and <span class=
- "APPLICATION">Privoxy</span> is configured to use socks4a, one
- can use <span class=
- "QUOTE">"http://www.example.org.foobar.exit/"</span> to access
- the host <span class="QUOTE">"www.example.org"</span> through the
- <b class="COMMAND">Tor</b> exit node <span class=
- "QUOTE">"foobar"</span>.</p>
-
- <p>As the HTTP client isn't aware of this notation, it treats the
- whole string <span class=
- "QUOTE">"www.example.org.foobar.exit"</span> as host and uses it
- for the <span class="QUOTE">"Host"</span> and <span class=
- "QUOTE">"Referer"</span> headers. From the server's point of view
- the resulting headers are invalid and can cause problems.</p>
-
- <p>An invalid <span class="QUOTE">"Referer"</span> header can
- trigger <span class="QUOTE">"hot-linking"</span> protections, an
- invalid <span class="QUOTE">"Host"</span> header will make it
- impossible for the server to find the right vhost (several
- domains hosted on the same IP address).</p>
-
- <p>This client-header filter removes the <span class=
- "QUOTE">"foo.exit"</span> part in those headers to prevent the
- mentioned problems. Note that it only modifies the HTTP headers,
- it doesn't make it impossible for the server to detect your
- <b class="COMMAND">Tor</b> exit node based on the IP address the
- request is coming from.</p>
- </dd>
- </dl>
- </div>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="actions-file.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href="templates.html"
- accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">Actions Files</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">Privoxy's Template
- Files</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Privoxy 3.0.21 User Manual</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="NEXT" title="Introduction" href="introduction.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
- <link rel="STYLESHEET" type="text/css" href="p_doc.css">
-</head>
-
-<body class="ARTICLE" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="ARTICLE">
- <div class="TITLEPAGE">
- <h1 class="TITLE"><a name="AEN2" id="AEN2">Privoxy 3.0.21 User
- Manual</a></h1>
-
- <p class="PUBDATE"><sub><a href="copyright.html">Copyright</a> ©
- 2001-2013 by <a href="http://www.privoxy.org/" target="_top">Privoxy
- Developers</a></sub><br></p>
-
- <p class="PUBDATE">$Id: user-manual.sgml,v 2.174 2013/03/02 14:39:24
- fabiankeil Exp $<br></p>
-
- <div>
- <div class="ABSTRACT">
- <a name="AEN9" id="AEN9"></a>
-
- <p>The <i class="CITETITLE">Privoxy User Manual</i> gives users
- information on how to install, configure and use <a href=
- "http://www.privoxy.org/" target="_top">Privoxy</a>.</p>
-
- <p>Privoxy is a non-caching web proxy with advanced filtering
- capabilities for enhancing privacy, modifying web page data and
- HTTP headers, controlling access, and removing ads and other
- obnoxious Internet junk. Privoxy has a flexible configuration and
- can be customized to suit individual needs and tastes. It has
- application for both stand-alone systems and multi-user
- networks.</p>
-
- <p>Privoxy is Free Software and licensed under the GNU GPLv2.</p>
-
- <p>Privoxy is an associated project of Software in the Public
- Interest (SPI).</p>
-
- <p>Helping hands and donations are welcome:</p>
-
- <ul>
- <li>
- <p><a href=
- "http://www.privoxy.org/faq/general.html#PARTICIPATE" target=
- "_top">http://www.privoxy.org/faq/general.html#PARTICIPATE</a></p>
- </li>
-
- <li>
- <p><a href="http://www.privoxy.org/faq/general.html#DONATE"
- target=
- "_top">http://www.privoxy.org/faq/general.html#DONATE</a></p>
- </li>
- </ul>
-
- <p>You can find the latest version of the <i class=
- "CITETITLE">Privoxy User Manual</i> at <a href=
- "http://www.privoxy.org/user-manual/" target=
- "_top">http://www.privoxy.org/user-manual/</a>. Please see the
- <a href="contact.html">Contact section</a> on how to contact the
- developers.</p>
- </div>
- </div>
- <hr>
- </div>
-
- <div class="TOC">
- <dl>
- <dt><b>Table of Contents</b></dt>
-
- <dt>1. <a href="introduction.html">Introduction</a></dt>
-
- <dd>
- <dl>
- <dt>1.1. <a href="introduction.html#FEATURES">Features</a></dt>
- </dl>
- </dd>
-
- <dt>2. <a href="installation.html">Installation</a></dt>
-
- <dd>
- <dl>
- <dt>2.1. <a href="installation.html#INSTALLATION-PACKAGES">Binary
- Packages</a></dt>
-
- <dd>
- <dl>
- <dt>2.1.1. <a href=
- "installation.html#INSTALLATION-DEB">Debian and
- Ubuntu</a></dt>
-
- <dt>2.1.2. <a href=
- "installation.html#INSTALLATION-PACK-WIN">Windows</a></dt>
-
- <dt>2.1.3. <a href=
- "installation.html#INSTALLATION-OS2">OS/2</a></dt>
-
- <dt>2.1.4. <a href="installation.html#INSTALLATION-MAC">Mac
- OS X</a></dt>
-
- <dt>2.1.5. <a href=
- "installation.html#OS-X-INSTALL-FROM-PACKAGE">Installation
- from ready-built package</a></dt>
-
- <dt>2.1.6. <a href=
- "installation.html#OS-X-INSTALL-FROM-SOURCE">Installation
- from source</a></dt>
-
- <dt>2.1.7. <a href=
- "installation.html#INSTALLATION-FREEBSD">FreeBSD</a></dt>
- </dl>
- </dd>
-
- <dt>2.2. <a href="installation.html#INSTALLATION-SOURCE">Building
- from Source</a></dt>
-
- <dt>2.3. <a href=
- "installation.html#INSTALLATION-KEEPUPDATED">Keeping your
- Installation Up-to-Date</a></dt>
- </dl>
- </dd>
-
- <dt>3. <a href="whatsnew.html">What's New in this Release</a></dt>
-
- <dd>
- <dl>
- <dt>3.1. <a href="whatsnew.html#UPGRADERSNOTE">Note to
- Upgraders</a></dt>
- </dl>
- </dd>
-
- <dt>4. <a href="quickstart.html">Quickstart to Using Privoxy</a></dt>
-
- <dd>
- <dl>
- <dt>4.1. <a href=
- "quickstart.html#QUICKSTART-AD-BLOCKING">Quickstart to Ad
- Blocking</a></dt>
- </dl>
- </dd>
-
- <dt>5. <a href="startup.html">Starting Privoxy</a></dt>
-
- <dd>
- <dl>
- <dt>5.1. <a href="startup.html#START-DEBIAN">Debian</a></dt>
-
- <dt>5.2. <a href="startup.html#START-WINDOWS">Windows</a></dt>
-
- <dt>5.3. <a href="startup.html#START-UNICES">Solaris, NetBSD,
- FreeBSD, HP-UX and others</a></dt>
-
- <dt>5.4. <a href="startup.html#START-OS2">OS/2</a></dt>
-
- <dt>5.5. <a href="startup.html#START-MACOSX">Mac OS X</a></dt>
-
- <dt>5.6. <a href="startup.html#CMDOPTIONS">Command Line
- Options</a></dt>
- </dl>
- </dd>
-
- <dt>6. <a href="configuration.html">Privoxy Configuration</a></dt>
-
- <dd>
- <dl>
- <dt>6.1. <a href="configuration.html#AEN1078">Controlling Privoxy
- with Your Web Browser</a></dt>
-
- <dt>6.2. <a href="configuration.html#CONFOVERVIEW">Configuration
- Files Overview</a></dt>
- </dl>
- </dd>
-
- <dt>7. <a href="config.html">The Main Configuration File</a></dt>
-
- <dd>
- <dl>
- <dt>7.1. <a href="config.html#LOCAL-SET-UP">Local Set-up
- Documentation</a></dt>
-
- <dd>
- <dl>
- <dt>7.1.1. <a href=
- "config.html#USER-MANUAL">user-manual</a></dt>
-
- <dt>7.1.2. <a href=
- "config.html#TRUST-INFO-URL">trust-info-url</a></dt>
-
- <dt>7.1.3. <a href=
- "config.html#ADMIN-ADDRESS">admin-address</a></dt>
-
- <dt>7.1.4. <a href=
- "config.html#PROXY-INFO-URL">proxy-info-url</a></dt>
- </dl>
- </dd>
-
- <dt>7.2. <a href="config.html#CONF-LOG-LOC">Configuration and Log
- File Locations</a></dt>
-
- <dd>
- <dl>
- <dt>7.2.1. <a href="config.html#CONFDIR">confdir</a></dt>
-
- <dt>7.2.2. <a href="config.html#TEMPLDIR">templdir</a></dt>
-
- <dt>7.2.3. <a href="config.html#LOGDIR">logdir</a></dt>
-
- <dt>7.2.4. <a href=
- "config.html#ACTIONSFILE">actionsfile</a></dt>
-
- <dt>7.2.5. <a href=
- "config.html#FILTERFILE">filterfile</a></dt>
-
- <dt>7.2.6. <a href="config.html#LOGFILE">logfile</a></dt>
-
- <dt>7.2.7. <a href="config.html#TRUSTFILE">trustfile</a></dt>
- </dl>
- </dd>
-
- <dt>7.3. <a href="config.html#DEBUGGING">Debugging</a></dt>
-
- <dd>
- <dl>
- <dt>7.3.1. <a href="config.html#DEBUG">debug</a></dt>
-
- <dt>7.3.2. <a href=
- "config.html#SINGLE-THREADED">single-threaded</a></dt>
-
- <dt>7.3.3. <a href="config.html#HOSTNAME">hostname</a></dt>
- </dl>
- </dd>
-
- <dt>7.4. <a href="config.html#ACCESS-CONTROL">Access Control and
- Security</a></dt>
-
- <dd>
- <dl>
- <dt>7.4.1. <a href=
- "config.html#LISTEN-ADDRESS">listen-address</a></dt>
-
- <dt>7.4.2. <a href="config.html#TOGGLE">toggle</a></dt>
-
- <dt>7.4.3. <a href=
- "config.html#ENABLE-REMOTE-TOGGLE">enable-remote-toggle</a></dt>
-
- <dt>7.4.4. <a href=
- "config.html#ENABLE-REMOTE-HTTP-TOGGLE">enable-remote-http-toggle</a></dt>
-
- <dt>7.4.5. <a href=
- "config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</a></dt>
-
- <dt>7.4.6. <a href=
- "config.html#ENFORCE-BLOCKS">enforce-blocks</a></dt>
-
- <dt>7.4.7. <a href="config.html#ACLS">ACLs: permit-access and
- deny-access</a></dt>
-
- <dt>7.4.8. <a href=
- "config.html#BUFFER-LIMIT">buffer-limit</a></dt>
-
- <dt>7.4.9. <a href=
- "config.html#ENABLE-PROXY-AUTHENTICATION-FORWARDING">enable-proxy-authentication-forwarding</a></dt>
- </dl>
- </dd>
-
- <dt>7.5. <a href="config.html#FORWARDING">Forwarding</a></dt>
-
- <dd>
- <dl>
- <dt>7.5.1. <a href="config.html#FORWARD">forward</a></dt>
-
- <dt>7.5.2. <a href="config.html#SOCKS">forward-socks4,
- forward-socks4a, forward-socks5 and forward-socks5t</a></dt>
-
- <dt>7.5.3. <a href=
- "config.html#ADVANCED-FORWARDING-EXAMPLES">Advanced
- Forwarding Examples</a></dt>
-
- <dt>7.5.4. <a href=
- "config.html#FORWARDED-CONNECT-RETRIES">forwarded-connect-retries</a></dt>
- </dl>
- </dd>
-
- <dt>7.6. <a href="config.html#MISC">Miscellaneous</a></dt>
-
- <dd>
- <dl>
- <dt>7.6.1. <a href=
- "config.html#ACCEPT-INTERCEPTED-REQUESTS">accept-intercepted-requests</a></dt>
-
- <dt>7.6.2. <a href=
- "config.html#ALLOW-CGI-REQUEST-CRUNCHING">allow-cgi-request-crunching</a></dt>
-
- <dt>7.6.3. <a href=
- "config.html#SPLIT-LARGE-FORMS">split-large-forms</a></dt>
-
- <dt>7.6.4. <a href=
- "config.html#KEEP-ALIVE-TIMEOUT">keep-alive-timeout</a></dt>
-
- <dt>7.6.5. <a href=
- "config.html#TOLERATE-PIPELINING">tolerate-pipelining</a></dt>
-
- <dt>7.6.6. <a href=
- "config.html#DEFAULT-SERVER-TIMEOUT">default-server-timeout</a></dt>
-
- <dt>7.6.7. <a href=
- "config.html#CONNECTION-SHARING">connection-sharing</a></dt>
-
- <dt>7.6.8. <a href=
- "config.html#SOCKET-TIMEOUT">socket-timeout</a></dt>
-
- <dt>7.6.9. <a href=
- "config.html#MAX-CLIENT-CONNECTIONS">max-client-connections</a></dt>
-
- <dt>7.6.10. <a href=
- "config.html#HANDLE-AS-EMPTY-DOC-RETURNS-OK">handle-as-empty-doc-returns-ok</a></dt>
-
- <dt>7.6.11. <a href=
- "config.html#ENABLE-COMPRESSION">enable-compression</a></dt>
-
- <dt>7.6.12. <a href=
- "config.html#COMPRESSION-LEVEL">compression-level</a></dt>
-
- <dt>7.6.13. <a href=
- "config.html#CLIENT-HEADER-ORDER">client-header-order</a></dt>
- </dl>
- </dd>
-
- <dt>7.7. <a href="config.html#WINDOWS-GUI">Windows GUI
- Options</a></dt>
- </dl>
- </dd>
-
- <dt>8. <a href="actions-file.html">Actions Files</a></dt>
-
- <dd>
- <dl>
- <dt>8.1. <a href="actions-file.html#AEN2957">Finding the Right
- Mix</a></dt>
-
- <dt>8.2. <a href="actions-file.html#AEN2964">How to Edit</a></dt>
-
- <dt>8.3. <a href="actions-file.html#ACTIONS-APPLY">How Actions
- are Applied to Requests</a></dt>
-
- <dt>8.4. <a href=
- "actions-file.html#AF-PATTERNS">Patterns</a></dt>
-
- <dd>
- <dl>
- <dt>8.4.1. <a href="actions-file.html#AEN3076">The Domain
- Pattern</a></dt>
-
- <dt>8.4.2. <a href="actions-file.html#AEN3152">The Path
- Pattern</a></dt>
-
- <dt>8.4.3. <a href="actions-file.html#TAG-PATTERN">The Tag
- Pattern</a></dt>
- </dl>
- </dd>
-
- <dt>8.5. <a href="actions-file.html#ACTIONS">Actions</a></dt>
-
- <dd>
- <dl>
- <dt>8.5.1. <a href=
- "actions-file.html#ADD-HEADER">add-header</a></dt>
-
- <dt>8.5.2. <a href="actions-file.html#BLOCK">block</a></dt>
-
- <dt>8.5.3. <a href=
- "actions-file.html#CHANGE-X-FORWARDED-FOR">change-x-forwarded-for</a></dt>
-
- <dt>8.5.4. <a href=
- "actions-file.html#CLIENT-HEADER-FILTER">client-header-filter</a></dt>
-
- <dt>8.5.5. <a href=
- "actions-file.html#CLIENT-HEADER-TAGGER">client-header-tagger</a></dt>
-
- <dt>8.5.6. <a href=
- "actions-file.html#CONTENT-TYPE-OVERWRITE">content-type-overwrite</a></dt>
-
- <dt>8.5.7. <a href=
- "actions-file.html#CRUNCH-CLIENT-HEADER">crunch-client-header</a></dt>
-
- <dt>8.5.8. <a href=
- "actions-file.html#CRUNCH-IF-NONE-MATCH">crunch-if-none-match</a></dt>
-
- <dt>8.5.9. <a href=
- "actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a></dt>
-
- <dt>8.5.10. <a href=
- "actions-file.html#CRUNCH-SERVER-HEADER">crunch-server-header</a></dt>
-
- <dt>8.5.11. <a href=
- "actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a></dt>
-
- <dt>8.5.12. <a href=
- "actions-file.html#DEANIMATE-GIFS">deanimate-gifs</a></dt>
-
- <dt>8.5.13. <a href=
- "actions-file.html#DOWNGRADE-HTTP-VERSION">downgrade-http-version</a></dt>
-
- <dt>8.5.14. <a href=
- "actions-file.html#FAST-REDIRECTS">fast-redirects</a></dt>
-
- <dt>8.5.15. <a href=
- "actions-file.html#FILTER">filter</a></dt>
-
- <dt>8.5.16. <a href=
- "actions-file.html#FORCE-TEXT-MODE">force-text-mode</a></dt>
-
- <dt>8.5.17. <a href=
- "actions-file.html#FORWARD-OVERRIDE">forward-override</a></dt>
-
- <dt>8.5.18. <a href=
- "actions-file.html#HANDLE-AS-EMPTY-DOCUMENT">handle-as-empty-document</a></dt>
-
- <dt>8.5.19. <a href=
- "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></dt>
-
- <dt>8.5.20. <a href=
- "actions-file.html#HIDE-ACCEPT-LANGUAGE">hide-accept-language</a></dt>
-
- <dt>8.5.21. <a href=
- "actions-file.html#HIDE-CONTENT-DISPOSITION">hide-content-disposition</a></dt>
-
- <dt>8.5.22. <a href=
- "actions-file.html#HIDE-IF-MODIFIED-SINCE">hide-if-modified-since</a></dt>
-
- <dt>8.5.23. <a href=
- "actions-file.html#HIDE-FROM-HEADER">hide-from-header</a></dt>
-
- <dt>8.5.24. <a href=
- "actions-file.html#HIDE-REFERRER">hide-referrer</a></dt>
-
- <dt>8.5.25. <a href=
- "actions-file.html#HIDE-USER-AGENT">hide-user-agent</a></dt>
-
- <dt>8.5.26. <a href=
- "actions-file.html#LIMIT-CONNECT">limit-connect</a></dt>
-
- <dt>8.5.27. <a href=
- "actions-file.html#LIMIT-COOKIE-LIFETIME">limit-cookie-lifetime</a></dt>
-
- <dt>8.5.28. <a href=
- "actions-file.html#PREVENT-COMPRESSION">prevent-compression</a></dt>
-
- <dt>8.5.29. <a href=
- "actions-file.html#OVERWRITE-LAST-MODIFIED">overwrite-last-modified</a></dt>
-
- <dt>8.5.30. <a href=
- "actions-file.html#REDIRECT">redirect</a></dt>
-
- <dt>8.5.31. <a href=
- "actions-file.html#SERVER-HEADER-FILTER">server-header-filter</a></dt>
-
- <dt>8.5.32. <a href=
- "actions-file.html#SERVER-HEADER-TAGGER">server-header-tagger</a></dt>
-
- <dt>8.5.33. <a href=
- "actions-file.html#SESSION-COOKIES-ONLY">session-cookies-only</a></dt>
-
- <dt>8.5.34. <a href=
- "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker</a></dt>
-
- <dt>8.5.35. <a href=
- "actions-file.html#AEN4827">Summary</a></dt>
- </dl>
- </dd>
-
- <dt>8.6. <a href="actions-file.html#ALIASES">Aliases</a></dt>
-
- <dt>8.7. <a href="actions-file.html#ACT-EXAMPLES">Actions Files
- Tutorial</a></dt>
-
- <dd>
- <dl>
- <dt>8.7.1. <a href=
- "actions-file.html#AEN4891">match-all.action</a></dt>
-
- <dt>8.7.2. <a href=
- "actions-file.html#AEN4913">default.action</a></dt>
-
- <dt>8.7.3. <a href=
- "actions-file.html#AEN5026">user.action</a></dt>
- </dl>
- </dd>
- </dl>
- </dd>
-
- <dt>9. <a href="filter-file.html">Filter Files</a></dt>
-
- <dd>
- <dl>
- <dt>9.1. <a href="filter-file.html#AEN5181">Filter File
- Tutorial</a></dt>
-
- <dt>9.2. <a href="filter-file.html#PREDEFINED-FILTERS">The
- Pre-defined Filters</a></dt>
- </dl>
- </dd>
-
- <dt>10. <a href="templates.html">Privoxy's Template Files</a></dt>
-
- <dt>11. <a href="contact.html">Contacting the Developers, Bug
- Reporting and Feature Requests</a></dt>
-
- <dd>
- <dl>
- <dt>11.1. <a href="contact.html#SUFFICIENT-INFORMATION">Please
- provide sufficient information</a></dt>
-
- <dt>11.2. <a href="contact.html#CONTACT-SUPPORT">Get
- Support</a></dt>
-
- <dt>11.3. <a href="contact.html#REPORTING">Reporting
- Problems</a></dt>
-
- <dd>
- <dl>
- <dt>11.3.1. <a href="contact.html#CONTACT-ADS">Reporting Ads
- or Other Configuration Problems</a></dt>
-
- <dt>11.3.2. <a href="contact.html#CONTACT-BUGS">Reporting
- Bugs</a></dt>
- </dl>
- </dd>
-
- <dt>11.4. <a href="contact.html#CONTACT-FEATURE">Request New
- Features</a></dt>
-
- <dt>11.5. <a href="contact.html#MAILING-LISTS">Mailing
- Lists</a></dt>
- </dl>
- </dd>
-
- <dt>12. <a href="copyright.html">Privoxy Copyright, License and
- History</a></dt>
-
- <dd>
- <dl>
- <dt>12.1. <a href="copyright.html#LICENSE">License</a></dt>
-
- <dt>12.2. <a href="copyright.html#HISTORY">History</a></dt>
-
- <dt>12.3. <a href="copyright.html#AUTHORS">Authors</a></dt>
- </dl>
- </dd>
-
- <dt>13. <a href="seealso.html">See Also</a></dt>
-
- <dt>14. <a href="appendix.html">Appendix</a></dt>
-
- <dd>
- <dl>
- <dt>14.1. <a href="appendix.html#REGEX">Regular
- Expressions</a></dt>
-
- <dt>14.2. <a href="appendix.html#AEN5902">Privoxy's Internal
- Pages</a></dt>
-
- <dd>
- <dl>
- <dt>14.2.1. <a href=
- "appendix.html#BOOKMARKLETS">Bookmarklets</a></dt>
- </dl>
- </dd>
-
- <dt>14.3. <a href="appendix.html#CHAIN">Chain of Events</a></dt>
-
- <dt>14.4. <a href="appendix.html#ACTIONSANAT">Troubleshooting:
- Anatomy of an Action</a></dt>
- </dl>
- </dd>
- </dl>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"> </td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top"><a href=
- "introduction.html" accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top"> </td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">Introduction</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Installation</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy 3.0.21 User Manual" href="index.html">
- <link rel="PREVIOUS" title="Introduction" href="introduction.html">
- <link rel="NEXT" title="What's New in this Release" href="whatsnew.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
- <link rel="STYLESHEET" type="text/css" href="p_doc.css">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy 3.0.21 User Manual</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href=
- "introduction.html" accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href="whatsnew.html"
- accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="INSTALLATION" id="INSTALLATION">2.
- Installation</a></h1>
-
- <p><span class="APPLICATION">Privoxy</span> is available both in
- convenient pre-compiled packages for a wide range of operating systems,
- and as raw source code. For most users, we recommend using the packages,
- which can be downloaded from our <a href=
- "http://sourceforge.net/projects/ijbswa/" target="_top">Privoxy Project
- Page</a>.</p>
-
- <p>Note: On some platforms, the installer may remove previously installed
- versions, if found. (See below for your platform). In any case
- <span class="emphasis"><i class="EMPHASIS">be sure to backup your old
- configuration if it is valuable to you.</i></span> See the <a href=
- "whatsnew.html#UPGRADERSNOTE">note to upgraders</a> section below.</p>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="INSTALLATION-PACKAGES" id=
- "INSTALLATION-PACKAGES">2.1. Binary Packages</a></h2>
-
- <p>How to install the binary packages depends on your operating
- system:</p>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="INSTALLATION-DEB" id=
- "INSTALLATION-DEB">2.1.1. Debian and Ubuntu</a></h3>
-
- <p>DEBs can be installed with <tt class="LITERAL">apt-get install
- privoxy</tt>, and will use <tt class="FILENAME">/etc/privoxy</tt> for
- the location of configuration files.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="INSTALLATION-PACK-WIN" id=
- "INSTALLATION-PACK-WIN">2.1.2. Windows</a></h3>
-
- <p>Just double-click the installer, which will guide you through the
- installation process. You will find the configuration files in the
- same directory as you installed <span class=
- "APPLICATION">Privoxy</span> in.</p>
-
- <p>Version 3.0.5 beta introduced full <span class=
- "APPLICATION">Windows</span> service functionality. On Windows only,
- the <span class="APPLICATION">Privoxy</span> program has two new
- command line arguments to install and uninstall <span class=
- "APPLICATION">Privoxy</span> as a <span class="emphasis"><i class=
- "EMPHASIS">service</i></span>.</p>
-
- <div class="VARIABLELIST">
- <dl>
- <dt>Arguments:</dt>
-
- <dd>
- <p><tt class="REPLACEABLE"><i>--install</i></tt>[:<tt class=
- "REPLACEABLE"><i>service_name</i></tt>]</p>
-
- <p><tt class="REPLACEABLE"><i>--uninstall</i></tt>[:<tt class=
- "REPLACEABLE"><i>service_name</i></tt>]</p>
- </dd>
- </dl>
- </div>
-
- <p>After invoking <span class="APPLICATION">Privoxy</span> with
- <b class="COMMAND">--install</b>, you will need to bring up the
- <span class="APPLICATION">Windows</span> service console to assign
- the user you want <span class="APPLICATION">Privoxy</span> to run
- under, and whether or not you want it to run whenever the system
- starts. You can start the <span class="APPLICATION">Windows</span>
- services console with the following command: <b class=
- "COMMAND">services.msc</b>. If you do not take the manual step of
- modifying <span class="APPLICATION">Privoxy's</span> service
- settings, it will not start. Note too that you will need to give
- Privoxy a user account that actually exists, or it will not be
- permitted to write to its log and configuration files.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="INSTALLATION-OS2" id=
- "INSTALLATION-OS2">2.1.3. OS/2</a></h3>
-
- <p>First, make sure that no previous installations of <span class=
- "APPLICATION">Junkbuster</span> and / or <span class=
- "APPLICATION">Privoxy</span> are left on your system. Check that no
- <span class="APPLICATION">Junkbuster</span> or <span class=
- "APPLICATION">Privoxy</span> objects are in your startup folder.</p>
-
- <p>Then, just double-click the WarpIN self-installing archive, which
- will guide you through the installation process. A shadow of the
- <span class="APPLICATION">Privoxy</span> executable will be placed in
- your startup folder so it will start automatically whenever OS/2
- starts.</p>
-
- <p>The directory you choose to install <span class=
- "APPLICATION">Privoxy</span> into will contain all of the
- configuration files.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="INSTALLATION-MAC" id=
- "INSTALLATION-MAC">2.1.4. Mac OS X</a></h3>
-
- <p>Installation instructions for the OS X platform depend upon
- whether you downloaded a ready-built installation package (.pkg or
- .mpkg) or have downloaded the source code.</p>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="OS-X-INSTALL-FROM-PACKAGE" id=
- "OS-X-INSTALL-FROM-PACKAGE">2.1.5. Installation from ready-built
- package</a></h4>
-
- <p>The downloaded file will either be a .pkg (for OS X 10.5 upwards)
- or a bzipped .mpkg file (for OS X 10.4). The former can be
- double-clicked as is and the installation will start; double-clicking
- the latter will unzip the .mpkg file which can then be double-clicked
- to commence the installation.</p>
-
- <p>The privoxy service will automatically start after a successful
- installation (and thereafter every time your computer starts up)
- however you will need to configure your web browser(s) to use it. To
- do so, configure them to use a proxy for HTTP and HTTPS at the
- address 127.0.0.1:8118.</p>
-
- <p>To prevent the privoxy service from automatically starting when
- your computer starts up, remove or rename the file <tt class=
- "LITERAL">/Library/LaunchDaemons/org.ijbswa.privoxy.plist</tt> (on OS
- X 10.5 and higher) or the folder named <tt class=
- "LITERAL">/Library/StartupItems/Privoxy</tt> (on OS X 10.4
- 'Tiger').</p>
-
- <p>To manually start or stop the privoxy service, use the scripts
- startPrivoxy.sh and stopPrivoxy.sh supplied in /Applications/Privoxy.
- They must be run from an administrator account, using sudo.</p>
-
- <p>To uninstall, run /Applications/Privoxy/uninstall.command as sudo
- from an administrator account.</p>
- </div>
-
- <div class="SECT3">
- <h4 class="SECT3"><a name="OS-X-INSTALL-FROM-SOURCE" id=
- "OS-X-INSTALL-FROM-SOURCE">2.1.6. Installation from source</a></h4>
-
- <p>To build and install the Privoxy source code on OS X you will need
- to obtain the macsetup module from the Privoxy Sourceforge CVS
- repository (refer to Sourceforge help for details of how to set up a
- CVS client to have read-only access to the repository). This module
- contains scripts that leverage the usual open-source tools (available
- as part of Apple's free of charge Xcode distribution or via the usual
- open-source software package managers for OS X (MacPorts, Homebrew,
- Fink etc.) to build and then install the privoxy binary and
- associated files. The macsetup module's README file contains complete
- instructions for its use.</p>
-
- <p>The privoxy service will automatically start after a successful
- installation (and thereafter every time your computer starts up)
- however you will need to configure your web browser(s) to use it. To
- do so, configure them to use a proxy for HTTP and HTTPS at the
- address 127.0.0.1:8118.</p>
-
- <p>To prevent the privoxy service from automatically starting when
- your computer starts up, remove or rename the file <tt class=
- "LITERAL">/Library/LaunchDaemons/org.ijbswa.privoxy.plist</tt> (on OS
- X 10.5 and higher) or the folder named <tt class=
- "LITERAL">/Library/StartupItems/Privoxy</tt> (on OS X 10.4
- 'Tiger').</p>
-
- <p>To manually start or stop the privoxy service, use the Privoxy
- Utility for Mac OS X (also part of the macsetup module). This
- application can start and stop the privoxy service and display its
- log and configuration files.</p>
-
- <p>To uninstall, run the macsetup module's uninstall.sh as sudo from
- an administrator account.</p>
- </div>
-
- <div class="SECT3">
- <h3 class="SECT3"><a name="INSTALLATION-FREEBSD" id=
- "INSTALLATION-FREEBSD">2.1.7. FreeBSD</a></h3>
-
- <p>Privoxy is part of FreeBSD's Ports Collection, you can build and
- install it with <tt class="LITERAL">cd /usr/ports/www/privoxy; make
- install clean</tt>.</p>
- </div>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="INSTALLATION-SOURCE" id=
- "INSTALLATION-SOURCE">2.2. Building from Source</a></h2>
-
- <p>The most convenient way to obtain the <span class=
- "APPLICATION">Privoxy</span> sources is to download the source tarball
- from our <a href=
- "http://sourceforge.net/project/showfiles.php?group_id=11118&package_id=10571"
- target="_top">project download page</a>.</p>
-
- <p>If you like to live on the bleeding edge and are not afraid of using
- possibly unstable development versions, you can check out the
- up-to-the-minute version directly from <a href=
- "http://sourceforge.net/cvs/?group_id=11118" target="_top">the CVS
- repository</a>.</p>
-
- <p>To build <span class="APPLICATION">Privoxy</span> from source,
- <a href="http://www.gnu.org/software/autoconf/autoconf.html" target=
- "_top">autoconf</a>, <a href=
- "http://www.gnu.org/software/make/make.html" target="_top">GNU make
- (gmake)</a>, and, of course, a C compiler like <a href=
- "http://www.gnu.org/software/gcc/gcc.html" target="_top">gcc</a> are
- required.</p>
-
- <p>When building from a source tarball, first unpack the source:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- tar xzvf privoxy-3.0.21-stable-src.tar.gz
- cd privoxy-3.0.21-stable
-</pre>
- </td>
- </tr>
- </table>
-
- <p>For retrieving the current CVS sources, you'll need a CVS client
- installed. Note that sources from CVS are typically development
- quality, and may not be stable, or well tested. To download CVS source,
- check the Sourceforge documentation, which might give commands
- like:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- cvs -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa login
- cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co current
- cd current
-</pre>
- </td>
- </tr>
- </table>
-
- <p>This will create a directory named <tt class=
- "FILENAME">current/</tt>, which will contain the source tree.</p>
-
- <p>You can also check out any <span class="APPLICATION">Privoxy</span>
- <span class="QUOTE">"branch"</span>, just exchange the <span class=
- "APPLICATION">current</span> name with the wanted branch name (Example:
- v_3_0_branch for the 3.0 cvs tree).</p>
-
- <p>It is also strongly recommended to not run <span class=
- "APPLICATION">Privoxy</span> as root. You should configure/install/run
- <span class="APPLICATION">Privoxy</span> as an unprivileged user,
- preferably by creating a <span class="QUOTE">"privoxy"</span> user and
- group just for this purpose. See your local documentation for the
- correct command line to do add new users and groups (something like
- <b class="COMMAND">adduser</b>, but the command syntax may vary from
- platform to platform).</p>
-
- <p><tt class="FILENAME">/etc/passwd</tt> might then look like:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- privoxy:*:7777:7777:privoxy proxy:/no/home:/no/shell
-</pre>
- </td>
- </tr>
- </table>
-
- <p>And then <tt class="FILENAME">/etc/group</tt>, like:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- privoxy:*:7777:
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Some binary packages may do this for you.</p>
-
- <p>Then, to build from either unpacked tarball or CVS source:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- autoheader
- autoconf
- ./configure # (--help to see options)
- make # (the make from GNU, sometimes called gmake)
- su # Possibly required
- make -n install # (to see where all the files will go)
- make -s install # (to really install, -s to silence output)
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Using GNU <b class="COMMAND">make</b>, you can have the first four
- steps automatically done for you by just typing:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- make
-</pre>
- </td>
- </tr>
- </table>
-
- <p>in the freshly downloaded or unpacked source directory.</p>
-
- <p>To build an executable with security enhanced features so that users
- cannot easily bypass the proxy (e.g. <span class="QUOTE">"Go There
- Anyway"</span>), or alter their own configurations, <b class=
- "COMMAND">configure</b> like this:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- ./configure --disable-toggle --disable-editor --disable-force
-</pre>
- </td>
- </tr>
- </table>
-
- <p>Then build as above. In Privoxy 3.0.7 and later, all of these
- options can also be disabled through the configuration file.</p>
-
- <p><span class="emphasis"><i class="EMPHASIS">WARNING:</i></span> If
- installing as root, the install will fail unless a non-root user or
- group is specified, or a <tt class="LITERAL">privoxy</tt> user and
- group already exist on the system. If a non-root user is specified, and
- no group, then the installation will try to also use a group of the
- same name as <span class="QUOTE">"user"</span>. If a group is specified
- (and no user), then the support files will be installed as writable by
- that group, and owned by the user running the installation.</p>
-
- <p><b class="COMMAND">configure</b> accepts <tt class=
- "LITERAL">--with-user</tt> and <tt class="LITERAL">--with-group</tt>
- options for setting user and group ownership of the configuration files
- (which need to be writable by the daemon). The specified <span class=
- "emphasis"><i class="EMPHASIS">user must already exist</i></span>. When
- starting <span class="APPLICATION">Privoxy</span>, it must be run as
- this same user to insure write access to configuration and log
- files!</p>
-
- <p>Alternately, you can specify <tt class="LITERAL">user</tt> and
- <tt class="LITERAL">group</tt> on the <b class="COMMAND">make</b>
- command line, but be sure both already exist:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- make -s install USER=privoxy GROUP=privoxy
-</pre>
- </td>
- </tr>
- </table>
-
- <p>The default installation path for <b class="COMMAND">make
- install</b> is <tt class="FILENAME">/usr/local</tt>. This may of course
- be customized with the various <b class="COMMAND">./configure</b> path
- options. If you are doing an install to anywhere besides <tt class=
- "FILENAME">/usr/local</tt>, be sure to set the appropriate paths with
- the correct configure options (<b class="COMMAND">./configure
- --help</b>). Non-privileged users must of course have write access
- permissions to wherever the target installation is going.</p>
-
- <p>If you do install to <tt class="FILENAME">/usr/local</tt>, the
- install will use <tt class=
- "LITERAL">sysconfdir=$prefix/etc/privoxy</tt> by default. All other
- destinations, and the direct usage of <tt class=
- "LITERAL">--sysconfdir</tt> flag behave like normal, i.e. will not add
- the extra <tt class="FILENAME">privoxy</tt> directory. This is for a
- safer install, as there may already exist another program that uses a
- file with the <span class="QUOTE">"config"</span> name, and thus makes
- <tt class="FILENAME">/usr/local/etc</tt> cleaner.</p>
-
- <p>If installing to <tt class="FILENAME">/usr/local</tt>, the
- documentation will go by default to <tt class=
- "FILENAME">$prefix/share/doc</tt>. But if this directory doesn't exist,
- it will then try <tt class="FILENAME">$prefix/doc</tt> and install
- there before creating a new <tt class="FILENAME">$prefix/share/doc</tt>
- just for <span class="APPLICATION">Privoxy</span>.</p>
-
- <p>Again, if the installs goes to <tt class="FILENAME">/usr/local</tt>,
- the <tt class="LITERAL">localstatedir</tt> (ie: <tt class=
- "FILENAME">var/</tt>) will default to <tt class="FILENAME">/var</tt>
- instead of <tt class="LITERAL">$prefix/var</tt> so the logs will go to
- <tt class="FILENAME">/var/log/privoxy/</tt>, and the pid file will be
- created in <tt class="FILENAME">/var/run/privoxy.pid</tt>.</p>
-
- <p><b class="COMMAND">make install</b> will attempt to set the correct
- values in <tt class="FILENAME">config</tt> (main configuration file).
- You should check this to make sure all values are correct. If
- appropriate, an init script will be installed, but it is up to the user
- to determine how and where to start <span class=
- "APPLICATION">Privoxy</span>. The init script should be checked for
- correct paths and values, if anything other than a default install is
- done.</p>
-
- <p>If install finds previous versions of local configuration files,
- most of these will not be overwritten, and the new ones will be
- installed with a <span class="QUOTE">"new"</span> extension.
- default.action and default.filter <span class="emphasis"><i class=
- "EMPHASIS">will be overwritten</i></span>. You will then need to
- manually update the other installed configuration files as needed. The
- default template files <span class="emphasis"><i class=
- "EMPHASIS">will</i></span> be overwritten. If you have customized,
- local templates, these should be stored safely in a separate directory
- and defined in <tt class="FILENAME">config</tt> by the <span class=
- "QUOTE">"templdir"</span> directive. It is of course wise to always
- back-up any important configuration files <span class="QUOTE">"just in
- case"</span>. If a previous version of <span class=
- "APPLICATION">Privoxy</span> is already running, you will have to
- restart it manually.</p>
-
- <p>For more detailed instructions on how to build Redhat RPMs, Windows
- self-extracting installers, building on platforms with special
- requirements etc, please consult the <a href=
- "http://www.privoxy.org/developer-manual/newrelease.html" target=
- "_top">developer manual</a>.</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="INSTALLATION-KEEPUPDATED" id=
- "INSTALLATION-KEEPUPDATED">2.3. Keeping your Installation
- Up-to-Date</a></h2>
-
- <p>If you wish to receive an email notification whenever we release
- updates of <span class="APPLICATION">Privoxy</span> or the actions
- file, <a href=
- "http://lists.sourceforge.net/lists/listinfo/ijbswa-announce/" target=
- "_top">subscribe to our announce mailing list</a>,
- ijbswa-announce@lists.sourceforge.net.</p>
-
- <p>In order not to lose your personal changes and adjustments when
- updating to the latest <tt class="LITERAL">default.action</tt> file we
- <span class="emphasis"><i class="EMPHASIS">strongly
- recommend</i></span> that you use <tt class="LITERAL">user.action</tt>
- and <tt class="LITERAL">user.filter</tt> for your local customizations
- of <span class="APPLICATION">Privoxy</span>. See the <a href=
- "actions-file.html">Chapter on actions files</a> for details.</p>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="introduction.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href="whatsnew.html"
- accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">Introduction</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">What's New in this
- Release</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Introduction</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy 3.0.21 User Manual" href="index.html">
- <link rel="PREVIOUS" title="Privoxy 3.0.21 User Manual" href="index.html">
- <link rel="NEXT" title="Installation" href="installation.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
- <link rel="STYLESHEET" type="text/css" href="p_doc.css">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy 3.0.21 User Manual</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href="index.html"
- accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href=
- "installation.html" accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="INTRODUCTION" id="INTRODUCTION">1.
- Introduction</a></h1>
-
- <p>This documentation is included with the current stable version of
- <span class="APPLICATION">Privoxy</span>, 3.0.21.</p>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="FEATURES" id="FEATURES">1.1.
- Features</a></h2>
-
- <p>In addition to the core features of ad blocking and <a href=
- "http://en.wikipedia.org/wiki/Browser_cookie" target="_top">cookie</a>
- management, <span class="APPLICATION">Privoxy</span> provides many
- supplemental features, that give the end-user more control, more
- privacy and more freedom:</p>
-
- <ul>
- <li>
- <p>Supports "Connection: keep-alive". Outgoing connections can be
- kept alive independently from the client.</p>
- </li>
-
- <li>
- <p>Supports IPv6, provided the operating system does so too, and
- the configure script detects it.</p>
- </li>
-
- <li>
- <p>Supports tagging which allows to change the behaviour based on
- client and server headers.</p>
- </li>
-
- <li>
- <p>Can be run as an "intercepting" proxy, which obviates the need
- to configure browsers individually.</p>
- </li>
-
- <li>
- <p>Sophisticated actions and filters for manipulating both server
- and client headers.</p>
- </li>
-
- <li>
- <p>Can be chained with other proxies.</p>
- </li>
-
- <li>
- <p>Integrated browser-based configuration and control utility at
- <a href="http://config.privoxy.org/" target=
- "_top">http://config.privoxy.org/</a> (shortcut: <a href=
- "http://p.p/" target="_top">http://p.p/</a>). Browser-based tracing
- of rule and filter effects. Remote toggling.</p>
- </li>
-
- <li>
- <p>Web page filtering (text replacements, removes banners based on
- size, invisible <span class="QUOTE">"web-bugs"</span> and HTML
- annoyances, etc.)</p>
- </li>
-
- <li>
- <p>Modularized configuration that allows for standard settings and
- user settings to reside in separate files, so that installing
- updated actions files won't overwrite individual user settings.</p>
- </li>
-
- <li>
- <p>Support for Perl Compatible Regular Expressions in the
- configuration files, and a more sophisticated and flexible
- configuration syntax.</p>
- </li>
-
- <li>
- <p>GIF de-animation.</p>
- </li>
-
- <li>
- <p>Bypass many click-tracking scripts (avoids script
- redirection).</p>
- </li>
-
- <li>
- <p>User-customizable HTML templates for most proxy-generated pages
- (e.g. "blocked" page).</p>
- </li>
-
- <li>
- <p>Auto-detection and re-reading of config file changes.</p>
- </li>
-
- <li>
- <p>Most features are controllable on a per-site or per-location
- basis.</p>
- </li>
-
- <li>
- <p>Many smaller new features added, limitations and bugs
- removed.</p>
- </li>
- </ul>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="index.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href=
- "installation.html" accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">Privoxy 3.0.21 User
- Manual</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">Installation</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Quickstart to Using Privoxy</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy 3.0.21 User Manual" href="index.html">
- <link rel="PREVIOUS" title="What's New in this Release" href=
- "whatsnew.html">
- <link rel="NEXT" title="Starting Privoxy" href="startup.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
- <link rel="STYLESHEET" type="text/css" href="p_doc.css">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy 3.0.21 User Manual</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href="whatsnew.html"
- accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href="startup.html"
- accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="QUICKSTART" id="QUICKSTART">4. Quickstart to
- Using Privoxy</a></h1>
-
- <ul>
- <li>
- <p>Install <span class="APPLICATION">Privoxy</span>. See the <a href=
- "installation.html">Installation Section</a> below for platform
- specific information.</p>
- </li>
-
- <li>
- <p>Advanced users and those who want to offer <span class=
- "APPLICATION">Privoxy</span> service to more than just their local
- machine should check the <a href="config.html">main config file</a>,
- especially the <a href=
- "config.html#ACCESS-CONTROL">security-relevant</a> options. These are
- off by default.</p>
- </li>
-
- <li>
- <p>Start <span class="APPLICATION">Privoxy</span>, if the
- installation program has not done this already (may vary according to
- platform). See the section <a href="startup.html">Starting
- <span class="APPLICATION">Privoxy</span></a>.</p>
- </li>
-
- <li>
- <p>Set your browser to use <span class="APPLICATION">Privoxy</span>
- as HTTP and HTTPS (SSL) <a href=
- "http://en.wikipedia.org/wiki/Proxy_server" target="_top">proxy</a>
- by setting the proxy configuration for address of <tt class=
- "LITERAL">127.0.0.1</tt> and port <tt class="LITERAL">8118</tt>.
- <span class="emphasis"><i class="EMPHASIS">DO NOT</i></span> activate
- proxying for <tt class="LITERAL">FTP</tt> or any protocols besides
- HTTP and HTTPS (SSL) unless you intend to prevent your browser from
- using these protocols.</p>
- </li>
-
- <li>
- <p>Flush your browser's disk and memory caches, to remove any cached
- ad images. If using <span class="APPLICATION">Privoxy</span> to
- manage <a href="http://en.wikipedia.org/wiki/Browser_cookie" target=
- "_top">cookies</a>, you should remove any currently stored cookies
- too.</p>
- </li>
-
- <li>
- <p>A default installation should provide a reasonable starting point
- for most. There will undoubtedly be occasions where you will want to
- adjust the configuration, but that can be dealt with as the need
- arises. Little to no initial configuration is required in most cases,
- you may want to enable the <a href="config.html#ENABLE-EDIT-ACTIONS"
- target="_top">web-based action editor</a> though. Be sure to read the
- warnings first.</p>
-
- <p>See the <a href="configuration.html">Configuration section</a> for
- more configuration options, and how to customize your installation.
- You might also want to look at the <a href=
- "quickstart.html#QUICKSTART-AD-BLOCKING">next section</a> for a quick
- introduction to how <span class="APPLICATION">Privoxy</span> blocks
- ads and banners.</p>
- </li>
-
- <li>
- <p>If you experience ads that slip through, innocent images that are
- blocked, or otherwise feel the need to fine-tune <span class=
- "APPLICATION">Privoxy's</span> behavior, take a look at the <a href=
- "actions-file.html">actions files</a>. As a quick start, you might
- find the <a href="actions-file.html#ACT-EXAMPLES">richly commented
- examples</a> helpful. You can also view and edit the actions files
- through the <a href="http://config.privoxy.org" target=
- "_top">web-based user interface</a>. The Appendix <span class=
- "QUOTE">"<a href="appendix.html#ACTIONSANAT">Troubleshooting: Anatomy
- of an Action</a>"</span> has hints on how to understand and debug
- actions that <span class="QUOTE">"misbehave"</span>.</p>
- </li>
-
- <li>
- <p>Please see the section <a href="contact.html">Contacting the
- Developers</a> on how to report bugs, problems with websites or to
- get help.</p>
- </li>
-
- <li>
- <p>Now enjoy surfing with enhanced control, comfort and privacy!</p>
- </li>
- </ul>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="QUICKSTART-AD-BLOCKING" id=
- "QUICKSTART-AD-BLOCKING">4.1. Quickstart to Ad Blocking</a></h2>
-
- <p>Ad blocking is but one of <span class="APPLICATION">Privoxy's</span>
- array of features. Many of these features are for the technically
- minded advanced user. But, ad and banner blocking is surely common
- ground for everybody.</p>
-
- <p>This section will provide a quick summary of ad blocking so you can
- get up to speed quickly without having to read the more extensive
- information provided below, though this is highly recommended.</p>
-
- <p>First a bit of a warning ... blocking ads is much like blocking
- SPAM: the more aggressive you are about it, the more likely you are to
- block things that were not intended. And the more likely that some
- things may not work as intended. So there is a trade off here. If you
- want extreme ad free browsing, be prepared to deal with more
- <span class="QUOTE">"problem"</span> sites, and to spend more time
- adjusting the configuration to solve these unintended consequences. In
- short, there is not an easy way to eliminate <span class=
- "emphasis"><i class="EMPHASIS">all</i></span> ads. Either take the easy
- way and settle for <span class="emphasis"><i class=
- "EMPHASIS">most</i></span> ads blocked with the default configuration,
- or jump in and tweak it for your personal surfing habits and
- preferences.</p>
-
- <p>Secondly, a brief explanation of <span class=
- "APPLICATION">Privoxy's</span> <span class="QUOTE">"actions"</span>.
- <span class="QUOTE">"Actions"</span> in this context, are the
- directives we use to tell <span class="APPLICATION">Privoxy</span> to
- perform some task relating to HTTP transactions (i.e. web browsing). We
- tell <span class="APPLICATION">Privoxy</span> to take some <span class=
- "QUOTE">"action"</span>. Each action has a unique name and function.
- While there are many potential <span class="APPLICATION">actions</span>
- in <span class="APPLICATION">Privoxy's</span> arsenal, only a few are
- used for ad blocking. <a href="actions-file.html#ACTIONS">Actions</a>,
- and <a href="actions-file.html">action configuration files</a>, are
- explained in depth below.</p>
-
- <p>Actions are specified in <span class="APPLICATION">Privoxy's</span>
- configuration, followed by one or more URLs to which the action should
- apply. URLs can actually be URL type <a href=
- "actions-file.html#AF-PATTERNS">patterns</a> that use wildcards so they
- can apply potentially to a range of similar URLs. The actions, together
- with the URL patterns are called a section.</p>
-
- <p>When you connect to a website, the full URL will either match one or
- more of the sections as defined in <span class=
- "APPLICATION">Privoxy's</span> configuration, or not. If so, then
- <span class="APPLICATION">Privoxy</span> will perform the respective
- actions. If not, then nothing special happens. Furthermore, web pages
- may contain embedded, secondary URLs that your web browser will use to
- load additional components of the page, as it parses the original
- page's HTML content. An ad image for instance, is just an URL embedded
- in the page somewhere. The image itself may be on the same server, or a
- server somewhere else on the Internet. Complex web pages will have many
- such embedded URLs. <span class="APPLICATION">Privoxy</span> can deal
- with each URL individually, so, for instance, the main page text is not
- touched, but images from such-and-such server are blocked.</p>
-
- <p>The most important actions for basic ad blocking are: <tt class=
- "LITERAL"><a href="actions-file.html#BLOCK">block</a></tt>, <tt class=
- "LITERAL"><a href=
- "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></tt>,
- <tt class="LITERAL"><a href=
- "actions-file.html#HANDLE-AS-EMPTY-DOCUMENT">handle-as-empty-document</a></tt>,and
- <tt class="LITERAL"><a href=
- "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker</a></tt>:</p>
-
- <ul>
- <li>
- <p><tt class="LITERAL"><a href=
- "actions-file.html#BLOCK">block</a></tt> - this is perhaps the
- single most used action, and is particularly important for ad
- blocking. This action stops any contact between your browser and
- any URL patterns that match this action's configuration. It can be
- used for blocking ads, but also anything that is determined to be
- unwanted. By itself, it simply stops any communication with the
- remote server and sends <span class="APPLICATION">Privoxy</span>'s
- own built-in BLOCKED page instead to let you now what has happened
- (with some exceptions, see below).</p>
- </li>
-
- <li>
- <p><tt class="LITERAL"><a href=
- "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></tt> -
- tells <span class="APPLICATION">Privoxy</span> to treat this URL as
- an image. <span class="APPLICATION">Privoxy</span>'s default
- configuration already does this for all common image types (e.g.
- GIF), but there are many situations where this is not so easy to
- determine. So we'll force it in these cases. This is particularly
- important for ad blocking, since only if we know that it's an image
- of some kind, can we replace it with an image of our choosing,
- instead of the <span class="APPLICATION">Privoxy</span> BLOCKED
- page (which would only result in a <span class="QUOTE">"broken
- image"</span> icon). There are some limitations to this though. For
- instance, you can't just brute-force an image substitution for an
- entire HTML page in most situations.</p>
- </li>
-
- <li>
- <p><tt class="LITERAL"><a href=
- "actions-file.html#HANDLE-AS-EMPTY-DOCUMENT">handle-as-empty-document</a></tt>
- - sends an empty document instead of <span class=
- "APPLICATION">Privoxy's</span> normal BLOCKED HTML page. This is
- useful for file types that are neither HTML nor images, such as
- blocking JavaScript files.</p>
- </li>
-
- <li>
- <p><tt class="LITERAL"><a href=
- "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker</a></tt> -
- tells <span class="APPLICATION">Privoxy</span> what to display in
- place of an ad image that has hit a block rule. For this to come
- into play, the URL must match a <tt class="LITERAL"><a href=
- "actions-file.html#BLOCK">block</a></tt> action somewhere in the
- configuration, <span class="emphasis"><i class=
- "EMPHASIS">and</i></span>, it must also match an <tt class=
- "LITERAL"><a href=
- "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></tt>
- action.</p>
-
- <p>The configuration options on what to display instead of the ad
- are:</p>
-
- <table border="0">
- <tbody>
- <tr>
- <td> <span class="emphasis"><i class=
- "EMPHASIS">pattern</i></span> - a checkerboard pattern, so
- that an ad replacement is obvious. This is the default.</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td> <span class="emphasis"><i class=
- "EMPHASIS">blank</i></span> - A very small empty GIF image is
- displayed. This is the so-called <span class=
- "QUOTE">"invisible"</span> configuration option.</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td> <span class="emphasis"><i class=
- "EMPHASIS">http://<URL></i></span> - A redirect to any
- image anywhere of the user's choosing (advanced usage).</td>
- </tr>
- </tbody>
- </table>
- </li>
- </ul>
-
- <p>Advanced users will eventually want to explore <span class=
- "APPLICATION">Privoxy</span> <tt class="LITERAL"><a href=
- "actions-file.html#FILTER">filters</a></tt> as well. Filters are very
- different from <tt class="LITERAL"><a href=
- "actions-file.html#BLOCK">blocks</a></tt>. A <span class=
- "QUOTE">"block"</span> blocks a site, page, or unwanted contented.
- Filters are a way of filtering or modifying what is actually on the
- page. An example filter usage: a text replacement of <span class=
- "QUOTE">"no-no"</span> for <span class="QUOTE">"nasty-word"</span>.
- That is a very simple example. This process can be used for ad
- blocking, but it is more in the realm of advanced usage and has some
- pitfalls to be wary off.</p>
-
- <p>The quickest way to adjust any of these settings is with your
- browser through the special <span class="APPLICATION">Privoxy</span>
- editor at <a href="http://config.privoxy.org/show-status" target=
- "_top">http://config.privoxy.org/show-status</a> (shortcut: <a href=
- "http://p.p/" target="_top">http://p.p/show-status</a>). This is an
- internal page, and does not require Internet access.</p>
-
- <p>Note that as of <span class="APPLICATION">Privoxy</span> 3.0.7 beta
- the action editor is disabled by default. Check the <a href=
- "config.html#ENABLE-EDIT-ACTIONS" target="_top">enable-edit-actions
- section in the configuration file</a> to learn why and in which cases
- it's safe to enable again.</p>
-
- <p>If you decided to enable the action editor, select the appropriate
- <span class="QUOTE">"actions"</span> file, and click <span class=
- "QUOTE">"<span class="GUIBUTTON">Edit</span>"</span>. It is best to put
- personal or local preferences in <tt class="FILENAME">user.action</tt>
- since this is not meant to be overwritten during upgrades, and will
- over-ride the settings in other files. Here you can insert new
- <span class="QUOTE">"actions"</span>, and URLs for ad blocking or other
- purposes, and make other adjustments to the configuration. <span class=
- "APPLICATION">Privoxy</span> will detect these changes
- automatically.</p>
-
- <p>A quick and simple step by step example:</p>
-
- <ul>
- <li>
- <p>Right click on the ad image to be blocked, then select
- <span class="QUOTE">"<span class="GUIMENUITEM">Copy Link
- Location</span>"</span> from the pop-up menu.</p>
- </li>
-
- <li>
- <p>Set your browser to <a href=
- "http://config.privoxy.org/show-status" target=
- "_top">http://config.privoxy.org/show-status</a></p>
- </li>
-
- <li>
- <p>Find <tt class="FILENAME">user.action</tt> in the top section,
- and click on <span class="QUOTE">"<span class=
- "GUIBUTTON">Edit</span>"</span>:</p>
-
- <div class="FIGURE">
- <a name="AEN854" id="AEN854"></a>
-
- <p><b>Figure 1. Actions Files in Use</b></p>
-
- <div class="MEDIAOBJECT">
- <p><img src="files-in-use.jpg"></p>
- </div>
- </div>
- </li>
-
- <li>
- <p>You should have a section with only <tt class="LITERAL"><a href=
- "actions-file.html#BLOCK">block</a></tt> listed under <span class=
- "QUOTE">"Actions:"</span>. If not, click a <span class=
- "QUOTE">"<span class="GUIBUTTON">Insert new section
- below</span>"</span> button, and in the new section that just
- appeared, click the <span class="GUIBUTTON">Edit</span> button
- right under the word <span class="QUOTE">"Actions:"</span>. This
- will bring up a list of all actions. Find <tt class=
- "LITERAL"><a href="actions-file.html#BLOCK">block</a></tt> near the
- top, and click in the <span class="QUOTE">"Enabled"</span> column,
- then <span class="QUOTE">"<span class=
- "GUIBUTTON">Submit</span>"</span> just below the list.</p>
- </li>
-
- <li>
- <p>Now, in the <tt class="LITERAL"><a href=
- "actions-file.html#BLOCK">block</a></tt> actions section, click the
- <span class="QUOTE">"<span class="GUIBUTTON">Add</span>"</span>
- button, and paste the URL the browser got from <span class=
- "QUOTE">"<span class="GUIMENUITEM">Copy Link
- Location</span>"</span>. Remove the <tt class=
- "LITERAL">http://</tt> at the beginning of the URL. Then, click
- <span class="QUOTE">"<span class="GUIBUTTON">Submit</span>"</span>
- (or <span class="QUOTE">"<span class="GUIBUTTON">OK</span>"</span>
- if in a pop-up window).</p>
- </li>
-
- <li>
- <p>Now go back to the original page, and press <b class=
- "KEYCAP">SHIFT-Reload</b> (or flush all browser caches). The image
- should be gone now.</p>
- </li>
- </ul>
-
- <p>This is a very crude and simple example. There might be good reasons
- to use a wildcard pattern match to include potentially similar images
- from the same site. For a more extensive explanation of <span class=
- "QUOTE">"patterns"</span>, and the entire actions concept, see <a href=
- "actions-file.html">the Actions section</a>.</p>
-
- <p>For advanced users who want to hand edit their config files, you
- might want to now go to the <a href=
- "actions-file.html#ACT-EXAMPLES">Actions Files Tutorial</a>. The ideas
- explained therein also apply to the web-based editor.</p>
-
- <p>There are also various <a href=
- "actions-file.html#FILTER">filters</a> that can be used for ad blocking
- (filters are a special subset of actions). These fall into the
- <span class="QUOTE">"advanced"</span> usage category, and are explained
- in depth in later sections.</p>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="whatsnew.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href="startup.html"
- accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">What's New in this
- Release</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">Starting Privoxy</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>See Also</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy 3.0.21 User Manual" href="index.html">
- <link rel="PREVIOUS" title="Privoxy Copyright, License and History" href=
- "copyright.html">
- <link rel="NEXT" title="Appendix" href="appendix.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
- <link rel="STYLESHEET" type="text/css" href="p_doc.css">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy 3.0.21 User Manual</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href="copyright.html"
- accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href="appendix.html"
- accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="SEEALSO" id="SEEALSO">13. See Also</a></h1>
-
- <p>Other references and sites of interest to <span class=
- "APPLICATION">Privoxy</span> users:</p>
-
- <table border="0">
- <tbody>
- <tr>
- <td><a href="http://www.privoxy.org/" target=
- "_top">http://www.privoxy.org/</a>, the <span class=
- "APPLICATION">Privoxy</span> Home page.</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><a href="http://www.privoxy.org/faq/" target=
- "_top">http://www.privoxy.org/faq/</a>, the <span class=
- "APPLICATION">Privoxy</span> FAQ.</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><a href="http://www.privoxy.org/developer-manual/" target=
- "_top">http://www.privoxy.org/developer-manual/</a>, the
- <span class="APPLICATION">Privoxy</span> developer manual.</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><a href="https://sourceforge.net/projects/ijbswa/" target=
- "_top">https://sourceforge.net/projects/ijbswa/</a>, the Project
- Page for <span class="APPLICATION">Privoxy</span> on <a href=
- "http://sourceforge.net" target="_top">SourceForge</a>.</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><a href="http://config.privoxy.org/" target=
- "_top">http://config.privoxy.org/</a>, the web-based user
- interface. <span class="APPLICATION">Privoxy</span> must be running
- for this to work. Shortcut: <a href="http://p.p/" target=
- "_top">http://p.p/</a></td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><a href=
- "https://sourceforge.net/tracker/?group_id=11118&atid=460288"
- target=
- "_top">https://sourceforge.net/tracker/?group_id=11118&atid=460288</a>,
- to submit <span class="QUOTE">"misses"</span> and other
- configuration related suggestions to the developers.</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><a href="http://www.squid-cache.org/" target=
- "_top">http://www.squid-cache.org/</a>, a popular caching proxy,
- which is often used together with <span class=
- "APPLICATION">Privoxy</span>.</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><a href="http://www.pps.jussieu.fr/~jch/software/polipo/"
- target="_top">http://www.pps.jussieu.fr/~jch/software/polipo/</a>,
- <span class="APPLICATION">Polipo</span> is a caching proxy with
- advanced features like pipelining, multiplexing and caching of
- partial instances. In many setups it can be used as <span class=
- "APPLICATION">Squid</span> replacement.</td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td><a href="https://www.torproject.org/" target=
- "_top">https://www.torproject.org/</a>, <span class=
- "APPLICATION">Tor</span> can help anonymize web browsing, web
- publishing, instant messaging, IRC, SSH, and other
- applications.</td>
- </tr>
- </tbody>
- </table>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="copyright.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href="appendix.html"
- accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">Privoxy Copyright, License
- and History</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">Appendix</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Starting Privoxy</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy 3.0.21 User Manual" href="index.html">
- <link rel="PREVIOUS" title="Quickstart to Using Privoxy" href=
- "quickstart.html">
- <link rel="NEXT" title="Privoxy Configuration" href="configuration.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
- <link rel="STYLESHEET" type="text/css" href="p_doc.css">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy 3.0.21 User Manual</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href=
- "quickstart.html" accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href=
- "configuration.html" accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="STARTUP" id="STARTUP">5. Starting
- Privoxy</a></h1>
-
- <p>Before launching <span class="APPLICATION">Privoxy</span> for the
- first time, you will want to configure your browser(s) to use
- <span class="APPLICATION">Privoxy</span> as a HTTP and HTTPS (SSL)
- <a href="http://en.wikipedia.org/wiki/Proxy_server" target=
- "_top">proxy</a>. The default is 127.0.0.1 (or localhost) for the proxy
- address, and port 8118 (earlier versions used port 8000). This is the one
- configuration step <span class="emphasis"><i class="EMPHASIS">that must
- be done</i></span>!</p>
-
- <p>Please note that <span class="APPLICATION">Privoxy</span> can only
- proxy HTTP and HTTPS traffic. It will not work with FTP or other
- protocols.</p>
-
- <div class="FIGURE">
- <a name="AEN909" id="AEN909"></a>
-
- <p><b>Figure 2. Proxy Configuration Showing Mozilla/Netscape HTTP and
- HTTPS (SSL) Settings</b></p>
-
- <div class="MEDIAOBJECT">
- <p><img src="proxy_setup.jpg"></p>
- </div>
- </div>
-
- <p>With <span class="APPLICATION">Firefox</span>, this is typically set
- under:</p>
-
- <p class="LITERALLAYOUT"> <span class=
- "GUIBUTTON">Tools</span> -> <span class=
- "GUIBUTTON">Options</span> -> <span class=
- "GUIBUTTON">Advanced</span> -> <span class=
- "GUIBUTTON">Network</span> -><span class=
- "GUIBUTTON">Connection</span> -> <span class=
- "GUIBUTTON">Settings</span><br></p>
-
- <p>Or optionally on some platforms:</p>
-
- <p class="LITERALLAYOUT"> <span class=
- "GUIBUTTON">Edit</span> -> <span class=
- "GUIBUTTON">Preferences</span> -> <span class=
- "GUIBUTTON">General</span> -> <span class=
- "GUIBUTTON">Connection Settings</span> -> <span class=
- "GUIBUTTON">Manual Proxy Configuration</span><br></p>
-
- <p>With <span class="APPLICATION">Netscape</span> (and <span class=
- "APPLICATION">Mozilla</span>), this can be set under:</p>
-
- <p class="LITERALLAYOUT"> <span class=
- "GUIBUTTON">Edit</span> -> <span class=
- "GUIBUTTON">Preferences</span> -> <span class=
- "GUIBUTTON">Advanced</span> -> <span class=
- "GUIBUTTON">Proxies</span> -> <span class="GUIBUTTON">HTTP
- Proxy</span><br></p>
-
- <p>For <span class="APPLICATION">Internet Explorer v.5-7</span>:</p>
-
- <p class="LITERALLAYOUT"> <span class=
- "GUIBUTTON">Tools</span> -> <span class="GUIBUTTON">Internet
- Options</span> -> <span class=
- "GUIBUTTON">Connections</span> -> <span class=
- "GUIBUTTON">LAN Settings</span></p>
-
- <p>Then, check <span class="QUOTE">"Use Proxy"</span> and fill in the
- appropriate info (Address: 127.0.0.1, Port: 8118). Include HTTPS (SSL),
- if you want HTTPS proxy support too (sometimes labeled <span class=
- "QUOTE">"Secure"</span>). Make sure any checkboxes like <span class=
- "QUOTE">"Use the same proxy server for all protocols"</span> is
- <span class="emphasis"><i class="EMPHASIS">UNCHECKED</i></span>. You want
- only HTTP and HTTPS (SSL)!</p>
-
- <div class="FIGURE">
- <a name="AEN954" id="AEN954"></a>
-
- <p><b>Figure 3. Proxy Configuration Showing Internet Explorer HTTP and
- HTTPS (Secure) Settings</b></p>
-
- <div class="MEDIAOBJECT">
- <p><img src="proxy2.jpg"></p>
- </div>
- </div>
-
- <p>After doing this, flush your browser's disk and memory caches to force
- a re-reading of all pages and to get rid of any ads that may be cached.
- Remove any <a href="http://en.wikipedia.org/wiki/Browser_cookie" target=
- "_top">cookies</a>, if you want <span class="APPLICATION">Privoxy</span>
- to manage that. You are now ready to start enjoying the benefits of using
- <span class="APPLICATION">Privoxy</span>!</p>
-
- <p><span class="APPLICATION">Privoxy</span> itself is typically started
- by specifying the main configuration file to be used on the command line.
- If no configuration file is specified on the command line, <span class=
- "APPLICATION">Privoxy</span> will look for a file named <tt class=
- "FILENAME">config</tt> in the current directory. Except on Win32 where it
- will try <tt class="FILENAME">config.txt</tt>.</p>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="START-DEBIAN" id="START-DEBIAN">5.1.
- Debian</a></h2>
-
- <p>We use a script. Note that Debian typically starts <span class=
- "APPLICATION">Privoxy</span> upon booting per default. It will use the
- file <tt class="FILENAME">/etc/privoxy/config</tt> as its main
- configuration file.</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- # /etc/init.d/privoxy start
-</pre>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="START-WINDOWS" id="START-WINDOWS">5.2.
- Windows</a></h2>
-
- <p>Click on the <span class="APPLICATION">Privoxy</span> Icon to start
- <span class="APPLICATION">Privoxy</span>. If no configuration file is
- specified on the command line, <span class="APPLICATION">Privoxy</span>
- will look for a file named <tt class="FILENAME">config.txt</tt>. Note
- that Windows will automatically start <span class=
- "APPLICATION">Privoxy</span> when the system starts if you chose that
- option when installing.</p>
-
- <p><span class="APPLICATION">Privoxy</span> can run with full Windows
- service functionality. On Windows only, the <span class=
- "APPLICATION">Privoxy</span> program has two new command line arguments
- to install and uninstall <span class="APPLICATION">Privoxy</span> as a
- service. See the <a href=
- "installation.html#INSTALLATION-PACK-WIN">Windows Installation
- instructions</a> for details.</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="START-UNICES" id="START-UNICES">5.3.
- Solaris, NetBSD, FreeBSD, HP-UX and others</a></h2>
-
- <p>Example Unix startup command:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
- # /usr/sbin/privoxy /etc/privoxy/config
-</pre>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="START-OS2" id="START-OS2">5.4. OS/2</a></h2>
-
- <p>During installation, <span class="APPLICATION">Privoxy</span> is
- configured to start automatically when the system restarts. You can
- start it manually by double-clicking on the <span class=
- "APPLICATION">Privoxy</span> icon in the <span class=
- "APPLICATION">Privoxy</span> folder.</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="START-MACOSX" id="START-MACOSX">5.5. Mac OS
- X</a></h2>
-
- <p>After downloading the privoxy software, unzip the downloaded file by
- double-clicking on the zip file icon. Then, double-click on the
- installer package icon and follow the installation process.</p>
-
- <p>The privoxy service will automatically start after a successful
- installation. In addition, the privoxy service will automatically start
- every time your computer starts up.</p>
-
- <p>To prevent the privoxy service from automatically starting when your
- computer starts up, remove or rename the folder named
- /Library/StartupItems/Privoxy.</p>
-
- <p>A simple application named Privoxy Utility has been created which
- enables administrators to easily start and stop the privoxy
- service.</p>
-
- <p>In addition, the Privoxy Utility presents a simple way for
- administrators to edit the various privoxy config files. A method to
- uninstall the software is also available.</p>
-
- <p>An administrator username and password must be supplied in order for
- the Privoxy Utility to perform any of the tasks.</p>
- </div>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="CMDOPTIONS" id="CMDOPTIONS">5.6. Command
- Line Options</a></h2>
-
- <p><span class="APPLICATION">Privoxy</span> may be invoked with the
- following command-line options:</p>
-
- <ul>
- <li>
- <p><span class="emphasis"><i class=
- "EMPHASIS">--config-test</i></span></p>
-
- <p>Exit after loading the configuration files before binding to the
- listen address. The exit code signals whether or not the
- configuration files have been successfully loaded.</p>
-
- <p>If the exit code is 1, at least one of the configuration files
- is invalid, if it is 0, all the configuration files have been
- successfully loaded (but may still contain errors that can
- currently only be detected at run time).</p>
-
- <p>This option doesn't affect the log setting, combination with
- <span class="emphasis"><i class="EMPHASIS">--no-daemon</i></span>
- is recommended if a configured log file shouldn't be used.</p>
- </li>
-
- <li>
- <p><span class="emphasis"><i class=
- "EMPHASIS">--version</i></span></p>
-
- <p>Print version info and exit. Unix only.</p>
- </li>
-
- <li>
- <p><span class="emphasis"><i class="EMPHASIS">--help</i></span></p>
-
- <p>Print short usage info and exit. Unix only.</p>
- </li>
-
- <li>
- <p><span class="emphasis"><i class=
- "EMPHASIS">--no-daemon</i></span></p>
-
- <p>Don't become a daemon, i.e. don't fork and become process group
- leader, and don't detach from controlling tty. Unix only.</p>
- </li>
-
- <li>
- <p><span class="emphasis"><i class="EMPHASIS">--pidfile
- FILE</i></span></p>
-
- <p>On startup, write the process ID to <span class=
- "emphasis"><i class="EMPHASIS">FILE</i></span>. Delete the
- <span class="emphasis"><i class="EMPHASIS">FILE</i></span> on exit.
- Failure to create or delete the <span class="emphasis"><i class=
- "EMPHASIS">FILE</i></span> is non-fatal. If no <span class=
- "emphasis"><i class="EMPHASIS">FILE</i></span> option is given, no
- PID file will be used. Unix only.</p>
- </li>
-
- <li>
- <p><span class="emphasis"><i class="EMPHASIS">--user
- USER[.GROUP]</i></span></p>
-
- <p>After (optionally) writing the PID file, assume the user ID of
- <span class="emphasis"><i class="EMPHASIS">USER</i></span>, and if
- included the GID of GROUP. Exit if the privileges are not
- sufficient to do so. Unix only.</p>
- </li>
-
- <li>
- <p><span class="emphasis"><i class=
- "EMPHASIS">--chroot</i></span></p>
-
- <p>Before changing to the user ID given in the <span class=
- "emphasis"><i class="EMPHASIS">--user</i></span> option, chroot to
- that user's home directory, i.e. make the kernel pretend to the
- <span class="APPLICATION">Privoxy</span> process that the directory
- tree starts there. If set up carefully, this can limit the impact
- of possible vulnerabilities in <span class=
- "APPLICATION">Privoxy</span> to the files contained in that
- hierarchy. Unix only.</p>
- </li>
-
- <li>
- <p><span class="emphasis"><i class="EMPHASIS">--pre-chroot-nslookup
- hostname</i></span></p>
-
- <p>Specifies a hostname to look up before doing a chroot. On some
- systems, initializing the resolver library involves reading config
- files from /etc and/or loading additional shared libraries from
- /lib. On these systems, doing a hostname lookup before the chroot
- reduces the number of files that must be copied into the chroot
- tree.</p>
-
- <p>For fastest startup speed, a good value is a hostname that is
- not in /etc/hosts but that your local name server (listed in
- /etc/resolv.conf) can resolve without recursion (that is, without
- having to ask any other name servers). The hostname need not exist,
- but if it doesn't, an error message (which can be ignored) will be
- output.</p>
- </li>
-
- <li>
- <p><span class="emphasis"><i class=
- "EMPHASIS">configfile</i></span></p>
-
- <p>If no <span class="emphasis"><i class=
- "EMPHASIS">configfile</i></span> is included on the command line,
- <span class="APPLICATION">Privoxy</span> will look for a file named
- <span class="QUOTE">"config"</span> in the current directory
- (except on Win32 where it will look for <span class=
- "QUOTE">"config.txt"</span> instead). Specify full path to avoid
- confusion. If no config file is found, <span class=
- "APPLICATION">Privoxy</span> will fail to start.</p>
- </li>
- </ul>
-
- <p>On <span class="APPLICATION">MS Windows</span> only there are two
- additional command-line options to allow <span class=
- "APPLICATION">Privoxy</span> to install and run as a <span class=
- "emphasis"><i class="EMPHASIS">service</i></span>. See the <a href=
- "installation.html#INSTALLATION-PACK-WIN">Window Installation
- section</a> for details.</p>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="quickstart.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href=
- "configuration.html" accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">Quickstart to Using
- Privoxy</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">Privoxy Configuration</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Privoxy's Template Files</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy 3.0.21 User Manual" href="index.html">
- <link rel="PREVIOUS" title="Filter Files" href="filter-file.html">
- <link rel="NEXT" title=
- "Contacting the Developers, Bug Reporting and Feature Requests" href=
- "contact.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
- <link rel="STYLESHEET" type="text/css" href="p_doc.css">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy 3.0.21 User Manual</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href=
- "filter-file.html" accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href="contact.html"
- accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="TEMPLATES" id="TEMPLATES">10. Privoxy's
- Template Files</a></h1>
-
- <p>All <span class="APPLICATION">Privoxy</span> built-in pages, i.e.
- error pages such as the <a href="http://show-the-404-error.page" target=
- "_top"><span class="QUOTE">"404 - No Such Domain"</span> error page</a>,
- the <a href="http://ads.bannerserver.example.com/nasty-ads/sponsor.html"
- target="_top"><span class="QUOTE">"BLOCKED"</span> page</a> and all pages
- of its <a href="http://config.privoxy.org/" target="_top">web-based user
- interface</a>, are generated from <span class="emphasis"><i class=
- "EMPHASIS">templates</i></span>. (<span class=
- "APPLICATION">Privoxy</span> must be running for the above links to work
- as intended.)</p>
-
- <p>These templates are stored in a subdirectory of the <a href=
- "config.html#CONFDIR">configuration directory</a> called <tt class=
- "FILENAME">templates</tt>. On Unixish platforms, this is typically
- <a href="file:///etc/privoxy/templates/" target="_top"><tt class=
- "FILENAME">/etc/privoxy/templates/</tt></a>.</p>
-
- <p>The templates are basically normal HTML files, but with place-holders
- (called symbols or exports), which <span class=
- "APPLICATION">Privoxy</span> fills at run time. It is possible to edit
- the templates with a normal text editor, should you want to customize
- them. (<span class="emphasis"><i class="EMPHASIS">Not recommended for the
- casual user</i></span>). Should you create your own custom templates, you
- should use the <tt class="FILENAME">config</tt> setting <a href=
- "config.html#TEMPLDIR">templdir</a> to specify an alternate location, so
- your templates do not get overwritten during upgrades.</p>
-
- <p>Note that just like in configuration files, lines starting with
- <tt class="LITERAL">#</tt> are ignored when the templates are filled
- in.</p>
-
- <p>The place-holders are of the form <tt class="LITERAL">@name@</tt>, and
- you will find a list of available symbols, which vary from template to
- template, in the comments at the start of each file. Note that these
- comments are not always accurate, and that it's probably best to look at
- the existing HTML code to find out which symbols are supported and what
- they are filled in with.</p>
-
- <p>A special application of this substitution mechanism is to make whole
- blocks of HTML code disappear when a specific symbol is set. We use this
- for many purposes, one of them being to include the beta warning in all
- our user interface (CGI) pages when <span class=
- "APPLICATION">Privoxy</span> is in an alpha or beta development
- stage:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-<!-- @if-unstable-start -->
-
- ... beta warning HTML code goes here ...
-
-<!-- if-unstable-end@ -->
-</pre>
- </td>
- </tr>
- </table>
-
- <p>If the "unstable" symbol is set, everything in between and including
- <tt class="LITERAL">@if-unstable-start</tt> and <tt class=
- "LITERAL">if-unstable-end@</tt> will disappear, leaving nothing but an
- empty comment:</p>
-
- <table border="0" bgcolor="#E0E0E0" width="100%">
- <tr>
- <td>
- <pre class="SCREEN">
-<!-- -->
-</pre>
- </td>
- </tr>
- </table>
-
- <p>There's also an if-then-else construct and an <tt class=
- "LITERAL">#include</tt> mechanism, but you'll sure find out if you are
- inclined to edit the templates ;-)</p>
-
- <p>All templates refer to a style located at <a href=
- "http://config.privoxy.org/send-stylesheet" target="_top"><tt class=
- "LITERAL">http://config.privoxy.org/send-stylesheet</tt></a>. This is, of
- course, locally served by <span class="APPLICATION">Privoxy</span> and
- the source for it can be found and edited in the <tt class=
- "FILENAME">cgi-style.css</tt> template.</p>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="filter-file.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href="contact.html"
- accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">Filter Files</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">Contacting the Developers,
- Bug Reporting and Feature Requests</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>What's New in this Release</title>
- <meta name="GENERATOR" content=
- "Modular DocBook HTML Stylesheet Version 1.79">
- <link rel="HOME" title="Privoxy 3.0.21 User Manual" href="index.html">
- <link rel="PREVIOUS" title="Installation" href="installation.html">
- <link rel="NEXT" title="Quickstart to Using Privoxy" href=
- "quickstart.html">
- <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
- <link rel="STYLESHEET" type="text/css" href="p_doc.css">
-</head>
-
-<body class="SECT1" bgcolor="#EEEEEE" text="#000000" link="#0000FF" vlink=
-"#840084" alink="#0000FF">
- <div class="NAVHEADER">
- <table summary="Header navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <th colspan="3" align="center">Privoxy 3.0.21 User Manual</th>
- </tr>
-
- <tr>
- <td width="10%" align="left" valign="bottom"><a href=
- "installation.html" accesskey="P">Prev</a></td>
-
- <td width="80%" align="center" valign="bottom"></td>
-
- <td width="10%" align="right" valign="bottom"><a href=
- "quickstart.html" accesskey="N">Next</a></td>
- </tr>
- </table>
- <hr align="left" width="100%">
- </div>
-
- <div class="SECT1">
- <h1 class="SECT1"><a name="WHATSNEW" id="WHATSNEW">3. What's New in this
- Release</a></h1>
-
- <p><span class="APPLICATION">Privoxy 3.0.21</span> stable is a bug-fix
- release for Privoxy 3.0.20 beta. It also addresses two security issues
- that affect all previous Privoxy versions. The changes since 3.0.20 beta
- are:</p>
-
- <ul>
- <li>
- <p>Bug fixes:</p>
-
- <ul>
- <li>
- <p>On POSIX-like platforms, network sockets with file descriptor
- values above FD_SETSIZE are properly rejected. Previously they
- could cause memory corruption in configurations that allowed the
- limit to be reached.</p>
- </li>
-
- <li>
- <p>Proxy authentication headers are removed unless the new
- directive enable-proxy-authentication-forwarding is used.
- Forwarding the headers potentionally allows malicious sites to
- trick the user into providing them with login information. Reported
- by Chris John Riley.</p>
- </li>
-
- <li>
- <p>Compiles on OS/2 again now that unistd.h is only included on
- platforms that have it.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>General improvements:</p>
-
- <ul>
- <li>
- <p>The show-status page shows the FEATURE_STRPTIME_SANITY_CHECKS
- status.</p>
- </li>
-
- <li>
- <p>A couple of assert()s that could theoretically dereference
- NULL pointers in debug builds have been relocated.</p>
- </li>
-
- <li>
- <p>Added an LSB info block to the generic start script. Based on
- a patch from Natxo Asenjo.</p>
- </li>
-
- <li>
- <p>The max-client-connections default has been changed to 128
- which should be more than enough for most setups.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Action file improvements:</p>
-
- <ul>
- <li>
- <p>Block rover.ebay./ar.*\&adtype= instead of
- "/.*\&adtype=" which caused too man false positives. Reported
- by u302320 in #360284, additional feedback from Adam Piggott.</p>
- </li>
-
- <li>
- <p>Unblock '.advrider.com/' and '/.*ADVrider'. Anonymously
- reported in #3603636.</p>
- </li>
-
- <li>
- <p>Stop blocking '/js/slider\.js'. Reported by Adam Piggott in
- #3606635 and _lvm in #2791160.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Filter file improvements:</p>
-
- <ul>
- <li>
- <p>Added an iframes filter.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Documentation improvements:</p>
-
- <ul>
- <li>
- <p>The whole GPLv2 text is included in the user manual now, so
- Privoxy can serve it itself and the user can read it without
- having to wade through GPLv3 ads first.</p>
- </li>
-
- <li>
- <p>Properly numbered and underlined a couple of section titles in
- the config that where previously overlooked due to a flaw in the
- conversion script. Reported by Ralf Jungblut.</p>
- </li>
-
- <li>
- <p>Improved the support instruction to hopefully make it harder
- to unintentionally provide insufficient information when
- requesting support. Previously it wasn't obvious that the
- information we need in bug reports is usually also required in
- support requests.</p>
- </li>
-
- <li>
- <p>Removed documentation about packages that haven't been
- provided in years.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Privoxy-Regression-Test:</p>
-
- <ul>
- <li>
- <p>Only log the test number when not running in verbose mode The
- position of the test is rarely relevant and it previously wasn't
- exactly obvious which one of the numbers was useful to repeat the
- test with --test-number.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>GNUmakefile improvements:</p>
-
- <ul>
- <li>
- <p>Factor generate-config-file out of config-file to make testing
- more convenient.</p>
- </li>
-
- <li>
- <p>The clean target now also takes care of patch leftovers.</p>
- </li>
- </ul>
- </li>
- </ul>
-
- <p><span class="APPLICATION">Privoxy 3.0.20</span> beta contained the
- following changes compared to the previous stable release:</p>
-
- <ul>
- <li>
- <p>Bug fixes:</p>
-
- <ul>
- <li>
- <p>Client sockets are now properly shutdown and drained before
- being closed. This fixes page truncation issues with clients that
- aggressively pipeline data on platforms that otherwise discard
- already written data. The issue mainly affected Opera users and
- was initially reported by Kevin in #3464439, szotsaki provided
- additional information to track down the cause.</p>
- </li>
-
- <li>
- <p>Fix latency calculation for shared connections (disabled by
- default). It was broken since their introduction in 2009. The
- calculated latency for most connections would be 0 in which case
- the timeout detection failed to account for the real latency.</p>
- </li>
-
- <li>
- <p>Reject URLs with invalid port. Previously they were parsed
- incorrectly and characters between the port number and the first
- slash were silently dropped as shown by curl test 187.</p>
- </li>
-
- <li>
- <p>The default-server-timeout and socket-timeout directives
- accept 0 as valid value.</p>
- </li>
-
- <li>
- <p>Fix a race condition on Windows that could cause Privoxy to
- become unresponsive after toggling it on or off through the
- taskbar icon. Reported by Tim H. in #3525694.</p>
- </li>
-
- <li>
- <p>Fix the compilation on Windows when configured without IPv6
- support.</p>
- </li>
-
- <li>
- <p>Fix an assertion that could cause debug builds to abort() in
- case of socks5 connection failures with "debug 2" enabled.</p>
- </li>
-
- <li>
- <p>Fix an assertion that could cause debug builds to abort() if a
- filter contained nul bytes in the replacement text.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>General improvements:</p>
-
- <ul>
- <li>
- <p>Significantly improved keep-alive support for both client and
- server connections.</p>
- </li>
-
- <li>
- <p>New debug log level 65536 which logs all actions that were
- applied to the request.</p>
- </li>
-
- <li>
- <p>New directive client-header-order to forward client headers in
- a different order than the one in which they arrived.</p>
- </li>
-
- <li>
- <p>New directive tolerate-pipelining to allow client-side
- pipelining. If enabled (3.0.20 beta enables it by default),
- Privoxy will keep pipelined client requests around to deal with
- them once the current request has been served.</p>
- </li>
-
- <li>
- <p>New --config-test option to let Privoxy exit after checking
- whether or not the configuration seems valid. The limitations
- noted in TODO #22 and #23 still apply. Based on a patch by
- Ramkumar Chinchani.</p>
- </li>
-
- <li>
- <p>New limit-cookie-lifetime{} action to let cookies expire
- before the end of the session. Suggested by Rick Sykes in
- #1049575.</p>
- </li>
-
- <li>
- <p>Increase the hard-coded maximum number of actions and filter
- files from 10 to 30 (each). It doesn't significantly affect
- Privoxy's memory usage and recompiling wasn't an option for all
- Privoxy users that reached the limit.</p>
- </li>
-
- <li>
- <p>Add support for chunk-encoded client request bodies.
- Previously chunk-encoded request bodies weren't guaranteed to be
- forwarded correctly, so this can also be considered a bug fix
- although chunk-encoded request bodies aren't commonly used in the
- real world.</p>
- </li>
-
- <li>
- <p>Add support for Tor's optimistic-data SOCKS extension, which
- can reduce the latency for requests on newly created connections.
- Currently only the headers are sent optimistically and only if
- the client request has already been read completely which rules
- out requests with large bodies.</p>
- </li>
-
- <li>
- <p>After preventing the client from pipelining, don't signal
- keep-alive intentions. When looking at the response headers
- alone, it previously wasn't obvious from the client's perspective
- that no additional responses should be expected.</p>
- </li>
-
- <li>
- <p>Stop considering client sockets tainted after receiving a
- request with body. It hasn't been necessary for a while now and
- unnecessarily causes test failures when using curl's test
- suite.</p>
- </li>
-
- <li>
- <p>Allow HTTP/1.0 clients to signal interest in keep-alive
- through the Proxy-Connection header. While such client are rare
- in the real world, it doesn't hurt and couple of curl tests rely
- on it.</p>
- </li>
-
- <li>
- <p>Only remove duplicated Content-Type headers when filters are
- enabled. If they are not it doesn't cause ill effects and the
- user might not want it. Downgrade the removal message to
- LOG_LEVEL_HEADER to clarify that it's not an error in Privoxy and
- is unlikely to cause any problems in general. Anonymously
- reported in #3599335.</p>
- </li>
-
- <li>
- <p>Set the socket option SO_LINGER for the client socket.</p>
- </li>
-
- <li>
- <p>Move several variable declarations to the beginning of their
- code block. It's required when compiling with gcc 2.95 which is
- still used on some platforms. Initial patch submitted by Simon
- South in #3564815.</p>
- </li>
-
- <li>
- <p>Optionally try to sanity-check strptime() results before
- trusting them. Broken strptime() implementations have caused
- problems in the past and the most recent offender seems to be
- FreeBSD's libc (standards/173421).</p>
- </li>
-
- <li>
- <p>When filtering is enabled, let Range headers pass if the range
- starts at the beginning. This should work around (or at least
- reduce) the video playback issues with various Apple clients as
- reported by Duc in #3426305.</p>
- </li>
-
- <li>
- <p>Do not confuse a client hanging up with a connection time out.
- If a client closes its side of the connection without sending a
- request line, do not send the CLIENT_CONNECTION_TIMEOUT_RESPONSE,
- but report the condition properly.</p>
- </li>
-
- <li>
- <p>Allow closing curly braces as part of action values as long as
- they are escaped.</p>
- </li>
-
- <li>
- <p>On Windows, the logfile is now written before showing the GUI
- error message which blocks until the user acknowledges it.
- Reported by Adriaan in #3593603.</p>
- </li>
-
- <li>
- <p>Remove an unreasonable parameter limit in the CGI interface.
- The new parameter limit depends on the memory available and is
- currently unlikely to be reachable, due to other limits in both
- Privoxy and common clients. Reported by Andrew on
- ijbswa-users@.</p>
- </li>
-
- <li>
- <p>Decrease the chances of parse failures after requests with
- unsupported methods were sent to the CGI interface.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Action file improvements:</p>
-
- <ul>
- <li>
- <p>Remove the comment that indicated that updated default.action
- versions are released on their own.</p>
- </li>
-
- <li>
- <p>Block 'optimize.indieclick.com/' and
- 'optimized-by.rubiconproject.com/'</p>
- </li>
-
- <li>
- <p>Unblock 'adjamblog.wordpress.com/' and
- 'adjamblog.files.wordpress.com/'. Reported by Ryan Farmer in
- #3496116.</p>
- </li>
-
- <li>
- <p>Unblock '/.*Bugtracker'. Reported by pwhk in #3522341.</p>
- </li>
-
- <li>
- <p>Add test URLs for '.freebsd.org' and '.watson.org'.</p>
- </li>
-
- <li>
- <p>Unblock '.urbandictionary.com/popular'.</p>
- </li>
-
- <li>
- <p>Block '.adnxs.com/'.</p>
- </li>
-
- <li>
- <p>Block 'farm.plista.com/widgetdata.php'.</p>
- </li>
-
- <li>
- <p>Block 'rotation.linuxnewmedia.com/'.</p>
- </li>
-
- <li>
- <p>Block 'reklamy.sfd.pl/'. Reported by kacperdominik in
- #3399948.</p>
- </li>
-
- <li>
- <p>Block 'g.adspeed.net/'.</p>
- </li>
-
- <li>
- <p>Unblock 'websupport.wdc.com/'. Reported by Adam Piggot in
- #3577851.</p>
- </li>
-
- <li>
- <p>Block '/openx/www/delivery/'.</p>
- </li>
-
- <li>
- <p>Disable fast-redirects for '.googleapis.com/'.</p>
- </li>
-
- <li>
- <p>Block 'imp.double.net/'. Reported by David Bo in #3070411.</p>
- </li>
-
- <li>
- <p>Block 'gm-link.com/' which is used for email tracking.
- Reported by David Bo in #1812733.</p>
- </li>
-
- <li>
- <p>Verify that requests to "bwp." are blocked. URL taken from
- #1736879 submitted by Francois Marier.</p>
- </li>
-
- <li>
- <p>Block '/.*bannerid='. Reported by Adam Piggott in
- #2975779.</p>
- </li>
-
- <li>
- <p>Block 'cltomedia.info/delivery/' and '.adexprt.com/'.
- Anonymously reported in #2965254.</p>
- </li>
-
- <li>
- <p>Block 'de17a.com/'. Reported by David Bo in #3061472.</p>
- </li>
-
- <li>
- <p>Block 'oskar.tradera.com/'. Reported by David Bo in
- #3060596.</p>
- </li>
-
- <li>
- <p>Block '/scripts/webtrends\.js'. Reported by johnd16 in
- #3002729.</p>
- </li>
-
- <li>
- <p>Block requests for 'pool.*.adhese.com/'. Reported by johnd16
- in #3002716.</p>
- </li>
-
- <li>
- <p>Update path pattern for Coremetrics and add tests. Pattern and
- URLs submitted by Adam Piggott #3168443.</p>
- </li>
-
- <li>
- <p>Enable +fast-redirects{check-decoded-url} for 'tr.anp.se/'.
- Reported by David Bo in #3268832.</p>
- </li>
-
- <li>
- <p>Unblock '.conrad.se/newsletter/banners/'. Reported by David Bo
- in #3413824.</p>
- </li>
-
- <li>
- <p>Block '.tynt.com/'. Reported by Dan Stahlke in #3421767.</p>
- </li>
-
- <li>
- <p>Unblock '.bbci.co.uk/radio/'. Reported by Adam Piggott in
- #3569603.</p>
- </li>
-
- <li>
- <p>Block requests to 'service.maxymiser.net/'. Reported by
- johnd16 in #3118401 (with a previous URL).</p>
- </li>
-
- <li>
- <p>Disable fast-redirects for Google's "let's pretend your
- computer is infected" page.</p>
- </li>
-
- <li>
- <p>Unblock '/.*download' to resolve actionsfile feedback
- #3498129. Submitted by Steven Kolins (soundcloud.com not
- working).</p>
- </li>
-
- <li>
- <p>Unblock '.wlxrs.com/' which is required by hotmail.com. Fixes
- #3413827 submitted by David Bo.</p>
- </li>
-
- <li>
- <p>Add two unblock patterns for popup radio and TV players.
- Submitted by Adam Piggott in #3596089.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Filter file improvements & bug fixes:</p>
-
- <ul>
- <li>
- <p>Add a referer tagger.</p>
- </li>
-
- <li>
- <p>Reduce the likelihood that the google filter messes up
- HTML-generating JavaScript. Reported by Zeno Kugy in
- #3520260.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Documentation improvements:</p>
-
- <ul>
- <li>
- <p>Revised all OS X sections due to new packaging module
- (OSXPackageBuilder).</p>
- </li>
-
- <li>
- <p>Update the list of supported operating systems to clarify that
- all Windows versions after 95 are expected to work and note that
- the platform-specific code for AmigaOS and QNX currently isn't
- maintained.</p>
- </li>
-
- <li>
- <p>Update 'Signals' section, the only explicitly handled signals
- are SIGINT, SIGTERM and SIGHUP.</p>
- </li>
-
- <li>
- <p>Add Haiku to the list of operating systems on which Privoxy is
- known to run.</p>
- </li>
-
- <li>
- <p>Add DragonFly to the list of BSDs on which Privoxy is known to
- run.</p>
- </li>
-
- <li>
- <p>Removed references to redhat-specific documentation set since
- it no longer exists.</p>
- </li>
-
- <li>
- <p>Removed references to building PDFs since we no longer do
- so.</p>
- </li>
-
- <li>
- <p>Multiple listen-address directives are supported since 3.0.18,
- correct the documentation to say so.</p>
- </li>
-
- <li>
- <p>Remove bogus section about long and short being preferable to
- int.</p>
- </li>
-
- <li>
- <p>Corrected some Internet JunkBuster references to Privoxy.</p>
- </li>
-
- <li>
- <p>Removed references to www.junkbusters.com since it is no
- longer maintained. Reported by Angelina Matson.</p>
- </li>
-
- <li>
- <p>Various grammar and spelling corrections</p>
- </li>
-
- <li>
- <p>Add a client-header-tagger{} example for disabling filtering
- for range requests.</p>
- </li>
-
- <li>
- <p>Correct a URL in the "Privoxy with Tor" FAQ.</p>
- </li>
-
- <li>
- <p>Spell 'refresh-tags' correctly. Reported by Don in
- #3571927.</p>
- </li>
-
- <li>
- <p>Sort manpage options alphabetically.</p>
- </li>
-
- <li>
- <p>Remove an incorrect sentence in the toggle section. The toggle
- state doesn't affect whether or not the Windows version uses the
- tray icon. Reported by Zeno Kugy in #3596395.</p>
- </li>
-
- <li>
- <p>Add new contributors since 3.0.19.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Log message improvements:</p>
-
- <ul>
- <li>
- <p>When stopping to watch a client socket due to pipelining,
- additionally log the socket number.</p>
- </li>
-
- <li>
- <p>Log the client socket and its condition before closing it.
- This makes it more obvious that the socket actually gets closed
- and should help when diagnosing problems like #3464439.</p>
- </li>
-
- <li>
- <p>In case of SOCKS5 failures, do not explicitly log the server's
- response. It hasn't helped so far and the response can already be
- logged by enabling "debug 32768" anyway. This reverts v1.81 and
- the follow-up bug fix v1.84.</p>
- </li>
-
- <li>
- <p>Relocate the connection-accepted message from listen_loop() to
- serve(). This way it's printed by the thread that is actually
- serving the connection which is nice when grepping for thread ids
- in log files.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Code cleanups:</p>
-
- <ul>
- <li>
- <p>Remove compatibility layer for versions prior to 3.0 since it
- has been obsolete for more than 10 years now.</p>
- </li>
-
- <li>
- <p>Remove the ijb_isupper() and ijb_tolower() macros from
- parsers.c since they aren't used in this file.</p>
- </li>
-
- <li>
- <p>Removed the 'Functions declared include:' comment sections
- since they tend to be incomplete, incorrect and out of date and
- the benefit seems questionable.</p>
- </li>
-
- <li>
- <p>Various comment grammar and comprehensibility
- improvements.</p>
- </li>
-
- <li>
- <p>Remove a pointless fflush() call in chat(). Flushing all
- streams pretty much all the time for no obvious reason is
- ridiculous.</p>
- </li>
-
- <li>
- <p>Relocate ijb_isupper()'s definition to project.h and get the
- ijb_tolower() definition from there, too.</p>
- </li>
-
- <li>
- <p>Relocate ijb_isdigit()'s definition to project.h.</p>
- </li>
-
- <li>
- <p>Rename ijb_foo macros to privoxy_foo.</p>
- </li>
-
- <li>
- <p>Add malloc_or_die() which will allow to simplify code paths
- where malloc() failures don't need to be handled gracefully.</p>
- </li>
-
- <li>
- <p>Add strdup_or_die() which will allow to simplify code paths
- where strdup() failures don't need to be handled gracefully.</p>
- </li>
-
- <li>
- <p>Replace strdup() calls with strdup_or_die() calls where it's
- safe and simplifies the code.</p>
- </li>
-
- <li>
- <p>Fix white-space around parentheses.</p>
- </li>
-
- <li>
- <p>Add missing white-space behind if's and the following
- parentheses.</p>
- </li>
-
- <li>
- <p>Unwrap a memcpy() call in resolve_hostname_to_ip().</p>
- </li>
-
- <li>
- <p>Declare pcrs_get_delimiter()'s delimiters[] static const.</p>
- </li>
-
- <li>
- <p>Various optimisations to remove dead code and merge
- inefficient code structures for improved clarity, performance or
- code compactness.</p>
- </li>
-
- <li>
- <p>Various data type corrections.</p>
- </li>
-
- <li>
- <p>Change visibility of several code segments when compiling
- without FEATURE_CONNECTION_KEEP_ALIVE enabled for clarity.</p>
- </li>
-
- <li>
- <p>In pcrs_get_delimiter(), do not use delimiters outside the
- ASCII range. Fixes a clang complaint.</p>
- </li>
-
- <li>
- <p>Fix an error message in get_last_url() nobody is supposed to
- see. Reported by Matthew Fischer in #3507301.</p>
- </li>
-
- <li>
- <p>Fix a typo in the no-zlib-support complaint. Patch submitted
- by Matthew Fischer in #3507304.</p>
- </li>
-
- <li>
- <p>Shorten ssplit()'s prototype by removing the last two
- arguments. We always want to skip empty fields and ignore leading
- delimiters, so having parameters for this only complicates the
- API.</p>
- </li>
-
- <li>
- <p>Use an enum for the type of the action value.</p>
- </li>
-
- <li>
- <p>Rename action_name's member takes_value to value_type as it
- isn't used as boolean.</p>
- </li>
-
- <li>
- <p>Turn family mismatches in match_sockaddr() into fatal
- errors.</p>
- </li>
-
- <li>
- <p>Let enlist_unique_header() verify that the caller didn't pass
- a header containing either \r or \n.</p>
- </li>
-
- <li>
- <p>Change the hashes used in load_config() to unsigned int.
- That's what hash_string() actually returns and using a
- potentially larger type is at best useless.</p>
- </li>
-
- <li>
- <p>Use privoxy_tolower() instead of vanilla tolower() with manual
- casting of the argument.</p>
- </li>
-
- <li>
- <p>Catch ssplit() failures in parse_cgi_parameters().</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Privoxy-Regression-Test:</p>
-
- <ul>
- <li>
- <p>Add an 'Overwrite condition' directive to skip any matching
- tests before it. As it has a global scope, using it is more
- convenient than clowning around with the Ignore directive.</p>
- </li>
-
- <li>
- <p>Log to STDOUT instead of STDERR.</p>
- </li>
-
- <li>
- <p>Include the Privoxy version in the output.</p>
- </li>
-
- <li>
- <p>Various grammar and spelling corrections in documentation and
- code.</p>
- </li>
-
- <li>
- <p>Additional tests for range requests with filtering
- enabled.</p>
- </li>
-
- <li>
- <p>Tests with mostly invalid range request.</p>
- </li>
-
- <li>
- <p>Add a couple of hide-if-modified-since{} tests with different
- date formats.</p>
- </li>
-
- <li>
- <p>Cleaned up the format of the regression-tests.action file to
- match the format of default.action.</p>
- </li>
-
- <li>
- <p>Remove the "Copyright" line from print_version(). When using
- --help, every line of screen space matters and thus shouldn't be
- wasted on things the user doesn't care about.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Privoxy-Log-Parser:</p>
-
- <ul>
- <li>
- <p>Improve the --statistics performance by skipping sanity checks
- for input that shouldn't affect the results anyway. Add a
- --strict-checks option that enables some of the checks again,
- just in case anybody cares.</p>
- </li>
-
- <li>
- <p>The distribution of client requests per connection is included
- in the --statistic output.</p>
- </li>
-
- <li>
- <p>The --accept-unknown-messages option has been removed and the
- behavior is now the default.</p>
- </li>
-
- <li>
- <p>Accept and (mostly) highlight new log messages introduced with
- Privoxy 3.0.20.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>uagen:</p>
-
- <ul>
- <li>
- <p>Bump generated Firefox version to 17.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>GNUmakefile improvements:</p>
-
- <ul>
- <li>
- <p>The dok-tidy target no longer taints documents with a
- tidy-mark</p>
- </li>
-
- <li>
- <p>Change RA_MODE from 0664 to 0644. Suggested by Markus Dittrich
- in #3505445.</p>
- </li>
-
- <li>
- <p>Remove tidy's clean flag as it changes the scope of
- attributes. Link-specific colors end up being applied to all
- text. Reported by Adam Piggott in #3569551.</p>
- </li>
-
- <li>
- <p>Leave it up to the user whether or not smart tags are
- inserted.</p>
- </li>
-
- <li>
- <p>Let w3m itself do the line wrapping for the config file. It
- works better than fmt as it can honour pre tags causing less
- unintentional line breaks.</p>
- </li>
-
- <li>
- <p>Ditch a pointless '-r' passed to rm to delete files.</p>
- </li>
-
- <li>
- <p>The config-file target now requires less manual intervention
- and updates the original config.</p>
- </li>
-
- <li>
- <p>Change WDUMP to generate ASCII. Add WDUMP_UTF8 to allow UTF-8
- in the AUTHORS file so the names are right.</p>
- </li>
-
- <li>
- <p>Stop pretending that lynx and links are supported for the
- documentation.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>configure improvements:</p>
-
- <ul>
- <li>
- <p>On Haiku, do not pass -lpthread to the compiler. Haiku's
- pthreads implementation is contained in its system library,
- libroot, so no additional library needs to be searched. Patch
- submitted by Simon South in #3564815.</p>
- </li>
-
- <li>
- <p>Additional Haiku-specific improvements. Disable checks
- intended for multi-user systems as Haiku is presently
- single-user. Group Haiku-specific settings in their own section,
- following the pattern for Solaris, OS/2 and AmigaOS. Add
- additional library-related settings to remove the need for
- providing configure with custom LDFLAGS. Submitted by Simon South
- in #3574538.</p>
- </li>
- </ul>
- </li>
- </ul>
-
- <div class="SECT2">
- <h2 class="SECT2"><a name="UPGRADERSNOTE" id="UPGRADERSNOTE">3.1. Note
- to Upgraders</a></h2>
-
- <p>A quick list of things to be aware of before upgrading from earlier
- versions of <span class="APPLICATION">Privoxy</span>:</p>
-
- <ul>
- <li>
- <p>The recommended way to upgrade <span class=
- "APPLICATION">Privoxy</span> is to backup your old configuration
- files, install the new ones, verify that <span class=
- "APPLICATION">Privoxy</span> is working correctly and finally merge
- back your changes using <span class="APPLICATION">diff</span> and
- maybe <span class="APPLICATION">patch</span>.</p>
-
- <p>There are a number of new features in each <span class=
- "APPLICATION">Privoxy</span> release and most of them have to be
- explicitly enabled in the configuration files. Old configuration
- files obviously don't do that and due to syntax changes using old
- configuration files with a new <span class=
- "APPLICATION">Privoxy</span> isn't always possible anyway.</p>
- </li>
-
- <li>
- <p>Note that some installers remove earlier versions completely,
- including configuration files, therefore you should really save any
- important configuration files!</p>
- </li>
-
- <li>
- <p>On the other hand, other installers don't overwrite existing
- configuration files, thinking you will want to do that
- yourself.</p>
- </li>
-
- <li>
- <p>In the default configuration only fatal errors are logged now.
- You can change that in the <a href="config.html#DEBUG">debug
- section</a> of the configuration file. You may also want to enable
- more verbose logging until you verified that the new <span class=
- "APPLICATION">Privoxy</span> version is working as expected.</p>
- </li>
-
- <li>
- <p>Three other config file settings are now off by default:
- <a href="config.html#ENABLE-REMOTE-TOGGLE">enable-remote-toggle</a>,
- <a href=
- "config.html#ENABLE-REMOTE-HTTP-TOGGLE">enable-remote-http-toggle</a>,
- and <a href=
- "config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</a>. If you
- use or want these, you will need to explicitly enable them, and be
- aware of the security issues involved.</p>
- </li>
- </ul>
- </div>
- </div>
-
- <div class="NAVFOOTER">
- <hr align="left" width="100%">
-
- <table summary="Footer navigation table" width="100%" border="0"
- cellpadding="0" cellspacing="0">
- <tr>
- <td width="33%" align="left" valign="top"><a href="installation.html"
- accesskey="P">Prev</a></td>
-
- <td width="34%" align="center" valign="top"><a href="index.html"
- accesskey="H">Home</a></td>
-
- <td width="33%" align="right" valign="top"><a href="quickstart.html"
- accesskey="N">Next</a></td>
- </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">Installation</td>
-
- <td width="34%" align="center" valign="top"> </td>
-
- <td width="33%" align="right" valign="top">Quickstart to Using
- Privoxy</td>
- </tr>
- </table>
- </div>
-</body>
-</html>
+++ /dev/null
-.\" This manpage has been automatically generated by docbook2man
-.\" from a DocBook document. This tool can be found at:
-.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
-.\" Please send any bug reports, improvements, comments, patches,
-.\" etc. to Steve Cheng <steve@ggi-project.org>.
-.TH "PRIVOXY" "1" "02 March 2013" "Privoxy 3.0.21" ""
-.SH NAME
-privoxy \- Privacy Enhancing Proxy
-.SH SYNOPSIS
-
-\fBprivoxy\fR [\fB\-\-chroot\fR ] [\fB\-\-config-test\fR ] [\fB\-\-help\fR ] [\fB\-\-no-daemon\fR ] [\fB\-\-pidfile \fIpidfile\fB\fR ] [\fB\-\-pre-chroot-nslookup \fIhostname\fB\fR ] [\fB\-\-user \fIuser[.group]\fB\fR ] [\fB\-\-version\fR ] [\fB\fIconfigfile\fB\fR ]
-
-.SH "OPTIONS"
-.PP
-\fBPrivoxy\fR may be invoked with the following command line
-options:
-.TP
-\fB\-\-chroot\fR
-Before changing to the user ID given in the \-\-user option, chroot to
-that user's home directory, i.e. make the kernel pretend to the
-\fBPrivoxy\fR process that the directory tree starts
-there. If set up carefully, this can limit the impact of possible
-vulnerabilities in \fBPrivoxy\fR to the files contained in
-that hierarchy.
-.TP
-\fB\-\-config-test\fR
-Exit after loading the configuration files before binding to
-the listen address. The exit code signals whether or not the
-configuration files have been successfully loaded.
-
-If the exit code is 1, at least one of the configuration files
-is invalid, if it is 0, all the configuration files have been
-successfully loaded (but may still contain errors that can
-currently only be detected at run time).
-
-This option doesn't affect the log setting, combination with
-"--no-daemon" is recommended if a configured log file shouldn't
-be used.
-.TP
-\fB\-\-help\fR
-Print brief usage info and exit.
-.TP
-\fB\-\-no-daemon\fR
-Don't become a daemon, i.e. don't fork and become process group
-leader, don't detach from controlling tty, and do all logging there.
-.TP
-\fB\-\-pidfile \fIpidfile\fB\fR
-On startup, write the process ID to \fIpidfile\fR.
-Delete the \fIpidfile\fR on exit.
-Failure to create or delete the \fIpidfile\fR
-is non-fatal. If no \fB\-\-pidfile\fR option is given, no PID file will be used.
-.TP
-\fB\-\-pre-chroot-nslookup \fIhostname\fB\fR
-Initialize the resolver library using \fIhostname\fR
-before chroot'ing. On some systems this reduces the number of files
-that must be copied into the chroot tree.
-.TP
-\fB\-\-user \fIuser[.group]\fB\fR
-After (optionally) writing the PID file, assume the user ID of
-\fIuser\fR and the GID of
-\fIgroup\fR, or, if the optional
-\fIgroup\fR was not given, the default group of
-\fIuser\fR. Exit if the privileges are not
-sufficient to do so.
-.TP
-\fB\-\-version\fR
-Print version info and exit.
-.PP
-If the \fIconfigfile\fR is not specified on the command line,
-\fBPrivoxy\fR will look for a file named
-\fIconfig\fR in the current directory. If no
-\fIconfigfile\fR is found, \fBPrivoxy\fR will
-fail to start.
-.SH "DESCRIPTION"
-.PP
-Privoxy is a non-caching web proxy with advanced filtering capabilities
-for enhancing privacy, modifying web page data and HTTP headers, controlling
-access, and removing ads and other obnoxious Internet junk. Privoxy has a
-flexible configuration and can be customized to suit individual needs and tastes.
-It has application for both stand-alone systems and multi-user networks.
-.PP
-Privoxy is Free Software and licensed under the GNU GPLv2.
-.PP
-Privoxy is an associated project of Software in the Public Interest (SPI).
-.PP
-Helping hands and donations are welcome:
-.TP 0.2i
-\(bu
-http://www.privoxy.org/faq/general.html#PARTICIPATE
-.TP 0.2i
-\(bu
-http://www.privoxy.org/faq/general.html#DONATE
-.SH "INSTALLATION AND USAGE"
-.PP
-Browsers can either be individually configured to use
-\fBPrivoxy\fR as a HTTP proxy (recommended),
-or \fBPrivoxy\fR can be combined with a packet
-filter to build an intercepting proxy
-(see \fIconfig\fR). The default setting is for
-localhost, on port 8118 (configurable in the main config file). To set the
-HTTP proxy in Firefox, go through: \fBTools\fR;
-\fBOptions\fR; \fBGeneral\fR;
-\fBConnection Settings\fR;
-\fBManual Proxy Configuration\fR.
-.PP
-For Internet Explorer, go through: \fBTools\fR;
-\fBInternet Properties\fR; \fBConnections\fR;
-\fBLAN Settings\fR.
-.PP
-The Secure (SSL) Proxy should also be set to the same values, otherwise
-https: URLs will not be proxied. Note: \fBPrivoxy\fR can only
-proxy HTTP and HTTPS traffic. Do not try it with FTP or other protocols.
-HTTPS presents some limitations, and not all features will work with HTTPS
-connections.
-.PP
-For other browsers, check the documentation.
-.SH "CONFIGURATION"
-.PP
-\fBPrivoxy\fR can be configured with the various configuration
-files. The default configuration files are: \fIconfig\fR,
-\fIdefault.filter\fR, \fIdefault.action\fR and
-\fIdefault.action\fR. \fIuser.action\fR should
-be used for locally defined exceptions to the default rules in
-\fImatch-all.action\fR and \fIdefault.action\fR,
-and \fIuser.filter\fR for locally defined filters. These are
-well commented. On Unix and Unix-like systems, these are located in
-\fI/etc/privoxy/\fR by default.
-.PP
-\fBPrivoxy\fR uses the concept of \fBactions\fR
-in order to manipulate the data stream between the browser and remote sites.
-There are various actions available with specific functions for such things
-as blocking web sites, managing cookies, etc. These actions can be invoked
-individually or combined, and used against individual URLs, or groups of URLs
-that can be defined using wildcards and regular expressions. The result is
-that the user has greatly enhanced control and freedom.
-.PP
-The actions list (ad blocks, etc) can also be configured with your
-web browser at http://config.privoxy.org/
-(assuming the configuration allows it).
-\fBPrivoxy's\fR configuration parameters can also be viewed at
-the same page. In addition, \fBPrivoxy\fR can be toggled on/off.
-This is an internal page, and does not require Internet access.
-.PP
-See the \fIUser Manual\fR for a detailed
-explanation of installation, general usage, all configuration options, new
-features and notes on upgrading.
-.SH "FILES"
-
-.nf
- \fI/usr/sbin/privoxy\fR
- \fI/etc/privoxy/config\fR
- \fI/etc/privoxy/match-all.action\fR
- \fI/etc/privoxy/default.action\fR
- \fI/etc/privoxy/user.action\fR
- \fI/etc/privoxy/default.filter\fR
- \fI/etc/privoxy/user.filter\fR
- \fI/etc/privoxy/trust\fR
- \fI/etc/privoxy/templates/*\fR
- \fI/var/log/privoxy/logfile\fR
-.fi
-.PP
-Various other files should be included, but may vary depending on platform
-and build configuration. Additional documentation should be included in the local
-documentation directory.
-.SH "SIGNALS"
-.PP
-\fBPrivoxy\fR terminates on the \fBSIGINT\fR
-and \fBSIGTERM\fR signals. Log
-rotation scripts may cause a re-opening of the logfile by sending a
-\fBSIGHUP\fR to \fBPrivoxy\fR. Note that unlike
-other daemons, \fBPrivoxy\fR does not need to be made aware of
-config file changes by \fBSIGHUP\fR -- it will detect them
-automatically. Signals other than the ones listed above aren't explicitly
-handled and result in the default action defined by the operating system.
-.SH "NOTES"
-.PP
-Please see the \fIUser Manual\fR on how to contact the
-developers, for feature requests, reporting problems, and other questions.
-.SH "SEE ALSO"
-.PP
-Other references and sites of interest to \fBPrivoxy\fR
-users:
-.PP
-
-http://www.privoxy.org/,
-the \fBPrivoxy\fR Home page.
-
-http://www.privoxy.org/faq/,
-the \fBPrivoxy\fR FAQ.
-
-http://www.privoxy.org/developer-manual/,
-the \fBPrivoxy\fR developer manual.
-
-https://sourceforge.net/projects/ijbswa/,
-the Project Page for \fBPrivoxy\fR on
-SourceForge.
-
-http://config.privoxy.org/,
-the web-based user interface. \fBPrivoxy\fR must be
-running for this to work. Shortcut: http://p.p/
-
-https://sourceforge.net/tracker/?group_id=11118&atid=460288, to submit ``misses'' and other
-configuration related suggestions to the developers.
-.SH "DEVELOPMENT TEAM"
-
-.nf
- Fabian Keil, lead developer
- David Schmidt
- Hal Burgiss
- Lee Rian
- Roland Rosenfeld
- Ian Silvester
-.fi
-.SH "COPYRIGHT AND LICENSE"
-.SS "COPYRIGHT"
-.PP
-Copyright (C) 2001-2013 by Privoxy Developers <ijbswa-developers@lists.sourceforge.net>
-.PP
-Some source code is based on code Copyright (C) 1997 by Anonymous Coders
-and Junkbusters, Inc. and licensed under the \fIGNU General Public
-License\fR.
-.SS "LICENSE"
-.PP
-\fBPrivoxy\fR is free software; you can
-redistribute it and/or modify it under the terms of the
-\fIGNU General Public License\fR, version 2,
-as published by the Free Software Foundation.
-.PP
-\fBPrivoxy\fR is distributed in the hope that
-it will be useful, but WITHOUT ANY WARRANTY; without even the implied
-warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-See the \fIlicense\fR for details.