+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Coding Guidelines</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Privoxy Developer Manual"
HREF="index.html"><LINK
CLASS="SECT1"
><A
NAME="CODING"
-></A
->4. Coding Guidelines</H1
+>4. Coding Guidelines</A
+></H1
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="S1"
-></A
->4.1. Introduction</H2
+>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
CLASS="SECT2"
><A
NAME="S2"
-></A
->4.2. Using Comments</H2
+>4.2. Using Comments</A
+></H2
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
NAME="S3"
-></A
->4.2.1. Comment, Comment, Comment</H3
+>4.2.1. Comment, Comment, Comment</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S4"
-></A
->4.2.2. Use blocks for comments</H3
+>4.2.2. Use blocks for comments</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S5"
-></A
->4.2.3. Keep Comments on their own line</H3
+>4.2.3. Keep Comments on their own line</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S6"
-></A
->4.2.4. Comment each logical step</H3
+>4.2.4. Comment each logical step</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S7"
-></A
->4.2.5. Comment All Functions Thoroughly</H3
+>4.2.5. Comment All Functions Thoroughly</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S8"
-></A
>4.2.6. Comment at the end of braces if the
- content is more than one screen length</H3
+ content is more than one screen length</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT2"
><A
NAME="S9"
-></A
->4.3. Naming Conventions</H2
+>4.3. Naming Conventions</A
+></H2
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
NAME="S10"
-></A
->4.3.1. Variable Names</H3
+>4.3.1. Variable Names</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S11"
-></A
->4.3.2. Function Names</H3
+>4.3.2. Function Names</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S12"
-></A
->4.3.3. Header file prototypes</H3
+>4.3.3. Header file prototypes</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S13"
-></A
->4.3.4. Enumerations, and #defines</H3
+>4.3.4. Enumerations, and #defines</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S14"
-></A
->4.3.5. Constants</H3
+>4.3.5. Constants</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT2"
><A
NAME="S15"
-></A
->4.4. Using Space</H2
+>4.4. Using Space</A
+></H2
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
NAME="S16"
-></A
->4.4.1. Put braces on a line by themselves.</H3
+>4.4.1. Put braces on a line by themselves.</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S17"
-></A
>4.4.2. ALL control statements should have a
- block</H3
+ block</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S18"
-></A
>4.4.3. Do not belabor/blow-up boolean
- expressions</H3
+ expressions</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S19"
-></A
>4.4.4. Use white space freely because it is
- free</H3
+ free</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S20"
-></A
>4.4.5. Don't use white space around structure
- operators</H3
+ operators</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S21"
-></A
>4.4.6. Make the last brace of a function stand
- out</H3
+ out</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S22"
-></A
->4.4.7. Use 3 character indentions</H3
+>4.4.7. Use 3 character indentions</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT2"
><A
NAME="S23"
-></A
->4.5. Initializing</H2
+>4.5. Initializing</A
+></H2
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
NAME="S24"
-></A
->4.5.1. Initialize all variables</H3
+>4.5.1. Initialize all variables</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT2"
><A
NAME="S25"
-></A
->4.6. Functions</H2
+>4.6. Functions</A
+></H2
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
NAME="S26"
-></A
>4.6.1. Name functions that return a boolean as a
- question.</H3
+ question.</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S27"
-></A
>4.6.2. Always specify a return type for a
- function.</H3
+ function.</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S28"
-></A
>4.6.3. Minimize function calls when iterating by
- using variables</H3
+ using variables</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S29"
-></A
->4.6.4. Pass and Return by Const Reference</H3
+>4.6.4. Pass and Return by Const Reference</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S30"
-></A
->4.6.5. Pass and Return by Value</H3
+>4.6.5. Pass and Return by Value</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S31"
-></A
->4.6.6. Names of include files</H3
+>4.6.6. Names of include files</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S32"
-></A
>4.6.7. Provide multiple inclusion
- protection</H3
+ protection</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S33"
-></A
->4.6.8. Use `extern "C"` when appropriate</H3
+>4.6.8. Use `extern "C"` when appropriate</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S34"
-></A
>4.6.9. Where Possible, Use Forward Struct
- Declaration Instead of Includes</H3
+ Declaration Instead of Includes</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT2"
><A
NAME="S35"
-></A
->4.7. General Coding Practices</H2
+>4.7. General Coding Practices</A
+></H2
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
NAME="S36"
-></A
->4.7.1. Turn on warnings</H3
+>4.7.1. Turn on warnings</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S37"
-></A
>4.7.2. Provide a default case for all switch
- statements</H3
+ statements</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S38"
-></A
>4.7.3. Try to avoid falling through cases in a
- switch statement.</H3
+ switch statement.</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S39"
-></A
>4.7.4. Use 'long' or 'short' Instead of
- 'int'</H3
+ 'int'</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S40"
-></A
->4.7.5. Don't mix size_t and other types</H3
+>4.7.5. Don't mix size_t and other types</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S41"
-></A
>4.7.6. Declare each variable and struct on its
- own line.</H3
+ own line.</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S42"
-></A
->4.7.7. Use malloc/zalloc sparingly</H3
+>4.7.7. Use malloc/zalloc sparingly</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S43"
-></A
>4.7.8. The Programmer Who Uses 'malloc' is
- Responsible for Ensuring 'free'</H3
+ Responsible for Ensuring 'free'</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S44"
-></A
>4.7.9. Add loaders to the `file_list' structure
- and in order</H3
+ and in order</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="S45"
-></A
>4.7.10. "Uncertain" new code and/or changes to
- existing code, use FIXME</H3
+ existing code, use FIXME</A
+></H3
><P
><SPAN
CLASS="emphasis"
CLASS="SECT2"
><A
NAME="S46"
-></A
>4.8. Addendum: Template for files and function
- comment blocks:</H2
+ comment blocks:</A
+></H2
><P
><SPAN
CLASS="emphasis"
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Contacting the developers, Bug Reporting and Feature Requests</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Privoxy Developer Manual"
HREF="index.html"><LINK
CLASS="SECT1"
><A
NAME="CONTACT"
-></A
->8. Contacting the developers, Bug Reporting and Feature Requests</H1
+>8. 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="SECT2"
><A
NAME="CONTACT-SUPPORT"
-></A
->8.1. Get Support</H2
+>8.1. Get Support</A
+></H2
><P
-> For casual users, our support forum at
+> For casual users, our
<A
-HREF="http://sourceforge.net/"
+HREF="http://sourceforge.net/tracker/?group_id=11118&atid=211118"
TARGET="_top"
->SourceForge</A
+>support forum at SourceForge</A
>
is probably best suited:
<A
CLASS="SECT2"
><A
NAME="CONTACT-BUGS"
-></A
->8.2. Report Bugs</H2
+>8.2. Report Bugs</A
+></H2
><P
> Please report all bugs <SPAN
CLASS="emphasis"
CLASS="SECT2"
><A
NAME="CONTACT-FEATURE"
-></A
->8.3. Request New Features</H2
+>8.3. 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
CLASS="SECT2"
><A
NAME="CONTACT-ADS"
-></A
->8.4. Report Ads or Other Actions-Related Problems</H2
+>8.4. Report Ads or Other Actions-Related Problems</A
+></H2
><P
> Please send feedback on ads that slipped through, innocent images that were blocked,
and any other problems relating to the <TT
CLASS="SECT2"
><A
NAME="CONTACT-OTHER"
-></A
->8.5. Other</H2
+>8.5. Other</A
+></H2
><P
>For any other issues, feel free to use the mailing lists. Technically interested users
and people who wish to contribute to the project are also welcome on the developers list!
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Privoxy Copyright, License and History</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Privoxy Developer Manual"
HREF="index.html"><LINK
CLASS="SECT1"
><A
NAME="COPYRIGHT"
-></A
->9. Privoxy Copyright, License and History</H1
+>9. Privoxy Copyright, License and History</A
+></H1
><P
-> Copyright © 2001 - 2003 by Privoxy Developers <TT
+> Copyright © 2001 - 2004 by Privoxy Developers <CODE
CLASS="EMAIL"
><<A
HREF="mailto:developers@privoxy.org"
>developers@privoxy.org</A
->></TT
+>></CODE
></P
><P
> Some source code is based on code Copyright © 1997 by Anonymous Coders
CLASS="SECT2"
><A
NAME="AEN1177"
-></A
->9.1. License</H2
+>9.1. License</A
+></H2
><P
> <SPAN
CLASS="APPLICATION"
CLASS="SECT2"
><A
NAME="AEN1193"
-></A
->9.2. History</H2
+>9.2. History</A
+></H2
><P
> In the beginning, there was the
<A
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>The CVS Repository</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Privoxy Developer Manual"
HREF="index.html"><LINK
CLASS="SECT1"
><A
NAME="CVS"
-></A
->2. The CVS Repository</H1
+>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
CLASS="SECT2"
><A
NAME="CVSACCESS"
-></A
->2.1. Access to CVS</H2
+>2.1. Access to CVS</A
+></H2
><P
> The project's CVS repository is hosted on
<A
documentation</A
> for the technical access details for your
operating system. For historical reasons, the CVS server is
- called <TT
+ called <VAR
CLASS="LITERAL"
->cvs.ijbswa.sourceforge.net</TT
+>cvs.ijbswa.sourceforge.net</VAR
>, the repository is
- called <TT
+ called <VAR
CLASS="LITERAL"
->ijbswa</TT
+>ijbswa</VAR
>, and the source tree module is called
- <TT
+ <VAR
CLASS="LITERAL"
->current</TT
+>current</VAR
>.
</P
></DIV
CLASS="SECT2"
><A
NAME="CVSBRANCHES"
-></A
->2.2. Branches</H2
+>2.2. Branches</A
+></H2
><P
> Within the CVS repository, there are modules and branches. As
- mentioned, the sources are in the <TT
+ mentioned, the sources are in the <VAR
CLASS="LITERAL"
->current</TT
+>current</VAR
>
<SPAN
CLASS="QUOTE"
</P
><P
> Branches are used to fork a sub-development path from the main trunk.
- Within the <TT
+ Within the <VAR
CLASS="LITERAL"
->current</TT
+>current</VAR
> module where the sources are, there
is always at least one <SPAN
CLASS="QUOTE"
checked into to two different places (assuming its a bugfix and needs
fixing in both the stable and unstable trees). This also means that in
order to have access to both trees, both will have to be checked out
- separately. Use the <TT
+ separately. Use the <VAR
CLASS="LITERAL"
->cvs -r</TT
+>cvs -r</VAR
> flag to check out a
- branch, e.g: <TT
+ branch, e.g: <VAR
CLASS="LITERAL"
->cvs co -r v_3_0_branch current</TT
+>cvs co -r v_3_0_branch current</VAR
>.
</P
></DIV
CLASS="SECT2"
><A
NAME="CVSCOMMIT"
-></A
->2.3. CVS Commit Guidelines</H2
+>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
> Stable branches are handled with more care, especially after the
initial *.*.0 release, and we are just in bugfix mode. In addition to
the above, the below applies only to the stable branch (currently the
- <TT
+ <VAR
CLASS="LITERAL"
->v_3_0_branch</TT
+>v_3_0_branch</VAR
> branch):
</P
><P
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Documentation Guidelines</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Privoxy Developer Manual"
HREF="index.html"><LINK
CLASS="SECT1"
><A
NAME="DOCUMENTATION"
-></A
->3. Documentation Guidelines</H1
+>3. Documentation Guidelines</A
+></H1
><P
> All formal documents are maintained in Docbook SGML and located in the
- <TT
+ <SAMP
CLASS="COMPUTEROUTPUT"
->doc/source/*</TT
+>doc/source/*</SAMP
> directory. You will need
<A
HREF="http://www.docbook.org"
</P
><P
> Formal documents are built with the Makefile targets of
- <TT
+ <SAMP
CLASS="COMPUTEROUTPUT"
->make dok</TT
+>make dok</SAMP
>, or alternately
- <TT
+ <SAMP
CLASS="COMPUTEROUTPUT"
->make redhat-dok</TT
+>make redhat-dok</SAMP
>. If you have problems,
try both. The build process uses the document SGML sources in
- <TT
+ <SAMP
CLASS="COMPUTEROUTPUT"
->doc/source/*/*</TT
+>doc/source/*/*</SAMP
> to update all text files in
- <TT
+ <SAMP
CLASS="COMPUTEROUTPUT"
->doc/text/</TT
+>doc/text/</SAMP
> and to update all HTML
- documents in <TT
+ documents in <SAMP
CLASS="COMPUTEROUTPUT"
->doc/webserver/</TT
+>doc/webserver/</SAMP
>.
</P
><P
TYPE="1"
><LI
><P
-> First, build the docs by running <TT
+> First, build the docs by running <SAMP
CLASS="COMPUTEROUTPUT"
>make
- dok</TT
-> (or alternately <TT
+ dok</SAMP
+> (or alternately <SAMP
CLASS="COMPUTEROUTPUT"
>make
- redhat-dok</TT
->). For PDF docs, do <TT
+ redhat-dok</SAMP
+>). For PDF docs, do <SAMP
CLASS="COMPUTEROUTPUT"
>make
- dok-pdf</TT
+ dok-pdf</SAMP
>.
</P
></LI
><LI
><P
-> Run <TT
+> Run <SAMP
CLASS="COMPUTEROUTPUT"
->make webserver</TT
+>make webserver</SAMP
> which copies all
- files from <TT
+ files from <SAMP
CLASS="COMPUTEROUTPUT"
->doc/webserver</TT
+>doc/webserver</SAMP
> to the
sourceforge webserver via scp.
</P
CLASS="EMPHASIS"
>after</I
></SPAN
-> the <TT
+> the <VAR
CLASS="LITERAL"
->$VERSION</TT
+>$VERSION</VAR
> and
other release specific data in <TT
CLASS="FILENAME"
CLASS="SECT2"
><A
NAME="SGML"
-></A
->3.1. Quickstart to Docbook and SGML</H2
+>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
CLASS="QUOTE"
>"closed"</SPAN
>. If not, you
- will likely generate errors. Example: <TT
+ will likely generate errors. Example: <VAR
CLASS="LITERAL"
><title>My
- Title</title></TT
+ Title</title></VAR
>. They are also case-insensitive, but we
strongly suggest using all lower case. This keeps compatibility with
[Docbook] <SPAN
CLASS="QUOTE"
>"sections"</SPAN
> for the most part. Sections
- will be processed into HTML headers (e.g. <TT
+ will be processed into HTML headers (e.g. <VAR
CLASS="LITERAL"
->h1</TT
+>h1</VAR
> for
- <TT
+ <VAR
CLASS="LITERAL"
->sect1</TT
+>sect1</VAR
>). 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
+ TOC's are set to a depth of three. Meaning <VAR
CLASS="LITERAL"
->sect1</TT
+>sect1</VAR
>,
- <TT
+ <VAR
CLASS="LITERAL"
->sect2</TT
->, and <TT
+>sect2</VAR
+>, and <VAR
CLASS="LITERAL"
->sect3</TT
+>sect3</VAR
> will have TOC
- entries, but <TT
+ entries, but <VAR
CLASS="LITERAL"
->sect4</TT
+>sect4</VAR
> will not. Each section requires
- a <TT
+ a <VAR
CLASS="LITERAL"
-><title></TT
+><title></VAR
> element, and at least one
- <TT
+ <VAR
CLASS="LITERAL"
-><para></TT
+><para></VAR
>. There is a limit of five section
levels in Docbook, but generally three should be sufficient for our
purposes.</P
><literallayout></literallayout></I
></SPAN
>, like
- <TT
+ <VAR
CLASS="LITERAL"
-><pre></TT
+><pre></VAR
>, more or less.
</TD
></TR
><screen></screen></I
></SPAN
>, screen output, implies
- <TT
+ <VAR
CLASS="LITERAL"
-><literallayout></TT
+><literallayout></VAR
>.
</TD
></TR
><ulink url="example.com"></ulink></I
></SPAN
>, like
- HTML <TT
+ HTML <VAR
CLASS="LITERAL"
-><a></TT
+><a></VAR
> tag.
</TD
></TR
CLASS="SECT2"
><A
NAME="DOCSTYLE"
-></A
>3.2. <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> Documentation Style</H2
+> 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
CLASS="APPLICATION"
>aspell</SPAN
> can check SGML with the
- <TT
+ <VAR
CLASS="LITERAL"
->-H</TT
+>-H</VAR
> option. (<SPAN
CLASS="APPLICATION"
>ispell</SPAN
CLASS="SECT2"
><A
NAME="AEN233"
-></A
->3.3. Privoxy Custom Entities</H2
+>3.3. Privoxy Custom Entities</A
+></H2
><P
> <SPAN
CLASS="APPLICATION"
>"internal entities"</SPAN
>. These are like variables in
programming. Well, sort of. For instance, we have the
- <TT
+ <VAR
CLASS="LITERAL"
->p-version</TT
+>p-version</VAR
> entity that contains the current
<SPAN
CLASS="APPLICATION"
> text entities are defined like:
</P
><P
-> <TT
+> <VAR
CLASS="LITERAL"
-><!entity supported SYSTEM "supported.sgml"></TT
+><!entity supported SYSTEM "supported.sgml"></VAR
>
</P
><P
>supported.sgml</TT
> is available for inclusion anywhere
in the doc. To make this happen, just reference the now defined
- entity: <TT
+ entity: <VAR
CLASS="LITERAL"
->&supported;</TT
+>&supported;</VAR
> (starts with an ampersand
and ends with a semi-colon), and the contents will be dumped into
the finished doc at that point.
>
version string, e.g. <SPAN
CLASS="QUOTE"
->"3.0.2"</SPAN
+>"3.0.3"</SPAN
>.
</TD
></TR
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Privoxy Developer Manual</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="NEXT"
TITLE="Introduction"
HREF="introduction.html"><LINK
CLASS="TITLE"
><A
NAME="AEN2"
-></A
->Privoxy Developer Manual</H1
+>Privoxy Developer Manual</A
+></H1
><P
CLASS="PUBDATE"
> <SUB
><DIV
><DIV
CLASS="ABSTRACT"
+><P
+></P
><A
NAME="AEN9"
></A
><P
-></P
-><P
> The developer manual provides guidance on coding, testing, packaging, documentation
and other issues of importance to those involved with
<SPAN
for anyone who wants to join the team.</P
><P
> Please note that this document is constantly evolving. This copy represents
- the state at the release of version 3.0.2.
+ the state at the release of version 3.0.3.
You can find the latest version of the this manual at <A
HREF="http://www.privoxy.org/developer-manual/"
TARGET="_top"
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Introduction</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Privoxy Developer Manual"
HREF="index.html"><LINK
CLASS="SECT1"
><A
NAME="INTRODUCTION"
-></A
->1. Introduction</H1
+>1. Introduction</A
+></H1
><P
> <SPAN
CLASS="APPLICATION"
CLASS="SECT2"
><A
NAME="QUICKSTART"
-></A
->1.1. Quickstart to Privoxy Development</H2
+>1.1. Quickstart to Privoxy Development</A
+></H2
><P
> The first step is to join the <A
HREF="mailto:developers@privoxy.org"
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Releasing a New Version</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Privoxy Developer Manual"
HREF="index.html"><LINK
CLASS="SECT1"
><A
NAME="NEWRELEASE"
-></A
->6. Releasing a New Version</H1
+>6. Releasing a New Version</A
+></H1
><P
> When we release versions of <SPAN
CLASS="APPLICATION"
CLASS="SECT2"
><A
NAME="VERSIONNUMBERS"
-></A
->6.1. Version numbers</H2
+>6.1. Version numbers</A
+></H2
><P
> First you need to determine which version number the release will have.
<SPAN
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
+ version reported as <VAR
CLASS="LITERAL"
->0.0.0</TT
+>0.0.0</VAR
>, during that period
between releases when changes are being added. This is to denote
that this code is <SPAN
></SPAN
>. Then
as the release nears, the version is bumped according: e.g.
- <TT
+ <VAR
CLASS="LITERAL"
->3.0.1 -> 0.0.0 -> 3.0.2</TT
+>3.0.1 -> 0.0.0 -> 3.0.2</VAR
>.
</P
></LI
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
+ <VAR
CLASS="LITERAL"
->3.0</TT
+>3.0</VAR
>, 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
>and</I
></SPAN
> the stable release branch,
- which is <TT
+ which is <VAR
CLASS="LITERAL"
->v_3_0_branch</TT
+>v_3_0_branch</VAR
> at the moment).
</P
></DIV
CLASS="SECT2"
><A
NAME="BEFORERELEASE"
-></A
->6.2. Before the Release: Freeze</H2
+>6.2. Before the Release: Freeze</A
+></H2
><P
> The following <SPAN
CLASS="emphasis"
>
link from the main page since we need to keep manuals for various
versions available). The CGI pages will link to something like
- <TT
+ <VAR
CLASS="LITERAL"
->http://privoxy.org/$(VERSION)/user-manual/</TT
+>http://privoxy.org/$(VERSION)/user-manual/</VAR
>. 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.
CLASS="SECT2"
><A
NAME="THERELEASE"
-></A
->6.3. Building and Releasing the Packages</H2
+>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.
CLASS="SECT3"
><A
NAME="PACK-GUIDELINES"
-></A
->6.3.1. Note on Privoxy Packaging</H3
+>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="SECT3"
><A
NAME="NEWRELEASE-TARBALL"
-></A
->6.3.2. Source Tarball</H3
+>6.3.2. Source Tarball</A
+></H3
><P
> First, <SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="NEWRELEASE-RPM"
-></A
->6.3.3. SuSE, Conectiva or Red Hat RPM</H3
+>6.3.3. SuSE, Conectiva or Red Hat RPM</A
+></H3
><P
-> In following text, replace <TT
+> In following text, replace <VAR
CLASS="REPLACEABLE"
-><I
->dist</I
-></TT
+>dist</VAR
>
with either <SPAN
CLASS="QUOTE"
now examine the file <TT
CLASS="FILENAME"
>privoxy-</TT
-><TT
+><VAR
CLASS="REPLACEABLE"
-><I
->dist</I
-></TT
+>dist</VAR
><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
+ <VAR
CLASS="REPLACEABLE"
-><I
->dist</I
-></TT
+>dist</VAR
> which is built from version
X.Y.Z. Check the
<A
><TD
><PRE
CLASS="PROGRAMLISTING"
-> make <TT
+> make <VAR
CLASS="REPLACEABLE"
-><I
->dist</I
-></TT
+>dist</VAR
>-dist</PRE
></TD
></TR
><TD
><PRE
CLASS="PROGRAMLISTING"
-> make <TT
+> make <VAR
CLASS="REPLACEABLE"
-><I
->dist</I
-></TT
->-upload <TT
+>dist</VAR
+>-upload <VAR
CLASS="REPLACEABLE"
-><I
->rpm_packagerev</I
-></TT
+>rpm_packagerev</VAR
></PRE
></TD
></TR
>
</P
><P
-> where <TT
+> where <VAR
CLASS="REPLACEABLE"
-><I
->rpm_packagerev</I
-></TT
+>rpm_packagerev</VAR
> is the
RPM release number as determined above.
Go to the displayed URL and release the file publicly on Sourceforge.
CLASS="SECT3"
><A
NAME="NEWRELEASE-OS2"
-></A
->6.3.4. OS/2</H3
+>6.3.4. OS/2</A
+></H3
><P
> First, <SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="NEWRELEASE-SOLARIS"
-></A
->6.3.5. Solaris</H3
+>6.3.5. Solaris</A
+></H3
><P
> Login to Sourceforge's compilefarm via ssh:
</P
CLASS="SECT3"
><A
NAME="NEWRELEASE-WINDOWS"
-></A
->6.3.6. Windows</H3
+>6.3.6. Windows</A
+></H3
><P
> You should ensure you have the latest version of Cygwin (from
<A
CLASS="SECT3"
><A
NAME="NEWRELEASE-DEBIAN"
-></A
->6.3.7. Debian</H3
+>6.3.7. Debian</A
+></H3
><P
> First, <SPAN
CLASS="emphasis"
><TD
><PRE
CLASS="PROGRAMLISTING"
-> debchange -v 3.0.2-stable-1 "New upstream version"</PRE
+> debchange -v 3.0.3-stable-1 "New upstream version"</PRE
></TD
></TR
></TABLE
> This will create
<TT
CLASS="FILENAME"
->../privoxy_3.0.2-stable-1_i386.deb</TT
+>../privoxy_3.0.3-stable-1_i386.deb</TT
>
which can be uploaded. To upload the package to Sourceforge, simply
issue
CLASS="SECT3"
><A
NAME="NEWRELEASE-MACOSX"
-></A
->6.3.8. Mac OSX</H3
+>6.3.8. Mac OSX</A
+></H3
><P
> First, <SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="NEWRELEASE-FREEBSD"
-></A
->6.3.9. FreeBSD</H3
+>6.3.9. FreeBSD</A
+></H3
><P
> Login to Sourceforge's compile-farm via ssh:
</P
CLASS="SECT3"
><A
NAME="NEWRELEASE-HPUX"
-></A
->6.3.10. HP-UX 11</H3
+>6.3.10. HP-UX 11</A
+></H3
><P
> First, <SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="NEWRELEASE-AMIGA"
-></A
->6.3.11. Amiga OS</H3
+>6.3.11. Amiga OS</A
+></H3
><P
> First, <SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="NEWRELEASE-AIX"
-></A
->6.3.12. AIX</H3
+>6.3.12. AIX</A
+></H3
><P
> Login to Sourceforge's compilefarm via ssh:
</P
CLASS="SECT2"
><A
NAME="RELEASING"
-></A
->6.4. Uploading and Releasing Your Package</H2
+>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
></LI
><LI
><P
-> user: <TT
+> user: <VAR
CLASS="LITERAL"
->anonymous</TT
+>anonymous</VAR
>
</P
></LI
><LI
><P
-> password: <TT
+> password: <VAR
CLASS="LITERAL"
->ijbswa-developers@lists.sourceforge.net</TT
+>ijbswa-developers@lists.sourceforge.net</VAR
>
</P
></LI
>http://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
+ second column, and click <VAR
CLASS="LITERAL"
->Add Release</TT
+>Add Release</VAR
>. You will
then need to create a new release for your package, using the format
- of <TT
+ of <VAR
CLASS="LITERAL"
->$VERSION ($CODE_STATUS)</TT
+>$VERSION ($CODE_STATUS)</VAR
>, e.g. <SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
->3.0.2
+>3.0.3
(beta)</I
></SPAN
>.
</P
><P
> If you have made errors, or need to make changes, you can go through
- essentially the same steps, but select <TT
+ essentially the same steps, but select <VAR
CLASS="LITERAL"
->Edit Release</TT
+>Edit Release</VAR
>,
- instead of <TT
+ instead of <VAR
CLASS="LITERAL"
->Add Release</TT
+>Add Release</VAR
>.
</P
></DIV
CLASS="SECT2"
><A
NAME="AFTERRELEASE"
-></A
->6.5. After the Release</H2
+>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
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>See also</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Privoxy Developer Manual"
HREF="index.html"><LINK
CLASS="SECT1"
><A
NAME="SEEALSO"
-></A
->10. See also</H1
+>10. See also</A
+></H1
><P
> Other references and sites of interest to <SPAN
CLASS="APPLICATION"
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Testing Guidelines</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Privoxy Developer Manual"
HREF="index.html"><LINK
CLASS="SECT1"
><A
NAME="TESTING"
-></A
->5. Testing Guidelines</H1
+>5. Testing Guidelines</A
+></H1
><P
>To be filled.</P
><DIV
CLASS="SECT2"
><A
NAME="TESTING-PLAN"
-></A
->5.1. Testplan for releases</H2
+>5.1. Testplan for releases</A
+></H2
><P
> Explain release numbers. major, minor. developer releases. etc.
CLASS="SECT2"
><A
NAME="TESTING-REPORT"
-></A
->5.2. Test reports</H2
+>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"
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Update the Webserver</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Privoxy Developer Manual"
HREF="index.html"><LINK
CLASS="SECT1"
><A
NAME="WEBSERVER-UPDATE"
-></A
->7. Update the Webserver</H1
+>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,
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Configuration</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Privoxy Frequently Asked Questions"
HREF="index.html"><LINK
CLASS="SECT1"
><A
NAME="CONFIGURATION"
-></A
->3. Configuration</H1
+>3. Configuration</A
+></H1
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
NAME="GETUPDATES"
-></A
->3.1. Where can I get updated Actions Files?</H3
+>3.1. Where can I get updated Actions Files?</A
+></H3
><P
> Based on your feedback and the continuing development, updated actions files will be
made available on the <A
CLASS="SECT2"
><A
NAME="NEWCONFIG"
-></A
->3.2. Can I use my old config files?</H3
+>3.2. Can I use my old config files?</A
+></H3
><P
> The syntax, number, and purpose of configuration files has substantially
changed from <SPAN
><H3
CLASS="SECT2"
><A
-NAME="AEN275"
-></A
+NAME="AEN312"
>3.3. What is an <SPAN
CLASS="QUOTE"
>"actions"</SPAN
-> file?</H3
+> file?</A
+></H3
><P
> <A
HREF="../user-manual/actions-file.html"
CLASS="SECT2"
><A
NAME="ACTIONSS"
-></A
>3.4. The <SPAN
CLASS="QUOTE"
>"actions"</SPAN
some of these <SPAN
CLASS="QUOTE"
>"actions"</SPAN
->.</H3
+>.</A
+></H3
><P
> For a comprehensive discussion of the actions concept, please refer
to the <A
><H3
CLASS="SECT2"
><A
-NAME="AEN294"
-></A
+NAME="AEN331"
>3.5. How are actions files configured? What is the easiest
-way to do this?</H3
+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
><H3
CLASS="SECT2"
><A
-NAME="AEN302"
-></A
+NAME="AEN339"
>3.6. There are several different <SPAN
CLASS="QUOTE"
>"actions"</SPAN
> files. What are
-the differences?</H3
+the differences?</A
+></H3
><P
> As of <SPAN
CLASS="APPLICATION"
CLASS="SECT2"
><A
NAME="YAHOO"
-></A
->3.7. How can I make my Yahoo/Hotmail/GMX account work?</H3
+>3.7. How can I make my Yahoo/Hotmail/GMX account work?</A
+></H3
><P
> The default configuration shouldn't impact the usability of any of these services.
It will, however, make all cookies temporary, so that your browser will forget your
CLASS="SECT2"
><A
NAME="CONFIGFILES"
-></A
>3.8. What's the difference between the
<SPAN
CLASS="QUOTE"
> and <SPAN
CLASS="QUOTE"
>"Adventuresome"</SPAN
-> defaults?</H3
+> defaults?</A
+></H3
><P
> Configuring <SPAN
CLASS="APPLICATION"
CLASS="SECT2"
><A
NAME="BROWSECONFIG"
-></A
>3.9. Why can I change the configuration
-with a browser? Does that not raise security issues?</H3
+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
a LAN), you will probably want to turn the web-based editor and remote toggle
features off by setting <SPAN
CLASS="QUOTE"
->"<TT
+>"<VAR
CLASS="LITERAL"
><A
HREF="../user-manual/config.html#ENABLE-EDIT-ACTIONS"
TARGET="_top"
>enable-edit-actions</A
>
- 0</TT
+ 0</VAR
>"</SPAN
> and <SPAN
CLASS="QUOTE"
->"<TT
+>"<VAR
CLASS="LITERAL"
><A
HREF="../user-manual/config.html#ENABLE-REMOTE-TOGGLE"
TARGET="_top"
>enable-remote-toggle</A
>
- 0</TT
+ 0</VAR
>"</SPAN
> in the <A
HREF="../user-manual/config.html"
><H3
CLASS="SECT2"
><A
-NAME="AEN367"
-></A
+NAME="AEN404"
>3.10. What is the <TT
CLASS="FILENAME"
>default.filter</TT
> file? What is a <SPAN
CLASS="QUOTE"
>"filter"</SPAN
->?</H3
+>?</A
+></H3
><P
> The <A
HREF="../user-manual/filter-file.html"
<A
HREF="../user-manual/actions-file.html#FILTER"
TARGET="_top"
-><TT
+><VAR
CLASS="LITERAL"
->filter</TT
+>filter</VAR
>
action</A
> in one of the actions files. Filtering is automatically
><H3
CLASS="SECT2"
><A
-NAME="AEN383"
-></A
+NAME="AEN420"
>3.11. How can I set up <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> to act as a proxy for my
- LAN?</H3
+ LAN?</A
+></H3
><P
> By default, <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> only responds to requests
- from <TT
+ from <VAR
CLASS="LITERAL"
->127.0.0.1</TT
+>127.0.0.1</VAR
> (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
+ the <VAR
CLASS="LITERAL"
><A
HREF="../user-manual/config.html#LISTEN-ADDRESS"
TARGET="_top"
>listen-address</A
-></TT
+></VAR
>
option, which may be commented out with a <SPAN
CLASS="QUOTE"
><H3
CLASS="SECT2"
><A
-NAME="AEN409"
-></A
->3.12. Instead of ads, now I get a checkerboard pattern. I don't want to see anything.</H3
+NAME="AEN446"
+>3.12. 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
+><VAR
CLASS="LITERAL"
->set-image-blocker</TT
+>set-image-blocker</VAR
>
action</A
>. You have the choice of a checkerboard pattern, a transparent 1x1 GIF
>"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
+ whose URLs match both a <VAR
CLASS="LITERAL"
><A
HREF="../user-manual/actions-file.html#HANDLE-AS-IMAGE"
TARGET="_top"
>handle-as-image</A
-></TT
+></VAR
>
<SPAN
CLASS="emphasis"
CLASS="EMPHASIS"
>and</I
></SPAN
-> <TT
+> <VAR
CLASS="LITERAL"
><A
HREF="../user-manual/actions-file.html#BLOCK"
TARGET="_top"
>block</A
-></TT
+></VAR
> 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
+><VAR
CLASS="LITERAL"
->set-image-blocker</TT
+>set-image-blocker</VAR
>
action</A
> to <SPAN
><H3
CLASS="SECT2"
><A
-NAME="AEN426"
-></A
->3.13. Why would anybody want to see a checkerboard pattern?</H3
+NAME="AEN463"
+>3.13. Why would anybody want to see a checkerboard pattern?</A
+></H3
><P
> Remember that <A
HREF="general.html#WHATSANAD"
><H3
CLASS="SECT2"
><A
-NAME="AEN431"
-></A
+NAME="AEN468"
>3.14. I see some images being replaced by a text
-instead of the checkerboard image. Why and how do I get rid of this?</H3
+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
CLASS="SECT2"
><A
NAME="SRVANY"
-></A
>3.15. Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> run as a service
-on Win2K/NT?</H3
+on Win2K/NT?</A
+></H3
><P
> Yes, it can run as a system service using <B
CLASS="COMMAND"
CLASS="SECT2"
><A
NAME="OTHERPROXY"
-></A
>3.16. How can I make <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
proxies like <SPAN
CLASS="APPLICATION"
>Squid</SPAN
->?</H3
+>?</A
+></H3
><P
> This can be done and is often useful to combine the benefits of
<SPAN
CLASS="SECT2"
><A
NAME="PORT-80"
-></A
>3.17. Can I just set <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> to use port 80
-and thus avoid individual browser configuration?</H3
+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="SECT2"
><A
NAME="TRANSPARENT"
-></A
>3.18. Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> run as a <SPAN
CLASS="QUOTE"
>"transparent"</SPAN
-> proxy?</H3
+> proxy?</A
+></H3
><P
> No, <SPAN
CLASS="APPLICATION"
CLASS="SECT2"
><A
NAME="OUTLOOK"
-></A
>3.19. How can I configure <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
CLASS="APPLICATION"
>Outlook
Express</SPAN
->?</H3
+>?</A
+></H3
><P
> <SPAN
CLASS="APPLICATION"
CLASS="SECT2"
><A
NAME="OUTLOOK-MORE"
-></A
->3.20. How can I have separate rules just for HTML mail?</H3
+>3.20. How can I have separate rules just for HTML mail?</A
+></H3
><P
> The short answer is, you can't. <SPAN
CLASS="APPLICATION"
CLASS="SECT2"
><A
NAME="ALLOW-COOKIES"
-></A
->3.21. How can I allow permanent cookies for my trusted sites?</H3
+>3.21. 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
to cookies. But there may be cases where we want cookies to last.</P
><P
> To disable all cookie actions, so that cookies are allowed unrestricted,
- both in and out, for <TT
+ both in and out, for <VAR
CLASS="LITERAL"
->example.com</TT
+>example.com</VAR
>: </P
><P
> <TABLE
>user.action</TT
>
includes an alias for this situation, called
- <TT
+ <VAR
CLASS="LITERAL"
->allow-cookies</TT
+>allow-cookies</VAR
>.</P
></DIV
></DIV
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Contacting the developers, Bug Reporting and Feature Requests</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Privoxy Frequently Asked Questions"
HREF="index.html"><LINK
CLASS="SECT1"
><A
NAME="CONTACT"
-></A
->6. Contacting the developers, Bug Reporting and Feature Requests</H1
+>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="SECT2"
><A
NAME="CONTACT-SUPPORT"
-></A
->6.1. Get Support</H2
+>6.1. Get Support</A
+></H2
><P
-> For casual users, our support forum at
+> For casual users, our
<A
-HREF="http://sourceforge.net/"
+HREF="http://sourceforge.net/tracker/?group_id=11118&atid=211118"
TARGET="_top"
->SourceForge</A
+>support forum at SourceForge</A
>
is probably best suited:
<A
CLASS="SECT2"
><A
NAME="CONTACT-BUGS"
-></A
->6.2. Report Bugs</H2
+>6.2. Report Bugs</A
+></H2
><P
> Please report all bugs <SPAN
CLASS="emphasis"
CLASS="SECT2"
><A
NAME="CONTACT-FEATURE"
-></A
->6.3. Request New Features</H2
+>6.3. 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
CLASS="SECT2"
><A
NAME="CONTACT-ADS"
-></A
->6.4. Report Ads or Other Actions-Related Problems</H2
+>6.4. Report Ads or Other Actions-Related Problems</A
+></H2
><P
> Please send feedback on ads that slipped through, innocent images that were blocked,
and any other problems relating to the <TT
CLASS="SECT2"
><A
NAME="CONTACT-OTHER"
-></A
->6.5. Other</H2
+>6.5. Other</A
+></H2
><P
>For any other issues, feel free to use the mailing lists. Technically interested users
and people who wish to contribute to the project are also welcome on the developers list!
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Privoxy Copyright, License and History</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Privoxy Frequently Asked Questions"
HREF="index.html"><LINK
CLASS="SECT1"
><A
NAME="COPYRIGHT"
-></A
->7. Privoxy Copyright, License and History</H1
+>7. Privoxy Copyright, License and History</A
+></H1
><P
-> Copyright © 2001 - 2003 by Privoxy Developers <TT
+> Copyright © 2001 - 2004 by Privoxy Developers <CODE
CLASS="EMAIL"
><<A
HREF="mailto:developers@privoxy.org"
>developers@privoxy.org</A
->></TT
+>></CODE
></P
><P
> Some source code is based on code Copyright © 1997 by Anonymous Coders
><H2
CLASS="SECT2"
><A
-NAME="AEN884"
-></A
->7.1. License</H2
+NAME="AEN1014"
+>7.1. License</A
+></H2
><P
> <SPAN
CLASS="APPLICATION"
><H2
CLASS="SECT2"
><A
-NAME="AEN900"
-></A
->7.2. History</H2
+NAME="AEN1030"
+>7.2. History</A
+></H2
><P
> In the beginning, there was the
<A
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>General Information</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Privoxy Frequently Asked Questions"
HREF="index.html"><LINK
CLASS="SECT1"
><A
NAME="GENERAL"
-></A
->1. General Information</H1
+>1. General Information</A
+></H1
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
NAME="NEWJB"
-></A
>1.1. What is this new version of <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
->?</H3
+>?</A
+></H3
><P
> In the beginning, there was the
<A
CLASS="SECT2"
><A
NAME="AEN45"
-></A
>1.2. Why <SPAN
CLASS="QUOTE"
>"Privoxy"</SPAN
->? Why a name change at all?</H3
+>? Why a name change at all?</A
+></H3
><P
> <SPAN
CLASS="APPLICATION"
CLASS="SECT2"
><A
NAME="DIFFERS"
-></A
>1.3. How does <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
from the old <SPAN
CLASS="APPLICATION"
>Junkbuster?</SPAN
+></A
></H3
><P
> <SPAN
CLASS="SECT2"
><A
NAME="PROXYMORON"
-></A
>1.4. What is a <SPAN
CLASS="QUOTE"
>"proxy"</SPAN
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> work?</H3
+> work?</A
+></H3
><P
> A web proxy is a service, based on a software such as <SPAN
CLASS="APPLICATION"
CLASS="SECT2"
><A
NAME="WHATSANAD"
-></A
>1.5. How does <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> know what is
-an ad, and what is not?</H3
+an ad, and what is not?</A
+></H3
><P
> <SPAN
CLASS="APPLICATION"
CLASS="SECT2"
><A
NAME="AEN136"
-></A
>1.6. Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> make mistakes?
-This does not sound very scientific.</H3
+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. There is a good chance
- you may run into such a situation at some point. It is tricky writing rules to
+ 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
><H3
CLASS="SECT2"
><A
+NAME="AEN143"
+>1.7. Will I have to configure <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ before I can use it?</A
+></H3
+><P
+> No, not really. The default installation should give you a good starting
+ point, and block <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>most</I
+></SPAN
+> unwanted content.</P
+><P
+> But 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 would
+ 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="BROWSERS2"
-></A
->1.7. My browser does the same things as
+>1.8. My browser does the same things as
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> at all?</H3
+> at all?</A
+></H3
><P
> Modern browsers do indeed have <SPAN
CLASS="emphasis"
CLASS="SECT2"
><A
NAME="LICENSE"
-></A
->1.8. Is there is a license or fee? What about a
-warranty? Registration?</H3
+>1.9. Is there is a license or fee? What about a
+warranty? Registration?</A
+></H3
><P
> <SPAN
CLASS="APPLICATION"
CLASS="SECT2"
><A
NAME="JOINTEAM"
-></A
->1.9. I would like to help you, what do I do?</H3
+>1.10. I would like to help you, what do I do?</A
+></H3
><DIV
CLASS="SECT3"
><H4
CLASS="SECT3"
><A
NAME="JOINTEAM-MONEY"
-></A
->1.9.1. Money Money Money</H4
+>1.10.1. Money Money Money</A
+></H4
><P
> We, of course, welcome donations and could use money for domain registering,
buying software to test <SPAN
CLASS="SECT3"
><A
NAME="JOINTEAM-SOFTWARE"
-></A
->1.9.2. Software</H4
+>1.10.2. Software</A
+></H4
><P
> If you are a vendor of a web-related software like a browser, web server
or proxy, and would like us to ensure that <SPAN
CLASS="SECT3"
><A
NAME="JOINTEAM-WORK"
-></A
->1.9.3. You want to work with us?</H4
+>1.10.3. You want to work with us?</A
+></H4
><P
> Well, helping the team is always a good idea. We welcome new developers,
packaging gurus or documentation writers. Simply <A
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Privoxy Frequently Asked Questions</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="NEXT"
TITLE="General Information"
HREF="general.html"><LINK
CLASS="TITLE"
><A
NAME="AEN2"
-></A
->Privoxy Frequently Asked Questions</H1
+>Privoxy Frequently Asked Questions</A
+></H1
><P
CLASS="PUBDATE"
> <SUB
> <A
HREF="copyright.html"
>Copyright</A
-> © 2001, 2002 by
+> © 2001-2004 by
<A
HREF="http://www.privoxy.org"
TARGET="_top"
><BR></P
><P
CLASS="PUBDATE"
->$Id: faq.sgml,v 1.61.2.28 2003/03/18 19:37:21 oes Exp $<BR></P
+>$Id: faq.sgml,v 1.61.2.40 2004/01/30 17:00:33 oes Exp $<BR></P
><DIV
><DIV
CLASS="ABSTRACT"
+><P
+></P
><A
NAME="AEN9"
></A
><P
-></P
-><P
> This FAQ gives quick answers to frequently asked questions about
<A
HREF="http://www.privoxy.org/"
CLASS="APPLICATION"
>Privoxy</SPAN
> is a web proxy with advanced filtering
- capabilities for protecting privacy, filtering web page content, managing
+ capabilities for protecting privacy, modifying web page content, managing
cookies, controlling access, and removing ads, banners, pop-ups and other
obnoxious Internet junk. <SPAN
CLASS="APPLICATION"
> (tm).</P
><P
> Please note that this document is constantly evolving. This copy represents
- the state at the release of version 3.0.2.
+ the state at the release of version 3.0.3.
You can find the latest version of the document at <A
HREF="http://www.privoxy.org/faq/"
TARGET="_top"
></DT
><DT
>1.7. <A
+HREF="general.html#AEN143"
+>Will I have to configure <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ before I can use it?</A
+></DT
+><DT
+>1.8. <A
HREF="general.html#BROWSERS2"
>My browser does the same things as
<SPAN
> at all?</A
></DT
><DT
->1.8. <A
+>1.9. <A
HREF="general.html#LICENSE"
>Is there is a license or fee? What about a
warranty? Registration?</A
></DT
><DT
->1.9. <A
+>1.10. <A
HREF="general.html#JOINTEAM"
>I would like to help you, what do I do?</A
></DT
><DD
><DL
><DT
->1.9.1. <A
+>1.10.1. <A
HREF="general.html#JOINTEAM-MONEY"
>Money Money Money</A
></DT
><DT
->1.9.2. <A
+>1.10.2. <A
HREF="general.html#JOINTEAM-SOFTWARE"
>Software</A
></DT
><DT
->1.9.3. <A
+>1.10.3. <A
HREF="general.html#JOINTEAM-WORK"
>You want to work with us?</A
></DT
></DT
><DT
>2.5. <A
-HREF="installation.html#AEN218"
+HREF="installation.html#AEN226"
>I just installed <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>, and nothing is happening.
All the ads are there. What's wrong?</A
></DT
+><DT
+>2.8. <A
+HREF="installation.html#NOTUSED"
+>I get a <SPAN
+CLASS="QUOTE"
+>"Privoxy is not being used"</SPAN
+> dummy page although
+<SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is running and being used.</A
+></DT
></DL
></DD
><DT
></DT
><DT
>3.3. <A
-HREF="configuration.html#AEN275"
+HREF="configuration.html#AEN312"
>What is an <SPAN
CLASS="QUOTE"
>"actions"</SPAN
></DT
><DT
>3.5. <A
-HREF="configuration.html#AEN294"
+HREF="configuration.html#AEN331"
>How are actions files configured? What is the easiest
way to do this?</A
></DT
><DT
>3.6. <A
-HREF="configuration.html#AEN302"
+HREF="configuration.html#AEN339"
>There are several different <SPAN
CLASS="QUOTE"
>"actions"</SPAN
></DT
><DT
>3.10. <A
-HREF="configuration.html#AEN367"
+HREF="configuration.html#AEN404"
>What is the <TT
CLASS="FILENAME"
>default.filter</TT
></DT
><DT
>3.11. <A
-HREF="configuration.html#AEN383"
+HREF="configuration.html#AEN420"
>How can I set up <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></DT
><DT
>3.12. <A
-HREF="configuration.html#AEN409"
+HREF="configuration.html#AEN446"
>Instead of ads, now I get a checkerboard pattern. I don't want to see anything.</A
></DT
><DT
>3.13. <A
-HREF="configuration.html#AEN426"
+HREF="configuration.html#AEN463"
>Why would anybody want to see a checkerboard pattern?</A
></DT
><DT
>3.14. <A
-HREF="configuration.html#AEN431"
+HREF="configuration.html#AEN468"
>I see some images being replaced by a text
instead of the checkerboard image. Why and how do I get rid of this?</A
></DT
><DL
><DT
>4.1. <A
-HREF="misc.html#AEN500"
+HREF="misc.html#AEN537"
>How much does <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></DT
><DT
>4.7. <A
-HREF="misc.html#AEN560"
+HREF="misc.html#AEN598"
>Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></DT
><DT
>4.8. <A
-HREF="misc.html#AEN571"
+HREF="misc.html#AEN609"
>Might some things break because header information or
content is being altered?</A
></DT
><DT
>4.9. <A
-HREF="misc.html#AEN582"
+HREF="misc.html#AEN620"
>Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></DT
><DT
>4.10. <A
-HREF="misc.html#AEN592"
+HREF="misc.html#AEN630"
>What about as a firewall? Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></DT
><DT
>4.11. <A
-HREF="misc.html#AEN598"
+HREF="misc.html#AEN636"
>I have large empty spaces / a checkerboard pattern now where
ads used to be. Why?</A
></DT
><DT
>4.12. <A
-HREF="misc.html#AEN603"
+HREF="misc.html#AEN641"
>How can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></DT
><DT
>4.13. <A
-HREF="misc.html#AEN618"
+HREF="misc.html#AEN656"
><SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></DT
><DT
>4.18. <A
+HREF="misc.html#DOWNLOADS2"
+>I just downloaded a Perl script, and <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+altered it! Yikes, what is wrong!</A
+></DT
+><DT
+>4.19. <A
HREF="misc.html#SEEALSO"
>Where can I find more information about <SPAN
CLASS="APPLICATION"
and related issues?</A
></DT
><DT
->4.19. <A
+>4.20. <A
HREF="misc.html#MICROSUCK"
>I've noticed that Privoxy changes <SPAN
CLASS="QUOTE"
><DL
><DT
>5.1. <A
-HREF="trouble.html#AEN741"
+HREF="trouble.html#AEN801"
>I just upgraded and am getting <SPAN
CLASS="QUOTE"
>"connection refused"</SPAN
></DT
><DT
>5.2. <A
-HREF="trouble.html#AEN754"
+HREF="trouble.html#AEN814"
>I just added a new rule, but the steenkin ad is
still getting through. How?</A
></DT
></DT
><DT
>5.8. <A
+HREF="trouble.html#OSXIMAGES"
+>In Mac OSX Panther (10.3), images often fail to load and/or I
+ experience random delays in page loading. I'm using
+ <VAR
+CLASS="LITERAL"
+>localhost</VAR
+> as my browser's proxy setting.</A
+></DT
+><DT
+>5.9. <A
HREF="trouble.html#BLANKPAGE"
>I get a completely blank page at one site. <SPAN
CLASS="QUOTE"
> the page loads fine.</A
></DT
><DT
->5.9. <A
+>5.10. <A
HREF="trouble.html#ERROR503"
>Why am I getting a 503 Error (WSAECONNREFUSED) on every page?</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 <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>, 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 <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ 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
></DL
></DD
><DT
><DL
><DT
>7.1. <A
-HREF="copyright.html#AEN884"
+HREF="copyright.html#AEN1014"
>License</A
></DT
><DT
>7.2. <A
-HREF="copyright.html#AEN900"
+HREF="copyright.html#AEN1030"
>History</A
></DT
></DL
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Installation</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Privoxy Frequently Asked Questions"
HREF="index.html"><LINK
CLASS="SECT1"
><A
NAME="INSTALLATION"
-></A
->2. Installation</H1
+>2. Installation</A
+></H1
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
NAME="WHICHBROWSERS"
-></A
>2.1. Which browsers are supported by <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
->?</H3
+>?</A
+></H3
><P
> Any browser that can be configured to use a proxy, which
should be virtually all browsers. Direct browser support is not necessary
CLASS="SECT2"
><A
NAME="WHICHOS"
-></A
->2.2. Which operating systems are supported?</H3
+>2.2. Which operating systems are supported?</A
+></H3
><P
> At present, <SPAN
CLASS="APPLICATION"
CLASS="SECT2"
><A
NAME="EMAIL-CLIENT"
-></A
>2.3. Can I use <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> with my email client?</H3
+> 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
CLASS="SECT2"
><A
NAME="NEWINSTALL"
-></A
>2.4. Can I install
<SPAN
CLASS="APPLICATION"
> over <SPAN
CLASS="APPLICATION"
>Junkbuster</SPAN
->?</H3
+>?</A
+></H3
><P
> We recommend you un-install <SPAN
CLASS="APPLICATION"
><H3
CLASS="SECT2"
><A
-NAME="AEN218"
-></A
+NAME="AEN226"
>2.5. I just installed <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>. Is there anything
-special I have to do now?</H3
+special I have to do now?</A
+></H3
><P
> All browsers must be told to use <SPAN
CLASS="APPLICATION"
CLASS="SECT2"
><A
NAME="LOCALHOST"
-></A
>2.6. What is the proxy address of <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
->?</H3
+>?</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
+ networked computer on a LAN), the proxy will be on <VAR
CLASS="LITERAL"
->127.0.0.1</TT
+>127.0.0.1</VAR
>
(sometimes referred to as <SPAN
CLASS="QUOTE"
CLASS="APPLICATION"
>Privoxy</SPAN
> does not currently handle
- protocols such as FTP, SMTP, IM, IRC, ICQ, or other Internet
- protocols.
+ any other protocols such as FTP, SMTP, IM, IRC, ICQ, etc.
</P
></DIV
><DIV
CLASS="SECT2"
><A
NAME="NOTHING"
-></A
>2.7. I just installed <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>, and nothing is happening.
-All the ads are there. What's wrong?</H3
+All the ads are there. What's wrong?</A
+></H3
><P
> Did you configure your browser to use <SPAN
CLASS="APPLICATION"
> is running, and your browser
is correctly configured by entering the special URL:
<A
-HREF="http://config.privoxy.org/"
+HREF="http://p.p/"
TARGET="_top"
->http://config.privoxy.org/</A
->.
+>http://p.p/</A
+>.
+
This should take you to a page titled <SPAN
CLASS="QUOTE"
>"This is Privoxy.."</SPAN
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"
+>2.8. I get a <SPAN
+CLASS="QUOTE"
+>"Privoxy is not being used"</SPAN
+> dummy page although
+<SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> 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. As an
+ example, <SPAN
+CLASS="APPLICATION"
+>Mozilla</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
>.</P
></DIV
></DIV
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Miscellaneous</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Privoxy Frequently Asked Questions"
HREF="index.html"><LINK
CLASS="SECT1"
><A
NAME="MISC"
-></A
->4. Miscellaneous</H1
+>4. Miscellaneous</A
+></H1
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="AEN500"
-></A
+NAME="AEN537"
>4.1. How much does <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> slow my browsing down? This
-has to add extra time to browsing.</H3
+has to add extra time to browsing.</A
+></H3
><P
> 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 being displayed.
> <SPAN
CLASS="QUOTE"
>"Filtering"</SPAN
-> content via the <TT
+> content via the <VAR
CLASS="LITERAL"
><A
HREF="../user-manual/actions-file.html#FILTER"
TARGET="_top"
>filter</A
-></TT
+></VAR
> or
- <TT
+ <VAR
CLASS="LITERAL"
><A
HREF="../user-manual/actions-file.html#DEANIMATE-GIFS"
TARGET="_top"
>deanimate-gifs</A
-></TT
+></VAR
>
actions may cause a perceived slowdown, since the entire document needs to be buffered
before displaying. See below.</P
CLASS="SECT2"
><A
NAME="LOADINGTIMES"
-></A
>4.2. I noticed considerable
-delays in page requests compared to the old Junkbuster. What's wrong?</H3
+delays in page requests compared to the old Junkbuster. What's wrong?</A
+></H3
><P
-> If you use any <TT
+> If you use any <VAR
CLASS="LITERAL"
><A
HREF="../user-manual/actions-file.html#FILTER"
TARGET="_top"
>filter</A
-></TT
+></VAR
> action,
- such as filtering banners by size, web-bugs etc, or the <TT
+ such as filtering banners by size, web-bugs etc, or the <VAR
CLASS="LITERAL"
><A
HREF="../user-manual/actions-file.html#DEANIMATE-GIFS"
TARGET="_top"
>deanimate-gifs</A
-></TT
+></VAR
>
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
noticeable on slow dialup connections.
</P
><P
-> Filtering is automatically disabled for inappropriate MIME types. </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"
CLASS="SECT2"
><A
NAME="CONFIGURL"
-></A
>4.3. What are "http://config.privoxy.org/" and
-"http://p.p/"?</H3
+"http://p.p/"?</A
+></H3
><P
> <A
HREF="http://config.privoxy.org/"
>Privoxy</SPAN
>, http://example.com/show-proxy-args and http://i.j.b/,
are no longer supported. If you still use such an old version, you should really consider
- upgrading to 3.0.2.</P
+ upgrading to 3.0.3.</P
></DIV
><DIV
CLASS="SECT2"
CLASS="SECT2"
><A
NAME="BLOCKLIST"
-></A
->4.4. Do you still maintain the blocklists?</H3
+>4.4. Do you still maintain the blocklists?</A
+></H3
><P
> No. The patterns for blocking now reside (among other things) in the <A
HREF="../user-manual/actions-file.html"
CLASS="SECT2"
><A
NAME="NEWADS"
-></A
->4.5. How can I submit new ads?</H3
+>4.5. How can I submit new ads?</A
+></H3
><P
>Yes, absolutely! Please see the <A
HREF="contact.html"
CLASS="SECT2"
><A
NAME="IP"
-></A
->4.6. How can I hide my IP address?</H3
+>4.6. How can I hide my IP address?</A
+></H3
><P
> If you run both the browser and the proxy locally, you cannot hide your IP
address with <SPAN
><H3
CLASS="SECT2"
><A
-NAME="AEN560"
-></A
+NAME="AEN598"
>4.7. Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> guarantee I am anonymous?</H3
+> guarantee I am anonymous?</A
+></H3
><P
> No. Your chances of remaining anonymous are greatly improved, but unless you
are an expert on Internet security it would be safest to assume that
><H3
CLASS="SECT2"
><A
-NAME="AEN571"
-></A
+NAME="AEN609"
>4.8. Might some things break because header information or
-content is being altered?</H3
+content is being altered?</A
+></H3
><P
> Definitely. More and more sites use HTTP header content to decide what to
display and how to display it. There is many ways that this can be handled,
><H3
CLASS="SECT2"
><A
-NAME="AEN582"
-></A
+NAME="AEN620"
>4.9. Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
CLASS="QUOTE"
>"caching"</SPAN
> proxy to
-speed up web browsing?</H3
+speed up web browsing?</A
+></H3
><P
> No, it does not have this ability at all. You want something like
<A
><H3
CLASS="SECT2"
><A
-NAME="AEN592"
-></A
+NAME="AEN630"
>4.10. What about as a firewall? Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> protect me?</H3
+> protect me?</A
+></H3
><P
> Not in the way you mean, or in the way a true firewall can.
<SPAN
><H3
CLASS="SECT2"
><A
-NAME="AEN598"
-></A
+NAME="AEN636"
>4.11. I have large empty spaces / a checkerboard pattern now where
-ads used to be. Why?</H3
+ads used to be. Why?</A
+></H3
><P
> It would be technically possible eliminate the banners in a way that frees
their screen estate in many cases, by doing all banner blocking with filters,
><H3
CLASS="SECT2"
><A
-NAME="AEN603"
-></A
+NAME="AEN641"
>4.12. How can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> filter Secure (HTTPS) URLs?</H3
+> 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="QUOTE"
>"Content cookies"</SPAN
> (those that are embedded in the actual HTML or
- JS page content, see <TT
+ JS page content, see <VAR
CLASS="LITERAL"
><A
HREF="../user-manual/actions-file.html#FILTER-CONTENT-COOKIES"
TARGET="_top"
>filter{content-cookies}</A
-></TT
+></VAR
>),
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
><H3
CLASS="SECT2"
><A
-NAME="AEN618"
-></A
+NAME="AEN656"
>4.13. <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
CLASS="QUOTE"
>"server"</SPAN
>. How
-secure is it? Do I need to take any special precautions?</H3
+secure is it? Do I need to take any special precautions?</A
+></H3
><P
> There are no known exploits that might affect
<SPAN
CLASS="SECT2"
><A
NAME="TURNOFF"
-></A
>4.14. How can I temporarily disable <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
->?</H3
+>?</A
+></H3
><P
> The easiest way is to access <SPAN
CLASS="APPLICATION"
CLASS="SECT2"
><A
NAME="REALLYOFF"
-></A
>4.15. When <SPAN
CLASS="QUOTE"
>"disabled"</SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> totally
-out of the picture?</H3
+out of the picture?</A
+></H3
><P
> No, this just means all filtering and actions are disabled.
<SPAN
CLASS="SECT2"
><A
NAME="CRUNCH"
-></A
>4.16. My logs show <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
ads, but also its own CGI pages. What is a <SPAN
CLASS="QUOTE"
>"crunch"</SPAN
->?</H3
+>?</A
+></H3
><P
> A <SPAN
CLASS="QUOTE"
CLASS="SECT2"
><A
NAME="DOWNLOADS"
-></A
>4.17. Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> effect files that I download
-from a webserver? FTP server?</H3
+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
+>. If there is a match for a <VAR
CLASS="LITERAL"
><A
HREF="../user-manual/actions-file.html#BLOCK"
TARGET="_top"
>block</A
-></TT
+></VAR
> pattern,
- it will still be blocked, and of course this is obvious. Filtering is
- potentially more of a concern since the results are not always so obvious.</P
+ 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
+ advertizement, 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"
CLASS="APPLICATION"
>Privoxy</SPAN
> knows to ignore these where
- appropriate. It is possible, however, that documents that are of an unknown
- type (generally assumed to be <SPAN
+ 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
->) will 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 very rare) cases.</P
+>) 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 of
+ <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 Document 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 let's 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
- protocols.</P
+ protocols, so please don't even try.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="DOWNLOADS2"
+>4.18. I just downloaded a Perl script, and <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+altered it! Yikes, what is wrong!</A
+></H3
+><P
+> Please read above.</P
></DIV
><DIV
CLASS="SECT2"
CLASS="SECT2"
><A
NAME="SEEALSO"
-></A
->4.18. Where can I find more information about <SPAN
+>4.19. Where can I find more information about <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>
-and related issues?</H3
+and related issues?</A
+></H3
><P
> Other references and sites of interest to <SPAN
CLASS="APPLICATION"
CLASS="SECT2"
><A
NAME="MICROSUCK"
-></A
->4.19. I've noticed that Privoxy changes <SPAN
+>4.20. I've noticed that Privoxy changes <SPAN
CLASS="QUOTE"
>"Microsoft"</SPAN
> to
<SPAN
CLASS="QUOTE"
>"MicroSuck"</SPAN
->! Why are you manipulating my browsing?</H3
+>! 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
+>"<VAR
CLASS="LITERAL"
->fun</TT
+>fun</VAR
>"</SPAN
> filter which
is clearly labeled <SPAN
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Troubleshooting</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Privoxy Frequently Asked Questions"
HREF="index.html"><LINK
CLASS="SECT1"
><A
NAME="TROUBLE"
-></A
->5. Troubleshooting</H1
+>5. Troubleshooting</A
+></H1
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="AEN741"
-></A
+NAME="AEN801"
>5.1. I just upgraded and am getting <SPAN
CLASS="QUOTE"
>"connection refused"</SPAN
>
-with every web page?</H3
+with every web page?</A
+></H3
><P
> Either <SPAN
CLASS="APPLICATION"
change the <A
HREF="../user-manual/config.html#LISTEN-ADDRESS"
TARGET="_top"
-><TT
+><VAR
CLASS="LITERAL"
->listen-address</TT
+>listen-address</VAR
>
option</A
> in <SPAN
><H3
CLASS="SECT2"
><A
-NAME="AEN754"
-></A
+NAME="AEN814"
>5.2. I just added a new rule, but the steenkin ad is
-still getting through. How?</H3
+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
CLASS="SECT2"
><A
NAME="BADSITE"
-></A
>5.3. One of my favorite sites does not work with <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>.
-What can I do?</H3
+What can I do?</A
+></H3
><P
> First verify that it is indeed a <SPAN
CLASS="APPLICATION"
> 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
+ site to a <VAR
CLASS="LITERAL"
->{ fragile }</TT
+>{ fragile }</VAR
> section in <TT
CLASS="FILENAME"
>user.action</TT
CLASS="SECT2"
><A
NAME="DUN"
-></A
>5.4. After installing <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>, I have to log in
-every time I start IE. What gives?</H3
+every time I start IE. What gives?</A
+></H3
><P
> This is a quirk that effects the installation of
<SPAN
CLASS="SECT2"
><A
NAME="FTP"
-></A
>5.5. I cannot connect to any FTP sites. <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>
- seems to be blocking me.</H3
+ seems to be blocking me.</A
+></H3
><P
> <SPAN
CLASS="APPLICATION"
CLASS="APPLICATION"
>Privoxy</SPAN
>
- as an FTP proxy. The same is true for any protocol other than HTTP or HTTPS.
+ as an FTP proxy. The same is true for <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>any protocol other than HTTP
+ or HTTPS</I
+></SPAN
+>.
</P
><P
> Most browsers understand FTP as well as HTTP. If you connect to a site, with
- a URL like <TT
+ a URL like <VAR
CLASS="LITERAL"
->ftp://ftp.example.com</TT
+>ftp://ftp.example.com</VAR
>, your browser is making
an FTP connection, and not a HTTP connection. So while your browser may
speak FTP, <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 silently enable <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.
+ </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"
CLASS="SECT2"
><A
NAME="OSXIE"
-></A
>5.6. In Mac OSX, I can't configure Microsoft Internet Explorer to use
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> as the HTTP proxy.</H3
+> 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
+ is checked and enter <VAR
CLASS="LITERAL"
->127.0.0.1</TT
+>127.0.0.1</VAR
> in the entry field.
- Enter <TT
+ Enter <VAR
CLASS="LITERAL"
->8118</TT
+>8118</VAR
> in the Port field. The next time you start
IE, it should reflect these values.
</P
CLASS="SECT2"
><A
NAME="OSXUNINSTALL"
-></A
>5.7. In Mac OSX, 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.</H3
+ empty the trash.</A
+></H3
><P
> Just dragging the <SPAN
CLASS="APPLICATION"
><H3
CLASS="SECT2"
><A
+NAME="OSXIMAGES"
+>5.8. In Mac OSX Panther (10.3), images often fail to load and/or I
+ experience random delays in page loading. I'm using
+ <VAR
+CLASS="LITERAL"
+>localhost</VAR
+> as my browser's proxy setting.</A
+></H3
+><P
+> We believe this is due to an IPv6-related bug in OSX, but don't fully
+ understand the issue yet. In any case, changing the proxy setting to
+ <VAR
+CLASS="LITERAL"
+>127.0.0.1</VAR
+> instead of <VAR
+CLASS="LITERAL"
+>localhost</VAR
+>
+ works around the problem.
+ </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
NAME="BLANKPAGE"
-></A
->5.8. I get a completely blank page at one site. <SPAN
+>5.9. I get a completely blank page at one site. <SPAN
CLASS="QUOTE"
>"View Source"</SPAN
>
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> the page loads fine.</H3
+> the page loads fine.</A
+></H3
><P
> Chances are that the site suffers from a bug in
<A
</P
><P
> To find out if this is in fact the source of the problem, try adding
- the site to a <TT
+ the site to a <VAR
CLASS="LITERAL"
->-prevent-compression</TT
+>-prevent-compression</VAR
> section in
<TT
CLASS="FILENAME"
CLASS="SECT2"
><A
NAME="ERROR503"
-></A
->5.9. Why am I getting a 503 Error (WSAECONNREFUSED) on every page?</H3
+>5.10. Why am I getting a 503 Error (WSAECONNREFUSED) on every page?</A
+></H3
><P
> More than likely this is a problem with the network stack. ZoneAlarm has
been reported to cause this symptom -- even if not running. The solution is
cause similar type problems if not configured correctly.
</P
></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="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 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
+> due to DNS
+ timeouts.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="INUSE"
+>5.12. When I try to launch <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>, 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
+ you are actually trying to start a second <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ on the same port, which will not work. 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"
+>5.13. Pages with UTF-8 fonts are garbled.</A
+></H3
+><P
+> This is caused by the <SPAN
+CLASS="QUOTE"
+>"demoronizer"</SPAN
+> filter, which was introduced
+ in version 3.0.2, and was inappropriately turned on by default. 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"
+>5.14. Why are binary files (such as images) corrupted when <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ 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 a file type. Binary
+ files are exempted from <SPAN
+CLASS="APPLICATION"
+>Privoxy's</SPAN
+> filtering
+ (unless the web server by mistake says the file is a plain text file). 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"
+>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 wierd characters on pages, you might want to try it.</P
+><P
+> This filter was introduced with version 3.0.2 of <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>,
+ and was on by default in that version. It is off in all subsequent versions
+ (unless turned on by the user).</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="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
+ Javascript in this case, with the <VAR
+CLASS="LITERAL"
+>unsolicited-popups</VAR
+>
+ 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
><DIV
CLASS="NAVFOOTER"
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Privoxy - Home Page</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><META
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><META
NAME="KEYWORD"
CONTENT="privoxy"><META
NAME="KEYWORD"
CLASS="TITLE"
><A
NAME="AEN2"
-></A
->Privoxy - Home Page</H1
+>Privoxy - Home Page</A
+></H1
><DIV
><DIV
CLASS="ABSTRACT"
+><P
+></P
><A
NAME="AEN28"
></A
><P
-></P
-><P
->
- </P
-><P
> <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> is a web proxy with advanced filtering
- capabilities for protecting privacy, filtering web page content, managing
+ capabilities for protecting privacy, modifying web page content, managing
cookies, controlling access, and removing ads, banners, pop-ups and other
obnoxious Internet junk. <SPAN
CLASS="APPLICATION"
Junkbuster</SPAN
> (tm).</P
><P
-> The most recent release is 3.0.2 (stable).
+> The most recent release is <A
+HREF="announce.txt"
+TARGET="_top"
+>3.0.3 (stable)</A
+>.
</P
><P
></P
CLASS="SECT1"
><A
NAME="DOWNLOAD"
-></A
->Download</H3
+>Download</A
+></H3
><P
> <P
></P
><LI
><P
> <A
-HREF="http://cvs.sourceforge.net/cvstarballs/ijbswa-cvsroot.tar.gz"
+HREF="http://cvs.sourceforge.net/cvstarballs/ijbswa-cvsroot.tar.bz2"
TARGET="_top"
>Download the latest CVS snapshot (source tarball)</A
>
CLASS="SECT1"
><A
NAME="DOCS"
-></A
->Documentation</H3
+>Documentation</A
+></H3
><P
> <P
></P
CLASS="SECT1"
><A
NAME="MOREINFO"
-></A
->More information</H3
+>More information</A
+></H3
><P
> <P
></P
><HR><H2
CLASS="SECT1"
><A
-NAME="AEN94"
+NAME="AEN93"
></A
></H2
><P
><DIV
CLASS="INFORMALTABLE"
-><A
-NAME="AEN97"
-></A
><P
></P
+><A
+NAME="AEN96"
+></A
><TABLE
BORDER="0"
+FRAME="void"
+RULES="all"
WIDTH="100%"
CLASS="CALSTABLE"
-><TBODY
+><COL
+WIDTH="100%"
+ALIGN="CENTER"
+TITLE="C1"><TBODY
><TR
><TD
-WIDTH="100%"
ALIGN="CENTER"
-VALIGN="TOP"
>Privoxy is developed on:</TD
></TR
><TR
><TD
-WIDTH="100%"
ALIGN="CENTER"
-VALIGN="TOP"
> <A
HREF="http://sourceforge.net/"
TARGET="_top"
></P
><P
> <SUB
-> Copyright © 2001 - 2003 by Privoxy Developers
+> Copyright © 2001 - 2004 by Privoxy Developers
</SUB
></P
></DIV
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Privoxy - The Privacy Enhancing Proxy</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><META
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><META
NAME="KEYWORD"
CONTENT="privoxy"><META
NAME="KEYWORD"
CLASS="TITLE"
><A
NAME="AEN2"
-></A
->Privoxy - The Privacy Enhancing Proxy</H1
+>Privoxy - The Privacy Enhancing Proxy</A
+></H1
><H2
CLASS="SUBTITLE"
->Project Index Page v3.0.2</H2
+>Project Index Page v3.0.3</H2
><DIV
><DIV
CLASS="ABSTRACT"
+><P
+></P
><A
NAME="AEN29"
></A
><P
-></P
-><P
->
- </P
-><P
> <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> is a web proxy with advanced filtering
- capabilities for protecting privacy, filtering web page content, managing
+ capabilities for protecting privacy, modifying web page content, managing
cookies, controlling access, and removing ads, banners, pop-ups and other
obnoxious Internet junk. <SPAN
CLASS="APPLICATION"
CLASS="SECT1"
><A
NAME="DOWNLOAD"
-></A
->Download</H3
+>Download</A
+></H3
><P
> <P
></P
><LI
><P
> <A
-HREF="http://cvs.sourceforge.net/cvstarballs/ijbswa-cvsroot.tar.gz"
+HREF="http://cvs.sourceforge.net/cvstarballs/ijbswa-cvsroot.tar.bz2"
TARGET="_top"
>Download the latest CVS snapshot (source tarball)</A
>
CLASS="SECT1"
><A
NAME="DOCS"
-></A
->Documentation</H3
+>Documentation</A
+></H3
><P
> <P
></P
CLASS="SECT1"
><A
NAME="MOREINFO"
-></A
->More information</H3
+>More information</A
+></H3
><P
> <P
></P
><HR><H2
CLASS="SECT1"
><A
-NAME="AEN91"
+NAME="AEN89"
></A
></H2
><P
> <SUB
-> Copyright © 2001 - 2003 by Privoxy Developers
+> Copyright © 2001 - 2004 by Privoxy Developers
</SUB
></P
></DIV
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Actions Files</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
-TITLE="Privoxy 3.0.2 User Manual"
+TITLE="Privoxy 3.0.3 User Manual"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="The Main Configuration File"
><TH
COLSPAN="3"
ALIGN="center"
->Privoxy 3.0.2 User Manual</TH
+>Privoxy 3.0.3 User Manual</TH
></TR
><TR
><TD
CLASS="SECT1"
><A
NAME="ACTIONS-FILE"
-></A
->8. Actions Files</H1
+>8. Actions Files</A
+></H1
><P
> The actions files are used to define what actions
<SPAN
> <DIV
CLASS="TABLE"
><A
-NAME="AEN1719"
+NAME="AEN1654"
></A
><P
><B
></P
><TABLE
BORDER="1"
+FRAME="border"
+RULES="all"
CLASS="CALSTABLE"
-><THEAD
+><COL
+WIDTH="1*"
+TITLE="C1"><COL
+WIDTH="1*"
+TITLE="C2"><COL
+WIDTH="1*"
+TITLE="C3"><COL
+WIDTH="1*"
+TITLE="C4"><THEAD
><TR
><TH
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>Feature</TH
><TH
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>Cautious</TH
><TH
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>Medium</TH
><TH
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>Adventuresome</TH
></TR
></THEAD
><TBODY
><TR
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>Ad-blocking by URL</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>yes</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>yes</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>yes</TD
></TR
><TR
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>Ad-filtering by size</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>yes</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>yes</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>yes</TD
></TR
><TR
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>GIF de-animation</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>no</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>yes</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>yes</TD
></TR
><TR
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>Referer forging</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>no</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>yes</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>yes</TD
></TR
><TR
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>Cookie handling</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>none</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>session-only</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>kill</TD
></TR
><TR
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>Pop-up killing</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>unsolicited</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>unsolicited</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>all</TD
></TR
><TR
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>Fast redirects</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>no</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>no</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>yes</TD
></TR
><TR
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>HTML taming</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>yes</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>yes</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>yes</TD
></TR
><TR
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>JavaScript taming</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>yes</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>yes</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>yes</TD
></TR
><TR
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>Web-bug killing</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>yes</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>yes</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>yes</TD
></TR
><TR
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>Fun text replacements</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>no</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>no</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>yes</TD
></TR
><TR
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>Image tag reordering</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>no</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>no</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>yes</TD
></TR
><TR
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>Ad-filtering by link</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>no</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>no</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>yes</TD
></TR
><TR
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>Demoronizer</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>no</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
->yes</TD
+>no</TD
><TD
-WIDTH="25%"
-ALIGN="LEFT"
-VALIGN="TOP"
>yes</TD
></TR
></TBODY
><H2
CLASS="SECT2"
><A
-NAME="AEN1818"
-></A
->8.1. Finding the Right Mix</H2
+NAME="AEN1753"
+>8.1. Finding the Right Mix</A
+></H2
><P
> Note that some <A
HREF="actions-file.html#ACTIONS"
><H2
CLASS="SECT2"
><A
-NAME="AEN1825"
-></A
->8.2. How to Edit</H2
+NAME="AEN1760"
+>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
CLASS="SECT2"
><A
NAME="ACTIONS-APPLY"
-></A
->8.3. How Actions are Applied to URLs</H2
+>8.3. How Actions are Applied to URLs</A
+></H2
><P
> Actions files are divided into sections. There are special sections,
like the <SPAN
of the section in which the pattern is located. If multiple matches for
the same URL 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
+ a heading line of <VAR
CLASS="LITERAL"
>{
+<A
HREF="actions-file.html#HANDLE-AS-IMAGE"
>handle-as-image</A
-> }</TT
+> }</VAR
>,
- then later another one with just <TT
+ then later another one with just <VAR
CLASS="LITERAL"
>{
+<A
HREF="actions-file.html#BLOCK"
>block</A
-> }</TT
+> }</VAR
>, resulting
in <SPAN
CLASS="emphasis"
CLASS="SECT2"
><A
NAME="AF-PATTERNS"
-></A
->8.4. Patterns</H2
+>8.4. Patterns</A
+></H2
><P
>
As mentioned, <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> pattern has the form
- <TT
+ <VAR
CLASS="LITERAL"
-><domain>/<path></TT
+><domain>/<path></VAR
>, where both the
- <TT
+ <VAR
CLASS="LITERAL"
-><domain></TT
-> and <TT
+><domain></VAR
+> and <VAR
CLASS="LITERAL"
-><path></TT
+><path></VAR
> are
- optional. (This is why the special <TT
+ optional. (This is why the special <VAR
CLASS="LITERAL"
->/</TT
+>/</VAR
> pattern matches all
URLs). Note that the protocol portion of the URL pattern (e.g.
- <TT
+ <VAR
CLASS="LITERAL"
->http://</TT
+>http://</VAR
>) should <SPAN
CLASS="emphasis"
><I
CLASS="VARIABLELIST"
><DL
><DT
-><TT
+><VAR
CLASS="LITERAL"
->www.example.com/</TT
+>www.example.com/</VAR
></DT
><DD
><P
-> is a domain-only pattern and will match any request to <TT
+> is a domain-only pattern and will match any request to <VAR
CLASS="LITERAL"
->www.example.com</TT
+>www.example.com</VAR
>,
regardless of which document on that server is requested.
</P
></DD
><DT
-><TT
+><VAR
CLASS="LITERAL"
->www.example.com</TT
+>www.example.com</VAR
></DT
><DD
><P
-> means exactly the same. For domain-only patterns, the trailing <TT
+> means exactly the same. For domain-only patterns, the trailing <VAR
CLASS="LITERAL"
->/</TT
+>/</VAR
> may
be omitted.
</P
></DD
><DT
-><TT
+><VAR
CLASS="LITERAL"
->www.example.com/index.html</TT
+>www.example.com/index.html</VAR
></DT
><DD
><P
-> matches only the single document <TT
+> matches only the single document <VAR
CLASS="LITERAL"
->/index.html</TT
+>/index.html</VAR
>
- on <TT
+ on <VAR
CLASS="LITERAL"
->www.example.com</TT
+>www.example.com</VAR
>.
</P
></DD
><DT
-><TT
+><VAR
CLASS="LITERAL"
->/index.html</TT
+>/index.html</VAR
></DT
><DD
><P
-> matches the document <TT
+> matches the document <VAR
CLASS="LITERAL"
->/index.html</TT
+>/index.html</VAR
>, regardless of the domain,
i.e. on <SPAN
CLASS="emphasis"
</P
></DD
><DT
-><TT
+><VAR
CLASS="LITERAL"
->index.html</TT
+>index.html</VAR
></DT
><DD
><P
> matches nothing, since it would be interpreted as a domain name and
- there is no top-level domain called <TT
+ there is no top-level domain called <VAR
CLASS="LITERAL"
->.html</TT
+>.html</VAR
>.
</P
></DD
><H3
CLASS="SECT3"
><A
-NAME="AEN1898"
-></A
->8.4.1. The Domain Pattern</H3
+NAME="AEN1833"
+>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.
CLASS="VARIABLELIST"
><DL
><DT
-><TT
+><VAR
CLASS="LITERAL"
->.example.com</TT
+>.example.com</VAR
></DT
><DD
><P
>ENDS</I
></SPAN
> in
- <TT
+ <VAR
CLASS="LITERAL"
->.example.com</TT
+>.example.com</VAR
>
</P
></DD
><DT
-><TT
+><VAR
CLASS="LITERAL"
->www.</TT
+>www.</VAR
></DT
><DD
><P
>STARTS</I
></SPAN
> with
- <TT
+ <VAR
CLASS="LITERAL"
->www.</TT
+>www.</VAR
>
</P
></DD
><DT
-><TT
+><VAR
CLASS="LITERAL"
->.example.</TT
+>.example.</VAR
></DT
><DD
><P
CLASS="EMPHASIS"
>CONTAINS</I
></SPAN
-> <TT
+> <VAR
CLASS="LITERAL"
->.example.</TT
+>.example.</VAR
>
- (Correctly speaking: It matches any FQDN that contains <TT
+ (Correctly speaking: It matches any FQDN that contains <VAR
CLASS="LITERAL"
->example</TT
+>example</VAR
> as a domain.)
</P
></DD
CLASS="VARIABLELIST"
><DL
><DT
-><TT
+><VAR
CLASS="LITERAL"
->ad*.example.com</TT
+>ad*.example.com</VAR
></DT
><DD
><P
</P
></DD
><DT
-><TT
+><VAR
CLASS="LITERAL"
->*ad*.example.com</TT
+>*ad*.example.com</VAR
></DT
><DD
><P
</P
></DD
><DT
-><TT
+><VAR
CLASS="LITERAL"
->.?pix.com</TT
+>.?pix.com</VAR
></DT
><DD
><P
-> matches <TT
+> matches <VAR
CLASS="LITERAL"
->www.ipix.com</TT
+>www.ipix.com</VAR
>,
- <TT
+ <VAR
CLASS="LITERAL"
->pictures.epix.com</TT
->, <TT
+>pictures.epix.com</VAR
+>, <VAR
CLASS="LITERAL"
->a.b.c.d.e.upix.com</TT
+>a.b.c.d.e.upix.com</VAR
> etc.
</P
></DD
><DT
-><TT
+><VAR
CLASS="LITERAL"
->www[1-9a-ez].example.c*</TT
+>www[1-9a-ez].example.c*</VAR
></DT
><DD
><P
-> matches <TT
+> matches <VAR
CLASS="LITERAL"
->www1.example.com</TT
+>www1.example.com</VAR
>,
- <TT
+ <VAR
CLASS="LITERAL"
->www4.example.cc</TT
->, <TT
+>www4.example.cc</VAR
+>, <VAR
CLASS="LITERAL"
->wwwd.example.cy</TT
+>wwwd.example.cy</VAR
>,
- <TT
+ <VAR
CLASS="LITERAL"
->wwwz.example.com</TT
+>wwwz.example.com</VAR
> etc., but <SPAN
CLASS="emphasis"
><I
>not</I
></SPAN
>
- <TT
+ <VAR
CLASS="LITERAL"
->wwww.example.com</TT
+>wwww.example.com</VAR
>.
</P
></DD
><H3
CLASS="SECT3"
><A
-NAME="AEN1960"
-></A
->8.4.2. The Path Pattern</H3
+NAME="AEN1895"
+>8.4.2. The Path Pattern</A
+></H3
><P
> <SPAN
CLASS="APPLICATION"
TARGET="_top"
>http://www.pcre.org/man.txt</A
>.
- You might also find the Perl man page on regular expressions (<TT
+ You might also find the Perl man page on regular expressions (<VAR
CLASS="LITERAL"
->man perlre</TT
+>man perlre</VAR
>)
useful, which is available on-line at <A
HREF="http://www.perldoc.com/perl5.6/pod/perlre.html"
<SPAN
CLASS="QUOTE"
>"(?-i)"</SPAN
-> switch: <TT
+> switch: <VAR
CLASS="LITERAL"
->www.example.com/(?-i)PaTtErN.*</TT
+>www.example.com/(?-i)PaTtErN.*</VAR
> will match
- only documents whose path starts with <TT
+ only documents whose path starts with <VAR
CLASS="LITERAL"
->PaTtErN</TT
+>PaTtErN</VAR
> in
<SPAN
CLASS="emphasis"
CLASS="SECT2"
><A
NAME="ACTIONS"
-></A
->8.5. Actions</H2
+>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
CLASS="QUOTE"
>"-"</SPAN
>. So a
- <TT
+ <VAR
CLASS="LITERAL"
->+action</TT
+>+action</VAR
> means <SPAN
CLASS="QUOTE"
>"do that action"</SPAN
>, e.g.
- <TT
+ <VAR
CLASS="LITERAL"
->+block</TT
+>+block</VAR
> means <SPAN
CLASS="QUOTE"
>"please block URLs that match the
following patterns"</SPAN
->, and <TT
+>, and <VAR
CLASS="LITERAL"
->-block</TT
+>-block</VAR
> means <SPAN
CLASS="QUOTE"
>"don't
- block URLs that match the following patterns, even if <TT
+ block URLs that match the following patterns, even if <VAR
CLASS="LITERAL"
->+block</TT
+>+block</VAR
>
previously applied."</SPAN
> </P
>
Again, actions are invoked by placing them on a line, enclosed in curly braces and
separated by whitespace, like in
- <TT
+ <VAR
CLASS="LITERAL"
->{+some-action -some-other-action{some-parameter}}</TT
+>{+some-action -some-other-action{some-parameter}}</VAR
>,
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
><TD
><PRE
CLASS="SCREEN"
-> +<TT
+> +<VAR
CLASS="REPLACEABLE"
-><I
->name</I
-></TT
-> # enable action <TT
+>name</VAR
+> # enable action <VAR
CLASS="REPLACEABLE"
-><I
->name</I
-></TT
+>name</VAR
>
- -<TT
+ -<VAR
CLASS="REPLACEABLE"
-><I
->name</I
-></TT
-> # disable action <TT
+>name</VAR
+> # disable action <VAR
CLASS="REPLACEABLE"
-><I
->name</I
-></TT
+>name</VAR
></PRE
></TD
></TR
</P
><P
>
- Example: <TT
+ Example: <VAR
CLASS="LITERAL"
->+block</TT
+>+block</VAR
>
</P
></LI
><TD
><PRE
CLASS="SCREEN"
-> +<TT
+> +<VAR
CLASS="REPLACEABLE"
-><I
->name</I
-></TT
->{<TT
+>name</VAR
+>{<VAR
CLASS="REPLACEABLE"
-><I
->param</I
-></TT
->} # enable action and set parameter to <TT
+>param</VAR
+>} # enable action and set parameter to <VAR
CLASS="REPLACEABLE"
-><I
->param</I
-></TT
+>param</VAR
>,
# overwriting parameter from previous match if necessary
- -<TT
+ -<VAR
CLASS="REPLACEABLE"
-><I
->name</I
-></TT
+>name</VAR
> # disable action. The parameter can be omitted</PRE
></TD
></TR
</P
><P
>
- Example: <TT
+ Example: <VAR
CLASS="LITERAL"
->+hide-user-agent{ Mozilla 1.0 }</TT
+>+hide-user-agent{ Mozilla 1.0 }</VAR
>
</P
></LI
><TD
><PRE
CLASS="SCREEN"
-> +<TT
+> +<VAR
CLASS="REPLACEABLE"
-><I
->name</I
-></TT
->{<TT
+>name</VAR
+>{<VAR
CLASS="REPLACEABLE"
-><I
->param</I
-></TT
->} # enable action and add <TT
+>param</VAR
+>} # enable action and add <VAR
CLASS="REPLACEABLE"
-><I
->param</I
-></TT
+>param</VAR
> to the list of parameters
- -<TT
+ -<VAR
CLASS="REPLACEABLE"
-><I
->name</I
-></TT
->{<TT
+>name</VAR
+>{<VAR
CLASS="REPLACEABLE"
-><I
->param</I
-></TT
->} # remove the parameter <TT
+>param</VAR
+>} # remove the parameter <VAR
CLASS="REPLACEABLE"
-><I
->param</I
-></TT
+>param</VAR
> from the list of parameters
# If it was the last one left, disable the action.
- <TT
+ <VAR
CLASS="REPLACEABLE"
-><I
->-name</I
-></TT
+>-name</VAR
> # disable this action completely and remove all parameters from the list</PRE
></TD
></TR
</P
><P
>
- Examples: <TT
+ Examples: <VAR
CLASS="LITERAL"
->+add-header{X-Fun-Header: Some text}</TT
+>+add-header{X-Fun-Header: Some text}</VAR
> and
- <TT
+ <VAR
CLASS="LITERAL"
->+filter{html-annoyances}</TT
+>+filter{html-annoyances}</VAR
>
</P
></LI
CLASS="SECT3"
><A
NAME="ADD-HEADER"
-></A
->8.5.1. add-header</H4
+>8.5.1. add-header</A
+></H4
><P
></P
><DIV
> 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
+>"<VAR
CLASS="LITERAL"
->X-</TT
+>X-</VAR
>"</SPAN
> prefix
for custom headers.
CLASS="SECT3"
><A
NAME="BLOCK"
-></A
->8.5.2. block</H4
+>8.5.2. block</A
+></H4
><P
></P
><DIV
><P
> Requests for URLs to which this action applies are blocked, i.e. the requests are not
forwarded to the remote server, but answered locally with a substitute page or image,
- as determined by the <TT
+ as determined by the <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#HANDLE-AS-IMAGE"
>handle-as-image</A
-></TT
+></VAR
>
- and <TT
+ and <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#SET-IMAGE-BLOCKER"
>set-image-blocker</A
-></TT
+></VAR
> actions.
</P
></DD
>both</I
></SPAN
>
- <TT
+ <VAR
CLASS="LITERAL"
->block</TT
-> and <TT
+>block</VAR
+> and <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#HANDLE-AS-IMAGE"
>handle-as-image</A
-></TT
+></VAR
>,
apply to the same request: it will then be replaced by an image. If
- <TT
+ <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#SET-IMAGE-BLOCKER"
>set-image-blocker</A
-></TT
+></VAR
>
(see below) also applies, the type of image will be determined by its parameter,
if not, the standard checkerboard pattern is sent.
ads and other unwanted content.
</P
><P
-> The <TT
+> The <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#FILTER"
>filter</A
-></TT
+></VAR
>
action can perform a very similar task, by <SPAN
CLASS="QUOTE"
CLASS="SECT3"
><A
NAME="CRUNCH-INCOMING-COOKIES"
-></A
->8.5.3. crunch-incoming-cookies</H4
+>8.5.3. crunch-incoming-cookies</A
+></H4
><P
></P
><DIV
>outgoing</I
></SPAN
> cookies, use
- <TT
+ <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#CRUNCH-OUTGOING-COOKIES"
>crunch-outgoing-cookies</A
-></TT
+></VAR
>.
Use <SPAN
CLASS="emphasis"
>no sense at all</I
></SPAN
> to use this action in conjunction
- with the <TT
+ with the <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#SESSION-COOKIES-ONLY"
>session-cookies-only</A
-></TT
+></VAR
> action,
since it would prevent the session cookies from being set. See also
- <TT
+ <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#FILTER-CONTENT-COOKIES"
>filter-content-cookies</A
-></TT
+></VAR
>.
</P
></DD
CLASS="SECT3"
><A
NAME="CRUNCH-OUTGOING-COOKIES"
-></A
->8.5.4. crunch-outgoing-cookies</H4
+>8.5.4. crunch-outgoing-cookies</A
+></H4
><P
></P
><DIV
>incoming</I
></SPAN
> cookies, use
- <TT
+ <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#CRUNCH-INCOMING-COOKIES"
>crunch-incoming-cookies</A
-></TT
+></VAR
>.
Use <SPAN
CLASS="emphasis"
>no sense at all</I
></SPAN
> to use this action in conjunction
- with the <TT
+ with the <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#SESSION-COOKIES-ONLY"
>session-cookies-only</A
-></TT
+></VAR
> action,
since it would prevent the session cookies from being read.
</P
CLASS="SECT3"
><A
NAME="DEANIMATE-GIFS"
-></A
->8.5.5. deanimate-gifs</H4
+>8.5.5. deanimate-gifs</A
+></H4
><P
></P
><DIV
CLASS="SECT3"
><A
NAME="DOWNGRADE-HTTP-VERSION"
-></A
->8.5.6. downgrade-http-version</H4
+>8.5.6. downgrade-http-version</A
+></H4
><P
></P
><DIV
CLASS="SECT3"
><A
NAME="FAST-REDIRECTS"
-></A
->8.5.7. fast-redirects</H4
+>8.5.7. fast-redirects</A
+></H4
><P
></P
><DIV
CLASS="SECT3"
><A
NAME="FILTER"
-></A
->8.5.8. filter</H4
+>8.5.8. filter</A
+></H4
><P
></P
><DIV
>Effect:</DT
><DD
><P
-> Text documents, including HTML and JavaScript, to which this action
- applies, are filtered on-the-fly through the specified regular expression
- based substitutions.
+> All files of text-based type, most notably HTML and JavaScript, to which this
+ action applies, are 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
+ <VAR
+CLASS="LITERAL"
+>text/plain</VAR
+> MIME type for all files whose type they
+ don't know.)
</P
></DD
><DT
CLASS="FILENAME"
>default.filter</TT
>, set by the
- <TT
+ <VAR
CLASS="LITERAL"
><A
HREF="config.html#FILTERFILE"
>filterfile</A
-></TT
+></VAR
>
option in the <A
HREF="config.html"
</P
><P
> The amount of data that can be filtered is limited to the
- <TT
+ <VAR
CLASS="LITERAL"
><A
HREF="config.html#BUFFER-LIMIT"
>buffer-limit</A
-></TT
+></VAR
>
option in the main <A
HREF="config.html"
data, and all pending data, is passed through unfiltered.
</P
><P
-> Inappropriate MIME types, such as zipped files, are not filtered at all.
- Encrypted SSL data (from HTTPS servers) cannot be filtered either since
- this would violate the integrity of the secure transaction.
+> Inadequate 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 <VAR
+CLASS="LITERAL"
+>-filter</VAR
+> sections.
</P
><P
> At this time, <SPAN
> cannot (yet!) uncompress compressed
documents. If you want filtering to work on all documents, even those that
would normally be sent compressed, use the
- <TT
+ <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#PREVENT-COMPRESSION"
>prevent-compression</A
-></TT
+></VAR
>
- action in conjunction with <TT
+ action in conjunction with <VAR
CLASS="LITERAL"
->filter</TT
+>filter</VAR
>.
</P
><P
> Filtering can achieve some of the same effects as the
- <TT
+ <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#BLOCK"
>block</A
-></TT
+></VAR
>
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
CLASS="SECT3"
><A
NAME="HANDLE-AS-IMAGE"
-></A
->8.5.9. handle-as-image</H4
+>8.5.9. handle-as-image</A
+></H4
><P
></P
><DIV
><DD
><P
> This action alone doesn't do anything noticeable. It just marks URLs as images.
- If the <TT
+ If the <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#BLOCK"
>block</A
-></TT
+></VAR
> action <SPAN
CLASS="emphasis"
><I
CLASS="QUOTE"
>"blocked"</SPAN
>
- page, or a replacement image (as determined by the <TT
+ page, or a replacement image (as determined by the <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#SET-IMAGE-BLOCKER"
>set-image-blocker</A
-></TT
+></VAR
> action) will be sent to the
client as a substitute for the blocked content.
</P
</P
><P
> Users will probably only want to use the handle-as-image action in conjunction with
- <TT
+ <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#BLOCK"
>block</A
-></TT
+></VAR
>, 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
+ Forcing <VAR
CLASS="LITERAL"
->handle-as-image</TT
+>handle-as-image</VAR
> in this situation will not replace the
ad frame with an image, but lead to error messages.
</P
CLASS="SECT3"
><A
NAME="HIDE-FORWARDED-FOR-HEADERS"
-></A
->8.5.10. hide-forwarded-for-headers</H4
+>8.5.10. hide-forwarded-for-headers</A
+></H4
><P
></P
><DIV
CLASS="SECT3"
><A
NAME="HIDE-FROM-HEADER"
-></A
->8.5.11. hide-from-header</H4
+>8.5.11. hide-from-header</A
+></H4
><P
></P
><DIV
CLASS="QUOTE"
>"block"</SPAN
> will completely remove the header
- (not to be confused with the <TT
+ (not to be confused with the <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#BLOCK"
>block</A
-></TT
+></VAR
>
action).
</P
CLASS="SECT3"
><A
NAME="HIDE-REFERRER"
-></A
->8.5.12. hide-referrer</H4
+>8.5.12. hide-referrer</A
+></H4
><A
NAME="HIDE-REFERER"
></A
</P
><P
>
- <TT
+ <VAR
CLASS="LITERAL"
->hide-referer</TT
+>hide-referer</VAR
> is an alternate spelling of
- <TT
+ <VAR
CLASS="LITERAL"
->hide-referrer</TT
+>hide-referrer</VAR
> and the two can be can be freely
substituted with each other. (<SPAN
CLASS="QUOTE"
CLASS="SECT3"
><A
NAME="HIDE-USER-AGENT"
-></A
->8.5.13. hide-user-agent</H4
+>8.5.13. hide-user-agent</A
+></H4
><P
></P
><DIV
CLASS="SECT3"
><A
NAME="KILL-POPUPS"
-></A
>8.5.14. kill-popups<A
NAME="KILL-POPUP"
></A
+></A
></H4
><P
></P
><DD
><P
> This action is basically a built-in, hardwired special-purpose filter
- action, but there are important differences: For <TT
+ action, but there are important differences: For <VAR
CLASS="LITERAL"
->kill-popups</TT
+>kill-popups</VAR
>,
the document need not be buffered, so it can be incrementally rendered while
- downloading. But <TT
+ downloading. But <VAR
CLASS="LITERAL"
->kill-popups</TT
+>kill-popups</VAR
> doesn't catch as many pop-ups as
- <TT
+ <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#FILTER-ALL-POPUPS"
->filter{<TT
+>filter{<VAR
CLASS="REPLACEABLE"
-><I
->all-popups</I
-></TT
+>all-popups</VAR
>}</A
-></TT
+></VAR
>
- does and is not as smart as <TT
+ does and is not as smart as <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#FILTER-UNSOLICITED-POPUPS"
->filter{<TT
+>filter{<VAR
CLASS="REPLACEABLE"
-><I
->unsolicited-popups</I
-></TT
+>unsolicited-popups</VAR
>}</A
>
- </TT
+ </VAR
>is.
</P
><P
> Think of it as a fast and efficient replacement for a filter that you
can use if you don't want any filtering at all. Note that it doesn't make
- sense to combine it with any <TT
+ sense to combine it with any <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#FILTER"
>filter</A
-></TT
+></VAR
> action,
- since as soon as one <TT
+ since as soon as one <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#FILTER"
>filter</A
-></TT
+></VAR
> applies,
the whole document needs to be buffered anyway, which destroys the advantage of
- the <TT
+ the <VAR
CLASS="LITERAL"
->kill-popups</TT
+>kill-popups</VAR
> action over its filter equivalent.
</P
><P
> Killing all pop-ups unconditionally is problematic. Many shops and banks rely on
- pop-ups to display forms, shopping carts etc, and the <TT
+ pop-ups to display forms, shopping carts etc, and the <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#FILTER-UNSOLICITED-POPUPS"
->filter{<TT
+>filter{<VAR
CLASS="REPLACEABLE"
-><I
->unsolicited-popups</I
-></TT
+>unsolicited-popups</VAR
>}</A
>
- </TT
+ </VAR
> does a fairly good job of catching only the unwanted ones.
</P
><P
></SPAN
> windows that appear when you close an other
one), you might want to use
- <TT
+ <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#FILTER"
>filter</A
->{<TT
+>{<VAR
CLASS="REPLACEABLE"
-><I
->js-annoyances</I
-></TT
->}</TT
+>js-annoyances</VAR
+>}</VAR
>
instead.
</P
CLASS="SECT3"
><A
NAME="LIMIT-CONNECT"
-></A
->8.5.15. limit-connect</H4
+>8.5.15. limit-connect</A
+></H4
><P
></P
><DIV
>Notes:</DT
><DD
><P
-> By default, i.e. if no <TT
+> By default, i.e. if no <VAR
CLASS="LITERAL"
->limit-connect</TT
+>limit-connect</VAR
> action applies,
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> only allows HTTP CONNECT
requests to port 443 (the standard, secure HTTPS port). Use
- <TT
+ <VAR
CLASS="LITERAL"
->limit-connect</TT
+>limit-connect</VAR
> if more fine-grained control is desired
for some or all destinations.
</P
CLASS="SECT3"
><A
NAME="PREVENT-COMPRESSION"
-></A
->8.5.16. prevent-compression</H4
+>8.5.16. prevent-compression</A
+></H4
><P
></P
><DIV
><DD
><P
> Ensure that servers send the content uncompressed, so it can be
- passed through <TT
+ passed through <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#FILTER"
>filter</A
-></TT
+></VAR
>s
</P
></DD
><DD
><P
> More and more websites send their content compressed by default, which
- is generally a good idea and saves bandwidth. But for the <TT
+ is generally a good idea and saves bandwidth. But for the <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#FILTER"
>filter</A
-></TT
->, <TT
+></VAR
+>, <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#DEANIMATE-GIFS"
>deanimate-gifs</A
-></TT
+></VAR
>
- and <TT
+ and <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#KILL-POPUPS"
>kill-popups</A
-></TT
+></VAR
> actions to work,
<SPAN
CLASS="APPLICATION"
</P
><P
> This will slow down transfers from those websites, though. If you use any of the above-mentioned
- actions, you will typically want to use <TT
+ actions, you will typically want to use <VAR
CLASS="LITERAL"
->prevent-compression</TT
+>prevent-compression</VAR
> in conjunction
with them.
</P
><P
> Note that some (rare) ill-configured sites don't handle requests for uncompressed
- documents correctly (they send an empty document body). If you use <TT
+ documents correctly (they send an empty document body). If you use <VAR
CLASS="LITERAL"
->prevent-compression</TT
+>prevent-compression</VAR
>
per default, you'll have to add exceptions for those sites. See the example for how to do that.
</P
CLASS="SECT3"
><A
NAME="SEND-VANILLA-WAFER"
-></A
->8.5.17. send-vanilla-wafer</H4
+>8.5.17. send-vanilla-wafer</A
+></H4
><P
></P
><DIV
CLASS="SECT3"
><A
NAME="SEND-WAFER"
-></A
->8.5.18. send-wafer</H4
+>8.5.18. send-wafer</A
+></H4
><P
></P
><DIV
><P
> A string of the form <SPAN
CLASS="QUOTE"
->"<TT
+>"<VAR
CLASS="REPLACEABLE"
-><I
->name</I
-></TT
->=<TT
+>name</VAR
+>=<VAR
CLASS="REPLACEABLE"
-><I
->value</I
-></TT
+>value</VAR
>"</SPAN
>.
</P
CLASS="SECT3"
><A
NAME="SESSION-COOKIES-ONLY"
-></A
->8.5.19. session-cookies-only</H4
+>8.5.19. session-cookies-only</A
+></H4
><P
></P
><DIV
>Notes:</DT
><DD
><P
-> This is less strict than <TT
+> This is less strict than <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#CRUNCH-INCOMING-COOKIES"
>crunch-incoming-cookies</A
-></TT
+></VAR
> /
- <TT
+ <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#CRUNCH-OUTGOING-COOKIES"
>crunch-outgoing-cookies</A
-></TT
+></VAR
> 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
+ <VAR
CLASS="LITERAL"
->session-cookies-only</TT
+>session-cookies-only</VAR
> 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
CLASS="EMPHASIS"
>no sense at all</I
></SPAN
-> to use <TT
+> to use <VAR
CLASS="LITERAL"
->session-cookies-only</TT
+>session-cookies-only</VAR
>
- together with <TT
+ together with <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#CRUNCH-INCOMING-COOKIES"
>crunch-incoming-cookies</A
-></TT
+></VAR
> or
- <TT
+ <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#CRUNCH-OUTGOING-COOKIES"
>crunch-outgoing-cookies</A
-></TT
+></VAR
>. If you do, cookies
will be plainly killed.
</P
>content-cookies filter</A
>
to block some types of cookies. Content cookies are not effected by
- <TT
+ <VAR
CLASS="LITERAL"
->session-cookies-only</TT
+>session-cookies-only</VAR
>.
</P
></DD
CLASS="SECT3"
><A
NAME="SET-IMAGE-BLOCKER"
-></A
->8.5.20. set-image-blocker</H4
+>8.5.20. set-image-blocker</A
+></H4
><P
></P
><DIV
>both</I
></SPAN
>
- <TT
+ <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#BLOCK"
>block</A
-></TT
+></VAR
> <SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>and</I
></SPAN
-> <TT
+> <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#HANDLE-AS-IMAGE"
>handle-as-image</A
-></TT
+></VAR
> <SPAN
CLASS="emphasis"
><I
><P
> <SPAN
CLASS="QUOTE"
->"<TT
+>"<VAR
CLASS="REPLACEABLE"
-><I
->target-url</I
-></TT
+>target-url</VAR
>"</SPAN
> to
- send a redirect to <TT
+ send a redirect to <VAR
CLASS="REPLACEABLE"
-><I
->target-url</I
-></TT
+>target-url</VAR
>. You can redirect
to any image anywhere, even in your local filesystem (via <SPAN
CLASS="QUOTE"
CLASS="APPLICATION"
>Privoxy</SPAN
>-built-in
- URLs, which send the built-in images, as <TT
+ URLs, which send the built-in images, as <VAR
CLASS="REPLACEABLE"
-><I
->target-url</I
-></TT
+>target-url</VAR
>.
This has the same visual effect as specifying <SPAN
CLASS="QUOTE"
><P
> The URLs for the built-in images are <SPAN
CLASS="QUOTE"
->"http://config.privoxy.org/send-banner?type=<TT
+>"http://config.privoxy.org/send-banner?type=<VAR
CLASS="REPLACEABLE"
-><I
->type</I
-></TT
+>type</VAR
>"</SPAN
->, where <TT
+>, where <VAR
CLASS="REPLACEABLE"
-><I
->type</I
-></TT
+>type</VAR
> is
either <SPAN
CLASS="QUOTE"
>NOT</I
></SPAN
> to be
- used in <TT
+ used in <VAR
CLASS="LITERAL"
->set-image-blocker</TT
+>set-image-blocker</VAR
>, but meant for use from <A
HREF="filter-file.html"
>filters</A
><H3
CLASS="SECT3"
><A
-NAME="AEN2918"
-></A
->8.5.21. Summary</H3
+NAME="AEN2855"
+>8.5.21. 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
CLASS="SECT2"
><A
NAME="ALIASES"
-></A
->8.6. Aliases</H2
+>8.6. Aliases</A
+></H2
><P
> Custom <SPAN
CLASS="QUOTE"
CLASS="SECT2"
><A
NAME="ACT-EXAMPLES"
-></A
->8.7. Actions Files Tutorial</H2
+>8.7. Actions Files Tutorial</A
+></H2
><P
> The above chapters have shown <A
HREF="actions-file.html"
><H3
CLASS="SECT3"
><A
-NAME="AEN2983"
-></A
->8.7.1. default.action</H3
+NAME="AEN2920"
+>8.7.1. default.action</A
+></H3
><P
>Every config file should start with a short comment stating its purpose:</P
><P
> The first regular section is probably the most important. It has only
one pattern, <SPAN
CLASS="QUOTE"
->"<TT
+>"<VAR
CLASS="LITERAL"
->/</TT
+>/</VAR
>"</SPAN
>, but this pattern
<A
HREF="actions-file.html#FILTER-FRAMESET-BORDERS"
>filter{frameset-borders}</A
> \
- +<A
+ -<A
HREF="actions-file.html#FILTER-DEMORONIZER"
>filter{demoronizer}</A
> \
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
+ our pre-defined <VAR
CLASS="LITERAL"
->fragile</TT
+>fragile</VAR
> alias instead of stating the list
of actions explicitly:</P
><P
></TABLE
></P
><P
-> The <TT
+> The <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#FAST-REDIRECTS"
>fast-redirects</A
-></TT
+></VAR
>
action, which we enabled per default above, breaks some sites. So disable
it for popular sites where we know it misbehaves:</P
>and</I
></SPAN
>
- information). We can mark any URL as an image with the <TT
+ information). We can mark any URL as an image with the <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#HANDLE-AS-IMAGE"
>handle-as-image</A
-></TT
+></VAR
> action,
and marking all URLs that end in a known image file extension is a
good start:</P
></SPAN
>
mark them as images in one go, with the help of our
- <TT
+ <VAR
CLASS="LITERAL"
->block-as-image</TT
+>block-as-image</VAR
> alias defined above. (We could of
- course just as well use <TT
+ course just as well use <VAR
CLASS="LITERAL"
>+<A
HREF="actions-file.html#BLOCK"
+<A
HREF="actions-file.html#HANDLE-AS-IMAGE"
>handle-as-image</A
-></TT
+></VAR
> here.)
Remember that the type of the replacement image is chosen by the
- <TT
+ <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#SET-IMAGE-BLOCKER"
>set-image-blocker</A
-></TT
+></VAR
>
action. Since all URLs have matched the default section with its
- <TT
+ <VAR
CLASS="LITERAL"
>+<A
HREF="actions-file.html#SET-IMAGE-BLOCKER"
>set-image-blocker</A
->{pattern}</TT
+>{pattern}</VAR
>
action before, it still applies and needn't be repeated:</P
><P
CLASS="QUOTE"
>"blocked"</SPAN
>
- by the <TT
+ by the <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#FILTER"
>filter</A
->{banners-by-size}</TT
+>{banners-by-size}</VAR
>
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
+ <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#BLOCK"
>block</A
-></TT
+></VAR
> action to them.</P
><P
> First comes a bunch of generic patterns, which do most of the work, by
></P
><P
> You wouldn't believe how many advertisers actually call their banner
- servers ads.<TT
+ servers ads.<VAR
CLASS="REPLACEABLE"
-><I
->company</I
-></TT
+>company</VAR
>.com, or call the directory
in which the banners are stored simply <SPAN
CLASS="QUOTE"
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
+ to block. The pattern <VAR
CLASS="LITERAL"
->.*ads.</TT
+>.*ads.</VAR
> e.g. catches
<SPAN
CLASS="QUOTE"
></SPAN
>l.some-provider.net."</SPAN
> So here come some
- well-known exceptions to the <TT
+ well-known exceptions to the <VAR
CLASS="LITERAL"
>+<A
HREF="actions-file.html#BLOCK"
>block</A
-></TT
+></VAR
>
section above.</P
><P
>"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
+ URL, but just deactivates the <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#BLOCK"
>block</A
-></TT
+></VAR
>
- action once again. Then it matches <TT
+ action once again. Then it matches <VAR
CLASS="LITERAL"
->.*ads.</TT
+>.*ads.</VAR
>, an exception to the
general non-blocking policy, and suddenly
- <TT
+ <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#BLOCK"
>+block</A
-></TT
+></VAR
> applies. And now, it'll match
- <TT
+ <VAR
CLASS="LITERAL"
->.*loads.</TT
->, where <TT
+>.*loads.</VAR
+>, where <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#BLOCK"
>-block</A
-></TT
+></VAR
>
applies, so (unless it matches <SPAN
CLASS="emphasis"
>again</I
></SPAN
> further down) it ends up
- with no <TT
+ with no <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#BLOCK"
>block</A
-></TT
+></VAR
> action applying.</P
><P
> <TABLE
CLASS="QUOTE"
>"cvs"</SPAN
> in them. Note that
- <TT
+ <VAR
CLASS="LITERAL"
>-<A
HREF="actions-file.html#FILTER"
>filter</A
-></TT
+></VAR
>
disables <SPAN
CLASS="emphasis"
><H3
CLASS="SECT3"
><A
-NAME="AEN3149"
-></A
->8.7.2. user.action</H3
+NAME="AEN3086"
+>8.7.2. 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,
# These aliases define combinations of actions that are useful for
# certain types of sites:
#
-fragile = -block -crunch-all-cookies -filter -fast-redirects -hide-referer -kill-popups
+fragile = -block -crunch-all-cookies -filter -fast-redirects -hide-referrer -kill-popups
shop = -crunch-all-cookies allow-popups
# Allow ads for selected useful free sites:
> 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
+ <VAR
CLASS="LITERAL"
->allow-all-cookies</TT
+>allow-all-cookies</VAR
> 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
><PRE
CLASS="SCREEN"
>{ allow-all-cookies }
+sourceforge.net
sunsolve.sun.com
-slashdot.org
+.slashdot.org
.yahoo.com
.msdn.microsoft.com
.redhat.com</PRE
></TABLE
></P
><P
-> Some file types you may not want to filter.
- <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> makes no distinctions between regular web
- pages and downloads done via your web browser if it is an html or text type
- document.</P
+> Some file types you may not want to filter for various reasons:</P
><P
> <TABLE
BORDER="0"
><TD
><PRE
CLASS="SCREEN"
-># A list of common file extensions that are likely to indicate raw text, and best
-# if unfiltered.
-/(.*/)?.*\.(pl|(s|p)?h|c(c|xx|pp)?|tcl|am|init?|cfg?|conf(ig)?|txt|rc|bat)$
+># Technical documentation is likely to contain strings that might
+# erroneously get altered by the JavaScript-oriented filters:
+#
+.tldp.org
+/(.*/)?selfhtml/
-# Documentation should not need filtering (at least on some sites).
-.tldp.org</PRE
+# 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
>"copy image location"</SPAN
>
and pasted the URL below while removing the leading http://, into a
- <TT
+ <VAR
CLASS="LITERAL"
->{ +block }</TT
-> section. Note that <TT
+>{ +block }</VAR
+> section. Note that <VAR
CLASS="LITERAL"
>{ +handle-as-image
- }</TT
+ }</VAR
> need not be specified, since all URLs ending in
- <TT
+ <VAR
CLASS="LITERAL"
->.gif</TT
+>.gif</VAR
> will be tagged as images by the general rules as set
in default.action anyway:</P
><P
>block</A
> }
www.example.com/nasty-ads/sponsor.gif
-another.popular.site.net/more/junk/here/
-
-# Here we found one that is not in <SPAN
-CLASS="APPLICATION"
->Privoxy's</SPAN
-> default blocked list:
-.adfactory.net</PRE
+another.popular.site.net/more/junk/here/</PRE
></TD
></TR
></TABLE
></P
><P
-> To force URLs that tend to have ad images, but it is difficult for
- <SPAN
+> 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 know this since the ultimate returned
- object is obscured for one reason or another, we can try to force these to be
- treated as images (and thus avoid <SPAN
-CLASS="APPLICATION"
->Privoxy's</SPAN
->
- <SPAN
+> to guess
+ the file type just by looking at the URL.
+ You can use the <VAR
+CLASS="LITERAL"
+>+block-as-image</VAR
+> 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"
->"BLOCKED"</SPAN
-> banner page). Note that if what is returned by the
- server turns out NOT to be an image, then your browser typically will display
- a broken icon image. Use cautiously.</P
+>"broken image"</SPAN
+> icon by the
+ browser. Use cautiously.</P
><P
> <TABLE
BORDER="0"
><PRE
CLASS="SCREEN"
>{ +block-as-image }
-# A shockwave ad, very annoying.
-.trip.com/.*\.swf
.doubleclick.net
/Realmedia/ads/
-adremote.</PRE
+ar.atwola.com/</PRE
></TD
></TR
></TABLE
HREF="contact.html"
>feedback</A
>, so
- you just used the <TT
+ you just used the <VAR
CLASS="LITERAL"
->fragile</TT
+>fragile</VAR
> alias on the site, and
-- <SPAN
CLASS="emphasis"
CLASS="EMPHASIS"
>whoa!</I
></SPAN
-> -- it worked. The <TT
+> -- it worked. The <VAR
CLASS="LITERAL"
->fragile</TT
+>fragile</VAR
>
aliases disables those actions that are most likely to break a site. Also,
good for testing purposes to see if it is <SPAN
></TABLE
> </P
><P
-> Note that <TT
+> Note that <VAR
CLASS="LITERAL"
->allow-ads</TT
+>allow-ads</VAR
> has been aliased to
- <TT
+ <VAR
CLASS="LITERAL"
>-<A
HREF="actions-file.html#BLOCK"
>block</A
-></TT
+></VAR
>,
- <TT
+ <VAR
CLASS="LITERAL"
>-<A
HREF="actions-file.html#FILTER-BANNERS-BY-SIZE"
>filter{banners-by-size}</A
-></TT
+></VAR
>, and
- <TT
+ <VAR
CLASS="LITERAL"
>-<A
HREF="actions-file.html#FILTER-BANNERS-BY-LINK"
>filter{banners-by-link}</A
-></TT
+></VAR
> above.</P
><P
> <TT
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Appendix</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
-TITLE="Privoxy 3.0.2 User Manual"
+TITLE="Privoxy 3.0.3 User Manual"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="See Also"
><TH
COLSPAN="3"
ALIGN="center"
->Privoxy 3.0.2 User Manual</TH
+>Privoxy 3.0.3 User Manual</TH
></TR
><TR
><TD
CLASS="SECT1"
><A
NAME="APPENDIX"
-></A
->14. Appendix</H1
+>14. Appendix</A
+></H1
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="REGEX"
-></A
->14.1. Regular Expressions</H2
+>14.1. Regular Expressions</A
+></H2
><P
> <SPAN
CLASS="APPLICATION"
CLASS="COMMAND"
>dir</B
> command in DOS.
- <TT
+ <VAR
CLASS="LITERAL"
->*.*</TT
+>*.*</VAR
> 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
+ more specific and use <VAR
CLASS="LITERAL"
->?</TT
+>?</VAR
> to match just individual
characters. So <SPAN
CLASS="QUOTE"
CLASS="emphasis"
><I
CLASS="EMPHASIS"
-><TT
+><VAR
CLASS="LITERAL"
->/.*/banners/.*</TT
+>/.*/banners/.*</VAR
></I
></SPAN
> - A simple example
CLASS="emphasis"
><I
CLASS="EMPHASIS"
-><TT
+><VAR
CLASS="LITERAL"
->/.*/adv((er)?ts?|ertis(ing|ements?))?/</TT
+>/.*/adv((er)?ts?|ertis(ing|ements?))?/</VAR
></I
></SPAN
> -
CLASS="emphasis"
><I
CLASS="EMPHASIS"
-><TT
+><VAR
CLASS="LITERAL"
->/.*/advert[0-9]+\.(gif|jpe?g)</TT
+>/.*/advert[0-9]+\.(gif|jpe?g)</VAR
></I
></SPAN
> - Again
><H2
CLASS="SECT2"
><A
-NAME="AEN3878"
-></A
+NAME="AEN3815"
>14.2. <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
->'s Internal Pages</H2
+>'s Internal Pages</A
+></H2
><P
> Since <SPAN
CLASS="APPLICATION"
Privoxy main page:
</P
><A
-NAME="AEN3893"
+NAME="AEN3830"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
editing of actions files:
</P
><A
-NAME="AEN3901"
+NAME="AEN3838"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
Show the source code version numbers:
</P
><A
-NAME="AEN3906"
+NAME="AEN3843"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
Show the browser's request headers:
</P
><A
-NAME="AEN3911"
+NAME="AEN3848"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
Show which actions apply to a URL and why:
</P
><A
-NAME="AEN3916"
+NAME="AEN3853"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
to run, but only as a pass-through proxy, with no actions taking place:
</P
><A
-NAME="AEN3922"
+NAME="AEN3859"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
> Short cuts. Turn off, then on:
</P
><A
-NAME="AEN3926"
+NAME="AEN3863"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
</P
></BLOCKQUOTE
><A
-NAME="AEN3929"
+NAME="AEN3866"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
CLASS="SECT3"
><A
NAME="BOOKMARKLETS"
-></A
->14.2.1. Bookmarklets</H3
+>14.2.1. Bookmarklets</A
+></H3
><P
> Below are some <SPAN
CLASS="QUOTE"
CLASS="SECT2"
><A
NAME="CHAIN"
-></A
->14.3. Chain of Events</H2
+>14.3. Chain of Events</A
+></H2
><P
> Let's take a quick look at the basic sequence of events when a web page is
requested by your browser and <SPAN
CLASS="SECT2"
><A
NAME="ACTIONSANAT"
-></A
->14.4. Anatomy of an Action</H2
+>14.4. Anatomy of an Action</A
+></H2
><P
> The way <SPAN
CLASS="APPLICATION"
></P
><P
> Now the page displays ;-) Be sure to flush your browser's caches when
- making such changes. Or, try using <TT
+ making such changes. Or, try using <VAR
CLASS="LITERAL"
->Shift+Reload</TT
+>Shift+Reload</VAR
>.</P
><P
> But now what about a situation where we get no explicit matches like
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>The Main Configuration File</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
-TITLE="Privoxy 3.0.2 User Manual"
+TITLE="Privoxy 3.0.3 User Manual"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Privoxy Configuration"
><TH
COLSPAN="3"
ALIGN="center"
->Privoxy 3.0.2 User Manual</TH
+>Privoxy 3.0.3 User Manual</TH
></TR
><TR
><TD
CLASS="SECT1"
><A
NAME="CONFIG"
-></A
->7. The Main Configuration File</H1
+>7. The Main Configuration File</A
+></H1
><P
> Again, the main configuration file is named <TT
CLASS="FILENAME"
values, all separated by whitespace (any number of spaces or tabs). For
example:</P
><P
-> <TT
+> <VAR
CLASS="LITERAL"
> <P
CLASS="LITERALLAYOUT"
></SPAN
></P
>
- </TT
+ </VAR
> </P
><P
-> Assigns the value <TT
+> Assigns the value <VAR
CLASS="LITERAL"
->/etc/privoxy</TT
+>/etc/privoxy</VAR
> to the option
- <TT
+ <VAR
CLASS="LITERAL"
->confdir</TT
+>confdir</VAR
> 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
+> All options in the config file except for <VAR
CLASS="LITERAL"
->confdir</TT
+>confdir</VAR
> and
- <TT
+ <VAR
CLASS="LITERAL"
->logdir</TT
+>logdir</VAR
> are optional. Watch out in the below description
for what happens if you leave them unset.</P
><P
CLASS="SECT2"
><A
NAME="CONF-LOG-LOC"
-></A
->7.1. Configuration and Log File Locations</H2
+>7.1. Configuration and Log File Locations</A
+></H2
><P
> <SPAN
CLASS="APPLICATION"
CLASS="SECT3"
><A
NAME="CONFDIR"
-></A
->7.1.1. confdir</H4
+>7.1.1. confdir</A
+></H4
><P
></P
><DIV
><P
> No trailing <SPAN
CLASS="QUOTE"
->"<TT
+>"<VAR
CLASS="LITERAL"
->/</TT
+>/</VAR
>"</SPAN
>, please
</P
CLASS="SECT3"
><A
NAME="LOGDIR"
-></A
->7.1.2. logdir</H4
+>7.1.2. logdir</A
+></H4
><P
></P
><DIV
><P
> No trailing <SPAN
CLASS="QUOTE"
->"<TT
+>"<VAR
CLASS="LITERAL"
->/</TT
+>/</VAR
>"</SPAN
>, please
</P
CLASS="SECT3"
><A
NAME="ACTIONSFILE"
-></A
->7.1.3. actionsfile</H4
+>7.1.3. actionsfile</A
+></H4
><A
NAME="DEFAULT.ACTION"
></A
>Type of value:</DT
><DD
><P
->File name, relative to <TT
+>File name, relative to <VAR
CLASS="LITERAL"
->confdir</TT
->, without the <TT
+>confdir</VAR
+>, without the <VAR
CLASS="LITERAL"
->.action</TT
+>.action</VAR
> suffix</P
></DD
><DT
>Notes:</DT
><DD
><P
-> Multiple <TT
+> Multiple <VAR
CLASS="LITERAL"
->actionsfile</TT
+>actionsfile</VAR
> lines are permitted, and are in fact recommended!
</P
><P
CLASS="SECT3"
><A
NAME="FILTERFILE"
-></A
->7.1.4. filterfile</H4
+>7.1.4. filterfile</A
+></H4
><A
NAME="DEFAULT.FILTER"
></A
>Type of value:</DT
><DD
><P
->File name, relative to <TT
+>File name, relative to <VAR
CLASS="LITERAL"
->confdir</TT
+>confdir</VAR
></P
></DD
><DT
><DD
><P
> No textual content filtering takes place, i.e. all
- <TT
+ <VAR
CLASS="LITERAL"
>+<A
HREF="actions-file.html#FILTER"
>filter</A
->{<TT
+>{<VAR
CLASS="REPLACEABLE"
-><I
->name</I
-></TT
->}</TT
+>name</VAR
+>}</VAR
>
actions in the actions files are turned neutral.
</P
</P
><P
> The
- <TT
+ <VAR
CLASS="LITERAL"
>+<A
HREF="actions-file.html#FILTER"
>filter</A
->{<TT
+>{<VAR
CLASS="REPLACEABLE"
-><I
->name</I
-></TT
->}</TT
+>name</VAR
+>}</VAR
>
- actions rely on the relevant filter (<TT
+ actions rely on the relevant filter (<VAR
CLASS="REPLACEABLE"
-><I
->name</I
-></TT
+>name</VAR
>)
to be defined in the filter file!
</P
>default.filter</TT
> that contains
a bunch of handy filters for common problems is included in the distribution.
- See the section on the <TT
+ See the section on the <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#FILTER"
>filter</A
-></TT
+></VAR
>
action for a list.
</P
CLASS="SECT3"
><A
NAME="LOGFILE"
-></A
->7.1.5. logfile</H4
+>7.1.5. logfile</A
+></H4
><P
></P
><DIV
>Type of value:</DT
><DD
><P
->File name, relative to <TT
+>File name, relative to <VAR
CLASS="LITERAL"
->logdir</TT
+>logdir</VAR
></P
></DD
><DT
>Effect if unset:</DT
><DD
><P
-> No log file is used, all log messages go to the console (<TT
+> No log file is used, all log messages go to the console (<VAR
CLASS="LITERAL"
->STDERR</TT
+>STDERR</VAR
>).
</P
></DD
><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
+ of detail and number of messages are set with the <VAR
CLASS="LITERAL"
->debug</TT
+>debug</VAR
>
option (see below). The logfile can be useful for tracking down a problem with
<SPAN
CLASS="SECT3"
><A
NAME="JARFILE"
-></A
->7.1.6. jarfile</H4
+>7.1.6. jarfile</A
+></H4
><P
></P
><DIV
>Type of value:</DT
><DD
><P
->File name, relative to <TT
+>File name, relative to <VAR
CLASS="LITERAL"
->logdir</TT
+>logdir</VAR
></P
></DD
><DT
CLASS="SECT3"
><A
NAME="TRUSTFILE"
-></A
->7.1.7. trustfile</H4
+>7.1.7. trustfile</A
+></H4
><P
></P
><DIV
>Type of value:</DT
><DD
><P
->File name, relative to <TT
+>File name, relative to <VAR
CLASS="LITERAL"
->confdir</TT
+>confdir</VAR
></P
></DD
><DT
in one of two ways:
</P
><P
-> Prepending a <TT
+> Prepending a <VAR
CLASS="LITERAL"
->~</TT
+>~</VAR
> character limits access to this site
only (and any sub-paths within this site), e.g.
- <TT
+ <VAR
CLASS="LITERAL"
->~www.example.com</TT
+>~www.example.com</VAR
>.
</P
><P
>trusted referrers</I
></SPAN
>, by
- prepending the name with a <TT
+ prepending the name with a <VAR
CLASS="LITERAL"
->+</TT
+>+</VAR
> character. The effect is that
access to untrusted sites will be granted -- but only if a link from this
trusted referrer was used. The link target will then be added to the
>"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
+ (i.e. they are added with a <VAR
CLASS="LITERAL"
->~</TT
+>~</VAR
> designation).
</P
><P
-> If you use the <TT
+> If you use the <VAR
CLASS="LITERAL"
->+</TT
+>+</VAR
> operator in the trust file, it may grow
considerably over time.
</P
CLASS="APPLICATION"
>Privoxy</SPAN
> be compiled with
- the <TT
+ the <VAR
CLASS="LITERAL"
->--disable-force</TT
->, <TT
+>--disable-force</VAR
+>, <VAR
CLASS="LITERAL"
->--disable-toggle</TT
+>--disable-toggle</VAR
> and
- <TT
+ <VAR
CLASS="LITERAL"
-> --disable-editor</TT
+> --disable-editor</VAR
> options, if this feature is to be
used.
</P
CLASS="SECT2"
><A
NAME="LOCAL-SET-UP"
-></A
->7.2. Local Set-up Documentation</H2
+>7.2. Local Set-up Documentation</A
+></H2
><P
> If you intend to operate <SPAN
CLASS="APPLICATION"
CLASS="SECT3"
><A
NAME="USER-MANUAL"
-></A
->7.2.1. user-manual</H4
+>7.2.1. user-manual</A
+></H4
><P
></P
><DIV
> <A
HREF="http://www.privoxy.org/user-manual/"
TARGET="_top"
->http://www.privoxy.org/<TT
+>http://www.privoxy.org/<VAR
CLASS="REPLACEABLE"
-><I
->version</I
-></TT
+>version</VAR
>/user-manual/</A
>
- will be used, where <TT
+ will be used, where <VAR
CLASS="REPLACEABLE"
-><I
->version</I
-></TT
+>version</VAR
> is the <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
><TD
><PRE
CLASS="SCREEN"
->  user-manual  file:///usr/share/doc/privoxy-3.0.2/user-manual/</PRE
+>  user-manual  file:///usr/share/doc/privoxy-3.0.3/user-manual/</PRE
></TD
></TR
></TABLE
><TD
><PRE
CLASS="SCREEN"
->  user-manual  file:/c:/some-dir/privoxy-3.0.2/user-manual/</PRE
+>  user-manual  file:/c:/some-dir/privoxy-3.0.3/user-manual/</PRE
></TD
></TR
></TABLE
><TD
><PRE
CLASS="SCREEN"
->  user-manual  file://///some-server/some-path/privoxy-3.0.2/user-manual/</PRE
+>  user-manual  file://///some-server/some-path/privoxy-3.0.3/user-manual/</PRE
></TD
></TR
></TABLE
CLASS="SECT3"
><A
NAME="TRUST-INFO-URL"
-></A
->7.2.2. trust-info-url</H4
+>7.2.2. trust-info-url</A
+></H4
><P
></P
><DIV
CLASS="SECT3"
><A
NAME="ADMIN-ADDRESS"
-></A
->7.2.3. admin-address</H4
+>7.2.3. admin-address</A
+></H4
><P
></P
><DIV
>Notes:</DT
><DD
><P
-> If both <TT
+> If both <VAR
CLASS="LITERAL"
->admin-address</TT
-> and <TT
+>admin-address</VAR
+> and <VAR
CLASS="LITERAL"
->proxy-info-url</TT
+>proxy-info-url</VAR
>
are unset, the whole "Local Privoxy Support" box on all generated pages will
not be shown.
CLASS="SECT3"
><A
NAME="PROXY-INFO-URL"
-></A
->7.2.4. proxy-info-url</H4
+>7.2.4. proxy-info-url</A
+></H4
><P
></P
><DIV
>Notes:</DT
><DD
><P
-> If both <TT
+> If both <VAR
CLASS="LITERAL"
->admin-address</TT
-> and <TT
+>admin-address</VAR
+> and <VAR
CLASS="LITERAL"
->proxy-info-url</TT
+>proxy-info-url</VAR
>
are unset, the whole "Local Privoxy Support" box on all generated pages will
not be shown.
CLASS="SECT2"
><A
NAME="DEBUGGING"
-></A
->7.3. Debugging</H2
+>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
+> with the <VAR
CLASS="LITERAL"
->--no-daemon</TT
+>--no-daemon</VAR
>
command line option when debugging.
</P
CLASS="SECT3"
><A
NAME="DEBUG"
-></A
->7.3.1. debug</H4
+>7.3.1. debug</A
+></H4
><P
></P
><DIV
</P
><P
> To select multiple debug levels, you can either add them or use
- multiple <TT
+ multiple <VAR
CLASS="LITERAL"
->debug</TT
+>debug</VAR
> lines.
</P
><P
CLASS="SECT3"
><A
NAME="SINGLE-THREADED"
-></A
->7.3.2. single-threaded</H4
+>7.3.2. single-threaded</A
+></H4
><P
></P
><DIV
CLASS="SECT2"
><A
NAME="ACCESS-CONTROL"
-></A
->7.4. Access Control and Security</H2
+>7.4. Access Control and Security</A
+></H2
><P
> This section of the config file controls the security-relevant aspects
of <SPAN
CLASS="SECT3"
><A
NAME="LISTEN-ADDRESS"
-></A
->7.4.1. listen-address</H4
+>7.4.1. listen-address</A
+></H4
><P
></P
><DIV
>Type of value:</DT
><DD
><P
->[<TT
+>[<VAR
CLASS="REPLACEABLE"
-><I
->IP-Address</I
-></TT
->]:<TT
+>IP-Address</VAR
+>]:<VAR
CLASS="REPLACEABLE"
-><I
->Port</I
-></TT
+>Port</VAR
></P
></DD
><DT
CLASS="APPLICATION"
>Privoxy</SPAN
> to untrusted users, you will
- also want to turn off the <TT
+ also want to turn off the <VAR
CLASS="LITERAL"
><A
HREF="config.html#ENABLE-EDIT-ACTIONS"
>enable-edit-actions</A
-></TT
+></VAR
> and
- <TT
+ <VAR
CLASS="LITERAL"
><A
HREF="config.html#ENABLE-REMOTE-TOGGLE"
>enable-remote-toggle</A
-></TT
+></VAR
>
options!
</P
CLASS="SECT3"
><A
NAME="TOGGLE"
-></A
->7.4.2. toggle</H4
+>7.4.2. toggle</A
+></H4
><P
></P
><DIV
>"toggled off"</SPAN
> mode, i.e. behave like a normal, content-neutral
proxy where all ad blocking, filtering, etc are disabled. See
- <TT
+ <VAR
CLASS="LITERAL"
->enable-remote-toggle</TT
+>enable-remote-toggle</VAR
> below. This is not really useful
anymore, since toggling is much easier via <A
HREF="http://config.privoxy.org/toggle"
CLASS="SECT3"
><A
NAME="ENABLE-REMOTE-TOGGLE"
-></A
->7.4.3. enable-remote-toggle</H4
+>7.4.3. enable-remote-toggle</A
+></H4
><P
></P
><DIV
<SPAN
CLASS="QUOTE"
>"ACLs"</SPAN
-> and <TT
+> and <VAR
CLASS="LITERAL"
->listen-address</TT
+>listen-address</VAR
> above) can
toggle it for all users. So this option is <SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="ENABLE-EDIT-ACTIONS"
-></A
->7.4.4. enable-edit-actions</H4
+>7.4.4. enable-edit-actions</A
+></H4
><P
></P
><DIV
<SPAN
CLASS="QUOTE"
>"ACLs"</SPAN
-> and <TT
+> and <VAR
CLASS="LITERAL"
->listen-address</TT
+>listen-address</VAR
> above) can
modify its configuration for all users. So this option is <SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="ACLS"
-></A
->7.4.5. ACLs: permit-access and deny-access</H4
+>7.4.5. ACLs: permit-access and deny-access</A
+></H4
><A
NAME="PERMIT-ACCESS"
></A
>Type of value:</DT
><DD
><P
-> <TT
+> <VAR
CLASS="REPLACEABLE"
-><I
->src_addr</I
-></TT
->[/<TT
+>src_addr</VAR
+>[/<VAR
CLASS="REPLACEABLE"
-><I
->src_masklen</I
-></TT
+>src_masklen</VAR
>]
- [<TT
+ [<VAR
CLASS="REPLACEABLE"
-><I
->dst_addr</I
-></TT
->[/<TT
+>dst_addr</VAR
+>[/<VAR
CLASS="REPLACEABLE"
-><I
->dst_masklen</I
-></TT
+>dst_masklen</VAR
>]]
</P
><P
-> Where <TT
+> Where <VAR
CLASS="REPLACEABLE"
-><I
->src_addr</I
-></TT
+>src_addr</VAR
> and
- <TT
+ <VAR
CLASS="REPLACEABLE"
-><I
->dst_addr</I
-></TT
+>dst_addr</VAR
> are IP addresses in dotted decimal notation or valid
- DNS names, and <TT
+ DNS names, and <VAR
CLASS="REPLACEABLE"
-><I
->src_masklen</I
-></TT
+>src_masklen</VAR
> and
- <TT
+ <VAR
CLASS="REPLACEABLE"
-><I
->dst_masklen</I
-></TT
+>dst_masklen</VAR
> 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.
>Effect if unset:</DT
><DD
><P
-> Don't restrict access further than implied by <TT
+> Don't restrict access further than implied by <VAR
CLASS="LITERAL"
->listen-address</TT
+>listen-address</VAR
>
</P
></DD
CLASS="APPLICATION"
>Privoxy</SPAN
>
- talks only to IP addresses that match at least one <TT
+ talks only to IP addresses that match at least one <VAR
CLASS="LITERAL"
->permit-access</TT
+>permit-access</VAR
> line
- and don't match any subsequent <TT
+ and don't match any subsequent <VAR
CLASS="LITERAL"
->deny-access</TT
+>deny-access</VAR
> line. In other words, the
- last match wins, with the default being <TT
+ last match wins, with the default being <VAR
CLASS="LITERAL"
->deny-access</TT
+>deny-access</VAR
>.
</P
><P
> If <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> is using a forwarder (see <TT
+> is using a forwarder (see <VAR
CLASS="LITERAL"
->forward</TT
+>forward</VAR
> below)
- for a particular destination URL, the <TT
+ for a particular destination URL, the <VAR
CLASS="REPLACEABLE"
-><I
->dst_addr</I
-></TT
+>dst_addr</VAR
>
that is examined is the address of the forwarder and <SPAN
CLASS="emphasis"
><DD
><P
> Explicitly define the default behavior if no ACL and
- <TT
+ <VAR
CLASS="LITERAL"
->listen-address</TT
+>listen-address</VAR
> are set: <SPAN
CLASS="QUOTE"
>"localhost"</SPAN
>
- is OK. The absence of a <TT
+ is OK. The absence of a <VAR
CLASS="REPLACEABLE"
-><I
->dst_addr</I
-></TT
+>dst_addr</VAR
> implies that
<SPAN
CLASS="emphasis"
CLASS="SECT3"
><A
NAME="BUFFER-LIMIT"
-></A
->7.4.6. buffer-limit</H4
+>7.4.6. buffer-limit</A
+></H4
><P
></P
><DIV
>Notes:</DT
><DD
><P
-> For content filtering, i.e. the <TT
+> For content filtering, i.e. the <VAR
CLASS="LITERAL"
->+filter</TT
+>+filter</VAR
> and
- <TT
+ <VAR
CLASS="LITERAL"
->+deanimate-gif</TT
+>+deanimate-gif</VAR
> actions, it is necessary that
<SPAN
CLASS="APPLICATION"
Hence this option.
</P
><P
-> When a document buffer size reaches the <TT
+> When a document buffer size reaches the <VAR
CLASS="LITERAL"
->buffer-limit</TT
+>buffer-limit</VAR
>, 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
+ running, which might require up to <VAR
CLASS="LITERAL"
->buffer-limit</TT
+>buffer-limit</VAR
> Kbytes
<SPAN
CLASS="emphasis"
CLASS="SECT2"
><A
NAME="FORWARDING"
-></A
->7.5. Forwarding</H2
+>7.5. Forwarding</A
+></H2
><P
> This feature allows routing of HTTP requests through a chain of
multiple proxies.
CLASS="SECT3"
><A
NAME="FORWARD"
-></A
->7.5.1. forward</H4
+>7.5.1. forward</A
+></H4
><P
></P
><DIV
>Type of value:</DT
><DD
><P
-> <TT
+> <VAR
CLASS="REPLACEABLE"
-><I
->target_pattern</I
-></TT
+>target_pattern</VAR
>
- <TT
+ <VAR
CLASS="REPLACEABLE"
-><I
->http_parent</I
-></TT
->[:<TT
+>http_parent</VAR
+>[:<VAR
CLASS="REPLACEABLE"
-><I
->port</I
-></TT
+>port</VAR
>]
</P
><P
-> where <TT
+> where <VAR
CLASS="REPLACEABLE"
-><I
->target_pattern</I
-></TT
+>target_pattern</VAR
> 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
+ that specifies to which requests (i.e. URLs) this forward rule shall apply. Use <VAR
CLASS="LITERAL"
->/</TT
+>/</VAR
> to
denote <SPAN
CLASS="QUOTE"
>"all URLs"</SPAN
>.
- <TT
+ <VAR
CLASS="REPLACEABLE"
-><I
->http_parent</I
-></TT
->[:<TT
+>http_parent</VAR
+>[:<VAR
CLASS="REPLACEABLE"
-><I
->port</I
-></TT
+>port</VAR
>]
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: 8080).
- Use a single dot (<TT
+ Use a single dot (<VAR
CLASS="LITERAL"
->.</TT
+>.</VAR
>) to denote <SPAN
CLASS="QUOTE"
>"no forwarding"</SPAN
>Notes:</DT
><DD
><P
-> If <TT
+> If <VAR
CLASS="REPLACEABLE"
-><I
->http_parent</I
-></TT
+>http_parent</VAR
> is <SPAN
CLASS="QUOTE"
>"."</SPAN
CLASS="SECT3"
><A
NAME="SOCKS"
-></A
->7.5.2. forward-socks4 and forward-socks4a</H4
+>7.5.2. forward-socks4 and forward-socks4a</A
+></H4
><A
NAME="FORWARD-SOCKS4"
></A
>Type of value:</DT
><DD
><P
-> <TT
+> <VAR
CLASS="REPLACEABLE"
-><I
->target_pattern</I
-></TT
+>target_pattern</VAR
>
- <TT
+ <VAR
CLASS="REPLACEABLE"
-><I
->socks_proxy</I
-></TT
->[:<TT
+>socks_proxy</VAR
+>[:<VAR
CLASS="REPLACEABLE"
-><I
->port</I
-></TT
+>port</VAR
>]
- <TT
+ <VAR
CLASS="REPLACEABLE"
-><I
->http_parent</I
-></TT
->[:<TT
+>http_parent</VAR
+>[:<VAR
CLASS="REPLACEABLE"
-><I
->port</I
-></TT
+>port</VAR
>]
</P
><P
-> where <TT
+> where <VAR
CLASS="REPLACEABLE"
-><I
->target_pattern</I
-></TT
+>target_pattern</VAR
> 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
+ that specifies to which requests (i.e. URLs) this forward rule shall apply. Use <VAR
CLASS="LITERAL"
->/</TT
+>/</VAR
> to
denote <SPAN
CLASS="QUOTE"
>"all URLs"</SPAN
>.
- <TT
+ <VAR
CLASS="REPLACEABLE"
-><I
->http_parent</I
-></TT
-> and <TT
+>http_parent</VAR
+> and <VAR
CLASS="REPLACEABLE"
-><I
->socks_proxy</I
-></TT
+>socks_proxy</VAR
>
- are IP addresses in dotted decimal notation or valid DNS names (<TT
+ are IP addresses in dotted decimal notation or valid DNS names (<VAR
CLASS="REPLACEABLE"
-><I
->http_parent</I
-></TT
+>http_parent</VAR
>
may be <SPAN
CLASS="QUOTE"
CLASS="QUOTE"
>"no HTTP forwarding"</SPAN
>), and the optional
- <TT
+ <VAR
CLASS="REPLACEABLE"
-><I
->port</I
-></TT
+>port</VAR
> parameters are TCP ports, i.e. integer values from 1 to 64535
</P
></DD
> Multiple lines are OK, they are checked in sequence, and the last match wins.
</P
><P
-> The difference between <TT
+> The difference between <VAR
CLASS="LITERAL"
->forward-socks4</TT
-> and <TT
+>forward-socks4</VAR
+> and <VAR
CLASS="LITERAL"
->forward-socks4a</TT
+>forward-socks4a</VAR
>
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
-> If <TT
+> If <VAR
CLASS="REPLACEABLE"
-><I
->http_parent</I
-></TT
+>http_parent</VAR
> is <SPAN
CLASS="QUOTE"
>"."</SPAN
CLASS="SECT3"
><A
NAME="ADVANCED-FORWARDING-EXAMPLES"
-></A
->7.5.3. Advanced Forwarding Examples</H4
+>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"
>squid</SPAN
> locally, then chain as
- <TT
+ <VAR
CLASS="LITERAL"
->browser -> squid -> privoxy</TT
+>browser -> squid -> privoxy</VAR
> is the recommended way. </P
><P
> Assuming that <SPAN
CLASS="APPLICATION"
>squid</SPAN
>'s address and port.
- Squid normally uses port 3128. If unsure consult <TT
+ Squid normally uses port 3128. If unsure consult <VAR
CLASS="LITERAL"
->http_port</TT
+>http_port</VAR
> in <TT
CLASS="FILENAME"
>squid.conf</TT
>.</P
><P
> You could just as well decide to only forward requests for Windows executables through
- a virus-scanning parent proxy, say, on <TT
+ a virus-scanning parent proxy, say, on <VAR
CLASS="LITERAL"
->antivir.example.com</TT
+>antivir.example.com</VAR
>, port 8010:</P
><P
> <TABLE
CLASS="SECT2"
><A
NAME="WINDOWS-GUI"
-></A
->7.6. Windows GUI Options</H2
+>7.6. Windows GUI Options</A
+></H2
><P
> <SPAN
CLASS="APPLICATION"
>"Privoxy"</SPAN
> is active. To turn off, set to 0.</P
><P
-> <TT
+> <VAR
CLASS="LITERAL"
> <P
CLASS="LITERALLAYOUT"
><br>
</P
>
- </TT
+ </VAR
></P
><A
NAME="LOG-MESSAGES"
> will log messages to the console
window:</P
><P
-> <TT
+> <VAR
CLASS="LITERAL"
> <P
CLASS="LITERALLAYOUT"
><br>
</P
>
- </TT
+ </VAR
></P
><A
NAME="LOG-BUFFER-SIZE"
> Warning: Setting this to 0 will result in the buffer to grow infinitely and
eat up all your memory!</P
><P
-> <TT
+> <VAR
CLASS="LITERAL"
> <P
CLASS="LITERALLAYOUT"
><br>
</P
>
- </TT
+ </VAR
></P
><A
NAME="LOG-MAX-LINES"
> is the maximum number of lines held
in the log buffer. See above.</P
><P
-> <TT
+> <VAR
CLASS="LITERAL"
> <P
CLASS="LITERALLAYOUT"
><br>
</P
>
- </TT
+ </VAR
></P
><A
NAME="LOG-HIGHLIGHT-MESSAGES"
> will highlight portions of the log
messages with a bold-faced font:</P
><P
-> <TT
+> <VAR
CLASS="LITERAL"
> <P
CLASS="LITERALLAYOUT"
><br>
</P
>
- </TT
+ </VAR
></P
><A
NAME="LOG-FONT-NAME"
><P
> The font used in the console window:</P
><P
-> <TT
+> <VAR
CLASS="LITERAL"
> <P
CLASS="LITERALLAYOUT"
><br>
</P
>
- </TT
+ </VAR
></P
><A
NAME="LOG-FONT-SIZE"
><P
> Font size used in the console window:</P
><P
-> <TT
+> <VAR
CLASS="LITERAL"
> <P
CLASS="LITERALLAYOUT"
><br>
</P
>
- </TT
+ </VAR
></P
><A
NAME="SHOW-ON-TASK-BAR"
> will appear as a button on the Task bar
when minimized:</P
><P
-> <TT
+> <VAR
CLASS="LITERAL"
> <P
CLASS="LITERALLAYOUT"
><br>
</P
>
- </TT
+ </VAR
></P
><A
NAME="CLOSE-BUTTON-MINIMIZES"
> instead of closing
the program (close with the exit option on the File menu).</P
><P
-> <TT
+> <VAR
CLASS="LITERAL"
> <P
CLASS="LITERALLAYOUT"
><br>
</P
>
- </TT
+ </VAR
></P
><A
NAME="HIDE-CONSOLE"
> will disconnect from and hide the
command console.</P
><P
-> <TT
+> <VAR
CLASS="LITERAL"
> <P
CLASS="LITERALLAYOUT"
><br>
</P
>
- </TT
+ </VAR
></P
></DIV
></DIV
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Privoxy Configuration</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
-TITLE="Privoxy 3.0.2 User Manual"
+TITLE="Privoxy 3.0.3 User Manual"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Starting Privoxy"
><TH
COLSPAN="3"
ALIGN="center"
->Privoxy 3.0.2 User Manual</TH
+>Privoxy 3.0.3 User Manual</TH
></TR
><TR
><TD
CLASS="SECT1"
><A
NAME="CONFIGURATION"
-></A
>6. <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> Configuration</H1
+> Configuration</A
+></H1
><P
> All <SPAN
CLASS="APPLICATION"
><H2
CLASS="SECT2"
><A
-NAME="AEN650"
-></A
+NAME="AEN585"
>6.1. Controlling <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> with Your Web Browser</H2
+> with Your Web Browser</A
+></H2
><P
> <SPAN
CLASS="APPLICATION"
> <H2
CLASS="BRIDGEHEAD"
><A
-NAME="AEN659"
+NAME="AEN594"
></A
>Â Â Â Â Privoxy Menu</H2
><P
><TR
><TD
> Â Â Â Â Â Â Â Â ▪Â Â <A
-HREF="http://www.privoxy.org/3.0.2/user-manual/"
+HREF="http://www.privoxy.org/3.0.3/user-manual/"
TARGET="_top"
>Documentation</A
>
CLASS="SECT2"
><A
NAME="CONFOVERVIEW"
-></A
->6.2. Configuration Files Overview</H2
+>6.2. Configuration Files Overview</A
+></H2
><P
> For Unix, *BSD and Linux, all configuration files are located in
<TT
>) 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.
+ whether to apply them or not is up to the actions files. Only one filter
+ file may be defined.
</P
></LI
></UL
><P
> All files use the <SPAN
CLASS="QUOTE"
->"<TT
+>"<VAR
CLASS="LITERAL"
->#</TT
+>#</VAR
>"</SPAN
> character to denote a
comment (the rest of the line will be ignored) and understand line continuation
- through placing a backslash ("<TT
+ through placing a backslash ("<VAR
CLASS="LITERAL"
->\</TT
+>\</VAR
>") as the very last character
- in a line. If the <TT
+ in a line. If the <VAR
CLASS="LITERAL"
->#</TT
+>#</VAR
> is preceded by a backslash, it looses
- its special function. Placing a <TT
+ its special function. Placing a <VAR
CLASS="LITERAL"
->#</TT
+>#</VAR
> in front of an otherwise
valid configuration line to prevent it from being interpreted is called "commenting
out" that line.</P
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
Requests</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
-TITLE="Privoxy 3.0.2 User Manual"
+TITLE="Privoxy 3.0.3 User Manual"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Templates"
><TH
COLSPAN="3"
ALIGN="center"
->Privoxy 3.0.2 User Manual</TH
+>Privoxy 3.0.3 User Manual</TH
></TR
><TR
><TD
CLASS="SECT1"
><A
NAME="CONTACT"
-></A
>11. Contacting the Developers, Bug Reporting and Feature
-Requests</H1
+Requests</A
+></H1
><P
> We value your feedback. In fact, we rely on it to improve
<SPAN
CLASS="SECT2"
><A
NAME="CONTACT-SUPPORT"
-></A
->11.1. Get Support</H2
+>11.1. Get Support</A
+></H2
><P
-> For casual users, our support forum at
+> For casual users, our
<A
-HREF="http://sourceforge.net/"
+HREF="http://sourceforge.net/tracker/?group_id=11118&atid=211118"
TARGET="_top"
->SourceForge</A
+>support forum at SourceForge</A
>
is probably best suited:
<A
CLASS="SECT2"
><A
NAME="CONTACT-BUGS"
-></A
->11.2. Report Bugs</H2
+>11.2. Report Bugs</A
+></H2
><P
> Please report all bugs <SPAN
CLASS="emphasis"
CLASS="SECT2"
><A
NAME="CONTACT-FEATURE"
-></A
->11.3. Request New Features</H2
+>11.3. 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
CLASS="SECT2"
><A
NAME="CONTACT-ADS"
-></A
->11.4. Report Ads or Other Actions-Related Problems</H2
+>11.4. Report Ads or Other Actions-Related Problems</A
+></H2
><P
> Please send feedback on ads that slipped through, innocent images that were blocked,
and any other problems relating to the <TT
CLASS="SECT2"
><A
NAME="CONTACT-OTHER"
-></A
->11.5. Other</H2
+>11.5. Other</A
+></H2
><P
>For any other issues, feel free to use the mailing lists. Technically interested users
and people who wish to contribute to the project are also welcome on the developers list!
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Privoxy Copyright, License and History</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
-TITLE="Privoxy 3.0.2 User Manual"
+TITLE="Privoxy 3.0.3 User Manual"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Contacting the Developers, Bug Reporting and Feature
><TH
COLSPAN="3"
ALIGN="center"
->Privoxy 3.0.2 User Manual</TH
+>Privoxy 3.0.3 User Manual</TH
></TR
><TR
><TD
CLASS="SECT1"
><A
NAME="COPYRIGHT"
-></A
>12. <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> Copyright, License and History</H1
+> Copyright, License and History</A
+></H1
><P
-> Copyright © 2001 - 2003 by Privoxy Developers <TT
+> Copyright © 2001 - 2004 by Privoxy Developers <CODE
CLASS="EMAIL"
><<A
HREF="mailto:developers@privoxy.org"
>developers@privoxy.org</A
->></TT
+>></CODE
></P
><P
> Some source code is based on code Copyright © 1997 by Anonymous Coders
><H2
CLASS="SECT2"
><A
-NAME="AEN3624"
-></A
->12.1. License</H2
+NAME="AEN3561"
+>12.1. License</A
+></H2
><P
> <SPAN
CLASS="APPLICATION"
CLASS="SECT2"
><A
NAME="HISTORY"
-></A
->12.2. History</H2
+>12.2. History</A
+></H2
><P
> In the beginning, there was the
<A
CLASS="SECT2"
><A
NAME="AUTHORS"
-></A
->12.3. Authors</H2
+>12.3. Authors</A
+></H2
><P
> Current Developement Team:</P
><P
CLASS="LITERALLAYOUT"
> Hal Burgiss (docs)<br>
- Jon Foster<br>
Andreas Oesterhelt<br>
David Schmidt (OS/2, Mac OSX ports)<br>
<br> </P
> Johny Agotnes <br>
Rodrigo Barbosa (RPM specfiles)<br>
Moritz Barsnick<br>
+ Brian Dessent<br>
Mattes Dolak <br>
+ Jon Foster<br>
Karsten Hopp (Red Hat)<br>
Alexander Lazic<br>
Daniel Leite<br>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>The Filter File</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
-TITLE="Privoxy 3.0.2 User Manual"
+TITLE="Privoxy 3.0.3 User Manual"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Actions Files"
><TH
COLSPAN="3"
ALIGN="center"
->Privoxy 3.0.2 User Manual</TH
+>Privoxy 3.0.3 User Manual</TH
></TR
><TR
><TD
CLASS="SECT1"
><A
NAME="FILTER-FILE"
-></A
->9. The Filter File</H1
+>9. The Filter File</A
+></H1
><P
> All text substitutions that can be invoked through the
- <TT
+ <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#FILTER"
>filter</A
-></TT
+></VAR
> action
must first be defined in the filter file, which is typically
called <TT
CLASS="FILENAME"
>default.filter</TT
> and which can be
- selected through the <TT
+ selected through the <VAR
CLASS="LITERAL"
> <A
HREF="config.html#FILTERFILE"
>filterfile</A
-></TT
+></VAR
> config
option.</P
><P
width and height attributes (standard banner sizes or web-bugs),
or just to have fun. The possibilities are endless.</P
><P
-> Filtering works on any text-based document type, including plain
- text, HTML, JavaScript, CSS etc. (all <TT
+> Filtering works on any text-based document type, including
+ HTML, JavaScript, CSS etc. (all <VAR
CLASS="LITERAL"
->text/*</TT
+>text/*</VAR
>
- MIME types). Substitutions are made at the source level, so if
- you want to <SPAN
+ MIME types, <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>except</I
+></SPAN
+> <VAR
+CLASS="LITERAL"
+>text/plain</VAR
+>).
+ Substitutions are made at the source level, so if you want to <SPAN
CLASS="QUOTE"
->"roll your own"</SPAN
-> filters, you should be
- familiar with HTML syntax.</P
+>"roll
+ your own"</SPAN
+> filters, you should be familiar with HTML syntax.</P
><P
> Just like the <A
HREF="actions-file.html"
CLASS="EMPHASIS"
>keyword</I
></SPAN
-> <TT
+> <VAR
CLASS="LITERAL"
->FILTER:</TT
+>FILTER:</VAR
>, followed by
the filter's <SPAN
CLASS="emphasis"
user interface</A
>.</P
><P
-> Once a filter called <TT
+> Once a filter called <VAR
CLASS="REPLACEABLE"
-><I
->name</I
-></TT
+>name</VAR
> has been defined
in the filter file, it can be invoked by using an action of the form
- +<TT
+ +<VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#FILTER"
>filter</A
->{<TT
+>{<VAR
CLASS="REPLACEABLE"
-><I
->name</I
-></TT
->}</TT
+>name</VAR
+>}</VAR
>
in any <A
HREF="actions-file.html"
TARGET="_top"
>Perl</A
>'s
- <TT
+ <VAR
CLASS="LITERAL"
->s///</TT
+>s///</VAR
> operator. If you are familiar with Perl, you
will find this to be quite intuitive, and may want to look at the
<A
>PCRS man page</A
>
for the subtle differences to Perl behaviour. Most notably, the non-standard
- option letter <TT
+ option letter <VAR
CLASS="LITERAL"
->U</TT
+>U</VAR
> is supported, which turns the default
to ungreedy matching.</P
><P
HREF="http://perldoc.com/perl5.6.1/pod/perlop.html#s-PATTERN-REPLACEMENT-egimosx"
TARGET="_top"
>the
- <TT
+ <VAR
CLASS="LITERAL"
->s///</TT
+>s///</VAR
> operator's syntax</A
> and <A
HREF="http://perldoc.com/perl5.6.1/pod/perlre.html"
><H2
CLASS="SECT2"
><A
-NAME="AEN3275"
-></A
->9.1. Filter File Tutorial</H2
+NAME="AEN3212"
+>9.1. Filter File Tutorial</A
+></H2
><P
> Now, let's complete our <SPAN
CLASS="QUOTE"
CLASS="QUOTE"
>"foo"</SPAN
> on each page. For global substitution,
- we'll need to add the <TT
+ we'll need to add the <VAR
CLASS="LITERAL"
->g</TT
+>g</VAR
> option:</P
><P
> <TABLE
></P
><P
> Following the header line and a comment, you see the job. Note that it uses
- <TT
+ <VAR
CLASS="LITERAL"
->|</TT
-> as the delimiter instead of <TT
+>|</VAR
+> as the delimiter instead of <VAR
CLASS="LITERAL"
->/</TT
+>/</VAR
>, because
the pattern contains a forward slash, which would otherwise have to be escaped
- by a backslash (<TT
+ by a backslash (<VAR
CLASS="LITERAL"
->\</TT
+>\</VAR
>).</P
><P
-> Now, let's examine the pattern: it starts with the text <TT
+> Now, let's examine the pattern: it starts with the text <VAR
CLASS="LITERAL"
-><script.*</TT
+><script.*</VAR
>
- enclosed in parentheses. Since the dot matches any character, and <TT
+ enclosed in parentheses. Since the dot matches any character, and <VAR
CLASS="LITERAL"
->*</TT
+>*</VAR
>
means: <SPAN
CLASS="QUOTE"
> 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
+> That's more than we want, but the pattern continues: <VAR
CLASS="LITERAL"
->document\.referrer</TT
+>document\.referrer</VAR
>
matches only the exact string <SPAN
CLASS="QUOTE"
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
+ is <VAR
CLASS="LITERAL"
->.*</script></TT
->. You already know what <TT
+>.*</script></VAR
+>. You already know what <VAR
CLASS="LITERAL"
->.*</TT
+>.*</VAR
>
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
><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
+ remembered and be available through the variables <VAR
CLASS="LITERAL"
->$1, $2, ...</TT
+>$1, $2, ...</VAR
> in
- the substitute. The <TT
+ the substitute. The <VAR
CLASS="LITERAL"
->U</TT
+>U</VAR
> option switches to ungreedy matching, which means
- that the first <TT
+ that the first <VAR
CLASS="LITERAL"
->.*</TT
+>.*</VAR
> in the pattern will only <SPAN
CLASS="QUOTE"
>"eat up"</SPAN
of <SPAN
CLASS="QUOTE"
>"document.referrer"</SPAN
->, and that the second <TT
+>, and that the second <VAR
CLASS="LITERAL"
->.*</TT
+>.*</VAR
> will
only span the text up to the <SPAN
CLASS="emphasis"
CLASS="QUOTE"
>"</script>"</SPAN
>
- tag. Furthermore, the <TT
+ tag. Furthermore, the <VAR
CLASS="LITERAL"
->s</TT
+>s</VAR
> option says that the match may span
- multiple lines in the page, and the <TT
+ multiple lines in the page, and the <VAR
CLASS="LITERAL"
->g</TT
+>g</VAR
> option again means that the
substitution is global.</P
><P
<SPAN
CLASS="QUOTE"
>"document.referrer"</SPAN
-> as <TT
+> as <VAR
CLASS="LITERAL"
->$1</TT
+>$1</VAR
>, and the part following
- that string, up to and including the closing tag, as <TT
+ that string, up to and including the closing tag, as <VAR
CLASS="LITERAL"
->$2</TT
+>$2</VAR
>.</P
><P
> Now the pattern is deciphered, but wasn't this about substituting things? So
- lets look at the substitute: <TT
+ lets look at the substitute: <VAR
CLASS="LITERAL"
->$1"Not Your Business!"$2</TT
+>$1"Not Your Business!"$2</VAR
> is
- easy to read: The text remembered as <TT
+ easy to read: The text remembered as <VAR
CLASS="LITERAL"
->$1</TT
+>$1</VAR
>, followed by
- <TT
+ <VAR
CLASS="LITERAL"
->"Not Your Business!"</TT
+>"Not Your Business!"</VAR
> (<SPAN
CLASS="emphasis"
><I
>including</I
></SPAN
>
- the quotation marks!), followed by the text remembered as <TT
+ the quotation marks!), followed by the text remembered as <VAR
CLASS="LITERAL"
->$2</TT
+>$2</VAR
>.
This produces an exact copy of the original string, with the middle part
(the <SPAN
CLASS="QUOTE"
>"document.referrer"</SPAN
->) replaced by <TT
+>) replaced by <VAR
CLASS="LITERAL"
>"Not Your
- Business!"</TT
+ Business!"</VAR
>.</P
><P
> The whole job now reads: Replace <SPAN
CLASS="QUOTE"
>"document.referrer"</SPAN
> by
- <TT
+ <VAR
CLASS="LITERAL"
->"Not Your Business!"</TT
+>"Not Your Business!"</VAR
> 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
></TABLE
></P
><P
-> <TT
+> <VAR
CLASS="LITERAL"
->\s</TT
+>\s</VAR
> stands for whitespace characters (space, tab, newline,
- carriage return, form feed), so that <TT
+ carriage return, form feed), so that <VAR
CLASS="LITERAL"
->\s*</TT
+>\s*</VAR
> means: <SPAN
CLASS="QUOTE"
>"zero
or more whitespace"</SPAN
->. The <TT
+>. The <VAR
CLASS="LITERAL"
->?</TT
-> in <TT
+>?</VAR
+> in <VAR
CLASS="LITERAL"
->.*?</TT
+>.*?</VAR
>
- makes this matching of arbitrary text ungreedy. (Note that the <TT
+ makes this matching of arbitrary text ungreedy. (Note that the <VAR
CLASS="LITERAL"
->U</TT
+>U</VAR
>
- option is not set). The <TT
+ option is not set). The <VAR
CLASS="LITERAL"
->['"]</TT
+>['"]</VAR
> construct means: <SPAN
CLASS="QUOTE"
>"a single
>or</I
></SPAN
> a double quote"</SPAN
->. Finally, <TT
+>. Finally, <VAR
CLASS="LITERAL"
->\1</TT
+>\1</VAR
> is
- a backreference to the first parenthesis just like <TT
+ a backreference to the first parenthesis just like <VAR
CLASS="LITERAL"
->$1</TT
+>$1</VAR
> above,
with the difference that in the <SPAN
CLASS="emphasis"
<SPAN
CLASS="QUOTE"
>"<body>"</SPAN
-> tags with the dummy word <TT
+> tags with the dummy word <VAR
CLASS="LITERAL"
->never</TT
+>never</VAR
>.
- Note that the <TT
+ Note that the <VAR
CLASS="LITERAL"
->i</TT
+>i</VAR
> 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
+ a minimal match: In the first parenthesis, we had to use <VAR
CLASS="LITERAL"
->[^>]*</TT
+>[^>]*</VAR
>
- instead of <TT
+ instead of <VAR
CLASS="LITERAL"
->.*</TT
+>.*</VAR
> to prevent the match from exceeding the
<body> tag if it doesn't contain <SPAN
CLASS="QUOTE"
></TABLE
></P
><P
-> Note the <TT
+> Note the <VAR
CLASS="LITERAL"
->(?!\.com)</TT
+>(?!\.com)</VAR
> part (a so-called negative lookahead)
in the job's pattern, which means: Don't match, if the string
<SPAN
></TABLE
></P
><P
-> The <TT
+> The <VAR
CLASS="LITERAL"
->x</TT
+>x</VAR
> 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
CLASS="SECT2"
><A
NAME="PREDEFINED-FILTERS"
-></A
->9.2. The Pre-defined Filters</H2
+>9.2. The Pre-defined Filters</A
+></H2
><P
>The distribution <TT
CLASS="FILENAME"
><LI
><P
> replaces JavaScript references to the browser's referrer information
- with the string "Not Your Business!". This compliments the <TT
+ with the string "Not Your Business!". This compliments the <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#HIDE-REFERRER"
>hide-referrer</A
-></TT
+></VAR
> action on the content level.
</P
></LI
> This filter will undo many common instances of HTML based abuse.
</P
><P
-> The <TT
+> The <VAR
CLASS="LITERAL"
->BLINK</TT
-> and <TT
+>BLINK</VAR
+> and <VAR
CLASS="LITERAL"
->MARQUEE</TT
+>MARQUEE</VAR
> tags
are neutralized (yeah baby!), and browser windows will be created as
resizable (as of course they should be!), and will have location,
><P
> Most cookies are set in the HTTP dialogue, where they can be intercepted
by the
- <TT
+ <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#CRUNCH-INCOMING-COOKIES"
>crunch-incoming-cookies</A
-></TT
+></VAR
>
- and <TT
+ and <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#CRUNCH-OUTGOING-COOKIES"
>crunch-outgoing-cookies</A
-></TT
+></VAR
>
actions. But web sites increasingly make use of HTML meta tags and JavaScript
to sneak cookies to the browser on the content level.
><DD
><P
> This is a helper filter that has no value if used alone. It makes the
- <TT
+ <VAR
CLASS="LITERAL"
->banners-by-size</TT
-> and <TT
+>banners-by-size</VAR
+> and <VAR
CLASS="LITERAL"
->banners-by-link</TT
+>banners-by-link</VAR
>
(see below) filters more effective and should be enabled together with them.
</P
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
- safe for general use, and recommended for non-MS platforms.
+> 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 wierd garbage characters
+ sometimes appear on some pages.
</P
></DD
><DT
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
->Privoxy 3.0.2 User Manual</TITLE
+>Privoxy 3.0.3 User Manual</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="NEXT"
TITLE="Introduction"
HREF="introduction.html"><LINK
CLASS="TITLE"
><A
NAME="AEN2"
-></A
->Privoxy 3.0.2 User Manual</H1
+>Privoxy 3.0.3 User Manual</A
+></H1
><P
CLASS="PUBDATE"
> <SUB
> <A
HREF="copyright.html"
>Copyright</A
-> © 2001 - 2003 by
+> © 2001 - 2004 by
<A
HREF="http://www.privoxy.org/"
TARGET="_top"
><BR></P
><P
CLASS="PUBDATE"
->$Id: user-manual.sgml,v 1.123.2.31 2003/03/26 02:03:43 oes Exp $<BR></P
+>$Id: user-manual.sgml,v 1.123.2.39 2004/01/30 22:31:40 oes Exp $<BR></P
><DIV
><DIV
CLASS="ABSTRACT"
+><P
+></P
><A
NAME="AEN9"
></A
><P
-></P
-><P
> The <I
CLASS="CITETITLE"
>User Manual</I
CLASS="APPLICATION"
>Privoxy</SPAN
> is a web proxy with advanced filtering
- capabilities for protecting privacy, filtering web page content, managing
+ capabilities for protecting privacy, modifying web page content, managing
cookies, controlling access, and removing ads, banners, pop-ups and other
obnoxious Internet junk. <SPAN
CLASS="APPLICATION"
><DL
><DT
>6.1. <A
-HREF="configuration.html#AEN650"
+HREF="configuration.html#AEN585"
>Controlling <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
><DL
><DT
>8.1. <A
-HREF="actions-file.html#AEN1818"
+HREF="actions-file.html#AEN1753"
>Finding the Right Mix</A
></DT
><DT
>8.2. <A
-HREF="actions-file.html#AEN1825"
+HREF="actions-file.html#AEN1760"
>How to Edit</A
></DT
><DT
><DL
><DT
>8.4.1. <A
-HREF="actions-file.html#AEN1898"
+HREF="actions-file.html#AEN1833"
>The Domain Pattern</A
></DT
><DT
>8.4.2. <A
-HREF="actions-file.html#AEN1960"
+HREF="actions-file.html#AEN1895"
>The Path Pattern</A
></DT
></DL
></DT
><DT
>8.5.21. <A
-HREF="actions-file.html#AEN2918"
+HREF="actions-file.html#AEN2855"
>Summary</A
></DT
></DL
><DL
><DT
>8.7.1. <A
-HREF="actions-file.html#AEN2983"
+HREF="actions-file.html#AEN2920"
>default.action</A
></DT
><DT
>8.7.2. <A
-HREF="actions-file.html#AEN3149"
+HREF="actions-file.html#AEN3086"
>user.action</A
></DT
></DL
><DL
><DT
>9.1. <A
-HREF="filter-file.html#AEN3275"
+HREF="filter-file.html#AEN3212"
>Filter File Tutorial</A
></DT
><DT
><DL
><DT
>12.1. <A
-HREF="copyright.html#AEN3624"
+HREF="copyright.html#AEN3561"
>License</A
></DT
><DT
></DT
><DT
>14.2. <A
-HREF="appendix.html#AEN3878"
+HREF="appendix.html#AEN3815"
><SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Installation</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
-TITLE="Privoxy 3.0.2 User Manual"
+TITLE="Privoxy 3.0.3 User Manual"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Introduction"
><TH
COLSPAN="3"
ALIGN="center"
->Privoxy 3.0.2 User Manual</TH
+>Privoxy 3.0.3 User Manual</TH
></TR
><TR
><TD
CLASS="SECT1"
><A
NAME="INSTALLATION"
-></A
->2. Installation</H1
+>2. Installation</A
+></H1
><P
> <SPAN
CLASS="APPLICATION"
CLASS="SECT2"
><A
NAME="INSTALLATION-PACKAGES"
-></A
->2.1. Binary Packages</H2
+>2.1. Binary Packages</A
+></H2
><P
>How to install the binary packages depends on your operating system:</P
><DIV
CLASS="SECT3"
><A
NAME="INSTALLATION-PACK-RPM"
-></A
->2.1.1. Red Hat, SuSE and Conectiva RPMs</H3
+>2.1.1. Red Hat, SuSE and Conectiva RPMs</A
+></H3
><P
-> RPMs can be installed with <TT
+> RPMs can be installed with <VAR
CLASS="LITERAL"
->rpm -Uvh privoxy-3.0.2-1.rpm</TT
+>rpm -Uvh privoxy-3.0.3-1.rpm</VAR
>,
and will use <TT
CLASS="FILENAME"
automatically start Privoxy in the boot process.</P
><P
> If you have problems with failed dependencies, try rebuilding the SRC RPM:
- <TT
+ <VAR
CLASS="LITERAL"
->rpm --rebuild privoxy-3.0.2-1.src.rpm</TT
+>rpm --rebuild privoxy-3.0.3-1.src.rpm</VAR
>. This
will use your locally installed libraries and RPM version. </P
><P
CLASS="SECT3"
><A
NAME="INSTALLATION-DEB"
-></A
->2.1.2. Debian</H3
+>2.1.2. Debian</A
+></H3
><P
-> DEBs can be installed with <TT
+> DEBs can be installed with <VAR
CLASS="LITERAL"
->dpkg -i
- privoxy_3.0.2-1.deb</TT
->, and will use
- <TT
+>apt-get install privoxy</VAR
+>,
+ and will use <TT
CLASS="FILENAME"
>/etc/privoxy</TT
-> for the location of configuration
- files.</P
+> for the location of
+ configuration files.</P
></DIV
><DIV
CLASS="SECT3"
CLASS="SECT3"
><A
NAME="INSTALLATION-PACK-WIN"
-></A
->2.1.3. Windows</H3
+>2.1.3. Windows</A
+></H3
><P
> Just double-click the installer, which will guide you through
the installation process. You will find the configuration files
CLASS="SECT3"
><A
NAME="INSTALLATION-PACK-BINTGZ"
-></A
->2.1.4. Solaris, NetBSD, FreeBSD, HP-UX</H3
+>2.1.4. Solaris, NetBSD, FreeBSD, HP-UX</A
+></H3
><P
-> Create a new directory, <TT
+> Create a new directory, <VAR
CLASS="LITERAL"
->cd</TT
+>cd</VAR
> to it, then unzip and
untar the archive. For the most part, you'll have to figure out where
things go. </P
CLASS="SECT3"
><A
NAME="INSTALLATION-OS2"
-></A
->2.1.5. OS/2</H3
+>2.1.5. OS/2</A
+></H3
><P
> First, make sure that no previous installations of
<SPAN
CLASS="SECT3"
><A
NAME="INSTALLATION-MAC"
-></A
->2.1.6. Mac OSX</H3
+>2.1.6. Mac OSX</A
+></H3
><P
> Unzip the downloaded file (you can either double-click on the file
from the finder, or from the desktop if you downloaded it there).
Then, double-click on the package installer icon named
- <TT
+ <VAR
CLASS="LITERAL"
->Privoxy.pkg</TT
+>Privoxy.pkg</VAR
>
and follow the installation process.
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> will be installed in the folder
- <TT
+ <VAR
CLASS="LITERAL"
->/Library/Privoxy</TT
+>/Library/Privoxy</VAR
>.
It will start automatically whenever you start up. To prevent it from
starting automatically, remove or rename the folder
- <TT
+ <VAR
CLASS="LITERAL"
->/Library/StartupItems/Privoxy</TT
+>/Library/StartupItems/Privoxy</VAR
>. </P
><P
> To start Privoxy by hand, double-click on
- <TT
+ <VAR
CLASS="LITERAL"
->StartPrivoxy.command</TT
+>StartPrivoxy.command</VAR
> in the
- <TT
+ <VAR
CLASS="LITERAL"
->/Library/Privoxy</TT
+>/Library/Privoxy</VAR
> folder.
Or, type this command in the Terminal:</P
><P
CLASS="SECT3"
><A
NAME="INSTALLATION-AMIGA"
-></A
->2.1.7. AmigaOS</H3
+>2.1.7. AmigaOS</A
+></H3
><P
> Copy and then unpack the <TT
CLASS="FILENAME"
CLASS="SECT3"
><A
NAME="INSTALLATTION-GENTOO"
-></A
->2.1.8. Gentoo</H3
+>2.1.8. Gentoo</A
+></H3
><P
> Gentoo source packages (Ebuilds) for <SPAN
CLASS="APPLICATION"
CLASS="APPLICATION"
>Privoxy</SPAN
> under Gentoo just do
- first <TT
+ first <VAR
CLASS="LITERAL"
->emerge rsync</TT
+>emerge rsync</VAR
> to get the latest changes from the
- Portage tree. With <TT
+ Portage tree. With <VAR
CLASS="LITERAL"
->emerge privoxy</TT
+>emerge privoxy</VAR
> you install the latest
version.</P
><P
>, the
documentation is in <TT
CLASS="FILENAME"
->/usr/share/doc/privoxy-3.0.2</TT
+>/usr/share/doc/privoxy-3.0.3</TT
>
and the Log directory is in <TT
CLASS="FILENAME"
CLASS="SECT2"
><A
NAME="INSTALLATION-SOURCE"
-></A
->2.2. Building from Source</H2
+>2.2. Building from Source</A
+></H2
><P
> The most convenient way to obtain the <SPAN
CLASS="APPLICATION"
>the
CVS repository</A
> or simply download <A
-HREF="http://cvs.sourceforge.net/cvstarballs/ijbswa-cvsroot.tar.gz"
+HREF="http://cvs.sourceforge.net/cvstarballs/ijbswa-cvsroot.tar.bz2"
TARGET="_top"
>the nightly CVS
tarball.</A
><P
> When building from a source tarball (either release version or
<A
-HREF="http://cvs.sourceforge.net/cvstarballs/ijbswa-cvsroot.tar.gz"
+HREF="http://cvs.sourceforge.net/cvstarballs/ijbswa-cvsroot.tar.bz2"
TARGET="_top"
>nightly CVS
tarball</A
><TD
><PRE
CLASS="SCREEN"
-> tar xzvf privoxy-3.0.2-src* [.tgz or .tar.gz]
- cd privoxy-3.0.2</PRE
+> tar xzvf privoxy-3.0.3-src* [.tgz or .tar.gz]
+ cd privoxy-3.0.3</PRE
></TD
></TR
></TABLE
>, 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, and instead it is suggested to create a <SPAN
-CLASS="QUOTE"
->"privoxy"</SPAN
-> user
- and group for this purpose. See your local documentation for the correct
- command line to do this.</P
-><P
-> <TT
-CLASS="FILENAME"
->/etc/passwd</TT
-> might then look like:</P
-><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
-><P
-> And then <TT
-CLASS="FILENAME"
->/etc/group</TT
->, like:</P
-><P
-> <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="100%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
-> privoxy:*:7777:</PRE
-></TD
-></TR
-></TABLE
-></P
-><P
-> Some binary packages may do this for you.</P
-><P
-> Then, to build from either unpacked tarball or CVS source:</P
+> Then, in either case, to build from unpacked tarball or CVS source:</P
><P
> <TABLE
BORDER="0"
make # (the make from gnu, gmake for *BSD)
su
make -n install # (to see where all the files will go)
- make -s install # (to really install, -s to silence output)</PRE
+ make install # (to really install)</PRE
></TD
></TR
></TABLE
></P
><P
-> If you have GNU <B
-CLASS="COMMAND"
->make</B
->, you can have the first four steps
+> If you have gnu make, you can have the first four steps
automatically done for you by just typing:</P
><P
> <TABLE
><P
> in the freshly downloaded or unpacked source directory.</P
><P
-> <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->WARNING:</I
-></SPAN
-> If installing as root, the install will fail
- unless another user is specified. <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
->. Or if there is already a privoxy user on the system, and no
- user was specified during configure, <B
-CLASS="COMMAND"
->make install</B
-> then
- will use the privoxy user. When starting <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
->,
- it should be run as this same user that owns the 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
-><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
-><P
-> If no <TT
-CLASS="LITERAL"
->group</TT
-> is specified, the install will assume a group
- exists with the same name as the specified <TT
-CLASS="LITERAL"
->user</TT
->.</P
-><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
- a root install to anywhere else 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
->).</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 docs 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 may want
- to 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 any configuration files, these will not
- be overwritten, and the new ones will be installed with a <SPAN
-CLASS="QUOTE"
->"new"</SPAN
->
- extension. You will then need to manually update the installed configuration
- files as needed. All template files will be overwritten. If you have
- customized, local templates, you should save these first. 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 and SuSE RPMs,
Windows self-extracting installers, building on platforms with
special requirements etc, please consult the <A
CLASS="SECT2"
><A
NAME="INSTALLATION-KEEPUPDATED"
-></A
->2.3. Keeping your Installation Up-to-Date</H2
+>2.3. Keeping your Installation Up-to-Date</A
+></H2
><P
> As user feedback comes in and development continues, we will make updated versions
of both the main <A
>, ijbswa-announce@lists.sourceforge.net.</P
><P
> In order not to loose your personal changes and adjustments when updating
- to the latest <TT
+ to the latest <VAR
CLASS="LITERAL"
->default.action</TT
+>default.action</VAR
> file we <SPAN
CLASS="emphasis"
><I
>strongly
recommend</I
></SPAN
-> that you use <TT
+> that you use <VAR
CLASS="LITERAL"
->user.action</TT
+>user.action</VAR
> for your
customization of <SPAN
CLASS="APPLICATION"
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Introduction</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
-TITLE="Privoxy 3.0.2 User Manual"
+TITLE="Privoxy 3.0.3 User Manual"
HREF="index.html"><LINK
REL="PREVIOUS"
-TITLE="Privoxy 3.0.2 User Manual"
+TITLE="Privoxy 3.0.3 User Manual"
HREF="index.html"><LINK
REL="NEXT"
TITLE="Installation"
><TH
COLSPAN="3"
ALIGN="center"
->Privoxy 3.0.2 User Manual</TH
+>Privoxy 3.0.3 User Manual</TH
></TR
><TR
><TD
CLASS="SECT1"
><A
NAME="INTRODUCTION"
-></A
->1. Introduction</H1
+>1. Introduction</A
+></H1
><P
> This documentation is included with the current stable version of
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
->, v.3.0.2.</P
+>, v.3.0.3.</P
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="FEATURES"
-></A
->1.1. Features</H2
+>1.1. Features</A
+></H2
><P
> In addition to <SPAN
CLASS="APPLICATION"
WIDTH="33%"
ALIGN="left"
VALIGN="top"
->Privoxy 3.0.2 User Manual</TD
+>Privoxy 3.0.3 User Manual</TD
><TD
WIDTH="34%"
ALIGN="center"
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Quickstart to Using Privoxy</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
-TITLE="Privoxy 3.0.2 User Manual"
+TITLE="Privoxy 3.0.3 User Manual"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Note to Upgraders"
><TH
COLSPAN="3"
ALIGN="center"
->Privoxy 3.0.2 User Manual</TH
+>Privoxy 3.0.3 User Manual</TH
></TR
><TR
><TD
CLASS="SECT1"
><A
NAME="QUICKSTART"
-></A
>4. Quickstart to Using <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
+></A
></H1
><P
> <P
>Privoxy</SPAN
> as HTTP and
HTTPS (SSL) proxy by setting the proxy configuration for address of
- <TT
+ <VAR
CLASS="LITERAL"
->127.0.0.1</TT
-> and port <TT
+>127.0.0.1</VAR
+> and port <VAR
CLASS="LITERAL"
->8118</TT
+>8118</VAR
>.
(<SPAN
CLASS="APPLICATION"
>Configuration section</A
> for more
configuration options, and how to customize your installation.
-
- </P
+ </P
></LI
><LI
><P
></LI
><LI
><P
+> For easy access to Privoxy's most important controls, drag the provided
+ <A
+HREF="appendix.html#BOOKMARKLETS"
+>Bookmarklets</A
+> into your browser's
+ personal toolbar.
+ </P
+></LI
+><LI
+><P
> Please see the section <A
HREF="contact.html"
>Contacting the
CLASS="SECT2"
><A
NAME="QUICKSTART-AD-BLOCKING"
-></A
->4.1. Quickstart to Ad Blocking</H2
+>4.1. Quickstart to Ad Blocking</A
+></H2
><P
> Ad blocking is but one of <SPAN
CLASS="APPLICATION"
or a server somewhere else on the Internet. Complex web pages will have many
such embedded URLs.</P
><P
-> The actions we need to know about for ad blocking are: <TT
+> The actions we need to know about for ad blocking are: <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#BLOCK"
>block</A
-></TT
->, <TT
+></VAR
+>, <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#HANDLE-AS-IMAGE"
>handle-as-image</A
-></TT
+></VAR
>, and
- <TT
+ <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#SET-IMAGE-BLOCKER"
>set-image-blocker</A
-></TT
+></VAR
>:</P
><P
> <P
><UL
><LI
><P
-> <TT
+> <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#BLOCK"
>block</A
-></TT
+></VAR
> - 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
></LI
><LI
><P
-> <TT
+> <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#HANDLE-AS-IMAGE"
>handle-as-image</A
-></TT
+></VAR
> -
tells <SPAN
CLASS="APPLICATION"
></LI
><LI
><P
-> <TT
+> <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#SET-IMAGE-BLOCKER"
>set-image-blocker</A
-></TT
+></VAR
> - 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
+ <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#BLOCK"
>block</A
-></TT
+></VAR
> action somewhere in the
configuration, <SPAN
CLASS="emphasis"
>and</I
></SPAN
>, it must also match an
- <TT
+ <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#HANDLE-AS-IMAGE"
>handle-as-image</A
-></TT
+></VAR
> action.
</P
><P
> <DIV
CLASS="FIGURE"
><A
-NAME="AEN454"
+NAME="AEN389"
></A
><P
><B
><LI
><P
> You should have a section with only
- <TT
+ <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#BLOCK"
>block</A
-></TT
+></VAR
> listed under
<SPAN
CLASS="QUOTE"
>"Actions:"</SPAN
>.
This will bring up a list of all actions. Find
- <TT
+ <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#BLOCK"
>block</A
-></TT
+></VAR
> near the top, and click
in the <SPAN
CLASS="QUOTE"
></LI
><LI
><P
-> Now, in the <TT
+> Now, in the <VAR
CLASS="LITERAL"
><A
HREF="actions-file.html#BLOCK"
>block</A
-></TT
+></VAR
> actions section,
click the <SPAN
CLASS="QUOTE"
>Copy Link Location</SPAN
>"</SPAN
>.
- Remove the <TT
+ Remove the <VAR
CLASS="LITERAL"
->http://</TT
+>http://</VAR
> at the beginning of the URL. Then, click
<SPAN
CLASS="QUOTE"
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>See Also</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
-TITLE="Privoxy 3.0.2 User Manual"
+TITLE="Privoxy 3.0.3 User Manual"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Privoxy Copyright, License and History"
><TH
COLSPAN="3"
ALIGN="center"
->Privoxy 3.0.2 User Manual</TH
+>Privoxy 3.0.3 User Manual</TH
></TR
><TR
><TD
CLASS="SECT1"
><A
NAME="SEEALSO"
-></A
->13. See Also</H1
+>13. See Also</A
+></H1
><P
> Other references and sites of interest to <SPAN
CLASS="APPLICATION"
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Starting Privoxy</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
-TITLE="Privoxy 3.0.2 User Manual"
+TITLE="Privoxy 3.0.3 User Manual"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Quickstart to Using Privoxy"
><TH
COLSPAN="3"
ALIGN="center"
->Privoxy 3.0.2 User Manual</TH
+>Privoxy 3.0.3 User Manual</TH
></TR
><TR
><TD
CLASS="SECT1"
><A
NAME="STARTUP"
-></A
>5. Starting <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
+></A
></H1
><P
> Before launching <SPAN
> <DIV
CLASS="FIGURE"
><A
-NAME="AEN505"
+NAME="AEN440"
></A
><P
><B
CLASS="SECT2"
><A
NAME="START-REDHAT"
-></A
->5.1. Red Hat and Conectiva</H2
+>5.1. Red Hat and Conectiva</A
+></H2
><P
> We use a script. Note that Red Hat does not start Privoxy upon booting per
default. It will use the file <TT
CLASS="SECT2"
><A
NAME="START-DEBIAN"
-></A
->5.2. Debian</H2
+>5.2. Debian</A
+></H2
><P
> We use a script. Note that Debian starts Privoxy upon booting per
default. It will use the file
CLASS="SECT2"
><A
NAME="START-SUSE"
-></A
->5.3. SuSE</H2
+>5.3. SuSE</A
+></H2
><P
>We use a script. It will use the file <TT
CLASS="FILENAME"
CLASS="SECT2"
><A
NAME="START-WINDOWS"
-></A
->5.4. Windows</H2
+>5.4. Windows</A
+></H2
><P
>Click on the Privoxy Icon to start Privoxy. If no configuration file is
specified on the command line, <SPAN
CLASS="SECT2"
><A
NAME="START-UNICES"
-></A
->5.5. Solaris, NetBSD, FreeBSD, HP-UX and others</H2
+>5.5. Solaris, NetBSD, FreeBSD, HP-UX and others</A
+></H2
><P
>Example Unix startup command:</P
><P
CLASS="SECT2"
><A
NAME="START-OS2"
-></A
->5.6. OS/2</H2
+>5.6. OS/2</A
+></H2
><P
> During installation, <SPAN
CLASS="APPLICATION"
CLASS="SECT2"
><A
NAME="START-MACOSX"
-></A
->5.7. Mac OSX</H2
+>5.7. Mac OSX</A
+></H2
><P
> During installation, <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> is configured to
start automatically when the system restarts. To start Privoxy by hand,
- double-click on the <TT
+ double-click on the <VAR
CLASS="LITERAL"
->StartPrivoxy.command</TT
+>StartPrivoxy.command</VAR
> icon in the
- <TT
+ <VAR
CLASS="LITERAL"
->/Library/Privoxy</TT
+>/Library/Privoxy</VAR
> folder. Or, type this command
in the Terminal:</P
><P
CLASS="SECT2"
><A
NAME="START-AMIGAOS"
-></A
->5.8. AmigaOS</H2
+>5.8. AmigaOS</A
+></H2
><P
> Start <SPAN
CLASS="APPLICATION"
CLASS="SECT2"
><A
NAME="START-GENTOO"
-></A
->5.9. Gentoo</H2
+>5.9. Gentoo</A
+></H2
><P
> A script is again used. It will use the file <TT
CLASS="FILENAME"
CLASS="APPLICATION"
>Privoxy</SPAN
> is not automatically started at
- boot time by default. You can change this with the <TT
+ boot time by default. You can change this with the <VAR
CLASS="LITERAL"
->rc-update</TT
+>rc-update</VAR
>
command.</P
><P
CLASS="SECT2"
><A
NAME="CMDOPTIONS"
-></A
->5.10. Command Line Options</H2
+>5.10. Command Line Options</A
+></H2
><P
> <SPAN
CLASS="APPLICATION"
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Templates</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
-TITLE="Privoxy 3.0.2 User Manual"
+TITLE="Privoxy 3.0.3 User Manual"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="The Filter File"
><TH
COLSPAN="3"
ALIGN="center"
->Privoxy 3.0.2 User Manual</TH
+>Privoxy 3.0.3 User Manual</TH
></TR
><TR
><TD
CLASS="SECT1"
><A
NAME="TEMPLATES"
-></A
->10. Templates</H1
+>10. Templates</A
+></H1
><P
> All <SPAN
CLASS="APPLICATION"
>Not recommended for the casual user</I
></SPAN
>). Note that
- just like in configuration files, lines starting with <TT
+ just like in configuration files, lines starting with <VAR
CLASS="LITERAL"
->#</TT
+>#</VAR
> are
ignored when the templates are filled in.</P
><P
-> The place-holders are of the form <TT
+> The place-holders are of the form <VAR
CLASS="LITERAL"
->@name@</TT
+>@name@</VAR
>, 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
></P
><P
> If the "unstable" symbol is set, everything in between and including
- <TT
+ <VAR
CLASS="LITERAL"
->@if-unstable-start</TT
-> and <TT
+>@if-unstable-start</VAR
+> and <VAR
CLASS="LITERAL"
->if-unstable-end@</TT
+>if-unstable-end@</VAR
>
will disappear, leaving nothing but an empty comment:</P
><P
></TABLE
></P
><P
-> There's also an if-then-else construct and an <TT
+> There's also an if-then-else construct and an <VAR
CLASS="LITERAL"
->#include</TT
+>#include</VAR
>
mechanism, but you'll sure find out if you are inclined to edit the
templates ;-)</P
<A
HREF="http://config.privoxy.org/send-stylesheet"
TARGET="_top"
-><TT
+><VAR
CLASS="LITERAL"
->http://config.privoxy.org/send-stylesheet</TT
+>http://config.privoxy.org/send-stylesheet</VAR
></A
>.
This is, of course, locally served by <SPAN
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Note to Upgraders</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
-TITLE="Privoxy 3.0.2 User Manual"
+TITLE="Privoxy 3.0.3 User Manual"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Installation"
><TH
COLSPAN="3"
ALIGN="center"
->Privoxy 3.0.2 User Manual</TH
+>Privoxy 3.0.3 User Manual</TH
></TR
><TR
><TD
CLASS="SECT1"
><A
NAME="UPGRADERSNOTE"
-></A
->3. Note to Upgraders</H1
+>3. Note to Upgraders</A
+></H1
><P
> There are very significant changes from earlier
<SPAN