>Coding Guidelines</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Privoxy Developer Manual"
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="documentation.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="testing.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="CODING"
->4. Coding Guidelines</A
-></H1
+NAME="CODING">4. Coding Guidelines</H1
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
-NAME="S1"
->4.1. Introduction</A
-></H2
+NAME="S1">4.1. Introduction</H2
><P
>This set of standards is designed to make our lives easier. It is
developed with the simple goal of helping us keep the "new and improved
><H2
CLASS="SECT2"
><A
-NAME="S2"
->4.2. Using Comments</A
-></H2
+NAME="S2">4.2. Using Comments</H2
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
-NAME="S3"
->4.2.1. Comment, Comment, Comment</A
-></H3
+NAME="S3">4.2.1. Comment, Comment, Comment</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>Comment as much as possible without commenting the obvious.
If the comment describes something different than what the code
is doing then maybe a programming error is occurring.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
><H3
CLASS="SECT3"
><A
-NAME="S4"
->4.2.2. Use blocks for comments</A
-></H3
+NAME="S4">4.2.2. Use blocks for comments</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>Comments can help or they can clutter. They help when they
and the code. Block identifiers do, by surrounding the code
with a clear, definable pattern.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
></TR
></TABLE
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Exception:</I
+></SPAN
></P
><P
>If you are trying to add a small logic comment and do not
><H3
CLASS="SECT3"
><A
-NAME="S5"
->4.2.3. Keep Comments on their own line</A
-></H3
+NAME="S5">4.2.3. Keep Comments on their own line</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>It goes back to the question of readability. If the comment
at the end of closing braces, when used to comment
parameters.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
><H3
CLASS="SECT3"
><A
-NAME="S6"
->4.2.4. Comment each logical step</A
-></H3
+NAME="S6">4.2.4. Comment each logical step</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>Logical steps should be commented to help others follow the
><H3
CLASS="SECT3"
><A
-NAME="S7"
->4.2.5. Comment All Functions Thoroughly</A
-></H3
+NAME="S7">4.2.5. Comment All Functions Thoroughly</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>A reader of the code should be able to look at the comments
><H3
CLASS="SECT3"
><A
-NAME="S8"
->4.2.6. Comment at the end of braces if the
- content is more than one screen length</A
-></H3
+NAME="S8">4.2.6. Comment at the end of braces if the
+ content is more than one screen length</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>Each closing brace should be followed on the same line by a
>use following a closing brace: } /* -END- if() or while ()
or etc... */</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
><H2
CLASS="SECT2"
><A
-NAME="S9"
->4.3. Naming Conventions</A
-></H2
+NAME="S9">4.3. Naming Conventions</H2
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
-NAME="S10"
->4.3.1. Variable Names</A
-></H3
+NAME="S10">4.3.1. Variable Names</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>Use all lowercase, and separate words via an underscore
template, class, true, false, ...). This is in case we ever
decide to port Privoxy to C++.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
></TR
></TABLE
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Instead of:</I
+></SPAN
></P
><P
><TABLE
><H3
CLASS="SECT3"
><A
-NAME="S11"
->4.3.2. Function Names</A
-></H3
+NAME="S11">4.3.2. Function Names</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>Use all lowercase, and separate words via an underscore
template, class, true, false, ...). This is in case we ever
decide to port Privoxy to C++.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
></TR
></TABLE
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Instead of:</I
+></SPAN
></P
><P
><TABLE
><H3
CLASS="SECT3"
><A
-NAME="S12"
->4.3.3. Header file prototypes</A
-></H3
+NAME="S12">4.3.3. Header file prototypes</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>Use a descriptive parameter name in the function prototype
in header files. Use the same parameter name in the header file
that you use in the c file.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
></TR
></TABLE
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Instead of:</I
+></SPAN
>
<TABLE
BORDER="0"
><H3
CLASS="SECT3"
><A
-NAME="S13"
->4.3.4. Enumerations, and #defines</A
-></H3
+NAME="S13">4.3.4. Enumerations, and #defines</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>Use all capital letters, with underscores between words. Do
not start an identifier with an underscore. (ANSI C reserves
these for use by the compiler and system headers.)</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
></TR
></TABLE
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Note:</I
+></SPAN
> We have a standard naming scheme for #defines
that toggle a feature in the preprocessor: FEATURE_>, where
> is a short (preferably 1 or 2 word) description.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
><H3
CLASS="SECT3"
><A
-NAME="S14"
->4.3.5. Constants</A
-></H3
+NAME="S14">4.3.5. Constants</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>Spell common words out entirely (do not remove vowels).</P
>Use underscore (_) to separate adjacent acronyms and
abbreviations. Never terminate a name with an underscore.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
></TR
></TABLE
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Instead of:</I
+></SPAN
></P
><P
><TABLE
><H2
CLASS="SECT2"
><A
-NAME="S15"
->4.4. Using Space</A
-></H2
+NAME="S15">4.4. Using Space</H2
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
-NAME="S16"
->4.4.1. Put braces on a line by themselves.</A
-></H3
+NAME="S16">4.4.1. Put braces on a line by themselves.</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>The brace needs to be on a line all by itself, not at the
easier to identify the opening and closing braces for a
block.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
></TR
></TABLE
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Instead of:</I
+></SPAN
></P
><P
>if ( this == that ) { ... }</P
><P
>if ( this == that ) { ... }</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Note:</I
+></SPAN
> In the special case that the if-statement is
inside a loop, and it is trivial, i.e. it tests for a
condition that is obvious from the purpose of the block,
one-liners as above may optically preserve the loop structure
and make it easier to read.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Status:</I
+></SPAN
> developer-discretion.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example exception:</I
+></SPAN
></P
><TABLE
BORDER="0"
><H3
CLASS="SECT3"
><A
-NAME="S17"
->4.4.2. ALL control statements should have a
- block</A
-></H3
+NAME="S17">4.4.2. ALL control statements should have a
+ block</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>Using braces to make a block will make your code more
readable and less prone to error. All control statements should
have a block defined.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
></TR
></TABLE
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Instead of:</I
+></SPAN
></P
><P
>if ( this == that ) DoSomething(); DoSomethingElse();</P
><P
>if ( this == that ) DoSomething();</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Note:</I
+></SPAN
> The first example in "Instead of" will execute
in a manner other than that which the developer desired (per
indentation). Using code braces would have prevented this
><H3
CLASS="SECT3"
><A
-NAME="S18"
->4.4.3. Do not belabor/blow-up boolean
- expressions</A
-></H3
+NAME="S18">4.4.3. Do not belabor/blow-up boolean
+ expressions</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
></TR
></TABLE
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Instead of:</I
+></SPAN
></P
><P
>if ( condition ) { structure->flag = 1; } else {
structure->flag = 0; }</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Note:</I
+></SPAN
> The former is readable and concise. The later
is wordy and inefficient. Please assume that any developer new
to the project has at least a "good" knowledge of C/C++. (Hope
><H3
CLASS="SECT3"
><A
-NAME="S19"
->4.4.4. Use white space freely because it is
- free</A
-></H3
+NAME="S19">4.4.4. Use white space freely because it is
+ free</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>Make it readable. The notable exception to using white space
freely is listed in the next guideline.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
><H3
CLASS="SECT3"
><A
-NAME="S20"
->4.4.5. Don't use white space around structure
- operators</A
-></H3
+NAME="S20">4.4.5. Don't use white space around structure
+ operators</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>- structure pointer operator ( "->" ) - member operator (
connection between the object and variable/function name is not
as clear.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
></TR
></TABLE
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Instead of:</I
+></SPAN
> aStruct -> aMember; aStruct . aMember;
FunctionName ();</P
></DIV
><H3
CLASS="SECT3"
><A
-NAME="S21"
->4.4.6. Make the last brace of a function stand
- out</A
-></H3
+NAME="S21">4.4.6. Make the last brace of a function stand
+ out</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
></TR
></TABLE
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Instead of:</I
+></SPAN
></P
><P
>int function1( ... ) { ...code... return( retCode ); } int
function2( ... ) { }</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Note:</I
+></SPAN
> Use 1 blank line before the closing brace and 2
lines afterward. This makes the end of function standout to
the most casual viewer. Although function comments help
"do" loops, and long if {} statements too. After all whitespace
is free!</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Status:</I
+></SPAN
> developer-discretion on the number of blank
lines. Enforced is the end of function comments.</P
></DIV
><H3
CLASS="SECT3"
><A
-NAME="S22"
->4.4.7. Use 3 character indentions</A
-></H3
+NAME="S22">4.4.7. Use 3 character indentions</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>If some use 8 character TABs and some use 3 character TABs,
only. If you like to use TABs, pass your code through a filter
such as "expand -t3" before checking in your code.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
><H2
CLASS="SECT2"
><A
-NAME="S23"
->4.5. Initializing</A
-></H2
+NAME="S23">4.5. Initializing</H2
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
-NAME="S24"
->4.5.1. Initialize all variables</A
-></H3
+NAME="S24">4.5.1. Initialize all variables</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>Do not assume that the variables declared will not be used
the code. Remove the chance of accidentally using an unassigned
variable.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
></TR
></TABLE
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Note:</I
+></SPAN
> It is much easier to debug a SIGSEGV if the
message says you are trying to access memory address 00000000
and not 129FA012; or arrayPtr[20] causes a SIGSEV vs.
arrayPtr[0].</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Status:</I
+></SPAN
> developer-discretion if and only if the
variable is assigned a value "shortly after" declaration.</P
></DIV
><H2
CLASS="SECT2"
><A
-NAME="S25"
->4.6. Functions</A
-></H2
+NAME="S25">4.6. Functions</H2
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
-NAME="S26"
->4.6.1. Name functions that return a boolean as a
- question.</A
-></H3
+NAME="S26">4.6.1. Name functions that return a boolean as a
+ question.</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>Value should be phrased as a question that would logically
be answered as a true or false statement</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
><H3
CLASS="SECT3"
><A
-NAME="S27"
->4.6.2. Always specify a return type for a
- function.</A
-></H3
+NAME="S27">4.6.2. Always specify a return type for a
+ function.</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>The default return for a function is an int. To avoid
><H3
CLASS="SECT3"
><A
-NAME="S28"
->4.6.3. Minimize function calls when iterating by
- using variables</A
-></H3
+NAME="S28">4.6.3. Minimize function calls when iterating by
+ using variables</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>It is easy to write the following code, and a clear argument
can be made that the code is easy to understand:</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
></TR
></TABLE
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Note:</I
+></SPAN
> Unfortunately, this makes a function call for
each and every iteration. This increases the overhead in the
program, because the compiler has to look up the function each
assign the value to a variable, and evaluate using the
variable.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
></TR
></TABLE
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Exceptions:</I
+></SPAN
> if the value of blockListLength() *may*
change or could *potentially* change, then you must code the
function call in the for/while loop.</P
><H3
CLASS="SECT3"
><A
-NAME="S29"
->4.6.4. Pass and Return by Const Reference</A
-></H3
+NAME="S29">4.6.4. Pass and Return by Const Reference</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>This allows a developer to define a const pointer and call
><H3
CLASS="SECT3"
><A
-NAME="S30"
->4.6.5. Pass and Return by Value</A
-></H3
+NAME="S30">4.6.5. Pass and Return by Value</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>Most structures cannot fit onto a normal stack entry (i.e.
><H3
CLASS="SECT3"
><A
-NAME="S31"
->4.6.6. Names of include files</A
-></H3
+NAME="S31">4.6.6. Names of include files</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>Your include statements should contain the file name without
partial path to distinguish their header files from system or
other header files.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
></TR
></TABLE
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Exception:</I
+></SPAN
></P
><P
><TABLE
></TABLE
></P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Note:</I
+></SPAN
> Please! do not add "-I." to the Makefile
without a _very_ good reason. This duplicates the #include
"file.h" behavior.</P
><H3
CLASS="SECT3"
><A
-NAME="S32"
->4.6.7. Provide multiple inclusion
- protection</A
-></H3
+NAME="S32">4.6.7. Provide multiple inclusion
+ protection</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>Prevents compiler and linker errors resulting from
with your file name, with "." Changed to "_", and make it
uppercase.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
><H3
CLASS="SECT3"
><A
-NAME="S33"
->4.6.8. Use `extern "C"` when appropriate</A
-></H3
+NAME="S33">4.6.8. Use `extern "C"` when appropriate</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>If our headers are included from C++, they must declare our
functions as `extern "C"`. This has no cost in C, but increases
the potential re-usability of our code.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
><H3
CLASS="SECT3"
><A
-NAME="S34"
->4.6.9. Where Possible, Use Forward Struct
- Declaration Instead of Includes</A
-></H3
+NAME="S34">4.6.9. Where Possible, Use Forward Struct
+ Declaration Instead of Includes</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>Useful in headers that include pointers to other struct's.
Modifications to excess header files may cause needless
compiles.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
></TR
></TABLE
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Note:</I
+></SPAN
> If you declare "file_list xyz;" (without the
pointer), then including the proper header file is necessary.
If you only want to prototype a pointer, however, the header
file is unnecessary.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Status:</I
+></SPAN
> Use with discretion.</P
></DIV
></DIV
><H2
CLASS="SECT2"
><A
-NAME="S35"
->4.7. General Coding Practices</A
-></H2
+NAME="S35">4.7. General Coding Practices</H2
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
-NAME="S36"
->4.7.1. Turn on warnings</A
-></H3
+NAME="S36">4.7.1. Turn on warnings</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation</I
+></SPAN
></P
><P
>Compiler warnings are meant to help you find bugs. You
><H3
CLASS="SECT3"
><A
-NAME="S37"
->4.7.2. Provide a default case for all switch
- statements</A
-></H3
+NAME="S37">4.7.2. Provide a default case for all switch
+ statements</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>What you think is guaranteed is never really guaranteed. The
someday will be passed. So, to protect yourself from the
unknown, always have a default step in a switch statement.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
></TR
></TABLE
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Note:</I
+></SPAN
> If you already have a default condition, you
are obviously exempt from this point. Of note, most of the
WIN32 code calls `DefWindowProc' after the switch statement.
This API call *should* be included in a default statement.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Another Note:</I
+></SPAN
> This is not so much a readability issue
as a robust programming issue. The "anomaly code goes here" may
be no more than a print to the STDERR stream (as in
load_config). Or it may really be an ABEND condition.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Status:</I
+></SPAN
> Programmer discretion is advised.</P
></DIV
><DIV
><H3
CLASS="SECT3"
><A
-NAME="S38"
->4.7.3. Try to avoid falling through cases in a
- switch statement.</A
-></H3
+NAME="S38">4.7.3. Try to avoid falling through cases in a
+ switch statement.</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>In general, you will want to have a 'break' statement within
><H3
CLASS="SECT3"
><A
-NAME="S39"
->4.7.4. Use 'long' or 'short' Instead of
- 'int'</A
-></H3
+NAME="S39">4.7.4. Use 'long' or 'short' Instead of
+ 'int'</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>On 32-bit platforms, int usually has the range of long. On
16-bit platforms, int has the range of short.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Status:</I
+></SPAN
> open-to-debate. In the case of most FSF
projects (including X/GNU-Emacs), there are typedefs to int4,
int8, int16, (or equivalence ... I forget the exact typedefs
><H3
CLASS="SECT3"
><A
-NAME="S40"
->4.7.5. Don't mix size_t and other types</A
-></H3
+NAME="S40">4.7.5. Don't mix size_t and other types</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>The type of size_t varies across platforms. Do not make
><H3
CLASS="SECT3"
><A
-NAME="S41"
->4.7.6. Declare each variable and struct on its
- own line.</A
-></H3
+NAME="S41">4.7.6. Declare each variable and struct on its
+ own line.</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>It can be tempting to declare a series of variables all on
one line. Don't.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
></TR
></TABLE
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Instead of:</I
+></SPAN
></P
><P
>long a, b, c;</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
> - there is more room for comments on the
individual variables - easier to add new variables without
messing up the original ones - when searching on a variable to
find its type, there is less clutter to "visually"
eliminate</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Exceptions:</I
+></SPAN
> when you want to declare a bunch of loop
variables or other trivial variables; feel free to declare them
on 1 line. You should, although, provide a good comment on
their functions.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Status:</I
+></SPAN
> developer-discretion.</P
></DIV
><DIV
><H3
CLASS="SECT3"
><A
-NAME="S42"
->4.7.7. Use malloc/zalloc sparingly</A
-></H3
+NAME="S42">4.7.7. Use malloc/zalloc sparingly</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>Create a local struct (on the stack) if the variable will
>Only "malloc" a struct (on the heap) if the variable's life
will extend beyond the context of one function call.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
><H3
CLASS="SECT3"
><A
-NAME="S43"
->4.7.8. The Programmer Who Uses 'malloc' is
- Responsible for Ensuring 'free'</A
-></H3
+NAME="S43">4.7.8. The Programmer Who Uses 'malloc' is
+ Responsible for Ensuring 'free'</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>If you have to "malloc" an instance, you are responsible for
responsible for ensuring that deletion is timely (i.e. not too
soon, not too late). This is known as "low-coupling" and is a
"good thing (tm)". You may need to offer a
- free/unload/destuctor type function to accommodate this.</P
+ free/unload/destructor type function to accommodate this.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example:</I
+></SPAN
></P
><TABLE
BORDER="0"
></TR
></TABLE
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Exceptions:</I
+></SPAN
></P
><P
>The developer cannot be expected to provide `free'ing
functions for C run-time library functions ... such as
`strdup'.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Status:</I
+></SPAN
> developer-discretion. The "main" use of this
standard is for allocating and freeing data structures (complex
or nested).</P
><H3
CLASS="SECT3"
><A
-NAME="S44"
->4.7.9. Add loaders to the `file_list' structure
- and in order</A
-></H3
+NAME="S44">4.7.9. Add loaders to the `file_list' structure
+ and in order</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>I have ordered all of the "blocker" file code to be in alpha
order. It is easier to add/read new blockers when you expect a
certain order.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Note:</I
+></SPAN
> It may appear that the alpha order is broken in
places by POPUP tests coming before PCRS tests. But since
POPUPs can also be referred to as KILLPOPUPs, it is clear that
><H3
CLASS="SECT3"
><A
-NAME="S45"
->4.7.10. "Uncertain" new code and/or changes to
- existing code, use FIXME</A
-></H3
+NAME="S45">4.7.10. "Uncertain" new code and/or changes to
+ existing code, use FIXME</H3
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Explanation:</I
+></SPAN
></P
><P
>If you have enough confidence in new code or confidence in
>/* FIXME: new code that *may* break something else... */
...new code here...</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Note:</I
+></SPAN
> If you make it clear that this may or may not
be a "good thing (tm)", it will be easier to identify and
include in the project (or conversely exclude from the
><H2
CLASS="SECT2"
><A
-NAME="S46"
->4.8. Addendum: Template for files and function
- comment blocks:</A
-></H2
+NAME="S46">4.8. Addendum: Template for files and function
+ comment blocks:</H2
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example for file comments:</I
+></SPAN
></P
><TABLE
BORDER="0"
><TD
><PRE
CLASS="PROGRAMLISTING"
->const char FILENAME_rcs[] = "$Id: developer-manual.sgml,v 1.45 2002/05/19 23:01:54 hal9 Exp $";
+>const char FILENAME_rcs[] = "$Id: developer-manual.sgml,v 1.46.2.4 2002/05/29 00:30:59 mal0rd Exp $";
/*********************************************************************
*
* File : $Source$
></TR
></TABLE
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Note:</I
+></SPAN
> This declares the rcs variables that should be
added to the "show-proxy-args" page. If this is a brand new
creation by you, you are free to change the "Copyright" section
to represent the rights you wish to maintain.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Note:</I
+></SPAN
> The formfeed character that is present right
after the comment flower box is handy for (X|GNU)Emacs users to
skip the verbiage and get to the heart of the code (via
`forward-page' and `backward-page'). Please include it if you
can.</P
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example for file header comments:</I
+></SPAN
></P
><TABLE
BORDER="0"
CLASS="PROGRAMLISTING"
>#ifndef _FILENAME_H
#define _FILENAME_H
-#define FILENAME_H_VERSION "$Id: developer-manual.sgml,v 1.45 2002/05/19 23:01:54 hal9 Exp $"
+#define FILENAME_H_VERSION "$Id: developer-manual.sgml,v 1.46.2.4 2002/05/29 00:30:59 mal0rd Exp $"
/*********************************************************************
*
* File : $Source$
></TR
></TABLE
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Example for function comments:</I
+></SPAN
></P
><TABLE
BORDER="0"
></TR
></TABLE
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Note:</I
+></SPAN
> If we all follow this practice, we should be
able to parse our code to create a "self-documenting" web
page.</P
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="documentation.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="testing.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>Contacting the developers, Bug Reporting and Feature Requests</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Privoxy Developer Manual"
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="webserver-update.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="copyright.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="CONTACT"
->8. Contacting the developers, Bug Reporting and Feature Requests</A
-></H1
+NAME="CONTACT">8. Contacting the developers, Bug Reporting and Feature Requests</H1
><P
> We value your feedback. In fact, we rely on it to improve
<SPAN
><H2
CLASS="SECT2"
><A
-NAME="CONTACT-SUPPORT"
->8.1. Get Support</A
-></H2
+NAME="CONTACT-SUPPORT">8.1. Get Support</H2
><P
> For casual users, our support forum at
<A
><H2
CLASS="SECT2"
><A
-NAME="CONTACT-BUGS"
->8.2. Report Bugs</A
-></H2
+NAME="CONTACT-BUGS">8.2. Report Bugs</H2
><P
-> Please report all bugs <I
+> Please report all bugs <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>only</I
+></SPAN
> through our
bug tracker:
<A
>. </P
><P
> Before doing so, please make sure that the bug has not already been submitted
- and observe the aditional hints at the top of the <A
+ and observe the additional hints at the top of the <A
HREF="http://sourceforge.net/tracker/?func=add&group_id=11118&atid=111118"
TARGET="_top"
>submit
><H2
CLASS="SECT2"
><A
-NAME="CONTACT-FEATURE"
->8.3. Request New Features</A
-></H2
+NAME="CONTACT-FEATURE">8.3. Request New Features</H2
><P
> You are welcome to submit ideas on new features or other proposals
for improvement through our feature request tracker at
><H2
CLASS="SECT2"
><A
-NAME="CONTACT-ADS"
->8.4. Report Ads or Other Actions-Related Problems</A
-></H2
+NAME="CONTACT-ADS">8.4. Report Ads or Other Actions-Related Problems</H2
><P
> Please send feedback on ads that slipped through, innocent images that were blocked,
and any other problems relating to the <TT
><H2
CLASS="SECT2"
><A
-NAME="CONTACT-OTHER"
->8.5. Other</A
-></H2
+NAME="CONTACT-OTHER">8.5. Other</H2
><P
>For any other issues, feel free to use the mailing lists. Technically interested users
and people who wish to contribute to the project are also welcome on the developers list!
You can find an overview of all <SPAN
CLASS="APPLICATION"
->Prixoxy</SPAN
+>Privoxy</SPAN
>-related mailing lists,
including list archives, at:
<A
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="webserver-update.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="copyright.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>Privoxy Copyright, License and History</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Privoxy Developer Manual"
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="contact.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="seealso.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="COPYRIGHT"
->9. Privoxy Copyright, License and History</A
-></H1
+NAME="COPYRIGHT">9. Privoxy Copyright, License and History</H1
><P
> Copyright © 2001, 2002 by Privoxy Developers <TT
CLASS="EMAIL"
><H2
CLASS="SECT2"
><A
-NAME="AEN1121"
->9.1. License</A
-></H2
+NAME="AEN1137">9.1. License</H2
><P
> <SPAN
CLASS="APPLICATION"
><H2
CLASS="SECT2"
><A
-NAME="AEN1137"
->9.2. History</A
-></H2
+NAME="AEN1153">9.2. History</H2
><P
> In the beginning, there was the
<A
CLASS="APPLICATION"
>Privoxy</SPAN
>, whose first
- stable release, 3.0, is due in May 2002.</P
+ stable release, 3.0, is due in June 2002.</P
></DIV
></DIV
><DIV
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="contact.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="seealso.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>The CVS Repository</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Privoxy Developer Manual"
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="introduction.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="documentation.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="CVS"
->2. The CVS Repository</A
-></H1
+NAME="CVS">2. The CVS Repository</H1
><P
> If you intend to help us with programming, documentation or packaging
you will need write access to our holy grail, the CVS repository.
><H2
CLASS="SECT2"
><A
-NAME="CVSACCESS"
->2.1. Access to CVS</A
-></H2
+NAME="CVSACCESS">2.1. Access to CVS</H2
><P
> The project's CVS repository is hosted on
<A
><H2
CLASS="SECT2"
><A
-NAME="CVSCOMMIT"
->2.2. CVS Commit Guideline</A
-></H2
+NAME="CVSCOMMIT">2.2. CVS Commit Guideline</H2
><P
> The source tree is the heart of every software project. Every effort must
be made to ensure that it is readable, compilable and consistent at all
><UL
><LI
><P
-> Never (read: <I
+> Never (read: <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>never, ever</I
+></SPAN
>) be tempted to commit
that small change without testing it thoroughly first. When we're
close to a public release, ask a fellow developer to review your
></LI
><LI
><P
-> Your commit message should give a concise overview of <I
+> Your commit message should give a concise overview of <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>what you
changed</I
-> (no big details) and <I
+></SPAN
+> (no big details) and <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>why you changed it</I
+></SPAN
>
Just check previous messages for good examples.
</P
><LI
><P
> If your changes span multiple files, and the code won't recompile unless
- all changes are commited (e.g. when changing the signature of a function),
- then commit all files one after another, without long delays in beween.
+ all changes are committed (e.g. when changing the signature of a function),
+ then commit all files one after another, without long delays in between.
If necessary, prepare the commit messages in advance.
</P
></LI
><H2
CLASS="SECT2"
><A
-NAME="CVSWHENASK"
->2.3. Discussing Changes First</A
-></H2
+NAME="CVSWHENASK">2.3. Discussing Changes First</H2
><P
> We don't have a too formal policy on this, just use common sense. Hints: If it is..
<P
TYPE="1"
><LI
><P
-> ..a bugfix / clean-up / cosmetic thing: shoot
+> ..a bug-fix / clean-up / cosmetic thing: shoot
</P
></LI
><LI
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="introduction.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="documentation.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>Documentation Guidelines</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Privoxy Developer Manual"
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="cvs.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="coding.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="DOCUMENTATION"
->3. Documentation Guidelines</A
-></H1
+NAME="DOCUMENTATION">3. Documentation Guidelines</H1
><P
> All formal documents are maintained in Docbook SGML and located in the
<TT
<I
CLASS="CITETITLE"
>privoxy.1</I
-> (man page) files are also now maintained
- as Docbook SGML. The finished files are all in the top-level source
- directory are generated files! Also, <TT
+> (man page), and
+ <I
+CLASS="CITETITLE"
+>config</I
+> files are also now maintained as Docbook
+ SGML. These files, when built, in the top-level source directory are
+ generated files! Also, the <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> <TT
CLASS="FILENAME"
>index.html</TT
->, the
+> (and a
+ variation on this file, <TT
+CLASS="FILENAME"
+>privoxy-index.html</TT
+>,
+ meant for inclusion with doc packages), are maintained as SGML as well.
<SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> home page, is maintained as SGML.
- <I
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>DO NOT edit these directly</I
+></SPAN
>. Edit the SGML source, or
contact someone involved in the documentation (at present Stefan and
Hal).
</P
><P
+> <TT
+CLASS="FILENAME"
+>config</TT
+> requires some special handling. The reason it
+ is maintained this way is so that the extensive comments in the file
+ mirror those in <I
+CLASS="CITETITLE"
+>user-manual</I
+>. But the conversion
+ process requires going from SGML to HTML to text to special formatting
+ required for the embedded comments. Some of this does not survive so
+ well. Especially some of the examples that are longer than 80 characters.
+ The build process for this file outputs to <TT
+CLASS="FILENAME"
+>config.new</TT
+>,
+ which should be reviewed for errors and mis-formatting. Once satisfied
+ that it is correct, then it should be hand copied to
+ <TT
+CLASS="FILENAME"
+>config</TT
+>.
+
+ </P
+><P
> Other, less formal documents (e.g. <TT
CLASS="FILENAME"
>LICENSE</TT
>) so that those without
the ability to build them locally, have access to them if needed.
This is especially important just prior to a new release! Please
- do this <I
+ do this <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>after</I
+></SPAN
> the <TT
CLASS="LITERAL"
>$VERSION</TT
><H2
CLASS="SECT2"
><A
-NAME="SGML"
->3.1. Quickstart to Docbook and SGML</A
-></H2
+NAME="SGML">3.1. Quickstart to Docbook and SGML</H2
><P
> If you are not familiar with SGML, it is a markup language similar to HTML.
Actually, not a mark up language per se, but a language used to define
><TBODY
><TR
><TD
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
><para></para></I
+></SPAN
>, paragraph delimiter. Most
text needs to be within paragraph elements (there are some exceptions).
</TD
></TR
><TR
><TD
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
><emphasis></emphasis></I
+></SPAN
>, the stylesheets
make this italics.
</TD
></TR
><TR
><TD
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
><filename></filename></I
+></SPAN
>, files and directories.
</TD
></TR
><TR
><TD
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
><command></command></I
+></SPAN
>, command examples.
</TD
></TR
><TR
><TD
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
><literallayout></literallayout></I
+></SPAN
>, like
<TT
CLASS="LITERAL"
></TR
><TR
><TD
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
><itemizedlist></itemizedlist></I
+></SPAN
>, list with bullets.
</TD
></TR
><TR
><TD
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
><listitem></listitem></I
+></SPAN
>, member of the above.
</TD
></TR
><TR
><TD
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
><screen></screen></I
+></SPAN
>, screen output, implies
<TT
CLASS="LITERAL"
></TR
><TR
><TD
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
><ulink url="example.com"></ulink></I
+></SPAN
>, like
HTML <TT
CLASS="LITERAL"
></TR
><TR
><TD
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
><quote></quote></I
+></SPAN
>, for, doh, quoting text.
</TD
></TR
><H2
CLASS="SECT2"
><A
-NAME="DOCSTYLE"
->3.2. <SPAN
+NAME="DOCSTYLE">3.2. <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> Documentation Style</A
-></H2
+> Documentation Style</H2
><P
> It will be easier if everyone follows a similar writing style. This
just makes it easier to read what someone else has written if it
></LI
><LI
><P
-> Tags delimiting a <I
+> Tags delimiting a <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>block</I
+></SPAN
> of text (even small
blocks) should be on their own line. Like:
<P
><H2
CLASS="SECT2"
><A
-NAME="AEN209"
->3.3. Privoxy Custom Entities</A
-></H2
+NAME="AEN217">3.3. Privoxy Custom Entities</H2
><P
> <SPAN
CLASS="APPLICATION"
that is used by multiple docs. This way we can write something once, and use
it repeatedly without having to re-write the same content over and over again.
If editing such a file, keep in mind that it should be
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>generic</I
+></SPAN
>. That is the purpose; so it can be used in varying
contexts without additional modifications.
</P
><TBODY
><TR
><TD
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>p-version</I
+></SPAN
>: the <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></TR
><TR
><TD
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>p-status</I
+></SPAN
>: the project status, either
<SPAN
CLASS="QUOTE"
></TR
><TR
><TD
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>p-not-stable</I
+></SPAN
>: use to conditionally include
text in <SPAN
CLASS="QUOTE"
></TR
><TR
><TD
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>p-stable</I
+></SPAN
>: just the opposite.
</TD
></TR
><TR
><TD
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>p-text</I
+></SPAN
>: this doc is only generated as text.
</TD
></TR
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="cvs.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="coding.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>Privoxy Developer Manual</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="NEXT"
TITLE="Introduction"
><H1
CLASS="TITLE"
><A
-NAME="AEN2"
->Privoxy Developer Manual</A
-></H1
+NAME="AEN2">Privoxy Developer Manual</H1
><P
CLASS="PUBDATE"
> <SUB
<BR></P
><P
CLASS="PUBDATE"
->$Id: developer-manual.sgml,v 1.45 2002/05/19 23:01:54 hal9 Exp $<BR></P
+>$Id: developer-manual.sgml,v 1.46.2.4 2002/05/29 00:30:59 mal0rd Exp $<BR></P
><DIV
><DIV
CLASS="ABSTRACT"
><A
-NAME="AEN9"
-></A
-><P
+NAME="AEN9"><P
></P
><P
-> The developer manual gives the users information on how to help the developer
- team. It provides guidance on coding, testing, documentation and other
- issues.
- </P
+> The developer manual provides guidance on coding, testing, packaging, documentation
+ and other issues of importance to those involved with
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> development. It is mandatory (and helpful!) reading
+ for anyone who wants to join the team.</P
><P
> You can find the latest version of the this manual at <A
HREF="http://www.privoxy.org/developer-manual/"
></DT
><DT
>3.3. <A
-HREF="documentation.html#AEN209"
+HREF="documentation.html#AEN217"
>Privoxy Custom Entities</A
></DT
></DL
><DL
><DT
>9.1. <A
-HREF="copyright.html#AEN1121"
+HREF="copyright.html#AEN1137"
>License</A
></DT
><DT
>9.2. <A
-HREF="copyright.html#AEN1137"
+HREF="copyright.html#AEN1153"
>History</A
></DT
></DL
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="introduction.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>Introduction</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Privoxy Developer Manual"
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="index.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="cvs.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="INTRODUCTION"
->1. Introduction</A
-></H1
+NAME="INTRODUCTION">1. Introduction</H1
><P
> <SPAN
CLASS="APPLICATION"
><H2
CLASS="SECT2"
><A
-NAME="QUICKSTART"
->1.1. Quickstart to Privoxy Development</A
-></H2
+NAME="QUICKSTART">1.1. Quickstart to Privoxy Development</H2
><P
> You'll need an account on <A
HREF="http://sourceforge.net/"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="cvs.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>Releasing a New Version</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Privoxy Developer Manual"
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="testing.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="webserver-update.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="NEWRELEASE"
->6. Releasing a New Version</A
-></H1
+NAME="NEWRELEASE">6. Releasing a New Version</H1
><P
> When we release versions of <SPAN
CLASS="APPLICATION"
><H2
CLASS="SECT2"
><A
-NAME="VERSIONNUMBERS"
->6.1. Version numbers</A
-></H2
+NAME="VERSIONNUMBERS">6.1. Version numbers</H2
><P
> First you need to determine which version number the release will have.
<SPAN
> Y, the version minor, represents the branch within the major version.
At any point in time, there are two branches being maintained:
The stable branch, with an even minor, say, 2N, in which no functionality is
- being added and only bugfixes are made, and 2N+1, the development branch, in
+ being added and only bug-fixes are made, and 2N+1, the development branch, in
which the further development of <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
place.
This enables us to turn the code upside down and inside out, while at the same time
providing and maintaining a stable version.
- The minor is reset to zero (and one) when the major is inrcemented. When a development
+ The minor is reset to zero (and one) when the major is incremented. When a development
branch has matured to the point where it can be turned into stable, the old stable branch
2N is given up (i.e. no longer maintained), the former development branch 2N+1 becomes the
new stable branch 2N+2, and a new development branch 2N+3 is opened.
><H2
CLASS="SECT2"
><A
-NAME="BEFORERELEASE"
->6.2. Before the Release: Freeze</A
-></H2
+NAME="BEFORERELEASE">6.2. Before the Release: Freeze</H2
><P
-> The following <I
+> The following <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>must be done by one of the
developers</I
+></SPAN
> prior to each new release.
</P
><P
></LI
><LI
><P
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>Commit all files that were changed in the above steps!</I
+></SPAN
>
</P
></LI
><H2
CLASS="SECT2"
><A
-NAME="THERELEASE"
->6.3. Building and Releasing the Packages</A
-></H2
+NAME="THERELEASE">6.3. Building and Releasing the Packages</H2
><P
> Now the individual packages can be built and released. Note that for
GPL reasons the first package to be released is always the source tarball.
</P
><P
-> For <I
+> For <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>all</I
+></SPAN
> types of packages, including the source tarball,
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>you must make sure that you build from clean sources by exporting
the right version from CVS into an empty directory:</I
+></SPAN
>.
</P
><P
>
</P
><P
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>Do NOT change</I
+></SPAN
> a single bit, including, but not limited to
version information after export from CVS. This is to make sure that
all release packages, and with them, all future bug reports, are based
><H3
CLASS="SECT3"
><A
-NAME="PACK-GUIDELINES"
->6.3.1. Note on Privoxy Packaging</A
-></H3
+NAME="PACK-GUIDELINES">6.3.1. Note on Privoxy Packaging</H3
><P
> Please keep these general guidelines in mind when putting together
- your package. These apply to <I
+ your package. These apply to <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>all</I
+></SPAN
> platforms!
</P
><P
> <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>requires</I
+></SPAN
>
write access to: all <TT
CLASS="FILENAME"
> <TT
CLASS="FILENAME"
>LICENSE</TT
-> (toplevel directory)
+> (top-level directory)
</TD
></TR
></TBODY
> <TT
CLASS="FILENAME"
>README</TT
-> (toplevel directory)
+> (top-level directory)
</TD
></TR
></TBODY
> <TT
CLASS="FILENAME"
>AUTHORS</TT
-> (toplevel directory)
+> (top-level directory)
</TD
></TR
></TBODY
> <TT
CLASS="FILENAME"
>man page</TT
-> (toplevel directory, Unix-like
+> (top-level directory, Unix-like
platforms only)
</TD
></TR
CLASS="FILENAME"
>Developer Manual</TT
>
- (doc/webserver/devel-manual) and <TT
+ (doc/webserver/developer-manual) and <TT
CLASS="FILENAME"
>ChangeLog</TT
>
- (toplevel directory). <TT
+ (top-level directory). <TT
CLASS="FILENAME"
>FAQ</TT
> and the manuals are
to each other from parallel directories, and should be packaged
that way. <TT
CLASS="FILENAME"
+>privoxy-index.html</TT
+> can also be
+ included and can serve as a focal point for docs and other links of
+ interest (and possibly renamed to <TT
+CLASS="FILENAME"
>index.html</TT
-> can also be included and
- can serve as a focal point for docs and other links of interest.
- This should be one level up from the manuals. There are two
+>).
+ This should be one level up from the manuals. There is a link also
+ on this page to an HTMLized version of the man page. To avoid 404 for
+ this, it is in CVS as
+ <TT
+CLASS="FILENAME"
+>doc/webserver/man-page/privoxy-man-page.html</TT
+>,
+ and should be included along with the manuals. There is also a
css stylesheets that can be included for better presentation:
<TT
CLASS="FILENAME"
>p_doc.css</TT
-> and <TT
+>. This should be in the same directory
+ with <TT
CLASS="FILENAME"
->p_web.css</TT
->.
- These should be in the same directory with
- <TT
-CLASS="FILENAME"
->index.html</TT
->, (i.e. one level up from the manual
- directories).
+>privoxy-index.html</TT
+>, (i.e. one level up from
+ the manual directories).
</P
></LI
><LI
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-TARBALL"
->6.3.2. Source Tarball</A
-></H3
+NAME="NEWRELEASE-TARBALL">6.3.2. Source Tarball</H3
><P
-> First, <I
+> First, <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>make sure that you have freshly exported the right
version into an empty directory</I
+></SPAN
>. (See "Building and releasing
packages" above). Then run:
</P
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-RPM"
->6.3.3. SuSE, Conectiva or Red Hat RPM</A
-></H3
+NAME="NEWRELEASE-RPM">6.3.3. SuSE, Conectiva or Red Hat RPM</H3
><P
> In following text, replace <TT
CLASS="REPLACEABLE"
> for SuSE.
</P
><P
-> First, <I
+> First, <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>make sure that you have freshly exported the right
version into an empty directory</I
+></SPAN
>. (See "Building and releasing
packages" above).
</P
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-OS2"
->6.3.4. OS/2</A
-></H3
+NAME="NEWRELEASE-OS2">6.3.4. OS/2</H3
><P
-> First, <I
+> First, <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>make sure that you have freshly exported the right
version into an empty directory</I
+></SPAN
>. (See "Building and releasing
packages" above). Then get the OS/2 Setup module:
</P
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-SOLARIS"
->6.3.5. Solaris</A
-></H3
+NAME="NEWRELEASE-SOLARIS">6.3.5. Solaris</H3
><P
> Login to Sourceforge's compilefarm via ssh:
</P
</P
><P
> Choose the right operating system (not the Debian one).
- When logged in, <I
+ When logged in, <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>make sure that you have freshly exported the right
version into an empty directory</I
+></SPAN
>. (See "Building and releasing
packages" above). Then run:
</P
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-WINDOWS"
->6.3.6. Windows</A
-></H3
+NAME="NEWRELEASE-WINDOWS">6.3.6. Windows</H3
><P
> You should ensure you have the latest version of Cygwin (from
<A
Run the following commands from within a Cygwin bash shell.
</P
><P
-> First, <I
+> First, <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>make sure that you have freshly exported the right
version into an empty directory</I
+></SPAN
>. (See "Building and releasing
packages" above). Then get the Windows setup module:
</P
><TD
><PRE
CLASS="PROGRAMLISTING"
-> cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co winsetup</PRE
+> cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co winsetup</PRE
></TD
></TR
></TABLE
><TD
><PRE
CLASS="PROGRAMLISTING"
-> cd winsetup
- make</PRE
+> cd winsetup
+ make</PRE
></TD
></TR
></TABLE
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-DEBIAN"
->6.3.7. Debian</A
-></H3
+NAME="NEWRELEASE-DEBIAN">6.3.7. Debian</H3
><P
-> First, <I
+> First, <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
->make sure that you have freshly exported the right
- version into an empty directory</I
->. (See "Building and releasing
- packages" above). Then, run:
- </P
+>make sure that you have freshly exported the
+ right version into an empty directory</I
+></SPAN
+>. (See
+ "Building and releasing packages" above). Then add a log
+ entry to <TT
+CLASS="FILENAME"
+>debian/changelog</TT
+>, if it is not
+ already there, for example by running:
+ </P
><P
-> <TABLE
+> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TD
><PRE
CLASS="PROGRAMLISTING"
-> cd current
- autoheader && autoconf && ./configure</PRE
+> debchange -v 2.9.15-beta-1 "New upstream version"</PRE
></TD
></TR
></TABLE
>
- </P
+ </P
><P
-> Then do FIXME.
- </P
+> Then, run:
+ </P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+> dpkg-buildpackage -rfakeroot -us -uc -b</PRE
+></TD
+></TR
+></TABLE
+>
+ </P
+><P
+> This will create
+ <TT
+CLASS="FILENAME"
+>../privoxy_2.9.15-beta-1_i386.deb</TT
+>
+ which can be uploaded. To upload the package to Sourceforge, simply
+ issue
+ </P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+> make debian-upload</PRE
+></TD
+></TR
+></TABLE
+>
+ </P
></DIV
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-MACOSX"
->6.3.8. Mac OSX</A
-></H3
+NAME="NEWRELEASE-MACOSX">6.3.8. Mac OSX</H3
><P
-> First, <I
+> First, <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>make sure that you have freshly exported the right
version into an empty directory</I
+></SPAN
>. (See "Building and releasing
packages" above). Then get the Mac OSX setup module:
</P
><TD
><PRE
CLASS="PROGRAMLISTING"
->zip -r privoxyosx_setup_x.y.z.zip Privoxy.pkg</PRE
+> zip -r privoxyosx_setup_x.y.z.zip Privoxy.pkg</PRE
></TD
></TR
></TABLE
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-FREEBSD"
->6.3.9. FreeBSD</A
-></H3
+NAME="NEWRELEASE-FREEBSD">6.3.9. FreeBSD</H3
><P
-> Login to Sourceforge's compilefarm via ssh:
+> Login to Sourceforge's compile-farm via ssh:
</P
><P
> <TABLE
</P
><P
> Choose the right operating system.
- When logged in, <I
+ When logged in, <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>make sure that you have freshly exported the right
version into an empty directory</I
+></SPAN
>. (See "Building and releasing
packages" above). Then run:
</P
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-HPUX"
->6.3.10. HP-UX 11</A
-></H3
+NAME="NEWRELEASE-HPUX">6.3.10. HP-UX 11</H3
><P
-> First, <I
+> First, <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>make sure that you have freshly exported the right
version into an empty directory</I
+></SPAN
>. (See "Building and releasing
packages" above). Then run:
</P
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-AMIGA"
->6.3.11. Amiga OS</A
-></H3
+NAME="NEWRELEASE-AMIGA">6.3.11. Amiga OS</H3
><P
-> First, <I
+> First, <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>make sure that you have freshly exported the right
version into an empty directory</I
+></SPAN
>. (See "Building and releasing
packages" above). Then run:
</P
><H3
CLASS="SECT3"
><A
-NAME="NEWRELEASE-AIX"
->6.3.12. AIX</A
-></H3
+NAME="NEWRELEASE-AIX">6.3.12. AIX</H3
><P
> Login to Sourceforge's compilefarm via ssh:
</P
</P
><P
> Choose the right operating system.
- When logged in, <I
+ When logged in, <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>make sure that you have freshly exported the right
version into an empty directory</I
+></SPAN
>. (See "Building and releasing
packages" above). Then run:
</P
><H2
CLASS="SECT2"
><A
-NAME="RELEASING"
->6.4. Uploading and Releasing Your Package</A
-></H2
+NAME="RELEASING">6.4. Uploading and Releasing Your Package</H2
><P
> After the package is ready, it is time to upload it
to SourceForge, and go through the release steps. The upload
of <TT
CLASS="LITERAL"
>$VERSION ($CODE_STATUS)</TT
->, e.g. <I
+>, e.g. <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>2.9.15
(beta)</I
+></SPAN
>.
</P
><P
><H2
CLASS="SECT2"
><A
-NAME="AFTERRELEASE"
->6.5. After the Release</A
-></H2
+NAME="AFTERRELEASE">6.5. After the Release</H2
><P
> When all (or: most of the) packages have been uploaded and made available,
send an email to the <A
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="testing.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="webserver-update.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>See also</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Privoxy Developer Manual"
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="copyright.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
><H1
CLASS="SECT1"
><A
-NAME="SEEALSO"
->10. See also</A
-></H1
+NAME="SEEALSO">10. See also</H1
><P
> Other references and sites of interest to <SPAN
CLASS="APPLICATION"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="copyright.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
>Testing Guidelines</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Privoxy Developer Manual"
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="coding.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="newrelease.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="TESTING"
->5. Testing Guidelines</A
-></H1
+NAME="TESTING">5. Testing Guidelines</H1
><P
>To be filled.</P
><DIV
><H2
CLASS="SECT2"
><A
-NAME="TESTING-PLAN"
->5.1. Testplan for releases</A
-></H2
+NAME="TESTING-PLAN">5.1. Testplan for releases</H2
><P
> Explain release numbers. major, minor. developer releases. etc.
><H2
CLASS="SECT2"
><A
-NAME="TESTING-REPORT"
->5.2. Test reports</A
-></H2
+NAME="TESTING-REPORT">5.2. Test reports</H2
><P
>Please submit test reports only with the <A
HREF="http://sourceforge.net/tracker/?func=add&group_id=11118&atid=395005"
></LI
></UL
>
- Do not mail to the mailinglist (we cannot keep track on issues there).
+ Do not mail to the mailing list (we cannot keep track on issues there).
</P
></DIV
></DIV
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="coding.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="newrelease.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>Update the Webserver</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Privoxy Developer Manual"
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="newrelease.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="contact.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="WEBSERVER-UPDATE"
->7. Update the Webserver</A
-></H1
+NAME="WEBSERVER-UPDATE">7. Update the Webserver</H1
><P
> When updating the webserver, please follow these steps to make
- sure that no broken links, incosistent contents or permission
+ sure that no broken links, inconsistent contents or permission
problems will occur:
</P
><P
><TD
><PRE
CLASS="PROGRAMLISTING"
-> make dok # (or make redkat-dok if make dok doesn't work for you)</PRE
+> make dok # (or make redhat-dok if make dok doesn't work for you)</PRE
></TD
></TR
></TABLE
there are group writable.
</P
><P
-> Please do <I
+> Please do <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>NOT</I
+></SPAN
> use any other means of transferring
files to the webserver to avoid permission problems.
</P
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="newrelease.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="contact.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>Configuration</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Privoxy Frequently Asked Questions"
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="installation.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="misc.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="CONFIGURATION"
->3. Configuration</A
-></H1
+NAME="CONFIGURATION">3. Configuration</H1
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="NEWCONFIG"
->3.1. Can I use my old config files?</A
-></H3
+NAME="NEWCONFIG">3.1. Can I use my old config files?</H3
><P
-> There are major changes to <SPAN
+> The syntax, number, and purpose of configuration files has substantially
+ changed from <SPAN
CLASS="APPLICATION"
>Junkbuster</SPAN
->/
- <SPAN
+> and earlier versions
+ of <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> configuration from version 2.0.x to
- 2.9.x and later. Most of the older files will not work at all. This is
- especially true of <TT
+>. The old files, like <TT
CLASS="FILENAME"
>blocklist</TT
->. If this is the case, you
- will need to re-enter your old data into the new configuration structure.
- This is probably also a good recommendation even if upgrading from 2.9.x to
- 3.x since there were many minor changes along the way.
+>
+ will not work at all. If you are upgrading from a 2.0.x version, you will
+ need to port your configuration data to the new format. Note that even the
+ pattern syntax has changed! Even configuration files from the 2.9.x versions
+ will need to be adapted, as configuration syntax has been very much in flow
+ in the 2.9.x series.
</P
></DIV
><DIV
><H3
CLASS="SECT2"
><A
-NAME="AEN234"
->3.2. What is an <SPAN
+NAME="AEN258">3.2. What is an <SPAN
CLASS="QUOTE"
>"actions"</SPAN
-> file?</A
-></H3
+> file?</H3
><P
-> <SPAN
-CLASS="QUOTE"
->"actions"</SPAN
-> files are where various actions that
- <SPAN
+> <A
+HREF="../user-manual/actions-file.html"
+TARGET="_top"
+>Actions files</A
+>
+ are where various <A
+HREF="../user-manual/actions-file.html#ACTIONS"
+TARGET="_top"
+>actions</A
+>
+ that <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> might take, are configured.
- Typically, you would define a set of default actions that apply
- to all URLs, then add exceptions to these defaults where needed.</P
-><P
-> Actions can be defined on a per site basis, or for groups of sites. Actions
- can also be grouped together and then applied to one or more sites. There
- are many possible actions that might apply to any given site. As an example,
- if we are blocking cookies as one of our default
- <SPAN
-CLASS="APPLICATION"
->actions</SPAN
->, but need to accept cookies from a given
- site, we would define this in our <SPAN
-CLASS="QUOTE"
->"actions"</SPAN
-> file. </P
+> might take while processing a certain
+ request, are configured. Typically, you would define a set of default actions
+ that apply to all URLs, then add exceptions to these defaults where needed.</P
+><P
+> Actions can be defined on a <A
+HREF="../user-manual/actions-file.html#AF-PATTERNS"
+TARGET="_top"
+>URL pattern</A
+> basis, i.e.
+ for single URLs, whole web sites, groups or parts thereof etc. Actions can also be
+ grouped together and then applied to requests matching one or more patterns.
+ There are many possible actions that might apply to any given site. As an example,
+ if you are blocking cookies as one of your default actions, but need to accept
+ cookies from a given site, you would need to define an exception for this
+ site in one of your actions files, preferably in <TT
+CLASS="FILENAME"
+>user.action</TT
+></P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="ACTIONSS"
->3.3. The <SPAN
+NAME="ACTIONSS">3.3. The <SPAN
CLASS="QUOTE"
>"actions"</SPAN
> concept confuses me. Please list
some of these <SPAN
CLASS="QUOTE"
>"actions"</SPAN
->.</A
-></H3
+>.</H3
><P
-> These are all explained in the
- <A
+> For a comprehensive discussion of the actions concept, please refer
+ to the <A
HREF="../user-manual/actions-file.html"
TARGET="_top"
->user-manual</A
->.
- Please refer to that.</P
+>actions file
+ chapter</A
+> in the <A
+HREF="../user-manual/index.html"
+TARGET="_top"
+>user
+ manual</A
+>. It includes a <A
+HREF="../user-manual/actions-file.html#ACTIONS"
+TARGET="_top"
+>list of all actions</A
+>
+ and an <A
+HREF="../user-manual/actions-file.html#ACT-EXAMPLES"
+TARGET="_top"
+>actions
+ file tutorial</A
+> to get you started.</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="AEN249"
->3.4. How are actions files configured? What is the easiest
-way to do this?</A
-></H3
+NAME="AEN277">3.4. How are actions files configured? What is the easiest
+way to do this?</H3
><P
-> The easiest way to do this, is to access <SPAN
+> Actions files are just text files in a special syntax and can be edited
+ with a text editor. The probably easiest way is to access
+ <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
+>'s user interface with your web browser
+ at <A
+HREF="http://config.privoxy.org/"
+TARGET="_top"
+>http://config.privoxy.org/</A
>
- with your web browser at <A
+ (Shortcut: <A
HREF="http://p.p/"
TARGET="_top"
>http://p.p/</A
->,
- and then select
- "<A
-HREF="http://config.privoxy.org"
-TARGET="_top"
->View & change the current configuration</A
->"
- from the selection list. You can also do this by editing the appropriate
- file with a text editor.</P
-><P
-> Please see the
- <A
-HREF="../user-manual/actions-file.html"
+>) and then select
+ <SPAN
+CLASS="QUOTE"
+>"<A
+HREF="http://config.privoxy.org/show-status"
TARGET="_top"
->user-manual</A
-> for a
- detailed explanation of these and other configuration files, and their
- various options and syntax.</P
+>View &
+ change the current configuration</A
+>"</SPAN
+> from the menu.</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="AEN257"
->3.5. There are several different <SPAN
+NAME="AEN285">3.5. There are several different <SPAN
CLASS="QUOTE"
>"actions"</SPAN
> files. What are
-the differences?</A
-></H3
+the differences?</H3
><P
> As of <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> v2.9.15, three actions files
are being included, to be used for
- different purposes. These are
+ different purposes: These are
<TT
CLASS="FILENAME"
>default.action</TT
->, <TT
+>, the <SPAN
+CLASS="QUOTE"
+>"main"</SPAN
+> actions file
+ which is actively maintained by the <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ developers, <TT
+CLASS="FILENAME"
+>user.action</TT
+>, where users are encouraged
+ to make their private customizations, and <TT
CLASS="FILENAME"
>standard.action</TT
>,
- and <TT
-CLASS="FILENAME"
->user.action</TT
->. Please see
- <A
+ which is for internal <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> use only.
+ Please see <A
HREF="../user-manual/actions-file.html"
TARGET="_top"
->the User Manual</A
->
- for an explanation of each.</P
+>the actions chapter</A
+>
+ in the <A
+HREF="../user-manual/index.html"
+TARGET="_top"
+>user manual</A
+> for a more
+ detailed explanation.</P
><P
-> Earlier versions included three different versions
+> Earlier versions included three different versions of the
<TT
CLASS="FILENAME"
>default.action</TT
-> files. The new scheme allows for
+> file. The new scheme allows for
greater flexibility of local configuration, and for browser based
- configuration.</P
+ selection of pre-defined <SPAN
+CLASS="QUOTE"
+>"aggressiveness"</SPAN
+> levels.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="YAHOO">3.6. How can I make my Yahoo/Hotmail/GMX account work?</H3
+><P
+> The default configuration shouldn't impact the usability of any of these services.
+ It will, however, make all cookies temporary, so that your browser will forget your
+ login credentials in between browser sessions. If you would like not to have to log
+ in manually each time you access those websites, simply turn off all cookie handling
+ for them in the <TT
+CLASS="FILENAME"
+>user.action</TT
+> file. An example for yahoo might
+ look like:
+ </P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+># Allow all cookies for Yahoo login:
+#
+{ -<A
+HREF="../user-manual/actions-file.html#CRUNCH-INCOMING-COOKIES"
+TARGET="_top"
+>crunch-incoming-cookies</A
+> -<A
+HREF="../user-manual/actions-file.html#CRUNCH-OUTGOING-COOKIES"
+TARGET="_top"
+>crunch-outgoing-cookies</A
+> -<A
+HREF="../user-manual/actions-file.html#SESSION-COOKIES-ONLY"
+TARGET="_top"
+>session-cookies-only</A
+> }
+.login.yahoo.com</PRE
+></TD
+></TR
+></TABLE
+>
+ </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="CONFIGFILES">3.7. What's the difference between the
+<SPAN
+CLASS="QUOTE"
+>"Cautious"</SPAN
+>, <SPAN
+CLASS="QUOTE"
+>"Medium"</SPAN
+> and <SPAN
+CLASS="QUOTE"
+>"Advenced"</SPAN
+> defaults?</H3
+><P
+> Configuring <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is not entirely trivial. To help you get
+ started, we provide you with three different default action <SPAN
+CLASS="QUOTE"
+>"packages"</SPAN
+> in
+ the web based actions file editor at <A
+HREF="http://config.privoxy.org/show-status"
+TARGET="_top"
+>http://config.privoxy.org/show-status</A
+>.
+ The following table shows you, which of the most important features are enabled in each
+ configuration:
+ </P
+><P
+><DIV
+CLASS="TABLE"
+><A
+NAME="AEN320"><P
+><B
+>Table 1. Default Configurations</B
+></P
+><TABLE
+BORDER="1"
+CLASS="CALSTABLE"
+><THEAD
+><TR
+><TH
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>Feature</TH
+><TH
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>Cautious</TH
+><TH
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>Intermadiate</TH
+><TH
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>Advanced</TH
+></TR
+></THEAD
+><TBODY
+><TR
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>Ad-blocking by URL</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>yes</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>yes</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>yes</TD
+></TR
+><TR
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>Ad-filtering by size</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>yes</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>yes</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>yes</TD
+></TR
+><TR
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>GIF de-animation</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>no</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>yes</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>yes</TD
+></TR
+><TR
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>Referer forging</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>no</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>yes</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>yes</TD
+></TR
+><TR
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>Cookie handling</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>none</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>session-only</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>kill</TD
+></TR
+><TR
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>Pop-up killing</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>no</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>no</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>yes</TD
+></TR
+><TR
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>Fast redirects</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>no</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>no</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>yes</TD
+></TR
+><TR
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>HTML taming</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>yes</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>yes</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>yes</TD
+></TR
+><TR
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>JavaScript taming</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>yes</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>yes</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>yes</TD
+></TR
+><TR
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>Web-bug killing</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>yes</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>yes</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>yes</TD
+></TR
+><TR
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>Fun text replacements</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>no</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>no</TD
+><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>yes</TD
+></TR
+></TBODY
+></TABLE
+></DIV
+></P
+><P
+> Where the defaults are likely to break some sites, exceptions for
+ known popular <SPAN
+CLASS="QUOTE"
+>"problem"</SPAN
+> sites are included, but in
+ general, the more aggressive your default settings are, the more
+ exceptions you will have to make later. See the <A
+HREF="../user-manual/index.html"
+TARGET="_top"
+>user manual</A
+> for a more
+ deatiled discussion.</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="BROWSECONFIG"
->3.6. Why can I change the configuration with a
-browser? Does that not raise security issues?</A
-></H3
+NAME="BROWSECONFIG">3.8. Why can I change the configuration
+with a browser? Does that not raise security issues?</H3
><P
->What I don't understand, is how I can browser edit the config file as a
-regular user, while the whole <TT
+> It may seem strange that regular users can edit the config files with their
+ browsers, although the whole <TT
CLASS="FILENAME"
>/etc/privoxy</TT
> hierarchy
-belongs to the user <SPAN
+ belongs to the user <SPAN
CLASS="QUOTE"
>"privoxy"</SPAN
>, with only 644 permissions.
</P
><P
->When you use the browser-based editor, <SPAN
+> When you use the browser-based editor, <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>
-itself is writing to the config files. Because
-<SPAN
+ itself is writing to the config files. Because
+ <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> is running as the user <SPAN
CLASS="QUOTE"
>"privoxy"</SPAN
->, it can
-update the config files.
+>,
+ it can update the config files.
</P
><P
->If you don't like this, setting <SPAN
-CLASS="QUOTE"
->"enable-edit-actions 0"</SPAN
-> in the
-config file will disable the browser-based editor. If you're that paranoid,
-you should also consider setting <SPAN
-CLASS="QUOTE"
->"enable-remote-toggle 0"</SPAN
-> to prevent
-browser-based enabling/disabling of <SPAN
+> If you run <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
+> for multiple untrusted users (e.g. in
+ a LAN), you will probably want to turn the web-based editor and remote toggle
+ features off by setting <SPAN
+CLASS="QUOTE"
+>"<TT
+CLASS="LITERAL"
+><A
+HREF="../user-manual/config.html#ENABLE-EDIT-ACTIONS"
+TARGET="_top"
+>enable-edit-actions</A
+>
+ 0</TT
+>"</SPAN
+> and <SPAN
+CLASS="QUOTE"
+>"<TT
+CLASS="LITERAL"
+><A
+HREF="../user-manual/config.html#ENABLE-REMOTE-TOGGLE"
+TARGET="_top"
+>enable-remote-toggle</A
+>
+ 0</TT
+>"</SPAN
+> in the <A
+HREF="../user-manual/config.html"
+TARGET="_top"
+>main configuration file</A
>.
</P
><P
->Note that normally only local users can connect to
-<SPAN
+> Note that in the default configuration, only local users (i.e. those on
+ <SPAN
+CLASS="QUOTE"
+>"localhost"</SPAN
+>) can connect to <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
->, so this is not (normally) a security
-problem.
+>,
+ so this is not (normally) a security problem.
</P
></DIV
><DIV
><H3
CLASS="SECT2"
><A
-NAME="AEN283"
->3.7. What is <SPAN
-CLASS="QUOTE"
->"default.filter"</SPAN
->?</A
-></H3
+NAME="AEN413">3.9. What is the <TT
+CLASS="FILENAME"
+>default.filter</TT
+> file?</H3
><P
-> The <SPAN
-CLASS="QUOTE"
->"default.filter"</SPAN
-> file is where <SPAN
-CLASS="QUOTE"
->"filters"</SPAN
+> The <A
+HREF="../user-manual/filter-file.html"
+TARGET="_top"
+><TT
+CLASS="FILENAME"
+>default.filter</TT
+></A
>
- are defined, which are used to <SPAN
-CLASS="QUOTE"
->"filter"</SPAN
-> any
- web page content. By <SPAN
-CLASS="QUOTE"
->"filtering"</SPAN
-> we mean it can modify, remove,
- or change <I
+ file is where <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>filters</I
+></SPAN
+> are defined, which can be used to modify or
+ remove, web page content on the fly. This applies to <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>anything</I
-> on the page, including HTML tags, and
- JavaScript. Regular expressions are used to accomplish this, and operate
- on a line by line basis. This is potentially a very powerful feature, but
- requires some expertise. </P
+></SPAN
+>
+ in the page source, including HTML tags, and JavaScript. Regular expressions are used
+ to accomplish this. There are a number of pre-defined filters to deal with common
+ annoyances. The filters are only defined here, to invoke them, you need to use the
+ <A
+HREF="../user-manual/actions-file.html#FILTER"
+TARGET="_top"
+><TT
+CLASS="LITERAL"
+>filter</TT
+> action</A
+>.</P
><P
> If you are familiar with regular expressions, and HTML, you can look at
the provided <TT
CLASS="FILENAME"
>default.filter</TT
-> with a text editor and see
- some of things it can be used for.</P
+> with a text editor and define
+ your own filters. This is potentially a very powerful feature, but
+ requires some expertise. </P
><P
> Presently, there is no GUI editor option for this part of the configuration,
- but you can disable/enable various sections of the included default
- file with the <SPAN
-CLASS="QUOTE"
->"View & change the current configuration"</SPAN
-> from
- your browser. </P
+ but you can disable/enable the various pre-defined filters of the included
+ <TT
+CLASS="FILENAME"
+>default.filter</TT
+> file with the <A
+HREF="http://config.privoxy.org/show-status"
+TARGET="_top"
+>web-based actions file editor</A
+>.</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="AEN296"
->3.8. How can I set up <SPAN
+NAME="AEN428">3.10. How can I set up <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> to act as a proxy for my
- LAN?</A
-></H3
+ LAN?</H3
><P
> By default, <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> only responds to requests
- from localhost. To have it act as a server for a network, this needs to be
- changed in the main config file where the <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
+ from <TT
+CLASS="LITERAL"
+>127.0.0.1</TT
+> (localhost). To have it act as a server for
+ a network, this needs to be changed in the <A
+HREF="../user-manual/config.html"
+TARGET="_top"
+>main configuration file</A
+>. Look for
+ the <TT
+CLASS="LITERAL"
+><A
+HREF="../user-manual/config.html#LISTEN-ADDRESS"
+TARGET="_top"
+>listen-address</A
+></TT
>
- configuration is located. In that file is a <SPAN
-CLASS="QUOTE"
->"listen-address"</SPAN
->
- option. It may be commented out with a <SPAN
+ option, which may be commented out with a <SPAN
CLASS="QUOTE"
>"#"</SPAN
-> symbol. Make sure
- it is uncommented, and assign it the address of the LAN gateway interface,
- and port number to use:</P
+> symbol. Make sure
+ it is uncommented, and assign it the address of the LAN gateway interface,
+ and port number to use. Assuming your LAN address is 192.168.1.1 and you
+ wish to run <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> on port 8118, this line
+ schould look like:</P
><P
> <TABLE
BORDER="0"
>Privoxy</SPAN
>. Configure
all browsers on the network then to use this address and port number.</P
+><P
+> If you run <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> on a LAN with untrusted users,
+ we recommend that you double-check the <A
+HREF="../user-manual/config.html#ACCESS-CONTROL"
+TARGET="_top"
+>access control and security</A
+>
+ options!</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="AEN308"
->3.9. Instead of ads, now I get a checkerboard pattern. I don't want to see anything.</A
-></H3
+NAME="AEN446">3.11. Instead of ads, now I get a checkerboard pattern. I don't want to see anything.</H3
><P
-> This is a configuration option for images that
- <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> is stopping. You have the choice of a
- checkerboard pattern, a transparent 1x1 GIF image (aka <SPAN
+> The replacement for blocked images can be controlled with the <A
+HREF="../user-manual/actions-file.html#SET-IMAGE-BLOCKER"
+TARGET="_top"
+><TT
+CLASS="LITERAL"
+>set-image-blocker</TT
+>
+ action</A
+>. You have the choice of a checkerboard pattern, a transparent 1x1 GIF
+ image (aka <SPAN
CLASS="QUOTE"
>"blank"</SPAN
->),
- or a custom URL of your choice. Note that to fit this category, the URL must
- match both the <A
+>), or a redirect to a custom image of your choice.
+ Note that this choice only has effect for images which are blocked as images, i.e.
+ whose URLs match both a <TT
+CLASS="LITERAL"
+><A
HREF="../user-manual/actions-file.html#HANDLE-AS-IMAGE"
TARGET="_top"
-><SPAN
-CLASS="QUOTE"
->"+handle-as-image"</SPAN
-></A
+>handle-as-image</A
+></TT
>
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>and</I
->
- <A
+></SPAN
+> <TT
+CLASS="LITERAL"
+><A
HREF="../user-manual/actions-file.html#BLOCK"
TARGET="_top"
-><SPAN
-CLASS="QUOTE"
->"+block"</SPAN
-></A
-> actions.</P
+>block</A
+></TT
+> action.</P
><P
-> If you want to see nothing, then change the
- <A
+> If you want to see nothing, then change the <A
HREF="../user-manual/actions-file.html#SET-IMAGE-BLOCKER"
TARGET="_top"
-><SPAN
-CLASS="QUOTE"
->"+set-image-blocker"</SPAN
-></A
+><TT
+CLASS="LITERAL"
+>set-image-blocker</TT
>
- action to <SPAN
+ action</A
+> to <SPAN
CLASS="QUOTE"
->"+image-blocker{blank}"</SPAN
->. This can be done from the
- <SPAN
-CLASS="QUOTE"
->"View & change the current configuration"</SPAN
-> selection at <A
-HREF="http://p.p/"
+>"blank"</SPAN
+>. This can be done by editing the
+ <TT
+CLASS="FILENAME"
+>default.action</TT
+> file, or trough the <A
+HREF="http://config.privoxy.org/show-status"
TARGET="_top"
->http://p.p/</A
->. Or by hand editing the appropriate
- actions file. This will only effect what is defined as <SPAN
-CLASS="QUOTE"
->"images"</SPAN
->
- though. Also, some URLs that generate the bright red <SPAN
-CLASS="QUOTE"
->"Blocked"</SPAN
->
- banner, can be moved to the <SPAN
-CLASS="QUOTE"
->"+set-image-blocker"</SPAN
-> section for the
- same reason, but there are some limits and risks to this (see below).</P
+>web-based actions file editor</A
+>.</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="AEN327"
->3.10. Why would anybody want to see a checkerboard pattern?</A
-></H3
+NAME="AEN463">3.12. Why would anybody want to see a checkerboard pattern?</H3
><P
-> This can be helpful for troubleshooting problems. It might also be good
- for anyone new to <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> so that they can
- see if their favorite pages are displaying correctly, and
- <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> is not inadvertently removing something
- important.</P
+> Remember that <A
+HREF="general.html#WHATSANAD"
+>telling which image is an ad and which
+ isn't</A
+>, is mostly guesswork. While we hope that the standard configuration
+ is rather smart, it can and will make errors. The checkerboard image is visually
+ decent, but it shows you that and where images were blocked, which can be very
+ helpful in case some navigation aid or otherwise innocent image was
+ erraneously blocked. Some people might also enjoy seeing how many banners
+ they <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>don't</I
+></SPAN
+> have to see..</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="AEN332"
->3.11. I see large red banners on some pages that say
-<SPAN
-CLASS="QUOTE"
->"Blocked"</SPAN
->. Why and how do I get rid of this?</A
-></H3
+NAME="AEN468">3.13. I see some images being replaced by a text
+instead of the checkerboard image. Why and how do I get rid of this?</H3
><P
-> These are URLs that match something in one of
- <SPAN
-CLASS="APPLICATION"
->Privoxy's</SPAN
-> block actions
- (<A
-HREF="../user-manual/actions-file.html#BLOCK"
-TARGET="_top"
-><SPAN
-CLASS="QUOTE"
->"+block"</SPAN
-></A
->).
- It is meant to be a warning so that you know something has been blocked and
- an easy way for you to see why. These are handled differently than what has
- been defined explicitly as <SPAN
-CLASS="QUOTE"
->"images"</SPAN
-> (e.g. ads that are GIF image
- files). Depending on the URL itself, it is sometimes hard for
- <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> to really know whether there is indeed an
- ad image there or not. And there are limitations as to what
- <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> can do to <SPAN
-CLASS="QUOTE"
->"fool"</SPAN
-> the
- browser.</P
+> This happens when the banners are not embedded in the HTML code of the
+ page itself, but in separate HTML (sub)documents that are loaded into (i)frames
+ or (i)layers, and these external HTML documents are blocked. Being non-images
+ they get replaced by a substitute HTML page rather than a substitute image,
+ which wouldn't work out technically, since the browser expects and accepts
+ only HTML when it has requested an HTML document. </P
><P
-> For instance, if the ad is in a frame, then it is embedded in the separate
- HTML page used for the frame. In this case, you cannot just substitute an
- aribitrary image (like we would for a <SPAN
-CLASS="QUOTE"
->"blank"</SPAN
-> image), for an HTML
- page. The browser is expecting an HTML page, and that is what it must have
- for frames. Such situations can be a little trickier to deal with, and
- <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> may show the <SPAN
-CLASS="QUOTE"
->"Blocked"</SPAN
-> page,
- despite your best efforts.</P
+> The substitute page adapts to the available space and shows itself as a
+ miniature two-liner if loaded into small frames, or full-blown with a
+ large red "BLOCKED" banner if space allows.</P
><P
-> If you want these to be treated as if they were images, so that they can be
- made invisible, you can try moving the offending URL from the
- <SPAN
-CLASS="QUOTE"
->"+block"</SPAN
-> section to the <SPAN
-CLASS="QUOTE"
->"+imageblock"</SPAN
-> section of
- your actions file. Just be forewarned, if any URL is made
- <SPAN
+> If you prefer the banners to be blocked by images, you must see to it that
+ the HTML documents in which they are embedded are not blocked. Clicking
+ the <SPAN
CLASS="QUOTE"
->"invisible"</SPAN
->, you may not have any inkling that something has
- been removed from that page, or why. If this approach does not work, then you are
- probably dealing with a frame (or <SPAN
-CLASS="QUOTE"
->"ilayer"</SPAN
->), and the only thing
- that can go there is an HTML page of some sort.</P
-><P
-> To deal with this situation, you could modify the
- <SPAN
-CLASS="QUOTE"
->"<TT
-CLASS="FILENAME"
->block</TT
->"</SPAN
-> HTML template that is used by
- <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> to display this, and make it something
- more to your liking. Currently, there is no configuration option for this.
- You will have to modify, or create your own page, and use this to replace
- <TT
-CLASS="FILENAME"
->templates/blocked</TT
->, which is what
- <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> uses to display the <SPAN
-CLASS="QUOTE"
->"Blocked"</SPAN
->
- page.</P
-><P
-> Another way to deal with this is find why and where
- <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> is blocking the frame, and
- diable this. Then let the <SPAN
-CLASS="QUOTE"
->"+set-image-blocker"</SPAN
-> action
- handle the ad that is embedded in the frame's HTML page. </P
+>"See why"</SPAN
+> link offered in the substitute page will show
+ you which rule blocked the page. After changing the rule and un-blocking
+ the HTML documents, the browser will try to load the actual banner images
+ and the usual image blocking will (hopefully!) kick in.</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="ALLISEEISRED"
->3.12. I cannot see all of the <SPAN
-CLASS="QUOTE"
->"Blocked"</SPAN
-> page banner. Help.</A
-></H3
-><P
-> There is not enough available space to fit the entire Blocked page. Try right
- clicking on the visible portion, and select <SPAN
-CLASS="QUOTE"
->"Show Frame"</SPAN
->,
- or equivalent. This will usually allow you to see the entire Privoxy
- <SPAN
-CLASS="QUOTE"
->"Blocked"</SPAN
-> page, and from there you can see just what is being
- blocked, and why.</P
-><P
-> As of Privoxy 2.9.14, the Blocked banner page is re-sizeable, and tries
- to adjust to the allotted space. There may be occassions where there
- just isn't enough room to display much of anything useful though. </P
-></DIV
-><DIV
-CLASS="SECT2"
-><H3
-CLASS="SECT2"
-><A
-NAME="SRVANY"
->3.13. Can <SPAN
+NAME="SRVANY">3.14. Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> run as a service
-on Win2K/NT?</A
-></H3
+on Win2K/NT?</H3
><P
> Yes, it can run as a system service using <B
CLASS="COMMAND"
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> icon in the taskbar. You can have
+> icon (and its menu!) in the taskbar. You can have
one or the other, but not both at this time :( </P
><P
-> There is a pending feature request for this functionality. See
- thread: <A
+> There is a pending feature request for this functionality. See the discussion
+ at <A
HREF="http://sourceforge.net/tracker/?func=detail&atid=361118&aid=485617&group_id=11118"
TARGET="_top"
>http://sourceforge.net/tracker/?func=detail&atid=361118&aid=485617&group_id=11118</A
><H3
CLASS="SECT2"
><A
-NAME="OTHERPROXY"
->3.14. How can I make <SPAN
+NAME="OTHERPROXY">3.15. How can I make <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> work with other
proxies like <SPAN
CLASS="APPLICATION"
>Squid</SPAN
->?</A
-></H3
+>?</H3
><P
-> This can be done. See the <A
+> This can be done and is often useful to combine the benefits of
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> with those of a caching proxy.
+ See the <A
HREF="../user-manual/config.html#FORWARDING"
TARGET="_top"
+>forwarding chapter</A
+>
+ in the <A
+HREF="../user-manual/index.html"
+TARGET="_top"
>user manual</A
->,
- which describes how to do this.</P
+> which
+ describes how to do this.</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="TRANSPARENT"
->3.15. Can <SPAN
+NAME="TRANSPARENT">3.16. Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> run as a <SPAN
CLASS="QUOTE"
>"transparent"</SPAN
-> proxy?</A
-></H3
+> proxy?</H3
><P
> No, <SPAN
CLASS="APPLICATION"
> Chaining <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> with another proxy that has
+> behind 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
+>forwarding chapter</A
+>
+ in the <A
+HREF="../user-manual/index.html"
+TARGET="_top"
+>user manual</A
+>. As
+ a transparent proxy to be used for chaining we recommend Transproxy
+ (<A
HREF="http://www.transproxy.nlc.net.au/"
TARGET="_top"
>http://www.transproxy.nlc.net.au/</A
->.</P
+>).</P
></DIV
></DIV
><DIV
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="installation.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="misc.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>Contacting the developers, Bug Reporting and Feature Requests</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Privoxy Frequently Asked Questions"
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="trouble.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="copyright.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="CONTACT"
->6. Contacting the developers, Bug Reporting and Feature Requests</A
-></H1
+NAME="CONTACT">6. Contacting the developers, Bug Reporting and Feature Requests</H1
><P
> We value your feedback. In fact, we rely on it to improve
<SPAN
><H2
CLASS="SECT2"
><A
-NAME="CONTACT-SUPPORT"
->6.1. Get Support</A
-></H2
+NAME="CONTACT-SUPPORT">6.1. Get Support</H2
><P
> For casual users, our support forum at
<A
><H2
CLASS="SECT2"
><A
-NAME="CONTACT-BUGS"
->6.2. Report Bugs</A
-></H2
+NAME="CONTACT-BUGS">6.2. Report Bugs</H2
><P
-> Please report all bugs <I
+> Please report all bugs <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>only</I
+></SPAN
> through our
bug tracker:
<A
>. </P
><P
> Before doing so, please make sure that the bug has not already been submitted
- and observe the aditional hints at the top of the <A
+ and observe the additional hints at the top of the <A
HREF="http://sourceforge.net/tracker/?func=add&group_id=11118&atid=111118"
TARGET="_top"
>submit
><H2
CLASS="SECT2"
><A
-NAME="CONTACT-FEATURE"
->6.3. Request New Features</A
-></H2
+NAME="CONTACT-FEATURE">6.3. Request New Features</H2
><P
> You are welcome to submit ideas on new features or other proposals
for improvement through our feature request tracker at
><H2
CLASS="SECT2"
><A
-NAME="CONTACT-ADS"
->6.4. Report Ads or Other Actions-Related Problems</A
-></H2
+NAME="CONTACT-ADS">6.4. Report Ads or Other Actions-Related Problems</H2
><P
> Please send feedback on ads that slipped through, innocent images that were blocked,
and any other problems relating to the <TT
><H2
CLASS="SECT2"
><A
-NAME="CONTACT-OTHER"
->6.5. Other</A
-></H2
+NAME="CONTACT-OTHER">6.5. Other</H2
><P
>For any other issues, feel free to use the mailing lists. Technically interested users
and people who wish to contribute to the project are also welcome on the developers list!
You can find an overview of all <SPAN
CLASS="APPLICATION"
->Prixoxy</SPAN
+>Privoxy</SPAN
>-related mailing lists,
including list archives, at:
<A
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="trouble.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="copyright.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>Privoxy Copyright, License and History</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Privoxy Frequently Asked Questions"
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="contact.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
><H1
CLASS="SECT1"
><A
-NAME="COPYRIGHT"
->7. Privoxy Copyright, License and History</A
-></H1
+NAME="COPYRIGHT">7. Privoxy Copyright, License and History</H1
><P
> Copyright © 2001, 2002 by Privoxy Developers <TT
CLASS="EMAIL"
><H2
CLASS="SECT2"
><A
-NAME="AEN666"
->7.1. License</A
-></H2
+NAME="AEN790">7.1. License</H2
><P
> <SPAN
CLASS="APPLICATION"
><H2
CLASS="SECT2"
><A
-NAME="AEN682"
->7.2. History</A
-></H2
+NAME="AEN806">7.2. History</H2
><P
> In the beginning, there was the
<A
CLASS="APPLICATION"
>Privoxy</SPAN
>, whose first
- stable release, 3.0, is due in May 2002.</P
+ stable release, 3.0, is due in June 2002.</P
></DIV
></DIV
><DIV
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="contact.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
>General Information</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Privoxy Frequently Asked Questions"
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="index.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="installation.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="GENERAL"
->1. General Information</A
-></H1
+NAME="GENERAL">1. General Information</H1
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="NEWJB"
->1.1. What is this new version of <SPAN
+NAME="NEWJB">1.1. What is this new version of <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
->?</A
-></H3
+>?</H3
><P
-> The original <SPAN
-CLASS="APPLICATION"
+> In the beginning, there was the
+ <A
+HREF="http://www.junkbusters.com/ijb.html"
+TARGET="_top"
><SPAN
-CLASS="TRADEMARK"
+CLASS="APPLICATION"
+>Internet Junkbuster</SPAN
+></A
+>,
+ by Anonymous Coders and <A
+HREF="http://www.junkbusters.com/"
+TARGET="_top"
+>Junkbusters
+ Corporation</A
+>. It saved many users a lot of pain in the early days of
+ web advertising and user tracking.</P
+><P
+> But the web, its protocols and standards, and with it, the techniques for
+ forcing users to consume ads, give up autonomy over their browsing, and
+ for spying on them, kept evolving. Unfortunately, the <SPAN
+CLASS="APPLICATION"
>Internet
- Junkbuster</SPAN
->™</SPAN
-> (tm) is a copyrighted product of <A
+ Junkbuster</SPAN
+> did not. Version 2.0.2, published in 1998, was
+ (and is) the last official
+ <A
+HREF="http://www.junkbusters.com/ijbdist.html#release"
+TARGET="_top"
+>release</A
+>
+ available from <A
HREF="http://www.junkbusters.com"
TARGET="_top"
>Junkbusters Corporation</A
>.
- Development of this effort stopped some time ago as of version 2.0.2. Stefan
- Waldherr started the ijbswa project on <A
-HREF="http://sourceforge.net/projects/ijbswa/"
+ Fortunately, it had been released under the GNU
+ <A
+HREF="http://www.gnu.org/licenses/gpl.html"
TARGET="_top"
->Sourceforge</A
-> 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 <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
->.
- </P
+> GPL</A
+>, which allowed further
+ development by others.</P
><P
-> <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> has evolved from the
- <SPAN
-CLASS="APPLICATION"
->Junkbuster 2.0.2</SPAN
-> code base, and has advanced
- significantly at this point.
- </P
+> So Stefan Waldherr started maintaining an
+ <A
+HREF="http://www.waldherr.org/junkbuster/"
+TARGET="_top"
+>improved version of the
+ software</A
+>, to which eventually a number of people contributed patches.
+ It could already replace banners with a transparent image, and had a first
+ version of pop-up killing, but it was still very closely based on the
+ original, with all its limitations, such as the lack of HTTP/1.1 support,
+ flexible per-site configuration, or content modification. The last release
+ from this effort was version 2.0.2-10, published in 2000.</P
+><P
+> Then, some
+ <A
+HREF="http://www.privoxy.org/user-manual/copyright.html#AUTHORS"
+TARGET="_top"
+>developers</A
+>
+ picked up the thread, and started turning the software inside out, upside down,
+ and then reassembled it, adding many
+ <A
+HREF="http://www.privoxy.org/user-manual/introduction.html#FEATURES"
+TARGET="_top"
+>new
+ features</A
+> along the way.</P
><P
->
- Please see the <A
-HREF="copyright.html"
->History section</A
-> for more
- information on the history of <SPAN
-CLASS="APPLICATION"
->Junkbuster</SPAN
-> and
- <SPAN
+> The result of this is <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
->.
- </P
+>, whose first
+ stable release, 3.0, is due in June 2002.</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="AEN39"
->1.2. Why <SPAN
+NAME="AEN45">1.2. Why <SPAN
CLASS="QUOTE"
>"Privoxy"</SPAN
->? Why a name change at all?</A
-></H3
+>? Why a name change at all?</H3
><P
> <SPAN
CLASS="APPLICATION"
> is the
<SPAN
CLASS="QUOTE"
->"<I
+>"<SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>Privacy Enhancing Proxy</I
+></SPAN
>"</SPAN
->.</P
+>. Also, its content
+ modification and junk suppression allow you to browse your
+ <SPAN
+CLASS="QUOTE"
+>"<SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>private</I
+></SPAN
+> edition"</SPAN
+> of the web.</P
><P
-> There are potential legal complications from the continued use of the
+> <A
+HREF="http://junkbusters.com/"
+TARGET="_top"
+>Junkbusters Corporation</A
+>
+ continues to offer their original version of the <SPAN
+CLASS="APPLICATION"
+>Internet
+ Junkbuster</SPAN
+>, so publishing our
+ <SPAN
+CLASS="APPLICATION"
+> Junkbuster</SPAN
+>-derived software under the same name
+ led to confusion.</P
+><P
+> There are also potential legal complications from the continued use of the
<SPAN
CLASS="APPLICATION"
>Junkbuster</SPAN
> name, which is a registered trademark of
<A
-HREF="http://junkbusters.com"
+HREF="http://junkbusters.com/"
TARGET="_top"
>Junkbusters Corporation</A
>.
- And thus they <SPAN
-CLASS="QUOTE"
->"own"</SPAN
-> the rights to the name.
- (There are, however, no objections from Junkbusters Corporation to the
+ There are, however, no objections from Junkbusters Corporation to the
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> project itself, and they, in fact, still
- share our ideals and goals.)</P
+ share our ideals and goals.</P
><P
> The developers also believed that there are so many changes from the original
code, that it was time to make a clean break from the past and make
><H3
CLASS="SECT2"
><A
-NAME="DIFFERS"
->1.3. How does <SPAN
+NAME="DIFFERS">1.3. How does <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> differ
from the old <SPAN
CLASS="APPLICATION"
>Junkbuster?</SPAN
-></A
></H3
><P
-> <SPAN
+> <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> picks up where
- <SPAN
+ <SPAN
CLASS="APPLICATION"
>Junkbuster</SPAN
> left off. All the old features remain.
- The new <SPAN
+ The new <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> still blocks ads and banners,
- still manages cookies, and still helps protect your privacy. But, these are
- all enhanced, and many new features have been added, all in the same vein.
+ still manages cookies, and still helps protect your privacy. But, these are
+ all enhanced, and many new features have been added, all in the same vein.
</P
><P
-> The configuration has changed significantly as well. This is something that
- users will notice right off the bat if you are upgrading from
- <SPAN
+> The configuration has changed significantly as well. This is something that
+ users will notice right off the bat if upgrading from
+ <SPAN
CLASS="APPLICATION"
>Junkbuster</SPAN
> 2.0.x. The <SPAN
CLASS="QUOTE"
>"blocklist"</SPAN
>
- file does not exist any more. This is replaced by <SPAN
+ <SPAN
+CLASS="QUOTE"
+>"cookielist"</SPAN
+>, <SPAN
+CLASS="QUOTE"
+>"imagelist"</SPAN
+> and much more has been
+ combined into the <SPAN
CLASS="QUOTE"
>"actions"</SPAN
->
- files, such as <TT
-CLASS="FILENAME"
->default.actions</TT
->. This is where most of
- the per site configuration is now.
- </P
-></DIV
-><DIV
-CLASS="SECT2"
-><H3
-CLASS="SECT2"
-><A
-NAME="FEATURES"
->1.4. What are some of the new features?</A
-></H3
+> files, with a completely different
+ syntax. See the <A
+HREF="../user-manual/upgradersnote.html"
+TARGET="_top"
+>note to
+ upgraders</A
+> for details.</P
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>'s new features include:</P
><P
> <P
></P
><H3
CLASS="SECT2"
><A
-NAME="PROXYMORON"
->1.5. What is a <SPAN
+NAME="PROXYMORON">1.4. What is a <SPAN
CLASS="QUOTE"
>"proxy"</SPAN
>? How does
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> work?</A
-></H3
+> work?</H3
><P
-> When you connect to a web site with <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
->,
- you are really connecting to your locally running version of
- <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
->. <SPAN
+> A web proxy is a service, based on a software such as <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
->
- intercepts your requests for the web page, and relays that to the
- <SPAN
-CLASS="QUOTE"
->"real"</SPAN
-> web site. The web site sends the HTTP data stream
- back to <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
->, where
- <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> can work its magic before it
- relays this data back to your web browser.
+>,
+ that clients (i.e. browsers) can use instead of connecting directly to the web
+ servers on the Internet. The clients then ask the proxy to fetch the objects
+ they need (web pages, images, movies etc) on their behalf, and when the proxy
+ has done so, it hands the results back to the client.
</P
><P
-> Since <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> sits between you and the
- WWW, it is in a position to intercept and completely manage all web traffic and
- HTTP content before it gets to your browser.
- <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> uses various programming methods to do
- this, all of which is under your control via the various configuration
- files and options.
+> There are many reasons to use web proxies, such as security (firewalling),
+ efficiency (caching) and others, and there are just as many different proxies
+ to accommodate those needs.
</P
><P
-> There are many kinds of proxies. <SPAN
+> <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> best
- fits the <SPAN
-CLASS="QUOTE"
->"filtering proxy"</SPAN
-> category.
+> is a proxy that is solely focused on privacy
+ protection and junk elimination. Sitting between your browser(s) and the Internet,
+ it is in a perfect position to filter outbound personal information that your
+ browser is leaking, as well as inbound junk. It uses a variety of techniques to do
+ this, all of which are under your control via the various configuration
+ files and options.
</P
></DIV
><DIV
><H3
CLASS="SECT2"
><A
-NAME="AEN117"
->1.6. How does <SPAN
+NAME="WHATSANAD">1.5. How does <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> know what is
-an ad, and what is not?</A
-></H3
+an ad, and what is not?</H3
><P
> <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> processes all the raw content of every
- web page. So it reads everything on each page. It then compares this to the
- rules as set up in the configuration files, and looks for any matches to
- these rules. <SPAN
+>'s approach to blocking ads is twofold:</P
+><P
+> First, there are certain patterns in the <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>locations</I
+></SPAN
+> (URLs)
+ of banner images. This applies to both the path (you wouldn't guess how many
+ web sites serve their banners from a directory called <SPAN
+CLASS="QUOTE"
+>"banners"</SPAN
+>!)
+ and the host (blocking the big banner hosting services like doublecklick.net
+ already helps a lot). <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> makes heavy use of
- <SPAN
-CLASS="QUOTE"
->"regular expressions"</SPAN
->. (If you are not familiar with regular
- expressions, it is explained briefly in <A
-HREF="../user-manual/appendix.html"
+> takes advantage of this
+ fact by using <A
+HREF="../user-manual/actions-file.html#AF-PATTERNS"
TARGET="_top"
->the user manual</A
->.) Regular
- expressions facilitate matching of one text string against another, using
- wildcards to build complex patterns. So <SPAN
+>URL
+ patterns</A
+> to sort out and block the requests for banners.</P
+><P
+> Second, banners tend to come in certain <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>sizes</I
+></SPAN
+>. But you
+ can't tell the size of an image by its URL without downloading it, and if you
+ do, it's too late to save bandwidth. Therefore, <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>
- will typically look for URLs and other content that match certain key words
- and expressions as defined in the configuration files. For instance a URL
- that contains <SPAN
-CLASS="QUOTE"
->"/banners"</SPAN
->, has a high probability of containing
- ad banners, and thus would be a prime candidate to have a matching rule.</P
+ also inspects the HTML sources of web pages while they are loaded, and replaces
+ references to images with standard banner sizes by dummy references, so that
+ your browser doesn't request them anymore in the first place.</P
><P
-> So <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> will look for these kinds of obvious
- looking culprits. And also, will use lists of known organizations that
- specialize in ads. Again, using complex patterns to match as many potential
- combinations as possible since there tend to be many, many variations used by
- advertisers, and new ones are being introduced all the time.</P
+> Both of this involves a certain amount of guesswork and is, of course, freely
+ configurable.</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="AEN129"
->1.7. Can <SPAN
+NAME="AEN136">1.6. Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> make mistakes?
-This does not sound very scientific.</A
-></H3
+This does not sound very scientific.</H3
><P
-> Actually, it's a black art ;-) And yes, it is always possible to have a broad rule
- accidentally block something by mistake. There is a good chance you may run
- into such a situation at some point. It is tricky writing rules to cover
- every conceivable possibility, and not occasionally get false positives.</P
+> Actually, it's a black art ;-) And yes, it is always possible to have a broad
+ rule accidentally block or change something by mistake. There is a good chance
+ you may run into such a situation at some point. It is tricky writing rules to
+ cover every conceivable possibility, and not occasionally get false positives.</P
><P
> But this should not be a big concern since the
<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#AEN589"
+HREF="trouble.html#AEN707"
>See the Troubleshooting section below</A
>.)</P
></DIV
><H3
CLASS="SECT2"
><A
-NAME="BROWSERS2"
->1.8. My browser does the same things as
+NAME="BROWSERS2">1.7. My browser does the same things as
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> at all?</A
-></H3
+> at all?</H3
><P
-> Modern browsers do indeed have <I
+> Modern browsers do indeed have <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>some</I
+></SPAN
> of the same
functionality as <SPAN
CLASS="APPLICATION"
have a LAN with multiple computers. This way all the configuration
is in one place, and you don't have to maintain a similar configuration
for possibly many browsers.
-
</P
></DIV
><DIV
><H3
CLASS="SECT2"
><A
-NAME="LICENSE"
->1.9. Is there is a license or fee? What about a
-warranty? Registration?</A
-></H3
+NAME="LICENSE">1.8. Is there is a license or fee? What about a
+warranty? Registration?</H3
><P
> <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> is licensed under the GNU General Public
- License (GPL). It is free to use, copy, modify or distribute as you wish
- under the terms of this license. Please see the <A
+> is licensed under the <A
+HREF="http://www.gnu.org/copyleft/gpl.html"
+TARGET="_top"
+>GNU General Public License (GPL)</A
+>.
+ It is free to use, copy, modify or distribute as you wish under the terms of this
+ license. Please see the <A
HREF="copyright.html"
>Copyright</A
-> section for more information on the
- license and copyright. Or the <TT
+> section for more
+ information on the license and copyright. Or the <TT
CLASS="FILENAME"
>LICENSE</TT
> file
that should be included.
-
- </P
+ </P
><P
-> There is no warranty of any kind, expressed, implied or otherwise. That is
- something that would cost real money ;-) There is no registration either.
+> There is <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>no warranty</I
+></SPAN
+> of any kind, expressed, implied or otherwise.
+ That is something that would cost real money ;-) There is no registration either.
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> really is <I
+> really is <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>free</I
+></SPAN
>
in every respect!
-
</P
></DIV
><DIV
><H3
CLASS="SECT2"
><A
-NAME="JOINTEAM"
->1.10. I would like to help you, what do I do?</A
-></H3
+NAME="JOINTEAM">1.9. I would like to help you, what do I do?</H3
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="JOINTEAM-MONEY">1.9.1. Money Money Money</H4
+><P
+> We, of course, welcome donations and could use money for domain registering,
+ buying software to test <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> with, and, of course,
+ for regular world-wide get-togethers (hahaha). If you enjoy the software and feel
+ like helping us with a donation, just <A
+HREF="mailto:developers@privoxy.org"
+TARGET="_top"
+>drop us a note</A
+>.</P
+></DIV
><DIV
CLASS="SECT3"
><H4
CLASS="SECT3"
><A
-NAME="JOINTEAM-MONEY"
->1.10.1. Money Money Money</A
-></H4
+NAME="JOINTEAM-SOFTWARE">1.9.2. Software</H4
><P
-> We, of course, welcome donations and use the money for domain registering,
- regular world-wide get-togethers (hahaha). Anyway, we'll soon describe the
- process how to donate money to the team.</P
+> If you are a vendor of a web-related software like a browser, web server
+ or proxy, and would like us to ensure that <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ runs smoothly with your product, you might consider supplying us with a
+ copy or license. We can't, however, guarantee that we will fix all potential
+ compatibility issues as a result.</P
></DIV
><DIV
CLASS="SECT3"
><H4
CLASS="SECT3"
><A
-NAME="JOINTEAM-WORK"
->1.10.2. You want to work with us?</A
-></H4
+NAME="JOINTEAM-WORK">1.9.3. You want to work with us?</H4
><P
> Well, helping the team is always a good idea. We welcome new developers,
- RPM gurus or documentation makers. Simply get an account on sourceforge.net
- and mail your id to the developer mailing list. Then read the
- section Quickstart in the <A
-HREF="../developer-manual/quickstart.html"
+ packaging gurus or documentation writers. Simply <A
+HREF="https://sourceforge.net/account/register.php"
TARGET="_top"
-> Developer's Manual</A
+>get an account on SourceForge.net</A
+>
+ and mail your id to the <A
+HREF="mailto:developers@privoxy.org"
+TARGET="_top"
+>developers
+ mailing list</A
+>. Then read the <A
+HREF="../developer-manual/index.html"
+TARGET="_top"
+>Developer's Manual</A
>.</P
><P
-> Once we have added you to the team, you'll have write access to the CVS
- repository, and together we'll find a suitable task for you.</P
+> Once we have added you to the team, you'll have write access to the <A
+HREF="http://sourceforge.net/cvs/?group_id=11118"
+TARGET="_top"
+>CVS repository</A
+>, and
+ together we'll find a suitable task for you.</P
></DIV
></DIV
></DIV
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="installation.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>Privoxy Frequently Asked Questions</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="NEXT"
TITLE="General Information"
><H1
CLASS="TITLE"
><A
-NAME="AEN2"
->Privoxy Frequently Asked Questions</A
-></H1
+NAME="AEN2">Privoxy Frequently Asked Questions</H1
><P
CLASS="PUBDATE"
> <SUB
><BR></P
><P
CLASS="PUBDATE"
->$Id: faq.sgml,v 1.59 2002/05/15 04:03:30 hal9 Exp $<BR></P
+>$Id: faq.sgml,v 1.61.2.1 2002/06/05 23:10:43 hal9 Exp $<BR></P
><DIV
><DIV
CLASS="ABSTRACT"
><A
-NAME="AEN9"
-></A
-><P
+NAME="AEN9"><P
></P
><P
-> This FAQ gives users and developers alike answers to frequently asked
- questions about <A
-HREF="http://www.privoxy.org"
+> This FAQ gives quick answers to frequently asked questions about
+ <A
+HREF="http://www.privoxy.org/"
TARGET="_top"
>Privoxy</A
>
- .
+ . It can't and doesn't replace the
+ <A
+HREF="../user-manual/index.html"
+TARGET="_top"
+><I
+CLASS="CITETITLE"
+>User Manual</I
+></A
+>.
</P
><P
> <SPAN
TARGET="_top"
>http://www.privoxy.org/faq/</A
>.
- Please see the Contact section if you want to contact the developers.
+ Please see the <A
+HREF="contact.html"
+>Contact section</A
+> if you want to
+ contact the developers.
</P
><P
></P
></DT
><DT
>1.2. <A
-HREF="general.html#AEN39"
+HREF="general.html#AEN45"
>Why <SPAN
CLASS="QUOTE"
>"Privoxy"</SPAN
></DT
><DT
>1.4. <A
-HREF="general.html#FEATURES"
->What are some of the new features?</A
-></DT
-><DT
->1.5. <A
HREF="general.html#PROXYMORON"
>What is a <SPAN
CLASS="QUOTE"
> work?</A
></DT
><DT
->1.6. <A
-HREF="general.html#AEN117"
+>1.5. <A
+HREF="general.html#WHATSANAD"
>How does <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
an ad, and what is not?</A
></DT
><DT
->1.7. <A
-HREF="general.html#AEN129"
+>1.6. <A
+HREF="general.html#AEN136"
>Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
This does not sound very scientific.</A
></DT
><DT
->1.8. <A
+>1.7. <A
HREF="general.html#BROWSERS2"
>My browser does the same things as
<SPAN
> at all?</A
></DT
><DT
->1.9. <A
+>1.8. <A
HREF="general.html#LICENSE"
>Is there is a license or fee? What about a
warranty? Registration?</A
></DT
><DT
->1.10. <A
+>1.9. <A
HREF="general.html#JOINTEAM"
>I would like to help you, what do I do?</A
></DT
><DD
><DL
><DT
->1.10.1. <A
+>1.9.1. <A
HREF="general.html#JOINTEAM-MONEY"
>Money Money Money</A
></DT
><DT
->1.10.2. <A
+>1.9.2. <A
+HREF="general.html#JOINTEAM-SOFTWARE"
+>Software</A
+></DT
+><DT
+>1.9.3. <A
HREF="general.html#JOINTEAM-WORK"
>You want to work with us?</A
></DT
></DT
><DT
>2.4. <A
-HREF="installation.html#AEN191"
+HREF="installation.html#AEN209"
>I just installed <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></DT
><DT
>2.6. <A
-HREF="installation.html#AEN216"
+HREF="installation.html#AEN237"
>I just installed <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></DT
><DT
>3.2. <A
-HREF="configuration.html#AEN234"
+HREF="configuration.html#AEN258"
>What is an <SPAN
CLASS="QUOTE"
>"actions"</SPAN
></DT
><DT
>3.4. <A
-HREF="configuration.html#AEN249"
+HREF="configuration.html#AEN277"
>How are actions files configured? What is the easiest
way to do this?</A
></DT
><DT
>3.5. <A
-HREF="configuration.html#AEN257"
+HREF="configuration.html#AEN285"
>There are several different <SPAN
CLASS="QUOTE"
>"actions"</SPAN
></DT
><DT
>3.6. <A
-HREF="configuration.html#BROWSECONFIG"
->Why can I change the configuration with a
-browser? Does that not raise security issues?</A
+HREF="configuration.html#YAHOO"
+>How can I make my Yahoo/Hotmail/GMX account work?</A
></DT
><DT
>3.7. <A
-HREF="configuration.html#AEN283"
->What is <SPAN
+HREF="configuration.html#CONFIGFILES"
+>What's the difference between the
+<SPAN
CLASS="QUOTE"
->"default.filter"</SPAN
->?</A
+>"Cautious"</SPAN
+>, <SPAN
+CLASS="QUOTE"
+>"Medium"</SPAN
+> and <SPAN
+CLASS="QUOTE"
+>"Advenced"</SPAN
+> defaults?</A
></DT
><DT
>3.8. <A
-HREF="configuration.html#AEN296"
->How can I set up <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> to act as a proxy for my
- LAN?</A
+HREF="configuration.html#BROWSECONFIG"
+>Why can I change the configuration
+with a browser? Does that not raise security issues?</A
></DT
><DT
>3.9. <A
-HREF="configuration.html#AEN308"
->Instead of ads, now I get a checkerboard pattern. I don't want to see anything.</A
+HREF="configuration.html#AEN413"
+>What is the <TT
+CLASS="FILENAME"
+>default.filter</TT
+> file?</A
></DT
><DT
>3.10. <A
-HREF="configuration.html#AEN327"
->Why would anybody want to see a checkerboard pattern?</A
+HREF="configuration.html#AEN428"
+>How can I set up <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> to act as a proxy for my
+ LAN?</A
></DT
><DT
>3.11. <A
-HREF="configuration.html#AEN332"
->I see large red banners on some pages that say
-<SPAN
-CLASS="QUOTE"
->"Blocked"</SPAN
->. Why and how do I get rid of this?</A
+HREF="configuration.html#AEN446"
+>Instead of ads, now I get a checkerboard pattern. I don't want to see anything.</A
></DT
><DT
>3.12. <A
-HREF="configuration.html#ALLISEEISRED"
->I cannot see all of the <SPAN
-CLASS="QUOTE"
->"Blocked"</SPAN
-> page banner. Help.</A
+HREF="configuration.html#AEN463"
+>Why would anybody want to see a checkerboard pattern?</A
></DT
><DT
>3.13. <A
+HREF="configuration.html#AEN468"
+>I see some images being replaced by a text
+instead of the checkerboard image. Why and how do I get rid of this?</A
+></DT
+><DT
+>3.14. <A
HREF="configuration.html#SRVANY"
>Can <SPAN
CLASS="APPLICATION"
on Win2K/NT?</A
></DT
><DT
->3.14. <A
+>3.15. <A
HREF="configuration.html#OTHERPROXY"
>How can I make <SPAN
CLASS="APPLICATION"
>?</A
></DT
><DT
->3.15. <A
+>3.16. <A
HREF="configuration.html#TRANSPARENT"
>Can <SPAN
CLASS="APPLICATION"
><DL
><DT
>4.1. <A
-HREF="misc.html#AEN396"
+HREF="misc.html#AEN504"
>How much does <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
><DT
>4.3. <A
HREF="misc.html#CONFIGURL"
->What is the "http://p.p/"?</A
+>What are "http://config.privoxy.org/" and
+"http://p.p/"?</A
></DT
><DT
>4.4. <A
></DT
><DT
>4.7. <A
-HREF="misc.html#AEN447"
+HREF="misc.html#AEN563"
>Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></DT
><DT
>4.8. <A
-HREF="misc.html#AEN458"
->Might some things break because header information is
-being altered?</A
+HREF="misc.html#AEN574"
+>Might some things break because header information or
+content is being altered?</A
></DT
><DT
>4.9. <A
-HREF="misc.html#AEN468"
+HREF="misc.html#AEN585"
>Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></DT
><DT
>4.10. <A
-HREF="misc.html#AEN476"
+HREF="misc.html#AEN595"
>What about as a firewall? Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></DT
><DT
>4.11. <A
-HREF="misc.html#AEN481"
->The <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> logo that replaces ads is very blocky
-and ugly looking. Can't a better font be used?</A
+HREF="misc.html#AEN601"
+>I have large empty spaces / a checkerboard pattern now where
+ads used to be. Why?</A
></DT
><DT
>4.12. <A
-HREF="misc.html#AEN490"
->I have large empty spaces now where ads used to be.
-Why?</A
-></DT
-><DT
->4.13. <A
-HREF="misc.html#AEN493"
+HREF="misc.html#AEN606"
>How can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> filter Secure (HTTPS) URLs?</A
></DT
><DT
->4.14. <A
-HREF="misc.html#AEN500"
+>4.13. <A
+HREF="misc.html#AEN617"
><SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
secure is it? Do I need to take any special precautions?</A
></DT
><DT
->4.15. <A
+>4.14. <A
HREF="misc.html#TURNOFF"
>How can I temporarily disable <SPAN
CLASS="APPLICATION"
>?</A
></DT
><DT
->4.16. <A
+>4.15. <A
HREF="misc.html#SEEALSO"
>Where can I find more information about <SPAN
CLASS="APPLICATION"
><DL
><DT
>5.1. <A
-HREF="trouble.html#AEN570"
+HREF="trouble.html#AEN688"
>I just upgraded and am getting <SPAN
CLASS="QUOTE"
>"connection refused"</SPAN
></DT
><DT
>5.2. <A
-HREF="trouble.html#AEN583"
+HREF="trouble.html#AEN701"
>I just added a new rule, but the steenkin ad is
still getting through. How?</A
></DT
><DT
>5.3. <A
-HREF="trouble.html#AEN589"
+HREF="trouble.html#AEN707"
>One of my favorite sites does not work with <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>.
What can I do?</A
></DT
+><DT
+>5.4. <A
+HREF="trouble.html#DUN"
+>After installing <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>, I have to log in
+every time I start IE. What gives?</A
+></DT
></DL
></DD
><DT
><DL
><DT
>7.1. <A
-HREF="copyright.html#AEN666"
+HREF="copyright.html#AEN790"
>License</A
></DT
><DT
>7.2. <A
-HREF="copyright.html#AEN682"
+HREF="copyright.html#AEN806"
>History</A
></DT
></DL
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="general.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>Installation</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Privoxy Frequently Asked Questions"
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="general.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="configuration.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="INSTALLATION"
->2. Installation</A
-></H1
+NAME="INSTALLATION">2. Installation</H1
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="WHICHBROWSERS"
->2.1. Which browsers are supported by <SPAN
+NAME="WHICHBROWSERS">2.1. Which browsers are supported by <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
->?</A
-></H3
+>?</H3
><P
-> Any browser that can be configured to use a <SPAN
-CLASS="QUOTE"
->"proxy"</SPAN
->, which
+> Any browser that can be configured to use a proxy, which
should be virtually all browsers. Direct browser support is not necessary
since <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> runs as a separate application and
- just exchanges standard HTML data with your browser, just like a web server
+ talks to the browser in the standardized HTTP protocol, just like a web server
does.</P
></DIV
><DIV
><H3
CLASS="SECT2"
><A
-NAME="WHICHOS"
->2.2. Which operating systems are supported?</A
-></H3
+NAME="WHICHOS">2.2. Which operating systems are supported?</H3
><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
+ Windows(95, 98, ME, 2000, XP), Linux (RedHat, SuSE, Debian, Conectiva),
+ Mac OSX, OS/2, AmigaOS, BeOS, FreeBSD, NetBSD, Solaris, and many more
+ flavors of Unix.</P
><P
> But any operating system that runs TCP/IP, can conceivably take advantage of
<SPAN
CLASS="QUOTE"
>"gateway"</SPAN
> needs to be running one of the above
- operating systems. </P
+ operating systems.</P
><P
-> Source code is freely available, so porting to other operating systems,
+> Source code is freely available, so porting to other operating systems
is always a possibility.</P
></DIV
><DIV
><H3
CLASS="SECT2"
><A
-NAME="NEWINSTALL"
->2.3. Can I install
+NAME="NEWINSTALL">2.3. Can I install
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> over <SPAN
CLASS="APPLICATION"
>Junkbuster</SPAN
->?</A
-></H3
+>?</H3
><P
-> We recommend you uninstall <SPAN
+> We recommend you un-install <SPAN
CLASS="APPLICATION"
>Junkbuster</SPAN
>
first to minimize conflicts and confusion. You may want to
save your old configuration files for future reference. The configuration
- is substantially changed.
- </P
-><P
-> See the <A
+ files and syntax have substantially changed, so you will need to manually
+ port your old patterns. See the <A
+HREF="../user-manual/upgradersnote.html"
+TARGET="_top"
+>note
+ to upgraders</A
+> and <A
+HREF="../user-manual/installation.html"
+TARGET="_top"
+>installation
+ chapter</A
+> in the <A
HREF="../user-manual/index.html"
TARGET="_top"
->user-manual</A
-> for
- platform specific installation instructions.
+>user manual</A
+>
+ for details.
</P
><P
-> Note: Some installers may automatically uninstall
+> Note: Some installers may automatically un-install
<SPAN
CLASS="APPLICATION"
>Junkbuster</SPAN
><H3
CLASS="SECT2"
><A
-NAME="AEN191"
->2.4. I just installed <SPAN
+NAME="AEN209">2.4. I just installed <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>. Is there anything
-special I have to do now?</A
-></H3
+special I have to do now?</H3
><P
> All browsers must be told to use <SPAN
CLASS="APPLICATION"
>
as a proxy by specifying the correct proxy address and port number
in the appropriate configuration area for the browser. See below.
- Also, you should flush your browser's memory and disk cache to get rid of any
- cached items. </P
+ You should also flush your browser's memory and disk cache to get rid of any
+ cached junk items. </P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="LOCALHOST"
->2.5. What is the proxy address of <SPAN
+NAME="LOCALHOST">2.5. What is the proxy address of <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
->?</A
-></H3
+>?</H3
><P
> If you set up the <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> to run on
the computer you browse from (rather than your ISP's server or some
- networked computer on a LAN), the proxy will be on <SPAN
+ networked computer on a LAN), the proxy will be on <TT
+CLASS="LITERAL"
+>127.0.0.1</TT
+>
+ (sometimes referred to as <SPAN
CLASS="QUOTE"
>"localhost"</SPAN
->
- (which is the special name used by every computer on the Internet to refer
+>,
+ which is the special name used by every computer on the Internet to refer
to itself) and the port will be 8118 (unless you have <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> to run on a different port with the
- <I
-CLASS="EMPHASIS"
->listen-address</I
+>
+ to run on a different port with the <A
+HREF="../user-manual/config.html#LISTEN-ADDRESS"
+TARGET="_top"
+>listen-address</A
> config option).
</P
><P
the word <SPAN
CLASS="QUOTE"
>"localhost"</SPAN
-> in the boxes next to <SPAN
+> or the IP address <SPAN
CLASS="QUOTE"
->"HTTP"</SPAN
+>"127.0.0.1"</SPAN
>
- and <SPAN
+ in the boxes next to <SPAN
+CLASS="QUOTE"
+>"HTTP"</SPAN
+> and <SPAN
CLASS="QUOTE"
>"Secure"</SPAN
-> (HTTPS) and then the number <SPAN
+> (HTTPS) and
+ then the number <SPAN
CLASS="QUOTE"
>"8118"</SPAN
->
- for <SPAN
+> for <SPAN
CLASS="QUOTE"
>"port"</SPAN
->. This tells your browser to send all web
- requests to <SPAN
+>.
+ This tells your browser to send all web requests to <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> instead of directly to the
- Internet.
+>
+ instead of directly to the Internet.
</P
><P
> <SPAN
>Privoxy</SPAN
>
is running, or the equivalent hostname. Port assignment would be
- same as above.
+ same as above. Note that <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> doesn't
+ listen on any LAN interfaces by default.
</P
><P
> <SPAN
><H3
CLASS="SECT2"
><A
-NAME="AEN216"
->2.6. I just installed <SPAN
+NAME="AEN237">2.6. I just installed <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>, and nothing is happening.
-All the ads are there. What's wrong?</A
-></H3
+All the ads are there. What's wrong?</H3
><P
> Did you configure your browser to use <SPAN
CLASS="APPLICATION"
> is running, and your browser
is correctly configured by entering the special URL:
<A
-HREF="http://p.p/"
+HREF="http://config.privoxy.org/"
TARGET="_top"
->http://p.p/</A
->. This should give you
- a banner that says <SPAN
+>http://config.privoxy.org/</A
+>.
+ This should take you to a page titled <SPAN
CLASS="QUOTE"
->"This is Privoxy"</SPAN
-> and
+>"This is Privoxy.."</SPAN
+> with
access to <SPAN
CLASS="APPLICATION"
>Privoxy's</SPAN
-> internal configuration.
- If you see this, then you are good to go. If not, the browser or
+> internal configuration.
+ If you see this, then you are good to go. If you receive a page saying
<SPAN
+CLASS="QUOTE"
+>"Privoxy is not running"</SPAN
+>, then the browser is not set up to use
+ your <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> are not set up correctly. </P
+> installation.
+ If you receive anything else (probably nothing at all), it could either
+ be that the browser is not set up correctly, or that
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is not running at all. Check the <A
+HREF="../user-manual/config.html#LOGFILE"
+TARGET="_top"
+>log file</A
+>.
+ </P
></DIV
></DIV
><DIV
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="general.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="configuration.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>Miscellaneous</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Privoxy Frequently Asked Questions"
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="configuration.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="trouble.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="MISC"
->4. Miscellaneous</A
-></H1
+NAME="MISC">4. Miscellaneous</H1
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="AEN396"
->4.1. How much does <SPAN
+NAME="AEN504">4.1. How much does <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> slow my browsing down? This
-has to add extra time to browsing.</A
-></H3
+has to add extra time to browsing.</H3
><P
> It should not slow you down any in real terms, and may actually help
speed things up since ads, banners and other junk are not being displayed.
> <SPAN
CLASS="QUOTE"
>"Filtering"</SPAN
-> via the <TT
-CLASS="FILENAME"
->filterfile</TT
->
- mechanism may cause a perceived slowdown, since the entire page is buffered
+> content via the <TT
+CLASS="LITERAL"
+><A
+HREF="../user-manual/actions-file.html#FILTER"
+TARGET="_top"
+>filter</A
+></TT
+> or
+ <TT
+CLASS="LITERAL"
+><A
+HREF="../user-manual/actions-file.html#DEANIMATE-GIFS"
+TARGET="_top"
+>deanimate-gifs</A
+></TT
+>
+ actions may cause a perceived slowdown, since the entire document needs to be buffered
before displaying. See below.</P
></DIV
><DIV
><H3
CLASS="SECT2"
><A
-NAME="LOADINGTIMES"
->4.2. I noticed considerable
-delays in page requests compared to the old Junkbuster. What's wrong?</A
-></H3
-><P
->The entire page content must be loaded into memory in order for the filtering
-mechanism to work, and nothing is sent to the browser during this time. The
-loading time does not really change in real numbers, but the feeling is
-different, because most browsers are able to start rendering incomplete
-content, giving the user a feeling of "it works".
- </P
+NAME="LOADINGTIMES">4.2. I noticed considerable
+delays in page requests compared to the old Junkbuster. What's wrong?</H3
><P
-> To modify the content of a page (i.e. make frames resizeable again, etc.) and
- not just replace ads, <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> needs to download
- the entire page first, do its content magic and then send the page to the
- browser.</P
+> If you use any <TT
+CLASS="LITERAL"
+><A
+HREF="../user-manual/actions-file.html#FILTER"
+TARGET="_top"
+>filter</A
+></TT
+> action,
+ such as filtering banners by size, web-bugs etc, or the <TT
+CLASS="LITERAL"
+><A
+HREF="../user-manual/actions-file.html#DEANIMATE-GIFS"
+TARGET="_top"
+>deanimate-gifs</A
+></TT
+>
+ action, the entire document must be loaded into memory in order for the filtering
+ mechanism to work, and nothing is sent to the browser during this time.</P
+><P
+> The loading time does not really change in real numbers, but the feeling is
+ different, because most browsers are able to start rendering incomplete
+ content, giving the user a feeling of "it works". This effect is especially
+ noticeable on slow dialup connections.
+ </P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="CONFIGURL"
->4.3. What is the "http://p.p/"?</A
-></H3
+NAME="CONFIGURL">4.3. What are "http://config.privoxy.org/" and
+"http://p.p/"?</H3
><P
->Since <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> sits between your web browser and the Internet, it can be
-programmed to handle certain pages specially.</P
-><P
-> With recent versions of <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> (version 2.9.x and
- greater), you can get some information about
- <SPAN
+> <A
+HREF="http://config.privoxy.org/"
+TARGET="_top"
+>http://config.privoxy.org/</A
+> is the
+ address of <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> and change some settings by going to
+>'s built-in user interface, and
<A
HREF="http://p.p/"
TARGET="_top"
>http://p.p/</A
-> or, equivalently, <A
+> is a shortcut for it.</P
+><P
+> Since <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> sits between your web browser and the Internet,
+ it can simply intercept requests for these addresses and answer them with its built-in
+ <SPAN
+CLASS="QUOTE"
+>"web server"</SPAN
+>.</P
+><P
+> This also makes for a good test for your browser configuration: If entering the
+ URL <A
HREF="http://config.privoxy.org/"
TARGET="_top"
>http://config.privoxy.org/</A
-> (Note
- that p.p is far easier to type but may not work in some configurations. With
- the name change to <SPAN
+>
+ takes you to a page saying <SPAN
+CLASS="QUOTE"
+>"This is Privoxy.."</SPAN
+>, everything is OK.
+ If you get a page saying <SPAN
+CLASS="QUOTE"
+>"Privoxy is not working"</SPAN
+> instead, then
+ your browser didn't use <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
->, this is changed from
- the previous http://i.j.b/ and earlier 2.9.x versions).</P
-><P
-> These pages are <I
+> for the request,
+ hence it could not be intercepted, and you have accessed the <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
->not</I
-> forwarded to a server on the
- Internet - instead they are handled by a special web server which is built in to
- <SPAN
+>real</I
+></SPAN
+>
+ web site at config.privoxy.org.</P
+><P
+> With recent versions of <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
+> (version 2.9.x and
+ later), the user interface features information on the run time status, the
+ configuration, and even a built-in editor for the <A
+HREF="../user-manual/actions-file.html"
+TARGET="_top"
+>actions files</A
>.</P
><P
-> If you are not running <SPAN
+> Note that the built-in URLs from earlier versions of <SPAN
CLASS="APPLICATION"
->Privoxy</SPAN
->, then <A
-HREF="http://p.p/"
-TARGET="_top"
->http://p.p/</A
-> will fail, and <A
-HREF="http://config.privoxy.org/"
-TARGET="_top"
->http://config.privoxy.org/</A
-> will
- return a web page telling you you're not running
- <SPAN
+>Junkbuster</SPAN
+>
+ / <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
->.</P
-><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.15).</P
+>, http://example.com/show-proxy-args and http://i.j.b/,
+ are no longer supported. If you still use such an old version, you should really consider
+ upgrading to 2.9.15.</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="BLOCKLIST"
->4.4. Do you still maintain the blocklists?</A
-></H3
+NAME="BLOCKLIST">4.4. Do you still maintain the blocklists?</H3
><P
-> No, not by this name. The format of the blocklists has changed
- significantly in versions 2.9.x and later. This functionality
- is done by the <SPAN
-CLASS="QUOTE"
->"actions"</SPAN
-> file now. See next question ...</P
+> No. The patterns for blocking now reside (among other things) in the <A
+HREF="../user-manual/actions-file.html"
+TARGET="_top"
+>actions files</A
+>, which are
+ actively maintained instead. See next question ...</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="NEWADS"
->4.5. How can I submit new ads?</A
-></H3
+NAME="NEWADS">4.5. How can I submit new ads?</H3
><P
->Please see the <A
+>Yes, absolutely! Please see the <A
HREF="contact.html"
>Contact section</A
->.</P
-><P
-> This process does not work with earlier versions of <SPAN
+> for
+how to do that. Please note that you (technically) need the latest
+<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
->
- or <SPAN
-CLASS="APPLICATION"
->Junkbuster</SPAN
->.</P
+> version for this to work.</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="IP"
->4.6. How can I hide my IP address?</A
-></H3
+NAME="IP">4.6. How can I hide my IP address?</H3
><P
-> You cannot hide your IP address with <SPAN
+> If you run both the browser and the proxy locally, you cannot hide your IP
+ address with <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> or any other software, since
-the server needs to know your IP address to send the answers back to you.</P
+> or any other software. The
+ server needs to know your IP address to send the answers back to you. </P
><P
->Fortunately there are many publicly usable anonymous proxies out there, which
-solve the problem by providing a further level of indirection between you and
-the web server, shared by many people and thus letting your requests "drown"
-in white noise of unrelated requests as far as user tracking is concerned.</P
+> Fortunately there are many publicly usable anonymous proxies out there, which
+ solve the problem by providing a further level of indirection between you and
+ the web server, shared by many people, and thus letting your requests "drown"
+ in white noise of unrelated requests as far as user tracking is concerned.</P
><P
->Most of them will, however, log your IP address and make it available to the
-authorities in case you abuse that anonymity for criminal purposes. In fact
-you can't even rule out that some of them only exist to *collect* information
-on (those suspicious) people with a more than average preference for privacy.</P
+> Most of them will, however, log your IP address and make it available to the
+ authorities in case you abuse that anonymity for criminal purposes. In fact
+ you can't even rule out that some of them only exist to *collect* information
+ on (those suspicious) people with a more than average preference for privacy.</P
><P
->You can find a list of anonymous public proxies at <A
+> You can find a list of anonymous public proxies at <A
HREF="http://www.multiproxy.org/anon_list.htm"
TARGET="_top"
>multiproxy.org</A
> and many
-more through Google.</P
+ more through Google. A particularly interesting project is the JAP service
+ offered by the Technical University of Dresden (<A
+HREF="http://anon.inf.tu-dresden.de/index_en.html"
+TARGET="_top"
+>http://anon.inf.tu-dresden.de/index_en.html</A
+>.</P
+><P
+> There is, however, even in the single-machine case the possibility to make the
+ server believe that your machine is in fact a shared proxy serving a whole big
+ LAN, and we are looking into that.</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="AEN447"
->4.7. Can <SPAN
+NAME="AEN563">4.7. Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> guarantee I am anonymous?</A
-></H3
+> guarantee I am anonymous?</H3
><P
> No. Your chances of remaining anonymous are greatly improved, but unless you
are an expert on Internet security it would be safest to assume that
CLASS="APPLICATION"
>Privoxy</SPAN
> can remove various information about you,
- and allows <I
+ and allows <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>you</I
+></SPAN
> more freedom to decide which sites
you can trust, and what details you want to reveal. But it's still possible
that web sites can find out who you are. Here's one way this can happen.</P
><H3
CLASS="SECT2"
><A
-NAME="AEN458"
->4.8. Might some things break because header information is
-being altered?</A
-></H3
+NAME="AEN574">4.8. Might some things break because header information or
+content is being altered?</H3
><P
> Definitely. More and more sites use HTTP header content to decide what to
display and how to display it. There is many ways that this can be handled,
><P
> <SPAN
CLASS="QUOTE"
->"USER AGENT"</SPAN
+>"User-Agent"</SPAN
> in particular is often used in this way to identify
- the browser, and adjust content accordingly. Changing this now is not
- recommended, since so many sites do look for this. You may get undesirable
- results by changing this.</P
+ the browser, and adjust content accordingly. Changing this now (at least not
+ further than removing the OS information) is not recommended, since so many
+ sites do look for it. You may get undesirable results by changing this.</P
><P
> For instance, different browsers use different encodings of Russian and Czech
characters, certain web servers convert pages on-the-fly according to the
something closer. And then some page access counters work by looking at the
<SPAN
CLASS="QUOTE"
->"REFERER"</SPAN
+>"Referer"</SPAN
> header; they may fail or break if unavailable. The
weather maps of Intellicast have been blocked by their server when no
<SPAN
CLASS="QUOTE"
->"REFERER"</SPAN
-> or cookie is provided, is another example. There are
- many, many other ways things can go wrong when trying to fool a web server.</P
+>"Referer"</SPAN
+> or cookie is provided, is another example. (But you
+ can forge both headers without giving information away). There are
+ many other ways things can go wrong when trying to fool a web server.</P
+><P
+> Similar thoughts apply to modifying JavaScript, and, to a lesser degree,
+ HTML elements.</P
><P
> If you have problems with a site, you will have to adjust your configuration
accordingly. Cookies are probably the most likely adjustment that may
><H3
CLASS="SECT2"
><A
-NAME="AEN468"
->4.9. Can <SPAN
+NAME="AEN585">4.9. Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> act as a <SPAN
CLASS="QUOTE"
>"caching"</SPAN
> proxy to
-speed up web browsing?</A
-></H3
+speed up web browsing?</H3
><P
> No, it does not have this ability at all. You want something like
<A
with other kinds of proxies like <SPAN
CLASS="APPLICATION"
>Squid</SPAN
->.</P
-></DIV
-><DIV
-CLASS="SECT2"
-><H3
-CLASS="SECT2"
-><A
-NAME="AEN476"
->4.10. What about as a firewall? Can <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> protect me?</A
-></H3
-><P
-> Not in the way you mean, or in the way a true firewall can, or a proxy that
- has this specific capability. <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> can help
- protect your privacy, but not really protect you from intrusion attempts.</P
+>.
+ See the <A
+HREF="../user-manual/config.html#FORWARDING"
+TARGET="_top"
+>forwarding
+ chapter</A
+> in the <A
+HREF="../user-manual/index.html"
+TARGET="_top"
+>user
+ manual</A
+> for details.</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="AEN481"
->4.11. The <SPAN
+NAME="AEN595">4.10. What about as a firewall? Can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> logo that replaces ads is very blocky
-and ugly looking. Can't a better font be used?</A
-></H3
+> protect me?</H3
><P
-> This is not a font problem. The logo is an image that is created by
+> Not in the way you mean, or in the way a true firewall can.
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> on the fly. So as to not waste
- memory, the image is rather small. The blockiness comes when the
- image is scaled to fill a largish area. There is not much to be done
- about this, other than to use one of the other
- <SPAN
-CLASS="QUOTE"
->"imageblock"</SPAN
-> directives: <I
+> can help protect your privacy, but not
+ protect you from intrusion attempts. It is, of course, perfectly possible
+ and recommended to use <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
->pattern</I
->,
- <I
-CLASS="EMPHASIS"
->blank</I
->, or a URL of your choosing.</P
-><P
->Given the above problem, we have decided to remove the logo option entirely
-[as of v2.9.13].</P
+>both</I
+></SPAN
+>.</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="AEN490"
->4.12. I have large empty spaces now where ads used to be.
-Why?</A
-></H3
-><P
-> It would be easy enough to just eliminate this space altogether, rather than
- fill it with blank space. But, this would create problems with many pages
- that use the overall size of the ad to help organize the page layout and
- position the various components of the page where they were intended to be.
- It is best left this way.</P
+NAME="AEN601">4.11. I have large empty spaces / a checkerboard pattern now where
+ads used to be. Why?</H3
+><P
+> It would be technically possible eliminate the banners in a way that frees
+ their screen estate in many cases, by doing all banner blocking with filters,
+ i.e. eliminating the whole image references from the HTML pages instead
+ of letting them stay in, and blocking the resulting requests for the
+ banners themselves.</P
+><P
+> But this would consume considerable CPU resources, would likely destroy
+ the layout of many web pages which rely on the banners consuming a certain
+ amount of screen space, and would fail in other cases, where the screen space
+ is reserved e.g. by tables anyway. Also, making the banners disappear without
+ a visual trace complicates troubleshooting.</P
+><P
+> So we won't support this in the default configuration, but you can of course
+ define appropriate filters yourself.</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="AEN493"
->4.13. How can <SPAN
+NAME="AEN606">4.12. How can <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> filter Secure (HTTPS) URLs?</A
-></H3
+> filter Secure (HTTPS) URLs?</H3
><P
-> This is a limitation since HTTPS transactions are encrypted SSL sessions
- between your browser and the secure site, and are meant to be reliably
- <I
+> Since secure HTTP connections are encrypted SSL sessions between your browser
+ and the secure site, and are meant to be reliably <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>secure</I
-> and private. This means that all cookies and HTTP
- header information are also encrypted from the time they leave your browser,
- to the site, and vice versa. <SPAN
+></SPAN
+>,
+ there is little that <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> does not
- try to unencrypt this information, so it just passes through as is.
+> can do but hand the raw
+ gibberish data though from one end to the other unprocessed.</P
+><P
+> The only exception to this is blocking by host patterns, as the client needs
+ to tell <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> the name of the remote server,
+ so that <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> can establish the connection.
+ If that name matches a host-only pattern, the connection will be blocked.</P
+><P
+> As far as ad blocking is concerned, this is less of a restriction than it may
+ seem, since ad sources are often identifiable by the host name, and often
+ the banners to be placed in an encrypted page come unencrypted nonetheless
+ for efficiency reasons, which exposes them to the full power of
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> can still catch images and ads that
- are embedded in the SSL stream though.</P
+>'s ad blocking.</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="AEN500"
->4.14. <SPAN
+NAME="AEN617">4.13. <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> runs as a <SPAN
CLASS="QUOTE"
>"server"</SPAN
>. How
-secure is it? Do I need to take any special precautions?</A
-></H3
+secure is it? Do I need to take any special precautions?</H3
><P
-> There are no known exploits that might effect
+> There are no known exploits that might affect
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
from <SPAN
CLASS="QUOTE"
>"localhost"</SPAN
->. The server aspect of
+> only. The server aspect of
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> config file. All LAN hosts can then use
- this as their proxy address in the browser proxy configuration. In this way,
- <SPAN
+> configuration file and check all <A
+HREF="../user-manual/config.html#ACCESS-CONTROL"
+TARGET="_top"
+>access control and security
+ options</A
+>. All LAN hosts can then use this as their proxy address
+ in the browser proxy configuration, but <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> will not listen on any external ports.
- Of course, a firewall is always good too. Better safe than sorry.</P
+>
+ will not listen on any external interfaces. ACLs can be defined in addition,
+ and using a firewall is always good too. Better safe than sorry.</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="TURNOFF"
->4.15. How can I temporarily disable <SPAN
+NAME="TURNOFF">4.14. How can I temporarily disable <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
->?</A
-></H3
+>?</H3
><P
> The easiest way is to access <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> with your
- browser by using the special URL: <A
-HREF="http://p.p/"
+ browser by using the remote toggle URL: <A
+HREF="http://config.privoxy.org/toggle"
TARGET="_top"
->http://p.p/</A
->
- and select "Toggle Privoxy on or off" from that page. </P
+>http://config.privoxy.org/toggle</A
+>.</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="SEEALSO"
->4.16. Where can I find more information about <SPAN
+NAME="SEEALSO">4.15. Where can I find more information about <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>
-and related issues?</A
-></H3
+and related issues?</H3
><P
> Other references and sites of interest to <SPAN
CLASS="APPLICATION"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="configuration.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="trouble.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>Troubleshooting</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Privoxy Frequently Asked Questions"
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="misc.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="contact.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="TROUBLE"
->5. Troubleshooting</A
-></H1
+NAME="TROUBLE">5. Troubleshooting</H1
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="AEN570"
->5.1. I just upgraded and am getting <SPAN
+NAME="AEN688">5.1. I just upgraded and am getting <SPAN
CLASS="QUOTE"
>"connection refused"</SPAN
>
-with every web page?</A
-></H3
+with every web page?</H3
><P
> Either <SPAN
CLASS="APPLICATION"
default. This has been changed to port 8118 now, due to a conflict
with NAS (Network Audio Service), which uses port 8000. If you haven't,
you need to change your browser to the new port number, or alternately
- change <SPAN
-CLASS="APPLICATION"
->Privoxy's</SPAN
-> <SPAN
-CLASS="QUOTE"
->"listen-address"</SPAN
+ change the <A
+HREF="../user-manual/config.html#LISTEN-ADDRESS"
+TARGET="_top"
+><TT
+CLASS="LITERAL"
+>listen-address</TT
>
- setting in the <TT
-CLASS="FILENAME"
->config</TT
-> file used to start
- <SPAN
+ option</A
+> in <SPAN
CLASS="APPLICATION"
->Privoxy</SPAN
+>Privoxy's</SPAN
+> <A
+HREF="../user-manual/config.html"
+TARGET="_top"
+>main configuration file</A
>.</P
></DIV
><DIV
><H3
CLASS="SECT2"
><A
-NAME="AEN583"
->5.2. I just added a new rule, but the steenkin ad is
-still getting through. How?</A
-></H3
+NAME="AEN701">5.2. I just added a new rule, but the steenkin ad is
+still getting through. How?</H3
><P
> If the ad had been displayed before you added its URL, it will probably be
held in the browser's cache for some time, so it will be displayed without
TARGET="_top"
>http://config.privoxy.org/show-url-info</A
>
- and see if any actions match your new rule.</P
+ and see if it really matches your new rule.</P
></DIV
><DIV
CLASS="SECT2"
><H3
CLASS="SECT2"
><A
-NAME="AEN589"
->5.3. One of my favorite sites does not work with <SPAN
+NAME="AEN707">5.3. One of my favorite sites does not work with <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>.
-What can I do?</A
-></H3
+What can I do?</H3
><P
> First verify that it is indeed a <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> problem,
- by disabling <SPAN
+ by toggling off <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> filtering and blocking.
- Go to <A
-HREF="http://p.p/"
+> through <A
+HREF="http://config.privoxy.org/toggle"
TARGET="_top"
->http://p.p/</A
-> and click on
- <SPAN
-CLASS="QUOTE"
->"Toggle Privoxy On or Off"</SPAN
->, then disable it. Now try that
- page again. It's probably a good idea to flush the browser cache as well
- with <TT
-CLASS="LITERAL"
->Shift+Reload</TT
-> to flush caches.</P
+>http://config.privoxy.org/toggle</A
+>,
+ and then shift-reloading the problem page (i.e. holding down the shift key
+ while clicking reload. Alternatively, flush your browser's disk and memory
+ caches).</P
><P
-> If still a problem, go to <SPAN
-CLASS="QUOTE"
->"Show which actions apply to a URL and
- why"</SPAN
-> from <A
-HREF="http://p.p/"
+> If still a problem, go to <A
+HREF="http://config.privoxy.org/show-url-info"
TARGET="_top"
->http://p.p/</A
-> and paste
- the full URL of the page in question into the prompt. See which actions are
- being applied to the URL. Now, armed with this information, go to
- <SPAN
-CLASS="QUOTE"
->"View & change the current configuration"</SPAN
->. Here you should see various sections that have
- various <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> features disabled for specific
- sites. Most disabled <SPAN
-CLASS="QUOTE"
->"actions"</SPAN
-> will have a <SPAN
-CLASS="QUOTE"
->"-"</SPAN
-> (minus
- sign) in front of them. Some aliases are used just to disable other actions,
- e.g. <SPAN
-CLASS="QUOTE"
->"shop"</SPAN
-> and <SPAN
-CLASS="QUOTE"
->"fragile"</SPAN
->, and won't necessarily
- use a <SPAN
-CLASS="QUOTE"
->"+"</SPAN
-> or <SPAN
-CLASS="QUOTE"
->"-"</SPAN
-> sign. Add your problem page
- URL to one of these sections that looks like it is disabling the feature that
- is causing the problem. Rember to flush your browser's caches when making
- such changes! As a last resort, try <SPAN
+>http://config.privoxy.org/show-url-info</A
+>
+ and paste the full URL of the page in question into the prompt. See which actions
+ are being applied to the URL, and which matches in which actions files are
+ responsible for that. Now, armed with this information, go to <A
+HREF="http://config.privoxy.org/show-status"
+TARGET="_top"
+>http://config.privoxy.org/show-status</A
+>
+ and select the appropriate actions files for editing.</P
+><P
+> You can now either look for a section which disables the actions that
+ you suspect to cause the problem and add a pattern for your site there,
+ or make up a completely new section for your site. In any case, the recommended
+ way is to disable only the prime suspect, reload the problem page, and only
+ if the problem persists, disable more and more actions until you have
+ identified the culprit. You may or may not want to turn the other actions
+ on again. Remember to flush your browser's caches in between any such changes!</P
+><P
+> Alternately, if you are comfortable with a text editor, you can accomplish
+ the same thing by editing the appropriate actions file. Probably the easiest
+ way to deal with such problems when editing by hand is to add your
+ site to a <TT
+CLASS="LITERAL"
+>{ fragile }</TT
+> section in <TT
+CLASS="FILENAME"
+>user.action</TT
+>,
+ which is an alias that turns off most <SPAN
CLASS="QUOTE"
->"fragile"</SPAN
-> which
- disables most actions. Now re-try the page. There might be some trial and
- error involved. This is discussed in more detail in the <A
+>"dangerous"</SPAN
+>
+ actions, but is also likely to turn off more actions then needed, and thus lower
+ your privacy and protection more than necessary, </P
+><P
+> Troubleshooting actions is discussed in more detail in the <A
HREF="../user-manual/appendix.html#ACTIONSANAT"
TARGET="_top"
>user-manual appendix</A
->. </P
+>.
+ There is also an <A
+HREF="../user-manual/actions-file.html#ACT-EXAMPLES"
+TARGET="_top"
+>actions tutorial</A
+>.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="DUN">5.4. After installing <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>, I have to log in
+every time I start IE. What gives?</H2
><P
-> Alternately, if you are comfortable with a text editor, you can accomplish
- the same thing by editing the appropriate <SPAN
-CLASS="QUOTE"
->"actions"</SPAN
-> file.</P
+> This is a quirk that effects the installation of
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>, in conjunction with Internet Explorer and
+ Internet Connection Sharing on Windows 2000 and Windows XP. The symptoms may
+ appear to be corrupted or invalid DUN settings, or passwords.</P
+><P
+> When setting up an NT based Windows system with
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> you may find that things do not seem to be
+ doing what you expect. When you set your system up you will probably have set
+ up Internet Connection Sharing (ICS) with Dial up Networking (DUN) when
+ logged in with administrator privileges. You will probably have made this DUN
+ connection available to other accounts that you may have set-up on your
+ system. E.g. Mum or Dad sets up the system and makes accounts suitably
+ configured for the kids.</P
+><P
+> When setting up <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> in this environment you
+ will have to alter the proxy set-up of Internet Explorer (IE) for the
+ specific DUN connection on which you wish to use
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>. When you do this the ICS DUN set-up
+ becomes user specific. In this instance you will see no difference if you
+ change the DUN connection under the account used to set-up the connection.
+ However when you do this from another user you will notice that the DUN
+ connection changes to make available to "Me only". You will also find that
+ you have to store the password under each different user!</P
+><P
+> The reason for this is that each user's set-up for IE is user specific. Each
+ set-up DUN connection and each LAN connection in IE store the settings for
+ each user individually. As such this enforces individual configurations
+ rather than common ones. Hence the first time you use a DUN connection after
+ re-booting your system it may not perform as you expect, and prompt you for
+ the password. Just set and save the password again and all should be OK.</P
+><P
+>[Thanks to Ray Griffith for this submission.]</P
></DIV
></DIV
><DIV
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="misc.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="contact.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
<HTML
><HEAD
><TITLE
->Privoxy - Homepage</TITLE
+>Privoxy - Home Page</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><META
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><META
NAME="KEYWORD"
CONTENT="privoxy"><META
NAME="KEYWORD"
><H1
CLASS="TITLE"
><A
-NAME="AEN2"
->Privoxy - Homepage</A
-></H1
+NAME="AEN2">Privoxy - Home Page</H1
><DIV
><DIV
CLASS="ABSTRACT"
><A
-NAME="AEN28"
-></A
-><P
+NAME="AEN28"><P
></P
><P
>
Junkbuster</SPAN
> (tm).</P
><P
-> The most recent release is 2.9.15 (beta).
+> The most recent version is 2.9.15 (beta). (Odd numbered versions
+ are available only through CVS.)
</P
><P
></P
><HR></DIV
><DIV
CLASS="SECT1"
-><H2
+><H3
CLASS="SECT1"
><A
-NAME="DOWNLOAD"
->Download</A
-></H2
+NAME="DOWNLOAD">Download</H3
><P
> <P
></P
></DIV
><DIV
CLASS="SECT1"
-><HR><H2
+><HR><H3
CLASS="SECT1"
><A
-NAME="DOCS"
->Documentation</A
-></H2
+NAME="DOCS">Documentation</H3
><P
> <P
></P
></DIV
><DIV
CLASS="SECT1"
-><HR><H2
+><HR><H3
CLASS="SECT1"
><A
-NAME="MOREINFO"
->More information</A
-></H2
+NAME="MOREINFO">More information</H3
><P
> <P
></P
></LI
><LI
><P
-> <A
-HREF="team/index.html"
+>
+
+ <A
+HREF="http://privoxy.org/team/index.html"
TARGET="_top"
>Pictures of the Privoxy Team</A
>
></DIV
><DIV
CLASS="SECT1"
-><HR><H1
+><HR><H2
CLASS="SECT1"
><A
-NAME="AEN91"
-></A
-></H1
+NAME="AEN91"></H2
><P
><DIV
CLASS="INFORMALTABLE"
><A
-NAME="AEN94"
-></A
-><P
+NAME="AEN94"><P
></P
><TABLE
BORDER="0"
<HTML><HEAD><TITLE>Manpage of PRIVOXY</TITLE>
<LINK REL="STYLESHEET" TYPE="text/css" HREF="../p_doc.css"></HEAD><BODY>
<H1>PRIVOXY</H1>
-Section: (1)<BR>Updated: 14 May 2002<BR><A HREF="#index">Index</A>
+Section: (1)<BR>Updated: 04 June 2002<BR><A HREF="#index">Index</A>
<HR>
<A NAME="lbAB"> </A>
<H2>SYNOPSIS</H2>
<P>
-<B>privoxy</B> [<B>--help</B>] [<B>--version</B>] [<B>--no-daemon</B>] [<B>--pidfile </B><I>pidfile</I><B></B>] [<B>--user </B><I>user[.group]</I><B></B>] [<B></B><I>configfile</I><B></B>] <B>(UNIX)</B>
+<B>privoxy</B> [<B>--help</B> ] [<B>--version</B> ] [<B>--no-daemon</B> ] [<B>--pidfile </B><I>pidfile</I><B></B> ] [<B>--user </B><I>user[.group]</I><B></B> ] [<B></B><I>configfile</I><B></B> ]<B>(UNIX)</B>
<P>
<P>
-<B>privoxy.exe</B> [<B></B><I>configfile</I><B></B>] <B>(Windows)</B>
+<B>privoxy.exe</B> [<B></B><I>configfile</I><B></B> ]<B>(Windows)</B>
<P>
<A NAME="lbAD"> </A>
<H2>OPTIONS</H2>
<P>
The name and number of configuration files has changed from previous
-versions, and is subject to change as development progresses. In fact, the
-configuration itself is changed and much more sophisticated. See the
-user-manual for a
-complete explanation of all configuration options and general usage.
+versions, and is subject to change as development
+progresses. In fact, the configuration itself is changed and much more
+sophisticated. See the user-manual for a complete
+explanation of all configuration options and general usage, and notes for
+upgrading from <B>Junkbuster</B> and earlier <B>Privoxy</B>
+versions.
<P>
The actions list (ad blocks, etc) can also be configured with your
web browser at <A HREF="http://config.privoxy.org/.">http://config.privoxy.org/.</A>
<B>Privoxy's</B> configuration parameters can also be viewed at
the same page. In addition, <B>Privoxy</B> can be toggled on/off.
-This is an internal page.
+This is an internal page, and does not require Internet access.
<A NAME="lbAH"> </A>
<H2>SAMPLE CONFIGURATION</H2>
all features are well tested.
<P>
-Please see the <I>user-manual</I> on how to contact the
+Please see the <I>User Manual</I> on how to contact the
developers for feature requests, reporting problems, and other questions.
<A NAME="lbAL"> </A>
<H2>SEE ALSO</H2>
<P>
<A HREF="http://www.privoxy.org/,">http://www.privoxy.org/,</A>
-The <B>Privoxy</B> Home page.
+the <B>Privoxy</B> Home page.
<P>
-<A HREF="http://sourceforge.net/projects/ijbswa,">http://sourceforge.net/projects/ijbswa,</A>
+<A HREF="http://www.privoxy.org/faq/,">http://www.privoxy.org/faq/,</A>
+the <B>Privoxy</B> FAQ.
+<P>
+<A HREF="http://sourceforge.net/projects/ijbswa/,">http://sourceforge.net/projects/ijbswa/,</A>
the Project Page for <B>Privoxy</B> on
-Sourceforge.
+SourceForge.
+<P>
+<A HREF="http://config.privoxy.org/,">http://config.privoxy.org/,</A>
+the web-based user interface. <B>Privoxy</B> must be
+running for this to work. Shortcut: <A HREF="http://p.p/">http://p.p/</A>
+<P>
+<A HREF="http://www.privoxy.org/actions/,">http://www.privoxy.org/actions/,</A> to submit ``misses'' to the developers.
<P>
-<A HREF="http://p.p/,">http://p.p/,</A> access
-<B>Privoxy</B> from your browser. Alternately,
-<A HREF="http://config.privoxy.org">http://config.privoxy.org</A>
-may work in some situations where the first does not.
+<A HREF="http://www.junkbusters.com/ht/en/cookies.html,">http://www.junkbusters.com/ht/en/cookies.html,</A>
+an explanation how cookies are used to track web users.
<P>
-<A HREF="http://p.p/">http://p.p/</A> to submit ``misses'' to the developers.
+<A HREF="http://www.junkbusters.com/ijb.html,">http://www.junkbusters.com/ijb.html,</A>
+the original Internet Junkbuster.
<P>
-<A HREF="http://www.junkbusters.com/ht/en/cookies.html">http://www.junkbusters.com/ht/en/cookies.html</A>
+<A HREF="http://www.waldherr.org/junkbuster/,">http://www.waldherr.org/junkbuster/,</A>
+Stefan Waldherr's version of Junkbuster, from which <B>Privoxy</B> was
+derived.
<P>
-<A HREF="http://www.waldherr.org/junkbuster/">http://www.waldherr.org/junkbuster/</A>
+<A HREF="http://privacy.net/analyze/,">http://privacy.net/analyze/,</A> a useful site
+to check what information about you is leaked while you browse the web.
<P>
-<A HREF="http://privacy.net/analyze/">http://privacy.net/analyze/</A>
+<A HREF="http://www.squid-cache.org/,">http://www.squid-cache.org/,</A> a very popular
+caching proxy, which is often used together with <B>Privoxy</B>.
<P>
-<A HREF="http://www.squid-cache.org/">http://www.squid-cache.org/</A>
+<A HREF="http://www.privoxy.org/developer-manual/,">http://www.privoxy.org/developer-manual/,</A>
+the <B>Privoxy</B> developer manual.
<A NAME="lbAM"> </A>
<H2>DEVELOPMENT TEAM</H2>
Thomas Steudten
Rodney Stromlund
Rodrigo Barbosa (RPM specfiles)
+ Moritz Barsnick
Hal Burgiss (docs)
Alexander Lazic
Gábor Lipták
Guy
Haroon Rafique
+ Roland Rosenfeld
David Schmidt (OS/2, Mac OSX ports)
Joerg Strohmayer
Sarantis Paskalis
This document was created by
man2html,
using the manual pages.<BR>
-Time: 00:10:58 GMT, May 15, 2002
+Time: 01:10:43 GMT, June 05, 2002
</BODY>
</HTML>
>Actions Files</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
REL="HOME"
TITLE="Privoxy User Manual"
HREF="index.html"><LINK
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="config.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="filter-file.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="ACTIONS-FILE"
->8. Actions Files</A
-></H1
+NAME="ACTIONS-FILE">8. Actions Files</H1
><P
> The actions files are used to define what actions
<SPAN
CLASS="FILENAME"
>default.action</TT
>. These have increasing levels of
- aggressiveness <I
+ aggressiveness <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>and have no influence on your browsing unless
you select them explicitly in the editor</I
+></SPAN
>. It is not recommend
to edit this file.
</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
+ sites and pages (be <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>very careful</I
+></SPAN
> with using such a
universal set in <TT
CLASS="FILENAME"
><H2
CLASS="SECT2"
><A
-NAME="AEN1553"
->8.1. Finding the Right Mix</A
-></H2
+NAME="AEN1584">8.1. Finding the Right Mix</H2
><P
> Note that some <A
HREF="actions-file.html#ACTIONS"
><H2
CLASS="SECT2"
><A
-NAME="AEN1560"
->8.2. How to Edit</A
-></H2
+NAME="AEN1591">8.2. How to Edit</H2
><P
> The easiest way to edit the actions files is with a browser by
using our browser-based editor, which can be reached from <A
><H2
CLASS="SECT2"
><A
-NAME="ACTIONS-APPLY"
->8.3. How Actions are Applied to URLs</A
-></H2
+NAME="ACTIONS-APPLY">8.3. How Actions are Applied to URLs</H2
><P
> Actions files are divided into sections. There are special sections,
like the <SPAN
>block</A
> }</TT
>, resulting
- in <I
+ in <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>both</I
+></SPAN
> actions to apply.</P
><P
> You can trace this process for any given URL by visiting <A
><H2
CLASS="SECT2"
><A
-NAME="AF-PATTERNS"
->8.4. Patterns</A
-></H2
+NAME="AF-PATTERNS">8.4. Patterns</H2
><P
> Generally, a pattern has the form <TT
CLASS="LITERAL"
CLASS="LITERAL"
>/index.html</TT
>, regardless of the domain,
- i.e. on <I
+ i.e. on <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>any</I
+></SPAN
> web server.
</P
></DD
><H3
CLASS="SECT3"
><A
-NAME="AEN1624"
->8.4.1. The Domain Pattern</A
-></H3
+NAME="AEN1655">8.4.1. The Domain Pattern</H3
><P
> The matching of the domain part offers some flexible options: if the
domain starts or ends with a dot, it becomes unanchored at that end.
></DT
><DD
><P
-> matches any domain that <I
+> matches any domain that <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>ENDS</I
+></SPAN
> in
<TT
CLASS="LITERAL"
></DT
><DD
><P
-> matches any domain that <I
+> matches any domain that <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>STARTS</I
+></SPAN
> with
<TT
CLASS="LITERAL"
></DT
><DD
><P
-> matches any domain that <I
+> matches any domain that <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>CONTAINS</I
+></SPAN
> <TT
CLASS="LITERAL"
>.example.</TT
<TT
CLASS="LITERAL"
>wwwz.example.com</TT
-> etc., but <I
+> etc., but <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>not</I
+></SPAN
>
<TT
CLASS="LITERAL"
><H3
CLASS="SECT3"
><A
-NAME="AEN1686"
->8.4.2. The Path Pattern</A
-></H3
+NAME="AEN1717">8.4.2. The Path Pattern</H3
><P
> <SPAN
CLASS="APPLICATION"
> (regular expression speak
for the beginning of a line).</P
><P
-> Please also note that matching in the path is <I
+> Please also note that matching in the path is <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>CASE INSENSITIVE</I
+></SPAN
>
by default, but you can switch to case sensitive at any point in the pattern by using the
<SPAN
CLASS="LITERAL"
>PaTtErN</TT
> in
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>exactly</I
+></SPAN
> this capitalization.</P
></DIV
></DIV
><H2
CLASS="SECT2"
><A
-NAME="ACTIONS"
->8.5. Actions</A
-></H2
+NAME="ACTIONS">8.5. Actions</H2
><P
> All actions are disabled by default, until they are explicitly enabled
somewhere in an actions file. Actions are turned on if preceded with a
>
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
+ same URL, but with different parameters, <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>all</I
+></SPAN
> the parameters
- from <I
+ from <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>all</I
+></SPAN
> matches are remembered. This is used for actions
that can be executed for the same request repeatedly, like adding multiple
headers, or filtering through multiple filters. Syntax:
><H4
CLASS="SECT3"
><A
-NAME="ADD-HEADER"
->8.5.1. add-header</A
-></H4
+NAME="ADD-HEADER">8.5.1. add-header</H4
><P
></P
><DIV
><H4
CLASS="SECT3"
><A
-NAME="BLOCK"
->8.5.2. block</A
-></H4
+NAME="BLOCK">8.5.2. block</H4
><P
></P
><DIV
</P
><P
>
- A very important exception occurs if <I
+ A very important exception occurs if <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>both</I
+></SPAN
>
<TT
CLASS="LITERAL"
><H4
CLASS="SECT3"
><A
-NAME="CRUNCH-INCOMING-COOKIES"
->8.5.3. crunch-incoming-cookies</A
-></H4
+NAME="CRUNCH-INCOMING-COOKIES">8.5.3. crunch-incoming-cookies</H4
><P
></P
><DIV
>Notes:</DT
><DD
><P
-> This action is only concerned with <I
+> This action is only concerned with <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>incoming</I
+></SPAN
> cookies. For
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>outgoing</I
+></SPAN
> cookies, use
<TT
CLASS="LITERAL"
>crunch-outgoing-cookies</A
></TT
>.
- Use <I
+ Use <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>both</I
+></SPAN
> to disable cookies completely.
</P
><P
-> It makes <I
+> It makes <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>no sense at all</I
+></SPAN
> to use this action in conjunction
with the <TT
CLASS="LITERAL"
><H4
CLASS="SECT3"
><A
-NAME="CRUNCH-OUTGOING-COOKIES"
->8.5.4. crunch-outgoing-cookies</A
-></H4
+NAME="CRUNCH-OUTGOING-COOKIES">8.5.4. crunch-outgoing-cookies</H4
><P
></P
><DIV
>Notes:</DT
><DD
><P
-> This action is only concerned with <I
+> This action is only concerned with <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>outgoing</I
+></SPAN
> cookies. For
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>incoming</I
+></SPAN
> cookies, use
<TT
CLASS="LITERAL"
>crunch-incoming-cookies</A
></TT
>.
- Use <I
+ Use <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>both</I
+></SPAN
> to disable cookies completely.
</P
><P
-> It makes <I
+> It makes <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>no sense at all</I
+></SPAN
> to use this action in conjunction
with the <TT
CLASS="LITERAL"
><H4
CLASS="SECT3"
><A
-NAME="DEANIMATE-GIFS"
->8.5.5. deanimate-gifs</A
-></H4
+NAME="DEANIMATE-GIFS">8.5.5. deanimate-gifs</H4
><P
></P
><DIV
><H4
CLASS="SECT3"
><A
-NAME="DOWNGRADE-HTTP-VERSION"
->8.5.6. downgrade-http-version</A
-></H4
+NAME="DOWNGRADE-HTTP-VERSION">8.5.6. downgrade-http-version</H4
><P
></P
><DIV
><H4
CLASS="SECT3"
><A
-NAME="FAST-REDIRECTS"
->8.5.7. fast-redirects</A
-></H4
+NAME="FAST-REDIRECTS">8.5.7. fast-redirects</H4
><P
></P
><DIV
will link to some script on their own servers, giving the destination as a
parameter, which will then redirect you to the final target. URLs
resulting from this scheme typically look like:
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>http://some.place/click-tracker.cgi?target=http://some.where.else</I
+></SPAN
>.
</P
><P
><H4
CLASS="SECT3"
><A
-NAME="FILTER"
->8.5.8. filter</A
-></H4
+NAME="FILTER">8.5.8. filter</H4
><P
></P
><DIV
><TD
><PRE
CLASS="SCREEN"
->+filter{banners-by-size} # Kill banners by size (<I
+>+filter{banners-by-size} # Kill banners by size (<SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>very</I
+></SPAN
> efficient!)</PRE
></TD
></TR
><H4
CLASS="SECT3"
><A
-NAME="HANDLE-AS-IMAGE"
->8.5.9. handle-as-image</A
-></H4
+NAME="HANDLE-AS-IMAGE">8.5.9. handle-as-image</H4
><P
></P
><DIV
>Typical use:</DT
><DD
><P
->Mark URLs as belonging to images (so they'll be replaced by images <I
+>Mark URLs as belonging to images (so they'll be replaced by images <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>if they get blocked</I
+></SPAN
>)</P
></DD
><DT
HREF="actions-file.html#BLOCK"
>block</A
></TT
-> action <I
+> action <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>also applies</I
+></SPAN
>,
the presence or absence of this mark decides whether an HTML <SPAN
CLASS="QUOTE"
reflect the file type, like in the second example section.
</P
><P
-> Note that you cannot treat HTML pages as images in most cases. For instance, (inline) ad
+> Note that you cannot treat HTML pages as images in most cases. For instance, (in-line) ad
frames require an HTML page to be sent, or they won't display properly.
Forcing <TT
CLASS="LITERAL"
><H4
CLASS="SECT3"
><A
-NAME="HIDE-FORWARDED-FOR-HEADERS"
->8.5.10. hide-forwarded-for-headers</A
-></H4
+NAME="HIDE-FORWARDED-FOR-HEADERS">8.5.10. hide-forwarded-for-headers</H4
><P
></P
><DIV
><H4
CLASS="SECT3"
><A
-NAME="HIDE-FROM-HEADER"
->8.5.11. hide-from-header</A
-></H4
+NAME="HIDE-FROM-HEADER">8.5.11. hide-from-header</H4
><P
></P
><DIV
><H4
CLASS="SECT3"
><A
-NAME="HIDE-REFERRER"
->8.5.12. hide-referrer</A
-></H4
+NAME="HIDE-REFERRER">8.5.12. hide-referrer</H4
><A
NAME="HIDE-REFERER"
></A
> is the preferred option here, since some servers will
not send images back otherwise, in an attempt to prevent their valuable
content from being embedded elsewhere (and hence, without being surrounded
- by <I
+ by <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>their</I
+></SPAN
> banners).
</P
><P
><H4
CLASS="SECT3"
><A
-NAME="HIDE-USER-AGENT"
->8.5.13. hide-user-agent</A
-></H4
+NAME="HIDE-USER-AGENT">8.5.13. hide-user-agent</H4
><P
></P
><DIV
><P
> This breaks many web sites that depend on looking at this header in order
to customize their content for different browsers (which, by the
- way, is <I
+ way, is <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>NOT</I
+></SPAN
> a <A
HREF="http://www.javascriptkit.com/javaindex.shtml"
TARGET="_top"
CLASS="APPLICATION"
>Privoxy</SPAN
> is
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>not recommended</I
+></SPAN
>. In single-user, single-browser
setups, you might use it to delete your OS version information from
the headers, because it is an invitation to exploit known bugs for your
><H4
CLASS="SECT3"
><A
-NAME="KILL-POPUPS"
->8.5.14. kill-popups<A
+NAME="KILL-POPUPS">8.5.14. kill-popups<A
NAME="KILL-POPUP"
></A
-></A
></H4
><P
></P
>Privoxy</SPAN
>.
If the only kind of pop-ups that you want to kill are exit consoles (those
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>really nasty</I
+></SPAN
> windows that appear when you close an other
one), you might want to use
<TT
><H4
CLASS="SECT3"
><A
-NAME="LIMIT-CONNECT"
->8.5.15. limit-connect</A
-></H4
+NAME="LIMIT-CONNECT">8.5.15. limit-connect</H4
><P
></P
><DIV
><H4
CLASS="SECT3"
><A
-NAME="PREVENT-COMPRESSION"
->8.5.16. prevent-compression</A
-></H4
+NAME="PREVENT-COMPRESSION">8.5.16. prevent-compression</H4
><P
></P
><DIV
><H4
CLASS="SECT3"
><A
-NAME="SEND-VANILLA-WAFER"
->8.5.17. send-vanilla-wafer</A
-></H4
+NAME="SEND-VANILLA-WAFER">8.5.17. send-vanilla-wafer</H4
><P
></P
><DIV
><H4
CLASS="SECT3"
><A
-NAME="SEND-WAFER"
->8.5.18. send-wafer</A
-></H4
+NAME="SEND-WAFER">8.5.18. send-wafer</H4
><P
></P
><DIV
><H4
CLASS="SECT3"
><A
-NAME="SESSION-COOKIES-ONLY"
->8.5.19. session-cookies-only</A
-></H4
+NAME="SESSION-COOKIES-ONLY">8.5.19. session-cookies-only</H4
><P
></P
><DIV
> Allow only temporary <SPAN
CLASS="QUOTE"
>"session"</SPAN
-> cookies (for the current browser session <I
+> cookies (for the current browser session <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>only</I
+></SPAN
>).
</P
></DD
sites, and is the recommended setting.
</P
><P
-> It makes <I
+> It makes <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>no sense at all</I
+></SPAN
> to use <TT
CLASS="LITERAL"
>session-cookies-only</TT
><H4
CLASS="SECT3"
><A
-NAME="SET-IMAGE-BLOCKER"
->8.5.20. set-image-blocker</A
-></H4
+NAME="SET-IMAGE-BLOCKER">8.5.20. set-image-blocker</H4
><P
></P
><DIV
>Effect:</DT
><DD
><P
-> This action alone doesn't do anything noticeable. If <I
+> This action alone doesn't do anything noticeable. If <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>both</I
+></SPAN
>
<TT
CLASS="LITERAL"
HREF="actions-file.html#BLOCK"
>block</A
></TT
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>and</I
+></SPAN
> <TT
CLASS="LITERAL"
><A
HREF="actions-file.html#HANDLE-AS-IMAGE"
>handle-as-image</A
></TT
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>also</I
+></SPAN
>
apply, i.e. if the request is to be blocked as an image,
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>then</I
+></SPAN
> the parameter of this action decides what will be
sent as a replacement.
</P
> There is a third (advanced) type, called <SPAN
CLASS="QUOTE"
>"auto"</SPAN
->. It is <I
+>. It is <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>NOT</I
+></SPAN
> to be
used in <TT
CLASS="LITERAL"
><H3
CLASS="SECT3"
><A
-NAME="AEN2600"
->8.5.21. Summary</A
-></H3
+NAME="AEN2631">8.5.21. Summary</H3
><P
> Note that many of these actions have the potential to cause a page to
misbehave, possibly even not to display at all. There are many ways
><H2
CLASS="SECT2"
><A
-NAME="ALIASES"
->8.6. Aliases</A
-></H2
+NAME="ALIASES">8.6. Aliases</H2
><P
> Custom <SPAN
CLASS="QUOTE"
> and <SPAN
CLASS="QUOTE"
>"}"</SPAN
->, but we <I
+>, but we <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>strongly
recommend</I
+></SPAN
> that you only use <SPAN
CLASS="QUOTE"
>"a"</SPAN
> sign, since they are merely textually
expanded.</P
><P
-> Aliases can be used throughout the actions file, but they <I
+> Aliases can be used throughout the actions file, but they <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>must be
defined in a special section at the top of the file!</I
+></SPAN
>
And there can only be one such section per actions file. Each actions file may
have its own alias section, and the aliases defined in it are only visible
CLASS="QUOTE"
>"shop"</SPAN
>, you can later change your policy on shops in
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>one</I
+></SPAN
> place, and your changes will take effect everywhere
in the actions file where the <SPAN
CLASS="QUOTE"
><H2
CLASS="SECT2"
><A
-NAME="ACT-EXAMPLES"
->8.7. Actions Files Tutorial</A
-></H2
+NAME="ACT-EXAMPLES">8.7. Actions Files Tutorial</H2
><P
> The above chapters have shown <A
HREF="actions-file.html"
><H3
CLASS="SECT3"
><A
-NAME="AEN2652"
->8.7.1. default.action</A
-></H3
+NAME="AEN2683">8.7.1. default.action</H3
><P
>Every config file should start with a short comment stating its purpose:</P
><P
></P
><P
> Now come the regular sections, i.e. sets of actions, accompanied
- by URL patterns to which they apply. Remember <I
+ by URL patterns to which they apply. Remember <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>all actions
are disabled when matching starts</I
+></SPAN
>, so we have to explicitly
enable the ones we want.</P
><P
>, but this pattern
<A
HREF="actions-file.html#AF-PATTERNS"
->matches all URLs.</A
+>matches all URLs</A
>. Therefore, the
set of actions used in this <SPAN
CLASS="QUOTE"
>"default"</SPAN
-> section <I
+> section <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>will
be applied to all requests as a start</I
+></SPAN
>. It can be partly or
wholly overridden by later matches further down this file, or in user.action,
but it will still be largely responsible for your overall browsing
><P
> Again, at the start of matching, all actions are disabled, so there is
no real need to disable any actions here, but we will do that nonetheless,
- to have a complete listing for your reference. (Remember: A <SPAN
+ to have a complete listing for your reference. (Remember: a <SPAN
CLASS="QUOTE"
>"+"</SPAN
>
>"general policy"</SPAN
> that applies
universally and won't get any exceptions defined later. Other choices,
- like not blocking (which is <I
+ like not blocking (which is <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>understandably</I
+></SPAN
> the
default!) need exceptions, i.e. we need to specify explicitly what we
want to block in later sections.
CLASS="APPLICATION"
>Privoxy</SPAN
> knows which
- URLs belong to images, so that <I
+ URLs belong to images, so that <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>if</I
+></SPAN
> they are to
be blocked, a substitute image can be sent, rather than an HTML page.
Contacting the remote site to find out is not an option, since it
would destroy the loading time advantage of banner blocking, and it
- would feed the advertisers (in terms of money <I
+ would feed the advertisers (in terms of money <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>and</I
+></SPAN
>
information). We can mark any URL as an image with the <TT
CLASS="LITERAL"
><P
> And then there are known banner sources. They often use scripts to
generate the banners, so it won't be visible from the URL that the
- request is for an image. Hence we block them <I
+ request is for an image. Hence we block them <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>and</I
+></SPAN
>
mark them as images in one go, with the help of our
<TT
> e.g. catches
<SPAN
CLASS="QUOTE"
->"nasty-<I
+>"nasty-<SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>ads</I
+></SPAN
>.nasty-corp.com"</SPAN
> as intended,
but also <SPAN
CLASS="QUOTE"
->"downlo<I
+>"downlo<SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>ads</I
+></SPAN
>.sourcefroge.net"</SPAN
> or
<SPAN
CLASS="QUOTE"
->"<I
+>"<SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>ads</I
+></SPAN
>l.some-provider.net."</SPAN
> So here come some
well-known exceptions to the <TT
>-block</A
></TT
>
- applies, so (unless it matches <I
+ applies, so (unless it matches <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>again</I
+></SPAN
> further down) it ends up
with no <TT
CLASS="LITERAL"
>filter</A
></TT
>
- disables <I
+ disables <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>all</I
+></SPAN
> filters in one fell swoop!</P
><P
> <TABLE
><H3
CLASS="SECT3"
><A
-NAME="AEN2806"
->8.7.2. user.action</A
-></H3
+NAME="AEN2837">8.7.2. user.action</H3
><P
> So far we are painting with a broad brush by setting general policies,
which would be a reasonable starting point for many people. Now,
- you'd maybe want to be more specific and have customized rules that
+ you might want to be more specific and have customized rules that
are more suitable to your personal habits and preferences. These would
be for narrowly defined situations like your ISP or your bank, and should
be placed in <TT
CLASS="FILENAME"
>user.action</TT
> is also a
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>safe</I
+></SPAN
> place for your personal settings, since
<TT
CLASS="FILENAME"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="config.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="filter-file.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>Appendix</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
REL="HOME"
TITLE="Privoxy User Manual"
HREF="index.html"><LINK
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="seealso.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
><H1
CLASS="SECT1"
><A
-NAME="APPENDIX"
->14. Appendix</A
-></H1
+NAME="APPENDIX">14. Appendix</H1
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
-NAME="REGEX"
->14.1. Regular Expressions</A
-></H2
+NAME="REGEX">14.1. Regular Expressions</H2
><P
> <SPAN
CLASS="APPLICATION"
><TBODY
><TR
><TD
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>.</I
+></SPAN
> - Matches any single character, e.g. <SPAN
CLASS="QUOTE"
>"a"</SPAN
><TBODY
><TR
><TD
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>?</I
+></SPAN
> - The preceding character or expression is matched ZERO or ONE
times. Either/or.
</TD
><TBODY
><TR
><TD
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>+</I
+></SPAN
> - The preceding character or expression is matched ONE or MORE
times.
</TD
><TBODY
><TR
><TD
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>*</I
+></SPAN
> - The preceding character or expression is matched ZERO or MORE
times.
</TD
><TBODY
><TR
><TD
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>\</I
+></SPAN
> - The <SPAN
CLASS="QUOTE"
>"escape"</SPAN
><TBODY
><TR
><TD
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>[]</I
+></SPAN
> - Characters enclosed in brackets will be matched if
any of the enclosed characters are encountered. For instance, <SPAN
CLASS="QUOTE"
><TBODY
><TR
><TD
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>()</I
+></SPAN
> - parentheses are used to group a sub-expression,
or multiple sub-expressions.
</TD
><TBODY
><TR
><TD
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>|</I
+></SPAN
> - The <SPAN
CLASS="QUOTE"
>"bar"</SPAN
list. This is enough to get us started with a few simple examples which may
be more illuminating:</P
><P
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
><TT
CLASS="LITERAL"
>/.*/banners/.*</TT
></I
+></SPAN
> - A simple example
that uses the common combination of <SPAN
CLASS="QUOTE"
><P
> A now something a little more complex:</P
><P
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
><TT
CLASS="LITERAL"
>/.*/adv((er)?ts?|ertis(ing|ements?))?/</TT
></I
+></SPAN
> -
We have several literal forward slashes again (<SPAN
CLASS="QUOTE"
CLASS="QUOTE"
>".*"</SPAN
>, so we are matching against any conceivable sub-path, just so
- it matches our expression. The only true literal that <I
+ it matches our expression. The only true literal that <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>must
match</I
+></SPAN
> our pattern is <SPAN
CLASS="APPLICATION"
>adv</SPAN
CLASS="QUOTE"
>"ing"</SPAN
>
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>OR</I
+></SPAN
> <SPAN
CLASS="QUOTE"
>"ements?"</SPAN
>, which would then match
either spelling.</P
><P
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
><TT
CLASS="LITERAL"
>/.*/advert[0-9]+\.(gif|jpe?g)</TT
></I
+></SPAN
> - Again
another path statement with forward slashes. Anything in the square brackets
<SPAN
>http://www.perldoc.com/perl5.6/pod/perlre.html</A
></P
><P
-> For information on regular expression based substititions and their applications
+> For information on regular expression based substitutions and their applications
in filters, please see the <A
HREF="filter-file.html"
>filter file tutorial</A
><H2
CLASS="SECT2"
><A
-NAME="AEN3353"
->14.2. <SPAN
+NAME="AEN3384">14.2. <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
->'s Internal Pages</A
-></H2
+>'s Internal Pages</H2
><P
> Since <SPAN
CLASS="APPLICATION"
Privoxy main page:
</P
><A
-NAME="AEN3368"
-></A
-><BLOCKQUOTE
+NAME="AEN3399"><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
>
TARGET="_top"
>http://p.p/</A
> (But it
- doesn't provide a fallback to a real page, in case the request is not
+ doesn't provide a fall-back to a real page, in case the request is not
sent through <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
editing of actions files:
</P
><A
-NAME="AEN3376"
-></A
-><BLOCKQUOTE
+NAME="AEN3407"><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
>
Show the source code version numbers:
</P
><A
-NAME="AEN3381"
-></A
-><BLOCKQUOTE
+NAME="AEN3412"><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
>
Show the browser's request headers:
</P
><A
-NAME="AEN3386"
-></A
-><BLOCKQUOTE
+NAME="AEN3417"><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
>
Show which actions apply to a URL and why:
</P
><A
-NAME="AEN3391"
-></A
-><BLOCKQUOTE
+NAME="AEN3422"><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
>
to run, but only as a pass-through proxy, with no actions taking place:
</P
><A
-NAME="AEN3397"
-></A
-><BLOCKQUOTE
+NAME="AEN3428"><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
>
> Short cuts. Turn off, then on:
</P
><A
-NAME="AEN3401"
-></A
-><BLOCKQUOTE
+NAME="AEN3432"><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
>
</P
></BLOCKQUOTE
><A
-NAME="AEN3404"
-></A
-><BLOCKQUOTE
+NAME="AEN3435"><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
>
><H3
CLASS="SECT3"
><A
-NAME="BOOKMARKLETS"
->14.2.1. Bookmarklets</A
-></H3
+NAME="BOOKMARKLETS">14.2.1. Bookmarklets</H3
><P
> Below are some <SPAN
CLASS="QUOTE"
><H2
CLASS="SECT2"
><A
-NAME="CHAIN"
->14.3. Chain of Events</A
-></H2
+NAME="CHAIN">14.3. Chain of Events</H2
><P
> Let's take a quick look at the basic sequence of events when a web page is
requested by your browser and <SPAN
><P
> First, the server headers are read and processed to determine, among other
things, the MIME type (document type) and encoding. The headers are then
- filtered as deterimed by the
+ filtered as deterimined by the
<A
HREF="actions-file.html#CRUNCH-INCOMING-COOKIES"
><SPAN
><H2
CLASS="SECT2"
><A
-NAME="ACTIONSANAT"
->14.4. Anatomy of an Action</A
-></H2
+NAME="ACTIONSANAT">14.4. Anatomy of an Action</H2
><P
> The way <SPAN
CLASS="APPLICATION"
>
to any given URL can be complex, and not always so
easy to understand what is happening. And sometimes we need to be able to
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>see</I
+></SPAN
> just what <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
></A
>
(i.e. not persistent). So we will allow persistent cookies for google. The
- second turns <I
+ second turns <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>off</I
+></SPAN
> any
<A
HREF="actions-file.html#FAST-REDIRECTS"
>"+block"</SPAN
></A
>
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>and</I
+></SPAN
> an
<A
HREF="actions-file.html#HANDLE-AS-IMAGE"
CLASS="QUOTE"
>"http://www.rhapsodyk.net/adsl/HOWTO/"</SPAN
>.
- This one is giving us problems. We are getting a blank page. Hmmm...</P
+ This one is giving us problems. We are getting a blank page. Hmmm ...</P
><P
> <TABLE
BORDER="0"
>"/ads"</SPAN
>! But
we did not want this at all! Now we see why we get the blank page. We could
- now add a new action below this that explicitly does <I
+ now add a new action below this that explicitly does <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>not</I
+></SPAN
>
block (<SPAN
CLASS="QUOTE"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="seealso.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
>The Main Configuration File</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
REL="HOME"
TITLE="Privoxy User Manual"
HREF="index.html"><LINK
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="configuration.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="actions-file.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="CONFIG"
->7. The Main Configuration File</A
-></H1
+NAME="CONFIG">7. The Main Configuration File</H1
><P
> Again, the main configuration file is named <TT
CLASS="FILENAME"
CLASS="LITERAL"
> <P
CLASS="LITERALLAYOUT"
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>confdir /etc/privoxy</I
+></SPAN
></P
>
</TT
><H2
CLASS="SECT2"
><A
-NAME="CONF-LOG-LOC"
->7.1. Configuration and Log File Locations</A
-></H2
+NAME="CONF-LOG-LOC">7.1. Configuration and Log File Locations</H2
><P
> <SPAN
CLASS="APPLICATION"
>
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
+> The user running <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>, must have read
+ permission for all configuration files, and write permission to any files
+ that would be modified, such as log files and actions files.</P
><DIV
CLASS="SECT3"
><H4
CLASS="SECT3"
><A
-NAME="CONFDIR"
->7.1.1. confdir</A
-></H4
+NAME="CONFDIR">7.1.1. confdir</H4
><P
></P
><DIV
>Default value:</DT
><DD
><P
->/etc/privoxy (Unix) <I
+>/etc/privoxy (Unix) <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>or</I
+></SPAN
> <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>Effect if unset:</DT
><DD
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Mandatory</I
+></SPAN
></P
></DD
><DT
><H4
CLASS="SECT3"
><A
-NAME="LOGDIR"
->7.1.2. logdir</A
-></H4
+NAME="LOGDIR">7.1.2. logdir</H4
><P
></P
><DIV
>Default value:</DT
><DD
><P
->/var/log/privoxy (Unix) <I
+>/var/log/privoxy (Unix) <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>or</I
+></SPAN
> <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
>Effect if unset:</DT
><DD
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Mandatory</I
+></SPAN
></P
></DD
><DT
><H4
CLASS="SECT3"
><A
-NAME="ACTIONSFILE"
->7.1.3. actionsfile</A
-></H4
+NAME="ACTIONSFILE">7.1.3. actionsfile</H4
><A
NAME="DEFAULT.ACTION"
></A
><H4
CLASS="SECT3"
><A
-NAME="FILTERFILE"
->7.1.4. filterfile</A
-></H4
+NAME="FILTERFILE">7.1.4. filterfile</H4
><A
NAME="DEFAULT.FILTER"
></A
>Default value:</DT
><DD
><P
->default.filter (Unix) <I
+>default.filter (Unix) <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>or</I
+></SPAN
> default.filter.txt (Windows)</P
></DD
><DT
><H4
CLASS="SECT3"
><A
-NAME="LOGFILE"
->7.1.5. logfile</A
-></H4
+NAME="LOGFILE">7.1.5. logfile</H4
><P
></P
><DIV
>Default value:</DT
><DD
><P
->logfile (Unix) <I
+>logfile (Unix) <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>or</I
+></SPAN
> privoxy.log (Windows)</P
></DD
><DT
><P
> No log file is used, all log messages go to the console (<TT
CLASS="LITERAL"
->stderr</TT
+>STDERR</TT
>).
</P
></DD
><H4
CLASS="SECT3"
><A
-NAME="JARFILE"
->7.1.6. jarfile</A
-></H4
+NAME="JARFILE">7.1.6. jarfile</H4
><P
></P
><DIV
>Default value:</DT
><DD
><P
->jarfile (Unix) <I
+>jarfile (Unix) <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>or</I
+></SPAN
> privoxy.jar (Windows)</P
></DD
><DT
><H4
CLASS="SECT3"
><A
-NAME="TRUSTFILE"
->7.1.7. trustfile</A
-></H4
+NAME="TRUSTFILE">7.1.7. trustfile</H4
><P
></P
><DIV
>Default value:</DT
><DD
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Unset (commented out)</I
->. When activated: trust (Unix) <I
+></SPAN
+>. When activated: trust (Unix) <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>or</I
+></SPAN
> trust.txt (Windows)</P
></DD
><DT
><DD
><P
> The trust mechanism is an experimental feature for building white-lists and should
- be used with care. It is <I
+ be used with care. It is <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>NOT</I
+></SPAN
> recommended for the casual user.
</P
><P
><H2
CLASS="SECT2"
><A
-NAME="LOCAL-SET-UP"
->7.2. Local Set-up Documentation</A
-></H2
+NAME="LOCAL-SET-UP">7.2. Local Set-up Documentation</H2
><P
> If you intend to operate <SPAN
CLASS="APPLICATION"
><H4
CLASS="SECT3"
><A
-NAME="USER-MANUAL"
->7.2.1. user-manual</A
-></H4
+NAME="USER-MANUAL">7.2.1. user-manual</H4
><P
></P
><DIV
>Default value:</DT
><DD
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Unset</I
+></SPAN
></P
></DD
><DT
><TD
ALIGN="LEFT"
><P
-> If set, this option should be <I
+> If set, this option should be <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
->the first option in the config file</I
->, because
- it is used while the config file is being read.
+>the first option in the config
+ file</I
+></SPAN
+>, because it is used while the config file is being read.
</P
></TD
></TR
><H4
CLASS="SECT3"
><A
-NAME="TRUST-INFO-URL"
->7.2.2. trust-info-url</A
-></H4
+NAME="TRUST-INFO-URL">7.2.2. trust-info-url</H4
><P
></P
><DIV
> The value of this option only matters if the experimental trust mechanism has been
activated. (See <A
HREF="config.html#TRUSTFILE"
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>trustfile</I
+></SPAN
></A
> above.)
</P
><H4
CLASS="SECT3"
><A
-NAME="ADMIN-ADDRESS"
->7.2.3. admin-address</A
-></H4
+NAME="ADMIN-ADDRESS">7.2.3. admin-address</H4
><P
></P
><DIV
>Default value:</DT
><DD
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Unset</I
+></SPAN
></P
></DD
><DT
><H4
CLASS="SECT3"
><A
-NAME="PROXY-INFO-URL"
->7.2.4. proxy-info-url</A
-></H4
+NAME="PROXY-INFO-URL">7.2.4. proxy-info-url</H4
><P
></P
><DIV
>Default value:</DT
><DD
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Unset</I
+></SPAN
></P
></DD
><DT
><H2
CLASS="SECT2"
><A
-NAME="DEBUGGING"
->7.3. Debugging</A
-></H2
+NAME="DEBUGGING">7.3. Debugging</H2
><P
> These options are mainly useful when tracing a problem.
Note that you might also want to invoke
><H4
CLASS="SECT3"
><A
-NAME="DEBUG"
->7.3.1. debug</A
-></H4
+NAME="DEBUG">7.3.1. debug</H4
><P
></P
><DIV
> Key values that determine what information gets logged to the
<A
HREF="config.html#LOGFILE"
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>logfile</I
+></SPAN
></A
>.
</P
debug 8 # show header parsing
debug 16 # log all data into the logfile
debug 32 # debug force feature
- debug 64 # debug regular expression filter
+ debug 64 # debug regular expression filter
debug 128 # debug fast redirects
debug 256 # debug GIF de-animation
debug 512 # Common Log Format
</P
><P
> A debug level of 1 is informative because it will show you each request
- as it happens. <I
+ as it happens. <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>1, 4096 and 8192 are highly recommended</I
+></SPAN
>
so that you will notice when things go wrong. The other levels are probably
only of interest if you are hunting down a specific problem. They can produce
</P
><P
-> The reporting of <I
+> The reporting of <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>fatal</I
+></SPAN
> errors (i.e. ones which crash
<SPAN
CLASS="APPLICATION"
CLASS="QUOTE"
>"debug
512"</SPAN
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>ONLY</I
+></SPAN
> and not enable anything else.
</P
></DD
><H4
CLASS="SECT3"
><A
-NAME="SINGLE-THREADED"
->7.3.2. single-threaded</A
-></H4
+NAME="SINGLE-THREADED">7.3.2. single-threaded</H4
><P
></P
><DIV
>Type of value:</DT
><DD
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>None</I
+></SPAN
></P
></DD
><DT
>Default value:</DT
><DD
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Unset</I
+></SPAN
></P
></DD
><DT
><DD
><P
> This option is only there for debug purposes and you should never
- need to use it. <I
+ need to use it. <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>It will drastically reduce performance.</I
+></SPAN
>
</P
></DD
><H2
CLASS="SECT2"
><A
-NAME="ACCESS-CONTROL"
->7.4. Access Control and Security</A
-></H2
+NAME="ACCESS-CONTROL">7.4. Access Control and Security</H2
><P
> This section of the config file controls the security-relevant aspects
of <SPAN
><H4
CLASS="SECT3"
><A
-NAME="LISTEN-ADDRESS"
->7.4.1. listen-address</A
-></H4
+NAME="LISTEN-ADDRESS">7.4.1. listen-address</H4
><P
></P
><DIV
><H4
CLASS="SECT3"
><A
-NAME="TOGGLE"
->7.4.2. toggle</A
-></H4
+NAME="TOGGLE">7.4.2. toggle</H4
><P
></P
><DIV
><H4
CLASS="SECT3"
><A
-NAME="ENABLE-REMOTE-TOGGLE"
->7.4.3. enable-remote-toggle</A
-></H4
+NAME="ENABLE-REMOTE-TOGGLE">7.4.3. enable-remote-toggle</H4
><P
></P
><DIV
any URL.
</P
><P
-> For the time being, access to the toggle feature can <I
+> For the time being, access to the toggle feature can <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>not</I
+></SPAN
> be
controlled separately by <SPAN
CLASS="QUOTE"
CLASS="LITERAL"
>listen-address</TT
> above) can
- toggle it for all users. So this option is <I
+ toggle it for all users. So this option is <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>not recommended</I
+></SPAN
>
for multi-user environments with untrusted users.
</P
><H4
CLASS="SECT3"
><A
-NAME="ENABLE-EDIT-ACTIONS"
->7.4.4. enable-edit-actions</A
-></H4
+NAME="ENABLE-EDIT-ACTIONS">7.4.4. enable-edit-actions</H4
><P
></P
><DIV
>Notes:</DT
><DD
><P
-> For the time being, access to the editor can <I
+> For the time being, access to the editor can <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>not</I
+></SPAN
> be
controlled separately by <SPAN
CLASS="QUOTE"
CLASS="LITERAL"
>listen-address</TT
> above) can
- modify its configuration for all users. So this option is <I
+ modify its configuration for all users. So this option is <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>not
recommended</I
+></SPAN
> for multi-user environments with untrusted users.
</P
><P
><H4
CLASS="SECT3"
><A
-NAME="ACLS"
->7.4.5. ACLs: permit-access and deny-access</A
-></H4
+NAME="ACLS">7.4.5. ACLs: permit-access and deny-access</H4
><A
NAME="PERMIT-ACCESS"
></A
>Default value:</DT
><DD
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Unset</I
+></SPAN
></P
></DD
><DT
><DD
><P
> Access controls are included at the request of ISPs and systems
- administrators, and <I
+ administrators, and <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>are not usually needed by individual users</I
+></SPAN
>.
For a typical home user, it will normally suffice to ensure that
<SPAN
(127.0.0.1) or internal (home) network address by means of the
<A
HREF="config.html#LISTEN-ADDRESS"
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>listen-address</I
+></SPAN
></A
>
option.
>dst_addr</I
></TT
>
- that is examined is the address of the forwarder and <I
+ that is examined is the address of the forwarder and <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>NOT</I
+></SPAN
> the address
of the ultimate target. This is necessary because it may be impossible for the local
<SPAN
</P
><P
> You should prefer using IP addresses over DNS names, because the address lookups take
- time. All DNS names must resolve! You can <I
+ time. All DNS names must resolve! You can <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>not</I
+></SPAN
> use domain patterns
like <SPAN
CLASS="QUOTE"
>dst_addr</I
></TT
> implies that
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>all</I
+></SPAN
> destination addresses are OK:
</P
><P
><H4
CLASS="SECT3"
><A
-NAME="BUFFER-LIMIT"
->7.4.6. buffer-limit</A
-></H4
+NAME="BUFFER-LIMIT">7.4.6. buffer-limit</H4
><P
></P
><DIV
CLASS="LITERAL"
>buffer-limit</TT
> Kbytes
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>each</I
+></SPAN
>, unless you have enabled <SPAN
CLASS="QUOTE"
>"single-threaded"</SPAN
><H2
CLASS="SECT2"
><A
-NAME="FORWARDING"
->7.5. Forwarding</A
-></H2
+NAME="FORWARDING">7.5. Forwarding</H2
><P
> This feature allows routing of HTTP requests through a chain of
multiple proxies.
><H4
CLASS="SECT3"
><A
-NAME="FORWARD"
->7.5.1. forward</A
-></H4
+NAME="FORWARD">7.5.1. forward</H4
><P
></P
><DIV
>Default value:</DT
><DD
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Unset</I
+></SPAN
></P
></DD
><DT
><H4
CLASS="SECT3"
><A
-NAME="SOCKS"
->7.5.2. forward-socks4 and forward-socks4a</A
-></H4
+NAME="SOCKS">7.5.2. forward-socks4 and forward-socks4a</H4
><A
NAME="FORWARD-SOCKS4"
></A
>Default value:</DT
><DD
><P
+><SPAN
+CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Unset</I
+></SPAN
></P
></DD
><DT
><H4
CLASS="SECT3"
><A
-NAME="ADVANCED-FORWARDING-EXAMPLES"
->7.5.3. Advanced Forwarding Examples</A
-></H4
+NAME="ADVANCED-FORWARDING-EXAMPLES">7.5.3. Advanced Forwarding Examples</H4
><P
> If you have links to multiple ISPs that provide various special content
only to their subscribers, you can configure multiple <SPAN
>Privoxies</SPAN
>
which have connections to the respective ISPs to act as forwarders to each other, so that
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>your</I
+></SPAN
> users can see the internal content of all ISPs.</P
><P
> Assume that host-a has a PPP connection to isp-a.net. And host-b has a PPP connection to
CLASS="APPLICATION"
>squid</SPAN
>
- run on the same box, your squid configuration could then look like this:</P
+ run on the same box, your <SPAN
+CLASS="APPLICATION"
+>squid</SPAN
+> configuration could then look like this:</P
><P
> <TABLE
BORDER="0"
><H2
CLASS="SECT2"
><A
-NAME="WINDOWS-GUI"
->7.6. Windows GUI Options</A
-></H2
+NAME="WINDOWS-GUI">7.6. Windows GUI Options</H2
><P
> <SPAN
CLASS="APPLICATION"
CLASS="LITERAL"
> <P
CLASS="LITERALLAYOUT"
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>activity-animation 1</I
+></SPAN
><br>
</P
>
CLASS="LITERAL"
> <P
CLASS="LITERALLAYOUT"
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>log-messages 1</I
+></SPAN
><br>
</P
>
CLASS="LITERAL"
> <P
CLASS="LITERALLAYOUT"
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>log-buffer-size 1</I
+></SPAN
><br>
</P
>
CLASS="LITERAL"
> <P
CLASS="LITERALLAYOUT"
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>log-max-lines 200</I
+></SPAN
><br>
</P
>
CLASS="LITERAL"
> <P
CLASS="LITERALLAYOUT"
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>log-highlight-messages 1</I
+></SPAN
><br>
</P
>
CLASS="LITERAL"
> <P
CLASS="LITERALLAYOUT"
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>log-font-name Comic Sans MS</I
+></SPAN
><br>
</P
>
CLASS="LITERAL"
> <P
CLASS="LITERALLAYOUT"
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>log-font-size 8</I
+></SPAN
><br>
</P
>
CLASS="LITERAL"
> <P
CLASS="LITERALLAYOUT"
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>show-on-task-bar 0</I
+></SPAN
><br>
</P
>
CLASS="LITERAL"
> <P
CLASS="LITERALLAYOUT"
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>close-button-minimizes 1</I
+></SPAN
><br>
</P
>
CLASS="LITERAL"
> <P
CLASS="LITERALLAYOUT"
-> #<I
+> #<SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>hide-console</I
+></SPAN
><br>
</P
>
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="configuration.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="actions-file.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>Privoxy Configuration</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
REL="HOME"
TITLE="Privoxy User Manual"
HREF="index.html"><LINK
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="startup.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="config.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="CONFIGURATION"
->6. <SPAN
+NAME="CONFIGURATION">6. <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> Configuration</A
-></H1
+> Configuration</H1
><P
> All <SPAN
CLASS="APPLICATION"
><H2
CLASS="SECT2"
><A
-NAME="AEN501"
->6.1. Controlling <SPAN
+NAME="AEN530">6.1. Controlling <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> with Your Web Browser</A
-></H2
+> with Your Web Browser</H2
><P
> <SPAN
CLASS="APPLICATION"
><TD
><PRE
CLASS="SCREEN"
-> <H3
+> <H2
CLASS="BRIDGEHEAD"
->Privoxy Menu</H3
+><A
+NAME="AEN539">Â Â Â Â Privoxy Menu</H2
><P
></P
><TABLE
><H2
CLASS="SECT2"
><A
-NAME="CONFOVERVIEW"
->6.2. Configuration Files Overview</A
-></H2
+NAME="CONFOVERVIEW">6.2. Configuration Files Overview</H2
><P
> For Unix, *BSD and Linux, all configuration files are located in
<TT
CLASS="QUOTE"
>"wake up"</SPAN
> requests
- must obviously be sent to the <I
+ must obviously be sent to the <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>old</I
+></SPAN
> listening address.</P
><P
> While under development, the configuration content is subject to change.
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="startup.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="config.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
Requests</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
REL="HOME"
TITLE="Privoxy User Manual"
HREF="index.html"><LINK
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="templates.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="copyright.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="CONTACT"
->11. Contacting the Developers, Bug Reporting and Feature
-Requests</A
-></H1
+NAME="CONTACT">11. Contacting the Developers, Bug Reporting and Feature
+Requests</H1
><P
> We value your feedback. In fact, we rely on it to improve
<SPAN
><H2
CLASS="SECT2"
><A
-NAME="CONTACT-SUPPORT"
->11.1. Get Support</A
-></H2
+NAME="CONTACT-SUPPORT">11.1. Get Support</H2
><P
> For casual users, our support forum at
<A
><H2
CLASS="SECT2"
><A
-NAME="CONTACT-BUGS"
->11.2. Report Bugs</A
-></H2
+NAME="CONTACT-BUGS">11.2. Report Bugs</H2
><P
-> Please report all bugs <I
+> Please report all bugs <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>only</I
+></SPAN
> through our
bug tracker:
<A
>. </P
><P
> Before doing so, please make sure that the bug has not already been submitted
- and observe the aditional hints at the top of the <A
+ and observe the additional hints at the top of the <A
HREF="http://sourceforge.net/tracker/?func=add&group_id=11118&atid=111118"
TARGET="_top"
>submit
><H2
CLASS="SECT2"
><A
-NAME="CONTACT-FEATURE"
->11.3. Request New Features</A
-></H2
+NAME="CONTACT-FEATURE">11.3. Request New Features</H2
><P
> You are welcome to submit ideas on new features or other proposals
for improvement through our feature request tracker at
><H2
CLASS="SECT2"
><A
-NAME="CONTACT-ADS"
->11.4. Report Ads or Other Actions-Related Problems</A
-></H2
+NAME="CONTACT-ADS">11.4. Report Ads or Other Actions-Related Problems</H2
><P
> Please send feedback on ads that slipped through, innocent images that were blocked,
and any other problems relating to the <TT
><H2
CLASS="SECT2"
><A
-NAME="CONTACT-OTHER"
->11.5. Other</A
-></H2
+NAME="CONTACT-OTHER">11.5. Other</H2
><P
>For any other issues, feel free to use the mailing lists. Technically interested users
and people who wish to contribute to the project are also welcome on the developers list!
You can find an overview of all <SPAN
CLASS="APPLICATION"
->Prixoxy</SPAN
+>Privoxy</SPAN
>-related mailing lists,
including list archives, at:
<A
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="templates.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="copyright.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>Privoxy Copyright, License and History</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
REL="HOME"
TITLE="Privoxy User Manual"
HREF="index.html"><LINK
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="contact.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="seealso.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="COPYRIGHT"
->12. <SPAN
+NAME="COPYRIGHT">12. <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-> Copyright, License and History</A
-></H1
+> Copyright, License and History</H1
><P
> Copyright © 2001, 2002 by Privoxy Developers <TT
CLASS="EMAIL"
><H2
CLASS="SECT2"
><A
-NAME="AEN3103"
->12.1. License</A
-></H2
+NAME="AEN3134">12.1. License</H2
><P
> <SPAN
CLASS="APPLICATION"
><H2
CLASS="SECT2"
><A
-NAME="HISTORY"
->12.2. History</A
-></H2
+NAME="HISTORY">12.2. History</H2
><P
> In the beginning, there was the
<A
CLASS="APPLICATION"
>Privoxy</SPAN
>, whose first
- stable release, 3.0, is due in May 2002.</P
+ stable release, 3.0, is due in June 2002.</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
-NAME="AUTHORS"
->12.3. Authors</A
-></H2
+NAME="AUTHORS">12.3. Authors</H2
><P
> Current Project Developers:</P
><P
><P
CLASS="LITERALLAYOUT"
> Rodrigo Barbosa (RPM specfiles)<br>
+ Moritz Barsnick<br>
Hal Burgiss (docs)<br>
Alexander Lazic<br>
Gábor Lipták<br>
Guy<br>
Haroon Rafique<br>
+ Roland Rosenfeld<br>
David Schmidt (OS/2, Mac OSX ports)<br>
Joerg Strohmayer<br>
Sarantis Paskalis</P
><P
-> Originally developed by:</P
+> Based in part on code originally developed by:</P
><P
CLASS="LITERALLAYOUT"
> Junkbusters Corp.<br>
><P
CLASS="LITERALLAYOUT"
> Ken Arromdee<br>
+ Devin Bayer<br>
Reiner Buehl<br>
Andrew J. Caines<br>
Clifford Caoile<br>
+ Michael T. Davis<br>
Peter E<br>
Aaron Hamid<br>
Magnus Holmgren<br>
Paul Lieverse<br>
Roberto Ragusa<br>
+ Maynard Riley<br>
Bart Schelstraete<br>
- Darren Wiebe</P
+ Darren Wiebe<br>
+ jwz</P
></DIV
></DIV
><DIV
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="contact.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="seealso.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>The Filter File</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
REL="HOME"
TITLE="Privoxy User Manual"
HREF="index.html"><LINK
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="actions-file.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="templates.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="FILTER-FILE"
->9. The Filter File</A
-></H1
+NAME="FILTER-FILE">9. The Filter File</H1
><P
> All text substitutions that can be invoked through the
<TT
HREF="actions-file.html"
>actions files</A
>, the
- filter file is organized in sections, which are called <I
+ filter file is organized in sections, which are called <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>filters</I
+></SPAN
>
here. Each filter consists of a heading line, that starts with the
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>keyword</I
+></SPAN
> <TT
CLASS="LITERAL"
>FILTER:</TT
>, followed by
- the filter's <I
+ the filter's <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>name</I
+></SPAN
>, and a short (one line)
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>description</I
+></SPAN
> of what it does. Below that line
- come the <I
+ come the <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>jobs</I
+></SPAN
>, i.e. lines that define the actual
text substitutions. By convention, the name of a filter
- should describe what the filter <I
+ should describe what the filter <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>eliminates</I
+></SPAN
>. The
comment is used in the <A
HREF="http://config.privoxy.org/"
><H2
CLASS="SECT2"
><A
-NAME="AEN2909"
->9.1. Filter File Tutorial</A
-></H2
+NAME="AEN2940">9.1. Filter File Tutorial</H2
><P
> Now, let's complete our <SPAN
CLASS="QUOTE"
></TABLE
></P
><P
-> But wait! Didn't the comment say that <I
+> But wait! Didn't the comment say that <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>all</I
+></SPAN
> occurrences
of <SPAN
CLASS="QUOTE"
matches <SPAN
CLASS="QUOTE"
>"<script"</SPAN
->, followed by <I
+>, followed by <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>any</I
+></SPAN
> text, i.e.
it matches the whole page, from the start of the first <script> tag.</P
><P
CLASS="QUOTE"
>"document.referrer"</SPAN
>. The dot needed to
- be <I
+ be <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>escaped</I
+></SPAN
>, i.e. preceded by a backslash, to take away its
special meaning as a joker, and make it just a regular dot. So far, the meaning is:
Match from the start of the first <script> tag in a the page, up to, and including,
the text <SPAN
CLASS="QUOTE"
>"document.referrer"</SPAN
->, if <I
+>, if <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>both</I
+></SPAN
> are present
in the page (and appear in that order).</P
><P
text in between <SPAN
CLASS="QUOTE"
>"<script"</SPAN
-> and the <I
+> and the <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>first</I
+></SPAN
> occurrence
of <SPAN
CLASS="QUOTE"
CLASS="LITERAL"
>.*</TT
> will
- only span the text up to the <I
+ only span the text up to the <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>first</I
+></SPAN
> <SPAN
CLASS="QUOTE"
>"</script>"</SPAN
<TT
CLASS="LITERAL"
>"Not Your Business!"</TT
-> (<I
+> (<SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>including</I
+></SPAN
>
the quotation marks!), followed by the text remembered as <TT
CLASS="LITERAL"
> construct means: <SPAN
CLASS="QUOTE"
>"a single
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>or</I
+></SPAN
> a double quote"</SPAN
>.</P
><P
TARGET="_top"
>OnUnload
event binding</A
-> in the HTML DOM was a <I
+> in the HTML DOM was a <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>CRIME</I
+></SPAN
>.
When I close a browser window, I want it to close and die. Basta.
This job replaces the <SPAN
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="actions-file.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="templates.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>Privoxy User Manual</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
REL="NEXT"
TITLE="Introduction"
HREF="introduction.html"><LINK
><H1
CLASS="TITLE"
><A
-NAME="AEN2"
->Privoxy User Manual</A
-></H1
+NAME="AEN2">Privoxy User Manual</H1
><P
CLASS="PUBDATE"
> <SUB
><BR></P
><P
CLASS="PUBDATE"
->$Id: user-manual.sgml,v 1.121 2002/05/23 23:20:17 oes Exp $<BR></P
+>$Id: user-manual.sgml,v 1.123.2.5 2002/05/29 02:01:02 hal9 Exp $<BR></P
><DIV
><DIV
CLASS="ABSTRACT"
><A
-NAME="AEN9"
-></A
-><P
+NAME="AEN9"><P
></P
><P
-> The user manual gives users information on how to install, configure and use
- <A
+> The <I
+CLASS="CITETITLE"
+>User Manual</I
+> gives users information on how to
+ install, configure and use <A
HREF="http://www.privoxy.org/"
TARGET="_top"
><SPAN
Junkbuster</SPAN
> (tm).</P
><P
-> You can find the latest version of the user manual at <A
+> You can find the latest version of the <I
+CLASS="CITETITLE"
+>User Manual</I
+> at <A
HREF="http://www.privoxy.org/user-manual/"
TARGET="_top"
>http://www.privoxy.org/user-manual/</A
><DT
>2.1.1. <A
HREF="installation.html#INSTALLATION-PACK-RPM"
->Red Hat, SuSE RPMs and Conectiva</A
+>Red Hat, SuSE and Conectiva RPMs</A
></DT
><DT
>2.1.2. <A
><DT
>5.1. <A
HREF="startup.html#START-REDHAT"
->RedHat and Conectiva</A
+>Red Hat and Conectiva</A
></DT
><DT
>5.2. <A
><DL
><DT
>6.1. <A
-HREF="configuration.html#AEN501"
+HREF="configuration.html#AEN530"
>Controlling <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
><DL
><DT
>8.1. <A
-HREF="actions-file.html#AEN1553"
+HREF="actions-file.html#AEN1584"
>Finding the Right Mix</A
></DT
><DT
>8.2. <A
-HREF="actions-file.html#AEN1560"
+HREF="actions-file.html#AEN1591"
>How to Edit</A
></DT
><DT
><DD
><DL
><DT
->22<A
-HREF="actions-file.html#AEN1591"
-></A
-></DT
-><DT
>8.4.1. <A
-HREF="actions-file.html#AEN1624"
+HREF="actions-file.html#AEN1655"
>The Domain Pattern</A
></DT
><DT
>8.4.2. <A
-HREF="actions-file.html#AEN1686"
+HREF="actions-file.html#AEN1717"
>The Path Pattern</A
></DT
></DL
></DT
><DT
>8.5.21. <A
-HREF="actions-file.html#AEN2600"
+HREF="actions-file.html#AEN2631"
>Summary</A
></DT
></DL
><DL
><DT
>8.7.1. <A
-HREF="actions-file.html#AEN2652"
+HREF="actions-file.html#AEN2683"
>default.action</A
></DT
><DT
>8.7.2. <A
-HREF="actions-file.html#AEN2806"
+HREF="actions-file.html#AEN2837"
>user.action</A
></DT
></DL
><DL
><DT
>9.1. <A
-HREF="filter-file.html#AEN2909"
+HREF="filter-file.html#AEN2940"
>Filter File Tutorial</A
></DT
></DL
><DL
><DT
>12.1. <A
-HREF="copyright.html#AEN3103"
+HREF="copyright.html#AEN3134"
>License</A
></DT
><DT
></DT
><DT
>14.2. <A
-HREF="appendix.html#AEN3353"
+HREF="appendix.html#AEN3384"
><SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="introduction.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>Installation</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
REL="HOME"
TITLE="Privoxy User Manual"
HREF="index.html"><LINK
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="introduction.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="upgradersnote.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="INSTALLATION"
->2. Installation</A
-></H1
+NAME="INSTALLATION">2. Installation</H1
><P
> <SPAN
CLASS="APPLICATION"
> installation on your system, you
will need to remove it. On some platforms, this may be done for you as part
of their installation procedure. (See below for your platform). In any case
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>be sure to backup your old configuration if it is valuable to
you.</I
+></SPAN
> See the <A
HREF="upgradersnote.html"
>note to
><H2
CLASS="SECT2"
><A
-NAME="INSTALLATION-PACKAGES"
->2.1. Binary Packages</A
-></H2
+NAME="INSTALLATION-PACKAGES">2.1. Binary Packages</H2
><P
>How to install the binary packages depends on your operating system:</P
><DIV
><H3
CLASS="SECT3"
><A
-NAME="INSTALLATION-PACK-RPM"
->2.1.1. Red Hat, SuSE RPMs and Conectiva</A
-></H3
+NAME="INSTALLATION-PACK-RPM">2.1.1. Red Hat, SuSE and Conectiva RPMs</H3
><P
> RPMs can be installed with <TT
CLASS="LITERAL"
CLASS="APPLICATION"
>Privoxy</SPAN
> will
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>not</I
+></SPAN
> be automatically started on system boot. You will
need to enable that using <B
CLASS="COMMAND"
> If you have problems with failed dependencies, try rebuilding the SRC RPM:
<TT
CLASS="LITERAL"
->rpm --rebuild privoxy-2.9.15-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
><H3
CLASS="SECT3"
><A
-NAME="INSTALLATION-DEB"
->2.1.2. Debian</A
-></H3
+NAME="INSTALLATION-DEB">2.1.2. Debian</H3
><P
> DEBs can be installed with <TT
CLASS="LITERAL"
><H3
CLASS="SECT3"
><A
-NAME="INSTALLATION-PACK-WIN"
->2.1.3. Windows</A
-></H3
+NAME="INSTALLATION-PACK-WIN">2.1.3. Windows</H3
><P
> Just double-click the installer, which will guide you through
the installation process. You will find the configuration files
><H3
CLASS="SECT3"
><A
-NAME="INSTALLATION-PACK-BINTGZ"
->2.1.4. Solaris, NetBSD, FreeBSD, HP-UX</A
-></H3
+NAME="INSTALLATION-PACK-BINTGZ">2.1.4. Solaris, NetBSD, FreeBSD, HP-UX</H3
><P
> Create a new directory, <TT
CLASS="LITERAL"
>cd</TT
> to it, then unzip and
untar the archive. For the most part, you'll have to figure out where
- things go. FIXME.</P
+ things go. </P
></DIV
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
-NAME="INSTALLATION-OS2"
->2.1.5. OS/2</A
-></H3
+NAME="INSTALLATION-OS2">2.1.5. OS/2</H3
><P
> First, make sure that no previous installations of
<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> are left on your
- system. You can do this by </P
+ system. Check that no <SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+>
+ or <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> objects are in
+ your startup folder. </P
><P
> Then, just double-click the WarpIN self-installing archive, which will
guide you through the installation process. A shadow of the
><H3
CLASS="SECT3"
><A
-NAME="INSTALLATION-MAC"
->2.1.6. Max OSX</A
-></H3
+NAME="INSTALLATION-MAC">2.1.6. Max OSX</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,
><H3
CLASS="SECT3"
><A
-NAME="INSTALLATION-AMIGA"
->2.1.7. AmigaOS</A
-></H3
+NAME="INSTALLATION-AMIGA">2.1.7. AmigaOS</H3
><P
> Copy and then unpack the <TT
CLASS="FILENAME"
>
directory, including all configuration and log files. To uninstall, just
remove this directory.</P
-><P
-> Start <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> (with RUN <>NIL:) in your
- <TT
-CLASS="FILENAME"
->startnet</TT
-> script (AmiTCP), in
- <TT
-CLASS="FILENAME"
->s:user-startup</TT
-> (RoadShow), as startup program in your
- startup script (Genesis), or as startup action (Miami and MiamiDx).
- <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> will automatically quit when you quit your
- TCP/IP stack (just ignore the harmless warning your TCP/IP stack may display that
- <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> is still running).</P
></DIV
></DIV
><DIV
><H2
CLASS="SECT2"
><A
-NAME="INSTALLATION-SOURCE"
->2.2. Building from Source</A
-></H2
+NAME="INSTALLATION-SOURCE">2.2. Building from Source</H2
><P
> The most convenient way to obtain the <SPAN
CLASS="APPLICATION"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="introduction.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="upgradersnote.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>Introduction</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
REL="HOME"
TITLE="Privoxy User Manual"
HREF="index.html"><LINK
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="index.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="installation.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="INTRODUCTION"
->1. Introduction</A
-></H1
+NAME="INTRODUCTION">1. Introduction</H1
><P
> This documentation is included with the current beta version of
<SPAN
><P
> Since this is a beta version, not all new features are well tested. This
documentation may be slightly out of sync as a result (especially with
- CVS sources). And there <I
+ CVS sources). And there <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>may be</I
+></SPAN
> bugs, though hopefully
not many! </P
><DIV
><H2
CLASS="SECT2"
><A
-NAME="FEATURES"
->1.1. Features</A
-></H2
+NAME="FEATURES">1.1. Features</H2
><P
> In addition to <SPAN
CLASS="APPLICATION"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="installation.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>Quickstart to Using Privoxy</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
REL="HOME"
TITLE="Privoxy User Manual"
HREF="index.html"><LINK
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="upgradersnote.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="startup.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="QUICKSTART"
->4. Quickstart to Using <SPAN
+NAME="QUICKSTART">4. Quickstart to Using <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-></A
></H1
><P
> <P
><H2
CLASS="SECT2"
><A
-NAME="QUICKSTART-AD-BLOCKING"
->4.1. Quickstart to Ad Blocking</A
-></H2
+NAME="QUICKSTART-AD-BLOCKING">4.1. Quickstart to Ad Blocking</H2
><P
> Ad blocking is but one of <SPAN
CLASS="APPLICATION"
>
This section will provide a quick summary of ad blocking so
you can get up to speed quickly without having to read the more extensive
- information provided below, though this is highly recommeneded.</P
+ information provided below, though this is highly recommended.</P
><P
> First a bit of a warning ... blocking ads is much like blocking SPAM: the
more aggressive you are about it, the more likely you are to block
>"problem"</SPAN
> sites, and to spend more time adjusting the
configuration to solve these unintended consequences. In short, there is
- not an easy way to eliminate <I
+ not an easy way to eliminate <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>all</I
+></SPAN
> ads. Either take
- the easy way and settle for <I
+ the easy way and settle for <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>most</I
+></SPAN
> ads blocked with the
default configuration, or jump in and tweak it for your personal surfing
habits and preferences.</P
CLASS="APPLICATION"
>Privoxy</SPAN
> will perform the
- respective actions. If not, then nothing special happens. Futhermore, web
+ respective actions. If not, then nothing special happens. Furthermore, web
pages may contain embedded, secondary URLs that your web browser will
use to load additional components of the page, as it parses the
- original page's HTML content. An ad image for instance, is just a URL
+ original page's HTML content. An ad image for instance, is just an URL
embedded in the page somewhere. The image itself may be on the same server,
or a server somewhere else on the Internet. Complex web pages will have many
such embedded URLs.</P
>Privoxy</SPAN
>'s default configuration already does this
for all common image types (e.g. GIF), but there are many situations where this
- is not as easy to determine. So we'll force it in these cases. This is particularly
- important for ad blocking, since only if we know that it's an image, we can replace
- it by an image instead of the BLOCKED page, which would only result in a
+ is not so easy to determine. So we'll force it in these cases. This is particularly
+ important for ad blocking, since only if we know that it's an image of
+ some kind, can we replace it with an image of our choosing, instead of the
<SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> BLOCKED page (which would only result in
+ a <SPAN
CLASS="QUOTE"
>"broken image"</SPAN
-> icon. There are some limitations to this though. For
- instance, you can't just brute-force an image substituion for an entire HTML page
- in most situations.
+> icon). There are some limitations to this
+ though. For instance, you can't just brute-force an image substitution for
+ an entire HTML page in most situations.
</P
></LI
><LI
>block</A
></TT
> action somewhere in the
- configuration, <I
+ configuration, <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>and</I
+></SPAN
>, it must also match an
<TT
CLASS="LITERAL"
><TBODY
><TR
><TD
-> Â Â Â <I
+> Â Â Â <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>pattern</I
-> - a checkboard pattern, so that an ad
+></SPAN
+> - a checkerboard pattern, so that an ad
replacement is obvious. This is the default.
</TD
></TR
><TBODY
><TR
><TD
-> Â Â Â <I
+> Â Â Â <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>blank</I
+></SPAN
> - A very small empty GIF image is displayed.
This is the so-called <SPAN
CLASS="QUOTE"
><TBODY
><TR
><TD
-> Â Â Â <I
+> Â Â Â <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>http://<URL></I
+></SPAN
> - A redirect to any image anywhere
of the user's choosing (advanced usage).
</TD
> <DIV
CLASS="FIGURE"
><A
-NAME="AEN356"
-></A
-><P
+NAME="AEN355"><P
><B
>Figure 1. Actions Files in Use</B
></P
CLASS="MEDIAOBJECT"
><P
><IMG
-SRC="../images/files-in-use.jpg"
-ALT="Screenshot of Files in Use"
-></IMG
-></P
+SRC="../images/files-in-use.jpg"></P
></DIV
></DIV
>
HREF="actions-file.html#ACT-EXAMPLES"
>Actions Files Tutorial</A
>.
- The ideas explained thererin also apply to the web-based editor.</P
+ The ideas explained therein also apply to the web-based editor.</P
></DIV
></DIV
><DIV
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="upgradersnote.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="startup.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>See Also</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
REL="HOME"
TITLE="Privoxy User Manual"
HREF="index.html"><LINK
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="copyright.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="appendix.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="SEEALSO"
->13. See Also</A
-></H1
+NAME="SEEALSO">13. See Also</H1
><P
> Other references and sites of interest to <SPAN
CLASS="APPLICATION"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="copyright.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="appendix.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>Starting Privoxy</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
REL="HOME"
TITLE="Privoxy User Manual"
HREF="index.html"><LINK
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="quickstart.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="configuration.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="STARTUP"
->5. Starting <SPAN
+NAME="STARTUP">5. Starting <SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
-></A
></H1
><P
> Before launching <SPAN
127.0.0.1 (or localhost) for the proxy address, and port 8118 (earlier versions
used port 8000). This is the one configuration step that must be done!</P
><P
+> <DIV
+CLASS="FIGURE"
+><A
+NAME="AEN404"><P
+><B
+>Figure 2. Proxy Configuration (Mozilla)</B
+></P
+><DIV
+CLASS="MEDIAOBJECT"
+><P
+><IMG
+SRC="../images/proxy_setup.jpg"></P
+></DIV
+></DIV
+>
+ </P
+><P
>
With <SPAN
CLASS="APPLICATION"
<SPAN
CLASS="APPLICATION"
>Mozilla</SPAN
->), this can be set under <TT
-CLASS="LITERAL"
->Edit
- -> Preferences -> Advanced -> Proxies -> HTTP Proxy</TT
->.
- For <SPAN
+>), this can be set under:</P
+><P
+CLASS="LITERALLAYOUT"
+> <SPAN
+CLASS="GUIBUTTON"
+>Edit</SPAN
+><br>
+ |_ <br>
+ <SPAN
+CLASS="GUIBUTTON"
+>Preferences</SPAN
+><br>
+ |_ <br>
+ <SPAN
+CLASS="GUIBUTTON"
+>Advanced</SPAN
+><br>
+ |_ <br>
+ <SPAN
+CLASS="GUIBUTTON"
+>Proxies</SPAN
+><br>
+ |_ <br>
+ <SPAN
+CLASS="GUIBUTTON"
+>HTTP Proxy</SPAN
+></P
+><P
+> For <SPAN
CLASS="APPLICATION"
>Internet Explorer</SPAN
->: <TT
-CLASS="LITERAL"
->Tools ->
- Internet Properties -> Connections -> LAN Setting</TT
->. Then,
- check <SPAN
+>: </P
+><P
+CLASS="LITERALLAYOUT"
+> <SPAN
+CLASS="GUIBUTTON"
+>Tools</SPAN
+><br>
+ |_ <br>
+ <SPAN
+CLASS="GUIBUTTON"
+>Internet Properties</SPAN
+><br>
+ |_ <br>
+ <SPAN
+CLASS="GUIBUTTON"
+>Connections</SPAN
+><br>
+ |_ <br>
+ <SPAN
+CLASS="GUIBUTTON"
+>LAN Settings</SPAN
+></P
+><P
+> Then, check <SPAN
CLASS="QUOTE"
>"Use Proxy"</SPAN
-> and fill in the appropriate info (Address:
- 127.0.0.1, Port: 8118). Include if HTTPS proxy support too.</P
+> and fill in the appropriate info
+ (Address: 127.0.0.1, Port: 8118). Include HTTPS (SSL), if you want HTTPS
+ proxy support too. </P
><P
> After doing this, flush your browser's disk and memory caches to force a
re-reading of all pages and to get rid of any ads that may be cached. You
><H2
CLASS="SECT2"
><A
-NAME="START-REDHAT"
->5.1. RedHat and Conectiva</A
-></H2
+NAME="START-REDHAT">5.1. Red Hat and Conectiva</H2
><P
->We use a script. Note that RedHat does not start Privoxy upon booting per
-default. It will use the file <TT
+> We use a script. Note that Red Hat does not start Privoxy upon booting per
+ default. It will use the file <TT
CLASS="FILENAME"
>/etc/privoxy/config</TT
-> as its
-main configuration file.</P
+> as
+ its main configuration file.</P
><P
> <TABLE
BORDER="0"
><H2
CLASS="SECT2"
><A
-NAME="START-DEBIAN"
->5.2. Debian</A
-></H2
+NAME="START-DEBIAN">5.2. Debian</H2
><P
> We use a script. Note that Debian starts Privoxy upon booting per
default. It will use the file
><H2
CLASS="SECT2"
><A
-NAME="START-SUSE"
->5.3. SuSE</A
-></H2
+NAME="START-SUSE">5.3. SuSE</H2
><P
>We use a script. It will use the file <TT
CLASS="FILENAME"
><H2
CLASS="SECT2"
><A
-NAME="START-WINDOWS"
->5.4. Windows</A
-></H2
+NAME="START-WINDOWS">5.4. Windows</H2
><P
>Click on the Privoxy Icon to start Privoxy. If no configuration file is
specified on the command line, <SPAN
><H2
CLASS="SECT2"
><A
-NAME="START-UNICES"
->5.5. Solaris, NetBSD, FreeBSD, HP-UX and others</A
-></H2
+NAME="START-UNICES">5.5. Solaris, NetBSD, FreeBSD, HP-UX and others</H2
><P
>Example Unix startup command:</P
><P
><H2
CLASS="SECT2"
><A
-NAME="START-OS2"
->5.6. OS/2</A
-></H2
+NAME="START-OS2">5.6. OS/2</H2
><P
->FIXME.</P
+> During installation, <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is configured to
+ start automatically when the system restarts. You can start it manually by
+ double-clicking on the <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> icon in the
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> folder.</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
-NAME="START-MACOSX"
->5.7. MAX OSX</A
-></H2
+NAME="START-MACOSX">5.7. MAX OSX</H2
+><P
+> During installation, <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is configured to
+ start automatically when the system restarts. You can start it manually
+ through the Terminal with these commands:</P
><P
->FIXME.</P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+> cd /Applications/Privoxy.app
+ ./privoxy</PRE
+></TD
+></TR
+></TABLE
+></P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
-NAME="START-AMIGAOS"
->5.8. AmigaOS</A
-></H2
+NAME="START-AMIGAOS">5.8. AmigaOS</H2
><P
->FIXME.</P
+> Start <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> (with RUN <>NIL:) in your
+ <TT
+CLASS="FILENAME"
+>startnet</TT
+> script (AmiTCP), in
+ <TT
+CLASS="FILENAME"
+>s:user-startup</TT
+> (RoadShow), as startup program in your
+ startup script (Genesis), or as startup action (Miami and MiamiDx).
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> will automatically quit when you quit your
+ TCP/IP stack (just ignore the harmless warning your TCP/IP stack may display that
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is still running).</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
-NAME="CMDOPTIONS"
->5.9. Command Line Options</A
-></H2
+NAME="CMDOPTIONS">5.9. Command Line Options</H2
><P
> <SPAN
CLASS="APPLICATION"
><UL
><LI
><P
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>--version</I
+></SPAN
>
</P
><P
></LI
><LI
><P
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>--help</I
+></SPAN
>
</P
><P
></LI
><LI
><P
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>--no-daemon</I
+></SPAN
>
</P
><P
></LI
><LI
><P
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>--pidfile FILE</I
+></SPAN
>
</P
><P
-> On startup, write the process ID to <I
+> On startup, write the process ID to <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>FILE</I
+></SPAN
>. Delete the
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>FILE</I
+></SPAN
> on exit. Failure to create or delete the
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>FILE</I
-> is non-fatal. If no <I
+></SPAN
+> is non-fatal. If no <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>FILE</I
+></SPAN
>
option is given, no PID file will be used. Unix only.
</P
></LI
><LI
><P
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>--user USER[.GROUP]</I
+></SPAN
>
</P
><P
> After (optionally) writing the PID file, assume the user ID of
- <I
+ <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>USER</I
+></SPAN
>, and if included the GID of GROUP. Exit if the
privileges are not sufficient to do so. Unix only.
</P
></LI
><LI
><P
-> <I
+> <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>configfile</I
+></SPAN
>
</P
><P
-> If no <I
+> If no <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>configfile</I
+></SPAN
> is included on the command line,
<SPAN
CLASS="APPLICATION"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="quickstart.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="configuration.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>Templates</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
REL="HOME"
TITLE="Privoxy User Manual"
HREF="index.html"><LINK
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="filter-file.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="contact.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="TEMPLATES"
->10. Templates</A
-></H1
+NAME="TEMPLATES">10. Templates</H1
><P
> All <SPAN
CLASS="APPLICATION"
TARGET="_top"
>web-based
user interface</A
->, are generated from <I
+>, are generated from <SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>templates</I
+></SPAN
>.
(<SPAN
CLASS="APPLICATION"
>Privoxy</SPAN
> must be running for the above links to work as
- intended)</P
+ intended.)</P
><P
> These templates are stored in a subdirectory of the <A
HREF="config.html#CONFDIR"
> called <TT
CLASS="FILENAME"
>templates</TT
->. On unixish platforms,
+>. On Unixish platforms,
this is typically
<A
HREF="file:///etc/privoxy/templates/"
>Privoxy</SPAN
> fills at run time. You can
edit the templates with a normal text editor, should you want to customize them.
- (<I
+ (<SPAN
+CLASS="emphasis"
+><I
CLASS="EMPHASIS"
>Not recommended for the casual user</I
+></SPAN
>). Note that
just like in configuration files, lines starting with <TT
CLASS="LITERAL"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="filter-file.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="contact.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
>Note to Upgraders</TITLE
><META
NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
REL="HOME"
TITLE="Privoxy User Manual"
HREF="index.html"><LINK
><DIV
CLASS="NAVHEADER"
><TABLE
+SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="bottom"
><A
HREF="installation.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="bottom"
><A
HREF="quickstart.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR
><H1
CLASS="SECT1"
><A
-NAME="UPGRADERSNOTE"
->3. Note to Upgraders</A
-></H1
+NAME="UPGRADERSNOTE">3. Note to Upgraders</H1
><P
> There are very significant changes from earlier
<SPAN
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
VALIGN="top"
><A
HREF="installation.html"
+ACCESSKEY="P"
>Prev</A
></TD
><TD
VALIGN="top"
><A
HREF="index.html"
+ACCESSKEY="H"
>Home</A
></TD
><TD
VALIGN="top"
><A
HREF="quickstart.html"
+ACCESSKEY="N"
>Next</A
></TD
></TR