*
*********************************************************************/
-This README is included with the development version of Privoxy 2.9.14, which
+This README is included with the development version of Privoxy 2.9.15, which
will eventually become Privoxy v3.0 (and soon we hope!). See http://
www.privoxy.org/ for more information. The current code level is beta, and
seems stable to us :).
INSTALL
--------
-To build Privoxy from source, autoheader, autoconf, GNU make (gmake), and, of
-course, a C compiler are required.
+To build Privoxy from source, autoconf, GNU make (gmake), and, of course, a C
+compiler like gcc are required.
When building from a source tarball (either release version or nightly CVS
tarball), first unpack the source:
- tar xzvf privoxy-2.9.14-beta-src* [.tgz or .tar.gz]
- cd privoxy-2.9.14-beta
+ tar xzvf privoxy-2.9.15-beta-src* [.tgz or .tar.gz]
+ cd privoxy-2.9.15-beta
For retrieving the current CVS sources, you'll need CVS installed. Note that
sources from CVS are development quality, and may not be stable, or well
By: Privoxy Developers
-$Id: developer-manual.sgml,v 1.39 2002/05/02 15:08:25 oes Exp $
+$Id: developer-manual.sgml,v 1.40 2002/05/04 00:43:43 hal9 Exp $
The developer manual gives the users information on how to help the developer
team. It provides guidance on coding, testing, documentation and other issues.
Some common elements that you likely will use:
-<para></para>, paragraph delimiter. Most text needs to be within paragraph
-elements (there are some exceptions).
-<emphasis></emphasis>, the stylesheets make this italics.
-<filename></filename>, files and directories.
-<command></command>, command examples.
-<literallayout></literallayout>, like <pre>, more or less.
-<itemizedlist></itemizedlist>, list with bullets.
-<listitem></listitem>, member of the above.
-<screen></screen>, screen output, implies <literallayout>.
-<ulink url="example.com"></ulink>, like HTML <a> tag.
-<quote></quote>, for, doh, quoting text.
+, paragraph delimiter. Most text needs to be within paragraph elements (there
+are some exceptions).
+, the stylesheets make this italics.
+, files and directories.
+, command examples.
+, like
+, more or less.
+, list with bullets.
+, member of the above.
+, screen output, implies .
+, like HTML tag.
+, for, doh, quoting text.
Look at any of the existing docs for examples of all these and more.
* Commonly used "internal entities":
- p-version: the Privoxy version string, e.g. "2.9.14".
+ p-version: the Privoxy version string, e.g. "2.9.15".
p-status: the project status, either "alpha", "beta", or "stable".
p-not-stable: use to conditionally include text in "not stable" releases
(e.g. "beta").
Example:
-#include <iostream.h> /* This is not a local include */
+#include /* This is not a local include */
#include "config.h" /* This IS a local include */
Exception:
/* This is not a local include, but requires a path element. */
-#include <sys/fileName.h>
+#include
Note: Please! do not add "-I." to the Makefile without a _very_ good reason.
This duplicates the #include "file.h" behavior.
Example for file comments:
-const char FILENAME_rcs[] = "$Id: developer-manual.sgml,v 1.39 2002/05/02 15:08:25 oes Exp $";
-/*********************************************************************
- *
- * File : $Source$
- *
- * Purpose : (Fill me in with a good description!)
- *
- * Copyright : Written by and Copyright (C) 2001 the SourceForge
- * Privoxy team. http://www.privoxy.org/
- *
- * Based on the Internet Junkbuster originally written
- * by and Copyright (C) 1997 Anonymous Coders and
- * Junkbusters Corporation. http://www.junkbusters.com
- *
- * This program is free software; you can redistribute it
- * and/or modify it under the terms of the GNU General
- * Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at
- * your option) any later version.
- *
- * This program is distributed in the hope that it will
- * be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU General Public
- * License for more details.
- *
- * The GNU General Public License should be included with
- * this file. If not, you can view it at
- * http://www.gnu.org/copyleft/gpl.html
- * or write to the Free Software Foundation, Inc., 59
- * Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * Revisions :
- * $Log$
- *
- *********************************************************************/
-
-
-#include "config.h"
-
- ...necessary include files for us to do our work...
-
-const char FILENAME_h_rcs[] = FILENAME_H_VERSION;
+const char FILENAME_rcs[] = "$Id: developer-manual.sgml,v 1.40 2002/05/04 00:43:43 hal9 Exp $";
+/*********************************************************************
+ *
+ * File : $Source$
+ *
+ * Purpose : (Fill me in with a good description!)
+ *
+ * Copyright : Written by and Copyright (C) 2001 the SourceForge
+ * Privoxy team. http://www.privoxy.org/
+ *
+ * Based on the Internet Junkbuster originally written
+ * by and Copyright (C) 1997 Anonymous Coders and
+ * Junkbusters Corporation. http://www.junkbusters.com
+ *
+ * This program is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU General
+ * Public License as published by the Free Software
+ * Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will
+ * be useful, but WITHOUT ANY WARRANTY; without even the
+ * implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+ *
+ * The GNU General Public License should be included with
+ * this file. If not, you can view it at
+ * http://www.gnu.org/copyleft/gpl.html
+ * or write to the Free Software Foundation, Inc., 59
+ * Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Revisions :
+ * $Log$
+ *
+ *********************************************************************/
+
+
+#include "config.h"
+
+ ...necessary include files for us to do our work...
+
+const char FILENAME_h_rcs[] = FILENAME_H_VERSION;
Note: This declares the rcs variables that should be added to the
"show-proxy-args" page. If this is a brand new creation by you, you are free to
Example for file header comments:
-#ifndef _FILENAME_H
-#define _FILENAME_H
-#define FILENAME_H_VERSION "$Id: developer-manual.sgml,v 1.39 2002/05/02 15:08:25 oes Exp $"
-/*********************************************************************
- *
- * File : $Source$
- *
- * Purpose : (Fill me in with a good description!)
- *
- * Copyright : Written by and Copyright (C) 2001 the SourceForge
- * Privoxy team. http://www.privoxy.org/
- *
- * Based on the Internet Junkbuster originally written
- * by and Copyright (C) 1997 Anonymous Coders and
- * Junkbusters Corporation. http://www.junkbusters.com
- *
- * This program is free software; you can redistribute it
- * and/or modify it under the terms of the GNU General
- * Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at
- * your option) any later version.
- *
- * This program is distributed in the hope that it will
- * be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU General Public
- * License for more details.
- *
- * The GNU General Public License should be included with
- * this file. If not, you can view it at
- * http://www.gnu.org/copyleft/gpl.html
- * or write to the Free Software Foundation, Inc., 59
- * Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * Revisions :
- * $Log$
- *
- *********************************************************************/
-
-
-#include "project.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
- ... function headers here ...
-
-
-/* Revision control strings from this header and associated .c file */
-extern const char FILENAME_rcs[];
-extern const char FILENAME_h_rcs[];
-
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* ndef _FILENAME_H */
-
-/*
- Local Variables:
- tab-width: 3
- end:
-*/
+#ifndef _FILENAME_H
+#define _FILENAME_H
+#define FILENAME_H_VERSION "$Id: developer-manual.sgml,v 1.40 2002/05/04 00:43:43 hal9 Exp $"
+/*********************************************************************
+ *
+ * File : $Source$
+ *
+ * Purpose : (Fill me in with a good description!)
+ *
+ * Copyright : Written by and Copyright (C) 2001 the SourceForge
+ * Privoxy team. http://www.privoxy.org/
+ *
+ * Based on the Internet Junkbuster originally written
+ * by and Copyright (C) 1997 Anonymous Coders and
+ * Junkbusters Corporation. http://www.junkbusters.com
+ *
+ * This program is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU General
+ * Public License as published by the Free Software
+ * Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will
+ * be useful, but WITHOUT ANY WARRANTY; without even the
+ * implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+ *
+ * The GNU General Public License should be included with
+ * this file. If not, you can view it at
+ * http://www.gnu.org/copyleft/gpl.html
+ * or write to the Free Software Foundation, Inc., 59
+ * Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Revisions :
+ * $Log$
+ *
+ *********************************************************************/
+
+
+#include "project.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ ... function headers here ...
+
+
+/* Revision control strings from this header and associated .c file */
+extern const char FILENAME_rcs[];
+extern const char FILENAME_h_rcs[];
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* ndef _FILENAME_H */
+
+/*
+ Local Variables:
+ tab-width: 3
+ end:
+*/
Example for function comments:
group_id=11118, making sure you are logged in. Find your target platform in the
second column, and click Add Release. You will then need to create a new
release for your package, using the format of $VERSION ($CODE_STATUS), e.g.
-2.9.14 (beta).
+2.9.15 (beta).
Now just follow the prompts. Be sure to add any appropriate Release notes. You
should see your freshly uploaded packages in "Step 2. Add Files To This
By: Privoxy Developers
-$Id: faq.sgml,v 1.54 2002/05/03 05:06:44 hal9 Exp $
+$Id: faq.sgml,v 1.55 2002/05/04 00:41:56 hal9 Exp $
This FAQ gives users and developers alike answers to frequently asked questions
about Privoxy .
1.1. What is this new version of Privoxy?
-The original Internet JunkbusterTM (tm) is a copyrighted product of Junkbusters
-Corporation. Development of this effort stopped some time ago as of version
-2.0.2. Stefan Waldherr started the ijbswa project on Sourceforge to rekindle
-development. Other developers subsequently joined with Stefan, and have since
-added many new features, refinements and enhancements. The result of this
-effort is Privoxy.
+The original Internet Junkbuster™ (tm) is a copyrighted product of
+Junkbusters Corporation. Development of this effort stopped some time ago as of
+version 2.0.2. Stefan Waldherr started the ijbswa project on Sourceforge to
+rekindle development. Other developers subsequently joined with Stefan, and
+have since added many new features, refinements and enhancements. The result of
+this effort is Privoxy.
Privoxy has evolved from the Junkbuster 2.0.2 code base, and has advanced
significantly at this point.
If you have version 2.0.2, then the equivalent is http://example.com/
show-proxy-args (but you get far less information, and you should really
-consider upgrading to 2.9.14).
+consider upgrading to 2.9.15).
-------------------------------------------------------------------------------
By: Privoxy Developers
-$Id: user-manual.sgml,v 1.102 2002/05/03 17:46:00 oes Exp $
+$Id: user-manual.sgml,v 1.103 2002/05/04 00:40:53 hal9 Exp $
The user manual gives users information on how to install, configure and use
Privoxy.
1. Introduction
This documentation is included with the current beta version of Privoxy,
-v.2.9.14, and is mostly complete at this point. The most up to date reference
+v.2.9.15, and is mostly complete at this point. The most up to date reference
for the time being is still the comments in the source files and in the
individual configuration files. Development of version 3.0 is currently nearing
completion, and includes many significant changes and enhancements over earlier
2.1.1. Red Hat and SuSE RPMs
-RPMs can be installed with rpm -Uvh privoxy-2.9.14-1.rpm, and will use /etc/
+RPMs can be installed with rpm -Uvh privoxy-2.9.15-1.rpm, and will use /etc/
privoxy for the location of configuration files.
Note that on Red Hat, Privoxy will not be automatically started on system boot.
that SuSE will automatically start Privoxy in the boot process.
If you have problems with failed dependencies, try rebuilding the SRC RPM: rpm
---rebuild privoxy-2.9.14-1.src.rpm;. This will use your locally installed
+--rebuild privoxy-2.9.15-1.src.rpm;. This will use your locally installed
libraries and RPM version.
Also note that if you have a Junkbuster RPM installed on your system, you need
When building from a source tarball (either release version or nightly CVS
tarball), first unpack the source:
- tar xzvf privoxy-2.9.14-beta-src* [.tgz or .tar.gz]
- cd privoxy-2.9.14-beta
+ tar xzvf privoxy-2.9.15-beta-src* [.tgz or .tar.gz]
+ cd privoxy-2.9.15-beta
For retrieving the current CVS sources, you'll need CVS installed. Note that
sources from CVS are development quality, and may not be stable, or well
without Internet access. You will see the following section:
Privoxy Menu
- ? View & change the current configuration
- ? View the source code version numbers
- ? View the request headers.
- ? Look up which actions apply to a URL and why
- ? Toggle Privoxy on or off
+ ?? View & change the current configuration
+ ?? View the source code version numbers
+ ?? View the request headers.
+ ?? Look up which actions apply to a URL and why
+ ?? Toggle Privoxy on or off
This should be self-explanatory. Note the first item leads to an editor for the
Unix, in local filesystem:
- user-manual file:///usr/share/doc/privoxy-2.9.14/user-manual/
+ user-manual file:///usr/share/doc/privoxy-2.9.15/user-manual/
Any platform, on local webserver (called "local-webserver"):
And finally we pull it all together in the bottom section and summarize how
Privoxy is applying all its "actions" to "google.com":
- Final results:
+ Final results:
-add-header -block +deanimate-gifs{last} -downgrade-http-version -fast-redirects
-filter{popups} -filter{fun} -filter{shockwave-flash} -filter{crude-parental}
+filter{html-annoyances} +filter{js-annoyances} +filter{content-cookies}
Now another example, "ad.doubleclick.net":
- { +block +handle-as-image }
+ { +block +handle-as-image }
.ad.doubleclick.net
{ +block +handle-as-image }
One last example. Let's try "http://www.rhapsodyk.net/adsl/HOWTO/". This one is
giving us problems. We are getting a blank page. Hmmm...
- Matches for http://www.rhapsodyk.net/adsl/HOWTO/:
+ Matches for http://www.rhapsodyk.net/adsl/HOWTO/:
{ -add-header -block +deanimate-gifs -downgrade-http-version +fast-redirects
+filter{html-annoyances} +filter{js-annoyances} +filter{kill-popups}
explicitly does not block ("{-block}") paths with "adsl". There are various
ways to handle such exceptions. Example:
- { -block }
+ { -block }
/adsl
Now the page displays ;-) Be sure to flush your browser's caches when making
But now what about a situation where we get no explicit matches like we did
with:
- { +block +handle-as-image }
+ { +block +handle-as-image }
/ads
That actually was very telling and pointed us quickly to where the problem was.
cause would be one of the "{+filter}" actions. Try adding the URL for the site
to one of aliases that turn off "+filter":
- {shop}
+ {shop}
.quietpc.com
.worldpay.com # for quietpc.com
.jungle.com
"{shop}" is an "alias" that expands to "{ -filter -session-cookies-only }". Or
you could do your own exception to negate filtering:
- {-filter}
+ {-filter}
.forbes.com
This would probably be most appropriately put in user.action, for local site
CLASS="SECT1"
><A
NAME="CODING"
->6. Coding Guidelines</A
+>4. Coding Guidelines</A
></H1
><DIV
CLASS="SECT2"
CLASS="SECT2"
><A
NAME="S1"
->6.1. Introduction</A
+>4.1. Introduction</A
></H2
><P
>This set of standards is designed to make our lives easier. It is
CLASS="SECT2"
><A
NAME="S2"
->6.2. Using Comments</A
+>4.2. Using Comments</A
></H2
><DIV
CLASS="SECT3"
CLASS="SECT3"
><A
NAME="S3"
->6.2.1. Comment, Comment, Comment</A
+>4.2.1. Comment, Comment, Comment</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S4"
->6.2.2. Use blocks for comments</A
+>4.2.2. Use blocks for comments</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S5"
->6.2.3. Keep Comments on their own line</A
+>4.2.3. Keep Comments on their own line</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S6"
->6.2.4. Comment each logical step</A
+>4.2.4. Comment each logical step</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S7"
->6.2.5. Comment All Functions Thoroughly</A
+>4.2.5. Comment All Functions Thoroughly</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S8"
->6.2.6. Comment at the end of braces if the
+>4.2.6. Comment at the end of braces if the
content is more than one screen length</A
></H3
><P
CLASS="SECT2"
><A
NAME="S9"
->6.3. Naming Conventions</A
+>4.3. Naming Conventions</A
></H2
><DIV
CLASS="SECT3"
CLASS="SECT3"
><A
NAME="S10"
->6.3.1. Variable Names</A
+>4.3.1. Variable Names</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S11"
->6.3.2. Function Names</A
+>4.3.2. Function Names</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S12"
->6.3.3. Header file prototypes</A
+>4.3.3. Header file prototypes</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S13"
->6.3.4. Enumerations, and #defines</A
+>4.3.4. Enumerations, and #defines</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S14"
->6.3.5. Constants</A
+>4.3.5. Constants</A
></H3
><P
><I
CLASS="SECT2"
><A
NAME="S15"
->6.4. Using Space</A
+>4.4. Using Space</A
></H2
><DIV
CLASS="SECT3"
CLASS="SECT3"
><A
NAME="S16"
->6.4.1. Put braces on a line by themselves.</A
+>4.4.1. Put braces on a line by themselves.</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S17"
->6.4.2. ALL control statements should have a
+>4.4.2. ALL control statements should have a
block</A
></H3
><P
CLASS="SECT3"
><A
NAME="S18"
->6.4.3. Do not belabor/blow-up boolean
+>4.4.3. Do not belabor/blow-up boolean
expressions</A
></H3
><P
CLASS="SECT3"
><A
NAME="S19"
->6.4.4. Use white space freely because it is
+>4.4.4. Use white space freely because it is
free</A
></H3
><P
CLASS="SECT3"
><A
NAME="S20"
->6.4.5. Don't use white space around structure
+>4.4.5. Don't use white space around structure
operators</A
></H3
><P
CLASS="SECT3"
><A
NAME="S21"
->6.4.6. Make the last brace of a function stand
+>4.4.6. Make the last brace of a function stand
out</A
></H3
><P
CLASS="SECT3"
><A
NAME="S22"
->6.4.7. Use 3 character indentions</A
+>4.4.7. Use 3 character indentions</A
></H3
><P
><I
CLASS="SECT2"
><A
NAME="S23"
->6.5. Initializing</A
+>4.5. Initializing</A
></H2
><DIV
CLASS="SECT3"
CLASS="SECT3"
><A
NAME="S24"
->6.5.1. Initialize all variables</A
+>4.5.1. Initialize all variables</A
></H3
><P
><I
CLASS="SECT2"
><A
NAME="S25"
->6.6. Functions</A
+>4.6. Functions</A
></H2
><DIV
CLASS="SECT3"
CLASS="SECT3"
><A
NAME="S26"
->6.6.1. Name functions that return a boolean as a
+>4.6.1. Name functions that return a boolean as a
question.</A
></H3
><P
CLASS="SECT3"
><A
NAME="S27"
->6.6.2. Always specify a return type for a
+>4.6.2. Always specify a return type for a
function.</A
></H3
><P
CLASS="SECT3"
><A
NAME="S28"
->6.6.3. Minimize function calls when iterating by
+>4.6.3. Minimize function calls when iterating by
using variables</A
></H3
><P
CLASS="SECT3"
><A
NAME="S29"
->6.6.4. Pass and Return by Const Reference</A
+>4.6.4. Pass and Return by Const Reference</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S30"
->6.6.5. Pass and Return by Value</A
+>4.6.5. Pass and Return by Value</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S31"
->6.6.6. Names of include files</A
+>4.6.6. Names of include files</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S32"
->6.6.7. Provide multiple inclusion
+>4.6.7. Provide multiple inclusion
protection</A
></H3
><P
CLASS="SECT3"
><A
NAME="S33"
->6.6.8. Use `extern "C"` when appropriate</A
+>4.6.8. Use `extern "C"` when appropriate</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S34"
->6.6.9. Where Possible, Use Forward Struct
+>4.6.9. Where Possible, Use Forward Struct
Declaration Instead of Includes</A
></H3
><P
CLASS="SECT2"
><A
NAME="S35"
->6.7. General Coding Practices</A
+>4.7. General Coding Practices</A
></H2
><DIV
CLASS="SECT3"
CLASS="SECT3"
><A
NAME="S36"
->6.7.1. Turn on warnings</A
+>4.7.1. Turn on warnings</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S37"
->6.7.2. Provide a default case for all switch
+>4.7.2. Provide a default case for all switch
statements</A
></H3
><P
CLASS="SECT3"
><A
NAME="S38"
->6.7.3. Try to avoid falling through cases in a
+>4.7.3. Try to avoid falling through cases in a
switch statement.</A
></H3
><P
CLASS="SECT3"
><A
NAME="S39"
->6.7.4. Use 'long' or 'short' Instead of
+>4.7.4. Use 'long' or 'short' Instead of
'int'</A
></H3
><P
CLASS="SECT3"
><A
NAME="S40"
->6.7.5. Don't mix size_t and other types</A
+>4.7.5. Don't mix size_t and other types</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S41"
->6.7.6. Declare each variable and struct on its
+>4.7.6. Declare each variable and struct on its
own line.</A
></H3
><P
CLASS="SECT3"
><A
NAME="S42"
->6.7.7. Use malloc/zalloc sparingly</A
+>4.7.7. Use malloc/zalloc sparingly</A
></H3
><P
><I
CLASS="SECT3"
><A
NAME="S43"
->6.7.8. The Programmer Who Uses 'malloc' is
+>4.7.8. The Programmer Who Uses 'malloc' is
Responsible for Ensuring 'free'</A
></H3
><P
CLASS="SECT3"
><A
NAME="S44"
->6.7.9. Add loaders to the `file_list' structure
+>4.7.9. Add loaders to the `file_list' structure
and in order</A
></H3
><P
CLASS="SECT3"
><A
NAME="S45"
->6.7.10. "Uncertain" new code and/or changes to
+>4.7.10. "Uncertain" new code and/or changes to
existing code, use FIXME</A
></H3
><P
CLASS="SECT2"
><A
NAME="S46"
->6.8. Addendum: Template for files and function
+>4.8. Addendum: Template for files and function
comment blocks:</A
></H2
><P
><TD
><PRE
CLASS="PROGRAMLISTING"
->const char FILENAME_rcs[] = "$Id: developer-manual.sgml,v 1.39 2002/05/02 15:08:25 oes Exp $";
+>const char FILENAME_rcs[] = "$Id: developer-manual.sgml,v 1.40 2002/05/04 00:43:43 hal9 Exp $";
/*********************************************************************
*
* File : $Source$
CLASS="PROGRAMLISTING"
>#ifndef _FILENAME_H
#define _FILENAME_H
-#define FILENAME_H_VERSION "$Id: developer-manual.sgml,v 1.39 2002/05/02 15:08:25 oes Exp $"
+#define FILENAME_H_VERSION "$Id: developer-manual.sgml,v 1.40 2002/05/04 00:43:43 hal9 Exp $"
/*********************************************************************
*
* File : $Source$
CLASS="SECT1"
><A
NAME="CONTACT"
->10. Contacting the developers, Bug Reporting and Feature Requests</A
+>8. Contacting the developers, Bug Reporting and Feature Requests</A
></H1
><P
> We value your feedback. However, to provide you with the best support, please
CLASS="SECT2"
><A
NAME="CONTACT-SUPPORT"
->10.1. Get Support</A
+>8.1. Get Support</A
></H2
><P
> <P
CLASS="SECT2"
><A
NAME="CONTACT-BUGS"
->10.2. Report bugs</A
+>8.2. Report bugs</A
></H2
><P
> <P
CLASS="SECT2"
><A
NAME="CONTACT-FEATURE"
->10.3. Request new features</A
+>8.3. Request new features</A
></H2
><P
> <P
CLASS="SECT2"
><A
NAME="CONTACT-ADS"
->10.4. Report ads or other filter problems</A
+>8.4. Report ads or other filter problems</A
></H2
><P
>You can also send feedback on websites that Privoxy has problems with. Please bookmark
CLASS="SECT2"
><A
NAME="CONTACT-OTHER"
->10.5. Other</A
+>8.5. Other</A
></H2
><P
> <P
CLASS="SECT1"
><A
NAME="COPYRIGHT"
->11. Copyright and History</A
+>9. Copyright and History</A
></H1
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
-NAME="AEN1060"
->11.1. Copyright</A
+NAME="AEN1057"
+>9.1. Copyright</A
></H2
><P
> <SPAN
><H2
CLASS="SECT2"
><A
-NAME="AEN1067"
->11.2. History</A
+NAME="AEN1064"
+>9.2. History</A
></H2
><P
> <SPAN
TITLE="Privoxy Developer Manual"
HREF="index.html"><LINK
REL="PREVIOUS"
-TITLE="Quickstart to Privoxy Development"
-HREF="quickstart.html"><LINK
+TITLE="Introduction"
+HREF="introduction.html"><LINK
REL="NEXT"
TITLE="Documentation Guidelines"
HREF="documentation.html"><LINK
ALIGN="left"
VALIGN="bottom"
><A
-HREF="quickstart.html"
+HREF="introduction.html"
>Prev</A
></TD
><TD
CLASS="SECT1"
><A
NAME="CVS"
->4. The CVS Repository</A
+>2. The CVS Repository</A
></H1
><P
> If you intend to help us with programming, documentation or packaging
CLASS="SECT2"
><A
NAME="CVSACCESS"
->4.1. Access to CVS</A
+>2.1. Access to CVS</A
></H2
><P
> The project's CVS repository is hosted on
CLASS="SECT2"
><A
NAME="CVSCOMMIT"
->4.2. CVS Commit Guideline</A
+>2.2. CVS Commit Guideline</A
></H2
><P
> The source tree is the heart of every software project. Every effort must
CLASS="SECT2"
><A
NAME="CVSWHENASK"
->4.3. Discussing Changes First</A
+>2.3. Discussing Changes First</A
></H2
><P
> We don't have a too formal policy on this, just use common sense. Hints: If it is..
ALIGN="left"
VALIGN="top"
><A
-HREF="quickstart.html"
+HREF="introduction.html"
>Prev</A
></TD
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
->Quickstart to Privoxy Development</TD
+>Introduction</TD
><TD
WIDTH="34%"
ALIGN="center"
CLASS="SECT1"
><A
NAME="DOCUMENTATION"
->5. Documentation Guidelines</A
+>3. Documentation Guidelines</A
></H1
><P
> All formal documents are maintained in Docbook SGML and located in the
CLASS="SECT2"
><A
NAME="SGML"
->5.1. Quickstart to Docbook and SGML</A
+>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.
CLASS="SECT2"
><A
NAME="DOCSTYLE"
->5.2. <SPAN
+>3.2. <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> Documentation Style</A
><H2
CLASS="SECT2"
><A
-NAME="AEN212"
->5.3. Privoxy Custom Entities</A
+NAME="AEN209"
+>3.3. Privoxy Custom Entities</A
></H2
><P
> <SPAN
>
version string, e.g. <SPAN
CLASS="QUOTE"
->"2.9.14"</SPAN
+>"2.9.15"</SPAN
>.
</TD
></TR
></DIV
><P
CLASS="PUBDATE"
->$Id: developer-manual.sgml,v 1.39 2002/05/02 15:08:25 oes Exp $<BR></P
+>$Id: developer-manual.sgml,v 1.40 2002/05/04 00:43:43 hal9 Exp $<BR></P
><DIV
><DIV
CLASS="ABSTRACT"
>Table of Contents</B
></DT
><DT
-><A
-HREF="index.html#INTRO"
-></A
-></DT
-><DT
>1. <A
HREF="introduction.html"
>Introduction</A
></DT
+><DD
+><DL
><DT
->3. <A
-HREF="quickstart.html"
+>1.1. <A
+HREF="introduction.html#QUICKSTART"
>Quickstart to Privoxy Development</A
></DT
+></DL
+></DD
><DT
->4. <A
+>2. <A
HREF="cvs.html"
>The CVS Repository</A
></DT
><DD
><DL
><DT
->4.1. <A
+>2.1. <A
HREF="cvs.html#CVSACCESS"
>Access to CVS</A
></DT
><DT
->4.2. <A
+>2.2. <A
HREF="cvs.html#CVSCOMMIT"
>CVS Commit Guideline</A
></DT
><DT
->4.3. <A
+>2.3. <A
HREF="cvs.html#CVSWHENASK"
>Discussing Changes First</A
></DT
></DL
></DD
><DT
->5. <A
+>3. <A
HREF="documentation.html"
>Documentation Guidelines</A
></DT
><DD
><DL
><DT
->5.1. <A
+>3.1. <A
HREF="documentation.html#SGML"
>Quickstart to Docbook and SGML</A
></DT
><DT
->5.2. <A
+>3.2. <A
HREF="documentation.html#DOCSTYLE"
><SPAN
CLASS="APPLICATION"
> Documentation Style</A
></DT
><DT
->5.3. <A
-HREF="documentation.html#AEN212"
+>3.3. <A
+HREF="documentation.html#AEN209"
>Privoxy Custom Entities</A
></DT
></DL
></DD
><DT
->6. <A
+>4. <A
HREF="coding.html"
>Coding Guidelines</A
></DT
><DD
><DL
><DT
->6.1. <A
+>4.1. <A
HREF="coding.html#S1"
>Introduction</A
></DT
><DT
->6.2. <A
+>4.2. <A
HREF="coding.html#S2"
>Using Comments</A
></DT
><DD
><DL
><DT
->6.2.1. <A
+>4.2.1. <A
HREF="coding.html#S3"
>Comment, Comment, Comment</A
></DT
><DT
->6.2.2. <A
+>4.2.2. <A
HREF="coding.html#S4"
>Use blocks for comments</A
></DT
><DT
->6.2.3. <A
+>4.2.3. <A
HREF="coding.html#S5"
>Keep Comments on their own line</A
></DT
><DT
->6.2.4. <A
+>4.2.4. <A
HREF="coding.html#S6"
>Comment each logical step</A
></DT
><DT
->6.2.5. <A
+>4.2.5. <A
HREF="coding.html#S7"
>Comment All Functions Thoroughly</A
></DT
><DT
->6.2.6. <A
+>4.2.6. <A
HREF="coding.html#S8"
>Comment at the end of braces if the
content is more than one screen length</A
></DL
></DD
><DT
->6.3. <A
+>4.3. <A
HREF="coding.html#S9"
>Naming Conventions</A
></DT
><DD
><DL
><DT
->6.3.1. <A
+>4.3.1. <A
HREF="coding.html#S10"
>Variable Names</A
></DT
><DT
->6.3.2. <A
+>4.3.2. <A
HREF="coding.html#S11"
>Function Names</A
></DT
><DT
->6.3.3. <A
+>4.3.3. <A
HREF="coding.html#S12"
>Header file prototypes</A
></DT
><DT
->6.3.4. <A
+>4.3.4. <A
HREF="coding.html#S13"
>Enumerations, and #defines</A
></DT
><DT
->6.3.5. <A
+>4.3.5. <A
HREF="coding.html#S14"
>Constants</A
></DT
></DL
></DD
><DT
->6.4. <A
+>4.4. <A
HREF="coding.html#S15"
>Using Space</A
></DT
><DD
><DL
><DT
->6.4.1. <A
+>4.4.1. <A
HREF="coding.html#S16"
>Put braces on a line by themselves.</A
></DT
><DT
->6.4.2. <A
+>4.4.2. <A
HREF="coding.html#S17"
>ALL control statements should have a
block</A
></DT
><DT
->6.4.3. <A
+>4.4.3. <A
HREF="coding.html#S18"
>Do not belabor/blow-up boolean
expressions</A
></DT
><DT
->6.4.4. <A
+>4.4.4. <A
HREF="coding.html#S19"
>Use white space freely because it is
free</A
></DT
><DT
->6.4.5. <A
+>4.4.5. <A
HREF="coding.html#S20"
>Don't use white space around structure
operators</A
></DT
><DT
->6.4.6. <A
+>4.4.6. <A
HREF="coding.html#S21"
>Make the last brace of a function stand
out</A
></DT
><DT
->6.4.7. <A
+>4.4.7. <A
HREF="coding.html#S22"
>Use 3 character indentions</A
></DT
></DL
></DD
><DT
->6.5. <A
+>4.5. <A
HREF="coding.html#S23"
>Initializing</A
></DT
><DD
><DL
><DT
->6.5.1. <A
+>4.5.1. <A
HREF="coding.html#S24"
>Initialize all variables</A
></DT
></DL
></DD
><DT
->6.6. <A
+>4.6. <A
HREF="coding.html#S25"
>Functions</A
></DT
><DD
><DL
><DT
->6.6.1. <A
+>4.6.1. <A
HREF="coding.html#S26"
>Name functions that return a boolean as a
question.</A
></DT
><DT
->6.6.2. <A
+>4.6.2. <A
HREF="coding.html#S27"
>Always specify a return type for a
function.</A
></DT
><DT
->6.6.3. <A
+>4.6.3. <A
HREF="coding.html#S28"
>Minimize function calls when iterating by
using variables</A
></DT
><DT
->6.6.4. <A
+>4.6.4. <A
HREF="coding.html#S29"
>Pass and Return by Const Reference</A
></DT
><DT
->6.6.5. <A
+>4.6.5. <A
HREF="coding.html#S30"
>Pass and Return by Value</A
></DT
><DT
->6.6.6. <A
+>4.6.6. <A
HREF="coding.html#S31"
>Names of include files</A
></DT
><DT
->6.6.7. <A
+>4.6.7. <A
HREF="coding.html#S32"
>Provide multiple inclusion
protection</A
></DT
><DT
->6.6.8. <A
+>4.6.8. <A
HREF="coding.html#S33"
>Use `extern "C"` when appropriate</A
></DT
><DT
->6.6.9. <A
+>4.6.9. <A
HREF="coding.html#S34"
>Where Possible, Use Forward Struct
Declaration Instead of Includes</A
></DL
></DD
><DT
->6.7. <A
+>4.7. <A
HREF="coding.html#S35"
>General Coding Practices</A
></DT
><DD
><DL
><DT
->6.7.1. <A
+>4.7.1. <A
HREF="coding.html#S36"
>Turn on warnings</A
></DT
><DT
->6.7.2. <A
+>4.7.2. <A
HREF="coding.html#S37"
>Provide a default case for all switch
statements</A
></DT
><DT
->6.7.3. <A
+>4.7.3. <A
HREF="coding.html#S38"
>Try to avoid falling through cases in a
switch statement.</A
></DT
><DT
->6.7.4. <A
+>4.7.4. <A
HREF="coding.html#S39"
>Use 'long' or 'short' Instead of
'int'</A
></DT
><DT
->6.7.5. <A
+>4.7.5. <A
HREF="coding.html#S40"
>Don't mix size_t and other types</A
></DT
><DT
->6.7.6. <A
+>4.7.6. <A
HREF="coding.html#S41"
>Declare each variable and struct on its
own line.</A
></DT
><DT
->6.7.7. <A
+>4.7.7. <A
HREF="coding.html#S42"
>Use malloc/zalloc sparingly</A
></DT
><DT
->6.7.8. <A
+>4.7.8. <A
HREF="coding.html#S43"
>The Programmer Who Uses 'malloc' is
Responsible for Ensuring 'free'</A
></DT
><DT
->6.7.9. <A
+>4.7.9. <A
HREF="coding.html#S44"
>Add loaders to the `file_list' structure
and in order</A
></DT
><DT
->6.7.10. <A
+>4.7.10. <A
HREF="coding.html#S45"
>"Uncertain" new code and/or changes to
existing code, use FIXME</A
></DL
></DD
><DT
->6.8. <A
+>4.8. <A
HREF="coding.html#S46"
>Addendum: Template for files and function
comment blocks:</A
></DL
></DD
><DT
->7. <A
+>5. <A
HREF="testing.html"
>Testing Guidelines</A
></DT
><DD
><DL
><DT
->7.1. <A
+>5.1. <A
HREF="testing.html#TESTING-PLAN"
>Testplan for releases</A
></DT
><DT
->7.2. <A
+>5.2. <A
HREF="testing.html#TESTING-REPORT"
>Test reports</A
></DT
></DL
></DD
><DT
->8. <A
+>6. <A
HREF="newrelease.html"
>Releasing a New Version</A
></DT
><DD
><DL
><DT
->8.1. <A
+>6.1. <A
HREF="newrelease.html#VERSIONNUMBERS"
>Version numbers</A
></DT
><DT
->8.2. <A
+>6.2. <A
HREF="newrelease.html#BEFORERELEASE"
>Before the Release: Freeze</A
></DT
><DT
->8.3. <A
+>6.3. <A
HREF="newrelease.html#THERELEASE"
>Building and Releasing the Packages</A
></DT
><DD
><DL
><DT
->8.3.1. <A
+>6.3.1. <A
HREF="newrelease.html#NEWRELEASE-TARBALL"
>Source Tarball</A
></DT
><DT
->8.3.2. <A
+>6.3.2. <A
HREF="newrelease.html#NEWRELEASE-RPM"
>SuSE or Red Hat RPM</A
></DT
><DT
->8.3.3. <A
+>6.3.3. <A
HREF="newrelease.html#NEWRELEASE-OS2"
>OS/2</A
></DT
><DT
->8.3.4. <A
+>6.3.4. <A
HREF="newrelease.html#NEWRELEASE-SOLARIS"
>Solaris</A
></DT
><DT
->8.3.5. <A
+>6.3.5. <A
HREF="newrelease.html#NEWRELEASE-WINDOWS"
>Windows</A
></DT
><DT
->8.3.6. <A
+>6.3.6. <A
HREF="newrelease.html#NEWRELEASE-DEBIAN"
>Debian</A
></DT
><DT
->8.3.7. <A
+>6.3.7. <A
HREF="newrelease.html#NEWRELEASE-MACOSX"
>Mac OSX</A
></DT
><DT
->8.3.8. <A
+>6.3.8. <A
HREF="newrelease.html#NEWRELEASE-FREEBSD"
>FreeBSD</A
></DT
><DT
->8.3.9. <A
+>6.3.9. <A
HREF="newrelease.html#NEWRELEASE-HPUX"
>HP-UX 11</A
></DT
><DT
->8.3.10. <A
+>6.3.10. <A
HREF="newrelease.html#NEWRELEASE-AMIGA"
>Amiga OS</A
></DT
><DT
->8.3.11. <A
+>6.3.11. <A
HREF="newrelease.html#NEWRELEASE-AIX"
>AIX</A
></DT
></DL
></DD
><DT
->8.4. <A
+>6.4. <A
HREF="newrelease.html#RELEASING"
>Uploading and Releasing Your Package</A
></DT
><DT
->8.5. <A
+>6.5. <A
HREF="newrelease.html#AFTERRELEASE"
>After the Release</A
></DT
></DL
></DD
><DT
->9. <A
+>7. <A
HREF="webserver-update.html"
>Update the Webserver</A
></DT
><DT
->10. <A
+>8. <A
HREF="contact.html"
>Contacting the developers, Bug Reporting and Feature Requests</A
></DT
><DD
><DL
><DT
->10.1. <A
+>8.1. <A
HREF="contact.html#CONTACT-SUPPORT"
>Get Support</A
></DT
><DT
->10.2. <A
+>8.2. <A
HREF="contact.html#CONTACT-BUGS"
>Report bugs</A
></DT
><DT
->10.3. <A
+>8.3. <A
HREF="contact.html#CONTACT-FEATURE"
>Request new features</A
></DT
><DT
->10.4. <A
+>8.4. <A
HREF="contact.html#CONTACT-ADS"
>Report ads or other filter problems</A
></DT
><DT
->10.5. <A
+>8.5. <A
HREF="contact.html#CONTACT-OTHER"
>Other</A
></DT
></DL
></DD
><DT
->11. <A
+>9. <A
HREF="copyright.html"
>Copyright and History</A
></DT
><DD
><DL
><DT
->11.1. <A
-HREF="copyright.html#AEN1060"
+>9.1. <A
+HREF="copyright.html#AEN1057"
>Copyright</A
></DT
><DT
->11.2. <A
-HREF="copyright.html#AEN1067"
+>9.2. <A
+HREF="copyright.html#AEN1064"
>History</A
></DT
></DL
></DD
><DT
->12. <A
+>10. <A
HREF="seealso.html"
>See also</A
></DT
></DL
></DIV
-><DIV
-CLASS="SECT1"
-><H1
-CLASS="SECT1"
-><A
-NAME="INTRO"
-></A
-></H1
-><P
-> </P
-></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
TITLE="Privoxy Developer Manual"
HREF="index.html"><LINK
REL="NEXT"
-TITLE="Quickstart to Privoxy Development"
-HREF="quickstart.html"><LINK
+TITLE="The CVS Repository"
+HREF="cvs.html"><LINK
REL="STYLESHEET"
TYPE="text/css"
HREF="../p_doc.css"></HEAD
ALIGN="right"
VALIGN="bottom"
><A
-HREF="quickstart.html"
+HREF="cvs.html"
>Next</A
></TD
></TR
> One does not have to be a programmer to contribute. Packaging, testing,
and porting, are all important jobs as well.
</P
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="QUICKSTART"
+>1.1. Quickstart to Privoxy Development</A
+></H2
+><P
+> You'll need an account on <A
+HREF="http://sourceforge.net/"
+TARGET="_top"
+>Sourceforge</A
+> to support our
+ development. Mail your ID to <A
+HREF="mailto:developers@privoxy.org"
+TARGET="_top"
+>the list</A
+> and wait until a
+ project manager has added you.
+ </P
+><P
+> For the time being (read, this section is under construction), please
+ refer to the extensive comments in the source code.
+ </P
+></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
ALIGN="right"
VALIGN="top"
><A
-HREF="quickstart.html"
+HREF="cvs.html"
>Next</A
></TD
></TR
WIDTH="33%"
ALIGN="right"
VALIGN="top"
->Quickstart to Privoxy Development</TD
+>The CVS Repository</TD
></TR
></TABLE
></DIV
CLASS="SECT1"
><A
NAME="NEWRELEASE"
->8. Releasing a New Version</A
+>6. Releasing a New Version</A
></H1
><P
> When we release versions of <SPAN
CLASS="SECT2"
><A
NAME="VERSIONNUMBERS"
->8.1. Version numbers</A
+>6.1. Version numbers</A
></H2
><P
> First you need to determine which version number the release will have.
CLASS="SECT2"
><A
NAME="BEFORERELEASE"
->8.2. Before the Release: Freeze</A
+>6.2. Before the Release: Freeze</A
></H2
><P
> The following <I
CLASS="SECT2"
><A
NAME="THERELEASE"
->8.3. Building and Releasing the Packages</A
+>6.3. Building and Releasing the Packages</A
></H2
><P
> Now the individual packages can be built and released. Note that for
CLASS="SECT3"
><A
NAME="NEWRELEASE-TARBALL"
->8.3.1. Source Tarball</A
+>6.3.1. Source Tarball</A
></H3
><P
> First, <I
CLASS="SECT3"
><A
NAME="NEWRELEASE-RPM"
->8.3.2. SuSE or Red Hat RPM</A
+>6.3.2. SuSE or Red Hat RPM</A
></H3
><P
> In following text, replace <TT
CLASS="SECT3"
><A
NAME="NEWRELEASE-OS2"
->8.3.3. OS/2</A
+>6.3.3. OS/2</A
></H3
><P
> First, <I
CLASS="SECT3"
><A
NAME="NEWRELEASE-SOLARIS"
->8.3.4. Solaris</A
+>6.3.4. Solaris</A
></H3
><P
> Login to Sourceforge's compilefarm via ssh:
CLASS="SECT3"
><A
NAME="NEWRELEASE-WINDOWS"
->8.3.5. Windows</A
+>6.3.5. Windows</A
></H3
><P
> You should ensure you have the latest version of Cygwin (from
CLASS="SECT3"
><A
NAME="NEWRELEASE-DEBIAN"
->8.3.6. Debian</A
+>6.3.6. Debian</A
></H3
><P
> First, <I
CLASS="SECT3"
><A
NAME="NEWRELEASE-MACOSX"
->8.3.7. Mac OSX</A
+>6.3.7. Mac OSX</A
></H3
><P
> First, <I
CLASS="SECT3"
><A
NAME="NEWRELEASE-FREEBSD"
->8.3.8. FreeBSD</A
+>6.3.8. FreeBSD</A
></H3
><P
> Login to Sourceforge's compilefarm via ssh:
CLASS="SECT3"
><A
NAME="NEWRELEASE-HPUX"
->8.3.9. HP-UX 11</A
+>6.3.9. HP-UX 11</A
></H3
><P
> First, <I
CLASS="SECT3"
><A
NAME="NEWRELEASE-AMIGA"
->8.3.10. Amiga OS</A
+>6.3.10. Amiga OS</A
></H3
><P
> First, <I
CLASS="SECT3"
><A
NAME="NEWRELEASE-AIX"
->8.3.11. AIX</A
+>6.3.11. AIX</A
></H3
><P
> Login to Sourceforge's compilefarm via ssh:
CLASS="SECT2"
><A
NAME="RELEASING"
->8.4. Uploading and Releasing Your Package</A
+>6.4. Uploading and Releasing Your Package</A
></H2
><P
> After the package is ready, it is time to upload it
>$VERSION ($CODE_STATUS)</TT
>, e.g. <I
CLASS="EMPHASIS"
->2.9.14
+>2.9.15
(beta)</I
>.
</P
CLASS="SECT2"
><A
NAME="AFTERRELEASE"
->8.5. After the Release</A
+>6.5. After the Release</A
></H2
><P
> When all (or: most of the) packages have been uploaded and made available,
CLASS="SECT1"
><A
NAME="SEEALSO"
->12. See also</A
+>10. See also</A
></H1
><P
> Other references and sites of interest to <SPAN
CLASS="SECT1"
><A
NAME="TESTING"
->7. Testing Guidelines</A
+>5. Testing Guidelines</A
></H1
><P
>To be filled.</P
CLASS="SECT2"
><A
NAME="TESTING-PLAN"
->7.1. Testplan for releases</A
+>5.1. Testplan for releases</A
></H2
><P
> Explain release numbers. major, minor. developer releases. etc.
CLASS="SECT2"
><A
NAME="TESTING-REPORT"
->7.2. Test reports</A
+>5.2. Test reports</A
></H2
><P
>Please submit test reports only with the <A
CLASS="SECT1"
><A
NAME="WEBSERVER-UPDATE"
->9. Update the Webserver</A
+>7. Update the Webserver</A
></H1
><P
> When updating the webserver, please follow these steps to make
><H3
CLASS="SECT2"
><A
-NAME="AEN237"
+NAME="AEN232"
>3.2. What is an <SPAN
CLASS="QUOTE"
>"actions"</SPAN
><H3
CLASS="SECT2"
><A
-NAME="AEN252"
+NAME="AEN247"
>3.4. How are actions files configured? What is the easiest
way to do this?</A
></H3
><H3
CLASS="SECT2"
><A
-NAME="AEN260"
+NAME="AEN255"
>3.5. There are several different <SPAN
CLASS="QUOTE"
>"actions"</SPAN
><H3
CLASS="SECT2"
><A
-NAME="AEN286"
+NAME="AEN281"
>3.7. What is <SPAN
CLASS="QUOTE"
>"default.filter"</SPAN
><H3
CLASS="SECT2"
><A
-NAME="AEN299"
+NAME="AEN294"
>3.8. How can I set up <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
><H3
CLASS="SECT2"
><A
-NAME="AEN311"
+NAME="AEN306"
>3.9. Instead of ads, now I get a checkerboard pattern. I don't want to see anything.</A
></H3
><P
><H3
CLASS="SECT2"
><A
-NAME="AEN330"
+NAME="AEN325"
>3.10. Why would anybody want to see a checkerboard pattern?</A
></H3
><P
><H3
CLASS="SECT2"
><A
-NAME="AEN335"
+NAME="AEN330"
>3.11. I see large red banners on some pages that say
<SPAN
CLASS="QUOTE"
TARGET="_top"
>user manual</A
>,
- which describes how to do this. </P
+ which describes how to do this.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="TRANSPARENT"
+>3.15. Can <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> run as a <SPAN
+CLASS="QUOTE"
+>"transparent"</SPAN
+> proxy?</A
+></H3
+><P
+> No, <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> currently does not have this ability,
+ though it is planned for a future release. Transparent proxies require
+ special handling of the request headers beyond what
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is now capable of.</P
+><P
+> Chaining <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> with another proxy that has
+ this ability should work though.
+ See the <A
+HREF="../user-manual/config.html#FORWARDING"
+TARGET="_top"
+>user
+ manual</A
+>, which describes this, and also <A
+HREF="http://www.transproxy.nlc.net.au/"
+TARGET="_top"
+>http://www.transproxy.nlc.net.au/</A
+>.</P
></DIV
></DIV
><DIV
CLASS="SECT1"
><A
NAME="CONTACT"
->7. Contacting the developers, Bug Reporting and Feature Requests</A
+>6. Contacting the developers, Bug Reporting and Feature Requests</A
></H1
><P
> We value your feedback. However, to provide you with the best support, please
CLASS="SECT2"
><A
NAME="CONTACT-SUPPORT"
->7.1. Get Support</A
+>6.1. Get Support</A
></H2
><P
> <P
CLASS="SECT2"
><A
NAME="CONTACT-BUGS"
->7.2. Report bugs</A
+>6.2. Report bugs</A
></H2
><P
> <P
CLASS="SECT2"
><A
NAME="CONTACT-FEATURE"
->7.3. Request new features</A
+>6.3. Request new features</A
></H2
><P
> <P
CLASS="SECT2"
><A
NAME="CONTACT-ADS"
->7.4. Report ads or other filter problems</A
+>6.4. Report ads or other filter problems</A
></H2
><P
>You can also send feedback on websites that Privoxy has problems with. Please bookmark
CLASS="SECT2"
><A
NAME="CONTACT-OTHER"
->7.5. Other</A
+>6.5. Other</A
></H2
><P
> <P
CLASS="SECT1"
><A
NAME="COPYRIGHT"
->8. Copyright and History</A
+>7. Copyright and History</A
></H1
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
-NAME="AEN631"
->8.1. Copyright</A
+NAME="AEN637"
+>7.1. Copyright</A
></H2
><P
> <SPAN
><H2
CLASS="SECT2"
><A
-NAME="AEN638"
->8.2. History</A
+NAME="AEN644"
+>7.2. History</A
></H2
><P
> <SPAN
><H3
CLASS="SECT2"
><A
-NAME="AEN42"
+NAME="AEN39"
>1.2. Why <SPAN
CLASS="QUOTE"
>"Privoxy"</SPAN
><UL
><LI
><P
-> FIXME: complete the list of features. change the order: most important
- features to the top of the list. prefix new features with "NEW".
- </P
-></LI
-><LI
-><P
> Integrated browser based configuration and control utility at <A
HREF="http://config.privoxy.org/"
TARGET="_top"
></LI
><LI
><P
-> Blocking of annoying pop-up browser windows.
+> Web page content filtering (removes banners based on size,
+ invisible <SPAN
+CLASS="QUOTE"
+>"web-bugs"</SPAN
+>, JavaScript and HTML annoyances, pop-up windows, etc.)
+ </P
+></LI
+><LI
+><P
+> Modularized configuration that allows for standard settings and
+ user settings to reside in separate files, so that installing updated
+ actions files won't overwrite idividual user settings.
</P
></LI
><LI
><P
> Support for Perl Compatible Regular Expressions in the configuration files, and
generally a more sophisticated and flexible configuration syntax over
- previous versions.
+ previous versions.
</P
></LI
><LI
><P
-> GIF de-animation.
+> Improved cookie management features (e.g. session based cookies).
</P
></LI
><LI
><P
-> Web page content filtering (removes banners based on size,
- invisible <SPAN
-CLASS="QUOTE"
->"web-bugs"</SPAN
->, JavaScript and HTML annoyances, pop-ups, etc.)
+> GIF de-animation.
</P
></LI
><LI
></LI
><LI
><P
-> Auto-detection and re-reading of config file changes.
+> User-customizable HTML templates for all proxy-generated pages (e.g. "blocked" page).
</P
></LI
><LI
><P
-> User-customizable HTML templates (e.g. 404 error page).
- </P
-></LI
-><LI
-><P
-> Improved cookie management features (e.g. session based cookies).
+> Auto-detection and re-reading of config file changes.
</P
></LI
><LI
><H3
CLASS="SECT2"
><A
-NAME="AEN122"
+NAME="AEN117"
>1.6. How does <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
><H3
CLASS="SECT2"
><A
-NAME="AEN134"
+NAME="AEN129"
>1.7. Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
includes tools to help identify these types of situations so they can be
addressed as needed, allowing you to customize your installation.
(<A
-HREF="trouble.html#AEN570"
+HREF="trouble.html#AEN576"
>See the Troubleshooting section below</A
>.)</P
></DIV
></DIV
><P
CLASS="PUBDATE"
->$Id: faq.sgml,v 1.52 2002/04/29 03:08:43 hal9 Exp $<BR></P
+>$Id: faq.sgml,v 1.55 2002/05/04 00:41:56 hal9 Exp $<BR></P
><DIV
><DIV
CLASS="ABSTRACT"
>Table of Contents</B
></DT
><DT
-><A
-HREF="index.html#INTRO"
-></A
-></DT
-><DT
>1. <A
HREF="general.html"
>General Information</A
></DT
><DT
>1.2. <A
-HREF="general.html#AEN42"
+HREF="general.html#AEN39"
>Why <SPAN
CLASS="QUOTE"
>"Privoxy"</SPAN
></DT
><DT
>1.6. <A
-HREF="general.html#AEN122"
+HREF="general.html#AEN117"
>How does <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></DT
><DT
>1.7. <A
-HREF="general.html#AEN134"
+HREF="general.html#AEN129"
>Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></DT
><DT
>2.4. <A
-HREF="installation.html#AEN194"
+HREF="installation.html#AEN189"
>I just installed <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></DT
><DT
>2.6. <A
-HREF="installation.html#AEN219"
+HREF="installation.html#AEN214"
>I just installed <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></DT
><DT
>3.2. <A
-HREF="configuration.html#AEN237"
+HREF="configuration.html#AEN232"
>What is an <SPAN
CLASS="QUOTE"
>"actions"</SPAN
></DT
><DT
>3.4. <A
-HREF="configuration.html#AEN252"
+HREF="configuration.html#AEN247"
>How are actions files configured? What is the easiest
way to do this?</A
></DT
><DT
>3.5. <A
-HREF="configuration.html#AEN260"
+HREF="configuration.html#AEN255"
>There are several different <SPAN
CLASS="QUOTE"
>"actions"</SPAN
></DT
><DT
>3.7. <A
-HREF="configuration.html#AEN286"
+HREF="configuration.html#AEN281"
>What is <SPAN
CLASS="QUOTE"
>"default.filter"</SPAN
></DT
><DT
>3.8. <A
-HREF="configuration.html#AEN299"
+HREF="configuration.html#AEN294"
>How can I set up <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></DT
><DT
>3.9. <A
-HREF="configuration.html#AEN311"
+HREF="configuration.html#AEN306"
>Instead of ads, now I get a checkerboard pattern. I don't want to see anything.</A
></DT
><DT
>3.10. <A
-HREF="configuration.html#AEN330"
+HREF="configuration.html#AEN325"
>Why would anybody want to see a checkerboard pattern?</A
></DT
><DT
>3.11. <A
-HREF="configuration.html#AEN335"
+HREF="configuration.html#AEN330"
>I see large red banners on some pages that say
<SPAN
CLASS="QUOTE"
>Squid</SPAN
>?</A
></DT
+><DT
+>3.15. <A
+HREF="configuration.html#TRANSPARENT"
+>Can <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> run as a <SPAN
+CLASS="QUOTE"
+>"transparent"</SPAN
+> proxy?</A
+></DT
></DL
></DD
><DT
><DL
><DT
>4.1. <A
-HREF="misc.html#AEN388"
+HREF="misc.html#AEN394"
>How much does <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></DT
><DT
>4.7. <A
-HREF="misc.html#AEN439"
+HREF="misc.html#AEN445"
>Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></DT
><DT
>4.8. <A
-HREF="misc.html#AEN450"
+HREF="misc.html#AEN456"
>Might some things break because header information is
being altered?</A
></DT
><DT
>4.9. <A
-HREF="misc.html#AEN460"
+HREF="misc.html#AEN466"
>Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></DT
><DT
>4.10. <A
-HREF="misc.html#AEN468"
+HREF="misc.html#AEN474"
>What about as a firewall? Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></DT
><DT
>4.11. <A
-HREF="misc.html#AEN473"
+HREF="misc.html#AEN479"
>The <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></DT
><DT
>4.12. <A
-HREF="misc.html#AEN482"
+HREF="misc.html#AEN488"
>I have large empty spaces now where ads used to be.
Why?</A
></DT
><DT
>4.13. <A
-HREF="misc.html#AEN485"
+HREF="misc.html#AEN491"
>How can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></DT
><DT
>4.14. <A
-HREF="misc.html#AEN492"
+HREF="misc.html#AEN498"
><SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
><DL
><DT
>5.1. <A
-HREF="trouble.html#AEN551"
+HREF="trouble.html#AEN557"
>I just upgraded and am getting <SPAN
CLASS="QUOTE"
>"connection refused"</SPAN
></DT
><DT
>5.2. <A
-HREF="trouble.html#AEN564"
+HREF="trouble.html#AEN570"
>I just added a new rule, but the steenkin ad is
still getting through. How?</A
></DT
><DT
>5.3. <A
-HREF="trouble.html#AEN570"
+HREF="trouble.html#AEN576"
>One of my favorite sites does not work with <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></DL
></DD
><DT
->7. <A
+>6. <A
HREF="contact.html"
>Contacting the developers, Bug Reporting and Feature Requests</A
></DT
><DD
><DL
><DT
->7.1. <A
+>6.1. <A
HREF="contact.html#CONTACT-SUPPORT"
>Get Support</A
></DT
><DT
->7.2. <A
+>6.2. <A
HREF="contact.html#CONTACT-BUGS"
>Report bugs</A
></DT
><DT
->7.3. <A
+>6.3. <A
HREF="contact.html#CONTACT-FEATURE"
>Request new features</A
></DT
><DT
->7.4. <A
+>6.4. <A
HREF="contact.html#CONTACT-ADS"
>Report ads or other filter problems</A
></DT
><DT
->7.5. <A
+>6.5. <A
HREF="contact.html#CONTACT-OTHER"
>Other</A
></DT
></DL
></DD
><DT
->8. <A
+>7. <A
HREF="copyright.html"
>Copyright and History</A
></DT
><DD
><DL
><DT
->8.1. <A
-HREF="copyright.html#AEN631"
+>7.1. <A
+HREF="copyright.html#AEN637"
>Copyright</A
></DT
><DT
->8.2. <A
-HREF="copyright.html#AEN638"
+>7.2. <A
+HREF="copyright.html#AEN644"
>History</A
></DT
></DL
></DD
></DL
></DIV
-><DIV
-CLASS="SECT1"
-><H1
-CLASS="SECT1"
-><A
-NAME="INTRO"
-></A
-></H1
-><P
-> </P
-></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><H3
CLASS="SECT2"
><A
-NAME="AEN194"
+NAME="AEN189"
>2.4. I just installed <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
><H3
CLASS="SECT2"
><A
-NAME="AEN219"
+NAME="AEN214"
>2.6. I just installed <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
><H3
CLASS="SECT2"
><A
-NAME="AEN388"
+NAME="AEN394"
>4.1. How much does <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
><P
> If you have version 2.0.2, then the equivalent is
http://example.com/show-proxy-args (but you get far less information, and
- you should really consider upgrading to 2.9.14).</P
+ you should really consider upgrading to 2.9.15).</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="AEN439"
+NAME="AEN445"
>4.7. Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
><H3
CLASS="SECT2"
><A
-NAME="AEN450"
+NAME="AEN456"
>4.8. Might some things break because header information is
being altered?</A
></H3
><H3
CLASS="SECT2"
><A
-NAME="AEN460"
+NAME="AEN466"
>4.9. Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
><H3
CLASS="SECT2"
><A
-NAME="AEN468"
+NAME="AEN474"
>4.10. What about as a firewall? Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
><H3
CLASS="SECT2"
><A
-NAME="AEN473"
+NAME="AEN479"
>4.11. The <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
><H3
CLASS="SECT2"
><A
-NAME="AEN482"
+NAME="AEN488"
>4.12. I have large empty spaces now where ads used to be.
Why?</A
></H3
><H3
CLASS="SECT2"
><A
-NAME="AEN485"
+NAME="AEN491"
>4.13. How can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
><H3
CLASS="SECT2"
><A
-NAME="AEN492"
+NAME="AEN498"
>4.14. <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
><H3
CLASS="SECT2"
><A
-NAME="AEN551"
+NAME="AEN557"
>5.1. I just upgraded and am getting <SPAN
CLASS="QUOTE"
>"connection refused"</SPAN
><H3
CLASS="SECT2"
><A
-NAME="AEN564"
+NAME="AEN570"
>5.2. I just added a new rule, but the steenkin ad is
still getting through. How?</A
></H3
><H3
CLASS="SECT2"
><A
-NAME="AEN570"
+NAME="AEN576"
>5.3. One of my favorite sites does not work with <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
CLASS="SECT1"
><A
NAME="ACTIONS-FILE"
->9. Actions Files</A
+>8. Actions Files</A
></H1
><P
> The actions files are used to define what actions
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> takes for which URLs, and thus determines
+> takes for which URLs, and thus determine
how ad images, cookies and various other aspects of HTTP content and
transactions are handled, and on which sites (or even parts thereof). There
are three such files included with <SPAN
CLASS="FILENAME"
>default.action</TT
>. These have increasing levels of
- aggressiveness. It is not recommend to edit this file.
+ aggressiveness <I
+CLASS="EMPHASIS"
+>and have no influence on your browsing unless
+ you select them explicitly in the editor</I
+>. It is not recommend
+ to edit this file.
</P
></LI
><LI
>http://config.privoxy.org/show-status</A
>.</P
><P
-> An actions file typically has sections. Near the top, <SPAN
+> An actions file typically has multiple sections. If you want to use
+ <SPAN
CLASS="QUOTE"
>"aliases"</SPAN
-> are
- optionally defined (discussed <A
+> in an actions file, you have to place the (optional)
+ <A
HREF="actions-file.html#ALIASES"
-TARGET="_top"
->below</A
->), then the default set of rules
- which will apply universally to all sites and pages. And then below that,
- exceptions to the defined universal policies. </P
+>alias section</A
+> at the top of that file.
+ Then comes the default set of rules which will apply universally to all
+ sites and pages (be <I
+CLASS="EMPHASIS"
+>very careful</I
+> with using such a
+ universal set in <TT
+CLASS="FILENAME"
+>user.action</TT
+> or any other actions file after
+ <TT
+CLASS="FILENAME"
+>default.action</TT
+>, because it will override the result
+ from consulting any previous file). And then below that,
+ exceptions to the defined universal policies. You can regard
+ <TT
+CLASS="FILENAME"
+>user.action</TT
+> as an appendix to <TT
+CLASS="FILENAME"
+>default.action</TT
+>,
+ with the advantage that is a separate file, which makes preserving your
+ personal settings across <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> upgrades easier.</P
><P
>
Actions can be used to block anything you want, including ads, banners, or
just some obnoxious URL that you would rather not see. Cookies can be accepted
or rejected, or accepted only during the current browser session (i.e. not
written to disk), content can be modified, JavaScripts tamed, user-tracking
- fooled, and much more. See below for a complete list of actions.</P
+ fooled, and much more. See below for a <A
+HREF="actions-file.html#ACTIONS"
+>complete list
+ of actions</A
+>.</P
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
-NAME="AEN1309"
->9.1. Finding the Right Mix</A
+NAME="AEN1378"
+>8.1. Finding the Right Mix</A
></H2
><P
> Note that some <A
><H2
CLASS="SECT2"
><A
-NAME="AEN1316"
->9.2. How to Edit</A
+NAME="AEN1385"
+>8.2. How to Edit</A
></H2
><P
-> The easiest way to edit the <SPAN
-CLASS="QUOTE"
->"actions"</SPAN
-> files is with a browser by
+> The easiest way to edit the actions files is with a browser by
using our browser-based editor, which can be reached from <A
HREF="http://config.privoxy.org/show-status"
TARGET="_top"
>http://config.privoxy.org/show-status</A
+>.
+ The editor allows both fine-grained control over every single feature on a
+ per-URL basis, and easy choosing from wholesale sets of defaults like
+ <SPAN
+CLASS="QUOTE"
+>"Cautious"</SPAN
+>, <SPAN
+CLASS="QUOTE"
+>"Medium"</SPAN
+> or <SPAN
+CLASS="QUOTE"
+>"Advanced"</SPAN
>.</P
><P
> If you prefer plain text editing to GUIs, you can of course also directly edit the
- the actions files.</P
+ the actions files. Look at <TT
+CLASS="FILENAME"
+>default.action</TT
+> which is richly
+ commented.</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
-NAME="AEN1322"
->9.3. How Actions are Applied to URLs</A
+NAME="AEN1394"
+>8.3. How Actions are Applied to URLs</A
></H2
><P
> Actions files are divided into sections. There are special sections,
is a list of URL patterns, each on a separate line.</P
><P
> To determine which actions apply to a request, the URL of the request is
- compared to all patterns in this file. Every time it matches, the list of
+ compared to all patterns in each action file file. Every time it matches, the list of
applicable actions for the URL is incrementally updated, using the heading
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,
> actions).
</P
><P
-> You can trace this process by visiting <A
+> You can trace this process for any given URL by visiting <A
HREF="http://config.privoxy.org/show-url-info"
TARGET="_top"
>http://config.privoxy.org/show-url-info</A
><H2
CLASS="SECT2"
><A
-NAME="AEN1336"
->9.4. Patterns</A
+NAME="AEN1408"
+>8.4. Patterns</A
></H2
><P
> Generally, a pattern has the form <TT
><H3
CLASS="SECT3"
><A
-NAME="AEN1376"
->9.4.1. The Domain Pattern</A
+NAME="AEN1448"
+>8.4.1. The Domain Pattern</A
></H3
><P
> The matching of the domain part offers some flexible options: if the
><H3
CLASS="SECT3"
><A
-NAME="AEN1438"
->9.4.2. The Path Pattern</A
+NAME="AEN1510"
+>8.4.2. The Path Pattern</A
></H3
><P
> <SPAN
CLASS="SECT2"
><A
NAME="ACTIONS"
->9.5. Actions</A
+>8.5. Actions</A
></H2
><P
> All actions are disabled by default, until they are explicitly enabled
CLASS="QUOTE"
>"-"</SPAN
>. So a
- <SPAN
-CLASS="QUOTE"
->"+action"</SPAN
+ <TT
+CLASS="LITERAL"
+>+action</TT
> means <SPAN
CLASS="QUOTE"
>"do that action"</SPAN
>, e.g.
- <SPAN
+ <TT
+CLASS="LITERAL"
+>+block</TT
+> means <SPAN
CLASS="QUOTE"
->"+block"</SPAN
-> means please <SPAN
+>"please block URLs that match the
+ following patterns"</SPAN
+>, and <TT
+CLASS="LITERAL"
+>-block</TT
+> means <SPAN
CLASS="QUOTE"
->"block the following URL
- patterns"</SPAN
->. </P
+>"don't
+ block URLs that match the following patterns, even if <TT
+CLASS="LITERAL"
+>+block</TT
+>
+ previously applied."</SPAN
+> </P
+><P
+>
+ Again, actions are invoked by placing them on a line, enclosed in curly braces and
+ separated by whitespace, like in
+ <TT
+CLASS="LITERAL"
+>{+some-action -some-other-action{some-parameter}}</TT
+>,
+ followed by a list of URL patterns, one per line, to which they apply.
+ Together, the actions line and the following pattern lines make up a section
+ of the actions file. </P
><P
>
- Actions are invoked by enclosing the action name in curly braces (e.g.
- {+some_action}), followed by a list of URLs (or patterns that match URLs) to
- which the action applies. There are three classes of actions: </P
+ There are three classes of actions:</P
><P
> <P
></P
>
Boolean, i.e the action can only be <SPAN
CLASS="QUOTE"
->"on"</SPAN
+>"enabled"</SPAN
> or
<SPAN
CLASS="QUOTE"
->"off"</SPAN
->. Examples:
- </P
+>"disabled"</SPAN
+>. Syntax:
+ </P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+> +<TT
+CLASS="REPLACEABLE"
+><I
+>name</I
+></TT
+> # enable action <TT
+CLASS="REPLACEABLE"
+><I
+>name</I
+></TT
+>
+ -<TT
+CLASS="REPLACEABLE"
+><I
+>name</I
+></TT
+> # disable action <TT
+CLASS="REPLACEABLE"
+><I
+>name</I
+></TT
+></PRE
+></TD
+></TR
+></TABLE
+>
+ </P
><P
-> <TT
+>
+ Example: <TT
CLASS="LITERAL"
-> <P
-CLASS="LITERALLAYOUT"
-> <I
-CLASS="EMPHASIS"
->{+name}</I
-> # enable this action<br>
- <I
-CLASS="EMPHASIS"
->{-name}</I
-> # disable this action<br>
- </P
->
- </TT
+>+block</TT
>
</P
></LI
><LI
><P
>
- Parameterized, e.g. <SPAN
-CLASS="QUOTE"
->"+/-hide-user-agent{ Mozilla 1.0 }"</SPAN
->,
- where some value is required in order to enable this type of action.
- Examples:
+ Parameterized, where some value is required in order to enable this type of action.
+ Syntax:
+ </P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+> +<TT
+CLASS="REPLACEABLE"
+><I
+>name</I
+></TT
+>{<TT
+CLASS="REPLACEABLE"
+><I
+>param</I
+></TT
+>} # enable action and set parameter to <TT
+CLASS="REPLACEABLE"
+><I
+>param</I
+></TT
+>,
+ # overwriting parameter from previous match if necessary
+ -<TT
+CLASS="REPLACEABLE"
+><I
+>name</I
+></TT
+> # disable action. The parameter can be omitted</PRE
+></TD
+></TR
+></TABLE
+>
+ </P
+><P
+> Note that if the URL matches multiple positive forms of a parameterized action,
+ the last match wins, i.e. the params from earlier matches are simply ignored.
</P
><P
-> <TT
+>
+ Example: <TT
CLASS="LITERAL"
-> <P
-CLASS="LITERALLAYOUT"
-> <I
-CLASS="EMPHASIS"
->{+name{param}}</I
-> # enable action and set parameter to <SPAN
-CLASS="QUOTE"
->"param"</SPAN
-><br>
- <I
-CLASS="EMPHASIS"
->{-name}</I
-> # disable action (<SPAN
-CLASS="QUOTE"
->"parameter"</SPAN
->) can be omitted<br>
- </P
->
- </TT
+>+hide-user-agent{ Mozilla 1.0 }</TT
>
</P
></LI
><LI
><P
>
-
- Multi-value, e.g. <SPAN
-CLASS="QUOTE"
->"{+/-add-header{Name: value}}"</SPAN
-> or
- <SPAN
-CLASS="QUOTE"
->"{+/-send-wafer{name=value}}"</SPAN
->), where some value needs to be defined
- in addition to simply enabling the action. Examples:
+ Multi-value. These look exactly like parameterized actions,
+ but they behave differently: If the action applies multiple times to the
+ same URL, but with different parameters, <I
+CLASS="EMPHASIS"
+>all</I
+> the parameters
+ from <I
+CLASS="EMPHASIS"
+>all</I
+> matches are remembered. This is used for actions
+ that can be executed for the same request repeatedly, like adding multiple
+ headers, or filtering through multiple filters. Syntax:
+ </P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+> +<TT
+CLASS="REPLACEABLE"
+><I
+>name</I
+></TT
+>{<TT
+CLASS="REPLACEABLE"
+><I
+>param</I
+></TT
+>} # enable action and add <TT
+CLASS="REPLACEABLE"
+><I
+>param</I
+></TT
+> to the list of parameters
+ -<TT
+CLASS="REPLACEABLE"
+><I
+>name</I
+></TT
+>{<TT
+CLASS="REPLACEABLE"
+><I
+>param</I
+></TT
+>} # remove the parameter <TT
+CLASS="REPLACEABLE"
+><I
+>param</I
+></TT
+> from the list of parameters
+ # If it was the last one left, disable the action.
+ <TT
+CLASS="REPLACEABLE"
+><I
+>-name</I
+></TT
+> # disable this action completely and remove all parameters from the list</PRE
+></TD
+></TR
+></TABLE
+>
</P
><P
-> <TT
+>
+ Examples: <TT
CLASS="LITERAL"
-> <P
-CLASS="LITERALLAYOUT"
-> <I
-CLASS="EMPHASIS"
->{+name{param=value}}</I
-> # enable action and set <SPAN
-CLASS="QUOTE"
->"param"</SPAN
-> to <SPAN
-CLASS="QUOTE"
->"value"</SPAN
-><br>
- <I
-CLASS="EMPHASIS"
->{-name{param=value}}</I
-> # remove the parameter <SPAN
-CLASS="QUOTE"
->"param"</SPAN
-> completely<br>
- <I
-CLASS="EMPHASIS"
->{-name}</I
-> # disable this action totally and remove <SPAN
-CLASS="APPLICATION"
->param</SPAN
-> too<br>
- </P
->
- </TT
+>+add-header{X-Fun-Header: Some text}</TT
+> and
+ <TT
+CLASS="LITERAL"
+>+filter{html-annoyances}</TT
>
</P
></LI
>config</TT
> (the default installation has three actions
files). It also quite possible for any given URL pattern to match more than
- one action!</P
+ one pattern and thus more than one set of actions!</P
><P
> The list of valid <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> <SPAN
-CLASS="QUOTE"
->"actions"</SPAN
-> are:</P
+> actions are:</P
><DIV
CLASS="SECT3"
><H4
CLASS="SECT3"
><A
NAME="ADD-HEADER"
->9.5.1. <I
+>8.5.1. <I
CLASS="EMPHASIS"
>+add-header</I
></A
>Multi-value.</P
></DD
><DT
->Typical uses:</DT
+>Purpose and typical uses:</DT
><DD
><P
-> Send a user defined HTTP header to the web server.
+> Send a user defined HTTP header to the web server. Can be used to confuse log analysis.
</P
></DD
><DT
><DD
><P
> Any value is possible. Validity of the defined HTTP headers is not checked.
+ It is recommended that you use the <SPAN
+CLASS="QUOTE"
+>"<TT
+CLASS="LITERAL"
+>X-</TT
+>"</SPAN
+> prefix
+ for custom headers.
</P
></DD
><DT
<I
CLASS="EMPHASIS"
>.example.com</I
-><br>
- </P
+></P
></DD
><DT
>Notes:</DT
CLASS="SECT3"
><A
NAME="BLOCK"
->9.5.2. <I
+>8.5.2. <I
CLASS="EMPHASIS"
>+block</I
></A
>Boolean.</P
></DD
><DT
->Typical uses:</DT
+>Purpose and typical uses:</DT
><DD
><P
-> Used to block a URL from reaching your browser. The URL may be
- anything, but is typically used to block ads or other obnoxious
- content.
+> 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 <A
+HREF="actions-file.html#HANDLE-AS-IMAGE"
+>handle-as-image</A
+> and
+ <A
+HREF="actions-file.html#SET-IMAGE-BLOCKER"
+>set-image-blocker</A
+> actions.
+ It is typically used to block ads or other obnoxious content.
</P
></DD
><DT
CLASS="SECT3"
><A
NAME="DEANIMATE-GIFS"
->9.5.3. <I
+>8.5.3. <I
CLASS="EMPHASIS"
>+deanimate-gifs</I
></A
CLASS="SECT3"
><A
NAME="DOWNGRADE-HTTP-VERSION"
->9.5.4. <I
+>8.5.4. <I
CLASS="EMPHASIS"
>+downgrade-http-version</I
></A
CLASS="SECT3"
><A
NAME="FAST-REDIRECTS"
->9.5.5. <I
+>8.5.5. <I
CLASS="EMPHASIS"
>+fast-redirects</I
></A
CLASS="SECT3"
><A
NAME="FILTER"
->9.5.6. <I
+>8.5.6. <I
CLASS="EMPHASIS"
>+filter</I
></A
CLASS="SECT3"
><A
NAME="HIDE-FORWARDED-FOR-HEADERS"
->9.5.7. <I
+>8.5.7. <I
CLASS="EMPHASIS"
>+hide-forwarded-for-headers</I
></A
CLASS="SECT3"
><A
NAME="HIDE-FROM-HEADER"
->9.5.8. <I
+>8.5.8. <I
CLASS="EMPHASIS"
>+hide-from-header</I
></A
CLASS="SECT3"
><A
NAME="HIDE-REFERER"
->9.5.9. <I
+>8.5.9. <I
CLASS="EMPHASIS"
>+hide-referer</I
></A
CLASS="SECT3"
><A
NAME="HIDE-USER-AGENT"
->9.5.10. <I
+>8.5.10. <I
CLASS="EMPHASIS"
>+hide-user-agent</I
></A
CLASS="SECT3"
><A
NAME="HANDLE-AS-IMAGE"
->9.5.11. <I
+>8.5.11. <I
CLASS="EMPHASIS"
>+handle-as-image</I
></A
CLASS="SECT3"
><A
NAME="SET-IMAGE-BLOCKER"
->9.5.12. <I
+>8.5.12. <I
CLASS="EMPHASIS"
>+set-image-blocker</I
></A
CLASS="SECT3"
><A
NAME="LIMIT-CONNECT"
->9.5.13. <I
+>8.5.13. <I
CLASS="EMPHASIS"
>+limit-connect</I
></A
CLASS="SECT3"
><A
NAME="PREVENT-COMPRESSION"
->9.5.14. <I
+>8.5.14. <I
CLASS="EMPHASIS"
>+prevent-compression</I
></A
CLASS="SECT3"
><A
NAME="SESSION-COOKIES-ONLY"
->9.5.15. <I
+>8.5.15. <I
CLASS="EMPHASIS"
>+session-cookies-only</I
></A
CLASS="SECT3"
><A
NAME="PREVENT-READING-COOKIES"
->9.5.16. <I
+>8.5.16. <I
CLASS="EMPHASIS"
>+prevent-reading-cookies</I
></A
CLASS="SECT3"
><A
NAME="PREVENT-SETTING-COOKIES"
->9.5.17. <I
+>8.5.17. <I
CLASS="EMPHASIS"
>+prevent-setting-cookies</I
></A
CLASS="SECT3"
><A
NAME="KILL-POPUP"
->9.5.18. <I
+>8.5.18. <I
CLASS="EMPHASIS"
>+kill-popups<A
NAME="KILL-POPUPS"
CLASS="SECT3"
><A
NAME="SEND-VANILLA-WAFER"
->9.5.19. <I
+>8.5.19. <I
CLASS="EMPHASIS"
>+send-vanilla-wafer</I
></A
CLASS="SECT3"
><A
NAME="SEND-WAFER"
->9.5.20. <I
+>8.5.20. <I
CLASS="EMPHASIS"
>+send-wafer</I
></A
><H3
CLASS="SECT3"
><A
-NAME="AEN2206"
->9.5.21. Summary</A
+NAME="AEN2289"
+>8.5.21. Summary</A
></H3
><P
> Note that many of these actions have the potential to cause a page to
CLASS="SECT3"
><A
NAME="ACT-EXAMPLES"
->9.5.22. Sample Actions Files</A
+>8.5.22. Sample Actions Files</A
></H2
><P
> Remember that the meaning of any of the above references is reversed by preceding
CLASS="SECT2"
><A
NAME="ALIASES"
->9.6. Aliases</A
+>8.6. Aliases</A
></H2
><P
> Custom <SPAN
CLASS="SECT1"
><A
NAME="APPENDIX"
->15. Appendix</A
+>14. Appendix</A
></H1
><DIV
CLASS="SECT2"
CLASS="SECT2"
><A
NAME="REGEX"
->15.1. Regular Expressions</A
+>14.1. Regular Expressions</A
></H2
><P
> <SPAN
><H2
CLASS="SECT2"
><A
-NAME="AEN2635"
->15.2. <SPAN
+NAME="AEN2718"
+>14.2. <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>'s Internal Pages</A
Privoxy main page:
</P
><A
-NAME="AEN2650"
+NAME="AEN2733"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
editing of actions files:
</P
><A
-NAME="AEN2657"
+NAME="AEN2740"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
Show the source code version numbers:
</P
><A
-NAME="AEN2662"
+NAME="AEN2745"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
Show the browser's request headers:
</P
><A
-NAME="AEN2667"
+NAME="AEN2750"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
Show which actions apply to a URL and why:
</P
><A
-NAME="AEN2672"
+NAME="AEN2755"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
to run, but only as a pass-through proxy, with no actions taking place:
</P
><A
-NAME="AEN2678"
+NAME="AEN2761"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
> Short cuts. Turn off, then on:
</P
><A
-NAME="AEN2682"
+NAME="AEN2765"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
</P
></BLOCKQUOTE
><A
-NAME="AEN2685"
+NAME="AEN2768"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
CLASS="SECT3"
><A
NAME="BOOKMARKLETS"
->15.2.1. Bookmarklets</A
+>14.2.1. Bookmarklets</A
></H3
><P
> Below are some <SPAN
CLASS="SECT2"
><A
NAME="CHAIN"
->15.3. Chain of Events</A
+>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
CLASS="SECT2"
><A
NAME="ACTIONSANAT"
->15.4. Anatomy of an Action</A
+>14.4. Anatomy of an Action</A
></H2
><P
> The way <SPAN
CLASS="SECT1"
><A
NAME="CONFIG"
->8. The Main Configuration File</A
+>7. The Main Configuration File</A
></H1
><P
> Again, the main configuration file is named <TT
> <I
CLASS="EMPHASIS"
>confdir /etc/privoxy</I
-><br>
- </P
+></P
>
</TT
> </P
CLASS="SECT2"
><A
NAME="CONF-LOG-LOC"
->8.1. Configuration and Log File Locations</A
+>7.1. Configuration and Log File Locations</A
></H2
><P
> <SPAN
>Privoxy</SPAN
>
where to find those other files. </P
+><P
+> The user running Privoxy, must have read permission for all
+ configuration files, and write permission to any files that would
+ be modified, such as log files.</P
><DIV
CLASS="SECT3"
><H4
CLASS="SECT3"
><A
NAME="CONFDIR"
->8.1.1. confdir</A
+>7.1.1. confdir</A
></H4
><P
></P
CLASS="SECT3"
><A
NAME="LOGDIR"
->8.1.2. logdir</A
+>7.1.2. logdir</A
></H4
><P
></P
CLASS="SECT3"
><A
NAME="ACTIONSFILE"
->8.1.3. actionsfile</A
+>7.1.3. actionsfile</A
></H4
><A
NAME="DEFAULT.ACTION"
><DD
><P
> The <A
-HREF="actions-file.html#ACTIONS"
->actions</A
-> file(s) to use
+HREF="actions-file.html"
+>actions file(s)</A
+> to use
</P
></DD
><DT
>File name, relative to <TT
CLASS="LITERAL"
>confdir</TT
-></P
+>, without the <TT
+CLASS="LITERAL"
+>.action</TT
+> suffix</P
></DD
><DT
>Default value:</DT
><TD
> <P
CLASS="LITERALLAYOUT"
-> standard # Internal purposes, recommended not editing</P
+> standard # Internal purposes, no editing recommended</P
>
</TD
></TR
CLASS="SECT3"
><A
NAME="FILTERFILE"
->8.1.4. filterfile</A
+>7.1.4. filterfile</A
></H4
><A
NAME="DEFAULT.FILTER"
></TT
>}</TT
>
- actions in the actions files are turned off
+ actions in the actions files are turned neutral.
</P
></DD
><DT
CLASS="SECT3"
><A
NAME="LOGFILE"
->8.1.5. logfile</A
+>7.1.5. logfile</A
></H4
><P
></P
the effect that cron.daily will automatically archive, gzip, and empty the
log, when it exceeds 1M size.
</P
+><P
+> Any log files must be writable by whatever user <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ is being run as (default on UNIX, user id is <SPAN
+CLASS="QUOTE"
+>"privoxy"</SPAN
+>).
+ </P
></DD
></DL
></DIV
CLASS="SECT3"
><A
NAME="JARFILE"
->8.1.6. jarfile</A
+>7.1.6. jarfile</A
></H4
><P
></P
CLASS="SECT3"
><A
NAME="TRUSTFILE"
->8.1.7. trustfile</A
+>7.1.7. trustfile</A
></H4
><P
></P
></DL
></DIV
></DIV
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="LOCAL-SET-UP"
+>7.2. Local Set-up Documentation</A
+></H2
+><P
+> If you intend to operate <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> for more users
+ that just yourself, it might be a good idea to let them know how to reach
+ you, what you block and why you do that, your policies etc.
+ </P
><DIV
CLASS="SECT3"
><H4
CLASS="SECT3"
><A
NAME="USER-MANUAL"
->8.1.8. user-manual</A
+>7.2.1. user-manual</A
></H4
><P
></P
>Default value:</DT
><DD
><P
-><A
-HREF="http://www.privoxy.org/user-manual/"
-TARGET="_top"
->http://www.privoxy.org/user-manual/</A
+><I
+CLASS="EMPHASIS"
+>Unset</I
></P
></DD
><DT
>Effect if unset:</DT
><DD
><P
-> The default will be used.
+> <A
+HREF="http://www.privoxy.org/user-manual/"
+TARGET="_top"
+>http://www.privoxy.org/<TT
+CLASS="REPLACEABLE"
+><I
+>version</I
+></TT
+>/user-manual/</A
+>
+ will be used, where <TT
+CLASS="REPLACEABLE"
+><I
+>version</I
+></TT
+> is the <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> version.
</P
></DD
><DT
>Notes:</DT
><DD
><P
-> The User Manual is used for help hints from some of the internal CGI pages.
- It is normally packaged with the binary distributions, and would make more
- sense to have this pointed at a locally installed copy.
+> The User Manual URI is used for help links from some of the internal CGI pages.
+ The manual itself is normally packaged with the binary distributions, so you propably want
+ to set this to a locally installed copy. For multi-user setups, you could provide a copy on
+ a local webserver for all your users and use the corresponding URL here.
</P
><P
-> A more useful example (Unix):
+> Examples:
</P
><P
->
- Â Â <I
-CLASS="EMPHASIS"
->user-manual  file:///usr/share/doc/privoxy-2.9.14/user-manual/</I
+> Unix, in local filesystem:
+ </P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>user-manual  file:///usr/share/doc/privoxy-2.9.15/user-manual/</PRE
+></TD
+></TR
+></TABLE
+>
+ </P
+><P
+> Any platform, on local webserver (called <SPAN
+CLASS="QUOTE"
+>"local-webserver"</SPAN
+>):
+ </P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>user-manual  http://local-webserver/privoxy-user-manual/</PRE
+></TD
+></TR
+></TABLE
>
</P
+><DIV
+CLASS="WARNING"
+><P
+></P
+><TABLE
+CLASS="WARNING"
+BORDER="1"
+WIDTH="90%"
+><TR
+><TD
+ALIGN="CENTER"
+><B
+>Warning</B
+></TD
+></TR
+><TR
+><TD
+ALIGN="LEFT"
+><P
+> If set, this option should be <I
+CLASS="EMPHASIS"
+>the first option in the config file</I
+>, because
+ it is used while the config file is being read.
+ </P
+></TD
+></TR
+></TABLE
+></DIV
></DD
></DL
></DIV
></DIV
-></DIV
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="LOCAL-SET-UP"
->8.2. Local Set-up Documentation</A
-></H2
-><P
-> If you intend to operate <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> for more users
- that just yourself, it might be a good idea to let them know how to reach
- you, what you block and why you do that, your policies etc.
- </P
><DIV
CLASS="SECT3"
><H4
CLASS="SECT3"
><A
NAME="TRUST-INFO-URL"
->8.2.1. trust-info-url</A
+>7.2.2. trust-info-url</A
></H4
><P
></P
CLASS="SECT3"
><A
NAME="ADMIN-ADDRESS"
->8.2.2. admin-address</A
+>7.2.3. admin-address</A
></H4
><P
></P
CLASS="SECT3"
><A
NAME="PROXY-INFO-URL"
->8.2.3. proxy-info-url</A
+>7.2.4. proxy-info-url</A
></H4
><P
></P
CLASS="SECT2"
><A
NAME="DEBUGGING"
->8.3. Debugging</A
+>7.3. Debugging</A
></H2
><P
> These options are mainly useful when tracing a problem.
CLASS="SECT3"
><A
NAME="DEBUG"
->8.3.1. debug</A
+>7.3.1. debug</A
></H4
><P
></P
CLASS="SECT3"
><A
NAME="SINGLE-THREADED"
->8.3.2. single-threaded</A
+>7.3.2. single-threaded</A
></H4
><P
></P
CLASS="SECT2"
><A
NAME="ACCESS-CONTROL"
->8.4. Access Control and Security</A
+>7.4. Access Control and Security</A
></H2
><P
> This section of the config file controls the security-relevant aspects
CLASS="SECT3"
><A
NAME="LISTEN-ADDRESS"
->8.4.1. listen-address</A
+>7.4.1. listen-address</A
></H4
><P
></P
CLASS="SECT3"
><A
NAME="TOGGLE"
->8.4.2. toggle</A
+>7.4.2. toggle</A
></H4
><P
></P
CLASS="SECT3"
><A
NAME="ENABLE-REMOTE-TOGGLE"
->8.4.3. enable-remote-toggle</A
+>7.4.3. enable-remote-toggle</A
></H4
><P
></P
CLASS="SECT3"
><A
NAME="ENABLE-EDIT-ACTIONS"
->8.4.4. enable-edit-actions</A
+>7.4.4. enable-edit-actions</A
></H4
><P
></P
CLASS="SECT3"
><A
NAME="ACLS"
->8.4.5. ACLs: permit-access and deny-access</A
+>7.4.5. ACLs: permit-access and deny-access</A
></H4
><A
NAME="PERMIT-ACCES"
CLASS="SECT3"
><A
NAME="BUFFER-LIMIT"
->8.4.6. buffer-limit</A
+>7.4.6. buffer-limit</A
></H4
><P
></P
CLASS="SECT2"
><A
NAME="FORWARDING"
->8.5. Forwarding</A
+>7.5. Forwarding</A
></H2
><P
> This feature allows routing of HTTP requests through a chain of
CLASS="SECT3"
><A
NAME="FORWARD"
->8.5.1. forward</A
+>7.5.1. forward</A
></H4
><P
></P
CLASS="SECT3"
><A
NAME="SOCKS"
->8.5.2. forward-socks4 and forward-socks4a</A
+>7.5.2. forward-socks4 and forward-socks4a</A
></H4
><A
NAME="FORWARD-SOCKS4"
CLASS="SECT3"
><A
NAME="ADVANCED-FORWARDING-EXAMPLES"
->8.5.3. Advanced Forwarding Examples</A
+>7.5.3. Advanced Forwarding Examples</A
></H4
><P
> If you have links to multiple ISPs that provide various special content
CLASS="SECT2"
><A
NAME="WINDOWS-GUI"
->8.6. Windows GUI Options</A
+>7.6. Windows GUI Options</A
></H2
><P
> <SPAN
CLASS="SECT1"
><A
NAME="CONFIGURATION"
->7. <SPAN
+>6. <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> Configuration</A
><H2
CLASS="SECT2"
><A
-NAME="AEN305"
->7.1. Controlling <SPAN
+NAME="AEN346"
+>6.1. Controlling <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> with Your Web Browser</A
></TABLE
><P
> This should be self-explanatory. Note the first item leads to an editor for the
- <SPAN
-CLASS="QUOTE"
->"actions list"</SPAN
->, which is where the ad, banner, cookie,
- and URL blocking magic is configured as well as other advanced features of
+ <A
+HREF="actions-file.html"
+>actions files</A
+>, which is where the ad, banner,
+ cookie, and URL blocking magic is configured as well as other advanced features of
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> continues
- to run as a proxy in this case, but all filtering is disabled. There
+ to run as a proxy in this case, but all manipulation is disabled, i.e.
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> acts like a normal forwarding proxy. There
is even a toggle <A
HREF="appendix.html#BOOKMARKLETS"
>Bookmarklet</A
CLASS="SECT2"
><A
NAME="CONFOVERVIEW"
->7.2. Configuration Files Overview</A
+>6.2. Configuration Files Overview</A
></H2
><P
> For Unix, *BSD and Linux, all configuration files are located in
><UL
><LI
><P
-> The main configuration file is named <A
+> The <A
HREF="config.html"
->config</A
+>main configuration file</A
+> is named <TT
+CLASS="FILENAME"
+>config</TT
>
on Linux, Unix, BSD, OS/2, and AmigaOS and <TT
CLASS="FILENAME"
> (the main <A
HREF="actions-file.html"
>actions file</A
->) is used to define
- the default settings for various <SPAN
+>)
+ is used to define which <SPAN
CLASS="QUOTE"
>"actions"</SPAN
-> relating to images, banners,
- pop-ups, access restrictions, banners and cookies.
+> relating to banner-blocking, images, pop-ups,
+ content modification, cookie handling etc should be applied by default. It also defines many
+ exceptions (both positive and negative) from this default set of actions that enable
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> to selectively eliminate the junk, and only the junk, on
+ as many websites as possible.
</P
><P
> Multiple actions files may be defined in <TT
>config</TT
>. These
are processed in the order they are defined. Local customizations and locally
- preferred exceptions to the default policies as defined in
+ preferred exceptions to the default policies as defined in
<TT
CLASS="FILENAME"
>default.action</TT
-> are probably best applied in
+> (which you will most propably want
+ to define sooner or later) are probably best applied in
<TT
CLASS="FILENAME"
>user.action</TT
->, which should be preserved across
+>, where you can preserve them across
upgrades. <TT
CLASS="FILENAME"
>standard.action</TT
-> is also included. This is mostly
- for <SPAN
+> is for
+ <SPAN
CLASS="APPLICATION"
>Privoxy's</SPAN
> internal use.
>
There is also a web based editor that can be accessed from
<A
-HREF="http://config.privoxy.org/show-status/"
+HREF="http://config.privoxy.org/show-status"
TARGET="_top"
->http://config.privoxy.org/show-status/</A
+>http://config.privoxy.org/show-status</A
>
(Shortcut: <A
-HREF="http://p.p/show-status/"
+HREF="http://p.p/show-status"
TARGET="_top"
->http://p.p/show-status/</A
+>http://p.p/show-status</A
>) for the
various actions files.
</P
>#</TT
>"</SPAN
> character to denote a
- comment (the rest of the line will be ignored) angd understand line continuation
+ comment (the rest of the line will be ignored) and understand line continuation
through placing a backslash ("<TT
CLASS="LITERAL"
>\</TT
CLASS="SECT1"
><A
NAME="CONTACT"
->12. Contacting the Developers, Bug Reporting and Feature
+>11. Contacting the Developers, Bug Reporting and Feature
Requests</A
></H1
><P
CLASS="SECT2"
><A
NAME="CONTACT-SUPPORT"
->12.1. Get Support</A
+>11.1. Get Support</A
></H2
><P
> <P
CLASS="SECT2"
><A
NAME="CONTACT-BUGS"
->12.2. Report bugs</A
+>11.2. Report bugs</A
></H2
><P
> <P
CLASS="SECT2"
><A
NAME="CONTACT-FEATURE"
->12.3. Request new features</A
+>11.3. Request new features</A
></H2
><P
> <P
CLASS="SECT2"
><A
NAME="CONTACT-ADS"
->12.4. Report ads or other filter problems</A
+>11.4. Report ads or other filter problems</A
></H2
><P
>You can also send feedback on websites that Privoxy has problems with. Please bookmark
CLASS="SECT2"
><A
NAME="CONTACT-OTHER"
->12.5. Other</A
+>11.5. Other</A
></H2
><P
> <P
CLASS="SECT1"
><A
NAME="COPYRIGHT"
->13. Copyright and History</A
+>12. Copyright and History</A
></H1
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
-NAME="AEN2410"
->13.1. Copyright</A
+NAME="AEN2493"
+>12.1. Copyright</A
></H2
><P
> <SPAN
CLASS="SECT2"
><A
NAME="HISTORY"
->13.2. History</A
+>12.2. History</A
></H2
><P
> <SPAN
CLASS="SECT1"
><A
NAME="FILTER-FILE"
->10. The Filter File</A
+>9. The Filter File</A
></H1
><P
> Any web page can be dynamically modified with the filter file. This
><H2
CLASS="SECT2"
><A
-NAME="AEN2349"
->10.1. The <I
+NAME="AEN2432"
+>9.1. The <I
CLASS="EMPHASIS"
>+filter</I
> Action</A
></DIV
><P
CLASS="PUBDATE"
->$Id: user-manual.sgml,v 1.100 2002/04/29 03:05:55 hal9 Exp $<BR></P
+>$Id: user-manual.sgml,v 1.103 2002/05/04 00:40:53 hal9 Exp $<BR></P
><DIV
><DIV
CLASS="ABSTRACT"
>Table of Contents</B
></DT
><DT
-><A
-HREF="index.html#INTRO"
-></A
-></DT
-><DT
>1. <A
HREF="introduction.html"
>Introduction</A
></DL
></DD
><DT
->3. <A
+>2. <A
HREF="installation.html"
>Installation</A
></DT
><DD
><DL
><DT
->3.1. <A
+>2.1. <A
+HREF="installation.html#INSTALLATION-PACKAGES"
+>Binary Packages</A
+></DT
+><DD
+><DL
+><DT
+>2.1.1. <A
HREF="installation.html#INSTALLATION-PACK-RPM"
>Red Hat and SuSE RPMs</A
></DT
><DT
->3.2. <A
+>2.1.2. <A
HREF="installation.html#INSTALLATION-DEB"
>Debian</A
></DT
><DT
->3.3. <A
+>2.1.3. <A
HREF="installation.html#INSTALLATION-PACK-WIN"
>Windows</A
></DT
><DT
->3.4. <A
+>2.1.4. <A
HREF="installation.html#INSTALLATION-PACK-BINTGZ"
>Solaris, NetBSD, FreeBSD, HP-UX</A
></DT
><DT
->3.5. <A
+>2.1.5. <A
HREF="installation.html#INSTALLATION-OS2"
>OS/2</A
></DT
><DT
->3.6. <A
+>2.1.6. <A
HREF="installation.html#INSTALLATION-MAC"
>Max OSX</A
></DT
><DT
->3.7. <A
+>2.1.7. <A
HREF="installation.html#INSTALLATION-AMIGA"
>AmigaOS</A
></DT
></DL
></DD
><DT
->4. <A
+>2.2. <A
+HREF="installation.html#INSTALLATION-SOURCE"
+>Building from Source</A
+></DT
+></DL
+></DD
+><DT
+>3. <A
HREF="upgradersnote.html"
>Note to Upgraders</A
></DT
><DT
->5. <A
+>4. <A
HREF="quickstart.html"
>Quickstart to Using <SPAN
CLASS="APPLICATION"
></A
></DT
><DT
->6. <A
+>5. <A
HREF="startup.html"
>Starting <SPAN
CLASS="APPLICATION"
><DD
><DL
><DT
->6.1. <A
+>5.1. <A
HREF="startup.html#START-REDHATDEBIAN"
>RedHat and Debian</A
></DT
><DT
->6.2. <A
+>5.2. <A
HREF="startup.html#START-SUSE"
>SuSE</A
></DT
><DT
->6.3. <A
+>5.3. <A
HREF="startup.html#START-WINDOWS"
>Windows</A
></DT
><DT
->6.4. <A
+>5.4. <A
HREF="startup.html#START-UNICES"
>Solaris, NetBSD, FreeBSD, HP-UX and others</A
></DT
><DT
->6.5. <A
+>5.5. <A
HREF="startup.html#START-OS2"
>OS/2</A
></DT
><DT
->6.6. <A
+>5.6. <A
HREF="startup.html#START-MACOSX"
>MAX OSX</A
></DT
><DT
->6.7. <A
+>5.7. <A
HREF="startup.html#START-AMIGAOS"
>AmigaOS</A
></DT
><DT
->6.8. <A
+>5.8. <A
HREF="startup.html#CMDOPTIONS"
>Command Line Options</A
></DT
></DL
></DD
><DT
->7. <A
+>6. <A
HREF="configuration.html"
><SPAN
CLASS="APPLICATION"
><DD
><DL
><DT
->7.1. <A
-HREF="configuration.html#AEN305"
+>6.1. <A
+HREF="configuration.html#AEN346"
>Controlling <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> with Your Web Browser</A
></DT
><DT
->7.2. <A
+>6.2. <A
HREF="configuration.html#CONFOVERVIEW"
>Configuration Files Overview</A
></DT
></DL
></DD
><DT
->8. <A
+>7. <A
HREF="config.html"
>The Main Configuration File</A
></DT
><DD
><DL
><DT
->8.1. <A
+>7.1. <A
HREF="config.html#CONF-LOG-LOC"
>Configuration and Log File Locations</A
></DT
><DD
><DL
><DT
->8.1.1. <A
+>7.1.1. <A
HREF="config.html#CONFDIR"
>confdir</A
></DT
><DT
->8.1.2. <A
+>7.1.2. <A
HREF="config.html#LOGDIR"
>logdir</A
></DT
><DT
->8.1.3. <A
+>7.1.3. <A
HREF="config.html#ACTIONSFILE"
>actionsfile</A
></DT
><DT
->8.1.4. <A
+>7.1.4. <A
HREF="config.html#FILTERFILE"
>filterfile</A
></DT
><DT
->8.1.5. <A
+>7.1.5. <A
HREF="config.html#LOGFILE"
>logfile</A
></DT
><DT
->8.1.6. <A
+>7.1.6. <A
HREF="config.html#JARFILE"
>jarfile</A
></DT
><DT
->8.1.7. <A
+>7.1.7. <A
HREF="config.html#TRUSTFILE"
>trustfile</A
></DT
-><DT
->8.1.8. <A
-HREF="config.html#USER-MANUAL"
->user-manual</A
-></DT
></DL
></DD
><DT
->8.2. <A
+>7.2. <A
HREF="config.html#LOCAL-SET-UP"
>Local Set-up Documentation</A
></DT
><DD
><DL
><DT
->8.2.1. <A
+>7.2.1. <A
+HREF="config.html#USER-MANUAL"
+>user-manual</A
+></DT
+><DT
+>7.2.2. <A
HREF="config.html#TRUST-INFO-URL"
>trust-info-url</A
></DT
><DT
->8.2.2. <A
+>7.2.3. <A
HREF="config.html#ADMIN-ADDRESS"
>admin-address</A
></DT
><DT
->8.2.3. <A
+>7.2.4. <A
HREF="config.html#PROXY-INFO-URL"
>proxy-info-url</A
></DT
></DL
></DD
><DT
->8.3. <A
+>7.3. <A
HREF="config.html#DEBUGGING"
>Debugging</A
></DT
><DD
><DL
><DT
->8.3.1. <A
+>7.3.1. <A
HREF="config.html#DEBUG"
>debug</A
></DT
><DT
->8.3.2. <A
+>7.3.2. <A
HREF="config.html#SINGLE-THREADED"
>single-threaded</A
></DT
></DL
></DD
><DT
->8.4. <A
+>7.4. <A
HREF="config.html#ACCESS-CONTROL"
>Access Control and Security</A
></DT
><DD
><DL
><DT
->8.4.1. <A
+>7.4.1. <A
HREF="config.html#LISTEN-ADDRESS"
>listen-address</A
></DT
><DT
->8.4.2. <A
+>7.4.2. <A
HREF="config.html#TOGGLE"
>toggle</A
></DT
><DT
->8.4.3. <A
+>7.4.3. <A
HREF="config.html#ENABLE-REMOTE-TOGGLE"
>enable-remote-toggle</A
></DT
><DT
->8.4.4. <A
+>7.4.4. <A
HREF="config.html#ENABLE-EDIT-ACTIONS"
>enable-edit-actions</A
></DT
><DT
->8.4.5. <A
+>7.4.5. <A
HREF="config.html#ACLS"
>ACLs: permit-access and deny-access</A
></DT
><DT
->8.4.6. <A
+>7.4.6. <A
HREF="config.html#BUFFER-LIMIT"
>buffer-limit</A
></DT
></DL
></DD
><DT
->8.5. <A
+>7.5. <A
HREF="config.html#FORWARDING"
>Forwarding</A
></DT
><DD
><DL
><DT
->8.5.1. <A
+>7.5.1. <A
HREF="config.html#FORWARD"
>forward</A
></DT
><DT
->8.5.2. <A
+>7.5.2. <A
HREF="config.html#SOCKS"
>forward-socks4 and forward-socks4a</A
></DT
><DT
->8.5.3. <A
+>7.5.3. <A
HREF="config.html#ADVANCED-FORWARDING-EXAMPLES"
>Advanced Forwarding Examples</A
></DT
></DL
></DD
><DT
->8.6. <A
+>7.6. <A
HREF="config.html#WINDOWS-GUI"
>Windows GUI Options</A
></DT
></DL
></DD
><DT
->9. <A
+>8. <A
HREF="actions-file.html"
>Actions Files</A
></DT
><DD
><DL
><DT
->9.1. <A
-HREF="actions-file.html#AEN1309"
+>8.1. <A
+HREF="actions-file.html#AEN1378"
>Finding the Right Mix</A
></DT
><DT
->9.2. <A
-HREF="actions-file.html#AEN1316"
+>8.2. <A
+HREF="actions-file.html#AEN1385"
>How to Edit</A
></DT
><DT
->9.3. <A
-HREF="actions-file.html#AEN1322"
+>8.3. <A
+HREF="actions-file.html#AEN1394"
>How Actions are Applied to URLs</A
></DT
><DT
->9.4. <A
-HREF="actions-file.html#AEN1336"
+>8.4. <A
+HREF="actions-file.html#AEN1408"
>Patterns</A
></DT
><DD
><DL
><DT
->9.4.1. <A
-HREF="actions-file.html#AEN1376"
+>8.4.1. <A
+HREF="actions-file.html#AEN1448"
>The Domain Pattern</A
></DT
><DT
->9.4.2. <A
-HREF="actions-file.html#AEN1438"
+>8.4.2. <A
+HREF="actions-file.html#AEN1510"
>The Path Pattern</A
></DT
></DL
></DD
><DT
->9.5. <A
+>8.5. <A
HREF="actions-file.html#ACTIONS"
>Actions</A
></DT
><DD
><DL
><DT
->9.5.1. <A
+>8.5.1. <A
HREF="actions-file.html#ADD-HEADER"
><I
CLASS="EMPHASIS"
></A
></DT
><DT
->9.5.2. <A
+>8.5.2. <A
HREF="actions-file.html#BLOCK"
><I
CLASS="EMPHASIS"
></A
></DT
><DT
->9.5.3. <A
+>8.5.3. <A
HREF="actions-file.html#DEANIMATE-GIFS"
><I
CLASS="EMPHASIS"
></A
></DT
><DT
->9.5.4. <A
+>8.5.4. <A
HREF="actions-file.html#DOWNGRADE-HTTP-VERSION"
><I
CLASS="EMPHASIS"
></A
></DT
><DT
->9.5.5. <A
+>8.5.5. <A
HREF="actions-file.html#FAST-REDIRECTS"
><I
CLASS="EMPHASIS"
></A
></DT
><DT
->9.5.6. <A
+>8.5.6. <A
HREF="actions-file.html#FILTER"
><I
CLASS="EMPHASIS"
></A
></DT
><DT
->9.5.7. <A
+>8.5.7. <A
HREF="actions-file.html#HIDE-FORWARDED-FOR-HEADERS"
><I
CLASS="EMPHASIS"
></A
></DT
><DT
->9.5.8. <A
+>8.5.8. <A
HREF="actions-file.html#HIDE-FROM-HEADER"
><I
CLASS="EMPHASIS"
></A
></DT
><DT
->9.5.9. <A
+>8.5.9. <A
HREF="actions-file.html#HIDE-REFERER"
><I
CLASS="EMPHASIS"
></A
></DT
><DT
->9.5.10. <A
+>8.5.10. <A
HREF="actions-file.html#HIDE-USER-AGENT"
><I
CLASS="EMPHASIS"
></A
></DT
><DT
->9.5.11. <A
+>8.5.11. <A
HREF="actions-file.html#HANDLE-AS-IMAGE"
><I
CLASS="EMPHASIS"
></A
></DT
><DT
->9.5.12. <A
+>8.5.12. <A
HREF="actions-file.html#SET-IMAGE-BLOCKER"
><I
CLASS="EMPHASIS"
></A
></DT
><DT
->9.5.13. <A
+>8.5.13. <A
HREF="actions-file.html#LIMIT-CONNECT"
><I
CLASS="EMPHASIS"
></A
></DT
><DT
->9.5.14. <A
+>8.5.14. <A
HREF="actions-file.html#PREVENT-COMPRESSION"
><I
CLASS="EMPHASIS"
></A
></DT
><DT
->9.5.15. <A
+>8.5.15. <A
HREF="actions-file.html#SESSION-COOKIES-ONLY"
><I
CLASS="EMPHASIS"
></A
></DT
><DT
->9.5.16. <A
+>8.5.16. <A
HREF="actions-file.html#PREVENT-READING-COOKIES"
><I
CLASS="EMPHASIS"
></A
></DT
><DT
->9.5.17. <A
+>8.5.17. <A
HREF="actions-file.html#PREVENT-SETTING-COOKIES"
><I
CLASS="EMPHASIS"
></A
></DT
><DT
->9.5.18. <A
+>8.5.18. <A
HREF="actions-file.html#KILL-POPUP"
><I
CLASS="EMPHASIS"
></A
></DT
><DT
->9.5.19. <A
+>8.5.19. <A
HREF="actions-file.html#SEND-VANILLA-WAFER"
><I
CLASS="EMPHASIS"
></A
></DT
><DT
->9.5.20. <A
+>8.5.20. <A
HREF="actions-file.html#SEND-WAFER"
><I
CLASS="EMPHASIS"
></A
></DT
><DT
->9.5.21. <A
-HREF="actions-file.html#AEN2206"
+>8.5.21. <A
+HREF="actions-file.html#AEN2289"
>Summary</A
></DT
><DT
->9.5.22. <A
+>8.5.22. <A
HREF="actions-file.html#ACT-EXAMPLES"
>Sample Actions Files</A
></DT
></DL
></DD
><DT
->9.6. <A
+>8.6. <A
HREF="actions-file.html#ALIASES"
>Aliases</A
></DT
></DL
></DD
><DT
->10. <A
+>9. <A
HREF="filter-file.html"
>The Filter File</A
></DT
><DD
><DL
><DT
->10.1. <A
-HREF="filter-file.html#AEN2349"
+>9.1. <A
+HREF="filter-file.html#AEN2432"
>The <I
CLASS="EMPHASIS"
>+filter</I
></DL
></DD
><DT
->11. <A
+>10. <A
HREF="templates.html"
>Templates</A
></DT
><DT
->12. <A
+>11. <A
HREF="contact.html"
>Contacting the Developers, Bug Reporting and Feature
Requests</A
><DD
><DL
><DT
->12.1. <A
+>11.1. <A
HREF="contact.html#CONTACT-SUPPORT"
>Get Support</A
></DT
><DT
->12.2. <A
+>11.2. <A
HREF="contact.html#CONTACT-BUGS"
>Report bugs</A
></DT
><DT
->12.3. <A
+>11.3. <A
HREF="contact.html#CONTACT-FEATURE"
>Request new features</A
></DT
><DT
->12.4. <A
+>11.4. <A
HREF="contact.html#CONTACT-ADS"
>Report ads or other filter problems</A
></DT
><DT
->12.5. <A
+>11.5. <A
HREF="contact.html#CONTACT-OTHER"
>Other</A
></DT
></DL
></DD
><DT
->13. <A
+>12. <A
HREF="copyright.html"
>Copyright and History</A
></DT
><DD
><DL
><DT
->13.1. <A
-HREF="copyright.html#AEN2410"
+>12.1. <A
+HREF="copyright.html#AEN2493"
>Copyright</A
></DT
><DT
->13.2. <A
+>12.2. <A
HREF="copyright.html#HISTORY"
>History</A
></DT
></DL
></DD
><DT
->14. <A
+>13. <A
HREF="seealso.html"
>See Also</A
></DT
><DT
->15. <A
+>14. <A
HREF="appendix.html"
>Appendix</A
></DT
><DD
><DL
><DT
->15.1. <A
+>14.1. <A
HREF="appendix.html#REGEX"
>Regular Expressions</A
></DT
><DT
->15.2. <A
-HREF="appendix.html#AEN2635"
+>14.2. <A
+HREF="appendix.html#AEN2718"
><SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
><DD
><DL
><DT
->15.2.1. <A
+>14.2.1. <A
HREF="appendix.html#BOOKMARKLETS"
>Bookmarklets</A
></DT
></DL
></DD
><DT
->15.3. <A
+>14.3. <A
HREF="appendix.html#CHAIN"
>Chain of Events</A
></DT
><DT
->15.4. <A
+>14.4. <A
HREF="appendix.html#ACTIONSANAT"
>Anatomy of an Action</A
></DT
></DD
></DL
></DIV
-><DIV
-CLASS="SECT1"
-><H1
-CLASS="SECT1"
-><A
-NAME="INTRO"
-></A
-></H1
-><P
-> </P
-></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
CLASS="SECT1"
><A
NAME="INSTALLATION"
->3. Installation</A
+>2. Installation</A
></H1
><P
> <SPAN
TARGET="_top"
>Privoxy Project
Page</A
->. For installing and compiling the source code, please look
- into our Developer Manual.</P
-><P
-> If you like to live on the bleeding edge and are not afraid of using
- possibly unstable development versions, you can check out the up-to-the-minute
- version directly from <A
-HREF="http://sourceforge.net/cvs/?group_id=11118"
-TARGET="_top"
->the
- CVS repository</A
-> or simply download <A
-HREF="http://cvs.sourceforge.net/cvstarballs/ijbswa-cvsroot.tar.gz"
-TARGET="_top"
->the nightly CVS
- tarball.</A
-> Again, we refer you to the Developer Manual.</P
-><P
-> At present, <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> is known to run on
- Windows(95, 98, ME, 2000, XP), Linux (RedHat, Suse, Debian), Mac OSX,
- OS/2, AmigaOS, FreeBSD, NetBSD, BeOS, and many more flavors of Unix.</P
+>.</P
><P
> Note: If you have a previous <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> installation on your system, you
will need to remove it. Some platforms do this for you as part
- of their installation procedure. (See below for your platform).</P
-><P
-> In any case <I
+ of their installation procedure. (See below for your platform).
+ In any case <I
CLASS="EMPHASIS"
>be sure to backup your old configuration
if it is valuable to you.</I
><H2
CLASS="SECT2"
><A
-NAME="INSTALLATION-PACK-RPM"
->3.1. Red Hat and SuSE RPMs</A
+NAME="INSTALLATION-PACKAGES"
+>2.1. Binary Packages</A
></H2
><P
+>How to install the binary packages depends on your operating system:</P
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="INSTALLATION-PACK-RPM"
+>2.1.1. Red Hat and SuSE RPMs</A
+></H3
+><P
> RPMs can be installed with <TT
CLASS="LITERAL"
->rpm -Uvh privoxy-2.9.14-1.rpm</TT
+>rpm -Uvh privoxy-2.9.15-1.rpm</TT
>,
and will use <TT
CLASS="FILENAME"
> If you have problems with failed dependencies, try rebuilding the SRC RPM:
<TT
CLASS="LITERAL"
->rpm --rebuild privoxy-2.9.14-1.src.rpm;</TT
+>rpm --rebuild privoxy-2.9.15-1.src.rpm;</TT
>. This
will use your locally installed libraries and RPM version. </P
><P
>.</P
></DIV
><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
><A
NAME="INSTALLATION-DEB"
->3.2. Debian</A
-></H2
+>2.1.2. Debian</A
+></H3
><P
> FIXME.</P
></DIV
><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
><A
NAME="INSTALLATION-PACK-WIN"
->3.3. Windows</A
-></H2
+>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
use the registry of Windows. </P
></DIV
><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
><A
NAME="INSTALLATION-PACK-BINTGZ"
->3.4. Solaris, NetBSD, FreeBSD, HP-UX</A
-></H2
+>2.1.4. Solaris, NetBSD, FreeBSD, HP-UX</A
+></H3
><P
> Create a new directory, <TT
CLASS="LITERAL"
things go. FIXME.</P
></DIV
><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
><A
NAME="INSTALLATION-OS2"
->3.5. OS/2</A
-></H2
+>2.1.5. OS/2</A
+></H3
><P
> First, make sure that no previous installations of
<SPAN
into will contain all of the configuration files.</P
></DIV
><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
><A
NAME="INSTALLATION-MAC"
->3.6. Max OSX</A
-></H2
+>2.1.6. Max OSX</A
+></H3
><P
> Unzip the downloaded package (you can either double-click on the file
in the finder, or on the desktop if you downloaded it there). Then,
>.</P
></DIV
><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
><A
NAME="INSTALLATION-AMIGA"
->3.7. AmigaOS</A
-></H2
+>2.1.7. AmigaOS</A
+></H3
><P
> Copy and then unpack the <TT
CLASS="FILENAME"
></DIV
></DIV
><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="INSTALLATION-SOURCE"
+>2.2. Building from Source</A
+></H2
+><P
+> The most convenient way to obtain the <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> sources
+ is to download the source tarball from our <A
+HREF="http://sf.net/projects/ijbswa/"
+TARGET="_top"
+>project
+ page</A
+>.</P
+><P
+> If you like to live on the bleeding edge and are not afraid of using
+ possibly unstable development versions, you can check out the up-to-the-minute
+ version directly from <A
+HREF="http://sourceforge.net/cvs/?group_id=11118"
+TARGET="_top"
+>the
+ CVS repository</A
+> or simply download <A
+HREF="http://cvs.sourceforge.net/cvstarballs/ijbswa-cvsroot.tar.gz"
+TARGET="_top"
+>the nightly CVS
+ tarball.</A
+></P
+><P
+> To build <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> from source,
+ <A
+HREF="http://www.gnu.org/software/autoconf/autoconf.html"
+TARGET="_top"
+>autoconf</A
+>,
+ <A
+HREF="http://www.gnu.org/software/make/make.html"
+TARGET="_top"
+>GNU make
+ (gmake)</A
+>, and, of course, a C compiler like <A
+HREF="http://www.gnu.org/software/gcc/gcc.html"
+TARGET="_top"
+>gcc</A
+> are required.</P
+><P
+> When building from a source tarball (either release version or
+ <A
+HREF="http://cvs.sourceforge.net/cvstarballs/ijbswa-cvsroot.tar.gz"
+TARGET="_top"
+>nightly CVS
+ tarball</A
+>), first unpack the source: </P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+> tar xzvf privoxy-2.9.15-beta-src* [.tgz or .tar.gz]
+ cd privoxy-2.9.15-beta</PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> For retrieving the current CVS sources, you'll need CVS installed.
+ Note that sources from CVS are development quality, and may not be
+ stable, or well tested. To download CVS source:</P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+> cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
+ cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co current
+ cd current</PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> This will create a directory named <TT
+CLASS="FILENAME"
+>current/</TT
+>, which will
+ contain the source tree.</P
+><P
+> Then, in either case, to build from unpacked tarball or CVS source:</P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+> autoheader
+ autoconf
+ ./configure # (--help to see options)
+ make # (the make from gnu, gmake for *BSD)
+ su
+ make -n install # (to see where all the files will go)
+ make install # (to really install)</PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> If you have gnu make, you can have the first four steps
+ automatically done for you by just typing:</P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+> make</PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> in the freshly downloaded or unpacked source directory.</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
+HREF="../developer-manual/newrelease.html"
+TARGET="_top"
+>developer manual</A
+>.</P
+></DIV
+></DIV
+><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
->, v.2.9.14,
+>, v.2.9.15,
and is mostly complete at this point. The most up to date reference for the
time being is still the comments in the source files and in the individual
configuration files. Development of version 3.0 is currently nearing
><UL
><LI
><P
-> FIXME: complete the list of features. change the order: most important
- features to the top of the list. prefix new features with "NEW".
- </P
-></LI
-><LI
-><P
> Integrated browser based configuration and control utility at <A
HREF="http://config.privoxy.org/"
TARGET="_top"
></LI
><LI
><P
-> Blocking of annoying pop-up browser windows.
+> Web page content filtering (removes banners based on size,
+ invisible <SPAN
+CLASS="QUOTE"
+>"web-bugs"</SPAN
+>, JavaScript and HTML annoyances, pop-up windows, etc.)
+ </P
+></LI
+><LI
+><P
+> Modularized configuration that allows for standard settings and
+ user settings to reside in separate files, so that installing updated
+ actions files won't overwrite idividual user settings.
</P
></LI
><LI
><P
> Support for Perl Compatible Regular Expressions in the configuration files, and
generally a more sophisticated and flexible configuration syntax over
- previous versions.
+ previous versions.
</P
></LI
><LI
><P
-> GIF de-animation.
+> Improved cookie management features (e.g. session based cookies).
</P
></LI
><LI
><P
-> Web page content filtering (removes banners based on size,
- invisible <SPAN
-CLASS="QUOTE"
->"web-bugs"</SPAN
->, JavaScript and HTML annoyances, pop-ups, etc.)
+> GIF de-animation.
</P
></LI
><LI
></LI
><LI
><P
-> Auto-detection and re-reading of config file changes.
+> User-customizable HTML templates for all proxy-generated pages (e.g. "blocked" page).
</P
></LI
><LI
><P
-> User-customizable HTML templates (e.g. 404 error page).
- </P
-></LI
-><LI
-><P
-> Improved cookie management features (e.g. session based cookies).
+> Auto-detection and re-reading of config file changes.
</P
></LI
><LI
CLASS="SECT1"
><A
NAME="QUICKSTART"
->5. Quickstart to Using <SPAN
+>4. Quickstart to Using <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></A
><UL
><LI
><P
+> If upgrading, please back up any configuration files. See
+ the <A
+HREF="upgradersnote.html"
+>Note to Upgraders</A
+> Section.
+ </P
+></LI
+><LI
+><P
> Install <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
->. See the section <A
+>. See the <A
HREF="installation.html"
->Installing</A
->.
- </P
+>Installation Section</A
+> for platform specific
+ information.
+ </P
></LI
><LI
><P
> Start <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
->. See the section <A
+>, if the installation program has
+ not done this already. See the section <A
HREF="startup.html"
->Starting <SPAN
+>Starting
+ <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></A
></LI
><LI
><P
-> Change your browser's configuration to use the proxy <TT
+> Set your browser to use <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> as HTTP and HTTPS
+ proxy by setting the proxy configuration for address of
+ <TT
CLASS="LITERAL"
>localhost</TT
-> on port
- <TT
+> and port <TT
CLASS="LITERAL"
>8118</TT
->. See the section <A
+>.
+ (<SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+> and earlier versions of
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> used port 8000.) See the section <A
HREF="startup.html"
>Starting <SPAN
CLASS="APPLICATION"
></LI
><LI
><P
-> Enjoy surfing with enhanced comfort and privacy. Please see the section
+> Flush your browser's caches, to remove any cached ad images.
+ </P
+></LI
+><LI
+><P
+> Enjoy surfing with enhanced comfort and privacy. You may want to customize the
<A
-HREF="contact.html"
->Contacting the Developers</A
-> on how to report
- bugs or problems with websites or to get help. You may want to change the
- file <TT
+HREF="actions-file.html"
+><TT
CLASS="FILENAME"
>user.action</TT
-> to further tweak your new browsing
- experience.
+></A
+> file to
+ personalize your new browsing experience. See the <A
+HREF="configuration.html"
+>Configuration section</A
+> for more configuration
+ options, and how to further customize your installation.
+ </P
+></LI
+><LI
+><P
+> If you experience problems with sites that <SPAN
+CLASS="QUOTE"
+>"misbehave"</SPAN
+>, see
+ the <A
+HREF="appendix.html#ACTIONSANAT"
+>Anatomy of an Action</A
+> section in the
+ Appendix.
+ </P
+></LI
+><LI
+><P
+> Please see the section <A
+HREF="contact.html"
+>Contacting the
+ Developers</A
+> on how to report bugs or problems with websites or to get
+ help.
</P
></LI
></UL
CLASS="SECT1"
><A
NAME="SEEALSO"
->14. See Also</A
+>13. See Also</A
></H1
><P
> Other references and sites of interest to <SPAN
CLASS="SECT1"
><A
NAME="STARTUP"
->6. Starting <SPAN
+>5. Starting <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></A
CLASS="SECT2"
><A
NAME="START-REDHATDEBIAN"
->6.1. RedHat and Debian</A
+>5.1. RedHat and Debian</A
></H2
><P
>We use a script. Note that RedHat does not start Privoxy upon booting per
CLASS="SECT2"
><A
NAME="START-SUSE"
->6.2. SuSE</A
+>5.2. SuSE</A
></H2
><P
>We use a script. It will use the file <TT
CLASS="SECT2"
><A
NAME="START-WINDOWS"
->6.3. Windows</A
+>5.3. Windows</A
></H2
><P
>Click on the Privoxy Icon to start Privoxy. If no configuration file is
CLASS="SECT2"
><A
NAME="START-UNICES"
->6.4. Solaris, NetBSD, FreeBSD, HP-UX and others</A
+>5.4. Solaris, NetBSD, FreeBSD, HP-UX and others</A
></H2
><P
>Example Unix startup command:</P
CLASS="SECT2"
><A
NAME="START-OS2"
->6.5. OS/2</A
+>5.5. OS/2</A
></H2
><P
>FIXME.</P
CLASS="SECT2"
><A
NAME="START-MACOSX"
->6.6. MAX OSX</A
+>5.6. MAX OSX</A
></H2
><P
>FIXME.</P
CLASS="SECT2"
><A
NAME="START-AMIGAOS"
->6.7. AmigaOS</A
+>5.7. AmigaOS</A
></H2
><P
>FIXME.</P
CLASS="SECT2"
><A
NAME="CMDOPTIONS"
->6.8. Command Line Options</A
+>5.8. Command Line Options</A
></H2
><P
> <SPAN
CLASS="SECT1"
><A
NAME="TEMPLATES"
->11. Templates</A
+>10. Templates</A
></H1
><P
> When <SPAN
CLASS="SECT1"
><A
NAME="UPGRADERSNOTE"
->4. Note to Upgraders</A
+>3. Note to Upgraders</A
></H1
><P
-> There are very significant changes from older versions of
+> There are very significant changes from earlier
<SPAN
CLASS="APPLICATION"
>Junkbuster</SPAN
-> to the current
+> versions to the current
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
->. Configuration is substantially
- changed. <SPAN
+>. The number, names, syntax, and
+ purposes of configuration files have substantially changed.
+ <SPAN
CLASS="APPLICATION"
>Junkbuster 2.0.x</SPAN
-> and earlier
- configuration files will not migrate. The functionality of the old
- <TT
+> configuration
+ files will not migrate, <SPAN
+CLASS="APPLICATION"
+>Junkbuster 2.9.x</SPAN
+>
+ and <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> configurations will need to be
+ ported. The functionalities of the old <TT
CLASS="FILENAME"
>blockfile</TT
->, <TT
+>,
+ <TT
CLASS="FILENAME"
>cookiefile</TT
-> and
- <TT
+> and <TT
CLASS="FILENAME"
>imagelist</TT
->, are now combined into the
- <A
+>
+ are now combined into the <A
HREF="actions-file.html"
TARGET="_top"
><SPAN
CLASS="QUOTE"
->"actions files"</SPAN
+>"actions
+ files"</SPAN
></A
>.
<TT