From: Fabian Keil <fk@fabiankeil.de> Date: Sun, 13 Nov 2011 17:06:49 +0000 (+0000) Subject: First rebuild for 3.0.18 stable X-Git-Tag: v_3_0_18~19 X-Git-Url: http://www.privoxy.org/gitweb/%22https:/developer-manual/faq/user-manual/static/@proxy-info-url@?a=commitdiff_plain;h=07cf496b6edcbd3cf315ec7c48f2c94be27357b1;p=privoxy.git First rebuild for 3.0.18 stable The diff is yet again a bit bloated because apparently the trailing white-space cleanup wasn't finished. --- diff --git a/doc/webserver/developer-manual/coding.html b/doc/webserver/developer-manual/coding.html index 7d7854e3..590801e3 100644 --- a/doc/webserver/developer-manual/coding.html +++ b/doc/webserver/developer-manual/coding.html @@ -1,108 +1,102 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Coding Guidelines - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy Developer Manual" href="index.html"> - <link rel="PREVIOUS" title="Documentation Guidelines" href= - "documentation.html"> - <link rel="NEXT" title="Testing Guidelines" href="testing.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Coding Guidelines</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy Developer Manual" href="index.html"> + <link rel="PREVIOUS" title="Documentation Guidelines" href= + "documentation.html"> + <link rel="NEXT" title="Testing Guidelines" href="testing.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy Developer Manual - </th> - </tr> - <tr> - <td width="10%" align="left" valign="bottom"> - <a href="documentation.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="testing.html" accesskey="N">Next</a> - </td> - </tr> - </table> - <hr width="100%" class="c1"> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + table.c3 {background-color: #E0E0E0} + span.c2 {font-style: italic} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy Developer Manual</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href= + "documentation.html" accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href="testing.html" + accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="CODING" id="CODING">4. Coding + Guidelines</a></h1> + + <div class="SECT2"> + <h2 class="SECT2"><a name="S1" id="S1">4.1. Introduction</a></h2> + + <p>This set of standards is designed to make our lives easier. It is + developed with the simple goal of helping us keep the "new and improved + <span class="APPLICATION">Privoxy</span>" consistent and reliable. Thus + making maintenance easier and increasing chances of success of the + project.</p> + + <p>And that of course comes back to us as individuals. If we can + increase our development and product efficiencies then we can solve + more of the request for changes/improvements and in general feel good + about ourselves. ;-></p> </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="CODING">4. Coding Guidelines</a> - </h1> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="S1">4.1. Introduction</a> - </h2> - <p> - This set of standards is designed to make our lives easier. It is - developed with the simple goal of helping us keep the "new and - improved <span class="APPLICATION">Privoxy</span>" consistent and - reliable. Thus making maintenance easier and increasing chances of - success of the project. - </p> - <p> - And that of course comes back to us as individuals. If we can - increase our development and product efficiencies then we can solve - more of the request for changes/improvements and in general feel - good about ourselves. ;-> - </p> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="S2">4.2. Using Comments</a> - </h2> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S3">4.2.1. Comment, Comment, Comment</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - Comment as much as possible without commenting the obvious. For - example do not comment "variable_a is equal to variable_b". - Instead explain why variable_a should be equal to the variable_b. - Just because a person can read code does not mean they will - understand why or what is being done. A reader may spend a lot - more time figuring out what is going on when a simple comment or - explanation would have prevented the extra research. Please help - your brother IJB'ers out! - </p> - <p> - The comments will also help justify the intent of the code. If - the comment describes something different than what the code is - doing then maybe a programming error is occurring. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + + <div class="SECT2"> + <h2 class="SECT2"><a name="S2" id="S2">4.2. Using Comments</a></h2> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S3" id="S3">4.2.1. Comment, Comment, + Comment</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>Comment as much as possible without commenting the obvious. For + example do not comment "variable_a is equal to variable_b". Instead + explain why variable_a should be equal to the variable_b. Just + because a person can read code does not mean they will understand why + or what is being done. A reader may spend a lot more time figuring + out what is going on when a simple comment or explanation would have + prevented the extra research. Please help your brother IJB'ers + out!</p> + + <p>The comments will also help justify the intent of the code. If the + comment describes something different than what the code is doing + then maybe a programming error is occurring.</p> + + <p><span class="emphasis EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> /* if page size greater than 1k ... */ if ( page_length() > 1024 ) { @@ -119,32 +113,29 @@ This demonstrates 2 cases of "what not to do". The first is a "syntax comment". The second is a comment that does not fit what is actually being done. </pre> - </td> - </tr> - </table> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S4">4.2.2. Use blocks for comments</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - Comments can help or they can clutter. They help when they are - differentiated from the code they describe. One line comments do - not offer effective separation between the comment and the code. - Block identifiers do, by surrounding the code with a clear, - definable pattern. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S4" id="S4">4.2.2. Use blocks for + comments</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>Comments can help or they can clutter. They help when they are + differentiated from the code they describe. One line comments do not + offer effective separation between the comment and the code. Block + identifiers do, by surrounding the code with a clear, definable + pattern.</p> + + <p><span class="emphasis EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> /********************************************************************* * This will stand out clearly in your code! *********************************************************************/ @@ -166,43 +157,37 @@ if ( this_variable == that_variable ) /* this may not either */ do_something_very_important(); } </pre> - </td> - </tr> - </table> - <p> - <span class="emphasis"><i class="EMPHASIS">Exception:</i></span> - </p> - <p> - If you are trying to add a small logic comment and do not wish to - "disrupt" the flow of the code, feel free to use a 1 line comment - which is NOT on the same line as the code. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S5">4.2.3. Keep Comments on their own line</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - It goes back to the question of readability. If the comment is on - the same line as the code it will be harder to read than the - comment that is on its own line. - </p> - <p> - There are three exceptions to this rule, which should be violated - freely and often: during the definition of variables, at the end - of closing braces, when used to comment parameters. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + + <p><span class="emphasis EMPHASIS c2">Exception:</span></p> + + <p>If you are trying to add a small logic comment and do not wish to + "disrupt" the flow of the code, feel free to use a 1 line comment + which is NOT on the same line as the code.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S5" id="S5">4.2.3. Keep Comments on their + own line</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>It goes back to the question of readability. If the comment is on + the same line as the code it will be harder to read than the comment + that is on its own line.</p> + + <p>There are three exceptions to this rule, which should be violated + freely and often: during the definition of variables, at the end of + closing braces, when used to comment parameters.</p> + + <p><span class="emphasis EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> /********************************************************************* * This will stand out clearly in your code, * But the second example won't. @@ -238,86 +223,71 @@ short do_something_very_important( } /* -END- do_something_very_important */ </pre> - </td> - </tr> - </table> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S6">4.2.4. Comment each logical step</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - Logical steps should be commented to help others follow the - intent of the written code and comments will make the code more - readable. - </p> - <p> - If you have 25 lines of code without a comment, you should - probably go back into it to see where you forgot to put one. - </p> - <p> - Most "for", "while", "do", etc... loops _probably_ need a - comment. After all, these are usually major logic containers. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S7">4.2.5. Comment All Functions Thoroughly</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - A reader of the code should be able to look at the comments just - prior to the beginning of a function and discern the reason for - its existence and the consequences of using it. The reader should - not have to read through the code to determine if a given - function is safe for a desired use. The proper information - thoroughly presented at the introduction of a function not only - saves time for subsequent maintenance or debugging, it more - importantly aids in code reuse by allowing a user to determine - the safety and applicability of any function for the problem at - hand. As a result of such benefits, all functions should contain - the information presented in the addendum section of this - document. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S8">4.2.6. Comment at the end of braces if the content - is more than one screen length</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - Each closing brace should be followed on the same line by a - comment that describes the origination of the brace if the - original brace is off of the screen, or otherwise far away from - the closing brace. This will simplify the debugging, maintenance, - and readability of the code. - </p> - <p> - As a suggestion , use the following flags to make the comment and - its brace more readable: - </p> - <p> - use following a closing brace: } /* -END- if() or while () or - etc... */ - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S6" id="S6">4.2.4. Comment each logical + step</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>Logical steps should be commented to help others follow the intent + of the written code and comments will make the code more + readable.</p> + + <p>If you have 25 lines of code without a comment, you should + probably go back into it to see where you forgot to put one.</p> + + <p>Most "for", "while", "do", etc... loops _probably_ need a comment. + After all, these are usually major logic containers.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S7" id="S7">4.2.5. Comment All Functions + Thoroughly</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>A reader of the code should be able to look at the comments just + prior to the beginning of a function and discern the reason for its + existence and the consequences of using it. The reader should not + have to read through the code to determine if a given function is + safe for a desired use. The proper information thoroughly presented + at the introduction of a function not only saves time for subsequent + maintenance or debugging, it more importantly aids in code reuse by + allowing a user to determine the safety and applicability of any + function for the problem at hand. As a result of such benefits, all + functions should contain the information presented in the addendum + section of this document.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S8" id="S8">4.2.6. Comment at the end of + braces if the content is more than one screen length</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>Each closing brace should be followed on the same line by a + comment that describes the origination of the brace if the original + brace is off of the screen, or otherwise far away from the closing + brace. This will simplify the debugging, maintenance, and readability + of the code.</p> + + <p>As a suggestion , use the following flags to make the comment and + its brace more readable:</p> + + <p>use following a closing brace: } /* -END- if() or while () or + etc... */</p> + + <p><span class="emphasis EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> if ( 1 == X ) { do_something_very_important(); @@ -332,301 +302,268 @@ if ( 1 == X ) ...some long list of commands... } /* -END- if ( 1 == X ) */ </pre> - </td> - </tr> - </table> - </div> + </td> + </tr> + </table> </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="S9">4.3. Naming Conventions</a> - </h2> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S10">4.3.1. Variable Names</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - Use all lowercase, and separate words via an underscore ('_'). Do - not start an identifier with an underscore. (ANSI C reserves - these for use by the compiler and system headers.) Do not use - identifiers which are reserved in ANSI C++. (E.g. template, - class, true, false, ...). This is in case we ever decide to port - Privoxy to C++. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="S9" id="S9">4.3. Naming Conventions</a></h2> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S10" id="S10">4.3.1. Variable + Names</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>Use all lowercase, and separate words via an underscore ('_'). Do + not start an identifier with an underscore. (ANSI C reserves these + for use by the compiler and system headers.) Do not use identifiers + which are reserved in ANSI C++. (E.g. template, class, true, false, + ...). This is in case we ever decide to port Privoxy to C++.</p> + + <p><span class="emphasis EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> int ms_iis5_hack = 0; </pre> - </td> - </tr> - </table> - <p> - <span class="emphasis"><i class="EMPHASIS">Instead of:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + + <p><span class="emphasis EMPHASIS c2">Instead of:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> int msiis5hack = 0; int msIis5Hack = 0; </pre> - </td> - </tr> - </table> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S11">4.3.2. Function Names</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - Use all lowercase, and separate words via an underscore ('_'). Do - not start an identifier with an underscore. (ANSI C reserves - these for use by the compiler and system headers.) Do not use - identifiers which are reserved in ANSI C++. (E.g. template, - class, true, false, ...). This is in case we ever decide to port - Privoxy to C++. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S11" id="S11">4.3.2. Function + Names</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>Use all lowercase, and separate words via an underscore ('_'). Do + not start an identifier with an underscore. (ANSI C reserves these + for use by the compiler and system headers.) Do not use identifiers + which are reserved in ANSI C++. (E.g. template, class, true, false, + ...). This is in case we ever decide to port Privoxy to C++.</p> + + <p><span class="emphasis EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> int load_some_file( struct client_state *csp ) </pre> - </td> - </tr> - </table> - <p> - <span class="emphasis"><i class="EMPHASIS">Instead of:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + + <p><span class="emphasis EMPHASIS c2">Instead of:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> int loadsomefile( struct client_state *csp ) int loadSomeFile( struct client_state *csp ) </pre> - </td> - </tr> - </table> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S12">4.3.3. Header file prototypes</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - Use a descriptive parameter name in the function prototype in - header files. Use the same parameter name in the header file that - you use in the c file. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S12" id="S12">4.3.3. Header file + prototypes</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</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 EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> (.h) extern int load_aclfile( struct client_state *csp ); (.c) int load_aclfile( struct client_state *csp ) </pre> - </td> - </tr> - </table> - <p> - <span class="emphasis"><i class="EMPHASIS">Instead of:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + + <p><span class="emphasis EMPHASIS c2">Instead of:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> (.h) extern int load_aclfile( struct client_state * ); or (.h) extern int load_aclfile(); (.c) int load_aclfile( struct client_state *csp ) </pre> - </td> - </tr> - </table> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S13">4.3.4. Enumerations, and #defines</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - Use all capital letters, with underscores between words. Do not - start an identifier with an underscore. (ANSI C reserves these - for use by the compiler and system headers.) - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S13" id="S13">4.3.4. Enumerations, and + #defines</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</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 EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> (enumeration) : enum Boolean { FALSE, TRUE }; (#define) : #define DEFAULT_SIZE 100; </pre> - </td> - </tr> - </table> - <p> - <span class="emphasis"><i class="EMPHASIS">Note:</i></span> We - have a standard naming scheme for #defines that toggle a feature - in the preprocessor: FEATURE_>, where > is a short - (preferably 1 or 2 word) description. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + + <p><span class="emphasis EMPHASIS c2">Note:</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 EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> #define FEATURE_FORCE 1 #ifdef FEATURE_FORCE #define FORCE_PREFIX blah #endif /* def FEATURE_FORCE */ </pre> - </td> - </tr> - </table> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S14">4.3.5. Constants</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - Spell common words out entirely (do not remove vowels). - </p> - <p> - Use only widely-known domain acronyms and abbreviations. - Capitalize all letters of an acronym. - </p> - <p> - Use underscore (_) to separate adjacent acronyms and - abbreviations. Never terminate a name with an underscore. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S14" id="S14">4.3.5. Constants</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>Spell common words out entirely (do not remove vowels).</p> + + <p>Use only widely-known domain acronyms and abbreviations. + Capitalize all letters of an acronym.</p> + + <p>Use underscore (_) to separate adjacent acronyms and + abbreviations. Never terminate a name with an underscore.</p> + + <p><span class="emphasis EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> #define USE_IMAGE_LIST 1 </pre> - </td> - </tr> - </table> - <p> - <span class="emphasis"><i class="EMPHASIS">Instead of:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + + <p><span class="emphasis EMPHASIS c2">Instead of:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> #define USE_IMG_LST 1 or #define _USE_IMAGE_LIST 1 or #define USE_IMAGE_LIST_ 1 or #define use_image_list 1 or #define UseImageList 1 </pre> - </td> - </tr> - </table> - </div> + </td> + </tr> + </table> </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="S15">4.4. Using Space</a> - </h2> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S16">4.4.1. Put braces on a line by themselves.</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - The brace needs to be on a line all by itself, not at the end of - the statement. Curly braces should line up with the construct - that they're associated with. This practice makes it easier to - identify the opening and closing braces for a block. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="S15" id="S15">4.4. Using Space</a></h2> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S16" id="S16">4.4.1. Put braces on a line + by themselves.</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>The brace needs to be on a line all by itself, not at the end of + the statement. Curly braces should line up with the construct that + they're associated with. This practice makes it easier to identify + the opening and closing braces for a block.</p> + + <p><span class="emphasis EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> if ( this == that ) { ... } </pre> - </td> - </tr> - </table> - <p> - <span class="emphasis"><i class="EMPHASIS">Instead of:</i></span> - </p> - <p> - if ( this == that ) { ... } - </p> - <p> - or - </p> - <p> - if ( this == that ) { ... } - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Note:</i></span> In - the special case that the if-statement is inside a loop, and it - is trivial, i.e. it tests for a condition that is obvious from - the purpose of the block, one-liners as above may optically - preserve the loop structure and make it easier to read. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Status:</i></span> - developer-discretion. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example - exception:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + + <p><span class="emphasis EMPHASIS c2">Instead of:</span></p> + + <p>if ( this == that ) { ... }</p> + + <p>or</p> + + <p>if ( this == that ) { ... }</p> + + <p><span class="emphasis EMPHASIS c2">Note:</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 EMPHASIS c2">Status:</span> + developer-discretion.</p> + + <p><span class="emphasis EMPHASIS c2">Example exception:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> while ( more lines are read ) { /* Please document what is/is not a comment line here */ @@ -635,112 +572,95 @@ while ( more lines are read ) do_something( line ); } </pre> - </td> - </tr> - </table> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S17">4.4.2. ALL control statements should have a - block</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - Using braces to make a block will make your code more readable - and less prone to error. All control statements should have a - block defined. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S17" id="S17">4.4.2. ALL control + statements should have a block</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</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 EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> if ( this == that ) { do_something(); do_something_else(); } </pre> - </td> - </tr> - </table> - <p> - <span class="emphasis"><i class="EMPHASIS">Instead of:</i></span> - </p> - <p> - if ( this == that ) do_something(); do_something_else(); - </p> - <p> - or - </p> - <p> - if ( this == that ) do_something(); - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Note:</i></span> The - first example in "Instead of" will execute in a manner other than - that which the developer desired (per indentation). Using code - braces would have prevented this "feature". The "explanation" and - "exception" from the point above also applies. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S18">4.4.3. Do not belabor/blow-up boolean - expressions</a> - </h3> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + + <p><span class="emphasis EMPHASIS c2">Instead of:</span></p> + + <p>if ( this == that ) do_something(); do_something_else();</p> + + <p>or</p> + + <p>if ( this == that ) do_something();</p> + + <p><span class="emphasis EMPHASIS c2">Note:</span> The first example + in "Instead of" will execute in a manner other than that which the + developer desired (per indentation). Using code braces would have + prevented this "feature". The "explanation" and "exception" from the + point above also applies.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S18" id="S18">4.4.3. Do not + belabor/blow-up boolean expressions</a></h3> + + <p><span class="emphasis EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> structure->flag = ( condition ); </pre> - </td> - </tr> - </table> - <p> - <span class="emphasis"><i class="EMPHASIS">Instead of:</i></span> - </p> - <p> - if ( condition ) { structure->flag = 1; } else { - structure->flag = 0; } - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Note:</i></span> The - former is readable and concise. The later is wordy and - inefficient. Please assume that any developer new to the project - has at least a "good" knowledge of C/C++. (Hope I do not offend - by that last comment ... 8-) - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S19">4.4.4. Use white space freely because it is - free</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - Make it readable. The notable exception to using white space - freely is listed in the next guideline. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + + <p><span class="emphasis EMPHASIS c2">Instead of:</span></p> + + <p>if ( condition ) { structure->flag = 1; } else { + structure->flag = 0; }</p> + + <p><span class="emphasis EMPHASIS c2">Note:</span> The former is + readable and concise. The later is wordy and inefficient. Please + assume that any developer new to the project has at least a "good" + knowledge of C/C++. (Hope I do not offend by that last comment ... + 8-)</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S19" id="S19">4.4.4. Use white space + freely because it is free</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</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 EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> int first_value = 0; int some_value = 0; int another_value = 0; @@ -750,59 +670,52 @@ if ( this_variable == this_variable ) first_value = old_value + ( ( some_value - another_value ) - whatever ) </pre> - </td> - </tr> - </table> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S20">4.4.5. Don't use white space around structure - operators</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - - structure pointer operator ( "->" ) - member operator ( "." - ) - functions and parentheses - </p> - <p> - It is a general coding practice to put pointers, references, and - function parentheses next to names. With spaces, the connection - between the object and variable/function name is not as clear. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S20" id="S20">4.4.5. Don't use white space + around structure operators</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>- structure pointer operator ( "->" ) - member operator ( "." ) + - functions and parentheses</p> + + <p>It is a general coding practice to put pointers, references, and + function parentheses next to names. With spaces, the connection + between the object and variable/function name is not as clear.</p> + + <p><span class="emphasis EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> a_struct->a_member; a_struct.a_member; function_name(); </pre> - </td> - </tr> - </table> - <p> - <span class="emphasis"><i class="EMPHASIS">Instead of:</i></span> - a_struct -> a_member; a_struct . a_member; function_name (); - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S21">4.4.6. Make the last brace of a function stand - out</a> - </h3> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + + <p><span class="emphasis EMPHASIS c2">Instead of:</span> a_struct + -> a_member; a_struct . a_member; function_name ();</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S21" id="S21">4.4.6. Make the last brace + of a function stand out</a></h3> + + <p><span class="emphasis EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> int function1( ... ) { ...code... @@ -815,52 +728,45 @@ int function2( ... ) { } /* -END- function2 */ </pre> - </td> - </tr> - </table> - <p> - <span class="emphasis"><i class="EMPHASIS">Instead of:</i></span> - </p> - <p> - int function1( ... ) { ...code... return( ret_code ); } int - function2( ... ) { } - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Note:</i></span> Use 1 - blank line before the closing brace and 2 lines afterward. This - makes the end of function standout to the most casual viewer. - Although function comments help separate functions, this is still - a good coding practice. In fact, I follow these rules when using - blocks in "for", "while", "do" loops, and long if {} statements - too. After all whitespace is free! - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Status:</i></span> - developer-discretion on the number of blank lines. Enforced is - the end of function comments. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S22">4.4.7. Use 3 character indentions</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - If some use 8 character TABs and some use 3 character TABs, the - code can look *very* ragged. So use 3 character indentions only. - If you like to use TABs, pass your code through a filter such as - "expand -t3" before checking in your code. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + + <p><span class="emphasis EMPHASIS c2">Instead of:</span></p> + + <p>int function1( ... ) { ...code... return( ret_code ); } int + function2( ... ) { }</p> + + <p><span class="emphasis EMPHASIS c2">Note:</span> Use 1 blank line + before the closing brace and 2 lines afterward. This makes the end of + function standout to the most casual viewer. Although function + comments help separate functions, this is still a good coding + practice. In fact, I follow these rules when using blocks in "for", + "while", "do" loops, and long if {} statements too. After all + whitespace is free!</p> + + <p><span class="emphasis EMPHASIS c2">Status:</span> + developer-discretion on the number of blank lines. Enforced is the + end of function comments.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S22" id="S22">4.4.7. Use 3 character + indentions</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>If some use 8 character TABs and some use 3 character TABs, the + code can look *very* ragged. So use 3 character indentions only. If + you like to use TABs, pass your code through a filter such as "expand + -t3" before checking in your code.</p> + + <p><span class="emphasis EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> static const char * const url_code_map[256] = { NULL, ... @@ -882,154 +788,132 @@ int function1( ... ) } </pre> - </td> - </tr> - </table> - </div> + </td> + </tr> + </table> </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="S23">4.5. Initializing</a> - </h2> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S24">4.5.1. Initialize all variables</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - Do not assume that the variables declared will not be used until - after they have been assigned a value somewhere else in the code. - Remove the chance of accidentally using an unassigned variable. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="S23" id="S23">4.5. Initializing</a></h2> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S24" id="S24">4.5.1. Initialize all + variables</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>Do not assume that the variables declared will not be used until + after they have been assigned a value somewhere else in the code. + Remove the chance of accidentally using an unassigned variable.</p> + + <p><span class="emphasis EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> short a_short = 0; float a_float = 0; struct *ptr = NULL; </pre> - </td> - </tr> - </table> - <p> - <span class="emphasis"><i class="EMPHASIS">Note:</i></span> It is - much easier to debug a SIGSEGV if the message says you are trying - to access memory address 00000000 and not 129FA012; or - array_ptr[20] causes a SIGSEV vs. array_ptr[0]. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Status:</i></span> - developer-discretion if and only if the variable is assigned a - value "shortly after" declaration. - </p> - </div> + </td> + </tr> + </table> + + <p><span class="emphasis EMPHASIS c2">Note:</span> It is much easier + to debug a SIGSEGV if the message says you are trying to access + memory address 00000000 and not 129FA012; or array_ptr[20] causes a + SIGSEV vs. array_ptr[0].</p> + + <p><span class="emphasis EMPHASIS c2">Status:</span> + developer-discretion if and only if the variable is assigned a value + "shortly after" declaration.</p> </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="S25">4.6. Functions</a> - </h2> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S26">4.6.1. Name functions that return a boolean as a - question.</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - Value should be phrased as a question that would logically be - answered as a true or false statement - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="S25" id="S25">4.6. Functions</a></h2> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S26" id="S26">4.6.1. Name functions that + return a boolean as a question.</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</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 EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> should_we_block_this(); contains_an_image(); is_web_page_blank(); </pre> - </td> - </tr> - </table> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S27">4.6.2. Always specify a return type for a - function.</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - The default return for a function is an int. To avoid ambiguity, - create a return for a function when the return has a purpose, and - create a void return type if the function does not need to return - anything. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S28">4.6.3. Minimize function calls when iterating by - using variables</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - It is easy to write the following code, and a clear argument can - be made that the code is easy to understand: - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S27" id="S27">4.6.2. Always specify a + return type for a function.</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>The default return for a function is an int. To avoid ambiguity, + create a return for a function when the return has a purpose, and + create a void return type if the function does not need to return + anything.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S28" id="S28">4.6.3. Minimize function + calls when iterating by using variables</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</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 EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> for ( size_t cnt = 0; cnt < block_list_length(); cnt++ ) { .... } </pre> - </td> - </tr> - </table> - <p> - <span class="emphasis"><i class="EMPHASIS">Note:</i></span> - Unfortunately, this makes a function call for each and every - iteration. This increases the overhead in the program, because - the compiler has to look up the function each time, call it, and - return a value. Depending on what occurs in the - block_list_length() call, it might even be creating and - destroying structures with each iteration, even though in each - case it is comparing "cnt" to the same value, over and over. - Remember too - even a call to block_list_length() is a function - call, with the same overhead. - </p> - <p> - Instead of using a function call during the iterations, assign - the value to a variable, and evaluate using the variable. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + + <p><span class="emphasis EMPHASIS c2">Note:</span> Unfortunately, + this makes a function call for each and every iteration. This + increases the overhead in the program, because the compiler has to + look up the function each time, call it, and return a value. + Depending on what occurs in the block_list_length() call, it might + even be creating and destroying structures with each iteration, even + though in each case it is comparing "cnt" to the same value, over and + over. Remember too - even a call to block_list_length() is a function + call, with the same overhead.</p> + + <p>Instead of using a function call during the iterations, assign the + value to a variable, and evaluate using the variable.</p> + + <p><span class="emphasis EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> size_t len = block_list_length(); for ( size_t cnt = 0; cnt < len; cnt++ ) @@ -1037,161 +921,137 @@ for ( size_t cnt = 0; cnt < len; cnt++ ) .... } </pre> - </td> - </tr> - </table> - <p> - <span class="emphasis"><i class="EMPHASIS">Exceptions:</i></span> - if the value of block_list_length() *may* change or could - *potentially* change, then you must code the function call in the - for/while loop. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S29">4.6.4. Pass and Return by Const Reference</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - This allows a developer to define a const pointer and call your - function. If your function does not have the const keyword, we - may not be able to use your function. Consider strcmp, if it were - defined as: extern int strcmp( char *s1, char *s2 ); - </p> - <p> - I could then not use it to compare argv's in main: int main( int - argc, const char *argv[] ) { strcmp( argv[0], "privoxy" ); } - </p> - <p> - Both these pointers are *const*! If the c runtime library - maintainers do it, we should too. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S30">4.6.5. Pass and Return by Value</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - Most structures cannot fit onto a normal stack entry (i.e. they - are not 4 bytes or less). Aka, a function declaration like: int - load_aclfile( struct client_state csp ) - </p> - <p> - would not work. So, to be consistent, we should declare all - prototypes with "pass by value": int load_aclfile( struct - client_state *csp ) - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S31">4.6.6. Names of include files</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - Your include statements should contain the file name without a - path. The path should be listed in the Makefile, using -I as - processor directive to search the indicated paths. An exception - to this would be for some proprietary software that utilizes a - partial path to distinguish their header files from system or - other header files. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + + <p><span class="emphasis EMPHASIS c2">Exceptions:</span> if the value + of block_list_length() *may* change or could *potentially* change, + then you must code the function call in the for/while loop.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S29" id="S29">4.6.4. Pass and Return by + Const Reference</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>This allows a developer to define a const pointer and call your + function. If your function does not have the const keyword, we may + not be able to use your function. Consider strcmp, if it were defined + as: extern int strcmp( char *s1, char *s2 );</p> + + <p>I could then not use it to compare argv's in main: int main( int + argc, const char *argv[] ) { strcmp( argv[0], "privoxy" ); }</p> + + <p>Both these pointers are *const*! If the c runtime library + maintainers do it, we should too.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S30" id="S30">4.6.5. Pass and Return by + Value</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>Most structures cannot fit onto a normal stack entry (i.e. they + are not 4 bytes or less). Aka, a function declaration like: int + load_aclfile( struct client_state csp )</p> + + <p>would not work. So, to be consistent, we should declare all + prototypes with "pass by value": int load_aclfile( struct + client_state *csp )</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S31" id="S31">4.6.6. Names of include + files</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>Your include statements should contain the file name without a + path. The path should be listed in the Makefile, using -I as + processor directive to search the indicated paths. An exception to + this would be for some proprietary software that utilizes a partial + path to distinguish their header files from system or other header + files.</p> + + <p><span class="emphasis EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> #include <iostream.h> /* This is not a local include */ #include "config.h" /* This IS a local include */ </pre> - </td> - </tr> - </table> - <p> - <span class="emphasis"><i class="EMPHASIS">Exception:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + + <p><span class="emphasis EMPHASIS c2">Exception:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> /* This is not a local include, but requires a path element. */ #include <sys/fileName.h> </pre> - </td> - </tr> - </table> - - <p> - <span class="emphasis"><i class="EMPHASIS">Note:</i></span> - Please! do not add "-I." to the Makefile without a _very_ good - reason. This duplicates the #include "file.h" behavior. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S32">4.6.7. Provide multiple inclusion protection</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - Prevents compiler and linker errors resulting from redefinition - of items. - </p> - <p> - Wrap each header file with the following syntax to prevent - multiple inclusions of the file. Of course, replace PROJECT_H - with your file name, with "." Changed to "_", and make it - uppercase. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + + <p><span class="emphasis EMPHASIS c2">Note:</span> Please! do not add + "-I." to the Makefile without a _very_ good reason. This duplicates + the #include "file.h" behavior.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S32" id="S32">4.6.7. Provide multiple + inclusion protection</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>Prevents compiler and linker errors resulting from redefinition of + items.</p> + + <p>Wrap each header file with the following syntax to prevent + multiple inclusions of the file. Of course, replace PROJECT_H with + your file name, with "." Changed to "_", and make it uppercase.</p> + + <p><span class="emphasis EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> #ifndef PROJECT_H_INCLUDED #define PROJECT_H_INCLUDED ... #endif /* ndef PROJECT_H_INCLUDED */ </pre> - </td> - </tr> - </table> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S33">4.6.8. Use `extern "C"` when appropriate</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - If our headers are included from C++, they must declare our - functions as `extern "C"`. This has no cost in C, but increases - the potential re-usability of our code. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S33" id="S33">4.6.8. Use `extern "C"` when + appropriate</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</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 EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> #ifdef __cplusplus extern "C" { @@ -1203,90 +1063,78 @@ extern "C" } #endif /* def __cplusplus */ </pre> - </td> - </tr> - </table> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S34">4.6.9. Where Possible, Use Forward Struct - Declaration Instead of Includes</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - Useful in headers that include pointers to other struct's. - Modifications to excess header files may cause needless compiles. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S34" id="S34">4.6.9. Where Possible, Use + Forward Struct Declaration Instead of Includes</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</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 EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> /********************************************************************* * We're avoiding an include statement here! *********************************************************************/ struct file_list; extern file_list *xyz; </pre> - </td> - </tr> - </table> - <p> - <span class="emphasis"><i class="EMPHASIS">Note:</i></span> If - you declare "file_list xyz;" (without the pointer), then - including the proper header file is necessary. If you only want - to prototype a pointer, however, the header file is unnecessary. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Status:</i></span> Use - with discretion. - </p> - </div> + </td> + </tr> + </table> + + <p><span class="emphasis EMPHASIS c2">Note:</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 EMPHASIS c2">Status:</span> Use with + discretion.</p> </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="S35">4.7. General Coding Practices</a> - </h2> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S36">4.7.1. Turn on warnings</a> - </h3> - <p> - <span class="emphasis"><i class="EMPHASIS">Explanation</i></span> - </p> - <p> - Compiler warnings are meant to help you find bugs. You should - turn on as many as possible. With GCC, the switch is "-Wall". Try - and fix as many warnings as possible. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S37">4.7.2. Provide a default case for all switch - statements</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - What you think is guaranteed is never really guaranteed. The - value that you don't think you need to check is the one that - someday will be passed. So, to protect yourself from the unknown, - always have a default step in a switch statement. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="S35" id="S35">4.7. General Coding + Practices</a></h2> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S36" id="S36">4.7.1. Turn on + warnings</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation</span></p> + + <p>Compiler warnings are meant to help you find bugs. You should turn + on as many as possible. With GCC, the switch is "-Wall". Try and fix + as many warnings as possible.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S37" id="S37">4.7.2. Provide a default + case for all switch statements</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>What you think is guaranteed is never really guaranteed. The value + that you don't think you need to check is the one that someday will + be passed. So, to protect yourself from the unknown, always have a + default step in a switch statement.</p> + + <p><span class="emphasis EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> switch( hash_string( cmd ) ) { case hash_actions_file : @@ -1304,297 +1152,244 @@ switch( hash_string( cmd ) ) } /* end switch( hash_string( cmd ) ) */ </pre> - </td> - </tr> - </table> - <p> - <span class="emphasis"><i class="EMPHASIS">Note:</i></span> If - you already have a default condition, you are obviously exempt - from this point. Of note, most of the WIN32 code calls - `DefWindowProc' after the switch statement. This API call - *should* be included in a default statement. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Another - Note:</i></span> This is not so much a readability issue as a - robust programming issue. The "anomaly code goes here" may be no - more than a print to the STDERR stream (as in load_config). Or it - may really be an abort condition. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Status:</i></span> - Programmer discretion is advised. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S38">4.7.3. Try to avoid falling through cases in a - switch statement.</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - In general, you will want to have a 'break' statement within each - 'case' of a switch statement. This allows for the code to be more - readable and understandable, and furthermore can prevent unwanted - surprises if someone else later gets creative and moves the code - around. - </p> - <p> - The language allows you to plan the fall through from one case - statement to another simply by omitting the break statement - within the case statement. This feature does have benefits, but - should only be used in rare cases. In general, use a break - statement for each case statement. - </p> - <p> - If you choose to allow fall through, you should comment both the - fact of the fall through and reason why you felt it was - necessary. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S39">4.7.4. Use 'long' or 'short' Instead of 'int'</a> - </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 now). Should we add - these to IJB now that we have a "configure" script? - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S40">4.7.5. Don't mix size_t and other types</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - The type of size_t varies across platforms. Do not make - assumptions about whether it is signed or unsigned, or about how - long it is. Do not compare a size_t against another variable of a - different type (or even against a constant) without casting one - of the values. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S41">4.7.6. Declare each variable and struct on its own - line.</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - It can be tempting to declare a series of variables all on one - line. Don't. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + + <p><span class="emphasis EMPHASIS c2">Note:</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 EMPHASIS c2">Another Note:</span> This is + not so much a readability issue as a robust programming issue. The + "anomaly code goes here" may be no more than a print to the STDERR + stream (as in load_config). Or it may really be an abort + condition.</p> + + <p><span class="emphasis EMPHASIS c2">Status:</span> Programmer + discretion is advised.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S38" id="S38">4.7.3. Try to avoid falling + through cases in a switch statement.</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>In general, you will want to have a 'break' statement within each + 'case' of a switch statement. This allows for the code to be more + readable and understandable, and furthermore can prevent unwanted + surprises if someone else later gets creative and moves the code + around.</p> + + <p>The language allows you to plan the fall through from one case + statement to another simply by omitting the break statement within + the case statement. This feature does have benefits, but should only + be used in rare cases. In general, use a break statement for each + case statement.</p> + + <p>If you choose to allow fall through, you should comment both the + fact of the fall through and reason why you felt it was + necessary.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S39" id="S39">4.7.4. Use 'long' or 'short' + Instead of 'int'</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</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 EMPHASIS c2">Status:</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 now). Should we add these to IJB now that we have a + "configure" script?</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S40" id="S40">4.7.5. Don't mix size_t and + other types</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>The type of size_t varies across platforms. Do not make + assumptions about whether it is signed or unsigned, or about how long + it is. Do not compare a size_t against another variable of a + different type (or even against a constant) without casting one of + the values.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S41" id="S41">4.7.6. Declare each variable + and struct on its own line.</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>It can be tempting to declare a series of variables all on one + line. Don't.</p> + + <p><span class="emphasis EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> long a = 0; long b = 0; long c = 0; </pre> - </td> - </tr> - </table> - <p> - <span class="emphasis"><i class="EMPHASIS">Instead of:</i></span> - </p> - <p> - long a, b, c; - </p> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - there is more room for - comments on the individual variables - easier to add new - variables without messing up the original ones - when searching - on a variable to find its type, there is less clutter to - "visually" eliminate - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Exceptions:</i></span> - when you want to declare a bunch of loop variables or other - trivial variables; feel free to declare them on one line. You - should, although, provide a good comment on their functions. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Status:</i></span> - developer-discretion. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S42">4.7.7. Use malloc/zalloc sparingly</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - Create a local struct (on the stack) if the variable will live - and die within the context of one function call. - </p> - <p> - Only "malloc" a struct (on the heap) if the variable's life will - extend beyond the context of one function call. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + + <p><span class="emphasis EMPHASIS c2">Instead of:</span></p> + + <p>long a, b, c;</p> + + <p><span class="emphasis EMPHASIS c2">Explanation:</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 EMPHASIS c2">Exceptions:</span> when you + want to declare a bunch of loop variables or other trivial variables; + feel free to declare them on one line. You should, although, provide + a good comment on their functions.</p> + + <p><span class="emphasis EMPHASIS c2">Status:</span> + developer-discretion.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S42" id="S42">4.7.7. Use malloc/zalloc + sparingly</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>Create a local struct (on the stack) if the variable will live and + die within the context of one function call.</p> + + <p>Only "malloc" a struct (on the heap) if the variable's life will + extend beyond the context of one function call.</p> + + <p><span class="emphasis EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> If a function creates a struct and stores a pointer to it in a list, then it should definitely be allocated via `malloc'. </pre> - </td> - </tr> - </table> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S43">4.7.8. The Programmer Who Uses 'malloc' is - Responsible for Ensuring 'free'</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - If you have to "malloc" an instance, you are responsible for - insuring that the instance is `free'd, even if the deallocation - event falls within some other programmer's code. You are also - responsible for ensuring that deletion is timely (i.e. not too - soon, not too late). This is known as "low-coupling" and is a - "good thing (tm)". You may need to offer a free/unload/destructor - type function to accommodate this. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S43" id="S43">4.7.8. The Programmer Who + Uses 'malloc' is Responsible for Ensuring 'free'</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>If you have to "malloc" an instance, you are responsible for + insuring that the instance is `free'd, even if the deallocation event + falls within some other programmer's code. You are also responsible + for ensuring that deletion is timely (i.e. not too soon, not too + late). This is known as "low-coupling" and is a "good thing (tm)". + You may need to offer a free/unload/destructor type function to + accommodate this.</p> + + <p><span class="emphasis EMPHASIS c2">Example:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> int load_re_filterfile( struct client_state *csp ) { ... } static void unload_re_filterfile( void *f ) { ... } </pre> - </td> - </tr> - </table> - <p> - <span class="emphasis"><i class="EMPHASIS">Exceptions:</i></span> - </p> - <p> - The developer cannot be expected to provide `free'ing functions - for C run-time library functions ... such as `strdup'. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Status:</i></span> - developer-discretion. The "main" use of this standard is for - allocating and freeing data structures (complex or nested). - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S44">4.7.9. Add loaders to the `file_list' structure and - in order</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - I have ordered all of the "blocker" file code to be in alpha - order. It is easier to add/read new blockers when you expect a - certain order. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Note:</i></span> It - may appear that the alpha order is broken in places by POPUP - tests coming before PCRS tests. But since POPUPs can also be - referred to as KILLPOPUPs, it is clear that it should come first. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="S45">4.7.10. "Uncertain" new code and/or changes to - existing code, use FIXME or XXX</a> - </h3> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Explanation:</i></span> - </p> - <p> - If you have enough confidence in new code or confidence in your - changes, but are not *quite* sure of the repercussions, add this: - </p> - <p> - /* FIXME: this code has a logic error on platform XYZ, * - attempting to fix */ #ifdef PLATFORM ...changed code here... - #endif - </p> - <p> - or: - </p> - <p> - /* FIXME: I think the original author really meant this... */ - ...changed code here... - </p> - <p> - or: - </p> - <p> - /* 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 project). - </p> - </div> + </td> + </tr> + </table> + + <p><span class="emphasis EMPHASIS c2">Exceptions:</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 EMPHASIS c2">Status:</span> + developer-discretion. The "main" use of this standard is for + allocating and freeing data structures (complex or nested).</p> </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="S46">4.8. Addendum: Template for files and function - comment blocks:</a> - </h2> - <p> - <span class="emphasis"><i class="EMPHASIS">Example for file - comments:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> -const char FILENAME_rcs[] = "$Id: coding.html,v 1.54 2010/11/13 12:50:18 fabiankeil Exp $"; + + <div class="SECT3"> + <h3 class="SECT3"><a name="S44" id="S44">4.7.9. Add loaders to the + `file_list' structure and in order</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</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 EMPHASIS c2">Note:</span> It may appear that + the alpha order is broken in places by POPUP tests coming before PCRS + tests. But since POPUPs can also be referred to as KILLPOPUPs, it is + clear that it should come first.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="S45" id="S45">4.7.10. "Uncertain" new code + and/or changes to existing code, use FIXME or XXX</a></h3> + + <p><span class="emphasis EMPHASIS c2">Explanation:</span></p> + + <p>If you have enough confidence in new code or confidence in your + changes, but are not *quite* sure of the repercussions, add this:</p> + + <p>/* FIXME: this code has a logic error on platform XYZ, * + attempting to fix */ #ifdef PLATFORM ...changed code here... + #endif</p> + + <p>or:</p> + + <p>/* FIXME: I think the original author really meant this... */ + ...changed code here...</p> + + <p>or:</p> + + <p>/* FIXME: new code that *may* break something else... */ ...new + code here...</p> + + <p><span class="emphasis EMPHASIS c2">Note:</span> If you make it + clear that this may or may not be a "good thing (tm)", it will be + easier to identify and include in the project (or conversely exclude + from the project).</p> + </div> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="S46" id="S46">4.8. Addendum: Template for + files and function comment blocks:</a></h2> + + <p><span class="emphasis EMPHASIS c2">Example for file + comments:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> +const char FILENAME_rcs[] = "$Id$"; /********************************************************************* * - * File : $Source: /cvsroot/ijbswa/current/doc/webserver/developer-manual/coding.html,v $ + * File : $Source$ * * Purpose : (Fill me in with a good description!) * @@ -1629,37 +1424,34 @@ const char FILENAME_rcs[] = "$Id: coding.html,v 1.54 2010/11/13 12:50:18 fabiank const char FILENAME_h_rcs[] = FILENAME_H_VERSION; </pre> - </td> - </tr> - </table> - <p> - <span class="emphasis"><i class="EMPHASIS">Note:</i></span> This - declares the rcs variables that should be added to the - "show-proxy-args" page. If this is a brand new creation by you, you - are free to change the "Copyright" section to represent the rights - you wish to maintain. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Note:</i></span> The - formfeed character that is present right after the comment flower - box is handy for (X|GNU)Emacs users to skip the verbiage and get to - the heart of the code (via `forward-page' and `backward-page'). - Please include it if you can. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">Example for file header - comments:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + + <p><span class="emphasis EMPHASIS c2">Note:</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 EMPHASIS c2">Note:</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 EMPHASIS c2">Example for file header + comments:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> #ifndef _FILENAME_H #define _FILENAME_H -#define FILENAME_H_VERSION "$Id: coding.html,v 1.54 2010/11/13 12:50:18 fabiankeil Exp $" +#define FILENAME_H_VERSION "$Id$" /********************************************************************* * - * File : $Source: /cvsroot/ijbswa/current/doc/webserver/developer-manual/coding.html,v $ + * File : $Source$ * * Purpose : (Fill me in with a good description!) * @@ -1714,17 +1506,17 @@ extern const char FILENAME_h_rcs[]; end: */ </pre> - </td> - </tr> - </table> - <p> - <span class="emphasis"><i class="EMPHASIS">Example for function - comments:</i></span> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + + <p><span class="emphasis EMPHASIS c2">Example for function + comments:</span></p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> /********************************************************************* * * Function : FUNCTION_NAME @@ -1745,44 +1537,41 @@ int FUNCTION_NAME( void *param1, const char *x ) } </pre> - </td> - </tr> - </table> - <p> - <span class="emphasis"><i class="EMPHASIS">Note:</i></span> If we - all follow this practice, we should be able to parse our code to - create a "self-documenting" web page. - </p> - </div> - </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="documentation.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="testing.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - Documentation Guidelines - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Testing Guidelines </td> </tr> </table> + + <p><span class="emphasis EMPHASIS c2">Note:</span> If we all follow + this practice, we should be able to parse our code to create a + "self-documenting" web page.</p> </div> - </body> -</html> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href= + "documentation.html" accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + <td width="33%" align="right" valign="top"><a href="testing.html" + accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Documentation + Guidelines</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Testing Guidelines</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/developer-manual/contact.html b/doc/webserver/developer-manual/contact.html index 12d54193..61be520b 100644 --- a/doc/webserver/developer-manual/contact.html +++ b/doc/webserver/developer-manual/contact.html @@ -1,406 +1,366 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Contacting the developers, Bug Reporting and Feature Requests - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy Developer Manual" href="index.html"> - <link rel="PREVIOUS" title="Update the Webserver" href= - "webserver-update.html"> - <link rel="NEXT" title="Privoxy Copyright, License and History" href= - "copyright.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Contacting the developers, Bug Reporting and Feature + Requests</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy Developer Manual" href="index.html"> + <link rel="PREVIOUS" title="Update the Webserver" href= + "webserver-update.html"> + <link rel="NEXT" title="Privoxy Copyright, License and History" href= + "copyright.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy Developer Manual - </th> - </tr> - <tr> - <td width="10%" align="left" valign="bottom"> - <a href="webserver-update.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="copyright.html" accesskey="N">Next</a> - </td> - </tr> - </table> - <hr width="100%" class="c1"> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + span.c2 {font-style: italic} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy Developer Manual</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href= + "webserver-update.html" accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href= + "copyright.html" accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="CONTACT" id="CONTACT">8. Contacting the + developers, Bug Reporting and Feature Requests</a></h1> + + <p>We value your feedback. In fact, we rely on it to improve <span class= + "APPLICATION">Privoxy</span> and its configuration. However, please note + the following hints, so we can provide you with the best support:</p> + + <div class="SECT2"> + <h2 class="SECT2"><a name="CONTACT-SUPPORT" id="CONTACT-SUPPORT">8.1. + Get Support</a></h2> + + <p>For casual users, our <a href= + "http://sourceforge.net/tracker/?group_id=11118&atid=211118" + target="_top">support forum at SourceForge</a> is probably best suited: + <a href= + "http://sourceforge.net/tracker/?group_id=11118&atid=211118" + target="_top">http://sourceforge.net/tracker/?group_id=11118&atid=211118</a></p> + + <p>All users are of course welcome to discuss their issues on the + <a href="http://lists.sourceforge.net/lists/listinfo/ijbswa-users" + target="_top">users mailing list</a>, where the developers also hang + around.</p> + + <p>Please don't sent private support requests to individual Privoxy + developers, either use the mailing lists or the support trackers.</p> + + <p>If you have to contact a Privoxy developer directly for other + reasons, please send a real mail and do not bother with SourceForge's + messaging system. Answers to SourceForge messages are usually bounced + by SourceForge's mail server in which case the developer wasted time + writing a response you don't get. From your point of view it will look + like your message has been completely ignored, so this is frustrating + for all parties involved.</p> + + <p>Note that the Privoxy mailing lists are moderated. Posts from + unsubscribed addresses have to be accepted manually by a moderator. + This may cause a delay of several days and if you use a subject that + doesn't clearly mention Privoxy or one of its features, your message + may be accidentally discarded as spam.</p> + + <p>If you aren't subscribed, you should therefore spend a few seconds + to come up with a proper subject. Additionally you should make it clear + that you want to get CC'd. Otherwise some responses will be directed to + the mailing list only, and you won't see them.</p> </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="CONTACT">8. Contacting the developers, Bug Reporting and - Feature Requests</a> - </h1> - <p> - We value your feedback. In fact, we rely on it to improve <span - class="APPLICATION">Privoxy</span> and its configuration. However, - please note the following hints, so we can provide you with the best - support: - </p> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="CONTACT-SUPPORT">8.1. Get Support</a> - </h2> - <p> - For casual users, our <a href= - "http://sourceforge.net/tracker/?group_id=11118&atid=211118" - target="_top">support forum at SourceForge</a> is probably best - suited: <a href= - "http://sourceforge.net/tracker/?group_id=11118&atid=211118" - target= - "_top">http://sourceforge.net/tracker/?group_id=11118&atid=211118</a> - </p> - <p> - All users are of course welcome to discuss their issues on the <a - href="http://lists.sourceforge.net/lists/listinfo/ijbswa-users" - target="_top">users mailing list</a>, where the developers also - hang around. - </p> - <p> - Please don't sent private support requests to individual Privoxy - developers, either use the mailing lists or the support trackers. - </p> - <p> - If you have to contact a Privoxy developer directly for other - reasons, please send a real mail and do not bother with - SourceForge's messaging system. Answers to SourceForge messages are - usually bounced by SourceForge's mail server in which case the - developer wasted time writing a response you don't get. From your - point of view it will look like your message has been completely - ignored, so this is frustrating for all parties involved. - </p> - <p> - Note that the Privoxy mailing lists are moderated. Posts from - unsubscribed addresses have to be accepted manually by a moderator. - This may cause a delay of several days and if you use a subject - that doesn't clearly mention Privoxy or one of its features, your - message may be accidentally discarded as spam. - </p> - <p> - If you aren't subscribed, you should therefore spend a few seconds - to come up with a proper subject. Additionally you should make it - clear that you want to get CC'd. Otherwise some responses will be - directed to the mailing list only, and you won't see them. - </p> + + <div class="SECT2"> + <h2 class="SECT2"><a name="REPORTING" id="REPORTING">8.2. Reporting + Problems</a></h2> + + <p><span class="QUOTE">"Problems"</span> for our purposes, come in two + forms:</p> + + <ul> + <li> + <p>Configuration issues, such as ads that slip through, or sites + that don't function properly due to one <span class= + "APPLICATION">Privoxy</span> <span class="QUOTE">"action"</span> or + another being turned <span class="QUOTE">"on"</span>.</p> + </li> + + <li> + <p><span class="QUOTE">"Bugs"</span> in the programming code that + makes up <span class="APPLICATION">Privoxy</span>, such as that + might cause a crash.</p> + </li> + </ul> + + <div class="SECT3"> + <h3 class="SECT3"><a name="CONTACT-ADS" id="CONTACT-ADS">8.2.1. + Reporting Ads or Other Configuration Problems</a></h3> + + <p>Please send feedback on ads that slipped through, innocent images + that were blocked, sites that don't work properly, and other + configuration related problem of <tt class= + "FILENAME">default.action</tt> file, to <a href= + "http://sourceforge.net/tracker/?group_id=11118&atid=460288" + target= + "_top">http://sourceforge.net/tracker/?group_id=11118&atid=460288</a>, + the Actions File Tracker.</p> + + <p>New, improved <tt class="FILENAME">default.action</tt> files may + occasionally be made available based on your feedback. These will be + announced on the <a href= + "http://lists.sourceforge.net/lists/listinfo/ijbswa-announce" target= + "_top">ijbswa-announce</a> list and available from our the <a href= + "http://sourceforge.net/project/showfiles.php?group_id=11118" target= + "_top">files section</a> of our <a href= + "http://sf.net/projects/ijbswa/" target="_top">project page</a>.</p> </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="REPORTING">8.2. Reporting Problems</a> - </h2> - <p> - <span class="QUOTE">"Problems"</span> for our purposes, come in two - forms: - </p> + + <div class="SECT3"> + <h3 class="SECT3"><a name="CONTACT-BUGS" id="CONTACT-BUGS">8.2.2. + Reporting Bugs</a></h3> + + <p>Please report all bugs through our bug tracker: <a href= + "http://sourceforge.net/tracker/?group_id=11118&atid=111118" + target= + "_top">http://sourceforge.net/tracker/?group_id=11118&atid=111118</a>.</p> + + <p>Before doing so, please make sure that the bug has <span class= + "emphasis EMPHASIS c2">not already been submitted</span> and observe + the additional hints at the top of the <a href= + "http://sourceforge.net/tracker/?func=add&group_id=11118&atid=111118" + target="_top">submit form</a>. If already submitted, please feel free + to add any info to the original report that might help to solve the + issue.</p> + + <p>Please try to verify that it is a <span class= + "APPLICATION">Privoxy</span> bug, and not a browser or site bug or + documented behaviour that just happens to be different than what you + expected. If unsure, try <a href= + "http://config.privoxy.org/toggle?set=disable" target="_top">toggling + off</a> <span class="APPLICATION">Privoxy</span>, and see if the + problem persists.</p> + + <p>If you are using your own custom configuration, please try the + stock configs to see if the problem is configuration related. If + you're having problems with a feature that is disabled by default, + please ask around on the mailing list if others can reproduce the + problem.</p> + + <p>If you aren't using the latest Privoxy version, the bug may have + been found and fixed in the meantime. We would appreciate if you + could take the time to <a href= + "http://www.privoxy.org/user-manual/installation.html" target= + "_top">upgrade to the latest version</a> (or even the latest CVS + snapshot) and verify that your bug still exists.</p> + + <p>Please be sure to provide the following information:</p> + <ul> <li> - <p> - Configuration issues, such as ads that slip through, or sites - that don't function properly due to one <span class= - "APPLICATION">Privoxy</span> <span class= - "QUOTE">"action"</span> or another being turned <span class= - "QUOTE">"on"</span>. - </p> + <p>The exact <span class="APPLICATION">Privoxy</span> version you + are using (if you got the source from CVS, please also provide + the source code revisions as shown in <a href= + "http://config.privoxy.org/show-version" target= + "_top">http://config.privoxy.org/show-version</a>).</p> + </li> + + <li> + <p>The operating system and versions you run <span class= + "APPLICATION">Privoxy</span> on, (e.g. <span class= + "APPLICATION">Windows XP SP2</span>), if you are using a Unix + flavor, sending the output of <span class="QUOTE">"uname + -a"</span> should do, in case of GNU/Linux, please also name the + distribution.</p> + </li> + + <li> + <p>The name, platform, and version of the <span class= + "APPLICATION">browser</span> you were using (e.g. <span class= + "APPLICATION">Internet Explorer v5.5</span> for Mac).</p> + </li> + + <li> + <p>The URL where the problem occurred, or some way for us to + duplicate the problem (e.g. <tt class= + "LITERAL">http://somesite.example.com/?somethingelse=123</tt>).</p> + </li> + + <li> + <p>Whether your version of <span class= + "APPLICATION">Privoxy</span> is one supplied by the <span class= + "APPLICATION">Privoxy</span> developers via SourceForge, or if + you got your copy somewhere else.</p> + </li> + + <li> + <p>Whether you are using <span class="APPLICATION">Privoxy</span> + in tandem with another proxy such as <span class= + "APPLICATION">Tor</span>. If so, please temporary disable the + other proxy to see if the symptoms change.</p> </li> + <li> - <p> - <span class="QUOTE">"Bugs"</span> in the programming code that - makes up <span class="APPLICATION">Privoxy</span>, such as that - might cause a crash. - </p> + <p>Whether you are using a personal firewall product. If so, does + <span class="APPLICATION">Privoxy</span> work without it?</p> + </li> + + <li> + <p>Any other pertinent information to help identify the problem + such as config or log file excerpts (yes, you should have log + file entries for each action taken). To get a meaningful logfile, + please make sure that the <a href= + "../user-manual/config.html#LOGFILE" target="_top">logfile + directive</a> is being used and the following <a href= + "../user-manual/config.html#DEBUG" target="_top">debug + options</a> are enabled:</p> + + <p class="LITERALLAYOUT"> + debug 1 # Log the destination for each request Privoxy let through. See also debug 1024.<br> + + debug 2 # show each connection status<br> + + debug 4 # show I/O status<br> + + debug 8 # show header parsing<br> + + debug 128 # debug redirects<br> + debug 256 # debug GIF de-animation<br> + + debug 512 # Common Log Format<br> + + debug 1024 # Log the destination for requests Privoxy didn't let through, and the reason why.<br> + + debug 4096 # Startup banner and warnings.<br> + + debug 8192 # Non-fatal errors</p>If you + are having trouble with a filter, please additionally enable + + <p class="LITERALLAYOUT"> + debug 64 # debug regular expression filters</p>If + you are using Privoxy 3.0.17 or later and suspect that it + interprets the request or the response incorrectly, please enable + + <p class="LITERALLAYOUT"> + debug 32768 # log all data read from the network</p>Note + that Privoxy log files may contain sensitive information so + please don't submit any logfiles you didn't read first. You can + mask sensitive information as long as it's clear that you removed + something. </li> </ul> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="CONTACT-ADS">8.2.1. Reporting Ads or Other Configuration - Problems</a> - </h3> - <p> - Please send feedback on ads that slipped through, innocent images - that were blocked, sites that don't work properly, and other - configuration related problem of <tt class= - "FILENAME">default.action</tt> file, to <a href= - "http://sourceforge.net/tracker/?group_id=11118&atid=460288" - target= - "_top">http://sourceforge.net/tracker/?group_id=11118&atid=460288</a>, - the Actions File Tracker. - </p> - <p> - New, improved <tt class="FILENAME">default.action</tt> files may - occasionally be made available based on your feedback. These will - be announced on the <a href= - "http://lists.sourceforge.net/lists/listinfo/ijbswa-announce" - target="_top">ijbswa-announce</a> list and available from our the - <a href= - "http://sourceforge.net/project/showfiles.php?group_id=11118" - target="_top">files section</a> of our <a href= - "http://sf.net/projects/ijbswa/" target="_top">project page</a>. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="CONTACT-BUGS">8.2.2. Reporting Bugs</a> - </h3> - <p> - Please report all bugs through our bug tracker: <a href= - "http://sourceforge.net/tracker/?group_id=11118&atid=111118" - target= - "_top">http://sourceforge.net/tracker/?group_id=11118&atid=111118</a>. - </p> - <p> - Before doing so, please make sure that the bug has <span class= - "emphasis"><i class="EMPHASIS">not already been - submitted</i></span> and observe the additional hints at the top - of the <a href= - "http://sourceforge.net/tracker/?func=add&group_id=11118&atid=111118" - target="_top">submit form</a>. If already submitted, please feel - free to add any info to the original report that might help to - solve the issue. - </p> - <p> - Please try to verify that it is a <span class= - "APPLICATION">Privoxy</span> bug, and not a browser or site bug - or documented behaviour that just happens to be different than - what you expected. If unsure, try <a href= - "http://config.privoxy.org/toggle?set=disable" target= - "_top">toggling off</a> <span class="APPLICATION">Privoxy</span>, - and see if the problem persists. - </p> - <p> - If you are using your own custom configuration, please try the - stock configs to see if the problem is configuration related. If - you're having problems with a feature that is disabled by - default, please ask around on the mailing list if others can - reproduce the problem. - </p> - <p> - If you aren't using the latest Privoxy version, the bug may have - been found and fixed in the meantime. We would appreciate if you - could take the time to <a href= - "http://www.privoxy.org/user-manual/installation.html" target= - "_top">upgrade to the latest version</a> (or even the latest CVS - snapshot) and verify that your bug still exists. - </p> - <p> - Please be sure to provide the following information: - </p> - <p> - </p> - <ul> - <li> - <p> - The exact <span class="APPLICATION">Privoxy</span> version - you are using (if you got the source from CVS, please also - provide the source code revisions as shown in <a href= - "http://config.privoxy.org/show-version" target= - "_top">http://config.privoxy.org/show-version</a>). - </p> - </li> - <li> - <p> - The operating system and versions you run <span class= - "APPLICATION">Privoxy</span> on, (e.g. <span class= - "APPLICATION">Windows XP SP2</span>), if you are using a Unix - flavor, sending the output of <span class="QUOTE">"uname - -a"</span> should do, in case of GNU/Linux, please also name - the distribution. - </p> - </li> - <li> - <p> - The name, platform, and version of the <span class= - "APPLICATION">browser</span> you were using (e.g. <span - class="APPLICATION">Internet Explorer v5.5</span> for Mac). - </p> - </li> - <li> - <p> - The URL where the problem occurred, or some way for us to - duplicate the problem (e.g. <tt class= - "LITERAL">http://somesite.example.com/?somethingelse=123</tt>). - </p> - </li> - <li> - <p> - Whether your version of <span class= - "APPLICATION">Privoxy</span> is one supplied by the <span - class="APPLICATION">Privoxy</span> developers via - SourceForge, or if you got your copy somewhere else. - </p> - </li> - <li> - <p> - Whether you are using <span class= - "APPLICATION">Privoxy</span> in tandem with another proxy - such as <span class="APPLICATION">Tor</span>. If so, please - temporary disable the other proxy to see if the symptoms - change. - </p> - </li> - <li> - <p> - Whether you are using a personal firewall product. If so, - does <span class="APPLICATION">Privoxy</span> work without - it? - </p> - </li> - <li> - <p> - Any other pertinent information to help identify the problem - such as config or log file excerpts (yes, you should have log - file entries for each action taken). To get a meaningful - logfile, please make sure that the <a href= - "../user-manual/config.html#LOGFILE" target="_top">logfile - directive</a> is being used and the following <a href= - "../user-manual/config.html#DEBUG" target="_top">debug - options</a> are enabled: - </p> - <p class="LITERALLAYOUT"> - debug 1 # Log the destination for each request Privoxy let through. See also debug 1024.<br> - - debug 2 # show each connection status<br> - - debug 4 # show I/O status<br> - - debug 8 # show header parsing<br> - - debug 128 # debug redirects<br> - - debug 256 # debug GIF de-animation<br> - - debug 512 # Common Log Format<br> - - debug 1024 # Log the destination for requests Privoxy didn't let through, and the reason why.<br> - - debug 4096 # Startup banner and warnings.<br> - - debug 8192 # Non-fatal errors - </p> - If you are having trouble with a filter, please additionally - enable - <p class="LITERALLAYOUT"> - debug 64 # debug regular expression filters - </p> - If you are using Privoxy 3.0.17 or later and suspect that it - interprets the request or the response incorrectly, please - enable - <p class="LITERALLAYOUT"> - debug 32768 # log all data read from the network - </p> - Note that Privoxy log files may contain sensitive information - so please don't submit any logfiles you didn't read first. You - can mask sensitive information as long as it's clear that you - removed something.<br> - </li> - </ul> - - <p> - You don't have to tell us your actual name when filing a problem - report, but if you don't, please use a nickname so we can - differentiate between your messages and the ones entered by other - "anonymous" users that may respond to your request if they have - the same problem or already found a solution. Note that due to - spam the trackers may not always allow to post without being - logged into SourceForge. If that's the case, you are still free - to create a login that isn't directly linked to your name, - though. - </p> - <p> - Please also check the status of your request a few days after - submitting it, as we may request additional information. If you - use a SF id, you should automatically get a mail when someone - responds to your request. Please don't bother to add an email - address when using the tracker. If you prefer to communicate - through email, just use one of the mailing lists directly. - </p> - <p> - The <a href= - "http://www.privoxy.org/user-manual/appendix.html#ACTIONSANAT" - target="_top">appendix of the Privoxy User Manual</a> also has - helpful information on understanding <tt class= - "LITERAL">actions</tt>, and <tt class="LITERAL">action</tt> - debugging. - </p> - </div> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="CONTACT-FEATURE">8.3. Request New Features</a> - </h2> - <p> - You are welcome to submit ideas on new features or other proposals - for improvement through our feature request tracker at <a href= - "http://sourceforge.net/tracker/?atid=361118&group_id=11118" - target= - "_top">http://sourceforge.net/tracker/?atid=361118&group_id=11118</a>. - </p> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="MAILING-LISTS">8.4. Mailing Lists</a> - </h2> - <p> - If you prefer to communicate through email, instead of using a web - interface, feel free to use one of the mailing lists. To discuss - issues that haven't been completely diagnosed yet, please use the - Privoxy users list. Technically interested users and people who - wish to contribute to the project are always welcome on the - developers list. You can find an overview of all <span class= - "APPLICATION">Privoxy</span>-related mailing lists, including list - archives, at: <a href="http://sourceforge.net/mail/?group_id=11118" - target="_top">http://sourceforge.net/mail/?group_id=11118</a>. - </p> + + <p>You don't have to tell us your actual name when filing a problem + report, but if you don't, please use a nickname so we can + differentiate between your messages and the ones entered by other + "anonymous" users that may respond to your request if they have the + same problem or already found a solution. Note that due to spam the + trackers may not always allow to post without being logged into + SourceForge. If that's the case, you are still free to create a login + that isn't directly linked to your name, though.</p> + + <p>Please also check the status of your request a few days after + submitting it, as we may request additional information. If you use a + SF id, you should automatically get a mail when someone responds to + your request. Please don't bother to add an email address when using + the tracker. If you prefer to communicate through email, just use one + of the mailing lists directly.</p> + + <p>If you are new to reporting problems, you might be interested in + <a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html" + target="_top">How to Report Bugs Effectively</a>.</p> + + <p>If you are new to reporting problems, you might be interested in + <a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html" + target="_top">How to Report Bugs Effectively</a>.</p> + + <p>The <a href= + "http://www.privoxy.org/user-manual/appendix.html#ACTIONSANAT" + target="_top">appendix of the Privoxy User Manual</a> also has + helpful information on understanding <tt class= + "LITERAL">actions</tt>, and <tt class="LITERAL">action</tt> + debugging.</p> </div> </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="webserver-update.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="copyright.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - Update the Webserver - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Privoxy Copyright, License and History - </td> - </tr> - </table> + + <div class="SECT2"> + <h2 class="SECT2"><a name="CONTACT-FEATURE" id="CONTACT-FEATURE">8.3. + Request New Features</a></h2> + + <p>You are welcome to submit ideas on new features or other proposals + for improvement through our feature request tracker at <a href= + "http://sourceforge.net/tracker/?atid=361118&group_id=11118" + target="_top">http://sourceforge.net/tracker/?atid=361118&group_id=11118</a>.</p> </div> - </body> -</html> + <div class="SECT2"> + <h2 class="SECT2"><a name="MAILING-LISTS" id="MAILING-LISTS">8.4. + Mailing Lists</a></h2> + + <p>If you prefer to communicate through email, instead of using a web + interface, feel free to use one of the mailing lists. To discuss issues + that haven't been completely diagnosed yet, please use the Privoxy + users list. Technically interested users and people who wish to + contribute to the project are always welcome on the developers list. + You can find an overview of all <span class= + "APPLICATION">Privoxy</span>-related mailing lists, including list + archives, at: <a href="http://sourceforge.net/mail/?group_id=11118" + target="_top">http://sourceforge.net/mail/?group_id=11118</a>.</p> + </div> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href= + "webserver-update.html" accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + + <td width="33%" align="right" valign="top"><a href="copyright.html" + accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Update the Webserver</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Privoxy Copyright, License + and History</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/developer-manual/copyright.html b/doc/webserver/developer-manual/copyright.html index 39b1dd0f..39c52582 100644 --- a/doc/webserver/developer-manual/copyright.html +++ b/doc/webserver/developer-manual/copyright.html @@ -1,176 +1,161 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Privoxy Copyright, License and History - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy Developer Manual" href="index.html"> - <link rel="PREVIOUS" title= - "Contacting the developers, Bug Reporting and Feature Requests" href= - "contact.html"> - <link rel="NEXT" title="See also" href="seealso.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Privoxy Copyright, License and History</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy Developer Manual" href="index.html"> + <link rel="PREVIOUS" title= + "Contacting the developers, Bug Reporting and Feature Requests" href= + "contact.html"> + <link rel="NEXT" title="See also" href="seealso.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy Developer Manual - </th> - </tr> - <tr> - <td width="10%" align="left" valign="bottom"> - <a href="contact.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="seealso.html" accesskey="N">Next</a> - </td> - </tr> - </table> - <hr width="100%" class="c1"> - </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="COPYRIGHT">9. Privoxy Copyright, License and History</a> - </h1> - <p> - Copyright © 2001-2011 by Privoxy Developers <code class= - "EMAIL"><<a href= - "mailto:ijbswa-developers@lists.sourceforge.net">ijbswa-developers@lists.sourceforge.net</a>></code> - </p> - <p> - Some source code is based on code Copyright © 1997 by Anonymous - Coders and Junkbusters, Inc. and licensed under the <i class= - "CITETITLE">GNU General Public License</i>. - </p> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="AEN1229">9.1. License</a> - </h2> - <p> - <span class="APPLICATION">Privoxy</span> is free software; you can - redistribute it and/or modify it under the terms of the <i class= - "CITETITLE">GNU General Public License</i>, version 2, as published - by the Free Software Foundation. - </p> - <p> - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the <a - href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" - target="_top"><i class="CITETITLE">GNU General Public - License</i></a> for details. - </p> - <p> - You should have received a copy of the <i class="CITETITLE">GNU - GPL</i> along with this program; if not, write to the - </p> - <p class="ADDRESS"> - Free Software<br> - Foundation, Inc. <span class="STREET">51 Franklin - Street, Fifth Floor</span><br> - <span class="CITY">Boston</span>, <span class= - "STATE">MA</span> <span class="POSTCODE">02110-1301</span><br> - <span class="COUNTRY">USA</span> - </p> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="AEN1245">9.2. History</a> - </h2> - <p> - A long time ago, there was the <a href= - "http://www.junkbusters.com/ijb.html" target="_top"><span class= - "APPLICATION">Internet Junkbuster</span></a>, by Anonymous Coders - and <a href="http://www.junkbusters.com/" target="_top">Junkbusters - Corporation</a>. This saved many users a lot of pain in the early - days of web advertising and user tracking. - </p> - <p> - But the web, its protocols and standards, and with it, the - techniques for forcing ads on users, give up autonomy over their - browsing, and for tracking them, keeps evolving. Unfortunately, the - <span class="APPLICATION">Internet Junkbuster</span> did not. - Version 2.0.2, published in 1998, was (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>. Fortunately, it had been released under the GNU <a - href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" - target="_top">GPL</a>, which allowed further development by others. - </p> - <p> - So Stefan Waldherr started maintaining an improved version of the - software, to which eventually a number of people contributed - patches. It could already replace banners with a transparent image, - and had a first version of pop-up killing, but it was still very - closely based on the original, with all its limitations, such as - the lack of HTTP/1.1 support, flexible per-site configuration, or - content modification. The last release from this effort was version - 2.0.2-10, published in 2000. - </p> - <p> - Then, some <a href= - "http://www.privoxy.org/user-manual/copyright.html#AUTHORS" target= - "_top">developers</a> picked up the thread, and started turning the - software inside out, upside down, and then reassembled it, adding - many <a href= - "http://www.privoxy.org/user-manual/introduction.html#FEATURES" - target="_top">new features</a> along the way. - </p> - <p> - The result of this is <span class="APPLICATION">Privoxy</span>, - whose first stable version, 3.0, was released August, 2002. - </p> - </div> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + a.c2 {font-style: italic} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy Developer Manual</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href="contact.html" + accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href="seealso.html" + accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="COPYRIGHT" id="COPYRIGHT">9. Privoxy + Copyright, License and History</a></h1> + + <p>Copyright © 2001-2011 by Privoxy Developers <code class= + "EMAIL"><<a href= + "mailto:ijbswa-developers@lists.sourceforge.net">ijbswa-developers@lists.sourceforge.net</a>></code></p> + + <p>Some source code is based on code Copyright © 1997 by Anonymous + Coders and Junkbusters, Inc. and licensed under the <i class= + "CITETITLE">GNU General Public License</i>.</p> + + <div class="SECT2"> + <h2 class="SECT2"><a name="AEN1233" id="AEN1233">9.1. License</a></h2> + + <p><span class="APPLICATION">Privoxy</span> is free software; you can + redistribute it and/or modify it under the terms of the <i class= + "CITETITLE">GNU General Public License</i>, version 2, as published by + the Free Software Foundation.</p> + + <p>This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the <a class= + "CITETITLE c2" href= + "http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" target= + "_top">GNU General Public License</a> for details.</p> + + <p>You should have received a copy of the <i class="CITETITLE">GNU + GPL</i> along with this program; if not, write to the</p> + + <p class="ADDRESS"> Free Software<br> + Foundation, Inc. <span class="STREET">51 Franklin + Street, Fifth Floor</span><br> + <span class="CITY">Boston</span>, <span class= + "STATE">MA</span> <span class="POSTCODE">02110-1301</span><br> + <span class="COUNTRY">USA</span> </p> </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="contact.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="seealso.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - Contacting the developers, Bug Reporting and Feature Requests - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - See also - </td> - </tr> - </table> + + <div class="SECT2"> + <h2 class="SECT2"><a name="AEN1249" id="AEN1249">9.2. History</a></h2> + + <p>A long time ago, there was the <a href= + "http://www.junkbusters.com/ijb.html" target="_top"><span class= + "APPLICATION">Internet Junkbuster</span></a>, by Anonymous Coders and + <a href="http://www.junkbusters.com/" target="_top">Junkbusters + Corporation</a>. This saved many users a lot of pain in the early days + of web advertising and user tracking.</p> + + <p>But the web, its protocols and standards, and with it, the + techniques for forcing ads on users, give up autonomy over their + browsing, and for tracking them, keeps evolving. Unfortunately, the + <span class="APPLICATION">Internet Junkbuster</span> did not. Version + 2.0.2, published in 1998, was (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>. Fortunately, it had been + released under the GNU <a href= + "http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" target= + "_top">GPL</a>, which allowed further development by others.</p> + + <p>So Stefan Waldherr started maintaining an improved version of the + software, to which eventually a number of people contributed patches. + It could already replace banners with a transparent image, and had a + first version of pop-up killing, but it was still very closely based on + the original, with all its limitations, such as the lack of HTTP/1.1 + support, flexible per-site configuration, or content modification. The + last release from this effort was version 2.0.2-10, published in + 2000.</p> + + <p>Then, some <a href= + "http://www.privoxy.org/user-manual/copyright.html#AUTHORS" target= + "_top">developers</a> picked up the thread, and started turning the + software inside out, upside down, and then reassembled it, adding many + <a href="http://www.privoxy.org/user-manual/introduction.html#FEATURES" + target="_top">new features</a> along the way.</p> + + <p>The result of this is <span class="APPLICATION">Privoxy</span>, + whose first stable version, 3.0, was released August, 2002.</p> </div> - </body> -</html> + </div> + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="contact.html" + accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + + <td width="33%" align="right" valign="top"><a href="seealso.html" + accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Contacting the developers, + Bug Reporting and Feature Requests</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">See also</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/developer-manual/cvs.html b/doc/webserver/developer-manual/cvs.html index 3db67f4f..5a0f571e 100644 --- a/doc/webserver/developer-manual/cvs.html +++ b/doc/webserver/developer-manual/cvs.html @@ -1,209 +1,189 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - The CVS Repository - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy Developer Manual" href="index.html"> - <link rel="PREVIOUS" title="Introduction" href="introduction.html"> - <link rel="NEXT" title="Documentation Guidelines" href= - "documentation.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>The CVS Repository</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy Developer Manual" href="index.html"> + <link rel="PREVIOUS" title="Introduction" href="introduction.html"> + <link rel="NEXT" title="Documentation Guidelines" href= + "documentation.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy Developer Manual - </th> - </tr> - <tr> - <td width="10%" align="left" valign="bottom"> - <a href="introduction.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="documentation.html" accesskey="N">Next</a> - </td> - </tr> - </table> - <hr width="100%" class="c1"> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + span.c2 {font-style: italic} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy Developer Manual</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href= + "introduction.html" accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href= + "documentation.html" accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="CVS" id="CVS">2. The CVS Repository</a></h1> + + <p>If you become part of the active development team, you will eventually + need write access to our holy grail, the CVS repository. One of the team + members will need to set this up for you. Please read this chapter + completely before accessing via CVS.</p> + + <div class="SECT2"> + <h2 class="SECT2"><a name="CVSACCESS" id="CVSACCESS">2.1. Access to + CVS</a></h2> + + <p>The project's CVS repository is hosted on <a href= + "http://sourceforge.net/" target="_top">SourceForge.</a> Please refer + to the chapters 6 and 7 in <a href= + "http://sourceforge.net/docman/?group_id=1" target="_top">SF's site + documentation</a> for the technical access details for your operating + system. For historical reasons, the CVS server is called <tt class= + "LITERAL">ijbswa.cvs.sourceforge.net</tt>, the repository is called + <tt class="LITERAL">ijbswa</tt>, and the source tree module is called + <tt class="LITERAL">current</tt>.</p> </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="CVS">2. The CVS Repository</a> - </h1> - <p> - If you become part of the active development team, you will - eventually need write access to our holy grail, the CVS repository. - One of the team members will need to set this up for you. Please read - this chapter completely before accessing via CVS. - </p> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="CVSACCESS">2.1. Access to CVS</a> - </h2> - <p> - The project's CVS repository is hosted on <a href= - "http://sourceforge.net/" target="_top">SourceForge.</a> Please - refer to the chapters 6 and 7 in <a href= - "http://sourceforge.net/docman/?group_id=1" target="_top">SF's site - documentation</a> for the technical access details for your - operating system. For historical reasons, the CVS server is called - <tt class="LITERAL">ijbswa.cvs.sourceforge.net</tt>, the repository - is called <tt class="LITERAL">ijbswa</tt>, and the source tree - module is called <tt class="LITERAL">current</tt>. - </p> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="CVSBRANCHES">2.2. Branches</a> - </h2> - <p> - Within the CVS repository, there are modules and branches. As - mentioned, the sources are in the <tt class="LITERAL">current</tt> - <span class="QUOTE">"module"</span>. Other modules are present for - platform specific issues. There is a webview of the CVS hierarchy - at <a href="http://ijbswa.cvs.sourceforge.net/ijbswa/" target= - "_top">http://ijbswa.cvs.sourceforge.net/ijbswa/</a>, which might - help with visualizing how these pieces fit together. - </p> - <p> - Branches are used to fork a sub-development path from the main - trunk. Within the <tt class="LITERAL">current</tt> module where the - sources are, there is always at least one <span class= - "QUOTE">"branch"</span> from the main trunk devoted to a stable - release series. The main trunk is where active development takes - place for the next stable series (e.g. 3.2.x). So just prior to - each stable series (e.g. 3.0.x), a branch is created just for - stable series releases (e.g. 3.0.0 -> 3.0.1 -> 3.0.2, etc). - Once the initial stable release of any stable branch has taken - place, this branch is <span class="emphasis"><i class= - "EMPHASIS">only used for bugfixes</i></span>, which have had prior - testing before being committed to CVS. (See <a href= - "newrelease.html#VERSIONNUMBERS">Version Numbers</a> below for - details on versioning.) - </p> - <p> - At one time there were two distinct branches: stable and unstable. - The more drastic changes were to be in the unstable branch. These - branches have now been merged to minimize time and effort of - maintaining two branches. - </p> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="CVSCOMMIT">2.3. CVS Commit Guidelines</a> - </h2> - <p> - The source tree is the heart of every software project. Every - effort must be made to ensure that it is readable, compilable and - consistent at all times. There are differing guidelines for the - stable branch and the main development trunk, and we ask anyone - with CVS access to strictly adhere to the following guidelines: - </p> - <p> - Basic Guidelines, for all branches: - </p> - <p> - </p> - <ul> - <li> - <p> - Please don't commit even a small change without testing it - thoroughly first. When we're close to a public release, ask a - fellow developer to review your changes. - </p> - </li> - <li> - <p> - Your commit message should give a concise overview of <span - class="emphasis"><i class="EMPHASIS">what you - changed</i></span> (no big details) and <span class= - "emphasis"><i class="EMPHASIS">why you changed it</i></span> - Just check previous messages for good examples. - </p> - </li> - <li> - <p> - Don't use the same message on multiple files, unless it equally - applies to all those files. - </p> - </li> - <li> - <p> - If your changes span multiple files, and the code won't - recompile unless all changes are committed (e.g. when changing - the signature of a function), then commit all files one after - another, without long delays in between. If necessary, prepare - the commit messages in advance. - </p> - </li> - <li> - <p> - Before changing things on CVS, make sure that your changes are - in line with the team's general consensus on what should be - done. - </p> - </li> - <li> - <p> - Note that near a major public release, we get more cautious. - There is always the possibility to submit a patch to the <a - href= - "http://sourceforge.net/tracker/?atid=311118&group_id=11118&func=browse" - target="_top">patch tracker</a> instead. - </p> - </li> - </ul> - </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="CVSBRANCHES" id="CVSBRANCHES">2.2. + Branches</a></h2> + + <p>Within the CVS repository, there are modules and branches. As + mentioned, the sources are in the <tt class="LITERAL">current</tt> + <span class="QUOTE">"module"</span>. Other modules are present for + platform specific issues. There is a webview of the CVS hierarchy at + <a href="http://ijbswa.cvs.sourceforge.net/ijbswa/" target= + "_top">http://ijbswa.cvs.sourceforge.net/ijbswa/</a>, which might help + with visualizing how these pieces fit together.</p> + + <p>Branches are used to fork a sub-development path from the main + trunk. Within the <tt class="LITERAL">current</tt> module where the + sources are, there is always at least one <span class= + "QUOTE">"branch"</span> from the main trunk devoted to a stable release + series. The main trunk is where active development takes place for the + next stable series (e.g. 3.2.x). So just prior to each stable series + (e.g. 3.0.x), a branch is created just for stable series releases (e.g. + 3.0.0 -> 3.0.1 -> 3.0.2, etc). Once the initial stable release of + any stable branch has taken place, this branch is <span class= + "emphasis EMPHASIS c2">only used for bugfixes</span>, which have had + prior testing before being committed to CVS. (See <a href= + "newrelease.html#VERSIONNUMBERS">Version Numbers</a> below for details + on versioning.)</p> + + <p>At one time there were two distinct branches: stable and unstable. + The more drastic changes were to be in the unstable branch. These + branches have now been merged to minimize time and effort of + maintaining two branches.</p> </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="introduction.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="documentation.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - Introduction - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Documentation Guidelines - </td> - </tr> - </table> + + <div class="SECT2"> + <h2 class="SECT2"><a name="CVSCOMMIT" id="CVSCOMMIT">2.3. CVS Commit + Guidelines</a></h2> + + <p>The source tree is the heart of every software project. Every effort + must be made to ensure that it is readable, compilable and consistent + at all times. There are differing guidelines for the stable branch and + the main development trunk, and we ask anyone with CVS access to + strictly adhere to the following guidelines:</p> + + <p>Basic Guidelines, for all branches:</p> + + <ul> + <li> + <p>Please don't commit even a small change without testing it + thoroughly first. When we're close to a public release, ask a + fellow developer to review your changes.</p> + </li> + + <li> + <p>Your commit message should give a concise overview of + <span class="emphasis EMPHASIS c2">what you changed</span> (no big + details) and <span class="emphasis EMPHASIS c2">why you changed + it</span> Just check previous messages for good examples.</p> + </li> + + <li> + <p>Don't use the same message on multiple files, unless it equally + applies to all those files.</p> + </li> + + <li> + <p>If your changes span multiple files, and the code won't + recompile unless all changes are committed (e.g. when changing the + signature of a function), then commit all files one after another, + without long delays in between. If necessary, prepare the commit + messages in advance.</p> + </li> + + <li> + <p>Before changing things on CVS, make sure that your changes are + in line with the team's general consensus on what should be + done.</p> + </li> + + <li> + <p>Note that near a major public release, we get more cautious. + There is always the possibility to submit a patch to the <a href= + "http://sourceforge.net/tracker/?atid=311118&group_id=11118&func=browse" + target="_top">patch tracker</a> instead.</p> + </li> + </ul> </div> - </body> -</html> + </div> + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="introduction.html" + accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + + <td width="33%" align="right" valign="top"><a href= + "documentation.html" accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Introduction</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Documentation + Guidelines</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/developer-manual/documentation.html b/doc/webserver/developer-manual/documentation.html index a57a2d26..a3f2338e 100644 --- a/doc/webserver/developer-manual/documentation.html +++ b/doc/webserver/developer-manual/documentation.html @@ -1,534 +1,464 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Documentation Guidelines - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy Developer Manual" href="index.html"> - <link rel="PREVIOUS" title="The CVS Repository" href="cvs.html"> - <link rel="NEXT" title="Coding Guidelines" href="coding.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Documentation Guidelines</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy Developer Manual" href="index.html"> + <link rel="PREVIOUS" title="The CVS Repository" href="cvs.html"> + <link rel="NEXT" title="Coding Guidelines" href="coding.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy Developer Manual - </th> - </tr> - <tr> - <td width="10%" align="left" valign="bottom"> - <a href="cvs.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="coding.html" accesskey="N">Next</a> - </td> - </tr> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + span.c3 {font-style: italic} + a.c2 {font-style: italic} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy Developer Manual</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href="cvs.html" + accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href="coding.html" + accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="DOCUMENTATION" id="DOCUMENTATION">3. + Documentation Guidelines</a></h1> + + <p>All formal documents are maintained in Docbook SGML and located in the + <samp class="COMPUTEROUTPUT">doc/source/*</samp> directory. You will need + <a href="http://www.docbook.org" target="_top">Docbook</a>, the Docbook + DTD's and the Docbook modular stylesheets (or comparable alternatives), + and either <span class="APPLICATION">jade</span> or <span class= + "APPLICATION">openjade</span> (recommended) installed in order to build + docs from source. Currently there is <a class="CITETITLE c2" href= + "../user-manual/index.html" target="_top">user-manual</a>, <a class= + "CITETITLE c2" href="../faq/index.html" target="_top">FAQ</a>, and, of + course this, the <i class="CITETITLE">developer-manual</i> in this + format. The <i class="CITETITLE">README</i>, <i class= + "CITETITLE">AUTHORS</i>, <i class="CITETITLE">INSTALL</i>, <i class= + "CITETITLE">privoxy.1</i> (man page), and <i class="CITETITLE">config</i> + files are also now maintained as Docbook SGML. These files, when built, + in the top-level source directory are generated files! Also, the + <span class="APPLICATION">Privoxy</span> <tt class= + "FILENAME">index.html</tt> (and a variation on this file, <tt class= + "FILENAME">privoxy-index.html</tt>, meant for inclusion with doc + packages), are maintained as SGML as well. <span class= + "emphasis EMPHASIS c3">DO NOT edit these directly</span>. Edit the SGML + source, or contact someone involved in the documentation.</p> + + <p><tt class="FILENAME">config</tt> requires some special handling. The + reason it is maintained this way is so that the extensive comments in the + file mirror those in <i class="CITETITLE">user-manual</i>. But the + conversion process requires going from SGML to HTML to text to special + formatting required for the embedded comments. Some of this does not + survive so well. Especially some of the examples that are longer than 80 + characters. The build process for this file outputs to <tt class= + "FILENAME">config.new</tt>, which should be reviewed for errors and + mis-formatting. Once satisfied that it is correct, then it should be hand + copied to <tt class="FILENAME">config</tt>.</p> + + <p>Other, less formal documents (e.g. <tt class="FILENAME">LICENSE</tt>) + are maintained as plain text files in the top-level source directory.</p> + + <p>Packagers are encouraged to include this documentation. For those + without the ability to build the docs locally, text versions of each are + kept in CVS. HTML versions are also being kept in CVS under <tt class= + "FILENAME">doc/webserver/*</tt>. And PDF version are kept in <tt class= + "FILENAME">doc/pdf/*</tt>.</p> + + <p>Formal documents are built with the Makefile targets of <samp class= + "COMPUTEROUTPUT">make dok</samp>, or alternately <samp class= + "COMPUTEROUTPUT">make redhat-dok</samp>. If you have problems, try both. + The build process uses the document SGML sources in <samp class= + "COMPUTEROUTPUT">doc/source/*/*</samp> to update all text files in + <samp class="COMPUTEROUTPUT">doc/text/</samp> and to update all HTML + documents in <samp class="COMPUTEROUTPUT">doc/webserver/</samp>.</p> + + <p>Documentation writers should please make sure documents build + successfully before committing to CVS, if possible.</p> + + <p>How do you update the webserver (i.e. the pages on privoxy.org)?</p> + + <ol type="1"> + <li> + <p>First, build the docs by running <samp class="COMPUTEROUTPUT">make + dok</samp> (or alternately <samp class="COMPUTEROUTPUT">make + redhat-dok</samp>). For PDF docs, do <samp class= + "COMPUTEROUTPUT">make dok-pdf</samp>.</p> + </li> + + <li> + <p>Run <samp class="COMPUTEROUTPUT">make webserver</samp> which + copies all files from <samp class= + "COMPUTEROUTPUT">doc/webserver</samp> to the sourceforge webserver + via scp.</p> + </li> + </ol> + + <p>Finished docs should be occasionally submitted to CVS (<tt class= + "FILENAME">doc/webserver/*/*.html</tt>) so that those without the ability + to build them locally, have access to them if needed. This is especially + important just prior to a new release! Please do this <span class= + "emphasis EMPHASIS c3">after</span> the <tt class="LITERAL">$VERSION</tt> + and other release specific data in <tt class="FILENAME">configure.in</tt> + has been updated (this is done just prior to a new release).</p> + + <div class="SECT2"> + <h2 class="SECT2"><a name="SGML" id="SGML">3.1. Quickstart to Docbook + and SGML</a></h2> + + <p>If you are not familiar with SGML, it is a markup language similar + to HTML. Actually, not a mark up language per se, but a language used + to define markup languages. In fact, HTML is an SGML application. Both + will use <span class="QUOTE">"tags"</span> to format text and other + content. SGML tags can be much more varied, and flexible, but do much + of the same kinds of things. The tags, or <span class= + "QUOTE">"elements"</span>, are definable in SGML. There is no set + <span class="QUOTE">"standards"</span>. Since we are using <span class= + "APPLICATION">Docbook</span>, our tags are those that are defined by + <span class="APPLICATION">Docbook</span>. Much of how the finish + document is rendered is determined by the <span class= + "QUOTE">"stylesheets"</span>. The stylesheets determine how each tag + gets translated to HTML, or other formats.</p> + + <p>Tags in Docbook SGML need to be always <span class= + "QUOTE">"closed"</span>. If not, you will likely generate errors. + Example: <tt class="LITERAL"><title>My Title</title></tt>. + They are also case-insensitive, but we strongly suggest using all lower + case. This keeps compatibility with [Docbook] <span class= + "APPLICATION">XML</span>.</p> + + <p>Our documents use <span class="QUOTE">"sections"</span> for the most + part. Sections will be processed into HTML headers (e.g. <tt class= + "LITERAL">h1</tt> for <tt class="LITERAL">sect1</tt>). The <span class= + "APPLICATION">Docbook</span> stylesheets will use these to also + generate the Table of Contents for each doc. Our TOC's are set to a + depth of three. Meaning <tt class="LITERAL">sect1</tt>, <tt class= + "LITERAL">sect2</tt>, and <tt class="LITERAL">sect3</tt> will have TOC + entries, but <tt class="LITERAL">sect4</tt> will not. Each section + requires a <tt class="LITERAL"><title></tt> element, and at least + one <tt class="LITERAL"><para></tt>. There is a limit of five + section levels in Docbook, but generally three should be sufficient for + our purposes.</p> + + <p>Some common elements that you likely will use:</p> + + <table border="0"> + <tbody> + <tr> + <td><span class= + "emphasis EMPHASIS c3"><para></para></span>, + paragraph delimiter. Most text needs to be within paragraph + elements (there are some exceptions).</td> + </tr> + + <tr> + <td><span class= + "emphasis EMPHASIS c3"><emphasis></emphasis></span>, + the stylesheets make this italics.</td> + </tr> + + <tr> + <td><span class= + "emphasis EMPHASIS c3"><filename></filename></span>, + files and directories.</td> + </tr> + + <tr> + <td><span class= + "emphasis EMPHASIS c3"><command></command></span>, + command examples.</td> + </tr> + + <tr> + <td><span class= + "emphasis EMPHASIS c3"><literallayout></literallayout></span>, + like <tt class="LITERAL"><pre></tt>, more or less.</td> + </tr> + + <tr> + <td><span class= + "emphasis EMPHASIS c3"><itemizedlist></itemizedlist></span>, + list with bullets.</td> + </tr> + + <tr> + <td><span class= + "emphasis EMPHASIS c3"><listitem></listitem></span>, + member of the above.</td> + </tr> + + <tr> + <td><span class= + "emphasis EMPHASIS c3"><screen></screen></span>, + screen output, implies <tt class= + "LITERAL"><literallayout></tt>.</td> + </tr> + + <tr> + <td><span class="emphasis EMPHASIS c3"><ulink + url="example.com"></ulink></span>, like HTML <tt class= + "LITERAL"><a></tt> tag.</td> + </tr> + + <tr> + <td><span class= + "emphasis EMPHASIS c3"><quote></quote></span>, for, + doh, quoting text.</td> + </tr> + </tbody> </table> - <hr width="100%" class="c1"> + + <p>Look at any of the existing docs for examples of all these and + more.</p> + + <p>You might also find <span class="QUOTE">"<a href= + "http://opensource.bureau-cornavin.com/crash-course/index.html" target= + "_top">Writing Documentation Using DocBook - A Crash Course</a>"</span> + useful.</p> </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="DOCUMENTATION">3. Documentation Guidelines</a> - </h1> - <p> - All formal documents are maintained in Docbook SGML and located in - the <samp class="COMPUTEROUTPUT">doc/source/*</samp> directory. You - will need <a href="http://www.docbook.org" target="_top">Docbook</a>, - the Docbook DTD's and the Docbook modular stylesheets (or comparable - alternatives), and either <span class="APPLICATION">jade</span> or - <span class="APPLICATION">openjade</span> (recommended) installed in - order to build docs from source. Currently there is <a href= - "../user-manual/index.html" target="_top"><i class= - "CITETITLE">user-manual</i></a>, <a href="../faq/index.html" target= - "_top"><i class="CITETITLE">FAQ</i></a>, and, of course this, the <i - class="CITETITLE">developer-manual</i> in this format. The <i class= - "CITETITLE">README</i>, <i class="CITETITLE">AUTHORS</i>, <i class= - "CITETITLE">INSTALL</i>, <i class="CITETITLE">privoxy.1</i> (man - page), and <i class="CITETITLE">config</i> files are also now - maintained as Docbook SGML. These files, when built, in the top-level - source directory are generated files! Also, the <span class= - "APPLICATION">Privoxy</span> <tt class="FILENAME">index.html</tt> - (and a variation on this file, <tt class= - "FILENAME">privoxy-index.html</tt>, meant for inclusion with doc - packages), are maintained as SGML as well. <span class="emphasis"><i - class="EMPHASIS">DO NOT edit these directly</i></span>. Edit the SGML - source, or contact someone involved in the documentation. - </p> - <p> - <tt class="FILENAME">config</tt> requires some special handling. The - reason it is maintained this way is so that the extensive comments in - the file mirror those in <i class="CITETITLE">user-manual</i>. But - the conversion process requires going from SGML to HTML to text to - special formatting required for the embedded comments. Some of this - does not survive so well. Especially some of the examples that are - longer than 80 characters. The build process for this file outputs to - <tt class="FILENAME">config.new</tt>, which should be reviewed for - errors and mis-formatting. Once satisfied that it is correct, then it - should be hand copied to <tt class="FILENAME">config</tt>. - </p> - <p> - Other, less formal documents (e.g. <tt class="FILENAME">LICENSE</tt>) - are maintained as plain text files in the top-level source directory. - </p> - <p> - Packagers are encouraged to include this documentation. For those - without the ability to build the docs locally, text versions of each - are kept in CVS. HTML versions are also being kept in CVS under <tt - class="FILENAME">doc/webserver/*</tt>. And PDF version are kept in - <tt class="FILENAME">doc/pdf/*</tt>. - </p> - <p> - Formal documents are built with the Makefile targets of <samp class= - "COMPUTEROUTPUT">make dok</samp>, or alternately <samp class= - "COMPUTEROUTPUT">make redhat-dok</samp>. If you have problems, try - both. The build process uses the document SGML sources in <samp - class="COMPUTEROUTPUT">doc/source/*/*</samp> to update all text files - in <samp class="COMPUTEROUTPUT">doc/text/</samp> and to update all - HTML documents in <samp class="COMPUTEROUTPUT">doc/webserver/</samp>. - </p> - <p> - Documentation writers should please make sure documents build - successfully before committing to CVS, if possible. - </p> - <p> - How do you update the webserver (i.e. the pages on privoxy.org)? - </p> - <ol type="1"> + + <div class="SECT2"> + <h2 class="SECT2"><a name="DOCSTYLE" id="DOCSTYLE">3.2. <span class= + "APPLICATION">Privoxy</span> Documentation Style</a></h2> + + <p>It will be easier if everyone follows a similar writing style. This + just makes it easier to read what someone else has written if it is all + done in a similar fashion.</p> + + <p>Here it is:</p> + + <ul> + <li> + <p>All tags should be lower case.</p> + </li> + <li> - <p> - First, build the docs by running <samp class= - "COMPUTEROUTPUT">make dok</samp> (or alternately <samp class= - "COMPUTEROUTPUT">make redhat-dok</samp>). For PDF docs, do <samp - class="COMPUTEROUTPUT">make dok-pdf</samp>. - </p> + <p>Tags delimiting a <span class= + "emphasis EMPHASIS c3">block</span> of text (even small blocks) + should be on their own line. Like:</p> + + <p class="LITERALLAYOUT"> <para><br> + Some text goes here.<br> + </para><br> + </p>Tags marking + individual words, or few words, should be in-line: + + <p class="LITERALLAYOUT"> + Just to <emphasis>emphasize</emphasis>, some text goes here.<br> + + </p> </li> + <li> - <p> - Run <samp class="COMPUTEROUTPUT">make webserver</samp> which - copies all files from <samp class= - "COMPUTEROUTPUT">doc/webserver</samp> to the sourceforge - webserver via scp. - </p> + <p>Tags should be nested and step indented for block text like: + (except in-line tags)</p> + + <p class="LITERALLAYOUT"> <para><br> + <itemizedlist><br> + <para><br> + <listitem><br> + Some text goes here in our list example.<br> + + </listitem><br> + </para><br> + </itemizedlist><br> + </para><br> + </p>This makes it easier + to find the text amongst the tags ;-) </li> - </ol> - - <p> - Finished docs should be occasionally submitted to CVS (<tt class= - "FILENAME">doc/webserver/*/*.html</tt>) so that those without the - ability to build them locally, have access to them if needed. This is - especially important just prior to a new release! Please do this - <span class="emphasis"><i class="EMPHASIS">after</i></span> the <tt - class="LITERAL">$VERSION</tt> and other release specific data in <tt - class="FILENAME">configure.in</tt> has been updated (this is done - just prior to a new release). - </p> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="SGML">3.1. Quickstart to Docbook and SGML</a> - </h2> - <p> - If you are not familiar with SGML, it is a markup language similar - to HTML. Actually, not a mark up language per se, but a language - used to define markup languages. In fact, HTML is an SGML - application. Both will use <span class="QUOTE">"tags"</span> to - format text and other content. SGML tags can be much more varied, - and flexible, but do much of the same kinds of things. The tags, or - <span class="QUOTE">"elements"</span>, are definable in SGML. There - is no set <span class="QUOTE">"standards"</span>. Since we are - using <span class="APPLICATION">Docbook</span>, our tags are those - that are defined by <span class="APPLICATION">Docbook</span>. Much - of how the finish document is rendered is determined by the <span - class="QUOTE">"stylesheets"</span>. The stylesheets determine how - each tag gets translated to HTML, or other formats. - </p> - <p> - Tags in Docbook SGML need to be always <span class= - "QUOTE">"closed"</span>. If not, you will likely generate errors. - Example: <tt class="LITERAL"><title>My - Title</title></tt>. They are also case-insensitive, but we - strongly suggest using all lower case. This keeps compatibility - with [Docbook] <span class="APPLICATION">XML</span>. - </p> - <p> - Our documents use <span class="QUOTE">"sections"</span> for the - most part. Sections will be processed into HTML headers (e.g. <tt - class="LITERAL">h1</tt> for <tt class="LITERAL">sect1</tt>). The - <span class="APPLICATION">Docbook</span> stylesheets will use these - to also generate the Table of Contents for each doc. Our TOC's are - set to a depth of three. Meaning <tt class="LITERAL">sect1</tt>, - <tt class="LITERAL">sect2</tt>, and <tt class="LITERAL">sect3</tt> - will have TOC entries, but <tt class="LITERAL">sect4</tt> will not. - Each section requires a <tt class="LITERAL"><title></tt> - element, and at least one <tt class="LITERAL"><para></tt>. - There is a limit of five section levels in Docbook, but generally - three should be sufficient for our purposes. - </p> - <p> - Some common elements that you likely will use: - </p> - <p> - </p> - <table border="0"> - <tbody> - <tr> - <td> - <span class="emphasis"><i class= - "EMPHASIS"><para></para></i></span>, paragraph - delimiter. Most text needs to be within paragraph elements - (there are some exceptions). - </td> - </tr> - <tr> - <td> - <span class="emphasis"><i class= - "EMPHASIS"><emphasis></emphasis></i></span>, the - stylesheets make this italics. - </td> - </tr> - <tr> - <td> - <span class="emphasis"><i class= - "EMPHASIS"><filename></filename></i></span>, - files and directories. - </td> - </tr> - <tr> - <td> - <span class="emphasis"><i class= - "EMPHASIS"><command></command></i></span>, - command examples. - </td> - </tr> - <tr> - <td> - <span class="emphasis"><i class= - "EMPHASIS"><literallayout></literallayout></i></span>, - like <tt class="LITERAL"><pre></tt>, more or less. - </td> - </tr> - <tr> - <td> - <span class="emphasis"><i class= - "EMPHASIS"><itemizedlist></itemizedlist></i></span>, - list with bullets. - </td> - </tr> - <tr> - <td> - <span class="emphasis"><i class= - "EMPHASIS"><listitem></listitem></i></span>, - member of the above. - </td> - </tr> - <tr> - <td> - <span class="emphasis"><i class= - "EMPHASIS"><screen></screen></i></span>, screen - output, implies <tt class= - "LITERAL"><literallayout></tt>. - </td> - </tr> - <tr> - <td> - <span class="emphasis"><i class="EMPHASIS"><ulink - url="example.com"></ulink></i></span>, like HTML <tt - class="LITERAL"><a></tt> tag. - </td> - </tr> - <tr> - <td> - <span class="emphasis"><i class= - "EMPHASIS"><quote></quote></i></span>, for, doh, - quoting text. - </td> - </tr> - </tbody> - </table> - - <p> - Look at any of the existing docs for examples of all these and - more. - </p> - <p> - You might also find <span class="QUOTE">"<a href= - "http://opensource.bureau-cornavin.com/crash-course/index.html" - target="_top">Writing Documentation Using DocBook - A Crash - Course</a>"</span> useful. - </p> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="DOCSTYLE">3.2. <span class="APPLICATION">Privoxy</span> - Documentation Style</a> - </h2> - <p> - It will be easier if everyone follows a similar writing style. This - just makes it easier to read what someone else has written if it is - all done in a similar fashion. - </p> - <p> - Here it is: - </p> - <p> - </p> - <ul> - <li> - <p> - All tags should be lower case. - </p> - </li> - <li> - <p> - Tags delimiting a <span class="emphasis"><i class= - "EMPHASIS">block</i></span> of text (even small blocks) should - be on their own line. Like: - </p> - <p class="LITERALLAYOUT"> - <para><br> - Some text goes here.<br> - </para><br> - - </p> - Tags marking individual words, or few words, should be in-line: - <p class="LITERALLAYOUT"> - Just to <emphasis>emphasize</emphasis>, some text goes here.<br> - - - </p> - </li> - <li> - <p> - Tags should be nested and step indented for block text like: - (except in-line tags) - </p> - <p class="LITERALLAYOUT"> - <para><br> - <itemizedlist><br> - <para><br> - <listitem><br> - Some text goes here in our list example.<br> - - </listitem><br> - </para><br> - </itemizedlist><br> - </para><br> - - </p> - This makes it easier to find the text amongst the tags ;-)<br> - </li> - <li> - <p> - Use white space to separate logical divisions within a - document, like between sections. Running everything together - consistently makes it harder to read and work on. - </p> - </li> - <li> - <p> - Do not hesitate to make comments. Comments can either use the - <comment> element, or the <!-- --> style comment - familiar from HTML. (Note in Docbook v4.x <comment> is - replaced by <remark>.) - </p> - </li> - <li> - <p> - We have an international audience. Refrain from slang, or - English idiosyncrasies (too many to list :). Humor also does - not translate well sometimes. - </p> - </li> - <li> - <p> - Try to keep overall line lengths in source files to 80 - characters or less for obvious reasons. This is not always - possible, with lengthy URLs for instance. - </p> - </li> - <li> - <p> - Our documents are available in differing formats. Right now, - they are just plain text, HTML, and PDF, but others are always - a future possibility. Be careful with URLs (<ulink>), and - avoid this mistake: - </p> - <p> - My favorite site is <ulink - url="http://example.com">here</ulink>. - </p> - <p> - This will render as <span class="QUOTE">"My favorite site is - here"</span>, which is not real helpful in a text doc. Better - like this: - </p> - <p> - My favorite site is <ulink - url="http://example.com">example.com</ulink>. - </p> - </li> - <li> - <p> - All documents should be spell checked occasionally. <span - class="APPLICATION">aspell</span> can check SGML with the <tt - class="LITERAL">-H</tt> option. (<span class= - "APPLICATION">ispell</span> I think too.) - </p> - </li> - </ul> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="AEN217">3.3. Privoxy Custom Entities</a> - </h2> - <p> - <span class="APPLICATION">Privoxy</span> documentation is using a - number of customized <span class="QUOTE">"entities"</span> to - facilitate documentation maintenance. - </p> - <p> - We are using a set of <span class="QUOTE">"boilerplate"</span> - files with generic text, that is used by multiple docs. This way we - can write something once, and use it repeatedly without having to - re-write the same content over and over again. If editing such a - file, keep in mind that it should be <span class="emphasis"><i - class="EMPHASIS">generic</i></span>. That is the purpose; so it can - be used in varying contexts without additional modifications. - </p> - <p> - We are also using what <span class="APPLICATION">Docbook</span> - calls <span class="QUOTE">"internal entities"</span>. These are - like variables in programming. Well, sort of. For instance, we have - the <tt class="LITERAL">p-version</tt> entity that contains the - current <span class="APPLICATION">Privoxy</span> version string. - You are strongly encouraged to use these where possible. Some of - these obviously require re-setting with each release (done by the - Makefile). A sampling of custom entities are listed below. See any - of the main docs for examples. - </p> - <p> - </p> - <ul> - <li> - <p> - Re- <span class="QUOTE">"boilerplate"</span> text entities are - defined like: - </p> - <p> - <tt class="LITERAL"><!entity supported SYSTEM - "supported.sgml"></tt> - </p> - <p> - In this example, the contents of the file, <tt class= - "FILENAME">supported.sgml</tt> is available for inclusion - anywhere in the doc. To make this happen, just reference the - now defined entity: <tt class="LITERAL">&supported;</tt> - (starts with an ampersand and ends with a semi-colon), and the - contents will be dumped into the finished doc at that point. - </p> - </li> - <li> - <p> - Commonly used <span class="QUOTE">"internal entities"</span>: - </p> - <table border="0"> - <tbody> - <tr> - <td> - <span class="emphasis"><i class= - "EMPHASIS">p-version</i></span>: the <span class= - "APPLICATION">Privoxy</span> version string, e.g. <span - class="QUOTE">"3.0.18"</span>. - </td> - </tr> - <tr> - <td> - <span class="emphasis"><i class= - "EMPHASIS">p-status</i></span>: the project status, - either <span class="QUOTE">"alpha"</span>, <span class= - "QUOTE">"beta"</span>, or <span class= - "QUOTE">"stable"</span>. - </td> - </tr> - <tr> - <td> - <span class="emphasis"><i class= - "EMPHASIS">p-not-stable</i></span>: use to conditionally - include text in <span class="QUOTE">"not stable"</span> - releases (e.g. <span class="QUOTE">"beta"</span>). - </td> - </tr> - <tr> - <td> - <span class="emphasis"><i class= - "EMPHASIS">p-stable</i></span>: just the opposite. - </td> - </tr> - <tr> - <td> - <span class="emphasis"><i class= - "EMPHASIS">p-text</i></span>: this doc is only generated - as text. - </td> - </tr> - </tbody> - </table> - </li> - </ul> - - <p> - There are others in various places that are defined for a specific - purpose. Read the source! - </p> - </div> + + <li> + <p>Use white space to separate logical divisions within a document, + like between sections. Running everything together consistently + makes it harder to read and work on.</p> + </li> + + <li> + <p>Do not hesitate to make comments. Comments can either use the + <comment> element, or the <!-- --> style comment + familiar from HTML. (Note in Docbook v4.x <comment> is + replaced by <remark>.)</p> + </li> + + <li> + <p>We have an international audience. Refrain from slang, or + English idiosyncrasies (too many to list :). Humor also does not + translate well sometimes.</p> + </li> + + <li> + <p>Try to keep overall line lengths in source files to 80 + characters or less for obvious reasons. This is not always + possible, with lengthy URLs for instance.</p> + </li> + + <li> + <p>Our documents are available in differing formats. Right now, + they are just plain text, HTML, and PDF, but others are always a + future possibility. Be careful with URLs (<ulink>), and avoid + this mistake:</p> + + <p>My favorite site is <ulink + url="http://example.com">here</ulink>.</p> + + <p>This will render as <span class="QUOTE">"My favorite site is + here"</span>, which is not real helpful in a text doc. Better like + this:</p> + + <p>My favorite site is <ulink + url="http://example.com">example.com</ulink>.</p> + </li> + + <li> + <p>All documents should be spell checked occasionally. <span class= + "APPLICATION">aspell</span> can check SGML with the <tt class= + "LITERAL">-H</tt> option. (<span class="APPLICATION">ispell</span> + I think too.)</p> + </li> + </ul> </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="cvs.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="coding.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - The CVS Repository - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Coding Guidelines - </td> - </tr> - </table> + + <div class="SECT2"> + <h2 class="SECT2"><a name="AEN217" id="AEN217">3.3. Privoxy Custom + Entities</a></h2> + + <p><span class="APPLICATION">Privoxy</span> documentation is using a + number of customized <span class="QUOTE">"entities"</span> to + facilitate documentation maintenance.</p> + + <p>We are using a set of <span class="QUOTE">"boilerplate"</span> files + with generic text, that is used by multiple docs. This way we can write + something once, and use it repeatedly without having to re-write the + same content over and over again. If editing such a file, keep in mind + that it should be <span class="emphasis EMPHASIS c3">generic</span>. + That is the purpose; so it can be used in varying contexts without + additional modifications.</p> + + <p>We are also using what <span class="APPLICATION">Docbook</span> + calls <span class="QUOTE">"internal entities"</span>. These are like + variables in programming. Well, sort of. For instance, we have the + <tt class="LITERAL">p-version</tt> entity that contains the current + <span class="APPLICATION">Privoxy</span> version string. You are + strongly encouraged to use these where possible. Some of these + obviously require re-setting with each release (done by the Makefile). + A sampling of custom entities are listed below. See any of the main + docs for examples.</p> + + <ul> + <li> + <p>Re- <span class="QUOTE">"boilerplate"</span> text entities are + defined like:</p> + + <p><tt class="LITERAL"><!entity supported SYSTEM + "supported.sgml"></tt></p> + + <p>In this example, the contents of the file, <tt class= + "FILENAME">supported.sgml</tt> is available for inclusion anywhere + in the doc. To make this happen, just reference the now defined + entity: <tt class="LITERAL">&supported;</tt> (starts with an + ampersand and ends with a semi-colon), and the contents will be + dumped into the finished doc at that point.</p> + </li> + + <li> + <p>Commonly used <span class="QUOTE">"internal + entities"</span>:</p> + + <table border="0"> + <tbody> + <tr> + <td><span class="emphasis EMPHASIS c3">p-version</span>: the + <span class="APPLICATION">Privoxy</span> version string, e.g. + <span class="QUOTE">"3.0.18"</span>.</td> + </tr> + + <tr> + <td><span class="emphasis EMPHASIS c3">p-status</span>: the + project status, either <span class="QUOTE">"alpha"</span>, + <span class="QUOTE">"beta"</span>, or <span class= + "QUOTE">"stable"</span>.</td> + </tr> + + <tr> + <td><span class="emphasis EMPHASIS c3">p-not-stable</span>: + use to conditionally include text in <span class="QUOTE">"not + stable"</span> releases (e.g. <span class= + "QUOTE">"beta"</span>).</td> + </tr> + + <tr> + <td><span class="emphasis EMPHASIS c3">p-stable</span>: just + the opposite.</td> + </tr> + + <tr> + <td><span class="emphasis EMPHASIS c3">p-text</span>: this + doc is only generated as text.</td> + </tr> + </tbody> + </table> + </li> + </ul> + + <p>There are others in various places that are defined for a specific + purpose. Read the source!</p> </div> - </body> -</html> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="cvs.html" + accesskey="P">Prev</a></td> + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + + <td width="33%" align="right" valign="top"><a href="coding.html" + accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">The CVS Repository</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Coding Guidelines</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/developer-manual/index.html b/doc/webserver/developer-manual/index.html index b3dc7337..319b5bbf 100644 --- a/doc/webserver/developer-manual/index.html +++ b/doc/webserver/developer-manual/index.html @@ -1,494 +1,406 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Privoxy Developer Manual - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="NEXT" title="Introduction" href="introduction.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Privoxy Developer Manual</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="NEXT" title="Introduction" href="introduction.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c2 {text-align: left} - dt.c1 {font-weight: bold} -</style> - </head> - <body class="ARTICLE"> - <div class="ARTICLE"> - <div class="TITLEPAGE"> - <h1 class="TITLE"> - <a name="AEN2">Privoxy Developer Manual</a> - </h1> - <p class="PUBDATE"> - <sub><a href="copyright.html">Copyright</a> © 2001-2009 by <a - href="http://www.privoxy.org/" target="_top">Privoxy - Developers</a></sub><br> - </p> - <p class="PUBDATE"> - $Id: index.html,v 1.55 2011/08/17 10:37:48 fabiankeil Exp $<br> - </p> - <div> - <a name="AEN9"></a> - <p> - The developer manual provides guidance on coding, testing, - packaging, documentation and other issues of importance to those - involved with <span class="APPLICATION">Privoxy</span> - development. It is mandatory (and helpful!) reading for anyone - who wants to join the team. Note that it's currently out of date - and may not be entirely correct. As always, patches are welcome. - </p> - <p> - Please note that this document is constantly evolving. This copy - represents the state at the release of version 3.0.18. You can - find the latest version of the this manual at <a href= - "http://www.privoxy.org/developer-manual/" target= - "_top">http://www.privoxy.org/developer-manual/</a>. Please see - <a href="contact.html">the Contact section</a> on how to contact - the developers. - </p> - </div> - <hr> - </div> - <div class="TOC"> - <dl> - <dt class="c1"> - Table of Contents - </dt> - <dt> - 1. <a href="introduction.html">Introduction</a> - </dt> - <dd> - <dl> - <dt> - 1.1. <a href="introduction.html#QUICKSTART">Quickstart to - Privoxy Development</a> - </dt> - </dl> - </dd> - <dt> - 2. <a href="cvs.html">The CVS Repository</a> - </dt> - <dd> - <dl> - <dt> - 2.1. <a href="cvs.html#CVSACCESS">Access to CVS</a> - </dt> - <dt> - 2.2. <a href="cvs.html#CVSBRANCHES">Branches</a> - </dt> - <dt> - 2.3. <a href="cvs.html#CVSCOMMIT">CVS Commit Guidelines</a> - </dt> - </dl> - </dd> - <dt> - 3. <a href="documentation.html">Documentation Guidelines</a> - </dt> - <dd> - <dl> - <dt> - 3.1. <a href="documentation.html#SGML">Quickstart to Docbook - and SGML</a> - </dt> - <dt> - 3.2. <a href="documentation.html#DOCSTYLE"><span class= - "APPLICATION">Privoxy</span> Documentation Style</a> - </dt> - <dt> - 3.3. <a href="documentation.html#AEN217">Privoxy Custom - Entities</a> - </dt> - </dl> - </dd> - <dt> - 4. <a href="coding.html">Coding Guidelines</a> - </dt> - <dd> - <dl> - <dt> - 4.1. <a href="coding.html#S1">Introduction</a> - </dt> - <dt> - 4.2. <a href="coding.html#S2">Using Comments</a> - </dt> - <dd> - <dl> - <dt> - 4.2.1. <a href="coding.html#S3">Comment, Comment, - Comment</a> - </dt> - <dt> - 4.2.2. <a href="coding.html#S4">Use blocks for - comments</a> - </dt> - <dt> - 4.2.3. <a href="coding.html#S5">Keep Comments on their - own line</a> - </dt> - <dt> - 4.2.4. <a href="coding.html#S6">Comment each logical - step</a> - </dt> - <dt> - 4.2.5. <a href="coding.html#S7">Comment All Functions - Thoroughly</a> - </dt> - <dt> - 4.2.6. <a href="coding.html#S8">Comment at the end of - braces if the content is more than one screen length</a> - </dt> - </dl> - </dd> - <dt> - 4.3. <a href="coding.html#S9">Naming Conventions</a> - </dt> - <dd> - <dl> - <dt> - 4.3.1. <a href="coding.html#S10">Variable Names</a> - </dt> - <dt> - 4.3.2. <a href="coding.html#S11">Function Names</a> - </dt> - <dt> - 4.3.3. <a href="coding.html#S12">Header file - prototypes</a> - </dt> - <dt> - 4.3.4. <a href="coding.html#S13">Enumerations, and - #defines</a> - </dt> - <dt> - 4.3.5. <a href="coding.html#S14">Constants</a> - </dt> - </dl> - </dd> - <dt> - 4.4. <a href="coding.html#S15">Using Space</a> - </dt> - <dd> - <dl> - <dt> - 4.4.1. <a href="coding.html#S16">Put braces on a line by - themselves.</a> - </dt> - <dt> - 4.4.2. <a href="coding.html#S17">ALL control statements - should have a block</a> - </dt> - <dt> - 4.4.3. <a href="coding.html#S18">Do not belabor/blow-up - boolean expressions</a> - </dt> - <dt> - 4.4.4. <a href="coding.html#S19">Use white space freely - because it is free</a> - </dt> - <dt> - 4.4.5. <a href="coding.html#S20">Don't use white space - around structure operators</a> - </dt> - <dt> - 4.4.6. <a href="coding.html#S21">Make the last brace of a - function stand out</a> - </dt> - <dt> - 4.4.7. <a href="coding.html#S22">Use 3 character - indentions</a> - </dt> - </dl> - </dd> - <dt> - 4.5. <a href="coding.html#S23">Initializing</a> - </dt> - <dd> - <dl> - <dt> - 4.5.1. <a href="coding.html#S24">Initialize all - variables</a> - </dt> - </dl> - </dd> - <dt> - 4.6. <a href="coding.html#S25">Functions</a> - </dt> - <dd> - <dl> - <dt> - 4.6.1. <a href="coding.html#S26">Name functions that - return a boolean as a question.</a> - </dt> - <dt> - 4.6.2. <a href="coding.html#S27">Always specify a return - type for a function.</a> - </dt> - <dt> - 4.6.3. <a href="coding.html#S28">Minimize function calls - when iterating by using variables</a> - </dt> - <dt> - 4.6.4. <a href="coding.html#S29">Pass and Return by Const - Reference</a> - </dt> - <dt> - 4.6.5. <a href="coding.html#S30">Pass and Return by - Value</a> - </dt> - <dt> - 4.6.6. <a href="coding.html#S31">Names of include - files</a> - </dt> - <dt> - 4.6.7. <a href="coding.html#S32">Provide multiple - inclusion protection</a> - </dt> - <dt> - 4.6.8. <a href="coding.html#S33">Use `extern "C"` when - appropriate</a> - </dt> - <dt> - 4.6.9. <a href="coding.html#S34">Where Possible, Use - Forward Struct Declaration Instead of Includes</a> - </dt> - </dl> - </dd> - <dt> - 4.7. <a href="coding.html#S35">General Coding Practices</a> - </dt> - <dd> - <dl> - <dt> - 4.7.1. <a href="coding.html#S36">Turn on warnings</a> - </dt> - <dt> - 4.7.2. <a href="coding.html#S37">Provide a default case - for all switch statements</a> - </dt> - <dt> - 4.7.3. <a href="coding.html#S38">Try to avoid falling - through cases in a switch statement.</a> - </dt> - <dt> - 4.7.4. <a href="coding.html#S39">Use 'long' or 'short' - Instead of 'int'</a> - </dt> - <dt> - 4.7.5. <a href="coding.html#S40">Don't mix size_t and - other types</a> - </dt> - <dt> - 4.7.6. <a href="coding.html#S41">Declare each variable - and struct on its own line.</a> - </dt> - <dt> - 4.7.7. <a href="coding.html#S42">Use malloc/zalloc - sparingly</a> - </dt> - <dt> - 4.7.8. <a href="coding.html#S43">The Programmer Who Uses - 'malloc' is Responsible for Ensuring 'free'</a> - </dt> - <dt> - 4.7.9. <a href="coding.html#S44">Add loaders to the - `file_list' structure and in order</a> - </dt> - <dt> - 4.7.10. <a href="coding.html#S45">"Uncertain" new code - and/or changes to existing code, use FIXME or XXX</a> - </dt> - </dl> - </dd> - <dt> - 4.8. <a href="coding.html#S46">Addendum: Template for files - and function comment blocks:</a> - </dt> - </dl> - </dd> - <dt> - 5. <a href="testing.html">Testing Guidelines</a> - </dt> - <dd> - <dl> - <dt> - 5.1. <a href="testing.html#TESTING-PLAN">Testplan for - releases</a> - </dt> - <dt> - 5.2. <a href="testing.html#TESTING-REPORT">Test reports</a> - </dt> - </dl> - </dd> - <dt> - 6. <a href="newrelease.html">Releasing a New Version</a> - </dt> - <dd> - <dl> - <dt> - 6.1. <a href="newrelease.html#VERSIONNUMBERS">Version - numbers</a> - </dt> - <dt> - 6.2. <a href="newrelease.html#BEFORERELEASE">Before the - Release: Freeze</a> - </dt> - <dt> - 6.3. <a href="newrelease.html#THERELEASE">Building and - Releasing the Packages</a> - </dt> - <dd> - <dl> - <dt> - 6.3.1. <a href="newrelease.html#PACK-GUIDELINES">Note on - Privoxy Packaging</a> - </dt> - <dt> - 6.3.2. <a href= - "newrelease.html#NEWRELEASE-TARBALL">Source Tarball</a> - </dt> - <dt> - 6.3.3. <a href="newrelease.html#NEWRELEASE-RPM">SuSE, - Conectiva or Red Hat RPM</a> - </dt> - <dt> - 6.3.4. <a href="newrelease.html#NEWRELEASE-OS2">OS/2</a> - </dt> - <dt> - 6.3.5. <a href= - "newrelease.html#NEWRELEASE-SOLARIS">Solaris</a> - </dt> - <dt> - 6.3.6. <a href= - "newrelease.html#NEWRELEASE-WINDOWS">Windows</a> - </dt> - <dt> - 6.3.7. <a href= - "newrelease.html#NEWRELEASE-DEBIAN">Debian</a> - </dt> - <dt> - 6.3.8. <a href="newrelease.html#NEWRELEASE-MACOSX">Mac OS - X</a> - </dt> - <dt> - 6.3.9. <a href= - "newrelease.html#NEWRELEASE-FREEBSD">FreeBSD</a> - </dt> - <dt> - 6.3.10. <a href="newrelease.html#NEWRELEASE-HPUX">HP-UX - 11</a> - </dt> - <dt> - 6.3.11. <a href="newrelease.html#NEWRELEASE-AMIGA">Amiga - OS</a> - </dt> - <dt> - 6.3.12. <a href="newrelease.html#NEWRELEASE-AIX">AIX</a> - </dt> - </dl> - </dd> - <dt> - 6.4. <a href="newrelease.html#RELEASING">Uploading and - Releasing Your Package</a> - </dt> - <dt> - 6.5. <a href="newrelease.html#AFTERRELEASE">After the - Release</a> - </dt> - </dl> - </dd> - <dt> - 7. <a href="webserver-update.html">Update the Webserver</a> - </dt> - <dt> - 8. <a href="contact.html">Contacting the developers, Bug - Reporting and Feature Requests</a> - </dt> - <dd> - <dl> - <dt> - 8.1. <a href="contact.html#CONTACT-SUPPORT">Get Support</a> - </dt> - <dt> - 8.2. <a href="contact.html#REPORTING">Reporting Problems</a> - </dt> - <dd> - <dl> - <dt> - 8.2.1. <a href="contact.html#CONTACT-ADS">Reporting Ads - or Other Configuration Problems</a> - </dt> - <dt> - 8.2.2. <a href="contact.html#CONTACT-BUGS">Reporting - Bugs</a> - </dt> - </dl> - </dd> - <dt> - 8.3. <a href="contact.html#CONTACT-FEATURE">Request New - Features</a> - </dt> - <dt> - 8.4. <a href="contact.html#MAILING-LISTS">Mailing Lists</a> - </dt> - </dl> - </dd> - <dt> - 9. <a href="copyright.html">Privoxy Copyright, License and - History</a> - </dt> - <dd> - <dl> - <dt> - 9.1. <a href="copyright.html#AEN1229">License</a> - </dt> - <dt> - 9.2. <a href="copyright.html#AEN1245">History</a> - </dt> - </dl> - </dd> - <dt> - 10. <a href="seealso.html">See also</a> - </dt> - </dl> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + hr.c2 {text-align: left} + dt.c1 {font-weight: bold} + </style> +</head> + +<body class="ARTICLE"> + <div class="ARTICLE"> + <div class="TITLEPAGE"> + <h1 class="TITLE"><a name="AEN2" id="AEN2">Privoxy Developer + Manual</a></h1> + + <p class="PUBDATE"><sub><a href="copyright.html">Copyright</a> © + 2001-2009 by <a href="http://www.privoxy.org/" target="_top">Privoxy + Developers</a></sub><br></p> + + <p class="PUBDATE">$Id: developer-manual.sgml,v 2.36 2011/09/04 + 11:10:12 fabiankeil Exp $<br></p> + + <div class="ABSTRACT"> + <a name="AEN9" id="AEN9"></a> + + <p>The developer manual provides guidance on coding, testing, + packaging, documentation and other issues of importance to those + involved with <span class="APPLICATION">Privoxy</span> development. + It is mandatory (and helpful!) reading for anyone who wants to join + the team. Note that it's currently out of date and may not be + entirely correct. As always, patches are welcome.</p> + + <p>Please note that this document is constantly evolving. This copy + represents the state at the release of version 3.0.18. You can find + the latest version of the this manual at <a href= + "http://www.privoxy.org/developer-manual/" target= + "_top">http://www.privoxy.org/developer-manual/</a>. Please see + <a href="contact.html">the Contact section</a> on how to contact the + developers.</p> </div> + <hr> </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c2"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - <a href="introduction.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Introduction - </td> - </tr> - </table> + + <div class="TOC"> + <dl> + <dt class="c1">Table of Contents</dt> + + <dt>1. <a href="introduction.html">Introduction</a></dt> + + <dd> + <dl> + <dt>1.1. <a href="introduction.html#QUICKSTART">Quickstart to + Privoxy Development</a></dt> + </dl> + </dd> + + <dt>2. <a href="cvs.html">The CVS Repository</a></dt> + + <dd> + <dl> + <dt>2.1. <a href="cvs.html#CVSACCESS">Access to CVS</a></dt> + + <dt>2.2. <a href="cvs.html#CVSBRANCHES">Branches</a></dt> + + <dt>2.3. <a href="cvs.html#CVSCOMMIT">CVS Commit + Guidelines</a></dt> + </dl> + </dd> + + <dt>3. <a href="documentation.html">Documentation Guidelines</a></dt> + + <dd> + <dl> + <dt>3.1. <a href="documentation.html#SGML">Quickstart to Docbook + and SGML</a></dt> + + <dt>3.2. <a href="documentation.html#DOCSTYLE"><span class= + "APPLICATION">Privoxy</span> Documentation Style</a></dt> + + <dt>3.3. <a href="documentation.html#AEN217">Privoxy Custom + Entities</a></dt> + </dl> + </dd> + + <dt>4. <a href="coding.html">Coding Guidelines</a></dt> + + <dd> + <dl> + <dt>4.1. <a href="coding.html#S1">Introduction</a></dt> + + <dt>4.2. <a href="coding.html#S2">Using Comments</a></dt> + + <dd> + <dl> + <dt>4.2.1. <a href="coding.html#S3">Comment, Comment, + Comment</a></dt> + + <dt>4.2.2. <a href="coding.html#S4">Use blocks for + comments</a></dt> + + <dt>4.2.3. <a href="coding.html#S5">Keep Comments on their + own line</a></dt> + + <dt>4.2.4. <a href="coding.html#S6">Comment each logical + step</a></dt> + + <dt>4.2.5. <a href="coding.html#S7">Comment All Functions + Thoroughly</a></dt> + + <dt>4.2.6. <a href="coding.html#S8">Comment at the end of + braces if the content is more than one screen length</a></dt> + </dl> + </dd> + + <dt>4.3. <a href="coding.html#S9">Naming Conventions</a></dt> + + <dd> + <dl> + <dt>4.3.1. <a href="coding.html#S10">Variable Names</a></dt> + + <dt>4.3.2. <a href="coding.html#S11">Function Names</a></dt> + + <dt>4.3.3. <a href="coding.html#S12">Header file + prototypes</a></dt> + + <dt>4.3.4. <a href="coding.html#S13">Enumerations, and + #defines</a></dt> + + <dt>4.3.5. <a href="coding.html#S14">Constants</a></dt> + </dl> + </dd> + + <dt>4.4. <a href="coding.html#S15">Using Space</a></dt> + + <dd> + <dl> + <dt>4.4.1. <a href="coding.html#S16">Put braces on a line by + themselves.</a></dt> + + <dt>4.4.2. <a href="coding.html#S17">ALL control statements + should have a block</a></dt> + + <dt>4.4.3. <a href="coding.html#S18">Do not belabor/blow-up + boolean expressions</a></dt> + + <dt>4.4.4. <a href="coding.html#S19">Use white space freely + because it is free</a></dt> + + <dt>4.4.5. <a href="coding.html#S20">Don't use white space + around structure operators</a></dt> + + <dt>4.4.6. <a href="coding.html#S21">Make the last brace of a + function stand out</a></dt> + + <dt>4.4.7. <a href="coding.html#S22">Use 3 character + indentions</a></dt> + </dl> + </dd> + + <dt>4.5. <a href="coding.html#S23">Initializing</a></dt> + + <dd> + <dl> + <dt>4.5.1. <a href="coding.html#S24">Initialize all + variables</a></dt> + </dl> + </dd> + + <dt>4.6. <a href="coding.html#S25">Functions</a></dt> + + <dd> + <dl> + <dt>4.6.1. <a href="coding.html#S26">Name functions that + return a boolean as a question.</a></dt> + + <dt>4.6.2. <a href="coding.html#S27">Always specify a return + type for a function.</a></dt> + + <dt>4.6.3. <a href="coding.html#S28">Minimize function calls + when iterating by using variables</a></dt> + + <dt>4.6.4. <a href="coding.html#S29">Pass and Return by Const + Reference</a></dt> + + <dt>4.6.5. <a href="coding.html#S30">Pass and Return by + Value</a></dt> + + <dt>4.6.6. <a href="coding.html#S31">Names of include + files</a></dt> + + <dt>4.6.7. <a href="coding.html#S32">Provide multiple + inclusion protection</a></dt> + + <dt>4.6.8. <a href="coding.html#S33">Use `extern "C"` when + appropriate</a></dt> + + <dt>4.6.9. <a href="coding.html#S34">Where Possible, Use + Forward Struct Declaration Instead of Includes</a></dt> + </dl> + </dd> + + <dt>4.7. <a href="coding.html#S35">General Coding + Practices</a></dt> + + <dd> + <dl> + <dt>4.7.1. <a href="coding.html#S36">Turn on + warnings</a></dt> + + <dt>4.7.2. <a href="coding.html#S37">Provide a default case + for all switch statements</a></dt> + + <dt>4.7.3. <a href="coding.html#S38">Try to avoid falling + through cases in a switch statement.</a></dt> + + <dt>4.7.4. <a href="coding.html#S39">Use 'long' or 'short' + Instead of 'int'</a></dt> + + <dt>4.7.5. <a href="coding.html#S40">Don't mix size_t and + other types</a></dt> + + <dt>4.7.6. <a href="coding.html#S41">Declare each variable + and struct on its own line.</a></dt> + + <dt>4.7.7. <a href="coding.html#S42">Use malloc/zalloc + sparingly</a></dt> + + <dt>4.7.8. <a href="coding.html#S43">The Programmer Who Uses + 'malloc' is Responsible for Ensuring 'free'</a></dt> + + <dt>4.7.9. <a href="coding.html#S44">Add loaders to the + `file_list' structure and in order</a></dt> + + <dt>4.7.10. <a href="coding.html#S45">"Uncertain" new code + and/or changes to existing code, use FIXME or XXX</a></dt> + </dl> + </dd> + + <dt>4.8. <a href="coding.html#S46">Addendum: Template for files + and function comment blocks:</a></dt> + </dl> + </dd> + + <dt>5. <a href="testing.html">Testing Guidelines</a></dt> + + <dd> + <dl> + <dt>5.1. <a href="testing.html#TESTING-PLAN">Testplan for + releases</a></dt> + + <dt>5.2. <a href="testing.html#TESTING-REPORT">Test + reports</a></dt> + </dl> + </dd> + + <dt>6. <a href="newrelease.html">Releasing a New Version</a></dt> + + <dd> + <dl> + <dt>6.1. <a href="newrelease.html#VERSIONNUMBERS">Version + numbers</a></dt> + + <dt>6.2. <a href="newrelease.html#BEFORERELEASE">Before the + Release: Freeze</a></dt> + + <dt>6.3. <a href="newrelease.html#THERELEASE">Building and + Releasing the Packages</a></dt> + + <dd> + <dl> + <dt>6.3.1. <a href="newrelease.html#PACK-GUIDELINES">Note on + Privoxy Packaging</a></dt> + + <dt>6.3.2. <a href= + "newrelease.html#NEWRELEASE-TARBALL">Source Tarball</a></dt> + + <dt>6.3.3. <a href="newrelease.html#NEWRELEASE-RPM">SuSE, + Conectiva or Red Hat RPM</a></dt> + + <dt>6.3.4. <a href= + "newrelease.html#NEWRELEASE-OS2">OS/2</a></dt> + + <dt>6.3.5. <a href= + "newrelease.html#NEWRELEASE-SOLARIS">Solaris</a></dt> + + <dt>6.3.6. <a href= + "newrelease.html#NEWRELEASE-WINDOWS">Windows</a></dt> + + <dt>6.3.7. <a href= + "newrelease.html#NEWRELEASE-DEBIAN">Debian</a></dt> + + <dt>6.3.8. <a href="newrelease.html#NEWRELEASE-MACOSX">Mac OS + X</a></dt> + + <dt>6.3.9. <a href= + "newrelease.html#NEWRELEASE-FREEBSD">FreeBSD</a></dt> + + <dt>6.3.10. <a href="newrelease.html#NEWRELEASE-HPUX">HP-UX + 11</a></dt> + + <dt>6.3.11. <a href="newrelease.html#NEWRELEASE-AMIGA">Amiga + OS</a></dt> + + <dt>6.3.12. <a href= + "newrelease.html#NEWRELEASE-AIX">AIX</a></dt> + </dl> + </dd> + + <dt>6.4. <a href="newrelease.html#RELEASING">Uploading and + Releasing Your Package</a></dt> + + <dt>6.5. <a href="newrelease.html#AFTERRELEASE">After the + Release</a></dt> + </dl> + </dd> + + <dt>7. <a href="webserver-update.html">Update the Webserver</a></dt> + + <dt>8. <a href="contact.html">Contacting the developers, Bug + Reporting and Feature Requests</a></dt> + + <dd> + <dl> + <dt>8.1. <a href="contact.html#CONTACT-SUPPORT">Get + Support</a></dt> + + <dt>8.2. <a href="contact.html#REPORTING">Reporting + Problems</a></dt> + + <dd> + <dl> + <dt>8.2.1. <a href="contact.html#CONTACT-ADS">Reporting Ads + or Other Configuration Problems</a></dt> + + <dt>8.2.2. <a href="contact.html#CONTACT-BUGS">Reporting + Bugs</a></dt> + </dl> + </dd> + + <dt>8.3. <a href="contact.html#CONTACT-FEATURE">Request New + Features</a></dt> + + <dt>8.4. <a href="contact.html#MAILING-LISTS">Mailing + Lists</a></dt> + </dl> + </dd> + + <dt>9. <a href="copyright.html">Privoxy Copyright, License and + History</a></dt> + + <dd> + <dl> + <dt>9.1. <a href="copyright.html#AEN1233">License</a></dt> + + <dt>9.2. <a href="copyright.html#AEN1249">History</a></dt> + </dl> + </dd> + + <dt>10. <a href="seealso.html">See also</a></dt> + </dl> </div> - </body> -</html> + </div> + + <div class="NAVFOOTER"> + <hr class="c2" width="100%"> + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"> </td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top"><a href= + "introduction.html" accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top"> </td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Introduction</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/developer-manual/introduction.html b/doc/webserver/developer-manual/introduction.html index a47acf89..468f2fa6 100644 --- a/doc/webserver/developer-manual/introduction.html +++ b/doc/webserver/developer-manual/introduction.html @@ -1,123 +1,116 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Introduction - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy Developer Manual" href="index.html"> - <link rel="PREVIOUS" title="Privoxy Developer Manual" href="index.html"> - <link rel="NEXT" title="The CVS Repository" href="cvs.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Introduction</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy Developer Manual" href="index.html"> + <link rel="PREVIOUS" title="Privoxy Developer Manual" href="index.html"> + <link rel="NEXT" title="The CVS Repository" href="cvs.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy Developer Manual - </th> - </tr> - <tr> - <td width="10%" align="left" valign="bottom"> - <a href="index.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="cvs.html" accesskey="N">Next</a> - </td> - </tr> - </table> - <hr width="100%" class="c1"> - </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="INTRODUCTION">1. Introduction</a> - </h1> - <p> - <span class="APPLICATION">Privoxy</span>, as an heir to <span class= - "APPLICATION">Junkbuster</span>, is a Free Software project and the - code is licensed under the GNU General Public License version 2. As - such, <span class="APPLICATION">Privoxy</span> development is - potentially open to anyone who has the time, knowledge, and desire to - contribute in any capacity. Our goals are simply to continue the - mission, to improve <span class="APPLICATION">Privoxy</span>, and to - make it available to as wide an audience as possible. - </p> - <p> - One does not have to be a programmer to contribute. Packaging, - testing, documenting and porting, are all important jobs as well. - </p> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="QUICKSTART">1.1. Quickstart to Privoxy Development</a> - </h2> - <p> - The first step is to join the <a href= - "mailto:ijbswa-developers@lists.sourceforge.net" target= - "_top">developer's mailing list</a>. You can submit your ideas, or - even better patches. Patches are best submitted to the Sourceforge - tracker set up for this purpose, but can be sent to the list for - review too. - </p> - <p> - You will also need to have a cvs package installed, which will - entail having ssh installed as well (which seems to be a - requirement of SourceForge), in order to access the cvs repository. - Having the GNU build tools is also going to be important - (particularly, autoconf and gmake). - </p> - <p> - For the time being (read, this section is under construction), you - can also refer to the extensive comments in the source code. In - fact, reading the code is recommended in any case. - </p> - </div> - </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="index.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="cvs.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - Privoxy Developer Manual - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - The CVS Repository - </td> - </tr> - </table> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy Developer Manual</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href="index.html" + accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href="cvs.html" + accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="INTRODUCTION" id="INTRODUCTION">1. + Introduction</a></h1> + + <p><span class="APPLICATION">Privoxy</span>, as an heir to <span class= + "APPLICATION">Junkbuster</span>, is a Free Software project and the code + is licensed under the GNU General Public License version 2. As such, + <span class="APPLICATION">Privoxy</span> development is potentially open + to anyone who has the time, knowledge, and desire to contribute in any + capacity. Our goals are simply to continue the mission, to improve + <span class="APPLICATION">Privoxy</span>, and to make it available to as + wide an audience as possible.</p> + + <p>One does not have to be a programmer to contribute. Packaging, + testing, documenting and porting, are all important jobs as well.</p> + + <div class="SECT2"> + <h2 class="SECT2"><a name="QUICKSTART" id="QUICKSTART">1.1. Quickstart + to Privoxy Development</a></h2> + + <p>The first step is to join the <a href= + "mailto:ijbswa-developers@lists.sourceforge.net" target= + "_top">developer's mailing list</a>. You can submit your ideas, or even + better patches. Patches are best submitted to the Sourceforge tracker + set up for this purpose, but can be sent to the list for review + too.</p> + + <p>You will also need to have a cvs package installed, which will + entail having ssh installed as well (which seems to be a requirement of + SourceForge), in order to access the cvs repository. Having the GNU + build tools is also going to be important (particularly, autoconf and + gmake).</p> + + <p>For the time being (read, this section is under construction), you + can also refer to the extensive comments in the source code. In fact, + reading the code is recommended in any case.</p> </div> - </body> -</html> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="index.html" + accesskey="P">Prev</a></td> + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + + <td width="33%" align="right" valign="top"><a href="cvs.html" + accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Privoxy Developer + Manual</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">The CVS Repository</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/developer-manual/newrelease.html b/doc/webserver/developer-manual/newrelease.html index 7b01ecf5..49f1e8da 100644 --- a/doc/webserver/developer-manual/newrelease.html +++ b/doc/webserver/developer-manual/newrelease.html @@ -1,1282 +1,1089 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Releasing a New Version - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy Developer Manual" href="index.html"> - <link rel="PREVIOUS" title="Testing Guidelines" href="testing.html"> - <link rel="NEXT" title="Update the Webserver" href= - "webserver-update.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Releasing a New Version</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy Developer Manual" href="index.html"> + <link rel="PREVIOUS" title="Testing Guidelines" href="testing.html"> + <link rel="NEXT" title="Update the Webserver" href="webserver-update.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy Developer Manual - </th> - </tr> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + tt.c5 {font-style: italic} + td.c4 {font-weight: bold} + table.c3 {background-color: #E0E0E0} + span.c2 {font-style: italic} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy Developer Manual</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href="testing.html" + accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href= + "webserver-update.html" accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="NEWRELEASE" id="NEWRELEASE">6. Releasing a New + Version</a></h1> + + <p>When we release versions of <span class="APPLICATION">Privoxy</span>, + our work leaves our cozy secret lab and has to work in the cold + RealWorld[tm]. Once it is released, there is no way to call it back, so + it is very important that great care is taken to ensure that everything + runs fine, and not to introduce problems in the very last minute.</p> + + <p>So when releasing a new version, please adhere exactly to the + procedure outlined in this chapter.</p> + + <p>The following programs are required to follow this process: <tt class= + "FILENAME">ncftpput</tt> (ncftp), <tt class="FILENAME">scp, ssh</tt> + (ssh), <tt class="FILENAME">gmake</tt> (GNU's version of make), autoconf, + cvs.</p> + + <div class="SECT2"> + <h2 class="SECT2"><a name="VERSIONNUMBERS" id="VERSIONNUMBERS">6.1. + Version numbers</a></h2> + + <p>First you need to determine which version number the release will + have. <span class="APPLICATION">Privoxy</span> version numbers consist + of three numbers, separated by dots, like in X.Y.Z (e.g. 3.0.0), + where:</p> + + <ul> + <li> + <p>X, the version major, is rarely ever changed. It is increased by + one if turning a development branch into stable substantially + changes the functionality, user interface or configuration syntax. + Majors 1 and 2 were <span class="APPLICATION">Junkbuster</span>, + and 3 will be the first stable <span class= + "APPLICATION">Privoxy</span> release.</p> + </li> + + <li> + <p>Y, the version minor, represents the branch within the major + version. At any point in time, there are two branches being + maintained: The stable branch, with an even minor, say, 2N, in + which no functionality is being added and only bug-fixes are made, + and 2N+1, the development branch, in which the further development + of <span class="APPLICATION">Privoxy</span> takes place. This + enables us to turn the code upside down and inside out, while at + the same time providing and maintaining a stable version. The minor + is reset to zero (and one) when the major is incremented. When a + development branch has matured to the point where it can be turned + into stable, the old stable branch 2N is given up (i.e. no longer + maintained), the former development branch 2N+1 becomes the new + stable branch 2N+2, and a new development branch 2N+3 is + opened.</p> + </li> + + <li> + <p>Z, the point or sub version, represents a release of the + software within a branch. It is therefore incremented immediately + before each code freeze. In development branches, only the even + point versions correspond to actual releases, while the odd ones + denote the evolving state of the sources on CVS in between. It + follows that Z is odd on CVS in development branches most of the + time. There, it gets increased to an even number immediately before + a code freeze, and is increased to an odd number again immediately + thereafter. This ensures that builds from CVS snapshots are easily + distinguished from released versions. The point version is reset to + zero when the minor changes.</p> + + <p>Stable branches work a little differently, since there should be + little to no development happening in such branches. Remember, only + bugfixes, which presumably should have had some testing before + being committed. Stable branches will then have their version + reported as <tt class="LITERAL">0.0.0</tt>, during that period + between releases when changes are being added. This is to denote + that this code is <span class="emphasis EMPHASIS c2">not for + release</span>. Then as the release nears, the version is bumped + according: e.g. <tt class="LITERAL">3.0.1 -> 0.0.0 -> + 3.0.2</tt>.</p> + </li> + </ul> + + <p>In summary, the main CVS trunk is the development branch where new + features are being worked on for the next stable series. This should + almost always be where the most activity takes place. There is always + at least one stable branch from the trunk, e.g now it is <tt class= + "LITERAL">3.0</tt>, which is only used to release stable versions. Once + the initial *.0 release of the stable branch has been done, then as a + rule, only bugfixes that have had prior testing should be committed to + the stable branch. Once there are enough bugfixes to justify a new + release, the version of this branch is again incremented Example: 3.0.0 + -> 3.0.1 -> 3.0.2, etc are all stable releases from within the + stable branch. 3.1.x is currently the main trunk, and where work on + 3.2.x is taking place. If any questions, please post to the devel list + <span class="emphasis EMPHASIS c2">before</span> committing to a stable + branch!</p> + + <p>Developers should remember too that if they commit a bugfix to the + stable branch, this will more than likely require a separate submission + to the main trunk, since these are separate development trees within + CVS. If you are working on both, then this would require at least two + separate check outs (i.e main trunk, <span class= + "emphasis EMPHASIS c2">and</span> the stable release branch, which is + <tt class="LITERAL">v_3_0_branch</tt> at the moment).</p> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="BEFORERELEASE" id="BEFORERELEASE">6.2. + Before the Release: Freeze</a></h2> + + <p>The following <span class="emphasis EMPHASIS c2">must be done by one + of the developers</span> prior to each new release.</p> + + <ul> + <li> + <p>Make sure that everybody who has worked on the code in the last + couple of days has had a chance to yell <span class= + "QUOTE">"no!"</span> in case they have pending changes/fixes in + their pipelines. Announce the freeze so that nobody will interfere + with last minute changes.</p> + </li> + + <li> + <p>Increment the version number (point from odd to even in + development branches!) in <tt class="FILENAME">configure.in</tt>. + (RPM spec files will need to be incremented as well.)</p> + </li> + + <li> + <p>If <tt class="FILENAME">default.action</tt> has changed since + last release (i.e. software release or standalone actions file + release), bump up its version info to A.B in this line:</p> + + <table class="c3" border="0" width="90%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> + {+add-header{X-Actions-File-Version: A.B} -filter -no-popups} +</pre> + </td> + </tr> + </table> + + <p>Then change the version info in doc/webserver/actions/index.php, + line: '$required_actions_file_version = "A.B";'</p> + </li> + + <li> + <p>All documentation should be rebuild after the version bump. + Finished docs should be then be committed to CVS (for those without + the ability to build these). Some docs may require rather obscure + processing tools. <tt class="FILENAME">config</tt>, the man page + (and the html version of the man page), and the PDF docs fall in + this category. REAMDE, the man page, AUTHORS, and config should all + also be committed to CVS for other packagers. The formal docs + should be uploaded to the webserver. See the Section "Updating the + webserver" in this manual for details.</p> + </li> + + <li> + <p>The <i class="CITETITLE">User Manual</i> is also used for + context sensitive help for the CGI editor. This is version + sensitive, so that the user will get appropriate help for his/her + release. So with each release a fresh version should be uploaded to + the webserver (this is in addition to the main <i class= + "CITETITLE">User Manual</i> link from the main page since we need + to keep manuals for various versions available). The CGI pages will + link to something like <tt class= + "LITERAL">http://privoxy.org/$(VERSION)/user-manual/</tt>. This + will need to be updated for each new release. There is no Makefile + target for this at this time!!! It needs to be done manually.</p> + </li> + + <li> + <p>All developers should look at the <tt class= + "FILENAME">ChangeLog</tt> and make sure noteworthy changes are + referenced.</p> + </li> + + <li> + <p><span class="emphasis EMPHASIS c2">Commit all files that were + changed in the above steps!</span></p> + </li> + + <li> + <p>Tag all files in CVS with the version number with <span class= + "QUOTE">"<b class="COMMAND">cvs tag v_X_Y_Z</b>"</span>. Don't use + vX_Y_Z, ver_X_Y_Z, v_X.Y.Z (won't work) etc.</p> + </li> + + <li> + <p>If the release was in a development branch, increase the point + version from even to odd (X.Y.(Z+1)) again in <tt class= + "FILENAME">configure.in</tt> and commit your change.</p> + </li> + + <li> + <p>On the webserver, copy the user manual to a new top-level + directory called <tt class="FILENAME">X.Y.Z</tt>. This ensures that + help links from the CGI pages, which have the version as a prefix, + will go into the right version of the manual. If this is a + development branch release, also symlink <tt class= + "FILENAME">X.Y.(Z-1)</tt> to <tt class="FILENAME">X.Y.Z</tt> and + <tt class="FILENAME">X.Y.(Z+1)</tt> to <tt class="FILENAME">.</tt> + (i.e. dot).</p> + </li> + </ul> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="THERELEASE" id="THERELEASE">6.3. Building + and Releasing the Packages</a></h2> + + <p>Now the individual packages can be built and released. Note that for + GPL reasons the first package to be released is always the source + tarball.</p> + + <p>For <span class="emphasis EMPHASIS c2">all</span> types of packages, + including the source tarball, <span class="emphasis EMPHASIS c2">you + must make sure that you build from clean sources by exporting the right + version from CVS into an empty directory</span> (just press return when + asked for a password):</p> + + <table class="c3" border="0" width="100%"> <tr> - <td width="10%" align="left" valign="bottom"> - <a href="testing.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="webserver-update.html" accesskey="N">Next</a> + <td> + <pre class="PROGRAMLISTING"> + mkdir dist # delete or choose different name if it already exists + cd dist + cvs -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa login + cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current +</pre> </td> </tr> </table> - <hr width="100%" class="c1"> - </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="NEWRELEASE">6. Releasing a New Version</a> - </h1> - <p> - When we release versions of <span class="APPLICATION">Privoxy</span>, - our work leaves our cozy secret lab and has to work in the cold - RealWorld[tm]. Once it is released, there is no way to call it back, - so it is very important that great care is taken to ensure that - everything runs fine, and not to introduce problems in the very last - minute. - </p> - <p> - So when releasing a new version, please adhere exactly to the - procedure outlined in this chapter. - </p> - <p> - The following programs are required to follow this process: <tt - class="FILENAME">ncftpput</tt> (ncftp), <tt class="FILENAME">scp, - ssh</tt> (ssh), <tt class="FILENAME">gmake</tt> (GNU's version of - make), autoconf, cvs. - </p> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="VERSIONNUMBERS">6.1. Version numbers</a> - </h2> - <p> - First you need to determine which version number the release will - have. <span class="APPLICATION">Privoxy</span> version numbers - consist of three numbers, separated by dots, like in X.Y.Z (e.g. - 3.0.0), where: - </p> - <ul> - <li> - <p> - X, the version major, is rarely ever changed. It is increased - by one if turning a development branch into stable - substantially changes the functionality, user interface or - configuration syntax. Majors 1 and 2 were <span class= - "APPLICATION">Junkbuster</span>, and 3 will be the first stable - <span class="APPLICATION">Privoxy</span> release. - </p> - </li> - <li> - <p> - Y, the version minor, represents the branch within the major - version. At any point in time, there are two branches being - maintained: The stable branch, with an even minor, say, 2N, in - which no functionality is being added and only bug-fixes are - made, and 2N+1, the development branch, in which the further - development of <span class="APPLICATION">Privoxy</span> takes - place. This enables us to turn the code upside down and inside - out, while at the same time providing and maintaining a stable - version. The minor is reset to zero (and one) when the major is - incremented. When a development branch has matured to the point - where it can be turned into stable, the old stable branch 2N is - given up (i.e. no longer maintained), the former development - branch 2N+1 becomes the new stable branch 2N+2, and a new - development branch 2N+3 is opened. - </p> - </li> - <li> - <p> - Z, the point or sub version, represents a release of the - software within a branch. It is therefore incremented - immediately before each code freeze. In development branches, - only the even point versions correspond to actual releases, - while the odd ones denote the evolving state of the sources on - CVS in between. It follows that Z is odd on CVS in development - branches most of the time. There, it gets increased to an even - number immediately before a code freeze, and is increased to an - odd number again immediately thereafter. This ensures that - builds from CVS snapshots are easily distinguished from - released versions. The point version is reset to zero when the - minor changes. - </p> - <p> - Stable branches work a little differently, since there should - be little to no development happening in such branches. - Remember, only bugfixes, which presumably should have had some - testing before being committed. Stable branches will then have - their version reported as <tt class="LITERAL">0.0.0</tt>, - during that period between releases when changes are being - added. This is to denote that this code is <span class= - "emphasis"><i class="EMPHASIS">not for release</i></span>. Then - as the release nears, the version is bumped according: e.g. <tt - class="LITERAL">3.0.1 -> 0.0.0 -> 3.0.2</tt>. - </p> - </li> - </ul> - <p> - In summary, the main CVS trunk is the development branch where new - features are being worked on for the next stable series. This - should almost always be where the most activity takes place. There - is always at least one stable branch from the trunk, e.g now it is - <tt class="LITERAL">3.0</tt>, which is only used to release stable - versions. Once the initial *.0 release of the stable branch has - been done, then as a rule, only bugfixes that have had prior - testing should be committed to the stable branch. Once there are - enough bugfixes to justify a new release, the version of this - branch is again incremented Example: 3.0.0 -> 3.0.1 -> 3.0.2, - etc are all stable releases from within the stable branch. 3.1.x is - currently the main trunk, and where work on 3.2.x is taking place. - If any questions, please post to the devel list <span class= - "emphasis"><i class="EMPHASIS">before</i></span> committing to a - stable branch! - </p> - <p> - Developers should remember too that if they commit a bugfix to the - stable branch, this will more than likely require a separate - submission to the main trunk, since these are separate development - trees within CVS. If you are working on both, then this would - require at least two separate check outs (i.e main trunk, <span - class="emphasis"><i class="EMPHASIS">and</i></span> the stable - release branch, which is <tt class="LITERAL">v_3_0_branch</tt> at - the moment). - </p> + <p><span class="emphasis EMPHASIS c2">Do NOT change</span> a single + bit, including, but not limited to version information after export + from CVS. This is to make sure that all release packages, and with + them, all future bug reports, are based on exactly the same code.</p> + + <div class="WARNING"> + <table class="WARNING" border="1" width="100%"> + <tr> + <td class="c4" align="center">Warning</td> + </tr> + + <tr> + <td align="left"> + <p>Every significant release of Privoxy has included at least + one package that either had incorrect versions of files, + missing files, or incidental leftovers from a previous build + process that gave unknown numbers of users headaches to try to + figure out what was wrong. PLEASE, make sure you are using + pristene sources, and are following the prescribed process!</p> + </td> + </tr> + </table> </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="BEFORERELEASE">6.2. Before the Release: Freeze</a> - </h2> - <p> - The following <span class="emphasis"><i class="EMPHASIS">must be - done by one of the developers</i></span> prior to each new release. - </p> - <p> - </p> + + <p>Please find additional instructions for the source tarball and the + individual platform dependent binary packages below. And details on the + Sourceforge release process below that.</p> + + <div class="SECT3"> + <h3 class="SECT3"><a name="PACK-GUIDELINES" id= + "PACK-GUIDELINES">6.3.1. Note on Privoxy Packaging</a></h3> + + <p>Please keep these general guidelines in mind when putting together + your package. These apply to <span class= + "emphasis EMPHASIS c2">all</span> platforms!</p> + <ul> <li> - <p> - Make sure that everybody who has worked on the code in the last - couple of days has had a chance to yell <span class= - "QUOTE">"no!"</span> in case they have pending changes/fixes in - their pipelines. Announce the freeze so that nobody will - interfere with last minute changes. - </p> - </li> - <li> - <p> - Increment the version number (point from odd to even in - development branches!) in <tt class= - "FILENAME">configure.in</tt>. (RPM spec files will need to be - incremented as well.) - </p> + <p><span class="APPLICATION">Privoxy</span> <span class= + "emphasis EMPHASIS c2">requires</span> write access to: all + <tt class="FILENAME">*.action</tt> files, all logfiles, and the + <tt class="FILENAME">trust</tt> file. You will need to determine + the best way to do this for your platform.</p> </li> + <li> - <p> - If <tt class="FILENAME">default.action</tt> has changed since - last release (i.e. software release or standalone actions file - release), bump up its version info to A.B in this line: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> - {+add-header{X-Actions-File-Version: A.B} -filter -no-popups} -</pre> - </td> - </tr> + <p>Please include up to date documentation. At a bare + minimum:</p> + + <table border="0"> + <tbody> + <tr> + <td><tt class="FILENAME">LICENSE</tt> (top-level + directory)</td> + </tr> + </tbody> </table> - <p> - Then change the version info in - doc/webserver/actions/index.php, line: - '$required_actions_file_version = "A.B";' - </p> - </li> - <li> - <p> - All documentation should be rebuild after the version bump. - Finished docs should be then be committed to CVS (for those - without the ability to build these). Some docs may require - rather obscure processing tools. <tt class= - "FILENAME">config</tt>, the man page (and the html version of - the man page), and the PDF docs fall in this category. REAMDE, - the man page, AUTHORS, and config should all also be committed - to CVS for other packagers. The formal docs should be uploaded - to the webserver. See the Section "Updating the webserver" in - this manual for details. - </p> - </li> - <li> - <p> - The <i class="CITETITLE">User Manual</i> is also used for - context sensitive help for the CGI editor. This is version - sensitive, so that the user will get appropriate help for - his/her release. So with each release a fresh version should be - uploaded to the webserver (this is in addition to the main <i - class="CITETITLE">User Manual</i> link from the main page since - we need to keep manuals for various versions available). The - CGI pages will link to something like <tt class= - "LITERAL">http://privoxy.org/$(VERSION)/user-manual/</tt>. This - will need to be updated for each new release. There is no - Makefile target for this at this time!!! It needs to be done - manually. - </p> - </li> - <li> - <p> - All developers should look at the <tt class= - "FILENAME">ChangeLog</tt> and make sure noteworthy changes are - referenced. - </p> + <table border="0"> + <tbody> + <tr> + <td><tt class="FILENAME">README</tt> (top-level + directory)</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><tt class="FILENAME">AUTHORS</tt> (top-level + directory)</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><tt class="FILENAME">man page</tt> (top-level + directory, Unix-like platforms only)</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><tt class="FILENAME">The User Manual</tt> + (doc/webserver/user-manual/)</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><tt class="FILENAME">FAQ</tt> (doc/webserver/faq/)</td> + </tr> + </tbody> + </table> + + <p>Also suggested: <tt class="FILENAME">Developer Manual</tt> + (doc/webserver/developer-manual) and <tt class= + "FILENAME">ChangeLog</tt> (top-level directory). <tt class= + "FILENAME">FAQ</tt> and the manuals are HTML docs. There are also + text versions in <tt class="FILENAME">doc/text/</tt> which could + conceivably also be included.</p> + + <p>The documentation has been designed such that the manuals are + linked to each other from parallel directories, and should be + packaged that way. <tt class="FILENAME">privoxy-index.html</tt> + can also be included and can serve as a focal point for docs and + other links of interest (and possibly renamed to <tt class= + "FILENAME">index.html</tt>). This should be one level up from the + manuals. There is a link also on this page to an HTMLized version + of the man page. To avoid 404 for this, it is in CVS as + <tt class="FILENAME">doc/webserver/man-page/privoxy-man-page.html</tt>, + and should be included along with the manuals. There is also a + css stylesheets that can be included for better presentation: + <tt class="FILENAME">p_doc.css</tt>. This should be in the same + directory with <tt class="FILENAME">privoxy-index.html</tt>, + (i.e. one level up from the manual directories).</p> </li> + <li> - <p> - <span class="emphasis"><i class="EMPHASIS">Commit all files - that were changed in the above steps!</i></span> - </p> + <p><tt class="FILENAME">user.action</tt> and <tt class= + "FILENAME">user.filter</tt> are designed for local preferences. + Make sure these do not get overwritten! <tt class= + "FILENAME">config</tt> should not be overwritten either. This has + especially important configuration data in it. <tt class= + "FILENAME">trust</tt> should be left in tact as well.</p> </li> + <li> - <p> - Tag all files in CVS with the version number with <span class= - "QUOTE">"<b class="COMMAND">cvs tag v_X_Y_Z</b>"</span>. Don't - use vX_Y_Z, ver_X_Y_Z, v_X.Y.Z (won't work) etc. - </p> + <p>Other configuration files (<tt class= + "FILENAME">default.action</tt> and <tt class= + "FILENAME">default.filter</tt>) should be installed as the new + defaults, but all previously installed configuration files should + be preserved as backups. This is just good manners :-) These + files are likely to change between releases and contain important + new features and bug fixes.</p> </li> + <li> - <p> - If the release was in a development branch, increase the point - version from even to odd (X.Y.(Z+1)) again in <tt class= - "FILENAME">configure.in</tt> and commit your change. - </p> + <p>Please check platform specific notes in this doc, if you + haven't done <span class="QUOTE">"Privoxy"</span> packaging + before for other platform specific issues. Conversely, please add + any notes that you know are important for your platform (or + contact one of the doc maintainers to do this if you can't).</p> </li> + <li> - <p> - On the webserver, copy the user manual to a new top-level - directory called <tt class="FILENAME">X.Y.Z</tt>. This ensures - that help links from the CGI pages, which have the version as a - prefix, will go into the right version of the manual. If this - is a development branch release, also symlink <tt class= - "FILENAME">X.Y.(Z-1)</tt> to <tt class="FILENAME">X.Y.Z</tt> - and <tt class="FILENAME">X.Y.(Z+1)</tt> to <tt class= - "FILENAME">.</tt> (i.e. dot). - </p> + <p>Packagers should do a <span class="QUOTE">"clean"</span> + install of their package after building it. So any previous + installs should be removed first to ensure the integrity of the + newly built package. Then run the package for a while to make + sure there are no obvious problems, before uploading.</p> </li> </ul> </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="THERELEASE">6.3. Building and Releasing the Packages</a> - </h2> - <p> - Now the individual packages can be built and released. Note that - for GPL reasons the first package to be released is always the - source tarball. - </p> - <p> - For <span class="emphasis"><i class="EMPHASIS">all</i></span> types - of packages, including the source tarball, <span class= - "emphasis"><i class="EMPHASIS">you must make sure that you build - from clean sources by exporting the right version from CVS into an - empty directory</i></span> (just press return when asked for a - password): - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> + + <div class="SECT3"> + <h3 class="SECT3"><a name="NEWRELEASE-TARBALL" id= + "NEWRELEASE-TARBALL">6.3.2. Source Tarball</a></h3> + + <p>First, <span class="emphasis EMPHASIS c2">make sure that you have + freshly exported the right version into an empty directory</span>. + (See "Building and releasing packages" above). Then run:</p> + + <table class="c3" border="0" width="100%"> <tr> <td> -<pre class="PROGRAMLISTING"> - mkdir dist # delete or choose different name if it already exists - cd dist - cvs -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa login - cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current + <pre class="PROGRAMLISTING"> + cd current + autoheader && autoconf && ./configure </pre> </td> </tr> </table> - <p> - <span class="emphasis"><i class="EMPHASIS">Do NOT change</i></span> - a single bit, including, but not limited to version information - after export from CVS. This is to make sure that all release - packages, and with them, all future bug reports, are based on - exactly the same code. - </p> - <div class="WARNING"> - <table class="WARNING" border="1" width="100%"> - <tr> - <td align="CENTER"> - <b>Warning</b> - </td> - </tr> - <tr> - <td align="LEFT"> - <p> - Every significant release of Privoxy has included at least - one package that either had incorrect versions of files, - missing files, or incidental leftovers from a previous - build process that gave unknown numbers of users headaches - to try to figure out what was wrong. PLEASE, make sure you - are using pristene sources, and are following the - prescribed process! - </p> - </td> - </tr> - </table> - </div> - <p> - Please find additional instructions for the source tarball and the - individual platform dependent binary packages below. And details on - the Sourceforge release process below that. - </p> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="PACK-GUIDELINES">6.3.1. Note on Privoxy Packaging</a> - </h3> - <p> - Please keep these general guidelines in mind when putting - together your package. These apply to <span class="emphasis"><i - class="EMPHASIS">all</i></span> platforms! - </p> - <p> - </p> - <ul> - <li> - <p> - <span class="APPLICATION">Privoxy</span> <span class= - "emphasis"><i class="EMPHASIS">requires</i></span> write - access to: all <tt class="FILENAME">*.action</tt> files, all - logfiles, and the <tt class="FILENAME">trust</tt> file. You - will need to determine the best way to do this for your - platform. - </p> - </li> - <li> - <p> - Please include up to date documentation. At a bare minimum: - </p> - <table border="0"> - <tbody> - <tr> - <td> - <tt class="FILENAME">LICENSE</tt> (top-level directory) - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <tt class="FILENAME">README</tt> (top-level directory) - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <tt class="FILENAME">AUTHORS</tt> (top-level directory) - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <tt class="FILENAME">man page</tt> (top-level - directory, Unix-like platforms only) - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <tt class="FILENAME">The User Manual</tt> - (doc/webserver/user-manual/) - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <tt class="FILENAME">FAQ</tt> (doc/webserver/faq/) - </td> - </tr> - </tbody> - </table> - <p> - Also suggested: <tt class="FILENAME">Developer Manual</tt> - (doc/webserver/developer-manual) and <tt class= - "FILENAME">ChangeLog</tt> (top-level directory). <tt class= - "FILENAME">FAQ</tt> and the manuals are HTML docs. There are - also text versions in <tt class="FILENAME">doc/text/</tt> - which could conceivably also be included. - </p> - <p> - The documentation has been designed such that the manuals are - linked to each other from parallel directories, and should be - packaged that way. <tt class= - "FILENAME">privoxy-index.html</tt> can also be included and - can serve as a focal point for docs and other links of - interest (and possibly renamed to <tt class= - "FILENAME">index.html</tt>). This should be one level up from - the manuals. There is a link also on this page to an HTMLized - version of the man page. To avoid 404 for this, it is in CVS - as <tt class= - "FILENAME">doc/webserver/man-page/privoxy-man-page.html</tt>, - and should be included along with the manuals. There is also - a css stylesheets that can be included for better - presentation: <tt class="FILENAME">p_doc.css</tt>. This - should be in the same directory with <tt class= - "FILENAME">privoxy-index.html</tt>, (i.e. one level up from - the manual directories). - </p> - </li> - <li> - <p> - <tt class="FILENAME">user.action</tt> and <tt class= - "FILENAME">user.filter</tt> are designed for local - preferences. Make sure these do not get overwritten! <tt - class="FILENAME">config</tt> should not be overwritten - either. This has especially important configuration data in - it. <tt class="FILENAME">trust</tt> should be left in tact as - well. - </p> - </li> - <li> - <p> - Other configuration files (<tt class= - "FILENAME">default.action</tt> and <tt class= - "FILENAME">default.filter</tt>) should be installed as the - new defaults, but all previously installed configuration - files should be preserved as backups. This is just good - manners :-) These files are likely to change between releases - and contain important new features and bug fixes. - </p> - </li> - <li> - <p> - Please check platform specific notes in this doc, if you - haven't done <span class="QUOTE">"Privoxy"</span> packaging - before for other platform specific issues. Conversely, please - add any notes that you know are important for your platform - (or contact one of the doc maintainers to do this if you - can't). - </p> - </li> - <li> - <p> - Packagers should do a <span class="QUOTE">"clean"</span> - install of their package after building it. So any previous - installs should be removed first to ensure the integrity of - the newly built package. Then run the package for a while to - make sure there are no obvious problems, before uploading. - </p> - </li> - </ul> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="NEWRELEASE-TARBALL">6.3.2. Source Tarball</a> - </h3> - <p> - First, <span class="emphasis"><i class="EMPHASIS">make sure that - you have freshly exported the right version into an empty - directory</i></span>. (See "Building and releasing packages" - above). Then run: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> - cd current - autoheader && autoconf && ./configure -</pre> - </td> - </tr> - </table> + <p>Then do:</p> - <p> - Then do: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> make tarball-dist </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - To upload the package to Sourceforge, simply issue - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>To upload the package to Sourceforge, simply issue</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> make tarball-upload </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Go to the displayed URL and release the file publicly on - Sourceforge. For the change log field, use the relevant section - of the <tt class="FILENAME">ChangeLog</tt> file. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="NEWRELEASE-RPM">6.3.3. SuSE, Conectiva or Red Hat - RPM</a> - </h3> - <p> - In following text, replace <tt class= - "REPLACEABLE"><i>dist</i></tt> with either <span class= - "QUOTE">"rh"</span> for Red Hat or <span class= - "QUOTE">"suse"</span> for SuSE. - </p> - <p> - First, <span class="emphasis"><i class="EMPHASIS">make sure that - you have freshly exported the right version into an empty - directory</i></span>. (See "Building and releasing packages" - above). - </p> - <p> - As the only exception to not changing anything after export from - CVS, now examine the file <tt class="FILENAME">privoxy-</tt><tt - class="REPLACEABLE"><i>dist</i></tt><tt class= - "FILENAME">.spec</tt> and make sure that the version information - and the RPM release number are correct. The RPM release numbers - for each version start at one. Hence it must be reset to one if - this is the first RPM for <tt class= - "REPLACEABLE"><i>dist</i></tt> which is built from version X.Y.Z. - Check the <a href= - "http://sourceforge.net/project/showfiles.php?group_id=11118" - target="_top">file list</a> if unsure. Else, it must be set to - the highest already available RPM release number for that version - plus one. - </p> - <p> - Then run: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>Go to the displayed URL and release the file publicly on + Sourceforge. For the change log field, use the relevant section of + the <tt class="FILENAME">ChangeLog</tt> file.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="NEWRELEASE-RPM" id="NEWRELEASE-RPM">6.3.3. + SuSE, Conectiva or Red Hat RPM</a></h3> + + <p>In following text, replace <tt class="REPLACEABLE c5">dist</tt> + with either <span class="QUOTE">"rh"</span> for Red Hat or + <span class="QUOTE">"suse"</span> for SuSE.</p> + + <p>First, <span class="emphasis EMPHASIS c2">make sure that you have + freshly exported the right version into an empty directory</span>. + (See "Building and releasing packages" above).</p> + + <p>As the only exception to not changing anything after export from + CVS, now examine the file <tt class= + "FILENAME">privoxy-</tt><tt class="REPLACEABLE c5">dist</tt><tt class="FILENAME">.spec</tt> + and make sure that the version information and the RPM release number + are correct. The RPM release numbers for each version start at one. + Hence it must be reset to one if this is the first RPM for <tt class= + "REPLACEABLE c5">dist</tt> which is built from version X.Y.Z. Check + the <a href= + "http://sourceforge.net/project/showfiles.php?group_id=11118" target= + "_top">file list</a> if unsure. Else, it must be set to the highest + already available RPM release number for that version plus one.</p> + + <p>Then run:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> cd current autoheader && autoconf && ./configure </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Then do - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> - make <tt class="REPLACEABLE"><i>dist</i></tt>-dist + <p>Then do</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> + make <tt class="REPLACEABLE c5">dist</tt>-dist </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - To upload the package to Sourceforge, simply issue - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> - make <tt class="REPLACEABLE"><i>dist</i></tt>-upload <tt class= -"REPLACEABLE"><i>rpm_packagerev</i></tt> + <p>To upload the package to Sourceforge, simply issue</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> + make <tt class="REPLACEABLE c5">dist</tt>-upload <tt class= +"REPLACEABLE c5">rpm_packagerev</tt> </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - where <tt class="REPLACEABLE"><i>rpm_packagerev</i></tt> is the - RPM release number as determined above. Go to the displayed URL - and release the file publicly on Sourceforge. Use the release - notes and change log from the source tarball package. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="NEWRELEASE-OS2">6.3.4. OS/2</a> - </h3> - <p> - First, <span class="emphasis"><i class="EMPHASIS">make sure that - you have freshly exported the right version into an empty - directory</i></span>. (See "Building and releasing packages" - above). Then get the OS/2 Setup module: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>where <tt class="REPLACEABLE c5">rpm_packagerev</tt> is the RPM + release number as determined above. Go to the displayed URL and + release the file publicly on Sourceforge. Use the release notes and + change log from the source tarball package.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="NEWRELEASE-OS2" id="NEWRELEASE-OS2">6.3.4. + OS/2</a></h3> + + <p>First, <span class="emphasis EMPHASIS c2">make sure that you have + freshly exported the right version into an empty directory</span>. + (See "Building and releasing packages" above). Then get the OS/2 + Setup module:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co os2setup </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - You will need a mix of development tools. The main compilation - takes place with IBM Visual Age C++. Some ancillary work takes - place with GNU tools, available from various sources like - hobbes.nmsu.edu. Specificially, you will need <tt class= - "FILENAME">autoheader</tt>, <tt class="FILENAME">autoconf</tt> - and <tt class="FILENAME">sh</tt> tools. The packaging takes place - with WarpIN, available from various sources, including its home - page: <a href="http://www.xworkplace.org/" target= - "_top">xworkplace</a>. - </p> - <p> - Change directory to the <tt class="FILENAME">os2setup</tt> - directory. Edit the os2build.cmd file to set the final executable - filename. For example, - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>You will need a mix of development tools. The main compilation + takes place with IBM Visual Age C++. Some ancillary work takes place + with GNU tools, available from various sources like hobbes.nmsu.edu. + Specificially, you will need <tt class="FILENAME">autoheader</tt>, + <tt class="FILENAME">autoconf</tt> and <tt class="FILENAME">sh</tt> + tools. The packaging takes place with WarpIN, available from various + sources, including its home page: <a href= + "http://www.xworkplace.org/" target="_top">xworkplace</a>.</p> + + <p>Change directory to the <tt class="FILENAME">os2setup</tt> + directory. Edit the os2build.cmd file to set the final executable + filename. For example,</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> installExeName='privoxyos2_setup_X.Y.Z.exe' </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Next, edit the <tt class="FILENAME">IJB.wis</tt> file so the - release number matches in the <tt class="FILENAME">PACKAGEID</tt> - section: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>Next, edit the <tt class="FILENAME">IJB.wis</tt> file so the + release number matches in the <tt class="FILENAME">PACKAGEID</tt> + section:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> PACKAGEID="Privoxy Team\Privoxy\Privoxy Package\X\Y\Z" </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - You're now ready to build. Run: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>You're now ready to build. Run:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> os2build </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - You will find the WarpIN-installable executable in the <tt class= - "FILENAME">./files</tt> directory. Upload this anonymously to <tt - class="FILENAME">uploads.sourceforge.net/incoming</tt>, create a - release for it, and you're done. Use the release notes and Change - Log from the source tarball package. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="NEWRELEASE-SOLARIS">6.3.5. Solaris</a> - </h3> - <p> - Login to Sourceforge's compilefarm via ssh: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>You will find the WarpIN-installable executable in the <tt class= + "FILENAME">./files</tt> directory. Upload this anonymously to + <tt class="FILENAME">uploads.sourceforge.net/incoming</tt>, create a + release for it, and you're done. Use the release notes and Change Log + from the source tarball package.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="NEWRELEASE-SOLARIS" id= + "NEWRELEASE-SOLARIS">6.3.5. Solaris</a></h3> + + <p>Login to Sourceforge's compilefarm via ssh:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> ssh cf.sourceforge.net </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Choose the right operating system (not the Debian one). When - logged in, <span class="emphasis"><i class="EMPHASIS">make sure - that you have freshly exported the right version into an empty - directory</i></span>. (See "Building and releasing packages" - above). Then run: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>Choose the right operating system (not the Debian one). When + logged in, <span class="emphasis EMPHASIS c2">make sure that you have + freshly exported the right version into an empty directory</span>. + (See "Building and releasing packages" above). Then run:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> cd current autoheader && autoconf && ./configure </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Then run - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>Then run</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> gmake solaris-dist </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - which creates a gzip'ed tar archive. Sadly, you cannot use <b - class="COMMAND">make solaris-upload</b> on the Sourceforge - machine (no ncftpput). You now have to manually upload the - archive to Sourceforge's ftp server and release the file - publicly. Use the release notes and Change Log from the source - tarball package. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="NEWRELEASE-WINDOWS">6.3.6. Windows</a> - </h3> - <p> - You should ensure you have the latest version of Cygwin (from <a - href="http://www.cygwin.com/" target= - "_top">http://www.cygwin.com/</a>). Run the following commands - from within a Cygwin bash shell. - </p> - <p> - First, <span class="emphasis"><i class="EMPHASIS">make sure that - you have freshly exported the right version into an empty - directory</i></span>. (See "Building and releasing packages" - above). Then get the Windows setup module: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>which creates a gzip'ed tar archive. Sadly, you cannot use + <b class="COMMAND">make solaris-upload</b> on the Sourceforge machine + (no ncftpput). You now have to manually upload the archive to + Sourceforge's ftp server and release the file publicly. Use the + release notes and Change Log from the source tarball package.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="NEWRELEASE-WINDOWS" id= + "NEWRELEASE-WINDOWS">6.3.6. Windows</a></h3> + + <p>You should ensure you have the latest version of Cygwin (from + <a href="http://www.cygwin.com/" target= + "_top">http://www.cygwin.com/</a>). Run the following commands from + within a Cygwin bash shell.</p> + + <p>First, <span class="emphasis EMPHASIS c2">make sure that you have + freshly exported the right version into an empty directory</span>. + (See "Building and releasing packages" above). Then get the Windows + setup module:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co winsetup </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Then you can build the package. This is fully automated, and is - controlled by <tt class="FILENAME">winsetup/GNUmakefile</tt>. All - you need to do is: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>Then you can build the package. This is fully automated, and is + controlled by <tt class="FILENAME">winsetup/GNUmakefile</tt>. All you + need to do is:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> cd winsetup make </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Now you can manually rename <tt class= - "FILENAME">privoxy_setup.exe</tt> to <tt class= - "FILENAME">privoxy_setup_X_Y_Z.exe</tt>, and upload it to - SourceForge. When releasing the package on SourceForge, use the - release notes and Change Log from the source tarball package. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="NEWRELEASE-DEBIAN">6.3.7. Debian</a> - </h3> - <p> - First, <span class="emphasis"><i class="EMPHASIS">make sure that - you have freshly exported the right version into an empty - directory</i></span>. (See "Building and releasing packages" - above). Then add a log entry to <tt class= - "FILENAME">debian/changelog</tt>, if it is not already there, for - example by running: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> - debchange -v 3.0.18-UNRELEASED-1 "New upstream version" + <p>Now you can manually rename <tt class= + "FILENAME">privoxy_setup.exe</tt> to <tt class= + "FILENAME">privoxy_setup_X_Y_Z.exe</tt>, and upload it to + SourceForge. When releasing the package on SourceForge, use the + release notes and Change Log from the source tarball package.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="NEWRELEASE-DEBIAN" id= + "NEWRELEASE-DEBIAN">6.3.7. Debian</a></h3> + + <p>First, <span class="emphasis EMPHASIS c2">make sure that you have + freshly exported the right version into an empty directory</span>. + (See "Building and releasing packages" above). Then add a log entry + to <tt class="FILENAME">debian/changelog</tt>, if it is not already + there, for example by running:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> + debchange -v 3.0.18-stable-1 "New upstream version" </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Then, run: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>Then, run:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> dpkg-buildpackage -rfakeroot -us -uc -b </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - This will create <tt class= - "FILENAME">../privoxy_3.0.18-UNRELEASED-1_i386.deb</tt> which can - be uploaded. To upload the package to Sourceforge, simply issue - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>This will create <tt class= + "FILENAME">../privoxy_3.0.18-stable-1_i386.deb</tt> which can be + uploaded. To upload the package to Sourceforge, simply issue</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> make debian-upload </pre> - </td> - </tr> - </table> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="NEWRELEASE-MACOSX">6.3.8. Mac OS X</a> - </h3> - <p> - First, <span class="emphasis"><i class="EMPHASIS">make sure that - you have freshly exported the right version into an empty - directory</i></span>. (See "Building and releasing packages" - above). Then get the Mac OS X setup module: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="NEWRELEASE-MACOSX" id= + "NEWRELEASE-MACOSX">6.3.8. Mac OS X</a></h3> + + <p>First, <span class="emphasis EMPHASIS c2">make sure that you have + freshly exported the right version into an empty directory</span>. + (See "Building and releasing packages" above). Then get the Mac OS X + setup module:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co osxsetup </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Then run: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>Then run:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> cd osxsetup build </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - This will run <tt class="FILENAME">autoheader</tt>, <tt class= - "FILENAME">autoconf</tt> and <tt class="FILENAME">configure</tt> - as well as <tt class="FILENAME">make</tt>. Finally, it will copy - over the necessary files to the ./osxsetup/files directory for - further processing by <tt class="FILENAME">PackageMaker</tt>. - </p> - <p> - Bring up PackageMaker with the PrivoxyPackage.pmsp definition - file, modify the package name to match the release, and hit the - "Create package" button. If you specify ./Privoxy.pkg as the - output package name, you can then create the distributable zip - file with the command: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>This will run <tt class="FILENAME">autoheader</tt>, <tt class= + "FILENAME">autoconf</tt> and <tt class="FILENAME">configure</tt> as + well as <tt class="FILENAME">make</tt>. Finally, it will copy over + the necessary files to the ./osxsetup/files directory for further + processing by <tt class="FILENAME">PackageMaker</tt>.</p> + + <p>Bring up PackageMaker with the PrivoxyPackage.pmsp definition + file, modify the package name to match the release, and hit the + "Create package" button. If you specify ./Privoxy.pkg as the output + package name, you can then create the distributable zip file with the + command:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> zip -r privoxyosx_setup_x.y.z.zip Privoxy.pkg </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - You can then upload <tt class= - "FILENAME">privoxyosx_setup_x.y.z.zip</tt> anonymously to <tt - class="FILENAME">uploads.sourceforge.net/incoming</tt>, create a - release for it, and you're done. Use the release notes and Change - Log from the source tarball package. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="NEWRELEASE-FREEBSD">6.3.9. FreeBSD</a> - </h3> - <p> - Login to Sourceforge's compile-farm via ssh: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>You can then upload <tt class= + "FILENAME">privoxyosx_setup_x.y.z.zip</tt> anonymously to <tt class= + "FILENAME">uploads.sourceforge.net/incoming</tt>, create a release + for it, and you're done. Use the release notes and Change Log from + the source tarball package.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="NEWRELEASE-FREEBSD" id= + "NEWRELEASE-FREEBSD">6.3.9. FreeBSD</a></h3> + + <p>Login to Sourceforge's compile-farm via ssh:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> ssh cf.sourceforge.net </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Choose the right operating system. When logged in, <span class= - "emphasis"><i class="EMPHASIS">make sure that you have freshly - exported the right version into an empty directory</i></span>. - (See "Building and releasing packages" above). Then run: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>Choose the right operating system. When logged in, <span class= + "emphasis EMPHASIS c2">make sure that you have freshly exported the + right version into an empty directory</span>. (See "Building and + releasing packages" above). Then run:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> cd current autoheader && autoconf && ./configure </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Then run: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>Then run:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> gmake freebsd-dist </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - which creates a gzip'ed tar archive. Sadly, you cannot use <b - class="COMMAND">make freebsd-upload</b> on the Sourceforge - machine (no ncftpput). You now have to manually upload the - archive to Sourceforge's ftp server and release the file - publicly. Use the release notes and Change Log from the source - tarball package. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="NEWRELEASE-HPUX">6.3.10. HP-UX 11</a> - </h3> - <p> - First, <span class="emphasis"><i class="EMPHASIS">make sure that - you have freshly exported the right version into an empty - directory</i></span>. (See "Building and releasing packages" - above). Then run: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>which creates a gzip'ed tar archive. Sadly, you cannot use + <b class="COMMAND">make freebsd-upload</b> on the Sourceforge machine + (no ncftpput). You now have to manually upload the archive to + Sourceforge's ftp server and release the file publicly. Use the + release notes and Change Log from the source tarball package.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="NEWRELEASE-HPUX" id= + "NEWRELEASE-HPUX">6.3.10. HP-UX 11</a></h3> + + <p>First, <span class="emphasis EMPHASIS c2">make sure that you have + freshly exported the right version into an empty directory</span>. + (See "Building and releasing packages" above). Then run:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> cd current autoheader && autoconf && ./configure </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Then do FIXME. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="NEWRELEASE-AMIGA">6.3.11. Amiga OS</a> - </h3> - <p> - First, <span class="emphasis"><i class="EMPHASIS">make sure that - you have freshly exported the right version into an empty - directory</i></span>. (See "Building and releasing packages" - above). Then run: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>Then do FIXME.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="NEWRELEASE-AMIGA" id= + "NEWRELEASE-AMIGA">6.3.11. Amiga OS</a></h3> + + <p>First, <span class="emphasis EMPHASIS c2">make sure that you have + freshly exported the right version into an empty directory</span>. + (See "Building and releasing packages" above). Then run:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> cd current autoheader && autoconf && ./configure </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Then do FIXME. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="NEWRELEASE-AIX">6.3.12. AIX</a> - </h3> - <p> - Login to Sourceforge's compilefarm via ssh: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>Then do FIXME.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="NEWRELEASE-AIX" id= + "NEWRELEASE-AIX">6.3.12. AIX</a></h3> + + <p>Login to Sourceforge's compilefarm via ssh:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> ssh cf.sourceforge.net </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Choose the right operating system. When logged in, <span class= - "emphasis"><i class="EMPHASIS">make sure that you have freshly - exported the right version into an empty directory</i></span>. - (See "Building and releasing packages" above). Then run: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>Choose the right operating system. When logged in, <span class= + "emphasis EMPHASIS c2">make sure that you have freshly exported the + right version into an empty directory</span>. (See "Building and + releasing packages" above). Then run:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> cd current autoheader && autoconf && ./configure </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Then run: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>Then run:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> make aix-dist </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - which creates a gzip'ed tar archive. Sadly, you cannot use <b - class="COMMAND">make aix-upload</b> on the Sourceforge machine - (no ncftpput). You now have to manually upload the archive to - Sourceforge's ftp server and release the file publicly. Use the - release notes and Change Log from the source tarball package. - </p> - </div> + <p>which creates a gzip'ed tar archive. Sadly, you cannot use + <b class="COMMAND">make aix-upload</b> on the Sourceforge machine (no + ncftpput). You now have to manually upload the archive to + Sourceforge's ftp server and release the file publicly. Use the + release notes and Change Log from the source tarball package.</p> </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="RELEASING">6.4. Uploading and Releasing Your Package</a> - </h2> - <p> - After the package is ready, it is time to upload it to SourceForge, - and go through the release steps. The upload is done via FTP: - </p> - <p> - </p> - <ul> - <li> - <p> - Upload to: <a href="ftp://upload.sourceforge.net/incoming" - target="_top">ftp://upload.sourceforge.net/incoming</a> - </p> - </li> - <li> - <p> - user: <tt class="LITERAL">anonymous</tt> - </p> - </li> - <li> - <p> - password: <tt class= - "LITERAL">ijbswa-developers@lists.sourceforge.net</tt> - </p> - </li> - </ul> + </div> - <p> - Or use the <b class="COMMAND">make</b> targets as described above. - </p> - <p> - Once this done go to <a href= - "https://sourceforge.net/project/admin/editpackages.php?group_id=11118" - target= - "_top">https://sourceforge.net/project/admin/editpackages.php?group_id=11118</a>, - making sure you are logged in. Find your target platform in the - second column, and click <tt class="LITERAL">Add Release</tt>. You - will then need to create a new release for your package, using the - format of <tt class="LITERAL">$VERSION ($CODE_STATUS)</tt>, e.g. - <span class="emphasis"><i class="EMPHASIS">3.0.18 - (beta)</i></span>. - </p> - <p> - Now just follow the prompts. Be sure to add any appropriate Release - notes. You should see your freshly uploaded packages in <span - class="QUOTE">"Step 2. Add Files To This Release"</span>. Check the - appropriate box(es). Remember at each step to hit the <span class= - "QUOTE">"Refresh/Submit"</span> buttons! You should now see your - file(s) listed in Step 3. Fill out the forms with the appropriate - information for your platform, being sure to hit <span class= - "QUOTE">"Update"</span> for each file. If anyone is monitoring your - platform, check the <span class="QUOTE">"email"</span> box at the - very bottom to notify them of the new package. This should do it! - </p> - <p> - If you have made errors, or need to make changes, you can go - through essentially the same steps, but select <tt class= - "LITERAL">Edit Release</tt>, instead of <tt class="LITERAL">Add - Release</tt>. - </p> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="AFTERRELEASE">6.5. After the Release</a> - </h2> - <p> - When all (or: most of the) packages have been uploaded and made - available, send an email to the <a href= - "mailto:ijbswa-announce@lists.sourceforge.net" target= - "_top">announce mailing list</a>, Subject: "Version X.Y.Z available - for download". Be sure to include the <a href= - "http://sourceforge.net/project/showfiles.php?group_id=11118" - target="_top">download location</a>, the release notes and the - Changelog. Also, post an updated News item on the project page - Sourceforge, and update the Home page and docs linked from the Home - page (see below). Other news sites and release oriented sites, such - as Freshmeat, should also be notified. - </p> - </div> + <div class="SECT2"> + <h2 class="SECT2"><a name="RELEASING" id="RELEASING">6.4. Uploading and + Releasing Your Package</a></h2> + + <p>After the package is ready, it is time to upload it to SourceForge, + and go through the release steps. The upload is done via FTP:</p> + + <ul> + <li> + <p>Upload to: <a href="ftp://upload.sourceforge.net/incoming" + target="_top">ftp://upload.sourceforge.net/incoming</a></p> + </li> + + <li> + <p>user: <tt class="LITERAL">anonymous</tt></p> + </li> + + <li> + <p>password: <tt class= + "LITERAL">ijbswa-developers@lists.sourceforge.net</tt></p> + </li> + </ul> + + <p>Or use the <b class="COMMAND">make</b> targets as described + above.</p> + + <p>Once this done go to <a href= + "https://sourceforge.net/project/admin/editpackages.php?group_id=11118" + target= + "_top">https://sourceforge.net/project/admin/editpackages.php?group_id=11118</a>, + making sure you are logged in. Find your target platform in the second + column, and click <tt class="LITERAL">Add Release</tt>. You will then + need to create a new release for your package, using the format of + <tt class="LITERAL">$VERSION ($CODE_STATUS)</tt>, e.g. <span class= + "emphasis EMPHASIS c2">3.0.18 (beta)</span>.</p> + + <p>Now just follow the prompts. Be sure to add any appropriate Release + notes. You should see your freshly uploaded packages in <span class= + "QUOTE">"Step 2. Add Files To This Release"</span>. Check the + appropriate box(es). Remember at each step to hit the <span class= + "QUOTE">"Refresh/Submit"</span> buttons! You should now see your + file(s) listed in Step 3. Fill out the forms with the appropriate + information for your platform, being sure to hit <span class= + "QUOTE">"Update"</span> for each file. If anyone is monitoring your + platform, check the <span class="QUOTE">"email"</span> box at the very + bottom to notify them of the new package. This should do it!</p> + + <p>If you have made errors, or need to make changes, you can go through + essentially the same steps, but select <tt class="LITERAL">Edit + Release</tt>, instead of <tt class="LITERAL">Add Release</tt>.</p> </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="testing.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="webserver-update.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - Testing Guidelines - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Update the Webserver - </td> - </tr> - </table> + + <div class="SECT2"> + <h2 class="SECT2"><a name="AFTERRELEASE" id="AFTERRELEASE">6.5. After + the Release</a></h2> + + <p>When all (or: most of the) packages have been uploaded and made + available, send an email to the <a href= + "mailto:ijbswa-announce@lists.sourceforge.net" target="_top">announce + mailing list</a>, Subject: "Version X.Y.Z available for download". Be + sure to include the <a href= + "http://sourceforge.net/project/showfiles.php?group_id=11118" target= + "_top">download location</a>, the release notes and the Changelog. + Also, post an updated News item on the project page Sourceforge, and + update the Home page and docs linked from the Home page (see below). + Other news sites and release oriented sites, such as Freshmeat, should + also be notified.</p> </div> - </body> -</html> + </div> + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="testing.html" + accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + + <td width="33%" align="right" valign="top"><a href= + "webserver-update.html" accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Testing Guidelines</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Update the Webserver</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/developer-manual/seealso.html b/doc/webserver/developer-manual/seealso.html index 3aba19ea..ee706f56 100644 --- a/doc/webserver/developer-manual/seealso.html +++ b/doc/webserver/developer-manual/seealso.html @@ -1,224 +1,204 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - See also - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy Developer Manual" href="index.html"> - <link rel="PREVIOUS" title="Privoxy Copyright, License and History" href= - "copyright.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>See also</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy Developer Manual" href="index.html"> + <link rel="PREVIOUS" title="Privoxy Copyright, License and History" href= + "copyright.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy Developer Manual</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href="copyright.html" + accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"> </td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="SEEALSO" id="SEEALSO">10. See also</a></h1> + + <p>Other references and sites of interest to <span class= + "APPLICATION">Privoxy</span> users:</p> + + <table border="0"> + <tbody> <tr> - <th colspan="3" align="center"> - Privoxy Developer Manual - </th> + <td><a href="http://www.privoxy.org/" target= + "_top">http://www.privoxy.org/</a>, the <span class= + "APPLICATION">Privoxy</span> Home page.</td> </tr> + </tbody> + </table> + + <table border="0"> + <tbody> <tr> - <td width="10%" align="left" valign="bottom"> - <a href="copyright.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - - </td> + <td><a href="http://www.privoxy.org/faq/" target= + "_top">http://www.privoxy.org/faq/</a>, the <span class= + "APPLICATION">Privoxy</span> FAQ.</td> </tr> - </table> - <hr width="100%" class="c1"> - </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="SEEALSO">10. See also</a> - </h1> - <p> - Other references and sites of interest to <span class= - "APPLICATION">Privoxy</span> users: - </p> - <p> - </p> - <table border="0"> - <tbody> - <tr> - <td> - <a href="http://www.privoxy.org/" target= - "_top">http://www.privoxy.org/</a>, the <span class= - "APPLICATION">Privoxy</span> Home page. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="http://www.privoxy.org/faq/" target= - "_top">http://www.privoxy.org/faq/</a>, the <span class= - "APPLICATION">Privoxy</span> FAQ. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="http://www.privoxy.org/developer-manual/" target= - "_top">http://www.privoxy.org/developer-manual/</a>, the <span - class="APPLICATION">Privoxy</span> developer manual. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="https://sourceforge.net/projects/ijbswa/" target= - "_top">https://sourceforge.net/projects/ijbswa/</a>, the - Project Page for <span class="APPLICATION">Privoxy</span> on <a - href="http://sourceforge.net" target="_top">SourceForge</a>. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="http://config.privoxy.org/" target= - "_top">http://config.privoxy.org/</a>, the web-based user - interface. <span class="APPLICATION">Privoxy</span> must be - running for this to work. Shortcut: <a href="http://p.p/" - target="_top">http://p.p/</a> - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href= - "https://sourceforge.net/tracker/?group_id=11118&atid=460288" - target= - "_top">https://sourceforge.net/tracker/?group_id=11118&atid=460288</a>, - to submit <span class="QUOTE">"misses"</span> and other - configuration related suggestions to the developers. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="http://www.junkbusters.com/ht/en/cookies.html" target= - "_top">http://www.junkbusters.com/ht/en/cookies.html</a>, an - explanation how cookies are used to track web users. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="http://www.junkbusters.com/ijb.html" target= - "_top">http://www.junkbusters.com/ijb.html</a>, the original - Internet Junkbuster. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="http://www.squid-cache.org/" target= - "_top">http://www.squid-cache.org/</a>, a popular caching - proxy, which is often used together with <span class= - "APPLICATION">Privoxy</span>. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="http://www.pps.jussieu.fr/~jch/software/polipo/" - target= - "_top">http://www.pps.jussieu.fr/~jch/software/polipo/</a>, - <span class="APPLICATION">Polipo</span> is a caching proxy with - advanced features like pipelining, multiplexing and caching of - partial instances. In many setups it can be used as <span - class="APPLICATION">Squid</span> replacement. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="https://www.torproject.org/" target= - "_top">https://www.torproject.org/</a>, <span class= - "APPLICATION">Tor</span> can help anonymize web browsing, web - publishing, instant messaging, IRC, SSH, and other - applications. - </td> - </tr> - </tbody> - </table> - </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> + </tbody> + </table> + + <table border="0"> + <tbody> <tr> - <td width="33%" align="left" valign="top"> - <a href="copyright.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - - </td> + <td><a href="http://www.privoxy.org/developer-manual/" target= + "_top">http://www.privoxy.org/developer-manual/</a>, the + <span class="APPLICATION">Privoxy</span> developer manual.</td> </tr> + </tbody> + </table> + + <table border="0"> + <tbody> <tr> - <td width="33%" align="left" valign="top"> - Privoxy Copyright, License and History - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - - </td> + <td><a href="https://sourceforge.net/projects/ijbswa/" target= + "_top">https://sourceforge.net/projects/ijbswa/</a>, the Project + Page for <span class="APPLICATION">Privoxy</span> on <a href= + "http://sourceforge.net" target="_top">SourceForge</a>.</td> </tr> - </table> - </div> - </body> -</html> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><a href="http://config.privoxy.org/" target= + "_top">http://config.privoxy.org/</a>, the web-based user + interface. <span class="APPLICATION">Privoxy</span> must be running + for this to work. Shortcut: <a href="http://p.p/" target= + "_top">http://p.p/</a></td> + </tr> + </tbody> + </table> + <table border="0"> + <tbody> + <tr> + <td><a href= + "https://sourceforge.net/tracker/?group_id=11118&atid=460288" + target= + "_top">https://sourceforge.net/tracker/?group_id=11118&atid=460288</a>, + to submit <span class="QUOTE">"misses"</span> and other + configuration related suggestions to the developers.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><a href="http://www.junkbusters.com/ht/en/cookies.html" target= + "_top">http://www.junkbusters.com/ht/en/cookies.html</a>, an + explanation how cookies are used to track web users.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><a href="http://www.junkbusters.com/ijb.html" target= + "_top">http://www.junkbusters.com/ijb.html</a>, the original + Internet Junkbuster.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><a href="http://www.squid-cache.org/" target= + "_top">http://www.squid-cache.org/</a>, a popular caching proxy, + which is often used together with <span class= + "APPLICATION">Privoxy</span>.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><a href="http://www.pps.jussieu.fr/~jch/software/polipo/" + target="_top">http://www.pps.jussieu.fr/~jch/software/polipo/</a>, + <span class="APPLICATION">Polipo</span> is a caching proxy with + advanced features like pipelining, multiplexing and caching of + partial instances. In many setups it can be used as <span class= + "APPLICATION">Squid</span> replacement.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><a href="https://www.torproject.org/" target= + "_top">https://www.torproject.org/</a>, <span class= + "APPLICATION">Tor</span> can help anonymize web browsing, web + publishing, instant messaging, IRC, SSH, and other + applications.</td> + </tr> + </tbody> + </table> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="copyright.html" + accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + + <td width="33%" align="right" valign="top"> </td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Privoxy Copyright, License + and History</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top"> </td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/developer-manual/testing.html b/doc/webserver/developer-manual/testing.html index bb607456..9f8abf6c 100644 --- a/doc/webserver/developer-manual/testing.html +++ b/doc/webserver/developer-manual/testing.html @@ -1,189 +1,169 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Testing Guidelines - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy Developer Manual" href="index.html"> - <link rel="PREVIOUS" title="Coding Guidelines" href="coding.html"> - <link rel="NEXT" title="Releasing a New Version" href="newrelease.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Testing Guidelines</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy Developer Manual" href="index.html"> + <link rel="PREVIOUS" title="Coding Guidelines" href="coding.html"> + <link rel="NEXT" title="Releasing a New Version" href="newrelease.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy Developer Manual - </th> - </tr> - <tr> - <td width="10%" align="left" valign="bottom"> - <a href="coding.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="newrelease.html" accesskey="N">Next</a> - </td> - </tr> - </table> - <hr width="100%" class="c1"> - </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="TESTING">5. Testing Guidelines</a> - </h1> - <p> - To be filled. - </p> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="TESTING-PLAN">5.1. Testplan for releases</a> - </h2> - <p> - Explain release numbers. major, minor. developer releases. etc. - </p> - <ol type="1"> - <li> - <p> - Remove any existing rpm with rpm -e - </p> - </li> - <li> - <p> - Remove any file that was left over. This includes (but is not - limited to) - </p> - <ul> - <li> - <p> - /var/log/privoxy - </p> - </li> - <li> - <p> - /etc/privoxy - </p> - </li> - <li> - <p> - /usr/sbin/privoxy - </p> - </li> - <li> - <p> - /etc/init.d/privoxy - </p> - </li> - <li> - <p> - /usr/doc/privoxy* - </p> - </li> - </ul> - </li> - <li> - <p> - Install the rpm. Any error messages? - </p> - </li> - <li> - <p> - start,stop,status <span class="APPLICATION">Privoxy</span> with - the specific script (e.g. /etc/rc.d/init/privoxy stop). Reboot - your machine. Does autostart work? - </p> - </li> - <li> - <p> - Start browsing. Does <span class="APPLICATION">Privoxy</span> - work? Logfile written? - </p> - </li> - <li> - <p> - Remove the rpm. Any error messages? All files removed? - </p> - </li> - </ol> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="TESTING-REPORT">5.2. Test reports</a> - </h2> - <p> - Please submit test reports only with the <a href= - "http://sourceforge.net/tracker/?func=add&group_id=11118&atid=395005" - target="_top">test form</a> at sourceforge. Three simple steps: - </p> - <ul> - <li> - <p> - Select category: the distribution you test on. - </p> - </li> - <li> - <p> - Select group: the version of <span class= - "APPLICATION">Privoxy</span> that we are about to release. - </p> - </li> - <li> - <p> - Fill the Summary and Detailed Description with something - intelligent (keep it short and precise). - </p> - </li> - </ul> - Do not mail to the mailing list (we cannot keep track on issues - there).<br> - </div> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy Developer Manual</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href="coding.html" + accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href= + "newrelease.html" accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="TESTING" id="TESTING">5. Testing + Guidelines</a></h1> + + <p>To be filled.</p> + + <div class="SECT2"> + <h2 class="SECT2"><a name="TESTING-PLAN" id="TESTING-PLAN">5.1. + Testplan for releases</a></h2> + + <p>Explain release numbers. major, minor. developer releases. etc.</p> + + <ol type="1"> + <li> + <p>Remove any existing rpm with rpm -e</p> + </li> + + <li> + <p>Remove any file that was left over. This includes (but is not + limited to)</p> + + <ul> + <li> + <p>/var/log/privoxy</p> + </li> + + <li> + <p>/etc/privoxy</p> + </li> + + <li> + <p>/usr/sbin/privoxy</p> + </li> + + <li> + <p>/etc/init.d/privoxy</p> + </li> + + <li> + <p>/usr/doc/privoxy*</p> + </li> + </ul> + </li> + + <li> + <p>Install the rpm. Any error messages?</p> + </li> + + <li> + <p>start,stop,status <span class="APPLICATION">Privoxy</span> with + the specific script (e.g. /etc/rc.d/init/privoxy stop). Reboot your + machine. Does autostart work?</p> + </li> + + <li> + <p>Start browsing. Does <span class="APPLICATION">Privoxy</span> + work? Logfile written?</p> + </li> + + <li> + <p>Remove the rpm. Any error messages? All files removed?</p> + </li> + </ol> </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="coding.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="newrelease.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - Coding Guidelines - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Releasing a New Version - </td> - </tr> - </table> + + <div class="SECT2"> + <h2 class="SECT2"><a name="TESTING-REPORT" id="TESTING-REPORT">5.2. + Test reports</a></h2> + + <p>Please submit test reports only with the <a href= + "http://sourceforge.net/tracker/?func=add&group_id=11118&atid=395005" + target="_top">test form</a> at sourceforge. Three simple steps:</p> + + <ul> + <li> + <p>Select category: the distribution you test on.</p> + </li> + + <li> + <p>Select group: the version of <span class= + "APPLICATION">Privoxy</span> that we are about to release.</p> + </li> + + <li> + <p>Fill the Summary and Detailed Description with something + intelligent (keep it short and precise).</p> + </li> + </ul>Do not mail to the mailing list (we cannot keep track on issues + there). </div> - </body> -</html> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="coding.html" + accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + <td width="33%" align="right" valign="top"><a href="newrelease.html" + accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Coding Guidelines</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Releasing a New + Version</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/developer-manual/webserver-update.html b/doc/webserver/developer-manual/webserver-update.html index 50985b83..76b66908 100644 --- a/doc/webserver/developer-manual/webserver-update.html +++ b/doc/webserver/developer-manual/webserver-update.html @@ -1,158 +1,147 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Update the Webserver - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy Developer Manual" href="index.html"> - <link rel="PREVIOUS" title="Releasing a New Version" href= - "newrelease.html"> - <link rel="NEXT" title= - "Contacting the developers, Bug Reporting and Feature Requests" href= - "contact.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Update the Webserver</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy Developer Manual" href="index.html"> + <link rel="PREVIOUS" title="Releasing a New Version" href= + "newrelease.html"> + <link rel="NEXT" title= + "Contacting the developers, Bug Reporting and Feature Requests" href= + "contact.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy Developer Manual - </th> - </tr> - <tr> - <td width="10%" align="left" valign="bottom"> - <a href="newrelease.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="contact.html" accesskey="N">Next</a> - </td> - </tr> - </table> - <hr width="100%" class="c1"> - </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="WEBSERVER-UPDATE">7. Update the Webserver</a> - </h1> - <p> - The webserver should be updated at least with each stable release. - When updating, please follow these steps to make sure that no broken - links, inconsistent contents or permission problems will occur (as it - has many times in the past!): - </p> - <p> - If you have changed anything in the stable-branch documentation - source SGML files, do: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + span.c3 {font-style: italic} + table.c2 {background-color: #E0E0E0} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy Developer Manual</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href= + "newrelease.html" accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href="contact.html" + accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="WEBSERVER-UPDATE" id="WEBSERVER-UPDATE">7. + Update the Webserver</a></h1> + + <p>The webserver should be updated at least with each stable release. + When updating, please follow these steps to make sure that no broken + links, inconsistent contents or permission problems will occur (as it has + many times in the past!):</p> + + <p>If you have changed anything in the stable-branch documentation source + SGML files, do:</p> + + <table class="c2" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> make dok dok-pdf # (or 'make redhat-dok dok-pdf' if 'make dok' doesn't work for you) </pre> - </td> - </tr> - </table> - - <p> - That will generate <tt class= - "FILENAME">doc/webserver/user-manual</tt>, <tt class= - "FILENAME">doc/webserver/developer-manual</tt>, <tt class= - "FILENAME">doc/webserver/faq</tt>, <tt class= - "FILENAME">doc/pdf/*.pdf</tt> and <tt class= - "FILENAME">doc/webserver/index.html</tt> automatically. - </p> - <p> - If you changed the manual page sources, generate <tt class= - "FILENAME">doc/webserver/man-page/privoxy-man-page.html</tt> by - running <span class="QUOTE">"<b class="COMMAND">make man</b>"</span>. - (This is a separate target due to dependencies on some obscure perl - scripts [now in CVS, but not well tested]. See comments in <tt class= - "FILENAME">GNUmakefile</tt>.) - </p> - <p> - If you want to add new files to the webserver, create them locally in - the <tt class="FILENAME">doc/webserver/*</tt> directory (or create - new directories under <tt class="FILENAME">doc/webserver</tt>). - </p> - <p> - Next, commit any changes from the above steps to CVS. All set? If - these are docs in the stable branch, then do: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </td> + </tr> + </table> + + <p>That will generate <tt class= + "FILENAME">doc/webserver/user-manual</tt>, <tt class= + "FILENAME">doc/webserver/developer-manual</tt>, <tt class= + "FILENAME">doc/webserver/faq</tt>, <tt class= + "FILENAME">doc/pdf/*.pdf</tt> and <tt class= + "FILENAME">doc/webserver/index.html</tt> automatically.</p> + + <p>If you changed the manual page sources, generate <tt class= + "FILENAME">doc/webserver/man-page/privoxy-man-page.html</tt> by running + <span class="QUOTE">"<b class="COMMAND">make man</b>"</span>. (This is a + separate target due to dependencies on some obscure perl scripts [now in + CVS, but not well tested]. See comments in <tt class= + "FILENAME">GNUmakefile</tt>.)</p> + + <p>If you want to add new files to the webserver, create them locally in + the <tt class="FILENAME">doc/webserver/*</tt> directory (or create new + directories under <tt class="FILENAME">doc/webserver</tt>).</p> + + <p>Next, commit any changes from the above steps to CVS. All set? If + these are docs in the stable branch, then do:</p> + + <table class="c2" border="0" width="100%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> make webserver </pre> - </td> - </tr> - </table> - - <p> - This will do the upload to <a href="http://www.privoxy.org/" target= - "_top">the webserver</a> (www.privoxy.org) and ensure all files and - directories there are group writable. - </p> - <p> - Please do <span class="emphasis"><i class="EMPHASIS">NOT</i></span> - use any other means of transferring files to the webserver to avoid - permission problems. Also, please do not upload docs from development - branches or versions. The publicly posted docs should be in sync with - the last official release. - </p> - </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="newrelease.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="contact.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - Releasing a New Version - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Contacting the developers, Bug Reporting and Feature Requests - </td> - </tr> - </table> - </div> - </body> -</html> + </td> + </tr> + </table> + + <p>This will do the upload to <a href="http://www.privoxy.org/" target= + "_top">the webserver</a> (www.privoxy.org) and ensure all files and + directories there are group writable.</p> + + <p>Please do <span class="emphasis EMPHASIS c3">NOT</span> use any other + means of transferring files to the webserver to avoid permission + problems. Also, please do not upload docs from development branches or + versions. The publicly posted docs should be in sync with the last + official release.</p> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="newrelease.html" + accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + + <td width="33%" align="right" valign="top"><a href="contact.html" + accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Releasing a New + Version</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Contacting the developers, + Bug Reporting and Feature Requests</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/faq/configuration.html b/doc/webserver/faq/configuration.html index 2c19d28e..892e46b1 100644 --- a/doc/webserver/faq/configuration.html +++ b/doc/webserver/faq/configuration.html @@ -1,215 +1,198 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Configuration - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy Frequently Asked Questions" href= - "index.html"> - <link rel="PREVIOUS" title="Installation" href="installation.html"> - <link rel="NEXT" title="Miscellaneous" href="misc.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Configuration</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy Frequently Asked Questions" href= + "index.html"> + <link rel="PREVIOUS" title="Installation" href="installation.html"> + <link rel="NEXT" title="Miscellaneous" href="misc.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy Frequently Asked Questions - </th> - </tr> - <tr> - <td width="10%" align="left" valign="bottom"> - <a href="installation.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="misc.html" accesskey="N">Next</a> - </td> - </tr> - </table> - <hr width="100%" class="c1"> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + a.c4 {font-style: italic} + span.c3 {font-style: italic} + table.c2 {background-color: #E0E0E0} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy Frequently Asked + Questions</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href= + "installation.html" accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href="misc.html" + accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="CONFIGURATION" id="CONFIGURATION">3. + Configuration</a></h1> + + <div class="SECT2"> + <h3 class="SECT2"><a name="AEN369" id="AEN369">3.1. What exactly is an + <span class="QUOTE">"actions"</span> file?</a></h3> + + <p><span class="APPLICATION">Privoxy</span> utilizes the concept of + <span class="QUOTE">" <a href= + "../user-manual/actions-file.html#ACTIONS" target= + "_top">actions</a>"</span> that are used to manipulate and control web + page data. <a href="../user-manual/actions-file.html" target= + "_top">Actions files</a> are where these <a href= + "../user-manual/actions-file.html#ACTIONS" target="_top">actions</a> + that <span class="APPLICATION">Privoxy</span> could take while + processing a certain request, are configured. Typically, you would + define a set of default actions that apply globally to all URLs, then + add exceptions to these defaults where needed. There is a wide array of + actions available that give the user a high degree of control and + flexibility on how to process each and every web page.</p> + + <p>Actions can be defined on a <a href= + "../user-manual/actions-file.html#AF-PATTERNS" target="_top">URL + pattern</a> basis, i.e. for single URLs, whole web sites, groups or + parts thereof etc. Actions can also be grouped together and then + applied to requests matching one or more patterns. There are many + possible actions that might apply to any given site. As an example, if + you are blocking <a href="http://en.wikipedia.org/wiki/Browser_cookie" + target="_top">cookies</a> as one of your default actions, but need to + accept cookies from a given site, you would need to define an exception + for this site in one of your actions files, preferably in <tt class= + "FILENAME">user.action</tt>.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="ACTIONSS" id="ACTIONSS">3.2. The + <span class="QUOTE">"actions"</span> concept confuses me. Please list + some of these <span class="QUOTE">"actions"</span>.</a></h3> + + <p>For a comprehensive discussion of the actions concept, please refer + to the <a href="../user-manual/actions-file.html" target="_top">actions + file chapter</a> in the <a href="../user-manual/index.html" target= + "_top">User Manual</a>. It includes a <a href= + "../user-manual/actions-file.html#ACTIONS" target="_top">list of all + actions</a> and an <a href= + "../user-manual/actions-file.html#ACT-EXAMPLES" target="_top">actions + file tutorial</a> to get you started.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="AEN392" id="AEN392">3.3. How are actions + files configured? What is the easiest way to do this?</a></h3> + + <p>Actions files are just text files in a special syntax and can be + edited with a text editor. But probably the easiest way is to access + <span class="APPLICATION">Privoxy</span>'s user interface with your web + browser at <a href="http://config.privoxy.org/" target= + "_top">http://config.privoxy.org/</a> (Shortcut: <a href="http://p.p/" + target="_top">http://p.p/</a>) and then select <span class= + "QUOTE">"<a href="http://config.privoxy.org/show-status" target= + "_top">View & change the current configuration</a>"</span> from the + menu. Note that this feature must be explicitly enabled in the main + config file (see <a href= + "../user-manual/config.html#ENABLE-EDIT-ACTIONS" target= + "_top">enable-edit-actions</a>).</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="AEN401" id="AEN401">3.4. There are several + different <span class="QUOTE">"actions"</span> files. What are the + differences?</a></h3> + + <p>Please have a look at the <a href="../user-manual/actions-file.html" + target="_top">the actions chapter</a> in the <a href= + "../user-manual/index.html" target="_top">User Manual</a> for a + detailed explanation.</p> </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="CONFIGURATION">3. Configuration</a> - </h1> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="AEN360">3.1. What exactly is an <span class= - "QUOTE">"actions"</span> file?</a> - </h3> - <p> - <span class="APPLICATION">Privoxy</span> utilizes the concept of - <span class="QUOTE">" <a href= - "../user-manual/actions-file.html#ACTIONS" target= - "_top">actions</a>"</span> that are used to manipulate and control - web page data. <a href="../user-manual/actions-file.html" target= - "_top">Actions files</a> are where these <a href= - "../user-manual/actions-file.html#ACTIONS" target= - "_top">actions</a> that <span class="APPLICATION">Privoxy</span> - could take while processing a certain request, are configured. - Typically, you would define a set of default actions that apply - globally to all URLs, then add exceptions to these defaults where - needed. There is a wide array of actions available that give the - user a high degree of control and flexibility on how to process - each and every web page. - </p> - <p> - Actions can be defined on a <a href= - "../user-manual/actions-file.html#AF-PATTERNS" target="_top">URL - pattern</a> basis, i.e. for single URLs, whole web sites, groups or - parts thereof etc. Actions can also be grouped together and then - applied to requests matching one or more patterns. There are many - possible actions that might apply to any given site. As an example, - if you are blocking <a href= - "http://en.wikipedia.org/wiki/Browser_cookie" target= - "_top">cookies</a> as one of your default actions, but need to - accept cookies from a given site, you would need to define an - exception for this site in one of your actions files, preferably in - <tt class="FILENAME">user.action</tt>. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="ACTIONSS">3.2. The <span class="QUOTE">"actions"</span> - concept confuses me. Please list some of these <span class= - "QUOTE">"actions"</span>.</a> - </h3> - <p> - For a comprehensive discussion of the actions concept, please refer - to the <a href="../user-manual/actions-file.html" target= - "_top">actions file chapter</a> in the <a href= - "../user-manual/index.html" target="_top">User Manual</a>. It - includes a <a href="../user-manual/actions-file.html#ACTIONS" - target="_top">list of all actions</a> and an <a href= - "../user-manual/actions-file.html#ACT-EXAMPLES" target= - "_top">actions file tutorial</a> to get you started. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="AEN383">3.3. How are actions files configured? What is the - easiest way to do this?</a> - </h3> - <p> - Actions files are just text files in a special syntax and can be - edited with a text editor. But probably the easiest way is to - access <span class="APPLICATION">Privoxy</span>'s user interface - with your web browser at <a href="http://config.privoxy.org/" - target="_top">http://config.privoxy.org/</a> (Shortcut: <a href= - "http://p.p/" target="_top">http://p.p/</a>) and then select <span - class="QUOTE">"<a href="http://config.privoxy.org/show-status" - target="_top">View & change the current - configuration</a>"</span> from the menu. Note that this feature - must be explicitly enabled in the main config file (see <a href= - "../user-manual/config.html#ENABLE-EDIT-ACTIONS" target= - "_top">enable-edit-actions</a>). - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="AEN392">3.4. There are several different <span class= - "QUOTE">"actions"</span> files. What are the differences?</a> - </h3> - <p> - Please have a look at the <a href= - "../user-manual/actions-file.html" target="_top">the actions - chapter</a> in the <a href="../user-manual/index.html" target= - "_top">User Manual</a> for a detailed explanation. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="GETUPDATES">3.5. Where can I get updated Actions - Files?</a> - </h3> - <p> - Based on your feedback and the continuing development, updates of - <tt class="FILENAME">default.action</tt> will be made available - from time to time on the <a href= - "http://sourceforge.net/project/showfiles.php?group_id=11118" - target="_top">files section</a> of our <a href= - "http://sf.net/projects/ijbswa/" target="_top">project page</a>. - </p> - <p> - If you wish to receive an email notification whenever we release - updates of <span class="APPLICATION">Privoxy</span> or the actions - file, <a href= - "http://lists.sourceforge.net/lists/listinfo/ijbswa-announce/" - target="_top">subscribe to our announce mailing list</a>, - ijbswa-announce@lists.sourceforge.net. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="NEWCONFIG">3.6. Can I use my old config files?</a> - </h3> - <p> - The syntax and purpose of configuration files has remained roughly - the same throughout the 3.x series, but backwards compatibility is - not guaranteed. Also each release contains updated, <span class= - "QUOTE">"improved"</span> versions and it is therefore strongly - recommended to install the newer configuration files and merge back - your modifications. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="DIFFICULT">3.7. Why is the configuration so - complicated?</a> - </h3> - <p> - <span class="QUOTE">"Complicated"</span> is in the eye of the - beholder. Those that are familiar with some of the underlying - concepts, such as regular expression syntax, take to it like a fish - takes to water. Also, software that tries hard to be <span class= - "QUOTE">"user friendly"</span>, often lacks sophistication and - flexibility. There is always that trade-off there between power vs. - easy-of-use. Furthermore, anyone is welcome to contribute ideas and - implementations to enhance <span class= - "APPLICATION">Privoxy</span>. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="YAHOO">3.8. How can I make my Yahoo/Hotmail/Gmail account - work?</a> - </h3> - <p> - The default configuration shouldn't impact the usability of any of - these services. It may, however, make all <a href= - "http://en.wikipedia.org/wiki/Browser_cookie" target= - "_top">cookies</a> temporary, so that your browser will forget your - login credentials in between browser sessions. If you would like - not to have to log in manually each time you access those websites, - simply turn off all cookie handling for them in the <tt class= - "FILENAME">user.action</tt> file. An example for yahoo might look - like: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + + <div class="SECT2"> + <h3 class="SECT2"><a name="GETUPDATES" id="GETUPDATES">3.5. Where can I + get updated Actions Files?</a></h3> + + <p>Based on your feedback and the continuing development, updates of + <tt class="FILENAME">default.action</tt> will be made available from + time to time on the <a href= + "http://sourceforge.net/project/showfiles.php?group_id=11118" target= + "_top">files section</a> of our <a href= + "http://sf.net/projects/ijbswa/" target="_top">project page</a>.</p> + + <p>If you wish to receive an email notification whenever we release + updates of <span class="APPLICATION">Privoxy</span> or the actions + file, <a href= + "http://lists.sourceforge.net/lists/listinfo/ijbswa-announce/" target= + "_top">subscribe to our announce mailing list</a>, + ijbswa-announce@lists.sourceforge.net.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="NEWCONFIG" id="NEWCONFIG">3.6. Can I use my + old config files?</a></h3> + + <p>The syntax and purpose of configuration files has remained roughly + the same throughout the 3.x series, but backwards compatibility is not + guaranteed. Also each release contains updated, <span class= + "QUOTE">"improved"</span> versions and it is therefore strongly + recommended to install the newer configuration files and merge back + your modifications.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="DIFFICULT" id="DIFFICULT">3.7. Why is the + configuration so complicated?</a></h3> + + <p><span class="QUOTE">"Complicated"</span> is in the eye of the + beholder. Those that are familiar with some of the underlying concepts, + such as regular expression syntax, take to it like a fish takes to + water. Also, software that tries hard to be <span class="QUOTE">"user + friendly"</span>, often lacks sophistication and flexibility. There is + always that trade-off there between power vs. easy-of-use. Furthermore, + anyone is welcome to contribute ideas and implementations to enhance + <span class="APPLICATION">Privoxy</span>.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="YAHOO" id="YAHOO">3.8. How can I make my + Yahoo/Hotmail/Gmail account work?</a></h3> + + <p>The default configuration shouldn't impact the usability of any of + these services. It may, however, make all <a href= + "http://en.wikipedia.org/wiki/Browser_cookie" target="_top">cookies</a> + temporary, so that your browser will forget your login credentials in + between browser sessions. If you would like not to have to log in + manually each time you access those websites, simply turn off all + cookie handling for them in the <tt class="FILENAME">user.action</tt> + file. An example for yahoo might look like:</p> + + <table class="c2" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> # Allow all cookies for Yahoo login: # { -<a href="../user-manual/actions-file.html#CRUNCH-INCOMING-COOKIES" target= @@ -220,595 +203,514 @@ Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> "_top">session-cookies-only</a> } .login.yahoo.com </pre> - </td> - </tr> - </table> - - <p> - These kinds of sites are often quite complex and heavy with <a - href="http://en.wikipedia.org/wiki/Javascript" target= - "_top">Javascript</a> and thus <span class= - "QUOTE">"fragile"</span>. So if <span class="emphasis"><i class= - "EMPHASIS">still</i></span> a problem, we have an <a href= - "../user-manual/actions-file.html#ALIASES" target="_top">alias</a> - just for such sticky situations: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>These kinds of sites are often quite complex and heavy with <a href= + "http://en.wikipedia.org/wiki/Javascript" target="_top">Javascript</a> + and thus <span class="QUOTE">"fragile"</span>. So if <span class= + "emphasis EMPHASIS c3">still</span> a problem, we have an <a href= + "../user-manual/actions-file.html#ALIASES" target="_top">alias</a> just + for such sticky situations:</p> + + <table class="c2" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> # Gmail is a _fragile_ site: # { <tt class="LITERAL">fragile</tt> } # Gmail is ... mail.google.com </pre> - </td> - </tr> - </table> - - <p> - Be sure to flush your browser's caches whenever making these kinds - of changes, just to make sure the changes <span class= - "QUOTE">"take"</span>. - </p> - <p> - Make sure the domain, host and path are appropriate as well. Your - browser can tell you where you are specifically and you should use - that information for your configuration settings. Note that above - it is not referenced as <tt class="LITERAL">gmail.com</tt>, which - is a valid domain name. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="CONFIGFILES">3.9. What's the difference between the <span - class="QUOTE">"Cautious"</span>, <span class= - "QUOTE">"Medium"</span> and <span class="QUOTE">"Advanced"</span> - defaults?</a> - </h3> - <p> - Configuring <span class="APPLICATION">Privoxy</span> is not - entirely trivial. To help you get started, we provide you with - three different default action <span class= - "QUOTE">"profiles"</span> in the web based actions file editor at - <a href="http://config.privoxy.org/show-status" target= - "_top">http://config.privoxy.org/show-status</a>. See the <a href= - "../user-manual/actions-file.html" target="_top"><i class= - "CITETITLE">User Manual</i></a> for a list of actions, and how the - default profiles are set. - </p> - <p> - Where the defaults are likely to break some sites, exceptions for - known popular <span class="QUOTE">"problem"</span> sites are - included, but in general, the more aggressive your default settings - are, the more exceptions you will have to make later. New users are - best to start off in <span class="QUOTE">"Cautious"</span> setting. - This is safest and will have the fewest problems. See the <a href= - "../user-manual/index.html" target="_top"><i class="CITETITLE">User - Manual</i></a> for a more detailed discussion. - </p> - <p> - It should be noted that the <span class="QUOTE">"Advanced"</span> - profile (formerly known as the <span class= - "QUOTE">"Adventuresome"</span> profile) is more aggressive, and - will make use of some of <span class="APPLICATION">Privoxy's</span> - advanced features. Use at your own risk! - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="BROWSECONFIG">3.10. Why can I change the configuration - with a browser? Does that not raise security issues?</a> - </h3> - <p> - It may seem strange that regular users can edit the config files - with their browsers, although the whole <tt class= - "FILENAME">/etc/privoxy</tt> hierarchy belongs to the user <span - class="QUOTE">"privoxy"</span>, with only 644 permissions. - </p> - <p> - When you use the browser-based editor, <span class= - "APPLICATION">Privoxy</span> itself is writing to the config files. - Because <span class="APPLICATION">Privoxy</span> is running as the - user <span class="QUOTE">"privoxy"</span>, it can update its own - config files. - </p> - <p> - If you run <span class="APPLICATION">Privoxy</span> for multiple - untrusted users (e.g. in a LAN) or aren't entirely in control of - your own browser, you will probably want to make sure that the - web-based editor and remote toggle features are <span class= - "QUOTE">"off"</span> by setting <span class="QUOTE">"<tt class= - "LITERAL"><a href="../user-manual/config.html#ENABLE-EDIT-ACTIONS" - target="_top">enable-edit-actions</a> 0</tt>"</span> and <span - class="QUOTE">"<tt class="LITERAL"><a href= - "../user-manual/config.html#ENABLE-REMOTE-TOGGLE" target= - "_top">enable-remote-toggle</a> 0</tt>"</span> in the <a href= - "../user-manual/config.html" target="_top">main configuration - file</a>. - </p> - <p> - As of <span class="APPLICATION">Privoxy</span> 3.0.7 these options - are disabled by default. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="AEN480">3.11. What is the <tt class= - "FILENAME">default.filter</tt> file? What is a <span class= - "QUOTE">"filter"</span>?</a> - </h3> - <p> - The <a href="../user-manual/filter-file.html" target="_top"><tt - class="FILENAME">default.filter</tt></a> file is where <span class= - "emphasis"><i class="EMPHASIS">filters</i></span> as supplied by - the developers are defined. Filters are a special subset of actions - that can be used to modify or remove web page content or headers on - the fly. Content filters can be applied to <span class= - "emphasis"><i class="EMPHASIS">anything</i></span> in the page - source, header filters can be applied to either server or client - headers. Regular expressions are used to accomplish this. - </p> - <p> - There are a number of pre-defined filters to deal with common - annoyances. The filters are only defined here, to invoke them, you - need to use the <a href="../user-manual/actions-file.html#FILTER" - target="_top"><tt class="LITERAL">filter</tt> action</a> in one of - the actions files. Content filtering is automatically disabled for - inappropriate MIME types, but if you know better than Privoxy what - should or should not be filtered you can filter any content you - like. - </p> - <p> - Filters should <span class="emphasis"><i class= - "EMPHASIS">not</i></span> be confused with <a href= - "../user-manual/actions-file.html#BLOCK" target="_top"><tt class= - "LITERAL">blocks</tt></a>, which is a completely different action, - and is more typically used to block ads and unwanted sites. - </p> - <p> - If you are familiar with regular expressions, and HTML, you can - look at the provided <tt class="FILENAME">default.filter</tt> with - a text editor and define your own filters. This is potentially a - very powerful feature, but requires some expertise in both regular - expressions and HTML/HTTP. You should place any modifications to - the default filters, or any new ones you create in a separate file, - such as <tt class="FILENAME">user.filter</tt>, so they won't be - overwritten during upgrades. The ability to define multiple filter - files in <tt class="FILENAME">config</tt> is a new feature as of v. - 3.0.5. - </p> - <p> - There is no GUI editor option for this part of the configuration, - but you can disable/enable the various pre-defined filters of the - included <tt class="FILENAME">default.filter</tt> file with the <a - href="http://config.privoxy.org/show-status" target= - "_top">web-based actions file editor</a>. Note that the custom - actions editor must be explicitly enabled in the main config file - (see <a href="../user-manual/config.html#ENABLE-EDIT-ACTIONS" - target="_top">enable-edit-actions</a>). - </p> - <p> - If you intend to develop your own filters, you might want to have a - look at <a href="http://www.fabiankeil.de/sourcecode/pft/" target= - "_top">Privoxy-Filter-Test</a>. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="LANCONFIG">3.12. How can I set up Privoxy to act as a - proxy for my LAN?</a> - </h3> - <p> - By default, <span class="APPLICATION">Privoxy</span> only responds - to requests from <tt class="LITERAL">127.0.0.1</tt> (localhost). To - have it act as a server for a network, this needs to be changed in - the <a href="../user-manual/config.html" target="_top">main - configuration file</a>. Look for the <tt class="LITERAL"><a href= - "../user-manual/config.html#LISTEN-ADDRESS" target= - "_top">listen-address</a></tt> option, which may be commented out - with a <span class="QUOTE">"#"</span> symbol. Make sure it is - uncommented, and assign it the address of the LAN gateway - interface, and port number to use. Assuming your LAN address is - 192.168.1.1 and you wish to run <span class= - "APPLICATION">Privoxy</span> on port 8118, this line should look - like: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>Be sure to flush your browser's caches whenever making these kinds + of changes, just to make sure the changes <span class= + "QUOTE">"take"</span>.</p> + + <p>Make sure the domain, host and path are appropriate as well. Your + browser can tell you where you are specifically and you should use that + information for your configuration settings. Note that above it is not + referenced as <tt class="LITERAL">gmail.com</tt>, which is a valid + domain name.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="CONFIGFILES" id="CONFIGFILES">3.9. What's + the difference between the <span class="QUOTE">"Cautious"</span>, + <span class="QUOTE">"Medium"</span> and <span class= + "QUOTE">"Advanced"</span> defaults?</a></h3> + + <p>Configuring <span class="APPLICATION">Privoxy</span> is not entirely + trivial. To help you get started, we provide you with three different + default action <span class="QUOTE">"profiles"</span> in the web based + actions file editor at <a href="http://config.privoxy.org/show-status" + target="_top">http://config.privoxy.org/show-status</a>. See the + <a class="CITETITLE c4" href="../user-manual/actions-file.html" target= + "_top">User Manual</a> for a list of actions, and how the default + profiles are set.</p> + + <p>Where the defaults are likely to break some sites, exceptions for + known popular <span class="QUOTE">"problem"</span> sites are included, + but in general, the more aggressive your default settings are, the more + exceptions you will have to make later. New users are best to start off + in <span class="QUOTE">"Cautious"</span> setting. This is safest and + will have the fewest problems. See the <a class="CITETITLE c4" href= + "../user-manual/index.html" target="_top">User Manual</a> for a more + detailed discussion.</p> + + <p>It should be noted that the <span class="QUOTE">"Advanced"</span> + profile (formerly known as the <span class= + "QUOTE">"Adventuresome"</span> profile) is more aggressive, and will + make use of some of <span class="APPLICATION">Privoxy's</span> advanced + features. Use at your own risk!</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="BROWSECONFIG" id="BROWSECONFIG">3.10. Why + can I change the configuration with a browser? Does that not raise + security issues?</a></h3> + + <p>It may seem strange that regular users can edit the config files + with their browsers, although the whole <tt class= + "FILENAME">/etc/privoxy</tt> hierarchy belongs to the user <span class= + "QUOTE">"privoxy"</span>, with only 644 permissions.</p> + + <p>When you use the browser-based editor, <span class= + "APPLICATION">Privoxy</span> itself is writing to the config files. + Because <span class="APPLICATION">Privoxy</span> is running as the user + <span class="QUOTE">"privoxy"</span>, it can update its own config + files.</p> + + <p>If you run <span class="APPLICATION">Privoxy</span> for multiple + untrusted users (e.g. in a LAN) or aren't entirely in control of your + own browser, you will probably want to make sure that the web-based + editor and remote toggle features are <span class="QUOTE">"off"</span> + by setting <span class="QUOTE">"<tt class="LITERAL"><a href= + "../user-manual/config.html#ENABLE-EDIT-ACTIONS" target= + "_top">enable-edit-actions</a> 0</tt>"</span> and <span class= + "QUOTE">"<tt class="LITERAL"><a href= + "../user-manual/config.html#ENABLE-REMOTE-TOGGLE" target= + "_top">enable-remote-toggle</a> 0</tt>"</span> in the <a href= + "../user-manual/config.html" target="_top">main configuration + file</a>.</p> + + <p>As of <span class="APPLICATION">Privoxy</span> 3.0.7 these options + are disabled by default.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="AEN489" id="AEN489">3.11. What is the + <tt class="FILENAME">default.filter</tt> file? What is a <span class= + "QUOTE">"filter"</span>?</a></h3> + + <p>The <a href="../user-manual/filter-file.html" target= + "_top"><tt class="FILENAME">default.filter</tt></a> file is where + <span class="emphasis EMPHASIS c3">filters</span> as supplied by the + developers are defined. Filters are a special subset of actions that + can be used to modify or remove web page content or headers on the fly. + Content filters can be applied to <span class= + "emphasis EMPHASIS c3">anything</span> in the page source, header + filters can be applied to either server or client headers. Regular + expressions are used to accomplish this.</p> + + <p>There are a number of pre-defined filters to deal with common + annoyances. The filters are only defined here, to invoke them, you need + to use the <a href="../user-manual/actions-file.html#FILTER" target= + "_top"><tt class="LITERAL">filter</tt> action</a> in one of the actions + files. Content filtering is automatically disabled for inappropriate + MIME types, but if you know better than Privoxy what should or should + not be filtered you can filter any content you like.</p> + + <p>Filters should <span class="emphasis EMPHASIS c3">not</span> be + confused with <a href="../user-manual/actions-file.html#BLOCK" target= + "_top"><tt class="LITERAL">blocks</tt></a>, which is a completely + different action, and is more typically used to block ads and unwanted + sites.</p> + + <p>If you are familiar with regular expressions, and HTML, you can look + at the provided <tt class="FILENAME">default.filter</tt> with a text + editor and define your own filters. This is potentially a very powerful + feature, but requires some expertise in both regular expressions and + HTML/HTTP. You should place any modifications to the default filters, + or any new ones you create in a separate file, such as <tt class= + "FILENAME">user.filter</tt>, so they won't be overwritten during + upgrades. The ability to define multiple filter files in <tt class= + "FILENAME">config</tt> is a new feature as of v. 3.0.5.</p> + + <p>There is no GUI editor option for this part of the configuration, + but you can disable/enable the various pre-defined filters of the + included <tt class="FILENAME">default.filter</tt> file with the + <a href="http://config.privoxy.org/show-status" target="_top">web-based + actions file editor</a>. Note that the custom actions editor must be + explicitly enabled in the main config file (see <a href= + "../user-manual/config.html#ENABLE-EDIT-ACTIONS" target= + "_top">enable-edit-actions</a>).</p> + + <p>If you intend to develop your own filters, you might want to have a + look at <a href="http://www.fabiankeil.de/sourcecode/pft/" target= + "_top">Privoxy-Filter-Test</a>.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="LANCONFIG" id="LANCONFIG">3.12. How can I + set up Privoxy to act as a proxy for my LAN?</a></h3> + + <p>By default, <span class="APPLICATION">Privoxy</span> only responds + to requests from <tt class="LITERAL">127.0.0.1</tt> (localhost). To + have it act as a server for a network, this needs to be changed in the + <a href="../user-manual/config.html" target="_top">main configuration + file</a>. Look for the <tt class="LITERAL"><a href= + "../user-manual/config.html#LISTEN-ADDRESS" target= + "_top">listen-address</a></tt> option, which may be commented out with + a <span class="QUOTE">"#"</span> symbol. Make sure it is uncommented, + and assign it the address of the LAN gateway interface, and port number + to use. Assuming your LAN address is 192.168.1.1 and you wish to run + <span class="APPLICATION">Privoxy</span> on port 8118, this line should + look like:</p> + + <table class="c2" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> listen-address 192.168.1.1:8118 </pre> - </td> - </tr> - </table> - - <p> - Save the file, and restart <span class= - "APPLICATION">Privoxy</span>. Configure all browsers on the network - then to use this address and port number. - </p> - <p> - Alternately, you can have <span class="APPLICATION">Privoxy</span> - listen on all available interfaces: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>Save the file, and restart <span class="APPLICATION">Privoxy</span>. + Configure all browsers on the network then to use this address and port + number.</p> + + <p>Alternately, you can have <span class="APPLICATION">Privoxy</span> + listen on all available interfaces:</p> + + <table class="c2" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> listen-address :8118 </pre> - </td> - </tr> - </table> - - <p> - And then use <span class="APPLICATION">Privoxy's</span> <a href= - "../user-manual/config.html#PERMIT-ACCESS" target= - "_top">permit-access</a> feature to limit connections. A firewall - in this situation is recommended as well. - </p> - <p> - The above steps should be the same for any TCP network, regardless - of operating system. - </p> - <p> - If you run <span class="APPLICATION">Privoxy</span> on a LAN with - untrusted users, we recommend that you double-check the <a href= - "../user-manual/config.html#ACCESS-CONTROL" target="_top">access - control and security</a> options! - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="AEN531">3.13. Instead of ads, now I get a checkerboard - pattern. I don't want to see anything.</a> - </h3> - <p> - The replacement for blocked images can be controlled with the <a - href="../user-manual/actions-file.html#SET-IMAGE-BLOCKER" target= - "_top"><tt class="LITERAL">set-image-blocker</tt> action</a>. You - have the choice of a checkerboard pattern, a transparent 1x1 GIF - image (aka <span class="QUOTE">"blank"</span>), or a redirect to a - custom image of your choice. Note that this choice only has effect - for images which are blocked as images, i.e. whose URLs match both - a <tt class="LITERAL"><a href= - "../user-manual/actions-file.html#HANDLE-AS-IMAGE" target= - "_top">handle-as-image</a></tt> <span class="emphasis"><i class= - "EMPHASIS">and</i></span> <tt class="LITERAL"><a href= - "../user-manual/actions-file.html#BLOCK" target= - "_top">block</a></tt> action. - </p> - <p> - If you want to see nothing, then change the <a href= - "../user-manual/actions-file.html#SET-IMAGE-BLOCKER" target= - "_top"><tt class="LITERAL">set-image-blocker</tt> action</a> to - <span class="QUOTE">"blank"</span>. This can be done by editing the - <tt class="FILENAME">user.action</tt> file, or through the <a href= - "http://config.privoxy.org/show-status" target="_top">web-based - actions file editor</a>. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="AEN548">3.14. Why would anybody want to see a checkerboard - pattern?</a> - </h3> - <p> - Remember that <a href="general.html#WHATSANAD">telling which image - is an ad and which isn't</a>, is an educated guess. While we hope - that the standard configuration is rather smart, it will make - occasional mistakes. The checkerboard image is visually decent, and - it shows you where images have been blocked, which can be very - helpful in case some navigation aid or otherwise innocent image was - erroneously blocked. It is recommended for new users so they can - <span class="QUOTE">"see"</span> what is happening. Some people - might also enjoy seeing how many banners they <span class= - "emphasis"><i class="EMPHASIS">don't</i></span> have to see. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="AEN554">3.15. I see some images being replaced with text - instead of the checkerboard image. Why and how do I get rid of - this?</a> - </h3> - <p> - This happens when the banners are not embedded in the HTML code of - the page itself, but in separate HTML (sub)documents that are - loaded into (i)frames or (i)layers, and these external HTML - documents are blocked. Being non-images they get replaced by a - substitute HTML page rather than a substitute image, which wouldn't - work out technically, since the browser expects and accepts only - HTML when it has requested an HTML document. - </p> - <p> - The substitute page adapts to the available space and shows itself - as a miniature two-liner if loaded into small frames, or full-blown - with a large red "BLOCKED" banner if space allows. - </p> - <p> - If you prefer the banners to be blocked by images, you must see to - it that the HTML documents in which they are embedded are not - blocked. Clicking the <span class="QUOTE">"See why"</span> link - offered in the substitute page will show you which rule blocked the - page. After changing the rule and un-blocking the HTML documents, - the browser will try to load the actual banner images and the usual - image blocking will (hopefully!) kick in. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="SRVANY">3.16. Can Privoxy run as a service on - Win2K/NT/XP?</a> - </h3> - <p> - Yes. Version 3.0.5 introduces full <span class= - "APPLICATION">Windows</span> service functionality. See <a href= - "../user-manual/installation.html#installation-pack-win" target= - "_top">the <i class="CITETITLE">User Manual</i></a> for details on - how to install and configure <span class= - "APPLICATION">Privoxy</span> as a service. - </p> - <p> - Earlier 3.x versions could run as a system service using <b class= - "COMMAND">srvany.exe</b>. See the discussion at <a href= - "http://sourceforge.net/tracker/?func=detail&atid=361118&aid=485617&group_id=11118" - target= - "_top">http://sourceforge.net/tracker/?func=detail&atid=361118&aid=485617&group_id=11118</a>, - for details, and a sample configuration. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="OTHERPROXY">3.17. How can I make Privoxy work with other - proxies?</a> - </h3> - <p> - This can be done and is often useful to combine the benefits of - <span class="APPLICATION">Privoxy</span> with those of a another - proxy, for example to cache content. See the <a href= - "../user-manual/config.html#FORWARDING" target="_top">forwarding - chapter</a> in the <a href="../user-manual/index.html" target= - "_top">User Manual</a> which describes how to do this. If you - intend to use Privoxy with Tor, please also have a look at <a href= - "misc.html#TOR">How do I use Privoxy together with Tor</a>. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="PORT-80">3.18. Can I just set Privoxy to use port 80 and - thus avoid individual browser configuration?</a> - </h3> - <p> - No, its more complicated than that. This only works with special - kinds of proxies known as <span class="QUOTE">"intercepting"</span> - proxies (<a href="configuration.html#INTERCEPTING">see below</a>). - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="TRANSPARENT">3.19. Can Privoxy run as a <span class= - "QUOTE">"transparent"</span> proxy?</a> - </h3> - <p> - The whole idea of Privoxy is to modify client requests and server - responses in all sorts of ways and therefore it's not a transparent - proxy as described in <a href="http://tools.ietf.org/html/rfc2616" - target="_top">RFC 2616</a>. - </p> - <p> - However, some people say <span class="QUOTE">"transparent - proxy"</span> when they mean <span class="QUOTE">"intercepting - proxy"</span>. If you are one of them, please read the <a href= - "configuration.html#INTERCEPTING">next entry</a>. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="INTERCEPTING">3.20. Can Privoxy run as a <span class= - "QUOTE">"intercepting"</span> proxy?</a> - </h3> - <p> - <span class="APPLICATION">Privoxy</span> can't intercept traffic - itself, but it can handle requests that where intercepted and - redirected with a packet filter (like <span class= - "APPLICATION">PF</span> or <span class= - "APPLICATION">iptables</span>), as long as the <tt class= - "LITERAL">Host</tt> header is present. - </p> - <p> - As the <tt class="LITERAL">Host</tt> header is required by HTTP/1.1 - and as most web sites rely on it anyway, this limitation shouldn't - be a problem. - </p> - <p> - Please refer to your packet filter's documentation to learn how to - intercept and redirect traffic into <span class= - "APPLICATION">Privoxy</span>. Afterward you just have to configure - <span class="APPLICATION">Privoxy</span> to <a href= - "../user-manual/config.html#ACCEPT-INTERCEPTED-REQUESTS" target= - "_top">accept intercepted requests</a>. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="OUTLOOK">3.21. How can I configure Privoxy for use with - Outlook?</a> - </h3> - <p> - Versions of <span class="APPLICATION">Outlook</span> prior to - Office 2007, use <span class="APPLICATION">Internet Explorer</span> - components to both render HTML, and fetch any HTTP requests that - may be embedded in an HTML email. So however you have <span class= - "APPLICATION">Privoxy</span> configured to work with IE, this - configuration should automatically be shared, at least with older - version of Internet Explorer. - </p> - <p> - Starting with Office 2007, Microsoft is instead using the MS-Word - rendering engine with Outlook. It is unknown whether this can be - configured to use a proxy. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="OUTLOOK-MORE">3.22. How can I have separate rules just for - HTML mail?</a> - </h3> - <p> - The short answer is, you can't. <span class= - "APPLICATION">Privoxy</span> has no way of knowing which particular - application makes a request, so there is no way to distinguish - between web pages and HTML mail. <span class= - "APPLICATION">Privoxy</span> just blindly proxies all requests. In - the case of <span class="APPLICATION">Outlook Express</span> (see - above), OE uses IE anyway, and there is no way for <span class= - "APPLICATION">Privoxy</span> to ever be able to distinguish between - them (nor could any other proxy type application for that matter). - </p> - <p> - For a good discussion of some of the issues involved (including - privacy and security issues), see <a href= - "http://sourceforge.net/tracker/?func=detail&atid=211118&aid=629518&group_id=11118" - target= - "_top">http://sourceforge.net/tracker/?func=detail&atid=211118&aid=629518&group_id=11118</a>. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="SNEAKY-COOKIES">3.23. I sometimes notice cookies sneaking - through. How?</a> - </h3> - <p> - <a href="http://en.wikipedia.org/wiki/Browser_cookie" target= - "_top">Cookies</a> can be set in several ways. The classic method - is via the <tt class="LITERAL">Set-Cookie</tt> HTTP header. This is - straightforward, and an easy one to manipulate, such as the <span - class="APPLICATION">Privoxy</span> concept of <a href= - "../user-manual/actions-file.html#SESSION-COOKIES-ONLY" target= - "_top">session-cookies-only</a>. There is also the possibility of - using <a href="http://en.wikipedia.org/wiki/Javascript" target= - "_top">Javascript</a> to set cookies (<span class= - "APPLICATION">Privoxy</span> calls these <tt class= - "LITERAL">content-cookies</tt>). This is trickier because the - syntax can vary widely, and thus requires a certain amount of - guesswork. It is not realistic to catch all of these short of - disabling Javascript, which would break many sites. And lastly, if - the cookies are embedded in a HTTPS/SSL secure session via - Javascript, they are beyond <span class= - "APPLICATION">Privoxy's</span> reach. - </p> - <p> - All in all, <span class="APPLICATION">Privoxy</span> can help - manage cookies in general, can help minimize the loss of privacy - posed by cookies, but can't realistically stop all cookies. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="EVIL-COOKIES">3.24. Are all cookies bad? Why?</a> - </h3> - <p> - No, in fact there are many beneficial uses of <a href= - "http://en.wikipedia.org/wiki/Browser_cookie" target= - "_top">cookies</a>. Cookies are just a method that browsers can use - to store data between pages, or between browser sessions. Sometimes - there is a good reason for this, and the user's life is a bit - easier as a result. But there is a long history of some websites - taking advantage of this layer of trust, and using the data they - glean from you and your browsing habits for their own purposes, and - maybe to your potential detriment. Such sites are using you and - storing their data on your system. That is why the privacy - conscious watch from whom those cookies come, and why they really - <span class="emphasis"><i class="EMPHASIS">need</i></span> to be - there. - </p> - <p> - See the <a href="http://en.wikipedia.org/wiki/Browser_cookie" - target="_top">Wikipedia cookie definition</a> for more. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="ALLOW-COOKIES">3.25. How can I allow permanent cookies for - my trusted sites?</a> - </h3> - <p> - There are several actions that relate to cookies. The default - behavior is to allow only <span class="QUOTE">"session - cookies"</span>, which means the cookies only last for the current - browser session. This eliminates most kinds of abuse related to - cookies. But there may be cases where you want cookies to last. - </p> - <p> - To disable all cookie actions, so that cookies are allowed - unrestricted, both in and out, for <tt class= - "LITERAL">example.com</tt>: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>And then use <span class="APPLICATION">Privoxy's</span> <a href= + "../user-manual/config.html#PERMIT-ACCESS" target= + "_top">permit-access</a> feature to limit connections. A firewall in + this situation is recommended as well.</p> + + <p>The above steps should be the same for any TCP network, regardless + of operating system.</p> + + <p>If you run <span class="APPLICATION">Privoxy</span> on a LAN with + untrusted users, we recommend that you double-check the <a href= + "../user-manual/config.html#ACCESS-CONTROL" target="_top">access + control and security</a> options!</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="AEN540" id="AEN540">3.13. Instead of ads, + now I get a checkerboard pattern. I don't want to see + anything.</a></h3> + + <p>The replacement for blocked images can be controlled with the + <a href="../user-manual/actions-file.html#SET-IMAGE-BLOCKER" target= + "_top"><tt class="LITERAL">set-image-blocker</tt> action</a>. You have + the choice of a checkerboard pattern, a transparent 1x1 GIF image (aka + <span class="QUOTE">"blank"</span>), or a redirect to a custom image of + your choice. Note that this choice only has effect for images which are + blocked as images, i.e. whose URLs match both a <tt class= + "LITERAL"><a href="../user-manual/actions-file.html#HANDLE-AS-IMAGE" + target="_top">handle-as-image</a></tt> <span class= + "emphasis EMPHASIS c3">and</span> <tt class="LITERAL"><a href= + "../user-manual/actions-file.html#BLOCK" target="_top">block</a></tt> + action.</p> + + <p>If you want to see nothing, then change the <a href= + "../user-manual/actions-file.html#SET-IMAGE-BLOCKER" target= + "_top"><tt class="LITERAL">set-image-blocker</tt> action</a> to + <span class="QUOTE">"blank"</span>. This can be done by editing the + <tt class="FILENAME">user.action</tt> file, or through the <a href= + "http://config.privoxy.org/show-status" target="_top">web-based actions + file editor</a>.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="AEN557" id="AEN557">3.14. Why would anybody + want to see a checkerboard pattern?</a></h3> + + <p>Remember that <a href="general.html#WHATSANAD">telling which image + is an ad and which isn't</a>, is an educated guess. While we hope that + the standard configuration is rather smart, it will make occasional + mistakes. The checkerboard image is visually decent, and it shows you + where images have been blocked, which can be very helpful in case some + navigation aid or otherwise innocent image was erroneously blocked. It + is recommended for new users so they can <span class= + "QUOTE">"see"</span> what is happening. Some people might also enjoy + seeing how many banners they <span class= + "emphasis EMPHASIS c3">don't</span> have to see.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="AEN563" id="AEN563">3.15. I see some images + being replaced with text instead of the checkerboard image. Why and how + do I get rid of this?</a></h3> + + <p>This happens when the banners are not embedded in the HTML code of + the page itself, but in separate HTML (sub)documents that are loaded + into (i)frames or (i)layers, and these external HTML documents are + blocked. Being non-images they get replaced by a substitute HTML page + rather than a substitute image, which wouldn't work out technically, + since the browser expects and accepts only HTML when it has requested + an HTML document.</p> + + <p>The substitute page adapts to the available space and shows itself + as a miniature two-liner if loaded into small frames, or full-blown + with a large red "BLOCKED" banner if space allows.</p> + + <p>If you prefer the banners to be blocked by images, you must see to + it that the HTML documents in which they are embedded are not blocked. + Clicking the <span class="QUOTE">"See why"</span> link offered in the + substitute page will show you which rule blocked the page. After + changing the rule and un-blocking the HTML documents, the browser will + try to load the actual banner images and the usual image blocking will + (hopefully!) kick in.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="SRVANY" id="SRVANY">3.16. Can Privoxy run as + a service on Win2K/NT/XP?</a></h3> + + <p>Yes. Version 3.0.5 introduces full <span class= + "APPLICATION">Windows</span> service functionality. See <a href= + "../user-manual/installation.html#installation-pack-win" target= + "_top">the <i class="CITETITLE">User Manual</i></a> for details on how + to install and configure <span class="APPLICATION">Privoxy</span> as a + service.</p> + + <p>Earlier 3.x versions could run as a system service using <b class= + "COMMAND">srvany.exe</b>. See the discussion at <a href= + "http://sourceforge.net/tracker/?func=detail&atid=361118&aid=485617&group_id=11118" + target= + "_top">http://sourceforge.net/tracker/?func=detail&atid=361118&aid=485617&group_id=11118</a>, + for details, and a sample configuration.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="OTHERPROXY" id="OTHERPROXY">3.17. How can I + make Privoxy work with other proxies?</a></h3> + + <p>This can be done and is often useful to combine the benefits of + <span class="APPLICATION">Privoxy</span> with those of a another proxy, + for example to cache content. See the <a href= + "../user-manual/config.html#FORWARDING" target="_top">forwarding + chapter</a> in the <a href="../user-manual/index.html" target= + "_top">User Manual</a> which describes how to do this. If you intend to + use Privoxy with Tor, please also have a look at <a href= + "misc.html#TOR">How do I use Privoxy together with Tor</a>.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="PORT-80" id="PORT-80">3.18. Can I just set + Privoxy to use port 80 and thus avoid individual browser + configuration?</a></h3> + + <p>No, its more complicated than that. This only works with special + kinds of proxies known as <span class="QUOTE">"intercepting"</span> + proxies (<a href="configuration.html#INTERCEPTING">see below</a>).</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="TRANSPARENT" id="TRANSPARENT">3.19. Can + Privoxy run as a <span class="QUOTE">"transparent"</span> + proxy?</a></h3> + + <p>The whole idea of Privoxy is to modify client requests and server + responses in all sorts of ways and therefore it's not a transparent + proxy as described in <a href="http://tools.ietf.org/html/rfc2616" + target="_top">RFC 2616</a>.</p> + + <p>However, some people say <span class="QUOTE">"transparent + proxy"</span> when they mean <span class="QUOTE">"intercepting + proxy"</span>. If you are one of them, please read the <a href= + "configuration.html#INTERCEPTING">next entry</a>.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="INTERCEPTING" id="INTERCEPTING">3.20. Can + Privoxy run as a <span class="QUOTE">"intercepting"</span> + proxy?</a></h3> + + <p><span class="APPLICATION">Privoxy</span> can't intercept traffic + itself, but it can handle requests that where intercepted and + redirected with a packet filter (like <span class= + "APPLICATION">PF</span> or <span class="APPLICATION">iptables</span>), + as long as the <tt class="LITERAL">Host</tt> header is present.</p> + + <p>As the <tt class="LITERAL">Host</tt> header is required by HTTP/1.1 + and as most web sites rely on it anyway, this limitation shouldn't be a + problem.</p> + + <p>Please refer to your packet filter's documentation to learn how to + intercept and redirect traffic into <span class= + "APPLICATION">Privoxy</span>. Afterward you just have to configure + <span class="APPLICATION">Privoxy</span> to <a href= + "../user-manual/config.html#ACCEPT-INTERCEPTED-REQUESTS" target= + "_top">accept intercepted requests</a>.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="OUTLOOK" id="OUTLOOK">3.21. How can I + configure Privoxy for use with Outlook?</a></h3> + + <p>Versions of <span class="APPLICATION">Outlook</span> prior to Office + 2007, use <span class="APPLICATION">Internet Explorer</span> components + to both render HTML, and fetch any HTTP requests that may be embedded + in an HTML email. So however you have <span class= + "APPLICATION">Privoxy</span> configured to work with IE, this + configuration should automatically be shared, at least with older + version of Internet Explorer.</p> + + <p>Starting with Office 2007, Microsoft is instead using the MS-Word + rendering engine with Outlook. It is unknown whether this can be + configured to use a proxy.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="OUTLOOK-MORE" id="OUTLOOK-MORE">3.22. How + can I have separate rules just for HTML mail?</a></h3> + + <p>The short answer is, you can't. <span class= + "APPLICATION">Privoxy</span> has no way of knowing which particular + application makes a request, so there is no way to distinguish between + web pages and HTML mail. <span class="APPLICATION">Privoxy</span> just + blindly proxies all requests. In the case of <span class= + "APPLICATION">Outlook Express</span> (see above), OE uses IE anyway, + and there is no way for <span class="APPLICATION">Privoxy</span> to + ever be able to distinguish between them (nor could any other proxy + type application for that matter).</p> + + <p>For a good discussion of some of the issues involved (including + privacy and security issues), see <a href= + "http://sourceforge.net/tracker/?func=detail&atid=211118&aid=629518&group_id=11118" + target= + "_top">http://sourceforge.net/tracker/?func=detail&atid=211118&aid=629518&group_id=11118</a>.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="SNEAKY-COOKIES" id="SNEAKY-COOKIES">3.23. I + sometimes notice cookies sneaking through. How?</a></h3> + + <p><a href="http://en.wikipedia.org/wiki/Browser_cookie" target= + "_top">Cookies</a> can be set in several ways. The classic method is + via the <tt class="LITERAL">Set-Cookie</tt> HTTP header. This is + straightforward, and an easy one to manipulate, such as the + <span class="APPLICATION">Privoxy</span> concept of <a href= + "../user-manual/actions-file.html#SESSION-COOKIES-ONLY" target= + "_top">session-cookies-only</a>. There is also the possibility of using + <a href="http://en.wikipedia.org/wiki/Javascript" target= + "_top">Javascript</a> to set cookies (<span class= + "APPLICATION">Privoxy</span> calls these <tt class= + "LITERAL">content-cookies</tt>). This is trickier because the syntax + can vary widely, and thus requires a certain amount of guesswork. It is + not realistic to catch all of these short of disabling Javascript, + which would break many sites. And lastly, if the cookies are embedded + in a HTTPS/SSL secure session via Javascript, they are beyond + <span class="APPLICATION">Privoxy's</span> reach.</p> + + <p>All in all, <span class="APPLICATION">Privoxy</span> can help manage + cookies in general, can help minimize the loss of privacy posed by + cookies, but can't realistically stop all cookies.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="EVIL-COOKIES" id="EVIL-COOKIES">3.24. Are + all cookies bad? Why?</a></h3> + + <p>No, in fact there are many beneficial uses of <a href= + "http://en.wikipedia.org/wiki/Browser_cookie" target= + "_top">cookies</a>. Cookies are just a method that browsers can use to + store data between pages, or between browser sessions. Sometimes there + is a good reason for this, and the user's life is a bit easier as a + result. But there is a long history of some websites taking advantage + of this layer of trust, and using the data they glean from you and your + browsing habits for their own purposes, and maybe to your potential + detriment. Such sites are using you and storing their data on your + system. That is why the privacy conscious watch from whom those cookies + come, and why they really <span class= + "emphasis EMPHASIS c3">need</span> to be there.</p> + + <p>See the <a href="http://en.wikipedia.org/wiki/Browser_cookie" + target="_top">Wikipedia cookie definition</a> for more.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="ALLOW-COOKIES" id="ALLOW-COOKIES">3.25. How + can I allow permanent cookies for my trusted sites?</a></h3> + + <p>There are several actions that relate to cookies. The default + behavior is to allow only <span class="QUOTE">"session cookies"</span>, + which means the cookies only last for the current browser session. This + eliminates most kinds of abuse related to cookies. But there may be + cases where you want cookies to last.</p> + + <p>To disable all cookie actions, so that cookies are allowed + unrestricted, both in and out, for <tt class= + "LITERAL">example.com</tt>:</p> + + <table class="c2" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> { -crunch-incoming-cookies -crunch-outgoing-cookies -session-cookies-only -filter{content-cookies} } .example.com </pre> - </td> - </tr> - </table> - - <p> - Place the above in <tt class="FILENAME">user.action</tt>. Note that - some of these may be off by default anyway, so this might be - redundant, but there is no harm being explicit in what you want to - happen. <tt class="FILENAME">user.action</tt> includes an alias for - this situation, called <tt class="LITERAL">allow-all-cookies</tt>. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="MULTIPLES">3.26. Can I have separate configurations for - different users?</a> - </h3> - <p> - Each instance of <span class="APPLICATION">Privoxy</span> has its - own configuration, including such attributes as the TCP port that - it listens on. What you can do is run multiple instances of <span - class="APPLICATION">Privoxy</span>, each with a unique <a href= - "../user-manual/config.html#LISTEN-ADDRESS" target= - "_top">listen-address</a> configuration setting, and configuration - path, and then each of these can have their own configurations. - Think of it as per-port configuration. - </p> - <p> - Simple enough for a few users, but for large installations, - consider having groups of users that might share like - configurations. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="WHITELISTS">3.27. Can I set-up Privoxy as a whitelist of - <span class="QUOTE">"good"</span> sites?</a> - </h3> - <p> - Sure. There are a couple of things you can do for simple - white-listing. Here's one real easy one: - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>Place the above in <tt class="FILENAME">user.action</tt>. Note that + some of these may be off by default anyway, so this might be redundant, + but there is no harm being explicit in what you want to happen. + <tt class="FILENAME">user.action</tt> includes an alias for this + situation, called <tt class="LITERAL">allow-all-cookies</tt>.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="MULTIPLES" id="MULTIPLES">3.26. Can I have + separate configurations for different users?</a></h3> + + <p>Each instance of <span class="APPLICATION">Privoxy</span> has its + own configuration, including such attributes as the TCP port that it + listens on. What you can do is run multiple instances of <span class= + "APPLICATION">Privoxy</span>, each with a unique <a href= + "../user-manual/config.html#LISTEN-ADDRESS" target= + "_top">listen-address</a> configuration setting, and configuration + path, and then each of these can have their own configurations. Think + of it as per-port configuration.</p> + + <p>Simple enough for a few users, but for large installations, consider + having groups of users that might share like configurations.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="WHITELISTS" id="WHITELISTS">3.27. Can I + set-up Privoxy as a whitelist of <span class="QUOTE">"good"</span> + sites?</a></h3> + + <p>Sure. There are a couple of things you can do for simple + white-listing. Here's one real easy one:</p> + + <table class="c2" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> ############################################################ # Blacklist ############################################################ @@ -825,83 +727,71 @@ Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> toys.example.com games.example.com </pre> - </td> - </tr> - </table> - <p> - This allows access to only those three sites by first blocking all - URLs, and then subsequently allowing three specific exceptions. - </p> - <p> - Another approach is <span class="APPLICATION">Privoxy's</span> <tt - class="LITERAL">trustfile</tt> concept, which incorporates the - notion of <span class="QUOTE">"trusted referrers"</span>. See the - <a href="../user-manual/config.html#TRUSTFILE" target="_top">Trust - documentation</a> for details. - </p> - <p> - These are fairly simple approaches and are not completely - foolproof. There are various other configuration options that - should be disabled (described elsewhere here and in <a href= - "../user-manual/" target="_top">the User Manual</a>) so that users - can't modify their own configuration and easily circumvent the - whitelist. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="NO-ADBLOCK">3.28. How can I turn off ad-blocking?</a> - </h3> - <p> - Ad blocking is achieved through a complex application of various - <span class="APPLICATION">Privoxy</span> <a href= - "../user-manual/actions-file.html" target="_top">actions</a>. These - actions are deployed against simple images, banners, flash - animations, text pages, JavaScript, pop-ups and pop-unders, etc., - so its not as simple as just turning one or two actions off. The - various actions that make up <span class= - "APPLICATION">Privoxy</span> ad blocking are hard-coded into the - default configuration files. It has been assumed that everyone - using <span class="APPLICATION">Privoxy</span> is interested in - this particular feature. - </p> - <p> - If you want to do without this, there are several approaches you - can take: You can manually undo the many block rules in <tt class= - "FILENAME">default.action</tt>. Or even easier, just create your - own <tt class="FILENAME">default.action</tt> file from scratch - without the many ad blocking rules, and corresponding exceptions. - Or lastly, if you are not concerned about the additional blocks - that are done for privacy reasons, you can very easily over-ride - <span class="emphasis"><i class="EMPHASIS">all</i></span> blocking - with the following very simple rule in your <tt class= - "FILENAME">user.action</tt>: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>This allows access to only those three sites by first blocking all + URLs, and then subsequently allowing three specific exceptions.</p> + + <p>Another approach is <span class="APPLICATION">Privoxy's</span> + <tt class="LITERAL">trustfile</tt> concept, which incorporates the + notion of <span class="QUOTE">"trusted referrers"</span>. See the + <a href="../user-manual/config.html#TRUSTFILE" target="_top">Trust + documentation</a> for details.</p> + + <p>These are fairly simple approaches and are not completely foolproof. + There are various other configuration options that should be disabled + (described elsewhere here and in <a href="../user-manual/" target= + "_top">the User Manual</a>) so that users can't modify their own + configuration and easily circumvent the whitelist.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="NO-ADBLOCK" id="NO-ADBLOCK">3.28. How can I + turn off ad-blocking?</a></h3> + + <p>Ad blocking is achieved through a complex application of various + <span class="APPLICATION">Privoxy</span> <a href= + "../user-manual/actions-file.html" target="_top">actions</a>. These + actions are deployed against simple images, banners, flash animations, + text pages, JavaScript, pop-ups and pop-unders, etc., so its not as + simple as just turning one or two actions off. The various actions that + make up <span class="APPLICATION">Privoxy</span> ad blocking are + hard-coded into the default configuration files. It has been assumed + that everyone using <span class="APPLICATION">Privoxy</span> is + interested in this particular feature.</p> + + <p>If you want to do without this, there are several approaches you can + take: You can manually undo the many block rules in <tt class= + "FILENAME">default.action</tt>. Or even easier, just create your own + <tt class="FILENAME">default.action</tt> file from scratch without the + many ad blocking rules, and corresponding exceptions. Or lastly, if you + are not concerned about the additional blocks that are done for privacy + reasons, you can very easily over-ride <span class= + "emphasis EMPHASIS c3">all</span> blocking with the following very + simple rule in your <tt class="FILENAME">user.action</tt>:</p> + + <table class="c2" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> # Unblock everybody, everywhere { <a href="../user-manual/actions-file.html#BLOCK" target= "_top">-block</a> } / # UN-Block *all* URLs </pre> - </td> - </tr> - </table> - - <p> - Or even a more comprehensive reversing of various ad related - actions: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>Or even a more comprehensive reversing of various ad related + actions:</p> + + <table class="c2" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> # Unblock everybody, everywhere, and turn off appropriate filtering, etc { <a href="../user-manual/actions-file.html#BLOCK" target= "_top">-block</a> \ @@ -913,115 +803,98 @@ Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> } / # UN-Block *all* URLs and allow ads </pre> - </td> - </tr> - </table> - - <p> - This last <span class="QUOTE">"action"</span> in this compound - statement, <tt class="LITERAL">allow-popups</tt>, is an <a href= - "../user-manual/actions-file.html#ALIASES" target="_top">alias</a> - that disables various pop-up blocking features. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="TEMPLATES">3.29. How can I have custom template pages, - like the <span class="emphasis"><i class= - "EMPHASIS">BLOCKED</i></span> page?</a> - </h3> - <p> - <span class="APPLICATION">Privoxy</span> <span class= - "QUOTE">"templates"</span> are specialized text files utilized by - <span class="APPLICATION">Privoxy</span> for various purposes and - can easily be modified using any text editor. All the template - pages are installed in a sub-directory appropriately named: <tt - class="FILENAME">templates</tt>. Knowing something about HTML - syntax will of course be helpful. - </p> - <p> - Be forewarned that the default templates are subject to being - overwritten during upgrades. You can, however, create completely - new templates, place them in another directory and specify the - alternate path in the main <tt class="FILENAME">config</tt>. For - details, have a look at the <a href= - "../user-manual/config.html#templdir" target="_top">templdir</a> - option. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="BLOCKALL">3.30. How can I remove the <span class= - "QUOTE">"Go There Anyway"</span> link from the <span class= - "emphasis"><i class="EMPHASIS">BLOCKED</i></span> page?</a> - </h3> - <p> - There is more than one way to do it (although Perl is not - involved). - </p> - <p> - Editing the BLOCKED template page (see above) may dissuade some - users, but this method is easily circumvented. Where you need this - level of control, you might want to build <span class= - "APPLICATION">Privoxy</span> from source, and disable various - features that are available as compile-time options. You should <b - class="COMMAND">configure</b> the sources as follows: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> - ./configure --disable-toggle --disable-editor --disable-force -</pre> - </td> - </tr> - </table> - - <p> - This will create an executable with hard-coded security features so - that <span class="APPLICATION">Privoxy</span> does not allow easy - bypassing of blocked sites, or changing the current configuration - via any connected user's web browser. - </p> - <p> - Finally, all of these features can also be toggled on/off via - options in <span class="APPLICATION">Privoxy's</span> main <a href= - "../user-manual/config.html#ACCESS-CONTROL" target= - "_top">config</a> file which means you don't have to recompile - anything. - </p> - </div> - </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="installation.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="misc.html" accesskey="N">Next</a> </td> </tr> + </table> + + <p>This last <span class="QUOTE">"action"</span> in this compound + statement, <tt class="LITERAL">allow-popups</tt>, is an <a href= + "../user-manual/actions-file.html#ALIASES" target="_top">alias</a> that + disables various pop-up blocking features.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="TEMPLATES" id="TEMPLATES">3.29. How can I + have custom template pages, like the <span class= + "emphasis EMPHASIS c3">BLOCKED</span> page?</a></h3> + + <p><span class="APPLICATION">Privoxy</span> <span class= + "QUOTE">"templates"</span> are specialized text files utilized by + <span class="APPLICATION">Privoxy</span> for various purposes and can + easily be modified using any text editor. All the template pages are + installed in a sub-directory appropriately named: <tt class= + "FILENAME">templates</tt>. Knowing something about HTML syntax will of + course be helpful.</p> + + <p>Be forewarned that the default templates are subject to being + overwritten during upgrades. You can, however, create completely new + templates, place them in another directory and specify the alternate + path in the main <tt class="FILENAME">config</tt>. For details, have a + look at the <a href="../user-manual/config.html#templdir" target= + "_top">templdir</a> option.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="BLOCKALL" id="BLOCKALL">3.30. How can I + remove the <span class="QUOTE">"Go There Anyway"</span> link from the + <span class="emphasis EMPHASIS c3">BLOCKED</span> page?</a></h3> + + <p>There is more than one way to do it (although Perl is not + involved).</p> + + <p>Editing the BLOCKED template page (see above) may dissuade some + users, but this method is easily circumvented. Where you need this + level of control, you might want to build <span class= + "APPLICATION">Privoxy</span> from source, and disable various features + that are available as compile-time options. You should <b class= + "COMMAND">configure</b> the sources as follows:</p> + + <table class="c2" border="0" width="100%"> <tr> - <td width="33%" align="left" valign="top"> - Installation - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Miscellaneous + <td> + <pre class="SCREEN"> + ./configure --disable-toggle --disable-editor --disable-force +</pre> </td> </tr> </table> + + <p>This will create an executable with hard-coded security features so + that <span class="APPLICATION">Privoxy</span> does not allow easy + bypassing of blocked sites, or changing the current configuration via + any connected user's web browser.</p> + + <p>Finally, all of these features can also be toggled on/off via + options in <span class="APPLICATION">Privoxy's</span> main <a href= + "../user-manual/config.html#ACCESS-CONTROL" target="_top">config</a> + file which means you don't have to recompile anything.</p> </div> - </body> -</html> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="installation.html" + accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + + <td width="33%" align="right" valign="top"><a href="misc.html" + accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Installation</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Miscellaneous</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/faq/contact.html b/doc/webserver/faq/contact.html index 5ae45f29..ccb3f427 100644 --- a/doc/webserver/faq/contact.html +++ b/doc/webserver/faq/contact.html @@ -1,406 +1,367 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Contacting the developers, Bug Reporting and Feature Requests - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy Frequently Asked Questions" href= - "index.html"> - <link rel="PREVIOUS" title="Troubleshooting" href="trouble.html"> - <link rel="NEXT" title="Privoxy Copyright, License and History" href= - "copyright.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Contacting the developers, Bug Reporting and Feature + Requests</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy Frequently Asked Questions" href= + "index.html"> + <link rel="PREVIOUS" title="Troubleshooting" href="trouble.html"> + <link rel="NEXT" title="Privoxy Copyright, License and History" href= + "copyright.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy Frequently Asked Questions - </th> - </tr> - <tr> - <td width="10%" align="left" valign="bottom"> - <a href="trouble.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="copyright.html" accesskey="N">Next</a> - </td> - </tr> - </table> - <hr width="100%" class="c1"> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + span.c2 {font-style: italic} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy Frequently Asked + Questions</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href="trouble.html" + accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href= + "copyright.html" accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="CONTACT" id="CONTACT">6. Contacting the + developers, Bug Reporting and Feature Requests</a></h1> + + <p>We value your feedback. In fact, we rely on it to improve <span class= + "APPLICATION">Privoxy</span> and its configuration. However, please note + the following hints, so we can provide you with the best support:</p> + + <div class="SECT2"> + <h2 class="SECT2"><a name="CONTACT-SUPPORT" id="CONTACT-SUPPORT">6.1. + Get Support</a></h2> + + <p>For casual users, our <a href= + "http://sourceforge.net/tracker/?group_id=11118&atid=211118" + target="_top">support forum at SourceForge</a> is probably best suited: + <a href= + "http://sourceforge.net/tracker/?group_id=11118&atid=211118" + target="_top">http://sourceforge.net/tracker/?group_id=11118&atid=211118</a></p> + + <p>All users are of course welcome to discuss their issues on the + <a href="http://lists.sourceforge.net/lists/listinfo/ijbswa-users" + target="_top">users mailing list</a>, where the developers also hang + around.</p> + + <p>Please don't sent private support requests to individual Privoxy + developers, either use the mailing lists or the support trackers.</p> + + <p>If you have to contact a Privoxy developer directly for other + reasons, please send a real mail and do not bother with SourceForge's + messaging system. Answers to SourceForge messages are usually bounced + by SourceForge's mail server in which case the developer wasted time + writing a response you don't get. From your point of view it will look + like your message has been completely ignored, so this is frustrating + for all parties involved.</p> + + <p>Note that the Privoxy mailing lists are moderated. Posts from + unsubscribed addresses have to be accepted manually by a moderator. + This may cause a delay of several days and if you use a subject that + doesn't clearly mention Privoxy or one of its features, your message + may be accidentally discarded as spam.</p> + + <p>If you aren't subscribed, you should therefore spend a few seconds + to come up with a proper subject. Additionally you should make it clear + that you want to get CC'd. Otherwise some responses will be directed to + the mailing list only, and you won't see them.</p> </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="CONTACT">6. Contacting the developers, Bug Reporting and - Feature Requests</a> - </h1> - <p> - We value your feedback. In fact, we rely on it to improve <span - class="APPLICATION">Privoxy</span> and its configuration. However, - please note the following hints, so we can provide you with the best - support: - </p> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="CONTACT-SUPPORT">6.1. Get Support</a> - </h2> - <p> - For casual users, our <a href= - "http://sourceforge.net/tracker/?group_id=11118&atid=211118" - target="_top">support forum at SourceForge</a> is probably best - suited: <a href= - "http://sourceforge.net/tracker/?group_id=11118&atid=211118" - target= - "_top">http://sourceforge.net/tracker/?group_id=11118&atid=211118</a> - </p> - <p> - All users are of course welcome to discuss their issues on the <a - href="http://lists.sourceforge.net/lists/listinfo/ijbswa-users" - target="_top">users mailing list</a>, where the developers also - hang around. - </p> - <p> - Please don't sent private support requests to individual Privoxy - developers, either use the mailing lists or the support trackers. - </p> - <p> - If you have to contact a Privoxy developer directly for other - reasons, please send a real mail and do not bother with - SourceForge's messaging system. Answers to SourceForge messages are - usually bounced by SourceForge's mail server in which case the - developer wasted time writing a response you don't get. From your - point of view it will look like your message has been completely - ignored, so this is frustrating for all parties involved. - </p> - <p> - Note that the Privoxy mailing lists are moderated. Posts from - unsubscribed addresses have to be accepted manually by a moderator. - This may cause a delay of several days and if you use a subject - that doesn't clearly mention Privoxy or one of its features, your - message may be accidentally discarded as spam. - </p> - <p> - If you aren't subscribed, you should therefore spend a few seconds - to come up with a proper subject. Additionally you should make it - clear that you want to get CC'd. Otherwise some responses will be - directed to the mailing list only, and you won't see them. - </p> + + <div class="SECT2"> + <h2 class="SECT2"><a name="REPORTING" id="REPORTING">6.2. Reporting + Problems</a></h2> + + <p><span class="QUOTE">"Problems"</span> for our purposes, come in two + forms:</p> + + <ul> + <li> + <p>Configuration issues, such as ads that slip through, or sites + that don't function properly due to one <span class= + "APPLICATION">Privoxy</span> <span class="QUOTE">"action"</span> or + another being turned <span class="QUOTE">"on"</span>.</p> + </li> + + <li> + <p><span class="QUOTE">"Bugs"</span> in the programming code that + makes up <span class="APPLICATION">Privoxy</span>, such as that + might cause a crash.</p> + </li> + </ul> + + <div class="SECT3"> + <h3 class="SECT3"><a name="CONTACT-ADS" id="CONTACT-ADS">6.2.1. + Reporting Ads or Other Configuration Problems</a></h3> + + <p>Please send feedback on ads that slipped through, innocent images + that were blocked, sites that don't work properly, and other + configuration related problem of <tt class= + "FILENAME">default.action</tt> file, to <a href= + "http://sourceforge.net/tracker/?group_id=11118&atid=460288" + target= + "_top">http://sourceforge.net/tracker/?group_id=11118&atid=460288</a>, + the Actions File Tracker.</p> + + <p>New, improved <tt class="FILENAME">default.action</tt> files may + occasionally be made available based on your feedback. These will be + announced on the <a href= + "http://lists.sourceforge.net/lists/listinfo/ijbswa-announce" target= + "_top">ijbswa-announce</a> list and available from our the <a href= + "http://sourceforge.net/project/showfiles.php?group_id=11118" target= + "_top">files section</a> of our <a href= + "http://sf.net/projects/ijbswa/" target="_top">project page</a>.</p> </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="REPORTING">6.2. Reporting Problems</a> - </h2> - <p> - <span class="QUOTE">"Problems"</span> for our purposes, come in two - forms: - </p> + + <div class="SECT3"> + <h3 class="SECT3"><a name="CONTACT-BUGS" id="CONTACT-BUGS">6.2.2. + Reporting Bugs</a></h3> + + <p>Please report all bugs through our bug tracker: <a href= + "http://sourceforge.net/tracker/?group_id=11118&atid=111118" + target= + "_top">http://sourceforge.net/tracker/?group_id=11118&atid=111118</a>.</p> + + <p>Before doing so, please make sure that the bug has <span class= + "emphasis EMPHASIS c2">not already been submitted</span> and observe + the additional hints at the top of the <a href= + "http://sourceforge.net/tracker/?func=add&group_id=11118&atid=111118" + target="_top">submit form</a>. If already submitted, please feel free + to add any info to the original report that might help to solve the + issue.</p> + + <p>Please try to verify that it is a <span class= + "APPLICATION">Privoxy</span> bug, and not a browser or site bug or + documented behaviour that just happens to be different than what you + expected. If unsure, try <a href= + "http://config.privoxy.org/toggle?set=disable" target="_top">toggling + off</a> <span class="APPLICATION">Privoxy</span>, and see if the + problem persists.</p> + + <p>If you are using your own custom configuration, please try the + stock configs to see if the problem is configuration related. If + you're having problems with a feature that is disabled by default, + please ask around on the mailing list if others can reproduce the + problem.</p> + + <p>If you aren't using the latest Privoxy version, the bug may have + been found and fixed in the meantime. We would appreciate if you + could take the time to <a href= + "http://www.privoxy.org/user-manual/installation.html" target= + "_top">upgrade to the latest version</a> (or even the latest CVS + snapshot) and verify that your bug still exists.</p> + + <p>Please be sure to provide the following information:</p> + <ul> <li> - <p> - Configuration issues, such as ads that slip through, or sites - that don't function properly due to one <span class= - "APPLICATION">Privoxy</span> <span class= - "QUOTE">"action"</span> or another being turned <span class= - "QUOTE">"on"</span>. - </p> + <p>The exact <span class="APPLICATION">Privoxy</span> version you + are using (if you got the source from CVS, please also provide + the source code revisions as shown in <a href= + "http://config.privoxy.org/show-version" target= + "_top">http://config.privoxy.org/show-version</a>).</p> + </li> + + <li> + <p>The operating system and versions you run <span class= + "APPLICATION">Privoxy</span> on, (e.g. <span class= + "APPLICATION">Windows XP SP2</span>), if you are using a Unix + flavor, sending the output of <span class="QUOTE">"uname + -a"</span> should do, in case of GNU/Linux, please also name the + distribution.</p> + </li> + + <li> + <p>The name, platform, and version of the <span class= + "APPLICATION">browser</span> you were using (e.g. <span class= + "APPLICATION">Internet Explorer v5.5</span> for Mac).</p> + </li> + + <li> + <p>The URL where the problem occurred, or some way for us to + duplicate the problem (e.g. <tt class= + "LITERAL">http://somesite.example.com/?somethingelse=123</tt>).</p> + </li> + + <li> + <p>Whether your version of <span class= + "APPLICATION">Privoxy</span> is one supplied by the <span class= + "APPLICATION">Privoxy</span> developers via SourceForge, or if + you got your copy somewhere else.</p> + </li> + + <li> + <p>Whether you are using <span class="APPLICATION">Privoxy</span> + in tandem with another proxy such as <span class= + "APPLICATION">Tor</span>. If so, please temporary disable the + other proxy to see if the symptoms change.</p> </li> + <li> - <p> - <span class="QUOTE">"Bugs"</span> in the programming code that - makes up <span class="APPLICATION">Privoxy</span>, such as that - might cause a crash. - </p> + <p>Whether you are using a personal firewall product. If so, does + <span class="APPLICATION">Privoxy</span> work without it?</p> + </li> + + <li> + <p>Any other pertinent information to help identify the problem + such as config or log file excerpts (yes, you should have log + file entries for each action taken). To get a meaningful logfile, + please make sure that the <a href= + "../user-manual/config.html#LOGFILE" target="_top">logfile + directive</a> is being used and the following <a href= + "../user-manual/config.html#DEBUG" target="_top">debug + options</a> are enabled:</p> + + <p class="LITERALLAYOUT"> + debug 1 # Log the destination for each request Privoxy let through. See also debug 1024.<br> + + debug 2 # show each connection status<br> + + debug 4 # show I/O status<br> + + debug 8 # show header parsing<br> + + debug 128 # debug redirects<br> + debug 256 # debug GIF de-animation<br> + + debug 512 # Common Log Format<br> + + debug 1024 # Log the destination for requests Privoxy didn't let through, and the reason why.<br> + + debug 4096 # Startup banner and warnings.<br> + + debug 8192 # Non-fatal errors</p>If you + are having trouble with a filter, please additionally enable + + <p class="LITERALLAYOUT"> + debug 64 # debug regular expression filters</p>If + you are using Privoxy 3.0.17 or later and suspect that it + interprets the request or the response incorrectly, please enable + + <p class="LITERALLAYOUT"> + debug 32768 # log all data read from the network</p>Note + that Privoxy log files may contain sensitive information so + please don't submit any logfiles you didn't read first. You can + mask sensitive information as long as it's clear that you removed + something. </li> </ul> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="CONTACT-ADS">6.2.1. Reporting Ads or Other Configuration - Problems</a> - </h3> - <p> - Please send feedback on ads that slipped through, innocent images - that were blocked, sites that don't work properly, and other - configuration related problem of <tt class= - "FILENAME">default.action</tt> file, to <a href= - "http://sourceforge.net/tracker/?group_id=11118&atid=460288" - target= - "_top">http://sourceforge.net/tracker/?group_id=11118&atid=460288</a>, - the Actions File Tracker. - </p> - <p> - New, improved <tt class="FILENAME">default.action</tt> files may - occasionally be made available based on your feedback. These will - be announced on the <a href= - "http://lists.sourceforge.net/lists/listinfo/ijbswa-announce" - target="_top">ijbswa-announce</a> list and available from our the - <a href= - "http://sourceforge.net/project/showfiles.php?group_id=11118" - target="_top">files section</a> of our <a href= - "http://sf.net/projects/ijbswa/" target="_top">project page</a>. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="CONTACT-BUGS">6.2.2. Reporting Bugs</a> - </h3> - <p> - Please report all bugs through our bug tracker: <a href= - "http://sourceforge.net/tracker/?group_id=11118&atid=111118" - target= - "_top">http://sourceforge.net/tracker/?group_id=11118&atid=111118</a>. - </p> - <p> - Before doing so, please make sure that the bug has <span class= - "emphasis"><i class="EMPHASIS">not already been - submitted</i></span> and observe the additional hints at the top - of the <a href= - "http://sourceforge.net/tracker/?func=add&group_id=11118&atid=111118" - target="_top">submit form</a>. If already submitted, please feel - free to add any info to the original report that might help to - solve the issue. - </p> - <p> - Please try to verify that it is a <span class= - "APPLICATION">Privoxy</span> bug, and not a browser or site bug - or documented behaviour that just happens to be different than - what you expected. If unsure, try <a href= - "http://config.privoxy.org/toggle?set=disable" target= - "_top">toggling off</a> <span class="APPLICATION">Privoxy</span>, - and see if the problem persists. - </p> - <p> - If you are using your own custom configuration, please try the - stock configs to see if the problem is configuration related. If - you're having problems with a feature that is disabled by - default, please ask around on the mailing list if others can - reproduce the problem. - </p> - <p> - If you aren't using the latest Privoxy version, the bug may have - been found and fixed in the meantime. We would appreciate if you - could take the time to <a href= - "http://www.privoxy.org/user-manual/installation.html" target= - "_top">upgrade to the latest version</a> (or even the latest CVS - snapshot) and verify that your bug still exists. - </p> - <p> - Please be sure to provide the following information: - </p> - <p> - </p> - <ul> - <li> - <p> - The exact <span class="APPLICATION">Privoxy</span> version - you are using (if you got the source from CVS, please also - provide the source code revisions as shown in <a href= - "http://config.privoxy.org/show-version" target= - "_top">http://config.privoxy.org/show-version</a>). - </p> - </li> - <li> - <p> - The operating system and versions you run <span class= - "APPLICATION">Privoxy</span> on, (e.g. <span class= - "APPLICATION">Windows XP SP2</span>), if you are using a Unix - flavor, sending the output of <span class="QUOTE">"uname - -a"</span> should do, in case of GNU/Linux, please also name - the distribution. - </p> - </li> - <li> - <p> - The name, platform, and version of the <span class= - "APPLICATION">browser</span> you were using (e.g. <span - class="APPLICATION">Internet Explorer v5.5</span> for Mac). - </p> - </li> - <li> - <p> - The URL where the problem occurred, or some way for us to - duplicate the problem (e.g. <tt class= - "LITERAL">http://somesite.example.com/?somethingelse=123</tt>). - </p> - </li> - <li> - <p> - Whether your version of <span class= - "APPLICATION">Privoxy</span> is one supplied by the <span - class="APPLICATION">Privoxy</span> developers via - SourceForge, or if you got your copy somewhere else. - </p> - </li> - <li> - <p> - Whether you are using <span class= - "APPLICATION">Privoxy</span> in tandem with another proxy - such as <span class="APPLICATION">Tor</span>. If so, please - temporary disable the other proxy to see if the symptoms - change. - </p> - </li> - <li> - <p> - Whether you are using a personal firewall product. If so, - does <span class="APPLICATION">Privoxy</span> work without - it? - </p> - </li> - <li> - <p> - Any other pertinent information to help identify the problem - such as config or log file excerpts (yes, you should have log - file entries for each action taken). To get a meaningful - logfile, please make sure that the <a href= - "../user-manual/config.html#LOGFILE" target="_top">logfile - directive</a> is being used and the following <a href= - "../user-manual/config.html#DEBUG" target="_top">debug - options</a> are enabled: - </p> - <p class="LITERALLAYOUT"> - debug 1 # Log the destination for each request Privoxy let through. See also debug 1024.<br> - - debug 2 # show each connection status<br> - - debug 4 # show I/O status<br> - - debug 8 # show header parsing<br> - - debug 128 # debug redirects<br> - - debug 256 # debug GIF de-animation<br> - - debug 512 # Common Log Format<br> - - debug 1024 # Log the destination for requests Privoxy didn't let through, and the reason why.<br> - - debug 4096 # Startup banner and warnings.<br> - - debug 8192 # Non-fatal errors - </p> - If you are having trouble with a filter, please additionally - enable - <p class="LITERALLAYOUT"> - debug 64 # debug regular expression filters - </p> - If you are using Privoxy 3.0.17 or later and suspect that it - interprets the request or the response incorrectly, please - enable - <p class="LITERALLAYOUT"> - debug 32768 # log all data read from the network - </p> - Note that Privoxy log files may contain sensitive information - so please don't submit any logfiles you didn't read first. You - can mask sensitive information as long as it's clear that you - removed something.<br> - </li> - </ul> - - <p> - You don't have to tell us your actual name when filing a problem - report, but if you don't, please use a nickname so we can - differentiate between your messages and the ones entered by other - "anonymous" users that may respond to your request if they have - the same problem or already found a solution. Note that due to - spam the trackers may not always allow to post without being - logged into SourceForge. If that's the case, you are still free - to create a login that isn't directly linked to your name, - though. - </p> - <p> - Please also check the status of your request a few days after - submitting it, as we may request additional information. If you - use a SF id, you should automatically get a mail when someone - responds to your request. Please don't bother to add an email - address when using the tracker. If you prefer to communicate - through email, just use one of the mailing lists directly. - </p> - <p> - The <a href= - "http://www.privoxy.org/user-manual/appendix.html#ACTIONSANAT" - target="_top">appendix of the Privoxy User Manual</a> also has - helpful information on understanding <tt class= - "LITERAL">actions</tt>, and <tt class="LITERAL">action</tt> - debugging. - </p> - </div> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="CONTACT-FEATURE">6.3. Request New Features</a> - </h2> - <p> - You are welcome to submit ideas on new features or other proposals - for improvement through our feature request tracker at <a href= - "http://sourceforge.net/tracker/?atid=361118&group_id=11118" - target= - "_top">http://sourceforge.net/tracker/?atid=361118&group_id=11118</a>. - </p> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="MAILING-LISTS">6.4. Mailing Lists</a> - </h2> - <p> - If you prefer to communicate through email, instead of using a web - interface, feel free to use one of the mailing lists. To discuss - issues that haven't been completely diagnosed yet, please use the - Privoxy users list. Technically interested users and people who - wish to contribute to the project are always welcome on the - developers list. You can find an overview of all <span class= - "APPLICATION">Privoxy</span>-related mailing lists, including list - archives, at: <a href="http://sourceforge.net/mail/?group_id=11118" - target="_top">http://sourceforge.net/mail/?group_id=11118</a>. - </p> + + <p>You don't have to tell us your actual name when filing a problem + report, but if you don't, please use a nickname so we can + differentiate between your messages and the ones entered by other + "anonymous" users that may respond to your request if they have the + same problem or already found a solution. Note that due to spam the + trackers may not always allow to post without being logged into + SourceForge. If that's the case, you are still free to create a login + that isn't directly linked to your name, though.</p> + + <p>Please also check the status of your request a few days after + submitting it, as we may request additional information. If you use a + SF id, you should automatically get a mail when someone responds to + your request. Please don't bother to add an email address when using + the tracker. If you prefer to communicate through email, just use one + of the mailing lists directly.</p> + + <p>If you are new to reporting problems, you might be interested in + <a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html" + target="_top">How to Report Bugs Effectively</a>.</p> + + <p>If you are new to reporting problems, you might be interested in + <a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html" + target="_top">How to Report Bugs Effectively</a>.</p> + + <p>The <a href= + "http://www.privoxy.org/user-manual/appendix.html#ACTIONSANAT" + target="_top">appendix of the Privoxy User Manual</a> also has + helpful information on understanding <tt class= + "LITERAL">actions</tt>, and <tt class="LITERAL">action</tt> + debugging.</p> </div> </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="trouble.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="copyright.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - Troubleshooting - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Privoxy Copyright, License and History - </td> - </tr> - </table> + + <div class="SECT2"> + <h2 class="SECT2"><a name="CONTACT-FEATURE" id="CONTACT-FEATURE">6.3. + Request New Features</a></h2> + + <p>You are welcome to submit ideas on new features or other proposals + for improvement through our feature request tracker at <a href= + "http://sourceforge.net/tracker/?atid=361118&group_id=11118" + target="_top">http://sourceforge.net/tracker/?atid=361118&group_id=11118</a>.</p> </div> - </body> -</html> + <div class="SECT2"> + <h2 class="SECT2"><a name="MAILING-LISTS" id="MAILING-LISTS">6.4. + Mailing Lists</a></h2> + + <p>If you prefer to communicate through email, instead of using a web + interface, feel free to use one of the mailing lists. To discuss issues + that haven't been completely diagnosed yet, please use the Privoxy + users list. Technically interested users and people who wish to + contribute to the project are always welcome on the developers list. + You can find an overview of all <span class= + "APPLICATION">Privoxy</span>-related mailing lists, including list + archives, at: <a href="http://sourceforge.net/mail/?group_id=11118" + target="_top">http://sourceforge.net/mail/?group_id=11118</a>.</p> + </div> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="trouble.html" + accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + + <td width="33%" align="right" valign="top"><a href="copyright.html" + accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Troubleshooting</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Privoxy Copyright, License + and History</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/faq/copyright.html b/doc/webserver/faq/copyright.html index c0710630..5e0eec56 100644 --- a/doc/webserver/faq/copyright.html +++ b/doc/webserver/faq/copyright.html @@ -1,182 +1,165 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Privoxy Copyright, License and History - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy Frequently Asked Questions" href= - "index.html"> - <link rel="PREVIOUS" title= - "Contacting the developers, Bug Reporting and Feature Requests" href= - "contact.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Privoxy Copyright, License and History</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy Frequently Asked Questions" href= + "index.html"> + <link rel="PREVIOUS" title= + "Contacting the developers, Bug Reporting and Feature Requests" href= + "contact.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy Frequently Asked Questions - </th> - </tr> - <tr> - <td width="10%" align="left" valign="bottom"> - <a href="contact.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - - </td> - </tr> - </table> - <hr width="100%" class="c1"> - </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="COPYRIGHT">7. Privoxy Copyright, License and History</a> - </h1> - <p> - Copyright © 2001-2011 by Privoxy Developers <code class= - "EMAIL"><<a href= - "mailto:ijbswa-developers@lists.sourceforge.net">ijbswa-developers@lists.sourceforge.net</a>></code> - </p> - <p> - Some source code is based on code Copyright © 1997 by Anonymous - Coders and Junkbusters, Inc. and licensed under the <i class= - "CITETITLE">GNU General Public License</i>. - </p> - <p> - Portions of this document are <span class="QUOTE">"borrowed"</span> - from the original <span class="APPLICATION">Junkbuster</span> (tm) - FAQ, and modified as appropriate for <span class= - "APPLICATION">Privoxy</span>. - </p> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="AEN1464">7.1. License</a> - </h2> - <p> - <span class="APPLICATION">Privoxy</span> is free software; you can - redistribute it and/or modify it under the terms of the <i class= - "CITETITLE">GNU General Public License</i>, version 2, as published - by the Free Software Foundation. - </p> - <p> - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the <a - href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" - target="_top"><i class="CITETITLE">GNU General Public - License</i></a> for details. - </p> - <p> - You should have received a copy of the <i class="CITETITLE">GNU - GPL</i> along with this program; if not, write to the - </p> - <p class="ADDRESS"> - Free Software<br> - Foundation, Inc. <span class="STREET">51 Franklin - Street, Fifth Floor</span><br> - <span class="CITY">Boston</span>, <span class= - "STATE">MA</span> <span class="POSTCODE">02110-1301</span><br> - <span class="COUNTRY">USA</span> - </p> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="AEN1480">7.2. History</a> - </h2> - <p> - A long time ago, there was the <a href= - "http://www.junkbusters.com/ijb.html" target="_top"><span class= - "APPLICATION">Internet Junkbuster</span></a>, by Anonymous Coders - and <a href="http://www.junkbusters.com/" target="_top">Junkbusters - Corporation</a>. This saved many users a lot of pain in the early - days of web advertising and user tracking. - </p> - <p> - But the web, its protocols and standards, and with it, the - techniques for forcing ads on users, give up autonomy over their - browsing, and for tracking them, keeps evolving. Unfortunately, the - <span class="APPLICATION">Internet Junkbuster</span> did not. - Version 2.0.2, published in 1998, was (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>. Fortunately, it had been released under the GNU <a - href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" - target="_top">GPL</a>, which allowed further development by others. - </p> - <p> - So Stefan Waldherr started maintaining an improved version of the - software, to which eventually a number of people contributed - patches. It could already replace banners with a transparent image, - and had a first version of pop-up killing, but it was still very - closely based on the original, with all its limitations, such as - the lack of HTTP/1.1 support, flexible per-site configuration, or - content modification. The last release from this effort was version - 2.0.2-10, published in 2000. - </p> - <p> - Then, some <a href= - "http://www.privoxy.org/user-manual/copyright.html#AUTHORS" target= - "_top">developers</a> picked up the thread, and started turning the - software inside out, upside down, and then reassembled it, adding - many <a href= - "http://www.privoxy.org/user-manual/introduction.html#FEATURES" - target="_top">new features</a> along the way. - </p> - <p> - The result of this is <span class="APPLICATION">Privoxy</span>, - whose first stable version, 3.0, was released August, 2002. - </p> - </div> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + a.c2 {font-style: italic} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy Frequently Asked + Questions</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href="contact.html" + accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"> </td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="COPYRIGHT" id="COPYRIGHT">7. Privoxy + Copyright, License and History</a></h1> + + <p>Copyright © 2001-2011 by Privoxy Developers <code class= + "EMAIL"><<a href= + "mailto:ijbswa-developers@lists.sourceforge.net">ijbswa-developers@lists.sourceforge.net</a>></code></p> + + <p>Some source code is based on code Copyright © 1997 by Anonymous + Coders and Junkbusters, Inc. and licensed under the <i class= + "CITETITLE">GNU General Public License</i>.</p> + + <p>Portions of this document are <span class="QUOTE">"borrowed"</span> + from the original <span class="APPLICATION">Junkbuster</span> (tm) FAQ, + and modified as appropriate for <span class= + "APPLICATION">Privoxy</span>.</p> + + <div class="SECT2"> + <h2 class="SECT2"><a name="AEN1477" id="AEN1477">7.1. License</a></h2> + + <p><span class="APPLICATION">Privoxy</span> is free software; you can + redistribute it and/or modify it under the terms of the <i class= + "CITETITLE">GNU General Public License</i>, version 2, as published by + the Free Software Foundation.</p> + + <p>This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the <a class= + "CITETITLE c2" href= + "http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" target= + "_top">GNU General Public License</a> for details.</p> + + <p>You should have received a copy of the <i class="CITETITLE">GNU + GPL</i> along with this program; if not, write to the</p> + + <p class="ADDRESS"> Free Software<br> + Foundation, Inc. <span class="STREET">51 Franklin + Street, Fifth Floor</span><br> + <span class="CITY">Boston</span>, <span class= + "STATE">MA</span> <span class="POSTCODE">02110-1301</span><br> + <span class="COUNTRY">USA</span> </p> </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="contact.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - Contacting the developers, Bug Reporting and Feature Requests - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - - </td> - </tr> - </table> + + <div class="SECT2"> + <h2 class="SECT2"><a name="AEN1493" id="AEN1493">7.2. History</a></h2> + + <p>A long time ago, there was the <a href= + "http://www.junkbusters.com/ijb.html" target="_top"><span class= + "APPLICATION">Internet Junkbuster</span></a>, by Anonymous Coders and + <a href="http://www.junkbusters.com/" target="_top">Junkbusters + Corporation</a>. This saved many users a lot of pain in the early days + of web advertising and user tracking.</p> + + <p>But the web, its protocols and standards, and with it, the + techniques for forcing ads on users, give up autonomy over their + browsing, and for tracking them, keeps evolving. Unfortunately, the + <span class="APPLICATION">Internet Junkbuster</span> did not. Version + 2.0.2, published in 1998, was (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>. Fortunately, it had been + released under the GNU <a href= + "http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" target= + "_top">GPL</a>, which allowed further development by others.</p> + + <p>So Stefan Waldherr started maintaining an improved version of the + software, to which eventually a number of people contributed patches. + It could already replace banners with a transparent image, and had a + first version of pop-up killing, but it was still very closely based on + the original, with all its limitations, such as the lack of HTTP/1.1 + support, flexible per-site configuration, or content modification. The + last release from this effort was version 2.0.2-10, published in + 2000.</p> + + <p>Then, some <a href= + "http://www.privoxy.org/user-manual/copyright.html#AUTHORS" target= + "_top">developers</a> picked up the thread, and started turning the + software inside out, upside down, and then reassembled it, adding many + <a href="http://www.privoxy.org/user-manual/introduction.html#FEATURES" + target="_top">new features</a> along the way.</p> + + <p>The result of this is <span class="APPLICATION">Privoxy</span>, + whose first stable version, 3.0, was released August, 2002.</p> </div> - </body> -</html> + </div> + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="contact.html" + accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + + <td width="33%" align="right" valign="top"> </td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Contacting the developers, + Bug Reporting and Feature Requests</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top"> </td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/faq/general.html b/doc/webserver/faq/general.html index 24a54427..3fb3b53a 100644 --- a/doc/webserver/faq/general.html +++ b/doc/webserver/faq/general.html @@ -1,685 +1,614 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - General Information - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy Frequently Asked Questions" href= - "index.html"> - <link rel="PREVIOUS" title="Privoxy Frequently Asked Questions" href= - "index.html"> - <link rel="NEXT" title="Installation" href="installation.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>General Information</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy Frequently Asked Questions" href= + "index.html"> + <link rel="PREVIOUS" title="Privoxy Frequently Asked Questions" href= + "index.html"> + <link rel="NEXT" title="Installation" href="installation.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy Frequently Asked Questions - </th> - </tr> - <tr> - <td width="10%" align="left" valign="bottom"> - <a href="index.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="installation.html" accesskey="N">Next</a> - </td> - </tr> - </table> - <hr width="100%" class="c1"> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + span.c2 {font-style: italic} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy Frequently Asked + Questions</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href="index.html" + accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href= + "installation.html" accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="GENERAL" id="GENERAL">1. General + Information</a></h1> + + <div class="SECT2"> + <h3 class="SECT2"><a name="WHO-USES" id="WHO-USES">1.1. Who should give + <span class="APPLICATION">Privoxy</span> a try?</a></h3> + + <p>Anyone who is interested in security, privacy, or in finer-grained + control over their web and Internet experience.</p> </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="GENERAL">1. General Information</a> - </h1> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="WHO-USES">1.1. Who should give <span class= - "APPLICATION">Privoxy</span> a try?</a> - </h3> - <p> - Anyone who is interested in security, privacy, or in finer-grained - control over their web and Internet experience. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="BESTCHOICE">1.2. Is Privoxy the best choice for me?</a> - </h3> - <p> - <span class="APPLICATION">Privoxy</span> is certainly a good - choice, especially for those who want more control and security. - Those with the willingness to read the documentation and the - ability to fine-tune their installation will benefit the most. - </p> - <p> - One of <span class="APPLICATION">Privoxy's</span> strengths is that - it is highly configurable giving you the ability to completely - personalize your installation. Being familiar with, or at least - having an interest in learning about <a href= - "http://en.wikipedia.org/wiki/Http" target="_top">HTTP</a> and - other networking protocols, <a href= - "http://en.wikipedia.org/wiki/Html" target="_top">HTML</a>, and <a - href="http://en.wikipedia.org/wiki/Regular_expressions" target= - "_top"><span class="QUOTE">"Regular Expressions"</span></a> will be - a big plus and will help you get the most out of <span class= - "APPLICATION">Privoxy</span>. A new installation just includes a - very basic configuration. The user should take this as a starting - point only, and enhance it as he or she sees fit. In fact, the user - is encouraged, and expected to, fine-tune the configuration. - </p> - <p> - Much of <span class="APPLICATION">Privoxy's</span> configuration - can be done with a <a href= - "http://en.wikipedia.org/wiki/Web_browser" target="_top">Web - browser</a>. But there are areas where configuration is done using - a <a href="http://en.wikipedia.org/wiki/Text_editors" target= - "_top">text editor</a> to edit configuration files. Also note that - the web-based action editor doesn't use authentication and should - only be enabled in environments where all clients with access to - <span class="APPLICATION">Privoxy</span> listening port can be - trusted. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="PROXYMORON">1.3. What is a <span class= - "QUOTE">"proxy"</span>? How does Privoxy work?</a> - </h3> - <p> - A <a href="http://en.wikipedia.org/wiki/Proxy_server" target= - "_top">web proxy</a> is a service, based on a software such as - <span class="APPLICATION">Privoxy</span>, that clients (i.e. - browsers) can use instead of connecting to web servers directly. - The clients then ask the proxy to request objects (web pages, - images, movies etc) on their behalf and to forward the data to the - clients. It is a <span class="QUOTE">"go-between"</span>. For - details, see <a href="http://en.wikipedia.org/wiki/Proxy_server" - target="_top">Wikipedia's proxy definition</a>. - </p> - <p> - There are many reasons to use web proxies, such as security - (firewalling), efficiency (caching) and others, and there are any - number of proxies to accommodate those needs. - </p> - <p> - <span class="APPLICATION">Privoxy</span> is a proxy that is - primarily focused on privacy enhancement, ad and junk elimination - and freeing the user from restrictions placed on his activities. - Sitting between your browser(s) and the Internet, it is in a - perfect position to filter outbound personal information that your - browser is leaking, as well as inbound junk. It uses a variety of - techniques to do this, all of which are under your complete control - via the various configuration files and options. Being a proxy also - makes it easier to share configurations among multiple browsers - and/or users. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="OTHERSTUFF">1.4. Does Privoxy do anything more than ad - blocking?</a> - </h3> - <p> - Yes, ad blocking is but one possible use. There are many, many ways - <span class="APPLICATION">Privoxy</span> can be used to sanitize - and customize web browsing. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="NEWJB">1.5. What is this new version of <span class= - "QUOTE">"Junkbuster"</span>?</a> - </h3> - <p> - A long time ago, there was the <a href= - "http://www.junkbusters.com/ijb.html" target="_top"><span class= - "APPLICATION">Internet Junkbuster</span></a>, by Anonymous Coders - and <a href="http://www.junkbusters.com/" target="_top">Junkbusters - Corporation</a>. This saved many users a lot of pain in the early - days of web advertising and user tracking. - </p> - <p> - But the web, its protocols and standards, and with it, the - techniques for forcing ads on users, give up autonomy over their - browsing, and for tracking them, keeps evolving. Unfortunately, the - <span class="APPLICATION">Internet Junkbuster</span> did not. - Version 2.0.2, published in 1998, was (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>. Fortunately, it had been released under the GNU <a - href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" - target="_top">GPL</a>, which allowed further development by others. - </p> - <p> - So Stefan Waldherr started maintaining an improved version of the - software, to which eventually a number of people contributed - patches. It could already replace banners with a transparent image, - and had a first version of pop-up killing, but it was still very - closely based on the original, with all its limitations, such as - the lack of HTTP/1.1 support, flexible per-site configuration, or - content modification. The last release from this effort was version - 2.0.2-10, published in 2000. - </p> - <p> - Then, some <a href= - "http://www.privoxy.org/user-manual/copyright.html#AUTHORS" target= - "_top">developers</a> picked up the thread, and started turning the - software inside out, upside down, and then reassembled it, adding - many <a href= - "http://www.privoxy.org/user-manual/introduction.html#FEATURES" - target="_top">new features</a> along the way. - </p> - <p> - The result of this is <span class="APPLICATION">Privoxy</span>, - whose first stable version, 3.0, was released August, 2002. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="AEN85">1.6. Why <span class="QUOTE">"Privoxy"</span>? Why - change the name from Junkbuster at all?</a> - </h3> - <p> - Though outdated, <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 our use of the - <span class="APPLICATION">Junkbuster</span> name, which is a - registered trademark of <a href="http://junkbusters.com/" target= - "_top">Junkbusters Corporation</a>. 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> - <p> - The developers also believed that there are so many improvements - over the original code, that it was time to make a clean break from - the past and make a name in their own right. - </p> - <p> - <span class="APPLICATION">Privoxy</span> is the <span class= - "QUOTE">"<span class="emphasis"><i class="EMPHASIS">Privacy - Enhancing Proxy</i></span>"</span>. Also, its content modification - and junk suppression gives <span class="emphasis"><i class= - "EMPHASIS">you</i></span>, the user, more control, more freedom, - and allows you to browse your personal and <span class= - "QUOTE">"<span class="emphasis"><i class= - "EMPHASIS">private</i></span> edition"</span> of the web. - </p> + + <div class="SECT2"> + <h3 class="SECT2"><a name="BESTCHOICE" id="BESTCHOICE">1.2. Is Privoxy + the best choice for me?</a></h3> + + <p><span class="APPLICATION">Privoxy</span> is certainly a good choice, + especially for those who want more control and security. Those with the + willingness to read the documentation and the ability to fine-tune + their installation will benefit the most.</p> + + <p>One of <span class="APPLICATION">Privoxy's</span> strengths is that + it is highly configurable giving you the ability to completely + personalize your installation. Being familiar with, or at least having + an interest in learning about <a href= + "http://en.wikipedia.org/wiki/Http" target="_top">HTTP</a> and other + networking protocols, <a href="http://en.wikipedia.org/wiki/Html" + target="_top">HTML</a>, and <a href= + "http://en.wikipedia.org/wiki/Regular_expressions" target= + "_top"><span class="QUOTE">"Regular Expressions"</span></a> will be a + big plus and will help you get the most out of <span class= + "APPLICATION">Privoxy</span>. A new installation just includes a very + basic configuration. The user should take this as a starting point + only, and enhance it as he or she sees fit. In fact, the user is + encouraged, and expected to, fine-tune the configuration.</p> + + <p>Much of <span class="APPLICATION">Privoxy's</span> configuration can + be done with a <a href="http://en.wikipedia.org/wiki/Web_browser" + target="_top">Web browser</a>. But there are areas where configuration + is done using a <a href="http://en.wikipedia.org/wiki/Text_editors" + target="_top">text editor</a> to edit configuration files. Also note + that the web-based action editor doesn't use authentication and should + only be enabled in environments where all clients with access to + <span class="APPLICATION">Privoxy</span> listening port can be + trusted.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="PROXYMORON" id="PROXYMORON">1.3. What is a + <span class="QUOTE">"proxy"</span>? How does Privoxy work?</a></h3> + + <p>A <a href="http://en.wikipedia.org/wiki/Proxy_server" target= + "_top">web proxy</a> is a service, based on a software such as + <span class="APPLICATION">Privoxy</span>, that clients (i.e. browsers) + can use instead of connecting to web servers directly. The clients then + ask the proxy to request objects (web pages, images, movies etc) on + their behalf and to forward the data to the clients. It is a + <span class="QUOTE">"go-between"</span>. For details, see <a href= + "http://en.wikipedia.org/wiki/Proxy_server" target="_top">Wikipedia's + proxy definition</a>.</p> + + <p>There are many reasons to use web proxies, such as security + (firewalling), efficiency (caching) and others, and there are any + number of proxies to accommodate those needs.</p> + + <p><span class="APPLICATION">Privoxy</span> is a proxy that is + primarily focused on privacy enhancement, ad and junk elimination and + freeing the user from restrictions placed on his activities. Sitting + between your browser(s) and the Internet, it is in a perfect position + to filter outbound personal information that your browser is leaking, + as well as inbound junk. It uses a variety of techniques to do this, + all of which are under your complete control via the various + configuration files and options. Being a proxy also makes it easier to + share configurations among multiple browsers and/or users.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="OTHERSTUFF" id="OTHERSTUFF">1.4. Does + Privoxy do anything more than ad blocking?</a></h3> + + <p>Yes, ad blocking is but one possible use. There are many, many ways + <span class="APPLICATION">Privoxy</span> can be used to sanitize and + customize web browsing.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="NEWJB" id="NEWJB">1.5. What is this new + version of <span class="QUOTE">"Junkbuster"</span>?</a></h3> + + <p>A long time ago, there was the <a href= + "http://www.junkbusters.com/ijb.html" target="_top"><span class= + "APPLICATION">Internet Junkbuster</span></a>, by Anonymous Coders and + <a href="http://www.junkbusters.com/" target="_top">Junkbusters + Corporation</a>. This saved many users a lot of pain in the early days + of web advertising and user tracking.</p> + + <p>But the web, its protocols and standards, and with it, the + techniques for forcing ads on users, give up autonomy over their + browsing, and for tracking them, keeps evolving. Unfortunately, the + <span class="APPLICATION">Internet Junkbuster</span> did not. Version + 2.0.2, published in 1998, was (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>. Fortunately, it had been + released under the GNU <a href= + "http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" target= + "_top">GPL</a>, which allowed further development by others.</p> + + <p>So Stefan Waldherr started maintaining an improved version of the + software, to which eventually a number of people contributed patches. + It could already replace banners with a transparent image, and had a + first version of pop-up killing, but it was still very closely based on + the original, with all its limitations, such as the lack of HTTP/1.1 + support, flexible per-site configuration, or content modification. The + last release from this effort was version 2.0.2-10, published in + 2000.</p> + + <p>Then, some <a href= + "http://www.privoxy.org/user-manual/copyright.html#AUTHORS" target= + "_top">developers</a> picked up the thread, and started turning the + software inside out, upside down, and then reassembled it, adding many + <a href="http://www.privoxy.org/user-manual/introduction.html#FEATURES" + target="_top">new features</a> along the way.</p> + + <p>The result of this is <span class="APPLICATION">Privoxy</span>, + whose first stable version, 3.0, was released August, 2002.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="AEN85" id="AEN85">1.6. Why <span class= + "QUOTE">"Privoxy"</span>? Why change the name from Junkbuster at + all?</a></h3> + + <p>Though outdated, <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 our use of the + <span class="APPLICATION">Junkbuster</span> name, which is a registered + trademark of <a href="http://junkbusters.com/" target= + "_top">Junkbusters Corporation</a>. 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> + + <p>The developers also believed that there are so many improvements + over the original code, that it was time to make a clean break from the + past and make a name in their own right.</p> + + <p><span class="APPLICATION">Privoxy</span> is the <span class= + "QUOTE">"<span class="emphasis EMPHASIS c2">Privacy Enhancing + Proxy</span>"</span>. Also, its content modification and junk + suppression gives <span class="emphasis EMPHASIS c2">you</span>, the + user, more control, more freedom, and allows you to browse your + personal and <span class="QUOTE">"<span class= + "emphasis EMPHASIS c2">private</span> edition"</span> of the web.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="DIFFERS" id="DIFFERS">1.7. How does Privoxy + differ from the old Junkbuster?</a></h3> + + <p><span class="APPLICATION">Privoxy</span> picks up where <span class= + "APPLICATION">Junkbuster</span> left off. The new <span class= + "APPLICATION">Privoxy</span> still blocks ads and banners, still + manages <a href="http://en.wikipedia.org/wiki/Browser_cookie" target= + "_top">cookies</a>, and still helps protect your privacy. But, most of + these features have been enhanced, and many new ones have been added, + all in the same vein.</p> + + <p><span class="APPLICATION">Privoxy</span>'s new features include:</p> + + <ul> + <li> + <p>Supports "Connection: keep-alive". Outgoing connections can be + kept alive independently from the client.</p> + </li> + + <li> + <p>Supports IPv6, provided the operating system does so too, and + the configure script detects it.</p> + </li> + + <li> + <p>Supports tagging which allows to change the behaviour based on + client and server headers.</p> + </li> + + <li> + <p>Can be run as an "intercepting" proxy, which obviates the need + to configure browsers individually.</p> + </li> + + <li> + <p>Sophisticated actions and filters for manipulating both server + and client headers.</p> + </li> + + <li> + <p>Can be chained with other proxies.</p> + </li> + + <li> + <p>Integrated browser-based configuration and control utility at + <a href="http://config.privoxy.org/" target= + "_top">http://config.privoxy.org/</a> (shortcut: <a href= + "http://p.p/" target="_top">http://p.p/</a>). Browser-based tracing + of rule and filter effects. Remote toggling.</p> + </li> + + <li> + <p>Web page filtering (text replacements, removes banners based on + size, invisible <span class="QUOTE">"web-bugs"</span> and HTML + annoyances, etc.)</p> + </li> + + <li> + <p>Modularized configuration that allows for standard settings and + user settings to reside in separate files, so that installing + updated actions files won't overwrite individual user settings.</p> + </li> + + <li> + <p>Support for Perl Compatible Regular Expressions in the + configuration files, and a more sophisticated and flexible + configuration syntax.</p> + </li> + + <li> + <p>GIF de-animation.</p> + </li> + + <li> + <p>Bypass many click-tracking scripts (avoids script + redirection).</p> + </li> + + <li> + <p>User-customizable HTML templates for most proxy-generated pages + (e.g. "blocked" page).</p> + </li> + + <li> + <p>Auto-detection and re-reading of config file changes.</p> + </li> + + <li> + <p>Most features are controllable on a per-site or per-location + basis.</p> + </li> + + <li> + <p>Many smaller new features added, limitations and bugs + removed.</p> + </li> + </ul> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="WHATSANAD" id="WHATSANAD">1.8. How does + Privoxy know what is an ad, and what is not?</a></h3> + + <p><span class="APPLICATION">Privoxy</span>'s approach to blocking ads + is twofold:</p> + + <p>First, there are certain patterns in the <span class= + "emphasis EMPHASIS c2">locations</span> (URLs) of banner images. This + applies to both the path (you wouldn't guess how many web sites serve + their banners from a directory called <span class= + "QUOTE">"banners"</span>!) and the host (blocking the big banner + hosting services like doublecklick.net already helps a lot). + <span class="APPLICATION">Privoxy</span> takes advantage of this fact + by using <a href="../user-manual/actions-file.html#AF-PATTERNS" target= + "_top">URL patterns</a> to sort out and block the requests for things + that sound like they would be ads or banners.</p> + + <p>Second, banners tend to come in certain <span class= + "emphasis EMPHASIS c2">sizes</span>. But you can't tell the size of an + image by its URL without downloading it, and if you do, it's too late + to save bandwidth. Therefore, <span class="APPLICATION">Privoxy</span> + also inspects the HTML sources of web pages while they are loaded, and + replaces references to images with standard banner sizes by dummy + references, so that your browser doesn't request them anymore in the + first place.</p> + + <p>Both of this involves a certain amount of guesswork and is, of + course, freely and readily configurable.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="AEN163" id="AEN163">1.9. Can Privoxy make + mistakes? This does not sound very scientific.</a></h3> + + <p>Actually, it's a black art ;-) And yes, it is always possible to + have a broad rule accidentally block or change something by mistake. + You will almost surely run into such situations at some point. It is + tricky writing rules to cover every conceivable possibility, and not + occasionally get false positives.</p> + + <p>But this should not be a big concern since the <span class= + "APPLICATION">Privoxy</span> configuration is very flexible, and + includes tools to help identify these types of situations so they can + be addressed as needed, allowing you to customize your installation. + (<a href="trouble.html#BADSITE">See the Troubleshooting section + below</a>.)</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="AEN169" id="AEN169">1.10. Will I have to + configure Privoxy before I can use it?</a></h3> + + <p>That depends on your expectations. The default installation should + give you a good starting point, and block <span class= + "emphasis EMPHASIS c2">most</span> ads and unwanted content, but many + of the more advanced features are off by default, and require you to + activate them.</p> + + <p>You do have to set up your browser to use <span class= + "APPLICATION">Privoxy</span> (see the <a href= + "installation.html#FIRSTSTEP">Installation section below</a>).</p> + + <p>And you will certainly run into situations where there are false + positives, or ads not being blocked that you may not want to see. In + these cases, you would certainly benefit by customizing <span class= + "APPLICATION">Privoxy's</span> configuration to more closely match your + individual situation. And we encourage you to do this. This is where + the real power of <span class="APPLICATION">Privoxy</span> lies!</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="LAN" id="LAN">1.11. Can Privoxy run as a + server on a network?</a></h3> + + <p>Yes, <span class="APPLICATION">Privoxy</span> runs as a server + already, and can easily be configured to <span class= + "QUOTE">"serve"</span> more than one client. See <a href= + "configuration.html#LANCONFIG">How can I set up Privoxy to act as a + proxy for my LAN</a> below.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="BROWSERS2" id="BROWSERS2">1.12. My browser + does the same things as Privoxy. Why should I use Privoxy at + all?</a></h3> + + <p>Modern browsers do indeed have <span class= + "emphasis EMPHASIS c2">some</span> of the same functionality as + <span class="APPLICATION">Privoxy</span>. Maybe this is adequate for + you. But <span class="APPLICATION">Privoxy</span> is very versatile and + powerful, and can probably do a number of things your browser just + can't.</p> + + <p>In addition, a proxy is good choice if you use multiple browsers, or + have a LAN with multiple computers since <span class= + "APPLICATION">Privoxy</span> can run as a server application. This way + all the configuration is in one place, and you don't have to maintain a + similar configuration for possibly many browsers or users.</p> + + <p>Note, however, that it's recommended to leverage both your browser's + and <span class="APPLICATION">Privoxy's</span> privacy enhancing + features at the same time. While your browser probably lacks some + features <span class="APPLICATION">Privoxy</span> offers, it should + also be able to do some things more reliable, for example restricting + and suppressing JavaScript.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="WHYTRUST" id="WHYTRUST">1.13. Why should I + trust Privoxy?</a></h3> + + <p>The most important reason is because you have access to <span class= + "emphasis EMPHASIS c2">everything</span>, and you can control + everything. You can check every line of every configuration file + yourself. You can check every last bit of source code should you + desire. And even if you can't read code, there should be some comfort + in knowing that other people can, and do read it. You can build the + software from scratch, if you want, so that you know the executable is + clean, and that it is <span class="emphasis EMPHASIS c2">yours</span>. + In fact, we encourage this level of scrutiny. It is one reason we use + <span class="APPLICATION">Privoxy</span> ourselves.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="LICENSE" id="LICENSE">1.14. Is there is a + license or fee? What about a warranty? Registration?</a></h3> + + <p><span class="APPLICATION">Privoxy</span> is free software and + licensed under the <a href= + "http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" target= + "_top">GNU General Public License (GPL) version 2</a>. It is free to + use, copy, modify or distribute as you wish under the terms of this + license. Please see the <a href="copyright.html">Copyright</a> section + for more information on the license and copyright. Or the <tt class= + "FILENAME">LICENSE</tt> file that should be included.</p> + + <p>There is <span class="emphasis EMPHASIS c2">no warranty</span> of + any kind, expressed, implied or otherwise. That is something that would + cost real money ;-) There is no registration either.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="SPYWARE" id="SPYWARE">1.15. Can Privoxy + remove spyware? Adware? Viruses?</a></h3> + + <p>No, at least not reliably enough to trust it. <span class= + "APPLICATION">Privoxy</span> is not designed to be a malware removal + tool and the default configuration doesn't even try to filter out any + malware.</p> + + <p><span class="APPLICATION">Privoxy</span> could help prevent contact + from (known) sites that use such tactics with appropriate configuration + rules, and thus could conceivably prevent contamination from such + sites. However, keeping such a configuration up to date would require a + lot of time and effort that would be better spend on keeping your + software itself up to date so it doesn't have known + vulnerabilities.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="OTHERADS" id="OTHERADS">1.16. Can I use + Privoxy with other ad-blocking software?</a></h3> + + <p><span class="APPLICATION">Privoxy</span> should work fine with other + proxies and other software in general.</p> + + <p>But it is probably not necessary to use <span class= + "APPLICATION">Privoxy</span> in conjunction with other ad-blocking + products, and this could conceivably cause undesirable results. It + might be better to choose one software or the other and work a little + to tweak its configuration to your liking.</p> + + <p>Note that this is an advice specific to ad blocking.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="HELP-THE-DEVELOPERS" id= + "HELP-THE-DEVELOPERS">1.17. I would like to help you, what can I + do?</a></h3> + + <div class="SECT3"> + <h4 class="SECT3"><a name="PARTICIPATE" id="PARTICIPATE">1.17.1. + Would you like to participate?</a></h4> + + <p>Well, we <span class="emphasis EMPHASIS c2">always</span> need + help. There is something for everybody who wants to help us. We + welcome new developers, packagers, testers, documentation writers or + really anyone with a desire to help in any way. You <span class= + "emphasis EMPHASIS c2">DO NOT</span> need to be a <span class= + "QUOTE">"programmer"</span>. There are many other tasks available. In + fact, the programmers often can't spend as much time programming + because of some of the other, more mundane things that need to be + done, like checking the Tracker feedback sections or responding to + user questions on the mailing lists.</p> + + <p>So first thing, subscribe to the <a href= + "https://lists.sourceforge.net/lists/listinfo/ijbswa-users" target= + "_top">Privoxy Users</a> or the <a href= + "https://lists.sourceforge.net/lists/listinfo/ijbswa-developers" + target="_top">Privoxy Developers</a> mailing list, join the + discussion, help out other users, provide general feedback or report + problems you noticed.</p> + + <p>If you intend to help out with the trackers, you also might want + to <a href="https://sourceforge.net/account/register.php" target= + "_top">get an account on SourceForge.net</a> so we don't confuse you + with the other name-less users.</p> + + <p>We also have a <a href="../developer-manual/index.html" target= + "_top">Developer's Manual</a>. While it is partly out of date, it's + still worth reading.</p> + + <p>Our <a href= + "http://ijbswa.cvs.sourceforge.net/viewvc/ijbswa/current/TODO?view=markup" + target="_top">TODO list</a> may be of interest to you as well. Please + let us know if you want to work on one of the items listed.</p> </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="DIFFERS">1.7. How does Privoxy differ from the old - Junkbuster?</a> - </h3> - <p> - <span class="APPLICATION">Privoxy</span> picks up where <span - class="APPLICATION">Junkbuster</span> left off. The new <span - class="APPLICATION">Privoxy</span> still blocks ads and banners, - still manages <a href="http://en.wikipedia.org/wiki/Browser_cookie" - target="_top">cookies</a>, and still helps protect your privacy. - But, most of these features have been enhanced, and many new ones - have been added, all in the same vein. - </p> - <p> - <span class="APPLICATION">Privoxy</span>'s new features include: - </p> - <p> - </p> + + <div class="SECT3"> + <h4 class="SECT3"><a name="DONATE" id="DONATE">1.17.2. Would you like + to donate?</a></h4> + + <p><span class="APPLICATION">Privoxy</span> is developed by unpaid + volunteers and thus our current running costs are pretty low. + Nevertheless, we have plans that will cost money in the future. They + include, but aren't limited to spending money on:</p> + <ul> <li> - <p> - Supports "Connection: keep-alive". Outgoing connections can be - kept alive independently from the client. - </p> - </li> - <li> - <p> - Supports IPv6, provided the operating system does so too, and - the configure script detects it. - </p> - </li> - <li> - <p> - Supports tagging which allows to change the behaviour based on - client and server headers. - </p> - </li> - <li> - <p> - Can be run as an "intercepting" proxy, which obviates the need - to configure browsers individually. - </p> - </li> - <li> - <p> - Sophisticated actions and filters for manipulating both server - and client headers. - </p> - </li> - <li> - <p> - Can be chained with other proxies. - </p> - </li> - <li> - <p> - Integrated browser-based configuration and control utility at - <a href="http://config.privoxy.org/" target= - "_top">http://config.privoxy.org/</a> (shortcut: <a href= - "http://p.p/" target="_top">http://p.p/</a>). Browser-based - tracing of rule and filter effects. Remote toggling. - </p> - </li> - <li> - <p> - Web page filtering (text replacements, removes banners based on - size, invisible <span class="QUOTE">"web-bugs"</span> and HTML - annoyances, etc.) - </p> - </li> - <li> - <p> - Modularized configuration that allows for standard settings and - user settings to reside in separate files, so that installing - updated actions files won't overwrite individual user settings. - </p> - </li> - <li> - <p> - Support for Perl Compatible Regular Expressions in the - configuration files, and a more sophisticated and flexible - configuration syntax. - </p> - </li> - <li> - <p> - GIF de-animation. - </p> - </li> - <li> - <p> - Bypass many click-tracking scripts (avoids script redirection). - </p> - </li> - <li> - <p> - User-customizable HTML templates for most proxy-generated pages - (e.g. "blocked" page). - </p> - </li> - <li> - <p> - Auto-detection and re-reading of config file changes. - </p> + <p>Hardware to help make sure <span class= + "APPLICATION">Privoxy</span> keeps running on platforms the + developers currently can't test on and can be ported to + others.</p> </li> + <li> - <p> - Most features are controllable on a per-site or per-location - basis. - </p> + <p>Technical books to educate our developers about said platforms + or to improve their knowledge in general.</p> </li> + <li> - <p> - Many smaller new features added, limitations and bugs removed. - </p> + <p>More reliable hosting,</p> </li> </ul> + + <p>We would like to get this money through donations made by our + users.</p> + + <p><span class="APPLICATION">Privoxy</span> has therefore become an + associated project of <a href= + "http://www.spi-inc.org/about-spi/about-spi" target="_top">Software + in the Public Interest (SPI)</a>, which allows us to receive + donations. In the United States they are tax-deductible, in a few + other western countries they might be tax-deductible in the + future.</p> + + <p>If you read this section before you may notice that paying for the + project domain privoxy.org is no longer on the list. It has been + transferred to SPI is sponsored by Mythic Beasts Ltd.</p> + + <p>If you enjoy our software and feel like helping out with a + donation, please have a look at <a href= + "http://www.spi-inc.org/donations" target="_top">SPI's donation + page</a> to see what the options are. If you have any questions + regarding donations please mail to either the public user mailing + list or, if it's a private matter, to <a href= + "mailto:fk@fabiankeil.de" target="_top">Fabian Keil</a> (Privoxy's + SPI liason) directly.</p> </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="WHATSANAD">1.8. How does Privoxy know what is an ad, and - what is not?</a> - </h3> - <p> - <span class="APPLICATION">Privoxy</span>'s approach to blocking ads - is twofold: - </p> - <p> - First, there are certain patterns in the <span class="emphasis"><i - class="EMPHASIS">locations</i></span> (URLs) of banner images. This - applies to both the path (you wouldn't guess how many web sites - serve their banners from a directory called <span class= - "QUOTE">"banners"</span>!) and the host (blocking the big banner - hosting services like doublecklick.net already helps a lot). <span - class="APPLICATION">Privoxy</span> takes advantage of this fact by - using <a href="../user-manual/actions-file.html#AF-PATTERNS" - target="_top">URL patterns</a> to sort out and block the requests - for things that sound like they would be ads or banners. - </p> - <p> - Second, banners tend to come in certain <span class="emphasis"><i - class="EMPHASIS">sizes</i></span>. But you can't tell the size of - an image by its URL without downloading it, and if you do, it's too - late to save bandwidth. Therefore, <span class= - "APPLICATION">Privoxy</span> also inspects the HTML sources of web - pages while they are loaded, and replaces references to images with - standard banner sizes by dummy references, so that your browser - doesn't request them anymore in the first place. - </p> - <p> - Both of this involves a certain amount of guesswork and is, of - course, freely and readily configurable. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="AEN163">1.9. Can Privoxy make mistakes? This does not - sound very scientific.</a> - </h3> - <p> - Actually, it's a black art ;-) And yes, it is always possible to - have a broad rule accidentally block or change something by - mistake. You will almost surely run into such situations at some - point. It is tricky writing rules to cover every conceivable - possibility, and not occasionally get false positives. - </p> - <p> - But this should not be a big concern since the <span class= - "APPLICATION">Privoxy</span> configuration is very flexible, and - includes tools to help identify these types of situations so they - can be addressed as needed, allowing you to customize your - installation. (<a href="trouble.html#BADSITE">See the - Troubleshooting section below</a>.) - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="AEN169">1.10. Will I have to configure Privoxy before I - can use it?</a> - </h3> - <p> - That depends on your expectations. The default installation should - give you a good starting point, and block <span class="emphasis"><i - class="EMPHASIS">most</i></span> ads and unwanted content, but many - of the more advanced features are off by default, and require you - to activate them. - </p> - <p> - You do have to set up your browser to use <span class= - "APPLICATION">Privoxy</span> (see the <a href= - "installation.html#FIRSTSTEP">Installation section below</a>). - </p> - <p> - And you will certainly run into situations where there are false - positives, or ads not being blocked that you may not want to see. - In these cases, you would certainly benefit by customizing <span - class="APPLICATION">Privoxy's</span> configuration to more closely - match your individual situation. And we encourage you to do this. - This is where the real power of <span class= - "APPLICATION">Privoxy</span> lies! - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="LAN">1.11. Can Privoxy run as a server on a network?</a> - </h3> - <p> - Yes, <span class="APPLICATION">Privoxy</span> runs as a server - already, and can easily be configured to <span class= - "QUOTE">"serve"</span> more than one client. See <a href= - "configuration.html#LANCONFIG">How can I set up Privoxy to act as a - proxy for my LAN</a> below. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="BROWSERS2">1.12. My browser does the same things as - Privoxy. Why should I use Privoxy at all?</a> - </h3> - <p> - Modern browsers do indeed have <span class="emphasis"><i class= - "EMPHASIS">some</i></span> of the same functionality as <span - class="APPLICATION">Privoxy</span>. Maybe this is adequate for you. - But <span class="APPLICATION">Privoxy</span> is very versatile and - powerful, and can probably do a number of things your browser just - can't. - </p> - <p> - In addition, a proxy is good choice if you use multiple browsers, - or have a LAN with multiple computers since <span class= - "APPLICATION">Privoxy</span> can run as a server application. This - way all the configuration is in one place, and you don't have to - maintain a similar configuration for possibly many browsers or - users. - </p> - <p> - Note, however, that it's recommended to leverage both your - browser's and <span class="APPLICATION">Privoxy's</span> privacy - enhancing features at the same time. While your browser probably - lacks some features <span class="APPLICATION">Privoxy</span> - offers, it should also be able to do some things more reliable, for - example restricting and suppressing JavaScript. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="WHYTRUST">1.13. Why should I trust Privoxy?</a> - </h3> - <p> - The most important reason is because you have access to <span - class="emphasis"><i class="EMPHASIS">everything</i></span>, and you - can control everything. You can check every line of every - configuration file yourself. You can check every last bit of source - code should you desire. And even if you can't read code, there - should be some comfort in knowing that other people can, and do - read it. You can build the software from scratch, if you want, so - that you know the executable is clean, and that it is <span class= - "emphasis"><i class="EMPHASIS">yours</i></span>. In fact, we - encourage this level of scrutiny. It is one reason we use <span - class="APPLICATION">Privoxy</span> ourselves. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="LICENSE">1.14. Is there is a license or fee? What about a - warranty? Registration?</a> - </h3> - <p> - <span class="APPLICATION">Privoxy</span> is free software and - licensed under the <a href= - "http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" target= - "_top">GNU General Public License (GPL) version 2</a>. It is free - to use, copy, modify or distribute as you wish under the terms of - this license. Please see the <a href="copyright.html">Copyright</a> - section for more information on the license and copyright. Or the - <tt class="FILENAME">LICENSE</tt> file that should be included. - </p> - <p> - There is <span class="emphasis"><i class="EMPHASIS">no - warranty</i></span> of any kind, expressed, implied or otherwise. - That is something that would cost real money ;-) There is no - registration either. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="SPYWARE">1.15. Can Privoxy remove spyware? Adware? - Viruses?</a> - </h3> - <p> - No, at least not reliably enough to trust it. <span class= - "APPLICATION">Privoxy</span> is not designed to be a malware - removal tool and the default configuration doesn't even try to - filter out any malware. - </p> - <p> - <span class="APPLICATION">Privoxy</span> could help prevent contact - from (known) sites that use such tactics with appropriate - configuration rules, and thus could conceivably prevent - contamination from such sites. However, keeping such a - configuration up to date would require a lot of time and effort - that would be better spend on keeping your software itself up to - date so it doesn't have known vulnerabilities. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="OTHERADS">1.16. Can I use Privoxy with other ad-blocking - software?</a> - </h3> - <p> - <span class="APPLICATION">Privoxy</span> should work fine with - other proxies and other software in general. - </p> - <p> - But it is probably not necessary to use <span class= - "APPLICATION">Privoxy</span> in conjunction with other ad-blocking - products, and this could conceivably cause undesirable results. It - might be better to choose one software or the other and work a - little to tweak its configuration to your liking. - </p> - <p> - Note that this is an advice specific to ad blocking. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="HELP-THE-DEVELOPERS">1.17. I would like to help you, what - can I do?</a> - </h3> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="PARTICIPATE">1.17.1. Would you like to participate?</a> - </h4> - <p> - Well, we <span class="emphasis"><i class= - "EMPHASIS">always</i></span> need help. There is something for - everybody who wants to help us. We welcome new developers, - packagers, testers, documentation writers or really anyone with a - desire to help in any way. You <span class="emphasis"><i class= - "EMPHASIS">DO NOT</i></span> need to be a <span class= - "QUOTE">"programmer"</span>. There are many other tasks - available. In fact, the programmers often can't spend as much - time programming because of some of the other, more mundane - things that need to be done, like checking the Tracker feedback - sections or responding to user questions on the mailing lists. - </p> - <p> - So first thing, subscribe to the <a href= - "https://lists.sourceforge.net/lists/listinfo/ijbswa-users" - target="_top">Privoxy Users</a> or the <a href= - "https://lists.sourceforge.net/lists/listinfo/ijbswa-developers" - target="_top">Privoxy Developers</a> mailing list, join the - discussion, help out other users, provide general feedback or - report problems you noticed. - </p> - <p> - If you intend to help out with the trackers, you also might want - to <a href="https://sourceforge.net/account/register.php" target= - "_top">get an account on SourceForge.net</a> so we don't confuse - you with the other name-less users. - </p> - <p> - We also have a <a href="../developer-manual/index.html" target= - "_top">Developer's Manual</a>. While it is partly out of date, - it's still worth reading. - </p> - <p> - Our <a href= - "http://ijbswa.cvs.sourceforge.net/viewvc/ijbswa/current/TODO?view=markup" - target="_top">TODO list</a> may be of interest to you as well. - Please let us know if you want to work on one of the items - listed. - </p> - </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="DONATE">1.17.2. Would you like to donate?</a> - </h4> - <p> - <span class="APPLICATION">Privoxy</span> is developed by unpaid - volunteers and thus our current running costs are pretty low. - Nevertheless, we have plans that will cost money in the future. - We would like to get this money through donations made by our - users. - </p> - <p> - <span class="APPLICATION">Privoxy</span> has therefore become an - associated project of <a href= - "http://www.spi-inc.org/about-spi/about-spi" target= - "_top">Software in the Public Interest (SPI)</a>, which allows us - to receive tax-deductible donations in most western countries. - </p> - <p> - We intend to use the donations to pay for our domain after - transferring it to SPI. Our goal is to make sure there's no - single point of failure and the bill gets paid and the site keeps - running even if a some of the currently active developers were to - suddenly disappear for a while. - </p> - <p> - We would also like to spend some money on more reliable hosting, - on hardware to help make sure <span class= - "APPLICATION">Privoxy</span> keeps running on platforms the - developers currently can't test on, and on technical books to - educate our developers about said platforms or to improve their - knowledge in general. - </p> - <p> - If you enjoy our software and feel like helping out with a - donation, please have a look at <a href= - "http://www.spi-inc.org/donations" target="_top">SPI's donation - page</a> to see what the options are. - </p> - </div> - </div> - </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="index.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="installation.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - Privoxy Frequently Asked Questions - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Installation - </td> - </tr> - </table> </div> - </body> -</html> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="index.html" + accesskey="P">Prev</a></td> + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + + <td width="33%" align="right" valign="top"><a href= + "installation.html" accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Privoxy Frequently Asked + Questions</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Installation</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/faq/index.html b/doc/webserver/faq/index.html index d73498c9..4ba7e892 100644 --- a/doc/webserver/faq/index.html +++ b/doc/webserver/faq/index.html @@ -1,686 +1,558 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Privoxy Frequently Asked Questions - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="NEXT" title="General Information" href="general.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Privoxy Frequently Asked Questions</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="NEXT" title="General Information" href="general.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c2 {text-align: left} - dt.c1 {font-weight: bold} -</style> - </head> - <body class="ARTICLE"> - <div class="ARTICLE"> - <div class="TITLEPAGE"> - <h1 class="TITLE"> - <a name="AEN2">Privoxy Frequently Asked Questions</a> - </h1> - <p class="PUBDATE"> - <sub><a href="copyright.html">Copyright</a> © 2001-2011 by <a - href="http://www.privoxy.org/" target="_top">Privoxy - Developers</a></sub><br> - </p> - <p class="PUBDATE"> - $Id: index.html,v 1.67 2011/08/26 16:14:03 fabiankeil Exp $<br> - </p> - <div> - <a name="AEN9"></a> - <p> - This FAQ gives quick answers to frequently asked questions about - <a href="http://www.privoxy.org/" target="_top">Privoxy</a>. It - is not a substitute for the <a href="../user-manual/index.html" - target="_top"><i class="CITETITLE">Privoxy User Manual</i></a>. - </p> - <p> - What is Privoxy? - </p> - <p> - Privoxy is a non-caching web proxy with advanced filtering - capabilities for enhancing privacy, modifying web page data and - HTTP headers, controlling access, and removing ads and other - obnoxious Internet junk. Privoxy has a flexible configuration and - can be customized to suit individual needs and tastes. It has - application for both stand-alone systems and multi-user networks. - </p> - <p> - Privoxy is Free Software and licensed under the GNU GPLv2. - </p> - <p> - Privoxy is an associated project of Software in the Public - Interest (SPI). - </p> - <p> - Helping hands and donations are welcome: - </p> - <ul> - <li> - <p> - <a href="http://www.privoxy.org/faq/general.html#PARTICIPATE" - target= - "_top">http://www.privoxy.org/faq/general.html#PARTICIPATE</a> - </p> - </li> - <li> - <p> - <a href="http://www.privoxy.org/faq/general.html#DONATE" - target= - "_top">http://www.privoxy.org/faq/general.html#DONATE</a> - </p> - </li> - </ul> - - <p> - Please note that this document is a work in progress. This copy - represents the state at the release of version 3.0.18. You can - find the latest version of the document at <a href= - "http://www.privoxy.org/faq/" target= - "_top">http://www.privoxy.org/faq/</a>. Please see the <a href= - "contact.html">Contact section</a> if you want to contact the - developers. - </p> - </div> - <hr> - </div> - <div class="TOC"> - <dl> - <dt class="c1"> - Table of Contents - </dt> - <dt> - 1. <a href="general.html">General Information</a> - </dt> - <dd> - <dl> - <dt> - 1.1. <a href="general.html#WHO-USES">Who should give <span - class="APPLICATION">Privoxy</span> a try?</a> - </dt> - <dt> - 1.2. <a href="general.html#BESTCHOICE">Is Privoxy the best - choice for me?</a> - </dt> - <dt> - 1.3. <a href="general.html#PROXYMORON">What is a <span class= - "QUOTE">"proxy"</span>? How does Privoxy work?</a> - </dt> - <dt> - 1.4. <a href="general.html#OTHERSTUFF">Does Privoxy do - anything more than ad blocking?</a> - </dt> - <dt> - 1.5. <a href="general.html#NEWJB">What is this new version of - <span class="QUOTE">"Junkbuster"</span>?</a> - </dt> - <dt> - 1.6. <a href="general.html#AEN85">Why <span class= - "QUOTE">"Privoxy"</span>? Why change the name from Junkbuster - at all?</a> - </dt> - <dt> - 1.7. <a href="general.html#DIFFERS">How does Privoxy differ - from the old Junkbuster?</a> - </dt> - <dt> - 1.8. <a href="general.html#WHATSANAD">How does Privoxy know - what is an ad, and what is not?</a> - </dt> - <dt> - 1.9. <a href="general.html#AEN163">Can Privoxy make mistakes? - This does not sound very scientific.</a> - </dt> - <dt> - 1.10. <a href="general.html#AEN169">Will I have to configure - Privoxy before I can use it?</a> - </dt> - <dt> - 1.11. <a href="general.html#LAN">Can Privoxy run as a server - on a network?</a> - </dt> - <dt> - 1.12. <a href="general.html#BROWSERS2">My browser does the - same things as Privoxy. Why should I use Privoxy at all?</a> - </dt> - <dt> - 1.13. <a href="general.html#WHYTRUST">Why should I trust - Privoxy?</a> - </dt> - <dt> - 1.14. <a href="general.html#LICENSE">Is there is a license or - fee? What about a warranty? Registration?</a> - </dt> - <dt> - 1.15. <a href="general.html#SPYWARE">Can Privoxy remove - spyware? Adware? Viruses?</a> - </dt> - <dt> - 1.16. <a href="general.html#OTHERADS">Can I use Privoxy with - other ad-blocking software?</a> - </dt> - <dt> - 1.17. <a href="general.html#HELP-THE-DEVELOPERS">I would like - to help you, what can I do?</a> - </dt> - <dd> - <dl> - <dt> - 1.17.1. <a href="general.html#PARTICIPATE">Would you like - to participate?</a> - </dt> - <dt> - 1.17.2. <a href="general.html#DONATE">Would you like to - donate?</a> - </dt> - </dl> - </dd> - </dl> - </dd> - <dt> - 2. <a href="installation.html">Installation</a> - </dt> - <dd> - <dl> - <dt> - 2.1. <a href="installation.html#WHICHBROWSERS">Which browsers - are supported by Privoxy?</a> - </dt> - <dt> - 2.2. <a href="installation.html#WHICHOS">Which operating - systems are supported?</a> - </dt> - <dt> - 2.3. <a href="installation.html#EMAIL-CLIENT">Can I use - Privoxy with my email client?</a> - </dt> - <dt> - 2.4. <a href="installation.html#FIRSTSTEP">I just installed - Privoxy. Is there anything special I have to do now?</a> - </dt> - <dt> - 2.5. <a href="installation.html#LOCALHOST">What is the proxy - address of Privoxy?</a> - </dt> - <dt> - 2.6. <a href="installation.html#NOTHING">I just installed - Privoxy, and nothing is happening. All the ads are there. - What's wrong?</a> - </dt> - <dt> - 2.7. <a href="installation.html#NOTUSED">I get a <span class= - "QUOTE">"Privoxy is not being used"</span> dummy page - although Privoxy is running and being used.</a> - </dt> - </dl> - </dd> - <dt> - 3. <a href="configuration.html">Configuration</a> - </dt> - <dd> - <dl> - <dt> - 3.1. <a href="configuration.html#AEN360">What exactly is an - <span class="QUOTE">"actions"</span> file?</a> - </dt> - <dt> - 3.2. <a href="configuration.html#ACTIONSS">The <span class= - "QUOTE">"actions"</span> concept confuses me. Please list - some of these <span class="QUOTE">"actions"</span>.</a> - </dt> - <dt> - 3.3. <a href="configuration.html#AEN383">How are actions - files configured? What is the easiest way to do this?</a> - </dt> - <dt> - 3.4. <a href="configuration.html#AEN392">There are several - different <span class="QUOTE">"actions"</span> files. What - are the differences?</a> - </dt> - <dt> - 3.5. <a href="configuration.html#GETUPDATES">Where can I get - updated Actions Files?</a> - </dt> - <dt> - 3.6. <a href="configuration.html#NEWCONFIG">Can I use my old - config files?</a> - </dt> - <dt> - 3.7. <a href="configuration.html#DIFFICULT">Why is the - configuration so complicated?</a> - </dt> - <dt> - 3.8. <a href="configuration.html#YAHOO">How can I make my - Yahoo/Hotmail/Gmail account work?</a> - </dt> - <dt> - 3.9. <a href="configuration.html#CONFIGFILES">What's the - difference between the <span class="QUOTE">"Cautious"</span>, - <span class="QUOTE">"Medium"</span> and <span class= - "QUOTE">"Advanced"</span> defaults?</a> - </dt> - <dt> - 3.10. <a href="configuration.html#BROWSECONFIG">Why can I - change the configuration with a browser? Does that not raise - security issues?</a> - </dt> - <dt> - 3.11. <a href="configuration.html#AEN480">What is the <tt - class="FILENAME">default.filter</tt> file? What is a <span - class="QUOTE">"filter"</span>?</a> - </dt> - <dt> - 3.12. <a href="configuration.html#LANCONFIG">How can I set up - Privoxy to act as a proxy for my LAN?</a> - </dt> - <dt> - 3.13. <a href="configuration.html#AEN531">Instead of ads, now - I get a checkerboard pattern. I don't want to see - anything.</a> - </dt> - <dt> - 3.14. <a href="configuration.html#AEN548">Why would anybody - want to see a checkerboard pattern?</a> - </dt> - <dt> - 3.15. <a href="configuration.html#AEN554">I see some images - being replaced with text instead of the checkerboard image. - Why and how do I get rid of this?</a> - </dt> - <dt> - 3.16. <a href="configuration.html#SRVANY">Can Privoxy run as - a service on Win2K/NT/XP?</a> - </dt> - <dt> - 3.17. <a href="configuration.html#OTHERPROXY">How can I make - Privoxy work with other proxies?</a> - </dt> - <dt> - 3.18. <a href="configuration.html#PORT-80">Can I just set - Privoxy to use port 80 and thus avoid individual browser - configuration?</a> - </dt> - <dt> - 3.19. <a href="configuration.html#TRANSPARENT">Can Privoxy - run as a <span class="QUOTE">"transparent"</span> proxy?</a> - </dt> - <dt> - 3.20. <a href="configuration.html#INTERCEPTING">Can Privoxy - run as a <span class="QUOTE">"intercepting"</span> proxy?</a> - </dt> - <dt> - 3.21. <a href="configuration.html#OUTLOOK">How can I - configure Privoxy for use with Outlook?</a> - </dt> - <dt> - 3.22. <a href="configuration.html#OUTLOOK-MORE">How can I - have separate rules just for HTML mail?</a> - </dt> - <dt> - 3.23. <a href="configuration.html#SNEAKY-COOKIES">I sometimes - notice cookies sneaking through. How?</a> - </dt> - <dt> - 3.24. <a href="configuration.html#EVIL-COOKIES">Are all - cookies bad? Why?</a> - </dt> - <dt> - 3.25. <a href="configuration.html#ALLOW-COOKIES">How can I - allow permanent cookies for my trusted sites?</a> - </dt> - <dt> - 3.26. <a href="configuration.html#MULTIPLES">Can I have - separate configurations for different users?</a> - </dt> - <dt> - 3.27. <a href="configuration.html#WHITELISTS">Can I set-up - Privoxy as a whitelist of <span class="QUOTE">"good"</span> - sites?</a> - </dt> - <dt> - 3.28. <a href="configuration.html#NO-ADBLOCK">How can I turn - off ad-blocking?</a> - </dt> - <dt> - 3.29. <a href="configuration.html#TEMPLATES">How can I have - custom template pages, like the <span class="emphasis"><i - class="EMPHASIS">BLOCKED</i></span> page?</a> - </dt> - <dt> - 3.30. <a href="configuration.html#BLOCKALL">How can I remove - the <span class="QUOTE">"Go There Anyway"</span> link from - the <span class="emphasis"><i class= - "EMPHASIS">BLOCKED</i></span> page?</a> - </dt> - </dl> - </dd> - <dt> - 4. <a href="misc.html">Miscellaneous</a> - </dt> - <dd> - <dl> - <dt> - 4.1. <a href="misc.html#AEN729">How much does Privoxy slow my - browsing down? This has to add extra time to browsing.</a> - </dt> - <dt> - 4.2. <a href="misc.html#LOADINGTIMES">I notice considerable - delays in page requests. What's wrong?</a> - </dt> - <dt> - 4.3. <a href="misc.html#CONFIGURL">What are - "http://config.privoxy.org/" and "http://p.p/"?</a> - </dt> - <dt> - 4.4. <a href="misc.html#NEWADS">How can I submit new ads, or - report problems?</a> - </dt> - <dt> - 4.5. <a href="misc.html#NEWADS2">If I do submit missed ads, - will they be included in future updates?</a> - </dt> - <dt> - 4.6. <a href="misc.html#NOONECARES">Why doesn't anyone answer - my support request?</a> - </dt> - <dt> - 4.7. <a href="misc.html#IP">How can I hide my IP address?</a> - </dt> - <dt> - 4.8. <a href="misc.html#AEN794">Can Privoxy guarantee I am - anonymous?</a> - </dt> - <dt> - 4.9. <a href="misc.html#AEN812">A test site says I am not - using a Proxy.</a> - </dt> - <dt> - 4.10. <a href="misc.html#TOR">How do I use Privoxy together - with Tor?</a> - </dt> - <dt> - 4.11. <a href="misc.html#AEN868">Might some things break - because header information or content is being altered?</a> - </dt> - <dt> - 4.12. <a href="misc.html#AEN882">Can Privoxy act as a <span - class="QUOTE">"caching"</span> proxy to speed up web - browsing?</a> - </dt> - <dt> - 4.13. <a href="misc.html#AEN892">What about as a firewall? - Can Privoxy protect me?</a> - </dt> - <dt> - 4.14. <a href="misc.html#AEN897">I have large empty spaces / - a checkerboard pattern now where ads used to be. Why?</a> - </dt> - <dt> - 4.15. <a href="misc.html#AEN905">How can Privoxy filter - Secure (HTTPS) URLs?</a> - </dt> - <dt> - 4.16. <a href="misc.html#AEN919">Privoxy runs as a <span - class="QUOTE">"server"</span>. How secure is it? Do I need to - take any special precautions?</a> - </dt> - <dt> - 4.17. <a href="misc.html#TURNOFF">Can I temporarily disable - Privoxy?</a> - </dt> - <dt> - 4.18. <a href="misc.html#REALLYOFF">When <span class= - "QUOTE">"disabled"</span> is Privoxy totally out of the - picture?</a> - </dt> - <dt> - 4.19. <a href="misc.html#TURNOFF2">How can I tell Privoxy to - totally ignore certain sites?</a> - </dt> - <dt> - 4.20. <a href="misc.html#CRUNCH">My logs show Privoxy <span - class="QUOTE">"crunches"</span> ads, but also its own - internal CGI pages. What is a <span class= - "QUOTE">"crunch"</span>?</a> - </dt> - <dt> - 4.21. <a href="misc.html#DOWNLOADS">Can Privoxy effect files - that I download from a webserver? FTP server?</a> - </dt> - <dt> - 4.22. <a href="misc.html#DOWNLOADS2">I just downloaded a Perl - script, and Privoxy altered it! Yikes, what is wrong!</a> - </dt> - <dt> - 4.23. <a href="misc.html#HOSTSFILE">Should I continue to use - a <span class="QUOTE">"HOSTS"</span> file for - ad-blocking?</a> - </dt> - <dt> - 4.24. <a href="misc.html#SEEALSO">Where can I find more - information about Privoxy and related issues?</a> - </dt> - <dt> - 4.25. <a href="misc.html#MICROSUCK">I've noticed that Privoxy - changes <span class="QUOTE">"Microsoft"</span> to <span - class="QUOTE">"MicroSuck"</span>! Why are you manipulating my - browsing?</a> - </dt> - <dt> - 4.26. <a href="misc.html#VALID">Does Privoxy produce <span - class="QUOTE">"valid"</span> HTML (or XHTML)?</a> - </dt> - <dt> - 4.27. <a href="misc.html#SURPRISE-PRIVOXY">How did you manage - to get Privoxy on my computer without my consent?</a> - </dt> - </dl> - </dd> - <dt> - 5. <a href="trouble.html">Troubleshooting</a> - </dt> - <dd> - <dl> - <dt> - 5.1. <a href="trouble.html#AEN1091">I cannot connect to any - websites. Or, I am getting <span class="QUOTE">"connection - refused"</span> message with every web page. Why?</a> - </dt> - <dt> - 5.2. <a href="trouble.html#ERROR503">Why am I getting a 503 - Error (WSAECONNREFUSED) on every page?</a> - </dt> - <dt> - 5.3. <a href="trouble.html#AEN1114">I just added a new rule, - but the steenkin ad is still getting through. How?</a> - </dt> - <dt> - 5.4. <a href="trouble.html#BADSITE">One of my favorite sites - does not work with Privoxy. What can I do?</a> - </dt> - <dt> - 5.5. <a href="trouble.html#DUN">After installing Privoxy, I - have to log in every time I start IE. What gives?</a> - </dt> - <dt> - 5.6. <a href="trouble.html#FTP">I cannot connect to any FTP - sites. Privoxy is blocking me.</a> - </dt> - <dt> - 5.7. <a href="trouble.html#MACOSXIE">In Mac OS X, I can't - configure Microsoft Internet Explorer to use Privoxy as the - HTTP proxy.</a> - </dt> - <dt> - 5.8. <a href="trouble.html#MACOSXUNINSTALL">In Mac OS X, I - dragged the Privoxy folder to the trash in order to uninstall - it. Now the finder tells me I don't have sufficient - privileges to empty the trash.</a> - </dt> - <dt> - 5.9. <a href="trouble.html#MACOSXIMAGES">In Mac OS X Panther - (10.3), images often fail to load and/or I experience random - delays in page loading. I'm using <tt class= - "LITERAL">localhost</tt> as my browser's proxy setting.</a> - </dt> - <dt> - 5.10. <a href="trouble.html#BLANKPAGE">I get a completely - blank page at one site. <span class="QUOTE">"View - Source"</span> shows only: <span class= - "MARKUP"><html><body></body></html></span>. - Without Privoxy the page loads fine.</a> - </dt> - <dt> - 5.11. <a href="trouble.html#NOHOSTNAME">My logs show many - <span class="QUOTE">"Unable to get my own hostname"</span> - lines. Why?</a> - </dt> - <dt> - 5.12. <a href="trouble.html#INUSE">When I try to launch - Privoxy, I get an error message <span class="QUOTE">"port - 8118 is already in use"</span> (or similar wording). Why?</a> - </dt> - <dt> - 5.13. <a href="trouble.html#DEMORONIZER">Pages with UTF-8 - fonts are garbled.</a> - </dt> - <dt> - 5.14. <a href="trouble.html#DEMORONIZER2">Why are binary - files (such as images) corrupted when Privoxy is used?</a> - </dt> - <dt> - 5.15. <a href="trouble.html#DEMORONIZER3">What is the <span - class="QUOTE">"demoronizer"</span> and why is it there?</a> - </dt> - <dt> - 5.16. <a href="trouble.html#WINDOWOPEN">Why do I keep seeing - <span class="QUOTE">"PrivoxyWindowOpen()"</span> in raw - source code?</a> - </dt> - <dt> - 5.17. <a href="trouble.html#DNSERRORS">I am getting too many - DNS errors like <span class="QUOTE">"404 No Such - Domain"</span>. Why can't Privoxy do this better?</a> - </dt> - <dt> - 5.18. <a href="trouble.html#ALLCPU">At one site Privoxy just - hangs, and starts taking all CPU. Why is this?</a> - </dt> - <dt> - 5.19. <a href="trouble.html#SLOWCRAWL">I just installed - Privoxy, and all my browsing has slowed to a crawl. What - gives?</a> - </dt> - <dt> - 5.20. <a href="trouble.html#PREVENTCOMP">Why do my filters - work on some sites but not on others?</a> - </dt> - <dt> - 5.21. <a href="trouble.html#SSL-WARNINGS">On some HTTPS sites - my browser warns me about unauthenticated content, the URL - bar doesn't get highlighted and the lock symbol appears to be - broken. What's going on?</a> - </dt> - <dt> - 5.22. <a href="trouble.html#SE-LINUX">I get selinux error - messages. How can I fix this?</a> - </dt> - <dt> - 5.23. <a href="trouble.html#GENTOO-RICERS">I compiled <span - class="APPLICATION">Privoxy</span> with Gentoo's portage and - it appears to be very slow. Why?</a> - </dt> - </dl> - </dd> - <dt> - 6. <a href="contact.html">Contacting the developers, Bug - Reporting and Feature Requests</a> - </dt> - <dd> - <dl> - <dt> - 6.1. <a href="contact.html#CONTACT-SUPPORT">Get Support</a> - </dt> - <dt> - 6.2. <a href="contact.html#REPORTING">Reporting Problems</a> - </dt> - <dd> - <dl> - <dt> - 6.2.1. <a href="contact.html#CONTACT-ADS">Reporting Ads - or Other Configuration Problems</a> - </dt> - <dt> - 6.2.2. <a href="contact.html#CONTACT-BUGS">Reporting - Bugs</a> - </dt> - </dl> - </dd> - <dt> - 6.3. <a href="contact.html#CONTACT-FEATURE">Request New - Features</a> - </dt> - <dt> - 6.4. <a href="contact.html#MAILING-LISTS">Mailing Lists</a> - </dt> - </dl> - </dd> - <dt> - 7. <a href="copyright.html">Privoxy Copyright, License and - History</a> - </dt> - <dd> - <dl> - <dt> - 7.1. <a href="copyright.html#AEN1464">License</a> - </dt> - <dt> - 7.2. <a href="copyright.html#AEN1480">History</a> - </dt> - </dl> - </dd> - </dl> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + hr.c4 {text-align: left} + span.c3 {font-style: italic} + dt.c2 {font-weight: bold} + a.c1 {font-style: italic} + </style> +</head> + +<body class="ARTICLE"> + <div class="ARTICLE"> + <div class="TITLEPAGE"> + <h1 class="TITLE"><a name="AEN2" id="AEN2">Privoxy Frequently Asked + Questions</a></h1> + + <p class="PUBDATE"><sub><a href="copyright.html">Copyright</a> © + 2001-2011 by <a href="http://www.privoxy.org/" target="_top">Privoxy + Developers</a></sub><br></p> + + <p class="PUBDATE">$Id: faq.sgml,v 2.81 2011/09/04 11:10:12 fabiankeil + Exp $<br></p> + + <div class="ABSTRACT"> + <a name="AEN9" id="AEN9"></a> + + <p>This FAQ gives quick answers to frequently asked questions about + <a href="http://www.privoxy.org/" target="_top">Privoxy</a>. It is + not a substitute for the <a class="CITETITLE c1" href= + "../user-manual/index.html" target="_top">Privoxy User + Manual</a>.</p> + + <p>What is Privoxy?</p> + + <p>Privoxy is a non-caching web proxy with advanced filtering + capabilities for enhancing privacy, modifying web page data and HTTP + headers, controlling access, and removing ads and other obnoxious + Internet junk. Privoxy has a flexible configuration and can be + customized to suit individual needs and tastes. It has application + for both stand-alone systems and multi-user networks.</p> + + <p>Privoxy is Free Software and licensed under the GNU GPLv2.</p> + + <p>Privoxy is an associated project of Software in the Public + Interest (SPI).</p> + + <p>Helping hands and donations are welcome:</p> + + <ul> + <li> + <p><a href="http://www.privoxy.org/faq/general.html#PARTICIPATE" + target= + "_top">http://www.privoxy.org/faq/general.html#PARTICIPATE</a></p> + </li> + + <li> + <p><a href="http://www.privoxy.org/faq/general.html#DONATE" + target= + "_top">http://www.privoxy.org/faq/general.html#DONATE</a></p> + </li> + </ul> + + <p>Please note that this document is a work in progress. This copy + represents the state at the release of version 3.0.18. You can find + the latest version of the document at <a href= + "http://www.privoxy.org/faq/" target= + "_top">http://www.privoxy.org/faq/</a>. Please see the <a href= + "contact.html">Contact section</a> if you want to contact the + developers.</p> </div> + <hr> </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c2"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - <a href="general.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - General Information - </td> - </tr> - </table> + + <div class="TOC"> + <dl> + <dt class="c2">Table of Contents</dt> + + <dt>1. <a href="general.html">General Information</a></dt> + + <dd> + <dl> + <dt>1.1. <a href="general.html#WHO-USES">Who should give + <span class="APPLICATION">Privoxy</span> a try?</a></dt> + + <dt>1.2. <a href="general.html#BESTCHOICE">Is Privoxy the best + choice for me?</a></dt> + + <dt>1.3. <a href="general.html#PROXYMORON">What is a <span class= + "QUOTE">"proxy"</span>? How does Privoxy work?</a></dt> + + <dt>1.4. <a href="general.html#OTHERSTUFF">Does Privoxy do + anything more than ad blocking?</a></dt> + + <dt>1.5. <a href="general.html#NEWJB">What is this new version of + <span class="QUOTE">"Junkbuster"</span>?</a></dt> + + <dt>1.6. <a href="general.html#AEN85">Why <span class= + "QUOTE">"Privoxy"</span>? Why change the name from Junkbuster at + all?</a></dt> + + <dt>1.7. <a href="general.html#DIFFERS">How does Privoxy differ + from the old Junkbuster?</a></dt> + + <dt>1.8. <a href="general.html#WHATSANAD">How does Privoxy know + what is an ad, and what is not?</a></dt> + + <dt>1.9. <a href="general.html#AEN163">Can Privoxy make mistakes? + This does not sound very scientific.</a></dt> + + <dt>1.10. <a href="general.html#AEN169">Will I have to configure + Privoxy before I can use it?</a></dt> + + <dt>1.11. <a href="general.html#LAN">Can Privoxy run as a server + on a network?</a></dt> + + <dt>1.12. <a href="general.html#BROWSERS2">My browser does the + same things as Privoxy. Why should I use Privoxy at all?</a></dt> + + <dt>1.13. <a href="general.html#WHYTRUST">Why should I trust + Privoxy?</a></dt> + + <dt>1.14. <a href="general.html#LICENSE">Is there is a license or + fee? What about a warranty? Registration?</a></dt> + + <dt>1.15. <a href="general.html#SPYWARE">Can Privoxy remove + spyware? Adware? Viruses?</a></dt> + + <dt>1.16. <a href="general.html#OTHERADS">Can I use Privoxy with + other ad-blocking software?</a></dt> + + <dt>1.17. <a href="general.html#HELP-THE-DEVELOPERS">I would like + to help you, what can I do?</a></dt> + + <dd> + <dl> + <dt>1.17.1. <a href="general.html#PARTICIPATE">Would you like + to participate?</a></dt> + + <dt>1.17.2. <a href="general.html#DONATE">Would you like to + donate?</a></dt> + </dl> + </dd> + </dl> + </dd> + + <dt>2. <a href="installation.html">Installation</a></dt> + + <dd> + <dl> + <dt>2.1. <a href="installation.html#WHICHBROWSERS">Which browsers + are supported by Privoxy?</a></dt> + + <dt>2.2. <a href="installation.html#WHICHOS">Which operating + systems are supported?</a></dt> + + <dt>2.3. <a href="installation.html#EMAIL-CLIENT">Can I use + Privoxy with my email client?</a></dt> + + <dt>2.4. <a href="installation.html#FIRSTSTEP">I just installed + Privoxy. Is there anything special I have to do now?</a></dt> + + <dt>2.5. <a href="installation.html#LOCALHOST">What is the proxy + address of Privoxy?</a></dt> + + <dt>2.6. <a href="installation.html#NOTHING">I just installed + Privoxy, and nothing is happening. All the ads are there. What's + wrong?</a></dt> + + <dt>2.7. <a href="installation.html#NOTUSED">I get a <span class= + "QUOTE">"Privoxy is not being used"</span> dummy page although + Privoxy is running and being used.</a></dt> + </dl> + </dd> + + <dt>3. <a href="configuration.html">Configuration</a></dt> + + <dd> + <dl> + <dt>3.1. <a href="configuration.html#AEN369">What exactly is an + <span class="QUOTE">"actions"</span> file?</a></dt> + + <dt>3.2. <a href="configuration.html#ACTIONSS">The <span class= + "QUOTE">"actions"</span> concept confuses me. Please list some of + these <span class="QUOTE">"actions"</span>.</a></dt> + + <dt>3.3. <a href="configuration.html#AEN392">How are actions + files configured? What is the easiest way to do this?</a></dt> + + <dt>3.4. <a href="configuration.html#AEN401">There are several + different <span class="QUOTE">"actions"</span> files. What are + the differences?</a></dt> + + <dt>3.5. <a href="configuration.html#GETUPDATES">Where can I get + updated Actions Files?</a></dt> + + <dt>3.6. <a href="configuration.html#NEWCONFIG">Can I use my old + config files?</a></dt> + + <dt>3.7. <a href="configuration.html#DIFFICULT">Why is the + configuration so complicated?</a></dt> + + <dt>3.8. <a href="configuration.html#YAHOO">How can I make my + Yahoo/Hotmail/Gmail account work?</a></dt> + + <dt>3.9. <a href="configuration.html#CONFIGFILES">What's the + difference between the <span class="QUOTE">"Cautious"</span>, + <span class="QUOTE">"Medium"</span> and <span class= + "QUOTE">"Advanced"</span> defaults?</a></dt> + + <dt>3.10. <a href="configuration.html#BROWSECONFIG">Why can I + change the configuration with a browser? Does that not raise + security issues?</a></dt> + + <dt>3.11. <a href="configuration.html#AEN489">What is the + <tt class="FILENAME">default.filter</tt> file? What is a + <span class="QUOTE">"filter"</span>?</a></dt> + + <dt>3.12. <a href="configuration.html#LANCONFIG">How can I set up + Privoxy to act as a proxy for my LAN?</a></dt> + + <dt>3.13. <a href="configuration.html#AEN540">Instead of ads, now + I get a checkerboard pattern. I don't want to see + anything.</a></dt> + + <dt>3.14. <a href="configuration.html#AEN557">Why would anybody + want to see a checkerboard pattern?</a></dt> + + <dt>3.15. <a href="configuration.html#AEN563">I see some images + being replaced with text instead of the checkerboard image. Why + and how do I get rid of this?</a></dt> + + <dt>3.16. <a href="configuration.html#SRVANY">Can Privoxy run as + a service on Win2K/NT/XP?</a></dt> + + <dt>3.17. <a href="configuration.html#OTHERPROXY">How can I make + Privoxy work with other proxies?</a></dt> + + <dt>3.18. <a href="configuration.html#PORT-80">Can I just set + Privoxy to use port 80 and thus avoid individual browser + configuration?</a></dt> + + <dt>3.19. <a href="configuration.html#TRANSPARENT">Can Privoxy + run as a <span class="QUOTE">"transparent"</span> proxy?</a></dt> + + <dt>3.20. <a href="configuration.html#INTERCEPTING">Can Privoxy + run as a <span class="QUOTE">"intercepting"</span> + proxy?</a></dt> + + <dt>3.21. <a href="configuration.html#OUTLOOK">How can I + configure Privoxy for use with Outlook?</a></dt> + + <dt>3.22. <a href="configuration.html#OUTLOOK-MORE">How can I + have separate rules just for HTML mail?</a></dt> + + <dt>3.23. <a href="configuration.html#SNEAKY-COOKIES">I sometimes + notice cookies sneaking through. How?</a></dt> + + <dt>3.24. <a href="configuration.html#EVIL-COOKIES">Are all + cookies bad? Why?</a></dt> + + <dt>3.25. <a href="configuration.html#ALLOW-COOKIES">How can I + allow permanent cookies for my trusted sites?</a></dt> + + <dt>3.26. <a href="configuration.html#MULTIPLES">Can I have + separate configurations for different users?</a></dt> + + <dt>3.27. <a href="configuration.html#WHITELISTS">Can I set-up + Privoxy as a whitelist of <span class="QUOTE">"good"</span> + sites?</a></dt> + + <dt>3.28. <a href="configuration.html#NO-ADBLOCK">How can I turn + off ad-blocking?</a></dt> + + <dt>3.29. <a href="configuration.html#TEMPLATES">How can I have + custom template pages, like the <span class= + "emphasis EMPHASIS c3">BLOCKED</span> page?</a></dt> + + <dt>3.30. <a href="configuration.html#BLOCKALL">How can I remove + the <span class="QUOTE">"Go There Anyway"</span> link from the + <span class="emphasis EMPHASIS c3">BLOCKED</span> page?</a></dt> + </dl> + </dd> + + <dt>4. <a href="misc.html">Miscellaneous</a></dt> + + <dd> + <dl> + <dt>4.1. <a href="misc.html#AEN738">How much does Privoxy slow my + browsing down? This has to add extra time to browsing.</a></dt> + + <dt>4.2. <a href="misc.html#LOADINGTIMES">I notice considerable + delays in page requests. What's wrong?</a></dt> + + <dt>4.3. <a href="misc.html#CONFIGURL">What are + "http://config.privoxy.org/" and "http://p.p/"?</a></dt> + + <dt>4.4. <a href="misc.html#NEWADS">How can I submit new ads, or + report problems?</a></dt> + + <dt>4.5. <a href="misc.html#NEWADS2">If I do submit missed ads, + will they be included in future updates?</a></dt> + + <dt>4.6. <a href="misc.html#NOONECARES">Why doesn't anyone answer + my support request?</a></dt> + + <dt>4.7. <a href="misc.html#IP">How can I hide my IP + address?</a></dt> + + <dt>4.8. <a href="misc.html#AEN803">Can Privoxy guarantee I am + anonymous?</a></dt> + + <dt>4.9. <a href="misc.html#AEN821">A test site says I am not + using a Proxy.</a></dt> + + <dt>4.10. <a href="misc.html#TOR">How do I use Privoxy together + with Tor?</a></dt> + + <dt>4.11. <a href="misc.html#AEN877">Might some things break + because header information or content is being altered?</a></dt> + + <dt>4.12. <a href="misc.html#AEN891">Can Privoxy act as a + <span class="QUOTE">"caching"</span> proxy to speed up web + browsing?</a></dt> + + <dt>4.13. <a href="misc.html#AEN901">What about as a firewall? + Can Privoxy protect me?</a></dt> + + <dt>4.14. <a href="misc.html#AEN906">I have large empty spaces / + a checkerboard pattern now where ads used to be. Why?</a></dt> + + <dt>4.15. <a href="misc.html#AEN914">How can Privoxy filter + Secure (HTTPS) URLs?</a></dt> + + <dt>4.16. <a href="misc.html#AEN928">Privoxy runs as a + <span class="QUOTE">"server"</span>. How secure is it? Do I need + to take any special precautions?</a></dt> + + <dt>4.17. <a href="misc.html#TURNOFF">Can I temporarily disable + Privoxy?</a></dt> + + <dt>4.18. <a href="misc.html#REALLYOFF">When <span class= + "QUOTE">"disabled"</span> is Privoxy totally out of the + picture?</a></dt> + + <dt>4.19. <a href="misc.html#TURNOFF2">How can I tell Privoxy to + totally ignore certain sites?</a></dt> + + <dt>4.20. <a href="misc.html#CRUNCH">My logs show Privoxy + <span class="QUOTE">"crunches"</span> ads, but also its own + internal CGI pages. What is a <span class= + "QUOTE">"crunch"</span>?</a></dt> + + <dt>4.21. <a href="misc.html#DOWNLOADS">Can Privoxy effect files + that I download from a webserver? FTP server?</a></dt> + + <dt>4.22. <a href="misc.html#DOWNLOADS2">I just downloaded a Perl + script, and Privoxy altered it! Yikes, what is wrong!</a></dt> + + <dt>4.23. <a href="misc.html#HOSTSFILE">Should I continue to use + a <span class="QUOTE">"HOSTS"</span> file for + ad-blocking?</a></dt> + + <dt>4.24. <a href="misc.html#SEEALSO">Where can I find more + information about Privoxy and related issues?</a></dt> + + <dt>4.25. <a href="misc.html#MICROSUCK">I've noticed that Privoxy + changes <span class="QUOTE">"Microsoft"</span> to <span class= + "QUOTE">"MicroSuck"</span>! Why are you manipulating my + browsing?</a></dt> + + <dt>4.26. <a href="misc.html#VALID">Does Privoxy produce + <span class="QUOTE">"valid"</span> HTML (or XHTML)?</a></dt> + + <dt>4.27. <a href="misc.html#SURPRISE-PRIVOXY">How did you manage + to get Privoxy on my computer without my consent?</a></dt> + </dl> + </dd> + + <dt>5. <a href="trouble.html">Troubleshooting</a></dt> + + <dd> + <dl> + <dt>5.1. <a href="trouble.html#AEN1100">I cannot connect to any + websites. Or, I am getting <span class="QUOTE">"connection + refused"</span> message with every web page. Why?</a></dt> + + <dt>5.2. <a href="trouble.html#ERROR503">Why am I getting a 503 + Error (WSAECONNREFUSED) on every page?</a></dt> + + <dt>5.3. <a href="trouble.html#AEN1123">I just added a new rule, + but the steenkin ad is still getting through. How?</a></dt> + + <dt>5.4. <a href="trouble.html#BADSITE">One of my favorite sites + does not work with Privoxy. What can I do?</a></dt> + + <dt>5.5. <a href="trouble.html#DUN">After installing Privoxy, I + have to log in every time I start IE. What gives?</a></dt> + + <dt>5.6. <a href="trouble.html#FTP">I cannot connect to any FTP + sites. Privoxy is blocking me.</a></dt> + + <dt>5.7. <a href="trouble.html#MACOSXIE">In Mac OS X, I can't + configure Microsoft Internet Explorer to use Privoxy as the HTTP + proxy.</a></dt> + + <dt>5.8. <a href="trouble.html#MACOSXUNINSTALL">In Mac OS X, I + dragged the Privoxy folder to the trash in order to uninstall it. + Now the finder tells me I don't have sufficient privileges to + empty the trash.</a></dt> + + <dt>5.9. <a href="trouble.html#MACOSXIMAGES">In Mac OS X Panther + (10.3), images often fail to load and/or I experience random + delays in page loading. I'm using <tt class= + "LITERAL">localhost</tt> as my browser's proxy setting.</a></dt> + + <dt>5.10. <a href="trouble.html#BLANKPAGE">I get a completely + blank page at one site. <span class="QUOTE">"View Source"</span> + shows only: <span class= + "MARKUP"><html><body></body></html></span>. + Without Privoxy the page loads fine.</a></dt> + + <dt>5.11. <a href="trouble.html#NOHOSTNAME">My logs show many + <span class="QUOTE">"Unable to get my own hostname"</span> lines. + Why?</a></dt> + + <dt>5.12. <a href="trouble.html#INUSE">When I try to launch + Privoxy, I get an error message <span class="QUOTE">"port 8118 is + already in use"</span> (or similar wording). Why?</a></dt> + + <dt>5.13. <a href="trouble.html#DEMORONIZER">Pages with UTF-8 + fonts are garbled.</a></dt> + + <dt>5.14. <a href="trouble.html#DEMORONIZER2">Why are binary + files (such as images) corrupted when Privoxy is used?</a></dt> + + <dt>5.15. <a href="trouble.html#DEMORONIZER3">What is the + <span class="QUOTE">"demoronizer"</span> and why is it + there?</a></dt> + + <dt>5.16. <a href="trouble.html#WINDOWOPEN">Why do I keep seeing + <span class="QUOTE">"PrivoxyWindowOpen()"</span> in raw source + code?</a></dt> + + <dt>5.17. <a href="trouble.html#DNSERRORS">I am getting too many + DNS errors like <span class="QUOTE">"404 No Such Domain"</span>. + Why can't Privoxy do this better?</a></dt> + + <dt>5.18. <a href="trouble.html#ALLCPU">At one site Privoxy just + hangs, and starts taking all CPU. Why is this?</a></dt> + + <dt>5.19. <a href="trouble.html#SLOWCRAWL">I just installed + Privoxy, and all my browsing has slowed to a crawl. What + gives?</a></dt> + + <dt>5.20. <a href="trouble.html#PREVENTCOMP">Why do my filters + work on some sites but not on others?</a></dt> + + <dt>5.21. <a href="trouble.html#SSL-WARNINGS">On some HTTPS sites + my browser warns me about unauthenticated content, the URL bar + doesn't get highlighted and the lock symbol appears to be broken. + What's going on?</a></dt> + + <dt>5.22. <a href="trouble.html#SE-LINUX">I get selinux error + messages. How can I fix this?</a></dt> + + <dt>5.23. <a href="trouble.html#GENTOO-RICERS">I compiled + <span class="APPLICATION">Privoxy</span> with Gentoo's portage + and it appears to be very slow. Why?</a></dt> + </dl> + </dd> + + <dt>6. <a href="contact.html">Contacting the developers, Bug + Reporting and Feature Requests</a></dt> + + <dd> + <dl> + <dt>6.1. <a href="contact.html#CONTACT-SUPPORT">Get + Support</a></dt> + + <dt>6.2. <a href="contact.html#REPORTING">Reporting + Problems</a></dt> + + <dd> + <dl> + <dt>6.2.1. <a href="contact.html#CONTACT-ADS">Reporting Ads + or Other Configuration Problems</a></dt> + + <dt>6.2.2. <a href="contact.html#CONTACT-BUGS">Reporting + Bugs</a></dt> + </dl> + </dd> + + <dt>6.3. <a href="contact.html#CONTACT-FEATURE">Request New + Features</a></dt> + + <dt>6.4. <a href="contact.html#MAILING-LISTS">Mailing + Lists</a></dt> + </dl> + </dd> + + <dt>7. <a href="copyright.html">Privoxy Copyright, License and + History</a></dt> + + <dd> + <dl> + <dt>7.1. <a href="copyright.html#AEN1477">License</a></dt> + + <dt>7.2. <a href="copyright.html#AEN1493">History</a></dt> + </dl> + </dd> + </dl> </div> - </body> -</html> + </div> + + <div class="NAVFOOTER"> + <hr class="c4" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"> </td> + + <td width="34%" align="center" valign="top"> </td> + <td width="33%" align="right" valign="top"><a href="general.html" + accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top"> </td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">General Information</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/faq/installation.html b/doc/webserver/faq/installation.html index 38841a88..47ecf734 100644 --- a/doc/webserver/faq/installation.html +++ b/doc/webserver/faq/installation.html @@ -1,288 +1,259 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Installation - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy Frequently Asked Questions" href= - "index.html"> - <link rel="PREVIOUS" title="General Information" href="general.html"> - <link rel="NEXT" title="Configuration" href="configuration.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Installation</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy Frequently Asked Questions" href= + "index.html"> + <link rel="PREVIOUS" title="General Information" href="general.html"> + <link rel="NEXT" title="Configuration" href="configuration.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy Frequently Asked Questions - </th> - </tr> - <tr> - <td width="10%" align="left" valign="bottom"> - <a href="general.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="configuration.html" accesskey="N">Next</a> - </td> - </tr> - </table> - <hr width="100%" class="c1"> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + span.c2 {font-style: italic} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy Frequently Asked + Questions</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href="general.html" + accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href= + "configuration.html" accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="INSTALLATION" id="INSTALLATION">2. + Installation</a></h1> + + <div class="SECT2"> + <h3 class="SECT2"><a name="WHICHBROWSERS" id="WHICHBROWSERS">2.1. Which + browsers are supported by Privoxy?</a></h3> + + <p>Any browser that can be configured to use a proxy, which should be + virtually all browsers, including <span class= + "APPLICATION">Firefox</span>, <span class="APPLICATION">Internet + Explorer</span>, <span class="APPLICATION">Opera</span>, and + <span class="APPLICATION">Safari</span> among others. Direct browser + support is not an absolute requirement since <span class= + "APPLICATION">Privoxy</span> runs as a separate application and talks + to the browser in the standardized HTTP protocol, just like a web + server does.</p> </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="INSTALLATION">2. Installation</a> - </h1> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="WHICHBROWSERS">2.1. Which browsers are supported by - Privoxy?</a> - </h3> - <p> - Any browser that can be configured to use a proxy, which should be - virtually all browsers, including <span class= - "APPLICATION">Firefox</span>, <span class="APPLICATION">Internet - Explorer</span>, <span class="APPLICATION">Opera</span>, and <span - class="APPLICATION">Safari</span> among others. Direct browser - support is not an absolute requirement since <span class= - "APPLICATION">Privoxy</span> runs as a separate application and - talks to the browser in the standardized HTTP protocol, just like a - web server does. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="WHICHOS">2.2. Which operating systems are supported?</a> - </h3> - <p> - At present, <span class="APPLICATION">Privoxy</span> is known to - run on Windows(95, 98, ME, 2000, XP, Vista), GNU/Linux (RedHat, - SuSE, Debian, Fedora, Gentoo, Slackware and others), Mac OSX, OS/2, - AmigaOS, FreeBSD, NetBSD, OpenBSD, Solaris, and various other - flavors of Unix. - </p> - <p> - But any operating system that runs TCP/IP, can conceivably take - advantage of <span class="APPLICATION">Privoxy</span> in a - networked situation where <span class="APPLICATION">Privoxy</span> - would run as a server on a LAN gateway. Then only the <span class= - "QUOTE">"gateway"</span> needs to be running one of the above - operating systems. - </p> - <p> - Source code is freely available, so porting to other operating - systems is always a possibility. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="EMAIL-CLIENT">2.3. Can I use Privoxy with my email - client?</a> - </h3> - <p> - As long as there is some way to set a HTTP proxy for the client, - then yes, any application can be used, whether it is strictly - speaking a <span class="QUOTE">"browser"</span> or not. Though this - may not be the best approach for dealing with some of the common - abuses of HTML in email. See <a href= - "configuration.html#OUTLOOK">How can I configure <span class= - "APPLICATION">Privoxy</span> with <span class= - "APPLICATION">Outlook</span>?</a> below for more on this. - </p> - <p> - Be aware that HTML email presents a number of unique security and - privacy related issues, that can require advanced skills to - overcome. The developers recommend using email clients that can be - configured to convert HTML to plain text for these reasons. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="FIRSTSTEP">2.4. I just installed Privoxy. Is there - anything special I have to do now?</a> - </h3> - <p> - All browsers should be told to use <span class= - "APPLICATION">Privoxy</span> as a proxy by specifying the correct - proxy address and port number in the appropriate configuration area - for the browser. It's possible to combine <span class= - "APPLICATION">Privoxy</span> with a packet filter to intercept HTTP - requests even if the client isn't explicitly configured to use - <span class="APPLICATION">Privoxy</span>, but where possible, - configuring the client is recommended. See <a href= - "../user-manual/startup.html" target="_top">the User Manual for - more details</a>. You should also flush your browser's memory and - disk cache to get rid of any cached junk items, and remove any - stored <a href="http://en.wikipedia.org/wiki/Browser_cookie" - target="_top">cookies</a>. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="LOCALHOST">2.5. What is the proxy address of Privoxy?</a> - </h3> - <p> - If you set up the <span class="APPLICATION">Privoxy</span> to run - on the computer you browse from (rather than your ISP's server or - some networked computer on a LAN), the proxy will be on <tt class= - "LITERAL">127.0.0.1</tt> (sometimes referred to as <span class= - "QUOTE">"localhost"</span>, which is the special name used by every - computer on the Internet to refer to itself) and the port will be - 8118 (unless you used the <a href= - "../user-manual/config.html#LISTEN-ADDRESS" target= - "_top">listen-address</a> config option to tell <span class= - "APPLICATION">Privoxy</span> to run on a different port). - </p> - <p> - When configuring your browser's proxy settings you typically enter - the word <span class="QUOTE">"localhost"</span> or the IP address - <span class="QUOTE">"127.0.0.1"</span> in the boxes next to <span - class="QUOTE">"HTTP"</span> and <span class="QUOTE">"Secure"</span> - (HTTPS) and then the number <span class="QUOTE">"8118"</span> for - <span class="QUOTE">"port"</span>. This tells your browser to send - all web requests to <span class="APPLICATION">Privoxy</span> - instead of directly to the Internet. - </p> - <p> - <span class="APPLICATION">Privoxy</span> can also be used to proxy - for a Local Area Network. In this case, your would enter either the - IP address of the LAN host where <span class= - "APPLICATION">Privoxy</span> is running, or the equivalent - hostname, e.g. <tt class="LITERAL">192.168.1.1</tt>. Port - assignment would be same as above. Note that <span class= - "APPLICATION">Privoxy</span> doesn't listen on any LAN interfaces - by default. - </p> - <p> - <span class="APPLICATION">Privoxy</span> does not currently handle - any other protocols such as FTP, SMTP, IM, IRC, ICQ, etc. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="NOTHING">2.6. I just installed Privoxy, and nothing is - happening. All the ads are there. What's wrong?</a> - </h3> - <p> - Did you configure your browser to use <span class= - "APPLICATION">Privoxy</span> as a proxy? It does not sound like it. - See above. You might also try flushing the browser's caches to - force a full re-reading of pages. You can verify that <span class= - "APPLICATION">Privoxy</span> is running, and your browser is - correctly configured by entering the special URL: <a href= - "http://p.p/" target="_top">http://p.p/</a>. This should take you - to a page titled <span class="QUOTE">"This is Privoxy.."</span> - with access to <span class="APPLICATION">Privoxy's</span> internal - configuration. If you see this, then you are good to go. If you - receive a page saying <span class="QUOTE">"Privoxy is not - running"</span>, then the browser is not set up to use your <span - class="APPLICATION">Privoxy</span> installation. If you receive - anything else (probably nothing at all), it could either be that - the browser is not set up correctly, or that <span class= - "APPLICATION">Privoxy</span> is not running at all. Check the <a - href="../user-manual/config.html#LOGFILE" target="_top">log - file</a>. For instructions on starting <span class= - "APPLICATION">Privoxy</span> and browser configuration, see the <a - href="http://www.privoxy.org/user-manual/startup.html" target= - "_top">chapter on starting <span class= - "APPLICATION">Privoxy</span></a> in the <a href= - "http://www.privoxy.org/user-manual/" target="_top">User - Manual</a>. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="NOTUSED">2.7. I get a <span class="QUOTE">"Privoxy is not - being used"</span> dummy page although Privoxy is running and being - used.</a> - </h3> - <p> - First, make sure that Privoxy is <span class="emphasis"><i class= - "EMPHASIS">really</i></span> running and being used by visiting <a - href="http://p.p/" target="_top">http://p.p/</a>. You should see - the <span class="APPLICATION">Privoxy</span> main page. If not, see - the <a href="http://www.privoxy.org/user-manual/startup.html" - target="_top">chapter on starting <span class= - "APPLICATION">Privoxy</span></a> in the <a href= - "http://www.privoxy.org/user-manual/" target="_top">User - Manual</a>. - </p> - <p> - Now if <a href="http://p.p/" target="_top">http://p.p/</a> works - for you, but other parts of <span class= - "APPLICATION">Privoxy</span>'s web interface show the dummy page, - your browser has cached a redirection it encountered before <span - class="APPLICATION">Privoxy</span> was being used. You need to - clear your browser's cache. Note that shift-reloading the dummy - page won't help, since that'll only refresh the dummy page, not the - redirection that lead you there. - </p> - <p> - The procedure for clearing the cache varies from browser to - browser. For example, <span class= - "APPLICATION">Mozilla/Netscape</span> users would click <span - class="GUIBUTTON">Edit</span> --> <span class= - "GUIBUTTON">Preferences</span> --> <span class= - "GUIBUTTON">Advanced</span> --> <span class= - "GUIBUTTON">Cache</span> and then click both <span class= - "QUOTE">"<span class="GUIBUTTON">Clear Memory Cache</span>"</span> - and <span class="QUOTE">"<span class="GUIBUTTON">Clear Disk - Cache</span>"</span>. In some <span class= - "APPLICATION">Firefox</span> versions it's <span class= - "GUIBUTTON">Tools</span> --> <span class= - "GUIBUTTON">Options</span> --> <span class= - "GUIBUTTON">Privacy</span> --> <span class= - "GUIBUTTON">Cache</span> and then click <span class="QUOTE">"<span - class="GUIBUTTON">Clear Cache Now</span>"</span>. - </p> - </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="WHICHOS" id="WHICHOS">2.2. Which operating + systems are supported?</a></h3> + + <p>At present, <span class="APPLICATION">Privoxy</span> is known to run + on Windows(95, 98, ME, 2000, XP, Vista), GNU/Linux (RedHat, SuSE, + Debian, Fedora, Gentoo, Slackware and others), Mac OSX, OS/2, AmigaOS, + FreeBSD, NetBSD, OpenBSD, Solaris, and various other flavors of + Unix.</p> + + <p>But any operating system that runs TCP/IP, can conceivably take + advantage of <span class="APPLICATION">Privoxy</span> in a networked + situation where <span class="APPLICATION">Privoxy</span> would run as a + server on a LAN gateway. Then only the <span class= + "QUOTE">"gateway"</span> needs to be running one of the above operating + systems.</p> + + <p>Source code is freely available, so porting to other operating + systems is always a possibility.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="EMAIL-CLIENT" id="EMAIL-CLIENT">2.3. Can I + use Privoxy with my email client?</a></h3> + + <p>As long as there is some way to set a HTTP proxy for the client, + then yes, any application can be used, whether it is strictly speaking + a <span class="QUOTE">"browser"</span> or not. Though this may not be + the best approach for dealing with some of the common abuses of HTML in + email. See <a href="configuration.html#OUTLOOK">How can I configure + <span class="APPLICATION">Privoxy</span> with <span class= + "APPLICATION">Outlook</span>?</a> below for more on this.</p> + + <p>Be aware that HTML email presents a number of unique security and + privacy related issues, that can require advanced skills to overcome. + The developers recommend using email clients that can be configured to + convert HTML to plain text for these reasons.</p> </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="general.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="configuration.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - General Information - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Configuration - </td> - </tr> - </table> + + <div class="SECT2"> + <h3 class="SECT2"><a name="FIRSTSTEP" id="FIRSTSTEP">2.4. I just + installed Privoxy. Is there anything special I have to do now?</a></h3> + + <p>All browsers should be told to use <span class= + "APPLICATION">Privoxy</span> as a proxy by specifying the correct proxy + address and port number in the appropriate configuration area for the + browser. It's possible to combine <span class= + "APPLICATION">Privoxy</span> with a packet filter to intercept HTTP + requests even if the client isn't explicitly configured to use + <span class="APPLICATION">Privoxy</span>, but where possible, + configuring the client is recommended. See <a href= + "../user-manual/startup.html" target="_top">the User Manual for more + details</a>. You should also flush your browser's memory and disk cache + to get rid of any cached junk items, and remove any stored <a href= + "http://en.wikipedia.org/wiki/Browser_cookie" target= + "_top">cookies</a>.</p> </div> - </body> -</html> + <div class="SECT2"> + <h3 class="SECT2"><a name="LOCALHOST" id="LOCALHOST">2.5. What is the + proxy address of Privoxy?</a></h3> + + <p>If you set up the <span class="APPLICATION">Privoxy</span> to run on + the computer you browse from (rather than your ISP's server or some + networked computer on a LAN), the proxy will be on <tt class= + "LITERAL">127.0.0.1</tt> (sometimes referred to as <span class= + "QUOTE">"localhost"</span>, which is the special name used by every + computer on the Internet to refer to itself) and the port will be 8118 + (unless you used the <a href= + "../user-manual/config.html#LISTEN-ADDRESS" target= + "_top">listen-address</a> config option to tell <span class= + "APPLICATION">Privoxy</span> to run on a different port).</p> + + <p>When configuring your browser's proxy settings you typically enter + the word <span class="QUOTE">"localhost"</span> or the IP address + <span class="QUOTE">"127.0.0.1"</span> in the boxes next to + <span class="QUOTE">"HTTP"</span> and <span class= + "QUOTE">"Secure"</span> (HTTPS) and then the number <span class= + "QUOTE">"8118"</span> for <span class="QUOTE">"port"</span>. This tells + your browser to send all web requests to <span class= + "APPLICATION">Privoxy</span> instead of directly to the Internet.</p> + + <p><span class="APPLICATION">Privoxy</span> can also be used to proxy + for a Local Area Network. In this case, your would enter either the IP + address of the LAN host where <span class="APPLICATION">Privoxy</span> + is running, or the equivalent hostname, e.g. <tt class= + "LITERAL">192.168.1.1</tt>. Port assignment would be same as above. + Note that <span class="APPLICATION">Privoxy</span> doesn't listen on + any LAN interfaces by default.</p> + + <p><span class="APPLICATION">Privoxy</span> does not currently handle + any other protocols such as FTP, SMTP, IM, IRC, ICQ, etc.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="NOTHING" id="NOTHING">2.6. I just installed + Privoxy, and nothing is happening. All the ads are there. What's + wrong?</a></h3> + + <p>Did you configure your browser to use <span class= + "APPLICATION">Privoxy</span> as a proxy? It does not sound like it. See + above. You might also try flushing the browser's caches to force a full + re-reading of pages. You can verify that <span class= + "APPLICATION">Privoxy</span> is running, and your browser is correctly + configured by entering the special URL: <a href="http://p.p/" target= + "_top">http://p.p/</a>. This should take you to a page titled + <span class="QUOTE">"This is Privoxy.."</span> with access to + <span class="APPLICATION">Privoxy's</span> internal configuration. If + you see this, then you are good to go. If you receive a page saying + <span class="QUOTE">"Privoxy is not running"</span>, then the browser + is not set up to use your <span class="APPLICATION">Privoxy</span> + installation. If you receive anything else (probably nothing at all), + it could either be that the browser is not set up correctly, or that + <span class="APPLICATION">Privoxy</span> is not running at all. Check + the <a href="../user-manual/config.html#LOGFILE" target="_top">log + file</a>. For instructions on starting <span class= + "APPLICATION">Privoxy</span> and browser configuration, see the + <a href="http://www.privoxy.org/user-manual/startup.html" target= + "_top">chapter on starting <span class="APPLICATION">Privoxy</span></a> + in the <a href="http://www.privoxy.org/user-manual/" target="_top">User + Manual</a>.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="NOTUSED" id="NOTUSED">2.7. I get a + <span class="QUOTE">"Privoxy is not being used"</span> dummy page + although Privoxy is running and being used.</a></h3> + + <p>First, make sure that Privoxy is <span class= + "emphasis EMPHASIS c2">really</span> running and being used by visiting + <a href="http://p.p/" target="_top">http://p.p/</a>. You should see the + <span class="APPLICATION">Privoxy</span> main page. If not, see the + <a href="http://www.privoxy.org/user-manual/startup.html" target= + "_top">chapter on starting <span class="APPLICATION">Privoxy</span></a> + in the <a href="http://www.privoxy.org/user-manual/" target="_top">User + Manual</a>.</p> + + <p>Now if <a href="http://p.p/" target="_top">http://p.p/</a> works for + you, but other parts of <span class="APPLICATION">Privoxy</span>'s web + interface show the dummy page, your browser has cached a redirection it + encountered before <span class="APPLICATION">Privoxy</span> was being + used. You need to clear your browser's cache. Note that shift-reloading + the dummy page won't help, since that'll only refresh the dummy page, + not the redirection that lead you there.</p> + + <p>The procedure for clearing the cache varies from browser to browser. + For example, <span class="APPLICATION">Mozilla/Netscape</span> users + would click <span class="GUIBUTTON">Edit</span> --> <span class= + "GUIBUTTON">Preferences</span> --> <span class= + "GUIBUTTON">Advanced</span> --> <span class="GUIBUTTON">Cache</span> + and then click both <span class="QUOTE">"<span class="GUIBUTTON">Clear + Memory Cache</span>"</span> and <span class="QUOTE">"<span class= + "GUIBUTTON">Clear Disk Cache</span>"</span>. In some <span class= + "APPLICATION">Firefox</span> versions it's <span class= + "GUIBUTTON">Tools</span> --> <span class="GUIBUTTON">Options</span> + --> <span class="GUIBUTTON">Privacy</span> --> <span class= + "GUIBUTTON">Cache</span> and then click <span class= + "QUOTE">"<span class="GUIBUTTON">Clear Cache Now</span>"</span>.</p> + </div> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="general.html" + accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + + <td width="33%" align="right" valign="top"><a href= + "configuration.html" accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">General Information</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Configuration</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/faq/misc.html b/doc/webserver/faq/misc.html index cc1b1baa..b028cf6d 100644 --- a/doc/webserver/faq/misc.html +++ b/doc/webserver/faq/misc.html @@ -1,1062 +1,929 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Miscellaneous - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy Frequently Asked Questions" href= - "index.html"> - <link rel="PREVIOUS" title="Configuration" href="configuration.html"> - <link rel="NEXT" title="Troubleshooting" href="trouble.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Miscellaneous</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy Frequently Asked Questions" href= + "index.html"> + <link rel="PREVIOUS" title="Configuration" href="configuration.html"> + <link rel="NEXT" title="Troubleshooting" href="trouble.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy Frequently Asked Questions - </th> - </tr> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + table.c3 {background-color: #E0E0E0} + span.c2 {font-style: italic} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy Frequently Asked + Questions</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href= + "configuration.html" accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href="trouble.html" + accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="MISC" id="MISC">4. Miscellaneous</a></h1> + + <div class="SECT2"> + <h3 class="SECT2"><a name="AEN738" id="AEN738">4.1. How much does + Privoxy slow my browsing down? This has to add extra time to + browsing.</a></h3> + + <p>How much of an impact depends on many things, including the CPU of + the host system, how aggressive the configuration is, which specific + actions are being triggered, the size of the page, the bandwidth of the + connection, etc.</p> + + <p>Overall, it should not slow you down any in real terms, and may + actually help speed things up since ads, banners and other junk are not + typically being retrieved and displayed. The actual processing time + required by <span class="APPLICATION">Privoxy</span> itself for each + page, is relatively small in the overall scheme of things, and happens + very quickly. This is typically more than offset by time saved not + downloading and rendering ad images and other junk content (if ad + blocking is being used).</p> + + <p><span class="QUOTE">"Filtering"</span> content via the <tt class= + "LITERAL"><a href="../user-manual/actions-file.html#FILTER" target= + "_top">filter</a></tt> or <tt class="LITERAL"><a href= + "../user-manual/actions-file.html#DEANIMATE-GIFS" target= + "_top">deanimate-gifs</a></tt> actions may cause a perceived slowdown, + since the entire document needs to be buffered before displaying. And + on very large documents, filtering may have some measurable impact. How + much depends on the page size, the actual definition of the filter(s), + etc. See below. Most other actions have little to no impact on + speed.</p> + + <p>Also, when filtering is enabled but zlib support isn't available, + compression is often disabled (see <a href= + "../user-manual/actions-file.html#PREVENT-COMPRESSION" target= + "_top">prevent-compression</a>). This can have an impact on speed as + well, although it's probably smaller than you might think. Again, the + page size, etc. will determine how much of an impact.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="LOADINGTIMES" id="LOADINGTIMES">4.2. I + notice considerable delays in page requests. What's wrong?</a></h3> + + <p>If you use any <tt class="LITERAL"><a href= + "../user-manual/actions-file.html#FILTER" target="_top">filter</a></tt> + action, such as filtering banners by size, web-bugs etc, or the + <tt class="LITERAL"><a href= + "../user-manual/actions-file.html#DEANIMATE-GIFS" target= + "_top">deanimate-gifs</a></tt> action, the entire document must be + loaded into memory in order for the filtering mechanism to work, and + nothing is sent to the browser during this time.</p> + + <p>The loading time typically does not really change much in real + numbers, but the feeling is different, because most browsers are able + to start rendering incomplete content, giving the user a feeling of "it + works". This effect is more noticeable on slower dialup connections. + Extremely large documents may have some impact on the time to load the + page where there is filtering being done. But overall, the difference + should be very minimal. If there is a big impact, then probably some + other situation is contributing (like anti-virus software).</p> + + <p>Filtering is automatically disabled for inappropriate MIME types. + But note that if the web server mis-reports the MIME type, then content + that should not be filtered, could be. <span class= + "APPLICATION">Privoxy</span> only knows how to differentiate filterable + content because of the MIME type as reported by the server, or because + of some configuration setting that enables/disables filtering.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="CONFIGURL" id="CONFIGURL">4.3. What are + "http://config.privoxy.org/" and "http://p.p/"?</a></h3> + + <p><a href="http://config.privoxy.org/" target= + "_top">http://config.privoxy.org/</a> is the address of <span class= + "APPLICATION">Privoxy</span>'s built-in user interface, and <a href= + "http://p.p/" target="_top">http://p.p/</a> is a shortcut for it.</p> + + <p>Since <span class="APPLICATION">Privoxy</span> sits between your web + browser and the Internet, it can simply intercept requests for these + addresses and answer them with its built-in <span class="QUOTE">"web + server"</span>.</p> + + <p>This also makes for a good test for your browser configuration: If + entering the URL <a href="http://config.privoxy.org/" target= + "_top">http://config.privoxy.org/</a> takes you to a page saying + <span class="QUOTE">"This is Privoxy ..."</span>, everything is OK. If + you get a page saying <span class="QUOTE">"Privoxy is not + working"</span> instead, then your browser didn't use <span class= + "APPLICATION">Privoxy</span> for the request, hence it could not be + intercepted, and you have accessed the <span class= + "emphasis EMPHASIS c2">real</span> web site at config.privoxy.org.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="NEWADS" id="NEWADS">4.4. How can I submit + new ads, or report problems?</a></h3> + + <p>Please see the <a href="contact.html">Contact section</a> for + various ways to interact with the developers.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="NEWADS2" id="NEWADS2">4.5. If I do submit + missed ads, will they be included in future updates?</a></h3> + + <p>Whether such submissions are eventually included in the <tt class= + "FILENAME">default.action</tt> configuration file depends on how + significant the issue is. We of course want to address any potential + problem with major, high-profile sites such as <i class= + "CITETITLE">Google</i>, <i class="CITETITLE">Yahoo</i>, etc. Any site + with global or regional reach, has a good chance of being a candidate. + But at the other end of the spectrum are any number of smaller, + low-profile sites such as for local clubs or schools. Since their reach + and impact are much less, they are best handled by inclusion in the + user's <tt class="FILENAME">user.action</tt>, and thus would be + unlikely to be included.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="NOONECARES" id="NOONECARES">4.6. Why doesn't + anyone answer my support request?</a></h3> + + <p>Rest assured that it has been read and considered. Why it is not + answered, could be for various reasons, including no one has a good + answer for it, no one has had time to yet investigate it thoroughly, it + has been reported numerous times already, or because not enough + information was provided to help us help you. Your efforts are not + wasted, and we do appreciate them.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="IP" id="IP">4.7. How can I hide my IP + address?</a></h3> + + <p>If you run both the browser and <span class= + "APPLICATION">Privoxy</span> locally, you cannot hide your IP address + with <span class="APPLICATION">Privoxy</span> or ultimately any other + software alone. The server needs to know your IP address so that it + knows where to send the responses back.</p> + + <p>There are many publicly usable "anonymous" proxies out there, which + provide a further level of indirection between you and the web + server.</p> + + <p>However, these proxies are called "anonymous" because you don't need + to authenticate, not because they would offer any real anonymity. Most + of them will log your IP address and make it available to the + authorities in case you violate the law of the country they run in. In + fact you can't even rule out that some of them only exist to *collect* + information on (those suspicious) people with a more than average + preference for privacy.</p> + + <p>If you want to hide your IP address from most adversaries, you + should consider chaining <span class="APPLICATION">Privoxy</span> with + <a href="https://www.torproject.org/" target="_top">Tor</a>. The + configuration details can be found in <a href="#TOR" target="_top">How + do I use <span class="APPLICATION">Privoxy</span> together with + <span class="APPLICATION">Tor</span> section</a> just below.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="AEN803" id="AEN803">4.8. Can Privoxy + guarantee I am anonymous?</a></h3> + + <p>No. Your chances of remaining anonymous are improved, but unless you + <a href="#TOR" target="_top">chain <span class= + "APPLICATION">Privoxy</span> with <span class= + "APPLICATION">Tor</span></a> or a similar proxy and know what you're + doing when it comes to configuring the rest of your system, you should + assume that everything you do on the Web can be traced back to you.</p> + + <p><span class="APPLICATION">Privoxy</span> can remove various + information about you, and allows <span class= + "emphasis EMPHASIS c2">you</span> more freedom to decide which sites + you can trust, and what details you want to reveal. But it neither + hides your IP address, nor can it guarantee that the rest of the system + behaves correctly. There are several possibilities how a web sites can + find out who you are, even if you are using a strict <span class= + "APPLICATION">Privoxy</span> configuration and chained it with + <span class="APPLICATION">Tor</span>.</p> + + <p>Most of <span class="APPLICATION">Privoxy's</span> privacy-enhancing + features can be easily subverted by an insecure browser configuration, + therefore you should use a browser that can be configured to only + execute code from trusted sites, and be careful which sites you trust. + For example there is no point in having <span class= + "APPLICATION">Privoxy</span> modify the User-Agent header, if websites + can get all the information they want through JavaScript, ActiveX, + Flash, Java etc.</p> + + <p>A few browsers disclose the user's email address in certain + situations, such as when transferring a file by FTP. <span class= + "APPLICATION">Privoxy</span> does not filter FTP. If you need this + feature, or are concerned about the mail handler of your browser + disclosing your email address, you might consider products such as + <span class="APPLICATION">NSClean</span>.</p> + + <p>Browsers available only as binaries could use non-standard headers + to give out any information they can have access to: see the + manufacturer's license agreement. It's impossible to anticipate and + prevent every breach of privacy that might occur. The professionally + paranoid prefer browsers available as source code, because anticipating + their behavior is easier. Trust the source, Luke!</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="AEN821" id="AEN821">4.9. A test site says I + am not using a Proxy.</a></h3> + + <p>Good! Actually, they are probably testing for some other kinds of + proxies. Hiding yourself completely would require additional steps.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="TOR" id="TOR">4.10. How do I use Privoxy + together with Tor?</a></h3> + + <p>Before you configure <span class="APPLICATION">Privoxy</span> to use + <a href="https://www.torproject.org/" target="_top">Tor</a>, please + follow the <i class="CITETITLE">User Manual</i> chapters <a href= + "../user-manual/installation.html" target="_top">2. Installation</a> + and <a href="../user-manual/startup.html" target="_top">5. Startup</a> + to make sure <span class="APPLICATION">Privoxy</span> itself is setup + correctly.</p> + + <p>If it is, refer to <a href= + "https://www.torproject.org/documentation.html" target="_top">Tor's + extensive documentation</a> to learn how to install <span class= + "APPLICATION">Tor</span>, and make sure <span class= + "APPLICATION">Tor</span>'s logfile says that <span class="QUOTE">"Tor + has successfully opened a circuit"</span> and it <span class= + "QUOTE">"looks like client functionality is working"</span>.</p> + + <p>If either <span class="APPLICATION">Tor</span> or <span class= + "APPLICATION">Privoxy</span> isn't working, their combination most + likely will neither. Testing them on their own will also help you to + direct problem reports to the right audience. If <span class= + "APPLICATION">Privoxy</span> isn't working, don't bother the + <span class="APPLICATION">Tor</span> developers. If <span class= + "APPLICATION">Tor</span> isn't working, don't send bug reports to the + <span class="APPLICATION">Privoxy</span> Team.</p> + + <p>If you verified that <span class="APPLICATION">Privoxy</span> and + <span class="APPLICATION">Tor</span> are working, it is time to connect + them. As far as <span class="APPLICATION">Privoxy</span> is concerned, + <span class="APPLICATION">Tor</span> is just another proxy that can be + reached by socks4, socks4a and socks5. Most likely you are interested + in <span class="APPLICATION">Tor</span> to increase your anonymity + level, therefore you should use socks5, to make sure DNS requests are + done through <span class="APPLICATION">Tor</span> and thus invisible to + your local network. Using socks4a would work too, but with socks5 you + get more precise error messages.</p> + + <p>Since <span class="APPLICATION">Privoxy</span> 3.0.5, its <a href= + "../user-manual/config.html" target="_top">main configuration file</a> + is already prepared for <span class="APPLICATION">Tor</span>, if you + are using a default <span class="APPLICATION">Tor</span> configuration + and run it on the same system as <span class= + "APPLICATION">Privoxy</span>, you just have to edit the <a href= + "../user-manual/config.html#FORWARDING" target="_top">forwarding + section</a> and uncomment the line:</p> + + <table class="c3" border="0" width="100%"> <tr> - <td width="10%" align="left" valign="bottom"> - <a href="configuration.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="trouble.html" accesskey="N">Next</a> + <td> + <pre class="SCREEN"> +# forward-socks5 / 127.0.0.1:9050 . + +</pre> </td> </tr> </table> - <hr width="100%" class="c1"> - </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="MISC">4. Miscellaneous</a> - </h1> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="AEN729">4.1. How much does Privoxy slow my browsing down? - This has to add extra time to browsing.</a> - </h3> - <p> - How much of an impact depends on many things, including the CPU of - the host system, how aggressive the configuration is, which - specific actions are being triggered, the size of the page, the - bandwidth of the connection, etc. - </p> - <p> - Overall, it should not slow you down any in real terms, and may - actually help speed things up since ads, banners and other junk are - not typically being retrieved and displayed. The actual processing - time required by <span class="APPLICATION">Privoxy</span> itself - for each page, is relatively small in the overall scheme of things, - and happens very quickly. This is typically more than offset by - time saved not downloading and rendering ad images and other junk - content (if ad blocking is being used). - </p> - <p> - <span class="QUOTE">"Filtering"</span> content via the <tt class= - "LITERAL"><a href="../user-manual/actions-file.html#FILTER" target= - "_top">filter</a></tt> or <tt class="LITERAL"><a href= - "../user-manual/actions-file.html#DEANIMATE-GIFS" target= - "_top">deanimate-gifs</a></tt> actions may cause a perceived - slowdown, since the entire document needs to be buffered before - displaying. And on very large documents, filtering may have some - measurable impact. How much depends on the page size, the actual - definition of the filter(s), etc. See below. Most other actions - have little to no impact on speed. - </p> - <p> - Also, when filtering is enabled but zlib support isn't available, - compression is often disabled (see <a href= - "../user-manual/actions-file.html#PREVENT-COMPRESSION" target= - "_top">prevent-compression</a>). This can have an impact on speed - as well, although it's probably smaller than you might think. - Again, the page size, etc. will determine how much of an impact. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="LOADINGTIMES">4.2. I notice considerable delays in page - requests. What's wrong?</a> - </h3> - <p> - If you use any <tt class="LITERAL"><a href= - "../user-manual/actions-file.html#FILTER" target= - "_top">filter</a></tt> action, such as filtering banners by size, - web-bugs etc, or the <tt class="LITERAL"><a href= - "../user-manual/actions-file.html#DEANIMATE-GIFS" target= - "_top">deanimate-gifs</a></tt> action, the entire document must be - loaded into memory in order for the filtering mechanism to work, - and nothing is sent to the browser during this time. - </p> - <p> - The loading time typically does not really change much in real - numbers, but the feeling is different, because most browsers are - able to start rendering incomplete content, giving the user a - feeling of "it works". This effect is more noticeable on slower - dialup connections. Extremely large documents may have some impact - on the time to load the page where there is filtering being done. - But overall, the difference should be very minimal. If there is a - big impact, then probably some other situation is contributing - (like anti-virus software). - </p> - <p> - Filtering is automatically disabled for inappropriate MIME types. - But note that if the web server mis-reports the MIME type, then - content that should not be filtered, could be. <span class= - "APPLICATION">Privoxy</span> only knows how to differentiate - filterable content because of the MIME type as reported by the - server, or because of some configuration setting that - enables/disables filtering. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="CONFIGURL">4.3. What are "http://config.privoxy.org/" and - "http://p.p/"?</a> - </h3> - <p> - <a href="http://config.privoxy.org/" target= - "_top">http://config.privoxy.org/</a> is the address of <span - class="APPLICATION">Privoxy</span>'s built-in user interface, and - <a href="http://p.p/" target="_top">http://p.p/</a> is a shortcut - for it. - </p> - <p> - Since <span class="APPLICATION">Privoxy</span> sits between your - web browser and the Internet, it can simply intercept requests for - these addresses and answer them with its built-in <span class= - "QUOTE">"web server"</span>. - </p> - <p> - This also makes for a good test for your browser configuration: If - entering the URL <a href="http://config.privoxy.org/" target= - "_top">http://config.privoxy.org/</a> takes you to a page saying - <span class="QUOTE">"This is Privoxy ..."</span>, everything is OK. - If you get a page saying <span class="QUOTE">"Privoxy is not - working"</span> instead, then your browser didn't use <span class= - "APPLICATION">Privoxy</span> for the request, hence it could not be - intercepted, and you have accessed the <span class="emphasis"><i - class="EMPHASIS">real</i></span> web site at config.privoxy.org. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="NEWADS">4.4. How can I submit new ads, or report - problems?</a> - </h3> - <p> - Please see the <a href="contact.html">Contact section</a> for - various ways to interact with the developers. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="NEWADS2">4.5. If I do submit missed ads, will they be - included in future updates?</a> - </h3> - <p> - Whether such submissions are eventually included in the <tt class= - "FILENAME">default.action</tt> configuration file depends on how - significant the issue is. We of course want to address any - potential problem with major, high-profile sites such as <i class= - "CITETITLE">Google</i>, <i class="CITETITLE">Yahoo</i>, etc. Any - site with global or regional reach, has a good chance of being a - candidate. But at the other end of the spectrum are any number of - smaller, low-profile sites such as for local clubs or schools. - Since their reach and impact are much less, they are best handled - by inclusion in the user's <tt class="FILENAME">user.action</tt>, - and thus would be unlikely to be included. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="NOONECARES">4.6. Why doesn't anyone answer my support - request?</a> - </h3> - <p> - Rest assured that it has been read and considered. Why it is not - answered, could be for various reasons, including no one has a good - answer for it, no one has had time to yet investigate it - thoroughly, it has been reported numerous times already, or because - not enough information was provided to help us help you. Your - efforts are not wasted, and we do appreciate them. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="IP">4.7. How can I hide my IP address?</a> - </h3> - <p> - If you run both the browser and <span class= - "APPLICATION">Privoxy</span> locally, you cannot hide your IP - address with <span class="APPLICATION">Privoxy</span> or ultimately - any other software alone. The server needs to know your IP address - so that it knows where to send the responses back. - </p> - <p> - There are many publicly usable "anonymous" proxies out there, which - provide a further level of indirection between you and the web - server. - </p> - <p> - However, these proxies are called "anonymous" because you don't - need to authenticate, not because they would offer any real - anonymity. Most of them will log your IP address and make it - available to the authorities in case you violate the law of the - country they run in. In fact you can't even rule out that some of - them only exist to *collect* information on (those suspicious) - people with a more than average preference for privacy. - </p> - <p> - If you want to hide your IP address from most adversaries, you - should consider chaining <span class="APPLICATION">Privoxy</span> - with <a href="https://www.torproject.org/" target="_top">Tor</a>. - The configuration details can be found in <a href="#TOR" target= - "_top">How do I use <span class="APPLICATION">Privoxy</span> - together with <span class="APPLICATION">Tor</span> section</a> just - below. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="AEN794">4.8. Can Privoxy guarantee I am anonymous?</a> - </h3> - <p> - No. Your chances of remaining anonymous are improved, but unless - you <a href="#TOR" target="_top">chain <span class= - "APPLICATION">Privoxy</span> with <span class= - "APPLICATION">Tor</span></a> or a similar proxy and know what - you're doing when it comes to configuring the rest of your system, - you should assume that everything you do on the Web can be traced - back to you. - </p> - <p> - <span class="APPLICATION">Privoxy</span> can remove various - information about you, and allows <span class="emphasis"><i class= - "EMPHASIS">you</i></span> more freedom to decide which sites you - can trust, and what details you want to reveal. But it neither - hides your IP address, nor can it guarantee that the rest of the - system behaves correctly. There are several possibilities how a web - sites can find out who you are, even if you are using a strict - <span class="APPLICATION">Privoxy</span> configuration and chained - it with <span class="APPLICATION">Tor</span>. - </p> - <p> - Most of <span class="APPLICATION">Privoxy's</span> - privacy-enhancing features can be easily subverted by an insecure - browser configuration, therefore you should use a browser that can - be configured to only execute code from trusted sites, and be - careful which sites you trust. For example there is no point in - having <span class="APPLICATION">Privoxy</span> modify the - User-Agent header, if websites can get all the information they - want through JavaScript, ActiveX, Flash, Java etc. - </p> - <p> - A few browsers disclose the user's email address in certain - situations, such as when transferring a file by FTP. <span class= - "APPLICATION">Privoxy</span> does not filter FTP. If you need this - feature, or are concerned about the mail handler of your browser - disclosing your email address, you might consider products such as - <span class="APPLICATION">NSClean</span>. - </p> - <p> - Browsers available only as binaries could use non-standard headers - to give out any information they can have access to: see the - manufacturer's license agreement. It's impossible to anticipate and - prevent every breach of privacy that might occur. The - professionally paranoid prefer browsers available as source code, - because anticipating their behavior is easier. Trust the source, - Luke! - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="AEN812">4.9. A test site says I am not using a Proxy.</a> - </h3> - <p> - Good! Actually, they are probably testing for some other kinds of - proxies. Hiding yourself completely would require additional steps. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="TOR">4.10. How do I use Privoxy together with Tor?</a> - </h3> - <p> - Before you configure <span class="APPLICATION">Privoxy</span> to - use <a href="https://www.torproject.org/" target="_top">Tor</a>, - please follow the <i class="CITETITLE">User Manual</i> chapters <a - href="../user-manual/installation.html" target="_top">2. - Installation</a> and <a href="../user-manual/startup.html" target= - "_top">5. Startup</a> to make sure <span class= - "APPLICATION">Privoxy</span> itself is setup correctly. - </p> - <p> - If it is, refer to <a href= - "https://www.torproject.org/documentation.html" target="_top">Tor's - extensive documentation</a> to learn how to install <span class= - "APPLICATION">Tor</span>, and make sure <span class= - "APPLICATION">Tor</span>'s logfile says that <span class= - "QUOTE">"Tor has successfully opened a circuit"</span> and it <span - class="QUOTE">"looks like client functionality is working"</span>. - </p> - <p> - If either <span class="APPLICATION">Tor</span> or <span class= - "APPLICATION">Privoxy</span> isn't working, their combination most - likely will neither. Testing them on their own will also help you - to direct problem reports to the right audience. If <span class= - "APPLICATION">Privoxy</span> isn't working, don't bother the <span - class="APPLICATION">Tor</span> developers. If <span class= - "APPLICATION">Tor</span> isn't working, don't send bug reports to - the <span class="APPLICATION">Privoxy</span> Team. - </p> - <p> - If you verified that <span class="APPLICATION">Privoxy</span> and - <span class="APPLICATION">Tor</span> are working, it is time to - connect them. As far as <span class="APPLICATION">Privoxy</span> is - concerned, <span class="APPLICATION">Tor</span> is just another - proxy that can be reached by socks4, socks4a and socks5. Most - likely you are interested in <span class="APPLICATION">Tor</span> - to increase your anonymity level, therefore you should use socks5, - to make sure DNS requests are done through <span class= - "APPLICATION">Tor</span> and thus invisible to your local network. - Using socks4a would work too, but with socks5 you get more precise - error messages. - </p> - <p> - Since <span class="APPLICATION">Privoxy</span> 3.0.5, its <a href= - "../user-manual/config.html" target="_top">main configuration - file</a> is already prepared for <span class= - "APPLICATION">Tor</span>, if you are using a default <span class= - "APPLICATION">Tor</span> configuration and run it on the same - system as <span class="APPLICATION">Privoxy</span>, you just have - to edit the <a href="../user-manual/config.html#FORWARDING" target= - "_top">forwarding section</a> and uncomment the line: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> -# forward-socks5 / 127.0.0.1:9050 . -</pre> - </td> - </tr> - </table> - - <p> - This is enough to reach the Internet, but additionally you might - want to uncomment the following forward rules, to make sure your - local network is still reachable through Privoxy: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + + <p>This is enough to reach the Internet, but additionally you might + want to uncomment the following forward rules, to make sure your local + network is still reachable through Privoxy:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> # forward 192.168.*.*/ . # forward 10.*.*.*/ . # forward 127.*.*.*/ . + </pre> - </td> - </tr> - </table> - - <p> - Unencrypted connections to systems in these address ranges will be - as (un)secure as the local network is, but the alternative is that - your browser can't reach the network at all. Then again, that may - actually be desired and if you don't know for sure that your - browser has to be able to reach the local network, there's no - reason to allow it. - </p> - <p> - If you want your browser to be able to reach servers in your local - network by using their names, you will need additional exceptions - that look like this: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>Unencrypted connections to systems in these address ranges will be + as (un)secure as the local network is, but the alternative is that your + browser can't reach the network at all. Then again, that may actually + be desired and if you don't know for sure that your browser has to be + able to reach the local network, there's no reason to allow it.</p> + + <p>If you want your browser to be able to reach servers in your local + network by using their names, you will need additional exceptions that + look like this:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> # forward localhost/ . + </pre> - </td> - </tr> - </table> - - <p> - Save the modified configuration file and open <a href= - "http://config.privoxy.org/show-status" target= - "_top">http://config.privoxy.org/show-status/</a> in your browser, - confirm that <span class="APPLICATION">Privoxy</span> has reloaded - its configuration and that there are no other forward lines, unless - you know that you need them. If everything looks good, refer to <a - href= - "https://wiki.torproject.org/noreply/TheOnionRouter/TorFAQ#IsMyConnectionPrivate" - target="_top">Tor Faq 4.2</a> to learn how to verify that you are - really using <span class="APPLICATION">Tor</span>. - </p> - <p> - Afterward, please take the time to at least skim through the rest - of <span class="APPLICATION">Tor's</span> documentation. Make sure - you understand what <span class="APPLICATION">Tor</span> does, why - it is no replacement for application level security, and why you - probably don't want to use it for unencrypted logins. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="AEN868">4.11. Might some things break because header - information or content is being altered?</a> - </h3> - <p> - Definitely. It is common for sites to use browser type, browser - version, HTTP header content, and various other techniques in order - to dynamically decide what to display and how to display it. What - you see, and what I see, might be very different. There are many, - many ways that this can be handled, so having hard and fast rules, - is tricky. - </p> - <p> - The <span class="QUOTE">"User-Agent"</span> is sometimes used in - this way to identify the browser, and adjust content accordingly. - </p> - <p> - Also, different browsers use different encodings of non-English - characters, certain web servers convert pages on-the-fly according - to the User Agent header. Giving a <span class="QUOTE">"User - Agent"</span> with the wrong operating system or browser - manufacturer causes some sites in these languages to be garbled; - Surfers to Eastern European sites should change it to something - closer. And then some page access counters work by looking at the - <span class="QUOTE">"Referer"</span> header; they may fail or break - if unavailable. The weather maps of Intellicast have been blocked - by their server when no <span class="QUOTE">"Referer"</span> or - cookie is provided, is another example. (But you can forge both - headers without giving information away). There are many other ways - things can go wrong when trying to fool a web server. The results - of which could inadvertently cause pages to load incorrectly, - partially, or even not at all. And there may be no obvious clues as - to just what went wrong, or why. Nowhere will there be a message - that says <span class="QUOTE">"<span class="emphasis"><i class= - "EMPHASIS">Turn off <tt class="LITERAL">fast-redirects</tt> or - else!</i></span> "</span> - </p> - <p> - Similar thoughts apply to modifying JavaScript, and, to a lesser - degree, HTML elements. - </p> - <p> - If you have problems with a site, you will have to adjust your - configuration accordingly. Cookies are probably the most likely - adjustment that may be required, but by no means the only one. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="AEN882">4.12. Can Privoxy act as a <span class= - "QUOTE">"caching"</span> proxy to speed up web browsing?</a> - </h3> - <p> - No, it does not have this ability at all. You want something like - <a href="http://www.squid-cache.org/" target="_top">Squid</a> or <a - href="http://www.pps.jussieu.fr/~jch/software/polipo/" target= - "_top">Polipo</a> for this. And, yes, before you ask, <span class= - "APPLICATION">Privoxy</span> can co-exist with other kinds of - proxies like <span class="APPLICATION">Squid</span>. See the <a - href="../user-manual/config.html#FORWARDING" target= - "_top">forwarding chapter</a> in the <a href= - "../user-manual/index.html" target="_top">user manual</a> for - details. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="AEN892">4.13. What about as a firewall? Can Privoxy - protect me?</a> - </h3> - <p> - Not in the way you mean, or in the way some firewall vendors claim - they can. <span class="APPLICATION">Privoxy</span> can help protect - your privacy, but can't protect your system from intrusion - attempts. It is, of course, perfectly possible to use <span class= - "emphasis"><i class="EMPHASIS">both</i></span>. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="AEN897">4.14. I have large empty spaces / a checkerboard - pattern now where ads used to be. Why?</a> - </h3> - <p> - It is technically possible to eliminate banners and ads in a way - that frees their allocated page space. This could easily be done by - blocking with <span class="APPLICATION">Privoxy's</span> filters, - and eliminating the <span class="emphasis"><i class= - "EMPHASIS">entire</i></span> image references from the HTML page - source. - </p> - <p> - But, this would consume considerably more CPU resources (IOW, slow - things down), would likely destroy the layout of some web pages - which rely on the banners utilizing a certain amount of page space, - and might fail in other cases, where the screen space is reserved - (e.g. by HTML tables for instance). Also, making ads and banners - disappear without any trace complicates troubleshooting, and would - sooner or later be problematic. - </p> - <p> - The better alternative is to instead let them stay, and block the - resulting requests for the banners themselves as is now the case. - This leaves either empty space, or the familiar checkerboard - pattern. - </p> - <p> - So the developers won't support this in the default configuration, - but you can of course define appropriate filters yourself to - achieve this. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="AEN905">4.15. How can Privoxy filter Secure (HTTPS) - URLs?</a> - </h3> - <p> - Since secure HTTP connections are encrypted SSL sessions between - your browser and the secure site, and are meant to be reliably - <span class="emphasis"><i class="EMPHASIS">secure</i></span>, there - is little that <span class="APPLICATION">Privoxy</span> can do but - hand the raw gibberish data though from one end to the other - unprocessed. - </p> - <p> - The only exception to this is blocking by host patterns, as the - client needs to tell <span class="APPLICATION">Privoxy</span> the - name of the remote server, so that <span class= - "APPLICATION">Privoxy</span> can establish the connection. If that - name matches a host-only pattern, the connection will be blocked. - </p> - <p> - As far as ad blocking is concerned, this is less of a restriction - than it may seem, since ad sources are often identifiable by the - host name, and often the banners to be placed in an encrypted page - come unencrypted nonetheless for efficiency reasons, which exposes - them to the full power of <span class= - "APPLICATION">Privoxy</span>'s ad blocking. - </p> - <p> - <span class="QUOTE">"Content cookies"</span> (those that are - embedded in the actual HTML or JS page content, see <tt class= - "LITERAL"><a href= - "../user-manual/actions-file.html#FILTER-CONTENT-COOKIES" target= - "_top">filter{content-cookies}</a></tt>), in an SSL transaction - will be impossible to block under these conditions. Fortunately, - this does not seem to be a very common scenario since most cookies - come by traditional means. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="AEN919">4.16. Privoxy runs as a <span class= - "QUOTE">"server"</span>. How secure is it? Do I need to take any - special precautions?</a> - </h3> - <p> - On Unix-like systems, <span class="APPLICATION">Privoxy</span> can - run as a non-privileged user, which is how we recommend it be run. - Also, by default <span class="APPLICATION">Privoxy</span> listens - to requests from <span class="QUOTE">"localhost"</span> only. - </p> - <p> - The server aspect of <span class="APPLICATION">Privoxy</span> is - not itself directly exposed to the Internet in this configuration. - If you want to have <span class="APPLICATION">Privoxy</span> serve - as a LAN proxy, this will have to be opened up to allow for LAN - requests. In this case, we'd recommend you specify only the LAN - gateway address, e.g. 192.168.1.1, in the main <span class= - "APPLICATION">Privoxy</span> configuration file and check all <a - href="../user-manual/config.html#ACCESS-CONTROL" target= - "_top">access control and security options</a>. All LAN hosts can - then use this as their proxy address in the browser proxy - configuration, but <span class="APPLICATION">Privoxy</span> will - not listen on any external interfaces. ACLs can be defined in - addition, and using a firewall is always good too. Better safe than - sorry. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="TURNOFF">4.17. Can I temporarily disable Privoxy?</a> - </h3> - <p> - <span class="APPLICATION">Privoxy</span> doesn't have a transparent - proxy mode, but you can toggle off blocking and content filtering. - </p> - <p> - The easiest way to do that is to point your browser to the remote - toggle URL: <a href="http://config.privoxy.org/toggle" target= - "_top">http://config.privoxy.org/toggle</a>. - </p> - <p> - See the <a href="../user-manual/appendix.html#BOOKMARKLETS" target= - "_top">Bookmarklets section</a> of the <i class="CITETITLE">User - Manual</i> for an easy way to access this feature. Note that this - is a feature that may need to be enabled in the main <tt class= - "FILENAME">config</tt> file. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="REALLYOFF">4.18. When <span class= - "QUOTE">"disabled"</span> is Privoxy totally out of the - picture?</a> - </h3> - <p> - No, this just means all optional filtering and actions are - disabled. <span class="APPLICATION">Privoxy</span> is still acting - as a proxy, but just doing less of the things that <span class= - "APPLICATION">Privoxy</span> would normally be expected to do. It - is still a <span class="QUOTE">"middle-man"</span> in the - interaction between your browser and web sites. See below to bypass - the proxy. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="TURNOFF2">4.19. How can I tell Privoxy to totally ignore - certain sites?</a> - </h3> - <p> - Bypassing a proxy, or proxying based on arbitrary criteria, is - purely a browser configuration issue, not a <span class= - "APPLICATION">Privoxy</span> issue. Modern browsers typically do - have settings for not proxying certain sites. Check your browser's - help files. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="CRUNCH">4.20. My logs show Privoxy <span class= - "QUOTE">"crunches"</span> ads, but also its own internal CGI pages. - What is a <span class="QUOTE">"crunch"</span>?</a> - </h3> - <p> - A <span class="QUOTE">"crunch"</span> simply means <span class= - "APPLICATION">Privoxy</span> intercepted <span class="emphasis"><i - class="EMPHASIS">something</i></span>, nothing more. Often this is - indeed ads or banners, but <span class="APPLICATION">Privoxy</span> - uses the same mechanism for trapping requests for its own internal - pages. For instance, a request for <span class= - "APPLICATION">Privoxy's</span> configuration page at: <a href= - "http://config.privoxy.org" target= - "_top">http://config.privoxy.org</a>, is intercepted (i.e. it does - not go out to the 'net), and the familiar CGI configuration is - returned to the browser, and the log consequently will show a <span - class="QUOTE">"crunch"</span>. - </p> - <p> - Since version 3.0.7, Privoxy will also log the crunch reason. If - you are using an older version you might want to upgrade. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="DOWNLOADS">4.21. Can Privoxy effect files that I download - from a webserver? FTP server?</a> - </h3> - <p> - From the webserver's perspective, there is no difference between - viewing a document (i.e. a page), and downloading a file. The same - is true of <span class="APPLICATION">Privoxy</span>. If there is a - match for a <tt class="LITERAL"><a href= - "../user-manual/actions-file.html#BLOCK" target= - "_top">block</a></tt> pattern, it will still be blocked, and of - course this is obvious. - </p> - <p> - Filtering is potentially more of a concern since the results are - not always so obvious, and the effects of filtering are there - whether the file is simply viewed, or downloaded. And potentially - whether the content is some obnoxious advertisement, or Mr. Jimmy's - latest/greatest source code jewel. Of course, one of these - presumably is <span class="QUOTE">"bad"</span> content that we - don't want, and the other is <span class="QUOTE">"good"</span> - content that we do want. <span class="APPLICATION">Privoxy</span> - is blind to the differences, and can only distinguish <span class= - "QUOTE">"good from bad"</span> by the configuration parameters - <span class="emphasis"><i class="EMPHASIS">we</i></span> give it. - </p> - <p> - <span class="APPLICATION">Privoxy</span> knows the differences in - files according to the <span class="QUOTE">"Content Type"</span> as - reported by the webserver. If this is reported accurately (e.g. - <span class="QUOTE">"application/zip"</span> for a zip archive), - then <span class="APPLICATION">Privoxy</span> knows to ignore these - where appropriate. <span class="APPLICATION">Privoxy</span> - potentially can filter HTML as well as plain text documents, - subject to configuration parameters of course. Also, documents that - are of an unknown type (generally assumed to be <span class= - "QUOTE">"text/plain"</span>) can be filtered, as will those that - might be incorrectly reported by the webserver. If such a file is a - downloaded file that is intended to be saved to disk, then any - content that might have been altered by filtering, will be saved - too, for these (probably rare) cases. - </p> - <p> - Note that versions later than 3.0.2 do NOT filter document types - reported as <span class="QUOTE">"text/plain"</span>. Prior to this, - <span class="APPLICATION">Privoxy</span> did filter this document - type. - </p> - <p> - In short, filtering is <span class="QUOTE">"ON"</span> if a) the - content type as reported by the webserver is appropriate <span - class="emphasis"><i class="EMPHASIS">and</i></span> b) the - configuration allows it (or at least does not disallow it). That's - it. There is no magic cookie anywhere to say this is <span class= - "QUOTE">"good"</span> and this is <span class="QUOTE">"bad"</span>. - It's the configuration that lets it all happen or not. - </p> - <p> - If you download text files, you probably do not want these to be - filtered, particularly if the content is source code, or other - critical content. Source code sometimes might be mistaken for - Javascript (i.e. the kind that might open a pop-up window). It is - recommended to turn off filtering for download sites (particularly - if the content may be plain text files and you are using version - 3.0.2 or earlier) in your <tt class="FILENAME">user.action</tt> - file. And also, for any site or page where making <span class= - "emphasis"><i class="EMPHASIS">any</i></span> changes at all to the - content is to be avoided. - </p> - <p> - <span class="APPLICATION">Privoxy</span> does not do FTP at all, - only HTTP and HTTPS (SSL) protocols. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="DOWNLOADS2">4.22. I just downloaded a Perl script, and - Privoxy altered it! Yikes, what is wrong!</a> - </h3> - <p> - Please read above. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="HOSTSFILE">4.23. Should I continue to use a <span class= - "QUOTE">"HOSTS"</span> file for ad-blocking?</a> - </h3> - <p> - One time-tested technique to defeat common ads is to trick the - local DNS system by giving a phony IP address for the ad generator - in the local <tt class="FILENAME">HOSTS</tt> file, typically using - <tt class="LITERAL">127.0.0.1</tt>, aka <tt class= - "LITERAL">localhost</tt>. This effectively blocks the ad. - </p> - <p> - There is no reason to use this technique in conjunction with <span - class="APPLICATION">Privoxy</span>. <span class= - "APPLICATION">Privoxy</span> does essentially the same thing, much - more elegantly and with much more flexibility. A large <tt class= - "FILENAME">HOSTS</tt> file, in fact, not only duplicates effort, - but may get in the way and seriously slow down your system. It is - recommended to remove such entries from your <tt class= - "FILENAME">HOSTS</tt> file. If you think your hosts list is - neglected by <span class="APPLICATION">Privoxy's</span> - configuration, consider adding your list to your <tt class= - "FILENAME">user.action</tt> file: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>Save the modified configuration file and open <a href= + "http://config.privoxy.org/show-status" target= + "_top">http://config.privoxy.org/show-status/</a> in your browser, + confirm that <span class="APPLICATION">Privoxy</span> has reloaded its + configuration and that there are no other forward lines, unless you + know that you need them. If everything looks good, refer to <a href= + "https://wiki.torproject.org/noreply/TheOnionRouter/TorFAQ#IsMyConnectionPrivate" + target="_top">Tor Faq 4.2</a> to learn how to verify that you are + really using <span class="APPLICATION">Tor</span>.</p> + + <p>Afterward, please take the time to at least skim through the rest of + <span class="APPLICATION">Tor's</span> documentation. Make sure you + understand what <span class="APPLICATION">Tor</span> does, why it is no + replacement for application level security, and why you probably don't + want to use it for unencrypted logins.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="AEN877" id="AEN877">4.11. Might some things + break because header information or content is being altered?</a></h3> + + <p>Definitely. It is common for sites to use browser type, browser + version, HTTP header content, and various other techniques in order to + dynamically decide what to display and how to display it. What you see, + and what I see, might be very different. There are many, many ways that + this can be handled, so having hard and fast rules, is tricky.</p> + + <p>The <span class="QUOTE">"User-Agent"</span> is sometimes used in + this way to identify the browser, and adjust content accordingly.</p> + + <p>Also, different browsers use different encodings of non-English + characters, certain web servers convert pages on-the-fly according to + the User Agent header. Giving a <span class="QUOTE">"User Agent"</span> + with the wrong operating system or browser manufacturer causes some + sites in these languages to be garbled; Surfers to Eastern European + sites should change it to something closer. And then some page access + counters work by looking at the <span class="QUOTE">"Referer"</span> + header; they may fail or break if unavailable. The weather maps of + Intellicast have been blocked by their server when no <span class= + "QUOTE">"Referer"</span> or cookie is provided, is another example. + (But you can forge both headers without giving information away). There + are many other ways things can go wrong when trying to fool a web + server. The results of which could inadvertently cause pages to load + incorrectly, partially, or even not at all. And there may be no obvious + clues as to just what went wrong, or why. Nowhere will there be a + message that says <span class="QUOTE">"<span class= + "emphasis EMPHASIS c2">Turn off <tt class="LITERAL">fast-redirects</tt> + or else!</span> "</span></p> + + <p>Similar thoughts apply to modifying JavaScript, and, to a lesser + degree, HTML elements.</p> + + <p>If you have problems with a site, you will have to adjust your + configuration accordingly. Cookies are probably the most likely + adjustment that may be required, but by no means the only one.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="AEN891" id="AEN891">4.12. Can Privoxy act as + a <span class="QUOTE">"caching"</span> proxy to speed up web + browsing?</a></h3> + + <p>No, it does not have this ability at all. You want something like + <a href="http://www.squid-cache.org/" target="_top">Squid</a> or + <a href="http://www.pps.jussieu.fr/~jch/software/polipo/" target= + "_top">Polipo</a> for this. And, yes, before you ask, <span class= + "APPLICATION">Privoxy</span> can co-exist with other kinds of proxies + like <span class="APPLICATION">Squid</span>. See the <a href= + "../user-manual/config.html#FORWARDING" target="_top">forwarding + chapter</a> in the <a href="../user-manual/index.html" target= + "_top">user manual</a> for details.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="AEN901" id="AEN901">4.13. What about as a + firewall? Can Privoxy protect me?</a></h3> + + <p>Not in the way you mean, or in the way some firewall vendors claim + they can. <span class="APPLICATION">Privoxy</span> can help protect + your privacy, but can't protect your system from intrusion attempts. It + is, of course, perfectly possible to use <span class= + "emphasis EMPHASIS c2">both</span>.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="AEN906" id="AEN906">4.14. I have large empty + spaces / a checkerboard pattern now where ads used to be. Why?</a></h3> + + <p>It is technically possible to eliminate banners and ads in a way + that frees their allocated page space. This could easily be done by + blocking with <span class="APPLICATION">Privoxy's</span> filters, and + eliminating the <span class="emphasis EMPHASIS c2">entire</span> image + references from the HTML page source.</p> + + <p>But, this would consume considerably more CPU resources (IOW, slow + things down), would likely destroy the layout of some web pages which + rely on the banners utilizing a certain amount of page space, and might + fail in other cases, where the screen space is reserved (e.g. by HTML + tables for instance). Also, making ads and banners disappear without + any trace complicates troubleshooting, and would sooner or later be + problematic.</p> + + <p>The better alternative is to instead let them stay, and block the + resulting requests for the banners themselves as is now the case. This + leaves either empty space, or the familiar checkerboard pattern.</p> + + <p>So the developers won't support this in the default configuration, + but you can of course define appropriate filters yourself to achieve + this.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="AEN914" id="AEN914">4.15. How can Privoxy + filter Secure (HTTPS) URLs?</a></h3> + + <p>Since secure HTTP connections are encrypted SSL sessions between + your browser and the secure site, and are meant to be reliably + <span class="emphasis EMPHASIS c2">secure</span>, there is little that + <span class="APPLICATION">Privoxy</span> can do but hand the raw + gibberish data though from one end to the other unprocessed.</p> + + <p>The only exception to this is blocking by host patterns, as the + client needs to tell <span class="APPLICATION">Privoxy</span> the name + of the remote server, so that <span class="APPLICATION">Privoxy</span> + can establish the connection. If that name matches a host-only pattern, + the connection will be blocked.</p> + + <p>As far as ad blocking is concerned, this is less of a restriction + than it may seem, since ad sources are often identifiable by the host + name, and often the banners to be placed in an encrypted page come + unencrypted nonetheless for efficiency reasons, which exposes them to + the full power of <span class="APPLICATION">Privoxy</span>'s ad + blocking.</p> + + <p><span class="QUOTE">"Content cookies"</span> (those that are + embedded in the actual HTML or JS page content, see <tt class= + "LITERAL"><a href= + "../user-manual/actions-file.html#FILTER-CONTENT-COOKIES" target= + "_top">filter{content-cookies}</a></tt>), in an SSL transaction will be + impossible to block under these conditions. Fortunately, this does not + seem to be a very common scenario since most cookies come by + traditional means.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="AEN928" id="AEN928">4.16. Privoxy runs as a + <span class="QUOTE">"server"</span>. How secure is it? Do I need to + take any special precautions?</a></h3> + + <p>On Unix-like systems, <span class="APPLICATION">Privoxy</span> can + run as a non-privileged user, which is how we recommend it be run. + Also, by default <span class="APPLICATION">Privoxy</span> listens to + requests from <span class="QUOTE">"localhost"</span> only.</p> + + <p>The server aspect of <span class="APPLICATION">Privoxy</span> is not + itself directly exposed to the Internet in this configuration. If you + want to have <span class="APPLICATION">Privoxy</span> serve as a LAN + proxy, this will have to be opened up to allow for LAN requests. In + this case, we'd recommend you specify only the LAN gateway address, + e.g. 192.168.1.1, in the main <span class="APPLICATION">Privoxy</span> + configuration file and check all <a href= + "../user-manual/config.html#ACCESS-CONTROL" target="_top">access + control and security options</a>. All LAN hosts can then use this as + their proxy address in the browser proxy configuration, but + <span class="APPLICATION">Privoxy</span> will not listen on any + external interfaces. ACLs can be defined in addition, and using a + firewall is always good too. Better safe than sorry.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="TURNOFF" id="TURNOFF">4.17. Can I + temporarily disable Privoxy?</a></h3> + + <p><span class="APPLICATION">Privoxy</span> doesn't have a transparent + proxy mode, but you can toggle off blocking and content filtering.</p> + + <p>The easiest way to do that is to point your browser to the remote + toggle URL: <a href="http://config.privoxy.org/toggle" target= + "_top">http://config.privoxy.org/toggle</a>.</p> + + <p>See the <a href="../user-manual/appendix.html#BOOKMARKLETS" target= + "_top">Bookmarklets section</a> of the <i class="CITETITLE">User + Manual</i> for an easy way to access this feature. Note that this is a + feature that may need to be enabled in the main <tt class= + "FILENAME">config</tt> file.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="REALLYOFF" id="REALLYOFF">4.18. When + <span class="QUOTE">"disabled"</span> is Privoxy totally out of the + picture?</a></h3> + + <p>No, this just means all optional filtering and actions are disabled. + <span class="APPLICATION">Privoxy</span> is still acting as a proxy, + but just doing less of the things that <span class= + "APPLICATION">Privoxy</span> would normally be expected to do. It is + still a <span class="QUOTE">"middle-man"</span> in the interaction + between your browser and web sites. See below to bypass the proxy.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="TURNOFF2" id="TURNOFF2">4.19. How can I tell + Privoxy to totally ignore certain sites?</a></h3> + + <p>Bypassing a proxy, or proxying based on arbitrary criteria, is + purely a browser configuration issue, not a <span class= + "APPLICATION">Privoxy</span> issue. Modern browsers typically do have + settings for not proxying certain sites. Check your browser's help + files.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="CRUNCH" id="CRUNCH">4.20. My logs show + Privoxy <span class="QUOTE">"crunches"</span> ads, but also its own + internal CGI pages. What is a <span class= + "QUOTE">"crunch"</span>?</a></h3> + + <p>A <span class="QUOTE">"crunch"</span> simply means <span class= + "APPLICATION">Privoxy</span> intercepted <span class= + "emphasis EMPHASIS c2">something</span>, nothing more. Often this is + indeed ads or banners, but <span class="APPLICATION">Privoxy</span> + uses the same mechanism for trapping requests for its own internal + pages. For instance, a request for <span class= + "APPLICATION">Privoxy's</span> configuration page at: <a href= + "http://config.privoxy.org" target= + "_top">http://config.privoxy.org</a>, is intercepted (i.e. it does not + go out to the 'net), and the familiar CGI configuration is returned to + the browser, and the log consequently will show a <span class= + "QUOTE">"crunch"</span>.</p> + + <p>Since version 3.0.7, Privoxy will also log the crunch reason. If you + are using an older version you might want to upgrade.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="DOWNLOADS" id="DOWNLOADS">4.21. Can Privoxy + effect files that I download from a webserver? FTP server?</a></h3> + + <p>From the webserver's perspective, there is no difference between + viewing a document (i.e. a page), and downloading a file. The same is + true of <span class="APPLICATION">Privoxy</span>. If there is a match + for a <tt class="LITERAL"><a href= + "../user-manual/actions-file.html#BLOCK" target="_top">block</a></tt> + pattern, it will still be blocked, and of course this is obvious.</p> + + <p>Filtering is potentially more of a concern since the results are not + always so obvious, and the effects of filtering are there whether the + file is simply viewed, or downloaded. And potentially whether the + content is some obnoxious advertisement, or Mr. Jimmy's latest/greatest + source code jewel. Of course, one of these presumably is <span class= + "QUOTE">"bad"</span> content that we don't want, and the other is + <span class="QUOTE">"good"</span> content that we do want. <span class= + "APPLICATION">Privoxy</span> is blind to the differences, and can only + distinguish <span class="QUOTE">"good from bad"</span> by the + configuration parameters <span class="emphasis EMPHASIS c2">we</span> + give it.</p> + + <p><span class="APPLICATION">Privoxy</span> knows the differences in + files according to the <span class="QUOTE">"Content Type"</span> as + reported by the webserver. If this is reported accurately (e.g. + <span class="QUOTE">"application/zip"</span> for a zip archive), then + <span class="APPLICATION">Privoxy</span> knows to ignore these where + appropriate. <span class="APPLICATION">Privoxy</span> potentially can + filter HTML as well as plain text documents, subject to configuration + parameters of course. Also, documents that are of an unknown type + (generally assumed to be <span class="QUOTE">"text/plain"</span>) can + be filtered, as will those that might be incorrectly reported by the + webserver. If such a file is a downloaded file that is intended to be + saved to disk, then any content that might have been altered by + filtering, will be saved too, for these (probably rare) cases.</p> + + <p>Note that versions later than 3.0.2 do NOT filter document types + reported as <span class="QUOTE">"text/plain"</span>. Prior to this, + <span class="APPLICATION">Privoxy</span> did filter this document + type.</p> + + <p>In short, filtering is <span class="QUOTE">"ON"</span> if a) the + content type as reported by the webserver is appropriate <span class= + "emphasis EMPHASIS c2">and</span> b) the configuration allows it (or at + least does not disallow it). That's it. There is no magic cookie + anywhere to say this is <span class="QUOTE">"good"</span> and this is + <span class="QUOTE">"bad"</span>. It's the configuration that lets it + all happen or not.</p> + + <p>If you download text files, you probably do not want these to be + filtered, particularly if the content is source code, or other critical + content. Source code sometimes might be mistaken for Javascript (i.e. + the kind that might open a pop-up window). It is recommended to turn + off filtering for download sites (particularly if the content may be + plain text files and you are using version 3.0.2 or earlier) in your + <tt class="FILENAME">user.action</tt> file. And also, for any site or + page where making <span class="emphasis EMPHASIS c2">any</span> changes + at all to the content is to be avoided.</p> + + <p><span class="APPLICATION">Privoxy</span> does not do FTP at all, + only HTTP and HTTPS (SSL) protocols.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="DOWNLOADS2" id="DOWNLOADS2">4.22. I just + downloaded a Perl script, and Privoxy altered it! Yikes, what is + wrong!</a></h3> + + <p>Please read above.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="HOSTSFILE" id="HOSTSFILE">4.23. Should I + continue to use a <span class="QUOTE">"HOSTS"</span> file for + ad-blocking?</a></h3> + + <p>One time-tested technique to defeat common ads is to trick the local + DNS system by giving a phony IP address for the ad generator in the + local <tt class="FILENAME">HOSTS</tt> file, typically using <tt class= + "LITERAL">127.0.0.1</tt>, aka <tt class="LITERAL">localhost</tt>. This + effectively blocks the ad.</p> + + <p>There is no reason to use this technique in conjunction with + <span class="APPLICATION">Privoxy</span>. <span class= + "APPLICATION">Privoxy</span> does essentially the same thing, much more + elegantly and with much more flexibility. A large <tt class= + "FILENAME">HOSTS</tt> file, in fact, not only duplicates effort, but + may get in the way and seriously slow down your system. It is + recommended to remove such entries from your <tt class= + "FILENAME">HOSTS</tt> file. If you think your hosts list is neglected + by <span class="APPLICATION">Privoxy's</span> configuration, consider + adding your list to your <tt class="FILENAME">user.action</tt> + file:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> { +block } www.ad.example1.com ad.example2.com ads.galore.example.com etc.example.com </pre> - </td> - </tr> - </table> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="SEEALSO">4.24. Where can I find more information about - Privoxy and related issues?</a> - </h3> - <p> - Other references and sites of interest to <span class= - "APPLICATION">Privoxy</span> users: - </p> - <p> - </p> - <table border="0"> - <tbody> - <tr> - <td> - <a href="http://www.privoxy.org/" target= - "_top">http://www.privoxy.org/</a>, the <span class= - "APPLICATION">Privoxy</span> Home page. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="http://www.privoxy.org/faq/" target= - "_top">http://www.privoxy.org/faq/</a>, the <span class= - "APPLICATION">Privoxy</span> FAQ. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="http://www.privoxy.org/developer-manual/" target= - "_top">http://www.privoxy.org/developer-manual/</a>, the - <span class="APPLICATION">Privoxy</span> developer manual. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="https://sourceforge.net/projects/ijbswa/" target= - "_top">https://sourceforge.net/projects/ijbswa/</a>, the - Project Page for <span class="APPLICATION">Privoxy</span> on - <a href="http://sourceforge.net" target= - "_top">SourceForge</a>. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="http://config.privoxy.org/" target= - "_top">http://config.privoxy.org/</a>, the web-based user - interface. <span class="APPLICATION">Privoxy</span> must be - running for this to work. Shortcut: <a href="http://p.p/" - target="_top">http://p.p/</a> - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href= - "https://sourceforge.net/tracker/?group_id=11118&atid=460288" - target= - "_top">https://sourceforge.net/tracker/?group_id=11118&atid=460288</a>, - to submit <span class="QUOTE">"misses"</span> and other - configuration related suggestions to the developers. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="http://www.junkbusters.com/ht/en/cookies.html" - target= - "_top">http://www.junkbusters.com/ht/en/cookies.html</a>, an - explanation how cookies are used to track web users. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="http://www.junkbusters.com/ijb.html" target= - "_top">http://www.junkbusters.com/ijb.html</a>, the original - Internet Junkbuster. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="http://www.squid-cache.org/" target= - "_top">http://www.squid-cache.org/</a>, a popular caching - proxy, which is often used together with <span class= - "APPLICATION">Privoxy</span>. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="http://www.pps.jussieu.fr/~jch/software/polipo/" - target= - "_top">http://www.pps.jussieu.fr/~jch/software/polipo/</a>, - <span class="APPLICATION">Polipo</span> is a caching proxy - with advanced features like pipelining, multiplexing and - caching of partial instances. In many setups it can be used - as <span class="APPLICATION">Squid</span> replacement. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="https://www.torproject.org/" target= - "_top">https://www.torproject.org/</a>, <span class= - "APPLICATION">Tor</span> can help anonymize web browsing, web - publishing, instant messaging, IRC, SSH, and other - applications. - </td> - </tr> - </tbody> - </table> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="MICROSUCK">4.25. I've noticed that Privoxy changes <span - class="QUOTE">"Microsoft"</span> to <span class= - "QUOTE">"MicroSuck"</span>! Why are you manipulating my - browsing?</a> - </h3> - <p> - We're not. The text substitutions that you are seeing are disabled - in the default configuration as shipped. You have either manually - activated the <span class="QUOTE">"<tt class= - "LITERAL">fun</tt>"</span> filter which is clearly labeled <span - class="QUOTE">"Text replacements for subversive browsing - fun!"</span> or you are using an older Privoxy version and have - implicitly activated it by choosing the <span class= - "QUOTE">"Advanced"</span> profile in the web-based editor. Please - upgrade. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="VALID">4.26. Does Privoxy produce <span class= - "QUOTE">"valid"</span> HTML (or XHTML)?</a> - </h3> - <p> - Privoxy generates HTML in both its own <span class= - "QUOTE">"templates"</span>, and possibly whenever there are text - substitutions via a <span class="APPLICATION">Privoxy</span> - filter. While this should always conform to the HTML 4.01 - specifications, it has not been validated against this or any other - standard. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="SURPRISE-PRIVOXY">4.27. How did you manage to get Privoxy - on my computer without my consent?</a> - </h3> - <p> - We didn't. We make Privoxy available for download, but we don't go - around installing it on other people's systems behind their back. - If you discover Privoxy running on your system and are sure you - didn't install it yourself, somebody else did. You may not even be - running the real Privoxy, but maybe something else that only - pretends to be Privoxy, or maybe something that is based on the - real Privoxy, but has been modified. - </p> - <p> - Lately there have been reports of problems with some kind of - Privoxy versions that come preinstalled on some Netbooks. Some of - the problems described are inconsistent with the behaviour of - official Privoxy versions, which suggests that the preinstalled - software may contain vendor modifications that we don't know about - and thus can't debug. - </p> - <p> - Privoxy's <a href="copyright.html">license</a> allows vendor - modifications, but the vendor has to comply with the license, which - involves informing the user about the changes and to make the - changes available under the same license as Privoxy itself. - </p> - <p> - If you are having trouble with a modified Privoxy version, please - try to talk to whoever made the modifications before reporting the - problem to us. Please also try to convince whoever made the - modifications to talk to us. If you think somebody gave you a - modified Privoxy version without complying to the license, please - let us know. - </p> - </div> - </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="configuration.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="trouble.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - Configuration - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Troubleshooting </td> </tr> </table> </div> - </body> -</html> + <div class="SECT2"> + <h3 class="SECT2"><a name="SEEALSO" id="SEEALSO">4.24. Where can I find + more information about Privoxy and related issues?</a></h3> + + <p>Other references and sites of interest to <span class= + "APPLICATION">Privoxy</span> users:</p> + + <table border="0"> + <tbody> + <tr> + <td><a href="http://www.privoxy.org/" target= + "_top">http://www.privoxy.org/</a>, the <span class= + "APPLICATION">Privoxy</span> Home page.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><a href="http://www.privoxy.org/faq/" target= + "_top">http://www.privoxy.org/faq/</a>, the <span class= + "APPLICATION">Privoxy</span> FAQ.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><a href="http://www.privoxy.org/developer-manual/" target= + "_top">http://www.privoxy.org/developer-manual/</a>, the + <span class="APPLICATION">Privoxy</span> developer manual.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><a href="https://sourceforge.net/projects/ijbswa/" target= + "_top">https://sourceforge.net/projects/ijbswa/</a>, the Project + Page for <span class="APPLICATION">Privoxy</span> on <a href= + "http://sourceforge.net" target="_top">SourceForge</a>.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><a href="http://config.privoxy.org/" target= + "_top">http://config.privoxy.org/</a>, the web-based user + interface. <span class="APPLICATION">Privoxy</span> must be + running for this to work. Shortcut: <a href="http://p.p/" target= + "_top">http://p.p/</a></td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><a href= + "https://sourceforge.net/tracker/?group_id=11118&atid=460288" + target= + "_top">https://sourceforge.net/tracker/?group_id=11118&atid=460288</a>, + to submit <span class="QUOTE">"misses"</span> and other + configuration related suggestions to the developers.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><a href="http://www.junkbusters.com/ht/en/cookies.html" + target="_top">http://www.junkbusters.com/ht/en/cookies.html</a>, + an explanation how cookies are used to track web users.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><a href="http://www.junkbusters.com/ijb.html" target= + "_top">http://www.junkbusters.com/ijb.html</a>, the original + Internet Junkbuster.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><a href="http://www.squid-cache.org/" target= + "_top">http://www.squid-cache.org/</a>, a popular caching proxy, + which is often used together with <span class= + "APPLICATION">Privoxy</span>.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><a href="http://www.pps.jussieu.fr/~jch/software/polipo/" + target= + "_top">http://www.pps.jussieu.fr/~jch/software/polipo/</a>, + <span class="APPLICATION">Polipo</span> is a caching proxy with + advanced features like pipelining, multiplexing and caching of + partial instances. In many setups it can be used as <span class= + "APPLICATION">Squid</span> replacement.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><a href="https://www.torproject.org/" target= + "_top">https://www.torproject.org/</a>, <span class= + "APPLICATION">Tor</span> can help anonymize web browsing, web + publishing, instant messaging, IRC, SSH, and other + applications.</td> + </tr> + </tbody> + </table> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="MICROSUCK" id="MICROSUCK">4.25. I've noticed + that Privoxy changes <span class="QUOTE">"Microsoft"</span> to + <span class="QUOTE">"MicroSuck"</span>! Why are you manipulating my + browsing?</a></h3> + + <p>We're not. The text substitutions that you are seeing are disabled + in the default configuration as shipped. You have either manually + activated the <span class="QUOTE">"<tt class="LITERAL">fun</tt>"</span> + filter which is clearly labeled <span class="QUOTE">"Text replacements + for subversive browsing fun!"</span> or you are using an older Privoxy + version and have implicitly activated it by choosing the <span class= + "QUOTE">"Advanced"</span> profile in the web-based editor. Please + upgrade.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="VALID" id="VALID">4.26. Does Privoxy produce + <span class="QUOTE">"valid"</span> HTML (or XHTML)?</a></h3> + + <p>Privoxy generates HTML in both its own <span class= + "QUOTE">"templates"</span>, and possibly whenever there are text + substitutions via a <span class="APPLICATION">Privoxy</span> filter. + While this should always conform to the HTML 4.01 specifications, it + has not been validated against this or any other standard.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="SURPRISE-PRIVOXY" id= + "SURPRISE-PRIVOXY">4.27. How did you manage to get Privoxy on my + computer without my consent?</a></h3> + + <p>We didn't. We make Privoxy available for download, but we don't go + around installing it on other people's systems behind their back. If + you discover Privoxy running on your system and are sure you didn't + install it yourself, somebody else did. You may not even be running the + real Privoxy, but maybe something else that only pretends to be + Privoxy, or maybe something that is based on the real Privoxy, but has + been modified.</p> + + <p>Lately there have been reports of problems with some kind of Privoxy + versions that come preinstalled on some Netbooks. Some of the problems + described are inconsistent with the behaviour of official Privoxy + versions, which suggests that the preinstalled software may contain + vendor modifications that we don't know about and thus can't debug.</p> + + <p>Privoxy's <a href="copyright.html">license</a> allows vendor + modifications, but the vendor has to comply with the license, which + involves informing the user about the changes and to make the changes + available under the same license as Privoxy itself.</p> + + <p>If you are having trouble with a modified Privoxy version, please + try to talk to whoever made the modifications before reporting the + problem to us. Please also try to convince whoever made the + modifications to talk to us. If you think somebody gave you a modified + Privoxy version without complying to the license, please let us + know.</p> + </div> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href= + "configuration.html" accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + + <td width="33%" align="right" valign="top"><a href="trouble.html" + accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Configuration</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Troubleshooting</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/faq/trouble.html b/doc/webserver/faq/trouble.html index 141a835e..12fc01d7 100644 --- a/doc/webserver/faq/trouble.html +++ b/doc/webserver/faq/trouble.html @@ -1,166 +1,156 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Troubleshooting - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy Frequently Asked Questions" href= - "index.html"> - <link rel="PREVIOUS" title="Miscellaneous" href="misc.html"> - <link rel="NEXT" title= - "Contacting the developers, Bug Reporting and Feature Requests" href= - "contact.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Troubleshooting</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy Frequently Asked Questions" href= + "index.html"> + <link rel="PREVIOUS" title="Miscellaneous" href="misc.html"> + <link rel="NEXT" title= + "Contacting the developers, Bug Reporting and Feature Requests" href= + "contact.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy Frequently Asked Questions - </th> - </tr> - <tr> - <td width="10%" align="left" valign="bottom"> - <a href="misc.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="contact.html" accesskey="N">Next</a> - </td> - </tr> - </table> - <hr width="100%" class="c1"> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + span.c3 {font-style: italic} + table.c2 {background-color: #E0E0E0} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy Frequently Asked + Questions</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href="misc.html" + accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href="contact.html" + accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="TROUBLE" id="TROUBLE">5. + Troubleshooting</a></h1> + + <div class="SECT2"> + <h3 class="SECT2"><a name="AEN1100" id="AEN1100">5.1. I cannot connect + to any websites. Or, I am getting <span class="QUOTE">"connection + refused"</span> message with every web page. Why?</a></h3> + + <p>There are several possibilities:</p> + + <ul> + <li> + <p><span class="APPLICATION">Privoxy</span> is not running. + Solution: verify that <span class="APPLICATION">Privoxy</span> is + installed correctly, has not crashed, and is indeed running. Turn + on <span class="APPLICATION">Privoxy's</span> logging, and look at + the logs to see what they say.</p> + </li> + + <li> + <p>Or your browser is configured for a different port than what + <span class="APPLICATION">Privoxy</span> is using. Solution: verify + that <span class="APPLICATION">Privoxy</span> and your browser are + set to the same port (<tt class="LITERAL">listen-address</tt>).</p> + </li> + + <li> + <p>Or if using a forwarding rule, you have a configuration problem + or a problem with a host in the forwarding chain. Solution: + temporarily alter your configuration and take the forwarders out of + the equation.</p> + </li> + + <li> + <p>Or you have a firewall that is interfering and blocking you. + Solution: try disabling or removing the firewall as a simple + test.</p> + </li> + </ul> </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="TROUBLE">5. Troubleshooting</a> - </h1> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="AEN1091">5.1. I cannot connect to any websites. Or, I am - getting <span class="QUOTE">"connection refused"</span> message - with every web page. Why?</a> - </h3> - <p> - There are several possibilities: - </p> - <ul> - <li> - <p> - <span class="APPLICATION">Privoxy</span> is not running. - Solution: verify that <span class="APPLICATION">Privoxy</span> - is installed correctly, has not crashed, and is indeed running. - Turn on <span class="APPLICATION">Privoxy's</span> logging, and - look at the logs to see what they say. - </p> - </li> - <li> - <p> - Or your browser is configured for a different port than what - <span class="APPLICATION">Privoxy</span> is using. Solution: - verify that <span class="APPLICATION">Privoxy</span> and your - browser are set to the same port (<tt class= - "LITERAL">listen-address</tt>). - </p> - </li> - <li> - <p> - Or if using a forwarding rule, you have a configuration problem - or a problem with a host in the forwarding chain. Solution: - temporarily alter your configuration and take the forwarders - out of the equation. - </p> - </li> - <li> - <p> - Or you have a firewall that is interfering and blocking you. - Solution: try disabling or removing the firewall as a simple - test. - </p> - </li> - </ul> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="ERROR503">5.2. Why am I getting a 503 Error - (WSAECONNREFUSED) on every page?</a> - </h3> - <p> - More than likely this is a problem with your TCP/IP networking. - ZoneAlarm has been reported to cause this symptom -- even if not - running! The solution is to either fight the ZA configuration, or - uninstall ZoneAlarm, and then find something better behaved in its - place. Other personal firewall type products may cause similar type - problems if not configured correctly. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="AEN1114">5.3. I just added a new rule, but the steenkin ad - is still getting through. How?</a> - </h3> - <p> - If the ad had been displayed before you added its URL, it will - probably be held in the browser's cache for some time, so it will - be displayed without the need for any request to the server, and - <span class="APPLICATION">Privoxy</span> will not be involved. - Flush the browser's caches, and then try again. - </p> - <p> - If this doesn't help, you probably have an error in the rule you - applied. Try pasting the full URL of the offending ad into <a href= - "http://config.privoxy.org/show-url-info" target= - "_top">http://config.privoxy.org/show-url-info</a> and see if it - really matches your new rule. Blocking ads is like blocking spam: a - lot of tinkering is required to stay ahead of the game. And - remember you need to block the URL of the ad in question, which may - be entirely different from the site URL itself. Most ads are hosted - on different servers than the main site itself. If you right-click - on the ad, you should be able to get all the relevant information - you need. Alternately, you can find the correct URL by looking at - <span class="APPLICATION">Privoxy's</span> logs (you may need to - enable logging in the main config file if its disabled). - </p> - <p> - Below is a slightly modified real-life log snippet that originates - with one requested URL: <tt class="LITERAL">www.example.com</tt> - (name of site was changed for this example, the number of requests - is real). You can see in this the complexity of what goes into - making up this one <span class="QUOTE">"page"</span>. There are - eight different domains involved here, with thirty two separate - URLs requested in all, making up all manner of images, Shockwave - Flash, JavaScript, CSS stylesheets, scripts, and other related - content. Some of this content is obviously <span class= - "QUOTE">"good"</span> or <span class="QUOTE">"bad"</span>, but not - all. Many of the more questionable looking requests, are going to - outside domains that seem to be identifying themselves with - suspicious looking names, making our job a little easier. <span - class="APPLICATION">Privoxy</span> has <span class= - "QUOTE">"crunched"</span> (meaning caught and BLOCKED) quite a few - items in this example, but perhaps missed a few as well. - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + + <div class="SECT2"> + <h3 class="SECT2"><a name="ERROR503" id="ERROR503">5.2. Why am I + getting a 503 Error (WSAECONNREFUSED) on every page?</a></h3> + + <p>More than likely this is a problem with your TCP/IP networking. + ZoneAlarm has been reported to cause this symptom -- even if not + running! The solution is to either fight the ZA configuration, or + uninstall ZoneAlarm, and then find something better behaved in its + place. Other personal firewall type products may cause similar type + problems if not configured correctly.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="AEN1123" id="AEN1123">5.3. I just added a + new rule, but the steenkin ad is still getting through. How?</a></h3> + + <p>If the ad had been displayed before you added its URL, it will + probably be held in the browser's cache for some time, so it will be + displayed without the need for any request to the server, and + <span class="APPLICATION">Privoxy</span> will not be involved. Flush + the browser's caches, and then try again.</p> + + <p>If this doesn't help, you probably have an error in the rule you + applied. Try pasting the full URL of the offending ad into <a href= + "http://config.privoxy.org/show-url-info" target= + "_top">http://config.privoxy.org/show-url-info</a> and see if it really + matches your new rule. Blocking ads is like blocking spam: a lot of + tinkering is required to stay ahead of the game. And remember you need + to block the URL of the ad in question, which may be entirely different + from the site URL itself. Most ads are hosted on different servers than + the main site itself. If you right-click on the ad, you should be able + to get all the relevant information you need. Alternately, you can find + the correct URL by looking at <span class= + "APPLICATION">Privoxy's</span> logs (you may need to enable logging in + the main config file if its disabled).</p> + + <p>Below is a slightly modified real-life log snippet that originates + with one requested URL: <tt class="LITERAL">www.example.com</tt> (name + of site was changed for this example, the number of requests is real). + You can see in this the complexity of what goes into making up this one + <span class="QUOTE">"page"</span>. There are eight different domains + involved here, with thirty two separate URLs requested in all, making + up all manner of images, Shockwave Flash, JavaScript, CSS stylesheets, + scripts, and other related content. Some of this content is obviously + <span class="QUOTE">"good"</span> or <span class="QUOTE">"bad"</span>, + but not all. Many of the more questionable looking requests, are going + to outside domains that seem to be identifying themselves with + suspicious looking names, making our job a little easier. <span class= + "APPLICATION">Privoxy</span> has <span class="QUOTE">"crunched"</span> + (meaning caught and BLOCKED) quite a few items in this example, but + perhaps missed a few as well.</p> + + <table class="c2" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> Request: www.example.com/ Request: www.example.com/favicon.ico Request: img.example.com/main.css @@ -195,636 +185,552 @@ Request: 66.70.21.80/img/pixel.gif Request: www.adtrak.net/adlog.php?bannerid=1309&clientid=439&zoneid=58&source=Ua&block=86400 crunch! (Blocked) Request: 66.70.21.80/scripts/click.php?hid=a71b9f6504b0c5681fa5&si=Ua </pre> - </td> - </tr> - </table> - - <p> - Despite 12 out of 32 requests being blocked, the page looked, and - seemed to behave perfectly <span class="QUOTE">"normal"</span> - (minus some ads, of course). - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="BADSITE">5.4. One of my favorite sites does not work with - Privoxy. What can I do?</a> - </h3> - <p> - First verify that it is indeed a <span class= - "APPLICATION">Privoxy</span> problem, by toggling off <span class= - "APPLICATION">Privoxy</span> through <a href= - "http://config.privoxy.org/toggle" target= - "_top">http://config.privoxy.org/toggle</a> (the toggle feature may - need to be enabled in the main <tt class="FILENAME">config</tt>), - and then shift-reloading the problem page (i.e. holding down the - shift key while clicking reload. Alternatively, flush your - browser's disk and memory caches). - </p> - <p> - If the problem went away, we know we have a configuration related - problem. Now go to <a href= - "http://config.privoxy.org/show-url-info" target= - "_top">http://config.privoxy.org/show-url-info</a> and paste the - full URL of the page in question into the prompt. See which actions - are being applied to the URL, and which matches in which actions - files are responsible for that. It might be helpful also to look at - your logs for this site too, to see what else might be happening - (note: logging may need to be enabled in the main config file). - Many sites are complex and require a number of related pages to - help present their content. Look at what else might be used by the - page in question, and what of that might be <span class= - "emphasis"><i class="EMPHASIS">required</i></span>. Now, armed with - this information, go to <a href= - "http://config.privoxy.org/show-status" target= - "_top">http://config.privoxy.org/show-status</a> and select the - appropriate actions files for editing. - </p> - <p> - You can now either look for a section which disables the actions - that you suspect to cause the problem and add a pattern for your - site there, or make up a completely new section for your site. In - any case, the recommended way is to disable only the prime suspect, - reload the problem page, and only if the problem persists, disable - more and more actions until you have identified the culprit. You - may or may not want to turn the other actions on again. Remember to - flush your browser's caches in between any such changes! - </p> - <p> - Alternately, if you are comfortable with a text editor, you can - accomplish the same thing by editing the appropriate actions file. - Probably the easiest way to deal with such problems when editing by - hand is to add your site to a <tt class="LITERAL">{ fragile }</tt> - section in <tt class="FILENAME">user.action</tt>, which is an alias - that turns off most <span class="QUOTE">"dangerous"</span> actions, - but is also likely to turn off more actions then needed, and thus - lower your privacy and protection more than necessary, - </p> - <p> - Troubleshooting actions is discussed in more detail in the <a href= - "../user-manual/appendix.html#ACTIONSANAT" target="_top">User - Manual appendix, Troubleshooting: the Anatomy of an Action</a>. - There is also an <a href= - "../user-manual/actions-file.html#ACT-EXAMPLES" target= - "_top">actions tutorial</a> with general configuration information - and examples. - </p> - <p> - As a last resort, you can always see if your browser has a setting - that will bypass the proxy setting for selective sites. Modern - browsers can do this. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="DUN">5.5. After installing Privoxy, I have to log in every - time I start IE. What gives?</a> - </h3> - <p> - This is a quirk that effects the installation of <span class= - "APPLICATION">Privoxy</span>, in conjunction with Internet Explorer - and Internet Connection Sharing on Windows 2000 and Windows XP. The - symptoms may appear to be corrupted or invalid DUN settings, or - passwords. - </p> - <p> - When setting up an NT based Windows system with <span class= - "APPLICATION">Privoxy</span> you may find that things do not seem - to be doing what you expect. When you set your system up you will - probably have set up Internet Connection Sharing (ICS) with Dial up - Networking (DUN) when logged in with administrator privileges. You - will probably have made this DUN connection available to other - accounts that you may have set-up on your system. E.g. Mum or Dad - sets up the system and makes accounts suitably configured for the - kids. - </p> - <p> - When setting up <span class="APPLICATION">Privoxy</span> in this - environment you will have to alter the proxy set-up of Internet - Explorer (IE) for the specific DUN connection on which you wish to - use <span class="APPLICATION">Privoxy</span>. When you do this the - ICS DUN set-up becomes user specific. In this instance you will see - no difference if you change the DUN connection under the account - used to set-up the connection. However when you do this from - another user you will notice that the DUN connection changes to - make available to "Me only". You will also find that you have to - store the password under each different user! - </p> - <p> - The reason for this is that each user's set-up for IE is user - specific. Each set-up DUN connection and each LAN connection in IE - store the settings for each user individually. As such this - enforces individual configurations rather than common ones. Hence - the first time you use a DUN connection after re-booting your - system it may not perform as you expect, and prompt you for the - password. Just set and save the password again and all should be - OK. - </p> - <p> - [Thanks to Ray Griffith for this submission.] - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="FTP">5.6. I cannot connect to any FTP sites. Privoxy is - blocking me.</a> - </h3> - <p> - <span class="APPLICATION">Privoxy</span> cannot act as a proxy for - FTP traffic, so do not configure your browser to use <span class= - "APPLICATION">Privoxy</span> as an FTP proxy. The same is true for - <span class="emphasis"><i class="EMPHASIS">any protocol other than - HTTP or HTTPS (SSL)</i></span>. - </p> - <p> - Most browsers understand FTP as well as HTTP. If you connect to a - site, with a URL like <tt class= - "LITERAL">ftp://ftp.example.com</tt>, your browser is making an FTP - connection, and not a HTTP connection. So while your browser may - speak FTP, <span class="APPLICATION">Privoxy</span> does not, and - cannot proxy such traffic. - </p> - <p> - To complicate matters, some systems may have a generic <span class= - "QUOTE">"proxy"</span> setting, which will enable various - protocols, including <span class="emphasis"><i class= - "EMPHASIS">both</i></span> HTTP and FTP proxying! So it is possible - to accidentally enable FTP proxying in these cases. And of course, - if this happens, <span class="APPLICATION">Privoxy</span> will - indeed cause problems since it does not know FTP. Newer version - will give a sane error message if a FTP connection is attempted. - Just disable the FTP setting and all will be well again. - </p> - <p> - Will <span class="APPLICATION">Privoxy</span> ever proxy FTP - traffic? Unlikely. There just is not much reason, and the work to - make this happen is more than it may seem. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="MACOSXIE">5.7. In Mac OS X, I can't configure Microsoft - Internet Explorer to use Privoxy as the HTTP proxy.</a> - </h3> - <p> - Microsoft Internet Explorer (in versions like 5.1) respects - system-wide network settings. In order to change the HTTP proxy, - open System Preferences, and click on the Network icon. In the - settings pane that comes up, click on the Proxies tab. Ensure the - "Web Proxy (HTTP)" checkbox is checked and enter <tt class= - "LITERAL">127.0.0.1</tt> in the entry field. Enter <tt class= - "LITERAL">8118</tt> in the Port field. The next time you start IE, - it should reflect these values. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="MACOSXUNINSTALL">5.8. In Mac OS X, I dragged the Privoxy - folder to the trash in order to uninstall it. Now the finder tells - me I don't have sufficient privileges to empty the trash.</a> - </h3> - <p> - Note: This ONLY applies to privoxy 3.0.6 and earlier. - </p> - <p> - Just dragging the <span class="APPLICATION">Privoxy</span> folder - to the trash is not enough to delete it. <span class= - "APPLICATION">Privoxy</span> supplies an <span class= - "APPLICATION">uninstall.command</span> file that takes care of - these details. Open the trash, drag the <span class= - "APPLICATION">uninstall.command</span> file out of the trash and - double-click on it. You will be prompted for confirmation and the - administration password. - </p> - <p> - The trash may still appear full after this command; emptying the - trash from the desktop should make it appear empty again. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="MACOSXIMAGES">5.9. In Mac OS X Panther (10.3), images - often fail to load and/or I experience random delays in page - loading. I'm using <tt class="LITERAL">localhost</tt> as my - browser's proxy setting.</a> - </h3> - <p> - We believe this is due to an IPv6-related bug in Mac OS X, but - don't fully understand the issue yet. In any case, changing the - proxy setting to <tt class="LITERAL">127.0.0.1</tt> instead of <tt - class="LITERAL">localhost</tt> works around the problem. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="BLANKPAGE">5.10. I get a completely blank page at one - site. <span class="QUOTE">"View Source"</span> shows only: <span - class= - "MARKUP"><html><body></body></html></span>. - Without Privoxy the page loads fine.</a> - </h3> - <p> - Chances are that the site suffers from a bug in <a href= - "http://www.php.net/" target="_top"><span class= - "APPLICATION">PHP</span></a>, which results in empty pages being - sent if the client explicitly requests an uncompressed page, like - <span class="APPLICATION">Privoxy</span> does. This bug has been - fixed in PHP 4.2.3. - </p> - <p> - To find out if this is in fact the source of the problem, try - adding the site to a <tt class="LITERAL">-prevent-compression</tt> - section in <tt class="FILENAME">user.action</tt>: - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>Despite 12 out of 32 requests being blocked, the page looked, and + seemed to behave perfectly <span class="QUOTE">"normal"</span> (minus + some ads, of course).</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="BADSITE" id="BADSITE">5.4. One of my + favorite sites does not work with Privoxy. What can I do?</a></h3> + + <p>First verify that it is indeed a <span class= + "APPLICATION">Privoxy</span> problem, by toggling off <span class= + "APPLICATION">Privoxy</span> through <a href= + "http://config.privoxy.org/toggle" target= + "_top">http://config.privoxy.org/toggle</a> (the toggle feature may + need to be enabled in the main <tt class="FILENAME">config</tt>), and + then shift-reloading the problem page (i.e. holding down the shift key + while clicking reload. Alternatively, flush your browser's disk and + memory caches).</p> + + <p>If the problem went away, we know we have a configuration related + problem. Now go to <a href="http://config.privoxy.org/show-url-info" + target="_top">http://config.privoxy.org/show-url-info</a> and paste the + full URL of the page in question into the prompt. See which actions are + being applied to the URL, and which matches in which actions files are + responsible for that. It might be helpful also to look at your logs for + this site too, to see what else might be happening (note: logging may + need to be enabled in the main config file). Many sites are complex and + require a number of related pages to help present their content. Look + at what else might be used by the page in question, and what of that + might be <span class="emphasis EMPHASIS c3">required</span>. Now, armed + with this information, go to <a href= + "http://config.privoxy.org/show-status" target= + "_top">http://config.privoxy.org/show-status</a> and select the + appropriate actions files for editing.</p> + + <p>You can now either look for a section which disables the actions + that you suspect to cause the problem and add a pattern for your site + there, or make up a completely new section for your site. In any case, + the recommended way is to disable only the prime suspect, reload the + problem page, and only if the problem persists, disable more and more + actions until you have identified the culprit. You may or may not want + to turn the other actions on again. Remember to flush your browser's + caches in between any such changes!</p> + + <p>Alternately, if you are comfortable with a text editor, you can + accomplish the same thing by editing the appropriate actions file. + Probably the easiest way to deal with such problems when editing by + hand is to add your site to a <tt class="LITERAL">{ fragile }</tt> + section in <tt class="FILENAME">user.action</tt>, which is an alias + that turns off most <span class="QUOTE">"dangerous"</span> actions, but + is also likely to turn off more actions then needed, and thus lower + your privacy and protection more than necessary,</p> + + <p>Troubleshooting actions is discussed in more detail in the <a href= + "../user-manual/appendix.html#ACTIONSANAT" target="_top">User Manual + appendix, Troubleshooting: the Anatomy of an Action</a>. There is also + an <a href="../user-manual/actions-file.html#ACT-EXAMPLES" target= + "_top">actions tutorial</a> with general configuration information and + examples.</p> + + <p>As a last resort, you can always see if your browser has a setting + that will bypass the proxy setting for selective sites. Modern browsers + can do this.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="DUN" id="DUN">5.5. After installing Privoxy, + I have to log in every time I start IE. What gives?</a></h3> + + <p>This is a quirk that effects the installation of <span class= + "APPLICATION">Privoxy</span>, in conjunction with Internet Explorer and + Internet Connection Sharing on Windows 2000 and Windows XP. The + symptoms may appear to be corrupted or invalid DUN settings, or + passwords.</p> + + <p>When setting up an NT based Windows system with <span class= + "APPLICATION">Privoxy</span> you may find that things do not seem to be + doing what you expect. When you set your system up you will probably + have set up Internet Connection Sharing (ICS) with Dial up Networking + (DUN) when logged in with administrator privileges. You will probably + have made this DUN connection available to other accounts that you may + have set-up on your system. E.g. Mum or Dad sets up the system and + makes accounts suitably configured for the kids.</p> + + <p>When setting up <span class="APPLICATION">Privoxy</span> in this + environment you will have to alter the proxy set-up of Internet + Explorer (IE) for the specific DUN connection on which you wish to use + <span class="APPLICATION">Privoxy</span>. When you do this the ICS DUN + set-up becomes user specific. In this instance you will see no + difference if you change the DUN connection under the account used to + set-up the connection. However when you do this from another user you + will notice that the DUN connection changes to make available to "Me + only". You will also find that you have to store the password under + each different user!</p> + + <p>The reason for this is that each user's set-up for IE is user + specific. Each set-up DUN connection and each LAN connection in IE + store the settings for each user individually. As such this enforces + individual configurations rather than common ones. Hence the first time + you use a DUN connection after re-booting your system it may not + perform as you expect, and prompt you for the password. Just set and + save the password again and all should be OK.</p> + + <p>[Thanks to Ray Griffith for this submission.]</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="FTP" id="FTP">5.6. I cannot connect to any + FTP sites. Privoxy is blocking me.</a></h3> + + <p><span class="APPLICATION">Privoxy</span> cannot act as a proxy for + FTP traffic, so do not configure your browser to use <span class= + "APPLICATION">Privoxy</span> as an FTP proxy. The same is true for + <span class="emphasis EMPHASIS c3">any protocol other than HTTP or + HTTPS (SSL)</span>.</p> + + <p>Most browsers understand FTP as well as HTTP. If you connect to a + site, with a URL like <tt class="LITERAL">ftp://ftp.example.com</tt>, + your browser is making an FTP connection, and not a HTTP connection. So + while your browser may speak FTP, <span class= + "APPLICATION">Privoxy</span> does not, and cannot proxy such + traffic.</p> + + <p>To complicate matters, some systems may have a generic <span class= + "QUOTE">"proxy"</span> setting, which will enable various protocols, + including <span class="emphasis EMPHASIS c3">both</span> HTTP and FTP + proxying! So it is possible to accidentally enable FTP proxying in + these cases. And of course, if this happens, <span class= + "APPLICATION">Privoxy</span> will indeed cause problems since it does + not know FTP. Newer version will give a sane error message if a FTP + connection is attempted. Just disable the FTP setting and all will be + well again.</p> + + <p>Will <span class="APPLICATION">Privoxy</span> ever proxy FTP + traffic? Unlikely. There just is not much reason, and the work to make + this happen is more than it may seem.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="MACOSXIE" id="MACOSXIE">5.7. In Mac OS X, I + can't configure Microsoft Internet Explorer to use Privoxy as the HTTP + proxy.</a></h3> + + <p>Microsoft Internet Explorer (in versions like 5.1) respects + system-wide network settings. In order to change the HTTP proxy, open + System Preferences, and click on the Network icon. In the settings pane + that comes up, click on the Proxies tab. Ensure the "Web Proxy (HTTP)" + checkbox is checked and enter <tt class="LITERAL">127.0.0.1</tt> in the + entry field. Enter <tt class="LITERAL">8118</tt> in the Port field. The + next time you start IE, it should reflect these values.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="MACOSXUNINSTALL" id="MACOSXUNINSTALL">5.8. + In Mac OS X, I dragged the Privoxy folder to the trash in order to + uninstall it. Now the finder tells me I don't have sufficient + privileges to empty the trash.</a></h3> + + <p>Note: This ONLY applies to privoxy 3.0.6 and earlier.</p> + + <p>Just dragging the <span class="APPLICATION">Privoxy</span> folder to + the trash is not enough to delete it. <span class= + "APPLICATION">Privoxy</span> supplies an <span class= + "APPLICATION">uninstall.command</span> file that takes care of these + details. Open the trash, drag the <span class= + "APPLICATION">uninstall.command</span> file out of the trash and + double-click on it. You will be prompted for confirmation and the + administration password.</p> + + <p>The trash may still appear full after this command; emptying the + trash from the desktop should make it appear empty again.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="MACOSXIMAGES" id="MACOSXIMAGES">5.9. In Mac + OS X Panther (10.3), images often fail to load and/or I experience + random delays in page loading. I'm using <tt class= + "LITERAL">localhost</tt> as my browser's proxy setting.</a></h3> + + <p>We believe this is due to an IPv6-related bug in Mac OS X, but don't + fully understand the issue yet. In any case, changing the proxy setting + to <tt class="LITERAL">127.0.0.1</tt> instead of <tt class= + "LITERAL">localhost</tt> works around the problem.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="BLANKPAGE" id="BLANKPAGE">5.10. I get a + completely blank page at one site. <span class="QUOTE">"View + Source"</span> shows only: <span class= + "MARKUP"><html><body></body></html></span>. + Without Privoxy the page loads fine.</a></h3> + + <p>Chances are that the site suffers from a bug in <a href= + "http://www.php.net/" target="_top"><span class= + "APPLICATION">PHP</span></a>, which results in empty pages being sent + if the client explicitly requests an uncompressed page, like + <span class="APPLICATION">Privoxy</span> does. This bug has been fixed + in PHP 4.2.3.</p> + + <p>To find out if this is in fact the source of the problem, try adding + the site to a <tt class="LITERAL">-prevent-compression</tt> section in + <tt class="FILENAME">user.action</tt>:</p> + + <table class="c2" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> # Make exceptions for ill-behaved sites: # {-prevent-compression} .example.com </pre> - </td> - </tr> - </table> - <p> - If that works, you may also want to report the problem to the - site's webmasters, telling them to use zlib.output_compression - instead of ob_gzhandler in their PHP applications (workaround) or - upgrade to PHP 4.2.3 or later (fix). - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="NOHOSTNAME">5.11. My logs show many <span class= - "QUOTE">"Unable to get my own hostname"</span> lines. Why?</a> - </h3> - <p> - <span class="APPLICATION">Privoxy</span> tries to get the hostname - of the system its running on from the IP address of the system - interface it is bound to (from the <tt class="FILENAME">config</tt> - file <span class="emphasis"><i class= - "EMPHASIS">listen-address</i></span> setting). If the system cannot - supply this information, <span class="APPLICATION">Privoxy</span> - logs this condition. - </p> - <p> - Typically, this would be considered a minor system configuration - error. It is not a fatal error to <span class= - "APPLICATION">Privoxy</span> however, but may result in a much - slower response from <span class="APPLICATION">Privoxy</span> on - some platforms due to DNS timeouts. - </p> - <p> - This can be caused by a problem with the local <tt class= - "FILENAME">hosts</tt> file. If this file has been changed from the - original, try reverting it to see if that helps. Make sure whatever - name(s) are used for the local system, that they resolve both ways. - </p> - <p> - You should also be able to work around the problem with the <a - href="../user-manual/config.html#HOSTNAME" target="_top">hostname - option</a>. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="INUSE">5.12. When I try to launch Privoxy, I get an error - message <span class="QUOTE">"port 8118 is already in use"</span> - (or similar wording). Why?</a> - </h3> - <p> - Port 8118 is <span class="APPLICATION">Privoxy's</span> default TCP - <span class="QUOTE">"listening"</span> port. Typically this message - would mean that there is already one instance of <span class= - "APPLICATION">Privoxy</span> running, and your system is actually - trying to start a second <span class="APPLICATION">Privoxy</span> - on the same port, which will not work. (You can have multiple - instances but they must be assigned different ports.) How and why - this might happen varies from platform to platform, but you need to - check your installation and start-up procedures. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="DEMORONIZER">5.13. Pages with UTF-8 fonts are garbled.</a> - </h3> - <p> - This is caused by the <span class="QUOTE">"demoronizer"</span> - filter. You should either upgrade <span class= - "APPLICATION">Privoxy</span>, or at least upgrade to the most - recent <tt class="FILENAME">default.action</tt> file available from - <a href= - "http://sourceforge.net/project/showfiles.php?group_id=11118" - target="_top">SourceForge</a>. Or you can simply disable the - demoronizer filter. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="DEMORONIZER2">5.14. Why are binary files (such as images) - corrupted when Privoxy is used?</a> - </h3> - <p> - This may also be caused by the <span class= - "QUOTE">"demoronizer"</span> filter, in conjunction with a web - server that is misreporting the content type. Binary files are - exempted from <span class="APPLICATION">Privoxy's</span> filtering - (unless the web server by mistake says the file is something else). - Either upgrade <span class="APPLICATION">Privoxy</span>, or go to - the most recent <tt class="FILENAME">default.action</tt> file - available from <a href= - "http://sourceforge.net/project/showfiles.php?group_id=11118" - target="_top">SourceForge</a>. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="DEMORONIZER3">5.15. What is the <span class= - "QUOTE">"demoronizer"</span> and why is it there?</a> - </h3> - <p> - The original demoronizer was a Perl script that cleaned up HTML - pages which were created with certain Microsoft products. MS has - used proprietary extensions to standardized font encodings (ISO - 8859-1), which has caused problems for pages that are viewed with - non-Microsoft products (and are expecting to see a standard set of - fonts). The demoronizer corrected these errors so the pages - displayed correctly. <span class="APPLICATION">Privoxy</span> - borrowed from this script, introducing a filter based on the - original demoronizer, which in turn could correct these errors on - the fly. - </p> - <p> - But this is only needed in some situations, and will cause serious - problems in some other situations. - </p> - <p> - If you are using Microsoft products, you do not need it. If you - need to view pages with UTF-8 characters (such as Cyrillic or - Chinese), then it will cause corruption of the fonts, and thus - <span class="emphasis"><i class="EMPHASIS">should not be - on</i></span>. - </p> - <p> - On the other hand, if you use non-Microsoft products, and you - occasionally notice weird characters on pages, you might want to - try it. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="WINDOWOPEN">5.16. Why do I keep seeing <span class= - "QUOTE">"PrivoxyWindowOpen()"</span> in raw source code?</a> - </h3> - <p> - <span class="APPLICATION">Privoxy</span> is attempting to disable - malicious <a href="http://en.wikipedia.org/wiki/Javascript" target= - "_top">Javascript</a> in this case, with the <tt class= - "LITERAL">unsolicited-popups</tt> filter. <span class= - "APPLICATION">Privoxy</span> cannot tell very well <span class= - "QUOTE">"good"</span> code snippets from <span class= - "QUOTE">"bad"</span> code snippets. - </p> - <p> - If you see this in HTML source, and the page displays without - problems, then this is good, and likely some pop-up window was - disabled. If you see this where it is causing a problem, such as a - downloaded program source code file, then you should set an - exception for this site or page such that the integrity of the page - stays in tact by disabling all filtering. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="DNSERRORS">5.17. I am getting too many DNS errors like - <span class="QUOTE">"404 No Such Domain"</span>. Why can't Privoxy - do this better?</a> - </h3> - <p> - There are potentially several factors here. First of all, the DNS - resolution is done by the underlying operating system -- not <span - class="APPLICATION">Privoxy</span> itself. <span class= - "APPLICATION">Privoxy</span> merely initiates the process and hands - it off, and then later reports whatever the outcome was and tries - to give a coherent message if there seems to be a problem. In some - cases, this might otherwise be mitigated by the browser itself - which might try some work-arounds and alternate approaches (e.g - adding <span class="QUOTE">"www."</span> to the URL). - </p> - <p> - In other cases, if <span class="APPLICATION">Privoxy</span> is - being chained with another proxy, this could complicate the issue, - and cause undue delays and timeouts. In the case of a <span class= - "QUOTE">"socks4a"</span> proxy, the socks server handles all the - DNS. <span class="APPLICATION">Privoxy</span> would just be the - <span class="QUOTE">"messenger"</span> which is reporting whatever - problem occurred downstream, and not the root cause of the error. - </p> - <p> - In any case, versions newer than 3.0.3 include various improvements - to help <span class="APPLICATION">Privoxy</span> better handle - these cases. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="ALLCPU">5.18. At one site Privoxy just hangs, and starts - taking all CPU. Why is this?</a> - </h3> - <p> - This is probably a manifestation of the <span class="QUOTE">"100% - cpu"</span> problem that occurs on pages containing many (thousands - upon thousands) of blank lines. The blank lines are in the raw HTML - source of the page, and the browser just ignores them. But the - pattern matching in <span class="APPLICATION">Privoxy's</span> page - filtering mechanism is trying to match against absurdly long - strings and this becomes very CPU-intensive, taking a long, long - time to complete. - </p> - <p> - Until a better solution comes along, disable filtering on these - pages, particularly the <tt class="LITERAL">js-annoyances</tt> and - <tt class="LITERAL">unsolicited-popups</tt> filters. If you run - into this problem with a recent <span class= - "APPLICATION">Privoxy</span> version, please send a problem report. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="SLOWCRAWL">5.19. I just installed Privoxy, and all my - browsing has slowed to a crawl. What gives?</a> - </h3> - <p> - This should not happen, and for the overwhelming number of users - world-wide, it does not happen. I would suspect some inadvertent - interaction of software components such as anti-virus software, - spyware protectors, personal firewalls or similar components. Try - disabling (or uninstalling) these one at a time and see if that - helps. Either way, if you are using a recent <span class= - "APPLICATION">Privoxy</span> version, please report the problem. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="PREVENTCOMP">5.20. Why do my filters work on some sites - but not on others?</a> - </h3> - <p> - It's probably due to compression. It is a common practice for web - servers to send their content <span class= - "QUOTE">"compressed"</span> in order to speed things up, and then - let the browser <span class="QUOTE">"uncompress"</span> them. When - compiled with zlib support <span class="APPLICATION">Privoxy</span> - can decompress content before filtering, otherwise you may want to - enable <a href= - "../user-manual/actions-file.html#PREVENT-COMPRESSION" target= - "_top">prevent-compression</a>. - </p> - <p> - As of <span class="APPLICATION">Privoxy</span> 3.0.9, zlib support - is enabled in the default builds. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="SSL-WARNINGS">5.21. On some HTTPS sites my browser warns - me about unauthenticated content, the URL bar doesn't get - highlighted and the lock symbol appears to be broken. What's going - on?</a> - </h3> - <p> - Probably the browser is requesting ads through HTTPS and <span - class="APPLICATION">Privoxy</span> is blocking the requests. - Privoxy's error messages are delivered unencrypted and while it's - obvious for the browser that the HTTPS request is already blocked - by the proxy, some warn about unauthenticated content anyway. - </p> - <p> - To work around the problem you can redirect those requests to an - invalid local address instead of blocking them. While the redirects - aren't encrypted either, many browsers don't care. They simply - follow the redirect, fail to reach a server and display an error - message instead of the ad. - </p> - <p> - To do that, enable logging to figure out which requests get blocked - by <span class="APPLICATION">Privoxy</span> and add the hosts (no - path patterns) to a section like this: - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> -{+redirect{http://127.0.0.1:0/} -block -limit-connect} -.ivwbox.de:443/ -</pre> - </td> - </tr> - </table> - - <p> - Additionally you have to configure your browser to contact <span - class="QUOTE">"127.0.0.1:0"</span> directly (instead of through - <span class="APPLICATION">Privoxy</span>). - </p> - <p> - To add a proxy exception in <span class="APPLICATION">Mozilla - Firefox</span> open the <span class="QUOTE">"Preferences"</span>, - click the <span class="QUOTE">"Settings"</span> button located on - the <span class="QUOTE">"Network"</span> tab in the <span class= - "QUOTE">"Advanced"</span> section, and add <span class= - "QUOTE">"127.0.0.1:0"</span> in the <span class="QUOTE">"No Proxy - for:"</span> field. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="SE-LINUX">5.22. I get selinux error messages. How can I - fix this?</a> - </h3> - <p> - Please report the problem to the creator of your selinux policies. - </p> - <p> - The problem is that some selinux policy writers aren't familiar - with the application they are trying to <span class= - "QUOTE">"secure"</span> and thus create policies that make no - sense. - </p> - <p> - In <span class="APPLICATION">Privoxy's</span> case the problem - usually is that the policy only allows outgoing connections for - certain destination ports (e.g. 80 and 443). While this may cover - the standard ports, websites occasionally use other ports as well. - This isn't a security problem and therefore <span class= - "APPLICATION">Privoxy's</span> default configuration doesn't block - these requests. - </p> - <p> - If you really want to block these ports (and don't be able to load - websites that don't use standard ports), you should configure - Privoxy to block these ports as well, so it doesn't trigger the - selinux warnings. - </p> - </div> - <div class="SECT2"> - <h3 class="SECT2"> - <a name="GENTOO-RICERS">5.23. I compiled <span class= - "APPLICATION">Privoxy</span> with Gentoo's portage and it appears - to be very slow. Why?</a> - </h3> - <p> - Probably you unintentionally compiled <span class= - "APPLICATION">Privoxy</span> without threading support in which - case requests have to be serialized and only one can be served at - the same time. - </p> - <p> - Check your <span class="QUOTE">"USE"</span> flags and make sure - they include <span class="QUOTE">"threads"</span>. If they don't, - add the flag and rebuild <span class="APPLICATION">Privoxy</span>. - </p> - <p> - If you compiled <span class="APPLICATION">Privoxy</span> with - threading support (on POSIX-based systems), the <span class= - "QUOTE">"Conditional #defines"</span> section on <a href= - "http://config.privoxy.org/show-status" target= - "_top">http://config.privoxy.org/show-status</a> will list <span - class="QUOTE">"FEATURE_PTHREAD"</span> as <span class= - "QUOTE">"enabled"</span>. - </p> - </div> - </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="misc.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="contact.html" accesskey="N">Next</a> </td> </tr> + </table> + + <p>If that works, you may also want to report the problem to the site's + webmasters, telling them to use zlib.output_compression instead of + ob_gzhandler in their PHP applications (workaround) or upgrade to PHP + 4.2.3 or later (fix).</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="NOHOSTNAME" id="NOHOSTNAME">5.11. My logs + show many <span class="QUOTE">"Unable to get my own hostname"</span> + lines. Why?</a></h3> + + <p><span class="APPLICATION">Privoxy</span> tries to get the hostname + of the system its running on from the IP address of the system + interface it is bound to (from the <tt class="FILENAME">config</tt> + file <span class="emphasis EMPHASIS c3">listen-address</span> setting). + If the system cannot supply this information, <span class= + "APPLICATION">Privoxy</span> logs this condition.</p> + + <p>Typically, this would be considered a minor system configuration + error. It is not a fatal error to <span class= + "APPLICATION">Privoxy</span> however, but may result in a much slower + response from <span class="APPLICATION">Privoxy</span> on some + platforms due to DNS timeouts.</p> + + <p>This can be caused by a problem with the local <tt class= + "FILENAME">hosts</tt> file. If this file has been changed from the + original, try reverting it to see if that helps. Make sure whatever + name(s) are used for the local system, that they resolve both ways.</p> + + <p>You should also be able to work around the problem with the <a href= + "../user-manual/config.html#HOSTNAME" target="_top">hostname + option</a>.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="INUSE" id="INUSE">5.12. When I try to launch + Privoxy, I get an error message <span class="QUOTE">"port 8118 is + already in use"</span> (or similar wording). Why?</a></h3> + + <p>Port 8118 is <span class="APPLICATION">Privoxy's</span> default TCP + <span class="QUOTE">"listening"</span> port. Typically this message + would mean that there is already one instance of <span class= + "APPLICATION">Privoxy</span> running, and your system is actually + trying to start a second <span class="APPLICATION">Privoxy</span> on + the same port, which will not work. (You can have multiple instances + but they must be assigned different ports.) How and why this might + happen varies from platform to platform, but you need to check your + installation and start-up procedures.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="DEMORONIZER" id="DEMORONIZER">5.13. Pages + with UTF-8 fonts are garbled.</a></h3> + + <p>This is caused by the <span class="QUOTE">"demoronizer"</span> + filter. You should either upgrade <span class= + "APPLICATION">Privoxy</span>, or at least upgrade to the most recent + <tt class="FILENAME">default.action</tt> file available from <a href= + "http://sourceforge.net/project/showfiles.php?group_id=11118" target= + "_top">SourceForge</a>. Or you can simply disable the demoronizer + filter.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="DEMORONIZER2" id="DEMORONIZER2">5.14. Why + are binary files (such as images) corrupted when Privoxy is + used?</a></h3> + + <p>This may also be caused by the <span class= + "QUOTE">"demoronizer"</span> filter, in conjunction with a web server + that is misreporting the content type. Binary files are exempted from + <span class="APPLICATION">Privoxy's</span> filtering (unless the web + server by mistake says the file is something else). Either upgrade + <span class="APPLICATION">Privoxy</span>, or go to the most recent + <tt class="FILENAME">default.action</tt> file available from <a href= + "http://sourceforge.net/project/showfiles.php?group_id=11118" target= + "_top">SourceForge</a>.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="DEMORONIZER3" id="DEMORONIZER3">5.15. What + is the <span class="QUOTE">"demoronizer"</span> and why is it + there?</a></h3> + + <p>The original demoronizer was a Perl script that cleaned up HTML + pages which were created with certain Microsoft products. MS has used + proprietary extensions to standardized font encodings (ISO 8859-1), + which has caused problems for pages that are viewed with non-Microsoft + products (and are expecting to see a standard set of fonts). The + demoronizer corrected these errors so the pages displayed correctly. + <span class="APPLICATION">Privoxy</span> borrowed from this script, + introducing a filter based on the original demoronizer, which in turn + could correct these errors on the fly.</p> + + <p>But this is only needed in some situations, and will cause serious + problems in some other situations.</p> + + <p>If you are using Microsoft products, you do not need it. If you need + to view pages with UTF-8 characters (such as Cyrillic or Chinese), then + it will cause corruption of the fonts, and thus <span class= + "emphasis EMPHASIS c3">should not be on</span>.</p> + + <p>On the other hand, if you use non-Microsoft products, and you + occasionally notice weird characters on pages, you might want to try + it.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="WINDOWOPEN" id="WINDOWOPEN">5.16. Why do I + keep seeing <span class="QUOTE">"PrivoxyWindowOpen()"</span> in raw + source code?</a></h3> + + <p><span class="APPLICATION">Privoxy</span> is attempting to disable + malicious <a href="http://en.wikipedia.org/wiki/Javascript" target= + "_top">Javascript</a> in this case, with the <tt class= + "LITERAL">unsolicited-popups</tt> filter. <span class= + "APPLICATION">Privoxy</span> cannot tell very well <span class= + "QUOTE">"good"</span> code snippets from <span class= + "QUOTE">"bad"</span> code snippets.</p> + + <p>If you see this in HTML source, and the page displays without + problems, then this is good, and likely some pop-up window was + disabled. If you see this where it is causing a problem, such as a + downloaded program source code file, then you should set an exception + for this site or page such that the integrity of the page stays in tact + by disabling all filtering.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="DNSERRORS" id="DNSERRORS">5.17. I am getting + too many DNS errors like <span class="QUOTE">"404 No Such + Domain"</span>. Why can't Privoxy do this better?</a></h3> + + <p>There are potentially several factors here. First of all, the DNS + resolution is done by the underlying operating system -- not + <span class="APPLICATION">Privoxy</span> itself. <span class= + "APPLICATION">Privoxy</span> merely initiates the process and hands it + off, and then later reports whatever the outcome was and tries to give + a coherent message if there seems to be a problem. In some cases, this + might otherwise be mitigated by the browser itself which might try some + work-arounds and alternate approaches (e.g adding <span class= + "QUOTE">"www."</span> to the URL).</p> + + <p>In other cases, if <span class="APPLICATION">Privoxy</span> is being + chained with another proxy, this could complicate the issue, and cause + undue delays and timeouts. In the case of a <span class= + "QUOTE">"socks4a"</span> proxy, the socks server handles all the DNS. + <span class="APPLICATION">Privoxy</span> would just be the <span class= + "QUOTE">"messenger"</span> which is reporting whatever problem occurred + downstream, and not the root cause of the error.</p> + + <p>In any case, versions newer than 3.0.3 include various improvements + to help <span class="APPLICATION">Privoxy</span> better handle these + cases.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="ALLCPU" id="ALLCPU">5.18. At one site + Privoxy just hangs, and starts taking all CPU. Why is this?</a></h3> + + <p>This is probably a manifestation of the <span class="QUOTE">"100% + cpu"</span> problem that occurs on pages containing many (thousands + upon thousands) of blank lines. The blank lines are in the raw HTML + source of the page, and the browser just ignores them. But the pattern + matching in <span class="APPLICATION">Privoxy's</span> page filtering + mechanism is trying to match against absurdly long strings and this + becomes very CPU-intensive, taking a long, long time to complete.</p> + + <p>Until a better solution comes along, disable filtering on these + pages, particularly the <tt class="LITERAL">js-annoyances</tt> and + <tt class="LITERAL">unsolicited-popups</tt> filters. If you run into + this problem with a recent <span class="APPLICATION">Privoxy</span> + version, please send a problem report.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="SLOWCRAWL" id="SLOWCRAWL">5.19. I just + installed Privoxy, and all my browsing has slowed to a crawl. What + gives?</a></h3> + + <p>This should not happen, and for the overwhelming number of users + world-wide, it does not happen. I would suspect some inadvertent + interaction of software components such as anti-virus software, spyware + protectors, personal firewalls or similar components. Try disabling (or + uninstalling) these one at a time and see if that helps. Either way, if + you are using a recent <span class="APPLICATION">Privoxy</span> + version, please report the problem.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="PREVENTCOMP" id="PREVENTCOMP">5.20. Why do + my filters work on some sites but not on others?</a></h3> + + <p>It's probably due to compression. It is a common practice for web + servers to send their content <span class="QUOTE">"compressed"</span> + in order to speed things up, and then let the browser <span class= + "QUOTE">"uncompress"</span> them. When compiled with zlib support + <span class="APPLICATION">Privoxy</span> can decompress content before + filtering, otherwise you may want to enable <a href= + "../user-manual/actions-file.html#PREVENT-COMPRESSION" target= + "_top">prevent-compression</a>.</p> + + <p>As of <span class="APPLICATION">Privoxy</span> 3.0.9, zlib support + is enabled in the default builds.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="SSL-WARNINGS" id="SSL-WARNINGS">5.21. On + some HTTPS sites my browser warns me about unauthenticated content, the + URL bar doesn't get highlighted and the lock symbol appears to be + broken. What's going on?</a></h3> + + <p>Probably the browser is requesting ads through HTTPS and + <span class="APPLICATION">Privoxy</span> is blocking the requests. + Privoxy's error messages are delivered unencrypted and while it's + obvious for the browser that the HTTPS request is already blocked by + the proxy, some warn about unauthenticated content anyway.</p> + + <p>To work around the problem you can redirect those requests to an + invalid local address instead of blocking them. While the redirects + aren't encrypted either, many browsers don't care. They simply follow + the redirect, fail to reach a server and display an error message + instead of the ad.</p> + + <p>To do that, enable logging to figure out which requests get blocked + by <span class="APPLICATION">Privoxy</span> and add the hosts (no path + patterns) to a section like this:</p> + + <table class="c2" border="0" width="100%"> <tr> - <td width="33%" align="left" valign="top"> - Miscellaneous - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Contacting the developers, Bug Reporting and Feature Requests + <td> + <pre class="SCREEN"> +{+redirect{http://127.0.0.1:0/} -block -limit-connect} +.ivwbox.de:443/ +</pre> </td> </tr> </table> + + <p>Additionally you have to configure your browser to contact + <span class="QUOTE">"127.0.0.1:0"</span> directly (instead of through + <span class="APPLICATION">Privoxy</span>).</p> + + <p>To add a proxy exception in <span class="APPLICATION">Mozilla + Firefox</span> open the <span class="QUOTE">"Preferences"</span>, click + the <span class="QUOTE">"Settings"</span> button located on the + <span class="QUOTE">"Network"</span> tab in the <span class= + "QUOTE">"Advanced"</span> section, and add <span class= + "QUOTE">"127.0.0.1:0"</span> in the <span class="QUOTE">"No Proxy + for:"</span> field.</p> </div> - </body> -</html> + <div class="SECT2"> + <h3 class="SECT2"><a name="SE-LINUX" id="SE-LINUX">5.22. I get selinux + error messages. How can I fix this?</a></h3> + + <p>Please report the problem to the creator of your selinux + policies.</p> + + <p>The problem is that some selinux policy writers aren't familiar with + the application they are trying to <span class="QUOTE">"secure"</span> + and thus create policies that make no sense.</p> + + <p>In <span class="APPLICATION">Privoxy's</span> case the problem + usually is that the policy only allows outgoing connections for certain + destination ports (e.g. 80 and 443). While this may cover the standard + ports, websites occasionally use other ports as well. This isn't a + security problem and therefore <span class= + "APPLICATION">Privoxy's</span> default configuration doesn't block + these requests.</p> + + <p>If you really want to block these ports (and don't be able to load + websites that don't use standard ports), you should configure Privoxy + to block these ports as well, so it doesn't trigger the selinux + warnings.</p> + </div> + + <div class="SECT2"> + <h3 class="SECT2"><a name="GENTOO-RICERS" id="GENTOO-RICERS">5.23. I + compiled <span class="APPLICATION">Privoxy</span> with Gentoo's portage + and it appears to be very slow. Why?</a></h3> + + <p>Probably you unintentionally compiled <span class= + "APPLICATION">Privoxy</span> without threading support in which case + requests have to be serialized and only one can be served at the same + time.</p> + + <p>Check your <span class="QUOTE">"USE"</span> flags and make sure they + include <span class="QUOTE">"threads"</span>. If they don't, add the + flag and rebuild <span class="APPLICATION">Privoxy</span>.</p> + + <p>If you compiled <span class="APPLICATION">Privoxy</span> with + threading support (on POSIX-based systems), the <span class= + "QUOTE">"Conditional #defines"</span> section on <a href= + "http://config.privoxy.org/show-status" target= + "_top">http://config.privoxy.org/show-status</a> will list <span class= + "QUOTE">"FEATURE_PTHREAD"</span> as <span class= + "QUOTE">"enabled"</span>.</p> + </div> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="misc.html" + accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + + <td width="33%" align="right" valign="top"><a href="contact.html" + accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Miscellaneous</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Contacting the developers, + Bug Reporting and Feature Requests</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/index.html b/doc/webserver/index.html index 4920dc4e..c3fbe90c 100644 --- a/doc/webserver/index.html +++ b/doc/webserver/index.html @@ -1,234 +1,207 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Privoxy - Home Page - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <meta name="KEYWORD" content="privoxy"> - <meta name="KEYWORD" content="HTTP"> - <meta name="KEYWORD" content="proxy"> - <meta name="KEYWORD" content="privacy"> - <meta name="KEYWORD" content="popups"> - <meta name="KEYWORD" content="po-ups"> - <meta name="KEYWORD" content="HTML"> - <meta name="KEYWORD" content="JavaScript"> - <meta name="KEYWORD" content="cleaning"> - <meta name="KEYWORD" content="blocking"> - <meta name="KEYWORD" content="cleaner"> - <meta name="KEYWORD" content="blocker"> - <meta name="KEYWORD" content="filter"> - <meta name="KEYWORD" content="proxy"> - <meta name="KEYWORD" content="junk"> - <meta name="KEYWORD" content="ad"> - <meta name="KEYWORD" content="advertisement"> - <meta name="KEYWORD" content="banner"> - <meta name="KEYWORD" content="webbugs"> - <meta name="KEYWORD" content="web-bugs"> - <meta name="KEYWORD" content="werbung"> - <meta name="KEYWORD" content="junkbusters"> - <meta name="KEYWORD" content="junkbuster"> - <link rel="STYLESHEET" type="text/css" href="p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <meta name="description" content= - "Privoxy helps users to protect their privacy."> - <meta name="MSSmartTagsPreventParsing" content="TRUE"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Privoxy - Home Page</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <meta name="KEYWORD" content="privoxy"> + <meta name="KEYWORD" content="HTTP"> + <meta name="KEYWORD" content="proxy"> + <meta name="KEYWORD" content="privacy"> + <meta name="KEYWORD" content="popups"> + <meta name="KEYWORD" content="po-ups"> + <meta name="KEYWORD" content="HTML"> + <meta name="KEYWORD" content="JavaScript"> + <meta name="KEYWORD" content="cleaning"> + <meta name="KEYWORD" content="blocking"> + <meta name="KEYWORD" content="cleaner"> + <meta name="KEYWORD" content="blocker"> + <meta name="KEYWORD" content="filter"> + <meta name="KEYWORD" content="proxy"> + <meta name="KEYWORD" content="junk"> + <meta name="KEYWORD" content="ad"> + <meta name="KEYWORD" content="advertisement"> + <meta name="KEYWORD" content="banner"> + <meta name="KEYWORD" content="webbugs"> + <meta name="KEYWORD" content="web-bugs"> + <meta name="KEYWORD" content="werbung"> + <meta name="KEYWORD" content="junkbusters"> + <meta name="KEYWORD" content="junkbuster"> + <link rel="STYLESHEET" type="text/css" href="p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <meta name="description" content= + "Privoxy helps users to protect their privacy."> + <meta name="MSSmartTagsPreventParsing" content="TRUE"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - col.c1 {text-align: center} -</style> - </head> - <body class="ARTICLE"> - <div class="ARTICLE"> - <div class="TITLEPAGE"> - <h1 class="TITLE"> - <a name="AEN2">Privoxy - Home Page</a> - </h1> - <div> - <a name="AEN28"></a> - <p> - Privoxy is a non-caching web proxy with advanced filtering - capabilities for enhancing privacy, modifying web page data and - HTTP headers, controlling access, and removing ads and other - obnoxious Internet junk. Privoxy has a flexible configuration and - can be customized to suit individual needs and tastes. It has - application for both stand-alone systems and multi-user networks. - </p> - <p> - Privoxy is Free Software and licensed under the GNU GPLv2. - </p> - <p> - Privoxy is an associated project of Software in the Public - Interest (SPI). - </p> - <p> - Helping hands and donations are welcome: - </p> - <ul> - <li> - <p> - <a href="http://www.privoxy.org/faq/general.html#PARTICIPATE" - target= - "_top">http://www.privoxy.org/faq/general.html#PARTICIPATE</a> - </p> - </li> - <li> - <p> - <a href="http://www.privoxy.org/faq/general.html#DONATE" - target= - "_top">http://www.privoxy.org/faq/general.html#DONATE</a> - </p> - </li> - </ul> - - <p> - The most recent release is <a href="announce.txt" target= - "_top">3.0.18 (UNRELEASED)</a>. - </p> - </div> - <hr> - </div> - <div class="SECT1"> - <h3 class="SECT1"> - <a name="DOWNLOAD">Download</a> - </h3> - <p> - </p> - <ul> - <li> - <p> - <a href="https://sourceforge.net/projects/ijbswa/files/" - target="_top">Download recent releases</a> - </p> - </li> - <li> - <p> - <a href="user-manual/quickstart.html" target="_top">Quickstart - after installation</a> - </p> - </li> - </ul> - </div> - <div class="SECT1"> - <hr> - <h3 class="SECT1"> - <a name="DOCS">Documentation</a> - </h3> - <p> - </p> - <ul> - <li> - <p> - <a href="user-manual/index.html" target="_top">User manual</a> - </p> - </li> - <li> - <p> - <a href="faq/index.html" target="_top">Frequently Asked - Questions</a> - </p> - </li> - <li> - <p> - <a href="developer-manual/index.html" target="_top">Developer - Manual</a> - </p> - </li> - <li> - <p> - <a href="man-page/privoxy-man-page.html" target="_top">Classic - Man Page</a> - </p> - </li> - </ul> - </div> - <div class="SECT1"> - <hr> - <h3 class="SECT1"> - <a name="MOREINFO">More information</a> - </h3> - <p> - </p> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + col.c1 {text-align: center} + </style> +</head> + +<body class="ARTICLE"> + <div class="ARTICLE"> + <div class="TITLEPAGE"> + <h1 class="TITLE"><a name="AEN2" id="AEN2">Privoxy - Home Page</a></h1> + + <div class="ABSTRACT"> + <a name="AEN28" id="AEN28"></a> + + <p>Privoxy is a non-caching web proxy with advanced filtering + capabilities for enhancing privacy, modifying web page data and HTTP + headers, controlling access, and removing ads and other obnoxious + Internet junk. Privoxy has a flexible configuration and can be + customized to suit individual needs and tastes. It has application + for both stand-alone systems and multi-user networks.</p> + + <p>Privoxy is Free Software and licensed under the GNU GPLv2.</p> + + <p>Privoxy is an associated project of Software in the Public + Interest (SPI).</p> + + <p>Helping hands and donations are welcome:</p> + <ul> <li> - <p> - <a href="user-manual/contact.html" target="_top">Support & - Service</a> - </p> - </li> - <li> - <p> - <a href="user-manual/copyright.html" target="_top">Copyright, - License, History & Authors</a> - </p> - </li> - <li> - <p> - <a href="user-manual/introduction.html#FEATURES" target= - "_top">List of (new) Features</a> - </p> - </li> - <li> - <p> - <a href="https://sourceforge.net/projects/ijbswa/" target= - "_top">The project page</a> - </p> - </li> - <li> - <p> - <a href="user-manual/seealso.html" target="_top">Related - links</a> - </p> + <p><a href="http://www.privoxy.org/faq/general.html#PARTICIPATE" + target= + "_top">http://www.privoxy.org/faq/general.html#PARTICIPATE</a></p> </li> + <li> - <p> - <a href="http://www.privoxy.org/team/index.html" target= - "_top">Pictures of the Privoxy Team</a> - </p> + <p><a href="http://www.privoxy.org/faq/general.html#DONATE" + target= + "_top">http://www.privoxy.org/faq/general.html#DONATE</a></p> </li> </ul> + + <p>The most recent release is <a href="announce.txt" target= + "_top">3.0.18 (stable)</a>.</p> </div> - <div class="SECT1"> - <hr> - <h2 class="SECT1"> - <a name="AEN90"></a> - </h2> - <div class="INFORMALTABLE"> - <a name="AEN93"></a> - <table border="0" frame="void" rules="all" width="100%" class= - "CALSTABLE"> - <col width="100%" title="C1" class="c1"> - <tbody> - <tr> - <td align="CENTER"> - Privoxy is developed on: - </td> - </tr> - <tr> - <td align="CENTER"> - <a href="http://sourceforge.net/" target="_top"><img src= - "http://sourceforge.net/sflogo.php?group_id=11118&type=1&dummy=.gif"> - </a> - </td> - </tr> - </tbody> - </table> - </div> - - <p> - <sub>Copyright © 2001-2010 by Privoxy Developers</sub> - </p> + <hr> + </div> + + <div class="SECT1"> + <h3 class="SECT1"><a name="DOWNLOAD" id="DOWNLOAD">Download</a></h3> + + <ul> + <li> + <p><a href="https://sourceforge.net/projects/ijbswa/files/" target= + "_top">Download recent releases</a></p> + </li> + + <li> + <p><a href="user-manual/quickstart.html" target="_top">Quickstart + after installation</a></p> + </li> + </ul> + </div> + + <div class="SECT1"> + <hr> + + <h3 class="SECT1"><a name="DOCS" id="DOCS">Documentation</a></h3> + + <ul> + <li> + <p><a href="user-manual/index.html" target="_top">User + manual</a></p> + </li> + + <li> + <p><a href="faq/index.html" target="_top">Frequently Asked + Questions</a></p> + </li> + + <li> + <p><a href="developer-manual/index.html" target="_top">Developer + Manual</a></p> + </li> + + <li> + <p><a href="man-page/privoxy-man-page.html" target="_top">Classic + Man Page</a></p> + </li> + </ul> + </div> + + <div class="SECT1"> + <hr> + + <h3 class="SECT1"><a name="MOREINFO" id="MOREINFO">More + information</a></h3> + + <ul> + <li> + <p><a href="user-manual/contact.html" target="_top">Support & + Service</a></p> + </li> + + <li> + <p><a href="user-manual/copyright.html" target="_top">Copyright, + License, History & Authors</a></p> + </li> + + <li> + <p><a href="user-manual/introduction.html#FEATURES" target= + "_top">List of (new) Features</a></p> + </li> + + <li> + <p><a href="https://sourceforge.net/projects/ijbswa/" target= + "_top">The project page</a></p> + </li> + + <li> + <p><a href="user-manual/seealso.html" target="_top">Related + links</a></p> + </li> + + <li> + <p><a href="http://www.privoxy.org/team/index.html" target= + "_top">Pictures of the Privoxy Team</a></p> + </li> + </ul> + </div> + + <div class="SECT1"> + <hr> + + <h2 class="SECT1"><a name="AEN90" id="AEN90"></a></h2> + + <div class="INFORMALTABLE"> + <a name="AEN93" id="AEN93"></a> + + <table border="0" frame="void" rules="all" width="100%" class= + "CALSTABLE"> + <col class="c1" width="100%" title="C1"> + + <tbody> + <tr> + <td align="center">Privoxy is developed on:</td> + </tr> + + <tr> + <td align="center"><a href="http://sourceforge.net/" target= + "_top"><img src= + "http://sourceforge.net/sflogo.php?group_id=11118&type=1&dummy=.gif"></a></td> + </tr> + </tbody> + </table> </div> + + <p><sub>Copyright © 2001-2010 by Privoxy Developers</sub></p> </div> - </body> + </div> +</body> </html> - diff --git a/doc/webserver/man-page/privoxy-man-page.html b/doc/webserver/man-page/privoxy-man-page.html index 1bb72e28..e9e78852 100644 --- a/doc/webserver/man-page/privoxy-man-page.html +++ b/doc/webserver/man-page/privoxy-man-page.html @@ -1,24 +1,23 @@ -<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN"> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Privoxy Man page - </title> - <link rel="stylesheet" type="text/css" href="../p_web.css"> - </head> - <body> - <h2> - NAME - </h2> -<pre> +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Privoxy Man page</title> + <link rel="stylesheet" type="text/css" href="../p_web.css"> +</head> + +<body> + <h2>NAME</h2> + <pre> <!-- Manpage converted by man2html 3.0.1 --> </pre> - <h2> - SYNOPSIS - </h2> -<pre> + + <h2>SYNOPSIS</h2> + <pre> <b>privoxy</b> [<b>--help</b> ] [<b>--version</b> ] [<b>--no-daemon</b> ] [<b>--pidfile</b> <i>pidfile</i> ] [<b>--user</b> <i>user[.group]</i> ] [<b>--chroot</b> ] [<b>--pre-chroot-nslookup</b> <i>hostname</i> ] [<i>configfile</i> ] @@ -26,10 +25,9 @@ </pre> - <h2> - OPTIONS - </h2> -<pre> + + <h2>OPTIONS</h2> + <pre> <b>Privoxy</b> may be invoked with the following command line options: <b>--help</b> Print brief usage info and exit. @@ -72,10 +70,9 @@ </pre> - <h2> - DESCRIPTION - </h2> -<pre> + + <h2>DESCRIPTION</h2> + <pre> Privoxy is a non-caching web proxy with advanced filtering capabilities for enhancing privacy, modifying web page data and HTTP headers, con- trolling access, and removing ads and other obnoxious Internet junk. @@ -83,10 +80,9 @@ </pre> - <h2> - INSTALLATION AND USAGE - </h2> -<pre> + + <h2>INSTALLATION AND USAGE</h2> + <pre> Browsers can either be individually configured to use <b>Privoxy</b> as a HTTP proxy (recommended), or <b>Privoxy</b> can be combined with a packet filter to build an intercepting proxy (see <i>config</i>). The default setting is for @@ -107,10 +103,9 @@ </pre> - <h2> - CONFIGURATION - </h2> -<pre> + + <h2>CONFIGURATION</h2> + <pre> <b>Privoxy</b> can be configured with the various configuration files. The default configuration files are: <i>config</i>, <i>default.filter</i>, <i>default.action</i> and <i>default.action</i>. <i>user.action</i> should be used for locally defined @@ -138,10 +133,9 @@ </pre> - <h2> - FILES - </h2> -<pre> + + <h2>FILES</h2> + <pre> <i>/usr/sbin/privoxy</i> <i>/etc/privoxy/config</i> <i>/etc/privoxy/match-all.action</i> @@ -152,10 +146,9 @@ </pre> - <h2> - NOTES - </h2> -<pre> + + <h2>NOTES</h2> + <pre> This is a UNRELEASED version of <b>Privoxy</b>. Not all features are well tested. @@ -164,10 +157,9 @@ </pre> - <h2> - SEE ALSO - </h2> -<pre> + + <h2>SEE ALSO</h2> + <pre> Other references and sites of interest to <b>Privoxy</b> users: @@ -189,10 +181,9 @@ </pre> - <h2> - DEVELOPMENT TEAM - </h2> -<pre> + + <h2>DEVELOPMENT TEAM</h2> + <pre> Fabian Keil, lead developer David Schmidt, developer @@ -204,10 +195,9 @@ </pre> - <h2> - COPYRIGHT AND LICENSE - </h2> -<pre> + + <h2>COPYRIGHT AND LICENSE</h2> + <pre> <b>COPYRIGHT</b> Copyright (C) 2001-2011 by Privoxy Developers <ijbswa-develop- ers@lists.sourceforge.net> @@ -221,6 +211,5 @@ under the terms of the <i>GNU</i> <i>General</i> <i>Public</i> <i>License</i>, version 2, as pub- lished by the Free Software Foundation. </pre> - </body> +</body> </html> - diff --git a/doc/webserver/privoxy-index.html b/doc/webserver/privoxy-index.html index 83d05985..01511ec0 100644 --- a/doc/webserver/privoxy-index.html +++ b/doc/webserver/privoxy-index.html @@ -1,209 +1,185 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Privoxy - The Privacy Enhancing Proxy - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <meta name="KEYWORD" content="privoxy"> - <meta name="KEYWORD" content="HTTP"> - <meta name="KEYWORD" content="proxy"> - <meta name="KEYWORD" content="privacy"> - <meta name="KEYWORD" content="popups"> - <meta name="KEYWORD" content="po-ups"> - <meta name="KEYWORD" content="HTML"> - <meta name="KEYWORD" content="JavaScript"> - <meta name="KEYWORD" content="cleaning"> - <meta name="KEYWORD" content="blocking"> - <meta name="KEYWORD" content="cleaner"> - <meta name="KEYWORD" content="blocker"> - <meta name="KEYWORD" content="filter"> - <meta name="KEYWORD" content="proxy"> - <meta name="KEYWORD" content="junk"> - <meta name="KEYWORD" content="ad"> - <meta name="KEYWORD" content="advertisement"> - <meta name="KEYWORD" content="banner"> - <meta name="KEYWORD" content="webbugs"> - <meta name="KEYWORD" content="web-bugs"> - <meta name="KEYWORD" content="werbung"> - <meta name="KEYWORD" content="junkbusters"> - <meta name="KEYWORD" content="junkbuster"> - <link rel="STYLESHEET" type="text/css" href="p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <meta name="description" content= - "Privoxy helps users to protect their privacy."> - <meta name="MSSmartTagsPreventParsing" content="TRUE"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Privoxy - The Privacy Enhancing Proxy</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <meta name="KEYWORD" content="privoxy"> + <meta name="KEYWORD" content="HTTP"> + <meta name="KEYWORD" content="proxy"> + <meta name="KEYWORD" content="privacy"> + <meta name="KEYWORD" content="popups"> + <meta name="KEYWORD" content="po-ups"> + <meta name="KEYWORD" content="HTML"> + <meta name="KEYWORD" content="JavaScript"> + <meta name="KEYWORD" content="cleaning"> + <meta name="KEYWORD" content="blocking"> + <meta name="KEYWORD" content="cleaner"> + <meta name="KEYWORD" content="blocker"> + <meta name="KEYWORD" content="filter"> + <meta name="KEYWORD" content="proxy"> + <meta name="KEYWORD" content="junk"> + <meta name="KEYWORD" content="ad"> + <meta name="KEYWORD" content="advertisement"> + <meta name="KEYWORD" content="banner"> + <meta name="KEYWORD" content="webbugs"> + <meta name="KEYWORD" content="web-bugs"> + <meta name="KEYWORD" content="werbung"> + <meta name="KEYWORD" content="junkbusters"> + <meta name="KEYWORD" content="junkbuster"> + <link rel="STYLESHEET" type="text/css" href="p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <meta name="description" content= + "Privoxy helps users to protect their privacy."> + <meta name="MSSmartTagsPreventParsing" content="TRUE"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } -</style> - </head> - <body class="ARTICLE"> - <div class="ARTICLE"> - <div class="TITLEPAGE"> - <h1 class="TITLE"> - <a name="AEN2">Privoxy - The Privacy Enhancing Proxy</a> - </h1> - <h2 class="SUBTITLE"> - Project Index Page v3.0.18 - </h2> - <div> - <a name="AEN29"></a> - <p> - Privoxy is a non-caching web proxy with advanced filtering - capabilities for enhancing privacy, modifying web page data and - HTTP headers, controlling access, and removing ads and other - obnoxious Internet junk. Privoxy has a flexible configuration and - can be customized to suit individual needs and tastes. It has - application for both stand-alone systems and multi-user networks. - </p> - <p> - Privoxy is Free Software and licensed under the GNU GPLv2. - </p> - <p> - Privoxy is an associated project of Software in the Public - Interest (SPI). - </p> - <p> - Helping hands and donations are welcome: - </p> - <ul> - <li> - <p> - <a href="http://www.privoxy.org/faq/general.html#PARTICIPATE" - target= - "_top">http://www.privoxy.org/faq/general.html#PARTICIPATE</a> - </p> - </li> - <li> - <p> - <a href="http://www.privoxy.org/faq/general.html#DONATE" - target= - "_top">http://www.privoxy.org/faq/general.html#DONATE</a> - </p> - </li> - </ul> - </div> - <hr> - </div> - <div class="SECT1"> - <h3 class="SECT1"> - <a name="DOWNLOAD">Download</a> - </h3> - <p> - </p> - <ul> - <li> - <p> - <a href="https://sourceforge.net/projects/ijbswa/files/" - target="_top">Download recent releases</a> - </p> - </li> - <li> - <p> - <a href="user-manual/quickstart.html" target="_top">Quickstart - after installation</a> - </p> - </li> - </ul> - </div> - <div class="SECT1"> - <hr> - <h3 class="SECT1"> - <a name="DOCS">Documentation</a> - </h3> - <p> - </p> - <ul> - <li> - <p> - <a href="user-manual/index.html" target="_top">User manual</a> - </p> - </li> - <li> - <p> - <a href="faq/index.html" target="_top">Frequently Asked - Questions</a> - </p> - </li> - <li> - <p> - <a href="developer-manual/index.html" target="_top">Developer - Manual</a> - </p> - </li> - <li> - <p> - <a href="man-page/privoxy-man-page.html" target="_top">Classic - Man Page</a> - </p> - </li> - </ul> - </div> - <div class="SECT1"> - <hr> - <h3 class="SECT1"> - <a name="MOREINFO">More information</a> - </h3> - <p> - </p> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + </style> +</head> + +<body class="ARTICLE"> + <div class="ARTICLE"> + <div class="TITLEPAGE"> + <h1 class="TITLE"><a name="AEN2" id="AEN2">Privoxy - The Privacy + Enhancing Proxy</a></h1> + + <h2 class="SUBTITLE">Project Index Page v3.0.18</h2> + + <div class="ABSTRACT"> + <a name="AEN29" id="AEN29"></a> + + <p>Privoxy is a non-caching web proxy with advanced filtering + capabilities for enhancing privacy, modifying web page data and HTTP + headers, controlling access, and removing ads and other obnoxious + Internet junk. Privoxy has a flexible configuration and can be + customized to suit individual needs and tastes. It has application + for both stand-alone systems and multi-user networks.</p> + + <p>Privoxy is Free Software and licensed under the GNU GPLv2.</p> + + <p>Privoxy is an associated project of Software in the Public + Interest (SPI).</p> + + <p>Helping hands and donations are welcome:</p> + <ul> <li> - <p> - <a href="user-manual/contact.html" target="_top">Support & - Service</a> - </p> - </li> - <li> - <p> - <a href="user-manual/copyright.html" target="_top">Copyright, - License, History & Authors</a> - </p> - </li> - <li> - <p> - <a href="user-manual/introduction.html#FEATURES" target= - "_top">List of (new) Features</a> - </p> - </li> - <li> - <p> - <a href="https://sourceforge.net/projects/ijbswa/" target= - "_top">The project page</a> - </p> - </li> - <li> - <p> - <a href="user-manual/seealso.html" target="_top">Related - links</a> - </p> + <p><a href="http://www.privoxy.org/faq/general.html#PARTICIPATE" + target= + "_top">http://www.privoxy.org/faq/general.html#PARTICIPATE</a></p> </li> + <li> - <p> - <a href="http://www.privoxy.org/team/index.html" target= - "_top">Pictures of the Privoxy Team</a> - </p> + <p><a href="http://www.privoxy.org/faq/general.html#DONATE" + target= + "_top">http://www.privoxy.org/faq/general.html#DONATE</a></p> </li> </ul> </div> - <div class="SECT1"> - <hr> - <h2 class="SECT1"> - <a name="AEN89"></a> - </h2> - <p> - <sub>Copyright © 2001-2010 by Privoxy Developers</sub> - </p> - </div> + <hr> </div> - </body> -</html> + <div class="SECT1"> + <h3 class="SECT1"><a name="DOWNLOAD" id="DOWNLOAD">Download</a></h3> + + <ul> + <li> + <p><a href="https://sourceforge.net/projects/ijbswa/files/" target= + "_top">Download recent releases</a></p> + </li> + + <li> + <p><a href="user-manual/quickstart.html" target="_top">Quickstart + after installation</a></p> + </li> + </ul> + </div> + + <div class="SECT1"> + <hr> + + <h3 class="SECT1"><a name="DOCS" id="DOCS">Documentation</a></h3> + + <ul> + <li> + <p><a href="user-manual/index.html" target="_top">User + manual</a></p> + </li> + + <li> + <p><a href="faq/index.html" target="_top">Frequently Asked + Questions</a></p> + </li> + + <li> + <p><a href="developer-manual/index.html" target="_top">Developer + Manual</a></p> + </li> + + <li> + <p><a href="man-page/privoxy-man-page.html" target="_top">Classic + Man Page</a></p> + </li> + </ul> + </div> + + <div class="SECT1"> + <hr> + + <h3 class="SECT1"><a name="MOREINFO" id="MOREINFO">More + information</a></h3> + + <ul> + <li> + <p><a href="user-manual/contact.html" target="_top">Support & + Service</a></p> + </li> + + <li> + <p><a href="user-manual/copyright.html" target="_top">Copyright, + License, History & Authors</a></p> + </li> + + <li> + <p><a href="user-manual/introduction.html#FEATURES" target= + "_top">List of (new) Features</a></p> + </li> + + <li> + <p><a href="https://sourceforge.net/projects/ijbswa/" target= + "_top">The project page</a></p> + </li> + + <li> + <p><a href="user-manual/seealso.html" target="_top">Related + links</a></p> + </li> + + <li> + <p><a href="http://www.privoxy.org/team/index.html" target= + "_top">Pictures of the Privoxy Team</a></p> + </li> + </ul> + </div> + + <div class="SECT1"> + <hr> + + <h2 class="SECT1"><a name="AEN89" id="AEN89"></a></h2> + + <p><sub>Copyright © 2001-2010 by Privoxy Developers</sub></p> + </div> + </div> +</body> +</html> diff --git a/doc/webserver/team/index.html b/doc/webserver/team/index.html index 0d093d1a..168c9637 100644 --- a/doc/webserver/team/index.html +++ b/doc/webserver/team/index.html @@ -1,62 +1,52 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> - <title> - Privoxy - Team Photos - </title> - <link rel="stylesheet" type="text/css" href="../p_doc.css"> -<style type="text/css"> - h1.c1 {margin-left: 0%} -</style> - </head> - <body> - <h1 class="c1"> - Privoxy - Team Photos - </h1> - <hr> - <p> - In our day jobs, we're all models ;-) - </p> - <table align="center"> - <tr> - <td> - <a href="01stefanw.jpg"><img src="01stefanw_t.jpg" width="80" - height="80" border="0" title="Stefan Waldherr"></a> - </td> - <td> - <a href="02jon.jpg"><img src="02jon_t.jpg" width="80" height="80" - border="0" title="Jon Foster"></a> - </td> - <td> - <a href="03andreas.jpg"><img src="03andreas_t.jpg" width="80" - height="80" border="0" title="Andreas Oesterhelt"></a> - </td> - <td> - <a href="04rodney.jpg"><img src="04rodney_t.jpg" width="80" height= - "80" border="0" title="Rodney Stromlund"></a> - </td> - </tr> - <tr> - <td> - <a href="05david.jpg"><img src="05david_t.jpg" width="80" height= - "80" border="0" title="David Schmidt"></a> - </td> - <td> - <a href="06member.jpg"><img src="06member_t.jpg" width="80" height= - "80" border="0" title="N/A"></a> - </td> - <td> - <a href="07member.jpg"><img src="07member_t.jpg" width="80" height= - "80" border="0" title="N/A"></a> - </td> - <td> - <a href="08member.jpg"><img src="08member_t.jpg" width="80" height= - "80" border="0" title="N/A"></a> - </td> - </tr> - </table> - </body> -</html> +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + + <title>Privoxy - Team Photos</title> + <link rel="stylesheet" type="text/css" href="../p_doc.css"> + <style type="text/css"> +h1.c1 {margin-left: 0%} + </style> +</head> + +<body> + <h1 class="c1">Privoxy - Team Photos</h1> + <hr> + + <p>In our day jobs, we're all models ;-)</p> + + <table align="center"> + <tr> + <td><a href="01stefanw.jpg"><img src="01stefanw_t.jpg" width="80" + height="80" border="0" title="Stefan Waldherr"></a></td> + + <td><a href="02jon.jpg"><img src="02jon_t.jpg" width="80" height="80" + border="0" title="Jon Foster"></a></td> + <td><a href="03andreas.jpg"><img src="03andreas_t.jpg" width="80" + height="80" border="0" title="Andreas Oesterhelt"></a></td> + + <td><a href="04rodney.jpg"><img src="04rodney_t.jpg" width="80" height= + "80" border="0" title="Rodney Stromlund"></a></td> + </tr> + + <tr> + <td><a href="05david.jpg"><img src="05david_t.jpg" width="80" height= + "80" border="0" title="David Schmidt"></a></td> + + <td><a href="06member.jpg"><img src="06member_t.jpg" width="80" height= + "80" border="0" title="N/A"></a></td> + + <td><a href="07member.jpg"><img src="07member_t.jpg" width="80" height= + "80" border="0" title="N/A"></a></td> + + <td><a href="08member.jpg"><img src="08member_t.jpg" width="80" height= + "80" border="0" title="N/A"></a></td> + </tr> + </table> +</body> +</html> diff --git a/doc/webserver/user-manual/actions-file.html b/doc/webserver/user-manual/actions-file.html index cbffcee7..f8885724 100644 --- a/doc/webserver/user-manual/actions-file.html +++ b/doc/webserver/user-manual/actions-file.html @@ -1,504 +1,417 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Actions Files - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> - <link rel="PREVIOUS" title="The Main Configuration File" href= - "config.html"> - <link rel="NEXT" title="Filter Files" href="filter-file.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <link rel="STYLESHEET" type="text/css" href="p_doc.css"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Actions Files</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> + <link rel="PREVIOUS" title="The Main Configuration File" href= + "config.html"> + <link rel="NEXT" title="Filter Files" href="filter-file.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <link rel="STYLESHEET" type="text/css" href="p_doc.css"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - p.c2 {font-weight: bold} - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy 3.0.18 User Manual - </th> - </tr> - <tr> - <td width="10%" align="left" valign="bottom"> - <a href="config.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="filter-file.html" accesskey="N">Next</a> - </td> - </tr> - </table> - <hr width="100%" class="c1"> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + td.c6 {font-weight: bold} + tt.c5 {font-style: italic} + table.c4 {background-color: #E0E0E0} + p.c3 {font-weight: bold} + span.c2 {font-style: italic} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy 3.0.18 User Manual</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href="config.html" + accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href= + "filter-file.html" accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="ACTIONS-FILE" id="ACTIONS-FILE">8. Actions + Files</a></h1> + + <p>The actions files are used to define what <span class= + "emphasis EMPHASIS c2">actions</span> <span class= + "APPLICATION">Privoxy</span> takes for which URLs, and thus determines + how ad images, cookies and various other aspects of HTTP content and + transactions are handled, and on which sites (or even parts thereof). + There are a number of such actions, with a wide range of functionality. + Each action does something a little different. These actions give us a + veritable arsenal of tools with which to exert our control, preferences + and independence. Actions can be combined so that their effects are + aggregated when applied against a given set of URLs.</p> + + <p>There are three action files included with <span class= + "APPLICATION">Privoxy</span> with differing purposes:</p> + + <ul> + <li> + <p><tt class="FILENAME">match-all.action</tt> - is used to define + which <span class="QUOTE">"actions"</span> relating to + banner-blocking, images, pop-ups, content modification, cookie + handling etc should be applied by default. It should be the first + actions file loaded</p> + </li> + + <li> + <p><tt class="FILENAME">default.action</tt> - defines many exceptions + (both positive and negative) from the default set of actions that's + configured in <tt class="FILENAME">match-all.action</tt>. It is a set + of rules that should work reasonably well as-is for most users. This + file is only supposed to be edited by the developers. It should be + the second actions file loaded.</p> + </li> + + <li> + <p><tt class="FILENAME">user.action</tt> - is intended to be for + local site preferences and exceptions. As an example, if your ISP or + your bank has specific requirements, and need special handling, this + kind of thing should go here. This file will not be upgraded.</p> + </li> + + <li> + <p><span class="GUIBUTTON">Edit</span> <span class="GUIBUTTON">Set to + Cautious</span> <span class="GUIBUTTON">Set to Medium</span> + <span class="GUIBUTTON">Set to Advanced</span></p> + + <p>These have increasing levels of aggressiveness <span class= + "emphasis EMPHASIS c2">and have no influence on your browsing unless + you select them explicitly in the editor</span>. A default + installation should be pre-set to <tt class="LITERAL">Cautious</tt>. + New users should try this for a while before adjusting the settings + to more aggressive levels. The more aggressive the settings, then the + more likelihood there is of problems such as sites not working as + they should.</p> + + <p>The <span class="GUIBUTTON">Edit</span> button allows you to turn + each action on/off individually for fine-tuning. The <span class= + "GUIBUTTON">Cautious</span> button changes the actions list to + low/safe settings which will activate ad blocking and a minimal set + of <span class="APPLICATION">Privoxy</span>'s features, and + subsequently there will be less of a chance for accidental problems. + The <span class="GUIBUTTON">Medium</span> button sets the list to a + medium level of other features and a low level set of privacy + features. The <span class="GUIBUTTON">Advanced</span> button sets the + list to a high level of ad blocking and medium level of privacy. See + the chart below. The latter three buttons over-ride any changes via + with the <span class="GUIBUTTON">Edit</span> button. More fine-tuning + can be done in the lower sections of this internal page.</p> + + <p>While the actions file editor allows to enable these settings in + all actions files, they are only supposed to be enabled in the first + one to make sure you don't unintentionally overrule earlier + rules.</p> + + <p>The default profiles, and their associated actions, as pre-defined + in <tt class="FILENAME">default.action</tt> are:</p> + + <div class="TABLE"> + <a name="AEN2764" id="AEN2764"></a> + + <p class="c3">Table 1. Default Configurations</p> + + <table border="1" frame="border" rules="all" class="CALSTABLE"> + <col width="1*" title="C1"> + <col width="1*" title="C2"> + <col width="1*" title="C3"> + <col width="1*" title="C4"> + + <thead> + <tr> + <th>Feature</th> + + <th>Cautious</th> + + <th>Medium</th> + + <th>Advanced</th> + </tr> + </thead> + + <tbody> + <tr> + <td>Ad-blocking Aggressiveness</td> + + <td>medium</td> + + <td>high</td> + + <td>high</td> + </tr> + + <tr> + <td>Ad-filtering by size</td> + + <td>no</td> + + <td>yes</td> + + <td>yes</td> + </tr> + + <tr> + <td>Ad-filtering by link</td> + + <td>no</td> + + <td>no</td> + + <td>yes</td> + </tr> + + <tr> + <td>Pop-up killing</td> + + <td>blocks only</td> + + <td>blocks only</td> + + <td>blocks only</td> + </tr> + + <tr> + <td>Privacy Features</td> + + <td>low</td> + + <td>medium</td> + + <td>medium/high</td> + </tr> + + <tr> + <td>Cookie handling</td> + + <td>none</td> + + <td>session-only</td> + + <td>kill</td> + </tr> + + <tr> + <td>Referer forging</td> + + <td>no</td> + + <td>yes</td> + + <td>yes</td> + </tr> + + <tr> + <td>GIF de-animation</td> + + <td>no</td> + + <td>yes</td> + + <td>yes</td> + </tr> + + <tr> + <td>Fast redirects</td> + + <td>no</td> + + <td>no</td> + + <td>yes</td> + </tr> + + <tr> + <td>HTML taming</td> + + <td>no</td> + + <td>no</td> + + <td>yes</td> + </tr> + + <tr> + <td>JavaScript taming</td> + + <td>no</td> + + <td>no</td> + + <td>yes</td> + </tr> + + <tr> + <td>Web-bug killing</td> + + <td>no</td> + + <td>yes</td> + + <td>yes</td> + </tr> + + <tr> + <td>Image tag reordering</td> + + <td>no</td> + + <td>yes</td> + + <td>yes</td> + </tr> + </tbody> + </table> + </div> + </li> + </ul> + + <p>The list of actions files to be used are defined in the main + configuration file, and are processed in the order they are defined (e.g. + <tt class="FILENAME">default.action</tt> is typically processed before + <tt class="FILENAME">user.action</tt>). The content of these can all be + viewed and edited from <a href="http://config.privoxy.org/show-status" + target="_top">http://config.privoxy.org/show-status</a>. The over-riding + principle when applying actions, is that the last action that matches a + given URL wins. The broadest, most general rules go first (defined in + <tt class="FILENAME">default.action</tt>), followed by any exceptions + (typically also in <tt class="FILENAME">default.action</tt>), which are + then followed lastly by any local preferences (typically in <span class= + "emphasis EMPHASIS c2">user</span><tt class="FILENAME">.action</tt>). + Generally, <tt class="FILENAME">user.action</tt> has the last word.</p> + + <p>An actions file typically has multiple sections. If you want to use + <span class="QUOTE">"aliases"</span> in an actions file, you have to + place the (optional) <a href="actions-file.html#ALIASES">alias + section</a> at the top of that file. Then comes the default set of rules + which will apply universally to all sites and pages (be <span class= + "emphasis EMPHASIS c2">very careful</span> with using such a universal + set in <tt class="FILENAME">user.action</tt> or any other actions file + after <tt class="FILENAME">default.action</tt>, because it will override + the result from consulting any previous file). And then below that, + exceptions to the defined universal policies. You can regard <tt class= + "FILENAME">user.action</tt> as an appendix to <tt class= + "FILENAME">default.action</tt>, with the advantage that it is a separate + file, which makes preserving your personal settings across <span class= + "APPLICATION">Privoxy</span> upgrades easier.</p> + + <p>Actions can be used to block anything you want, including ads, + banners, or just some obnoxious URL whose content you would rather not + see. Cookies can be accepted or rejected, or accepted only during the + current browser session (i.e. not written to disk), content can be + modified, some JavaScripts tamed, user-tracking fooled, and much more. + See below for a <a href="actions-file.html#ACTIONS">complete list of + actions</a>.</p> + + <div class="SECT2"> + <h2 class="SECT2"><a name="AEN2863" id="AEN2863">8.1. Finding the Right + Mix</a></h2> + + <p>Note that some <a href="actions-file.html#ACTIONS">actions</a>, like + cookie suppression or script disabling, may render some sites unusable + that rely on these techniques to work properly. Finding the right mix + of actions is not always easy and certainly a matter of personal taste. + And, things can always change, requiring refinements in the + configuration. In general, it can be said that the more <span class= + "QUOTE">"aggressive"</span> your default settings (in the top section + of the actions file) are, the more exceptions for <span class= + "QUOTE">"trusted"</span> sites you will have to make later. If, for + example, you want to crunch all cookies per default, you'll have to + make exceptions from that rule for sites that you regularly use and + that require cookies for actually useful purposes, like maybe your + bank, favorite shop, or newspaper.</p> + + <p>We have tried to provide you with reasonable rules to start from in + the distribution actions files. But there is no general rule of thumb + on these things. There just are too many variables, and sites are + constantly changing. Sooner or later you will want to change the rules + (and read this chapter again :).</p> </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="ACTIONS-FILE">8. Actions Files</a> - </h1> - <p> - The actions files are used to define what <span class="emphasis"><i - class="EMPHASIS">actions</i></span> <span class= - "APPLICATION">Privoxy</span> takes for which URLs, and thus - determines how ad images, cookies and various other aspects of HTTP - content and transactions are handled, and on which sites (or even - parts thereof). There are a number of such actions, with a wide range - of functionality. Each action does something a little different. - These actions give us a veritable arsenal of tools with which to - exert our control, preferences and independence. Actions can be - combined so that their effects are aggregated when applied against a - given set of URLs. - </p> - <p> - There are three action files included with <span class= - "APPLICATION">Privoxy</span> with differing purposes: - </p> - <p> - </p> - <ul> - <li> - <p> - <tt class="FILENAME">match-all.action</tt> - is used to define - which <span class="QUOTE">"actions"</span> relating to - banner-blocking, images, pop-ups, content modification, cookie - handling etc should be applied by default. It should be the first - actions file loaded - </p> - </li> - <li> - <p> - <tt class="FILENAME">default.action</tt> - defines many - exceptions (both positive and negative) from the default set of - actions that's configured in <tt class= - "FILENAME">match-all.action</tt>. It is a set of rules that - should work reasonably well as-is for most users. This file is - only supposed to be edited by the developers. It should be the - second actions file loaded. - </p> - </li> - <li> - <p> - <tt class="FILENAME">user.action</tt> - is intended to be for - local site preferences and exceptions. As an example, if your ISP - or your bank has specific requirements, and need special - handling, this kind of thing should go here. This file will not - be upgraded. - </p> - </li> - <li> - <p> - <span class="GUIBUTTON">Edit</span> <span class="GUIBUTTON">Set - to Cautious</span> <span class="GUIBUTTON">Set to Medium</span> - <span class="GUIBUTTON">Set to Advanced</span> - </p> - <p> - These have increasing levels of aggressiveness <span class= - "emphasis"><i class="EMPHASIS">and have no influence on your - browsing unless you select them explicitly in the - editor</i></span>. A default installation should be pre-set to - <tt class="LITERAL">Cautious</tt>. New users should try this for - a while before adjusting the settings to more aggressive levels. - The more aggressive the settings, then the more likelihood there - is of problems such as sites not working as they should. - </p> - <p> - The <span class="GUIBUTTON">Edit</span> button allows you to turn - each action on/off individually for fine-tuning. The <span class= - "GUIBUTTON">Cautious</span> button changes the actions list to - low/safe settings which will activate ad blocking and a minimal - set of <span class="APPLICATION">Privoxy</span>'s features, and - subsequently there will be less of a chance for accidental - problems. The <span class="GUIBUTTON">Medium</span> button sets - the list to a medium level of other features and a low level set - of privacy features. The <span class="GUIBUTTON">Advanced</span> - button sets the list to a high level of ad blocking and medium - level of privacy. See the chart below. The latter three buttons - over-ride any changes via with the <span class= - "GUIBUTTON">Edit</span> button. More fine-tuning can be done in - the lower sections of this internal page. - </p> - <p> - While the actions file editor allows to enable these settings in - all actions files, they are only supposed to be enabled in the - first one to make sure you don't unintentionally overrule earlier - rules. - </p> - <p> - The default profiles, and their associated actions, as - pre-defined in <tt class="FILENAME">default.action</tt> are: - </p> - <p> - </p> - <div class="TABLE"> - <a name="AEN2625"></a> - <p class="c2"> - Table 1. Default Configurations - </p> - <table border="1" frame="border" rules="all" class="CALSTABLE"> - <col width="1*" title="C1"> - <col width="1*" title="C2"> - <col width="1*" title="C3"> - <col width="1*" title="C4"> - <thead> - <tr> - <th> - Feature - </th> - <th> - Cautious - </th> - <th> - Medium - </th> - <th> - Advanced - </th> - </tr> - </thead> - <tbody> - <tr> - <td> - Ad-blocking Aggressiveness - </td> - <td> - medium - </td> - <td> - high - </td> - <td> - high - </td> - </tr> - <tr> - <td> - Ad-filtering by size - </td> - <td> - no - </td> - <td> - yes - </td> - <td> - yes - </td> - </tr> - <tr> - <td> - Ad-filtering by link - </td> - <td> - no - </td> - <td> - no - </td> - <td> - yes - </td> - </tr> - <tr> - <td> - Pop-up killing - </td> - <td> - blocks only - </td> - <td> - blocks only - </td> - <td> - blocks only - </td> - </tr> - <tr> - <td> - Privacy Features - </td> - <td> - low - </td> - <td> - medium - </td> - <td> - medium/high - </td> - </tr> - <tr> - <td> - Cookie handling - </td> - <td> - none - </td> - <td> - session-only - </td> - <td> - kill - </td> - </tr> - <tr> - <td> - Referer forging - </td> - <td> - no - </td> - <td> - yes - </td> - <td> - yes - </td> - </tr> - <tr> - <td> - GIF de-animation - </td> - <td> - no - </td> - <td> - yes - </td> - <td> - yes - </td> - </tr> - <tr> - <td> - Fast redirects - </td> - <td> - no - </td> - <td> - no - </td> - <td> - yes - </td> - </tr> - <tr> - <td> - HTML taming - </td> - <td> - no - </td> - <td> - no - </td> - <td> - yes - </td> - </tr> - <tr> - <td> - JavaScript taming - </td> - <td> - no - </td> - <td> - no - </td> - <td> - yes - </td> - </tr> - <tr> - <td> - Web-bug killing - </td> - <td> - no - </td> - <td> - yes - </td> - <td> - yes - </td> - </tr> - <tr> - <td> - Image tag reordering - </td> - <td> - no - </td> - <td> - yes - </td> - <td> - yes - </td> - </tr> - </tbody> - </table> - </div> - </li> - </ul> - <p> - The list of actions files to be used are defined in the main - configuration file, and are processed in the order they are defined - (e.g. <tt class="FILENAME">default.action</tt> is typically processed - before <tt class="FILENAME">user.action</tt>). The content of these - can all be viewed and edited from <a href= - "http://config.privoxy.org/show-status" target= - "_top">http://config.privoxy.org/show-status</a>. The over-riding - principle when applying actions, is that the last action that matches - a given URL wins. The broadest, most general rules go first (defined - in <tt class="FILENAME">default.action</tt>), followed by any - exceptions (typically also in <tt class= - "FILENAME">default.action</tt>), which are then followed lastly by - any local preferences (typically in <span class="emphasis"><i class= - "EMPHASIS">user</i></span><tt class="FILENAME">.action</tt>). - Generally, <tt class="FILENAME">user.action</tt> has the last word. - </p> - <p> - An actions file typically has multiple sections. If you want to use - <span class="QUOTE">"aliases"</span> in an actions file, you have to - place the (optional) <a href="actions-file.html#ALIASES">alias - section</a> at the top of that file. Then comes the default set of - rules which will apply universally to all sites and pages (be <span - class="emphasis"><i class="EMPHASIS">very careful</i></span> with - using such a universal set in <tt class="FILENAME">user.action</tt> - or any other actions file after <tt class= - "FILENAME">default.action</tt>, because it will override the result - from consulting any previous file). And then below that, exceptions - to the defined universal policies. You can regard <tt class= - "FILENAME">user.action</tt> as an appendix to <tt class= - "FILENAME">default.action</tt>, with the advantage that it is a - separate file, which makes preserving your personal settings across - <span class="APPLICATION">Privoxy</span> upgrades easier. - </p> - <p> - Actions can be used to block anything you want, including ads, - banners, or just some obnoxious URL whose content you would rather - not see. Cookies can be accepted or rejected, or accepted only during - the current browser session (i.e. not written to disk), content can - be modified, some JavaScripts tamed, user-tracking fooled, and much - more. See below for a <a href="actions-file.html#ACTIONS">complete - list of actions</a>. - </p> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="AEN2724">8.1. Finding the Right Mix</a> - </h2> - <p> - Note that some <a href="actions-file.html#ACTIONS">actions</a>, - like cookie suppression or script disabling, may render some sites - unusable that rely on these techniques to work properly. Finding - the right mix of actions is not always easy and certainly a matter - of personal taste. And, things can always change, requiring - refinements in the configuration. In general, it can be said that - the more <span class="QUOTE">"aggressive"</span> your default - settings (in the top section of the actions file) are, the more - exceptions for <span class="QUOTE">"trusted"</span> sites you will - have to make later. If, for example, you want to crunch all cookies - per default, you'll have to make exceptions from that rule for - sites that you regularly use and that require cookies for actually - useful purposes, like maybe your bank, favorite shop, or newspaper. - </p> - <p> - We have tried to provide you with reasonable rules to start from in - the distribution actions files. But there is no general rule of - thumb on these things. There just are too many variables, and sites - are constantly changing. Sooner or later you will want to change - the rules (and read this chapter again :). - </p> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="AEN2731">8.2. How to Edit</a> - </h2> - <p> - The easiest way to edit the actions files is with a browser by - using our browser-based editor, which can be reached from <a href= - "http://config.privoxy.org/show-status" target= - "_top">http://config.privoxy.org/show-status</a>. Note: the config - file option <a href= - "config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</a> must be - enabled for this to work. The editor allows both fine-grained - control over every single feature on a per-URL basis, and easy - choosing from wholesale sets of defaults like <span class= - "QUOTE">"Cautious"</span>, <span class="QUOTE">"Medium"</span> or - <span class="QUOTE">"Advanced"</span>. Warning: the <span class= - "QUOTE">"Advanced"</span> setting is more aggressive, and will be - more likely to cause problems for some sites. Experienced users - only! - </p> - <p> - If you prefer plain text editing to GUIs, you can of course also - directly edit the the actions files with your favorite text editor. - Look at <tt class="FILENAME">default.action</tt> which is richly - commented with many good examples. - </p> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="ACTIONS-APPLY">8.3. How Actions are Applied to - Requests</a> - </h2> - <p> - Actions files are divided into sections. There are special - sections, like the <span class="QUOTE">"<a href= - "actions-file.html#ALIASES">alias</a>"</span> sections which will - be discussed later. For now let's concentrate on regular sections: - They have a heading line (often split up to multiple lines for - readability) which consist of a list of actions, separated by - whitespace and enclosed in curly braces. Below that, there is a - list of URL and tag patterns, each on a separate line. - </p> - <p> - To determine which actions apply to a request, the URL of the - request is compared to all URL patterns in each <span class= - "QUOTE">"action file"</span>. Every time it matches, the list of - applicable actions for the request is incrementally updated, using - the heading of the section in which the pattern is located. The - same is done again for tags and tag patterns later on. - </p> - <p> - If multiple applying sections set the same action differently, the - last match wins. If not, the effects are aggregated. E.g. a URL - might match a regular section with a heading line of <tt class= - "LITERAL">{ +<a href= - "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a> }</tt>, - then later another one with just <tt class="LITERAL">{ +<a href= - "actions-file.html#BLOCK">block</a> }</tt>, resulting in <span - class="emphasis"><i class="EMPHASIS">both</i></span> actions to - apply. And there may well be cases where you will want to combine - actions together. Such a section then might look like: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <div class="SECT2"> + <h2 class="SECT2"><a name="AEN2870" id="AEN2870">8.2. How to + Edit</a></h2> + + <p>The easiest way to edit the actions files is with a browser by using + our browser-based editor, which can be reached from <a href= + "http://config.privoxy.org/show-status" target= + "_top">http://config.privoxy.org/show-status</a>. Note: the config file + option <a href= + "config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</a> must be + enabled for this to work. The editor allows both fine-grained control + over every single feature on a per-URL basis, and easy choosing from + wholesale sets of defaults like <span class="QUOTE">"Cautious"</span>, + <span class="QUOTE">"Medium"</span> or <span class= + "QUOTE">"Advanced"</span>. Warning: the <span class= + "QUOTE">"Advanced"</span> setting is more aggressive, and will be more + likely to cause problems for some sites. Experienced users only!</p> + + <p>If you prefer plain text editing to GUIs, you can of course also + directly edit the the actions files with your favorite text editor. + Look at <tt class="FILENAME">default.action</tt> which is richly + commented with many good examples.</p> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="ACTIONS-APPLY" id="ACTIONS-APPLY">8.3. How + Actions are Applied to Requests</a></h2> + + <p>Actions files are divided into sections. There are special sections, + like the <span class="QUOTE">"<a href= + "actions-file.html#ALIASES">alias</a>"</span> sections which will be + discussed later. For now let's concentrate on regular sections: They + have a heading line (often split up to multiple lines for readability) + which consist of a list of actions, separated by whitespace and + enclosed in curly braces. Below that, there is a list of URL and tag + patterns, each on a separate line.</p> + + <p>To determine which actions apply to a request, the URL of the + request is compared to all URL patterns in each <span class= + "QUOTE">"action file"</span>. Every time it matches, the list of + applicable actions for the request is incrementally updated, using the + heading of the section in which the pattern is located. The same is + done again for tags and tag patterns later on.</p> + + <p>If multiple applying sections set the same action differently, the + last match wins. If not, the effects are aggregated. E.g. a URL might + match a regular section with a heading line of <tt class="LITERAL">{ + +<a href="actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a> + }</tt>, then later another one with just <tt class="LITERAL">{ + +<a href="actions-file.html#BLOCK">block</a> }</tt>, resulting in + <span class="emphasis EMPHASIS c2">both</span> actions to apply. And + there may well be cases where you will want to combine actions + together. Such a section then might look like:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> { +<tt class="LITERAL">handle-as-image</tt> +<tt class= "LITERAL">block{Banner ads.}</tt> } # Block these as if they were images. Send no block page. @@ -506,786 +419,663 @@ Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> media.example.com/.*banners .example.com/images/ads/ </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> + + <p>You can trace this process for URL patterns and any given URL by + visiting <a href="http://config.privoxy.org/show-url-info" target= + "_top">http://config.privoxy.org/show-url-info</a>.</p> + + <p>Examples and more detail on this is provided in the Appendix, + <a href="appendix.html#ACTIONSANAT">Troubleshooting: Anatomy of an + Action</a> section.</p> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="AF-PATTERNS" id="AF-PATTERNS">8.4. + Patterns</a></h2> + + <p>As mentioned, <span class="APPLICATION">Privoxy</span> uses + <span class="QUOTE">"patterns"</span> to determine what <span class= + "emphasis EMPHASIS c2">actions</span> might apply to which sites and + pages your browser attempts to access. These <span class= + "QUOTE">"patterns"</span> use wild card type <span class= + "emphasis EMPHASIS c2">pattern</span> matching to achieve a high degree + of flexibility. This allows one expression to be expanded and + potentially match against many similar patterns.</p> + + <p>Generally, an URL pattern has the form <tt class= + "LITERAL"><domain><port>/<path></tt>, where the + <tt class="LITERAL"><domain></tt>, the <tt class= + "LITERAL"><port></tt> and the <tt class= + "LITERAL"><path></tt> are optional. (This is why the special + <tt class="LITERAL">/</tt> pattern matches all URLs). Note that the + protocol portion of the URL pattern (e.g. <tt class= + "LITERAL">http://</tt>) should <span class= + "emphasis EMPHASIS c2">not</span> be included in the pattern. This is + assumed already!</p> + + <p>The pattern matching syntax is different for the domain and path + parts of the URL. The domain part uses a simple globbing type matching + technique, while the path part uses more flexible <a href= + "http://en.wikipedia.org/wiki/Regular_expressions" target= + "_top"><span class="QUOTE">"Regular Expressions"</span></a> (POSIX + 1003.2).</p> - <p> - You can trace this process for URL patterns and any given URL by - visiting <a href="http://config.privoxy.org/show-url-info" target= - "_top">http://config.privoxy.org/show-url-info</a>. - </p> - <p> - Examples and more detail on this is provided in the Appendix, <a - href="appendix.html#ACTIONSANAT">Troubleshooting: Anatomy of an - Action</a> section. - </p> + <p>The port part of a pattern is a decimal port number preceded by a + colon (<tt class="LITERAL">:</tt>). If the domain part contains a + numerical IPv6 address, it has to be put into angle brackets + (<tt class="LITERAL"><</tt>, <tt class="LITERAL">></tt>).</p> + + <div class="VARIABLELIST"> + <dl> + <dt><tt class="LITERAL">www.example.com/</tt></dt> + + <dd> + <p>is a domain-only pattern and will match any request to + <tt class="LITERAL">www.example.com</tt>, regardless of which + document on that server is requested. So ALL pages in this domain + would be covered by the scope of this action. Note that a simple + <tt class="LITERAL">example.com</tt> is different and would NOT + match.</p> + </dd> + + <dt><tt class="LITERAL">www.example.com</tt></dt> + + <dd> + <p>means exactly the same. For domain-only patterns, the trailing + <tt class="LITERAL">/</tt> may be omitted.</p> + </dd> + + <dt><tt class="LITERAL">www.example.com/index.html</tt></dt> + + <dd> + <p>matches all the documents on <tt class= + "LITERAL">www.example.com</tt> whose name starts with <tt class= + "LITERAL">/index.html</tt>.</p> + </dd> + + <dt><tt class="LITERAL">www.example.com/index.html$</tt></dt> + + <dd> + <p>matches only the single document <tt class= + "LITERAL">/index.html</tt> on <tt class= + "LITERAL">www.example.com</tt>.</p> + </dd> + + <dt><tt class="LITERAL">/index.html$</tt></dt> + + <dd> + <p>matches the document <tt class="LITERAL">/index.html</tt>, + regardless of the domain, i.e. on <span class= + "emphasis EMPHASIS c2">any</span> web server anywhere.</p> + </dd> + + <dt><tt class="LITERAL">/</tt></dt> + + <dd> + <p>Matches any URL because there's no requirement for either the + domain or the path to match anything.</p> + </dd> + + <dt><tt class="LITERAL">:8000/</tt></dt> + + <dd> + <p>Matches any URL pointing to TCP port 8000.</p> + </dd> + + <dt><tt class="LITERAL"><2001:db8::1>/</tt></dt> + + <dd> + <p>Matches any URL with the host address <tt class= + "LITERAL">2001:db8::1</tt>. (Note that the real URL uses plain + brackets, not angle brackets.)</p> + </dd> + + <dt><tt class="LITERAL">index.html</tt></dt> + + <dd> + <p>matches nothing, since it would be interpreted as a domain + name and there is no top-level domain called <tt class= + "LITERAL">.html</tt>. So its a mistake.</p> + </dd> + </dl> </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="AF-PATTERNS">8.4. Patterns</a> - </h2> - <p> - As mentioned, <span class="APPLICATION">Privoxy</span> uses <span - class="QUOTE">"patterns"</span> to determine what <span class= - "emphasis"><i class="EMPHASIS">actions</i></span> might apply to - which sites and pages your browser attempts to access. These <span - class="QUOTE">"patterns"</span> use wild card type <span class= - "emphasis"><i class="EMPHASIS">pattern</i></span> matching to - achieve a high degree of flexibility. This allows one expression to - be expanded and potentially match against many similar patterns. - </p> - <p> - Generally, an URL pattern has the form <tt class= - "LITERAL"><domain><port>/<path></tt>, where the - <tt class="LITERAL"><domain></tt>, the <tt class= - "LITERAL"><port></tt> and the <tt class= - "LITERAL"><path></tt> are optional. (This is why the special - <tt class="LITERAL">/</tt> pattern matches all URLs). Note that the - protocol portion of the URL pattern (e.g. <tt class= - "LITERAL">http://</tt>) should <span class="emphasis"><i class= - "EMPHASIS">not</i></span> be included in the pattern. This is - assumed already! - </p> - <p> - The pattern matching syntax is different for the domain and path - parts of the URL. The domain part uses a simple globbing type - matching technique, while the path part uses more flexible <a href= - "http://en.wikipedia.org/wiki/Regular_expressions" target= - "_top"><span class="QUOTE">"Regular Expressions"</span></a> (POSIX - 1003.2). - </p> - <p> - The port part of a pattern is a decimal port number preceded by a - colon (<tt class="LITERAL">:</tt>). If the domain part contains a - numerical IPv6 address, it has to be put into angle brackets (<tt - class="LITERAL"><</tt>, <tt class="LITERAL">></tt>). - </p> + + <div class="SECT3"> + <h3 class="SECT3"><a name="AEN2982" id="AEN2982">8.4.1. The Domain + Pattern</a></h3> + + <p>The matching of the domain part offers some flexible options: if + the domain starts or ends with a dot, it becomes unanchored at that + end. For example:</p> + <div class="VARIABLELIST"> <dl> - <dt> - <tt class="LITERAL">www.example.com/</tt> - </dt> - <dd> - <p> - is a domain-only pattern and will match any request to <tt - class="LITERAL">www.example.com</tt>, regardless of which - document on that server is requested. So ALL pages in this - domain would be covered by the scope of this action. Note - that a simple <tt class="LITERAL">example.com</tt> is - different and would NOT match. - </p> - </dd> - <dt> - <tt class="LITERAL">www.example.com</tt> - </dt> - <dd> - <p> - means exactly the same. For domain-only patterns, the - trailing <tt class="LITERAL">/</tt> may be omitted. - </p> - </dd> - <dt> - <tt class="LITERAL">www.example.com/index.html</tt> - </dt> - <dd> - <p> - matches all the documents on <tt class= - "LITERAL">www.example.com</tt> whose name starts with <tt - class="LITERAL">/index.html</tt>. - </p> - </dd> - <dt> - <tt class="LITERAL">www.example.com/index.html$</tt> - </dt> - <dd> - <p> - matches only the single document <tt class= - "LITERAL">/index.html</tt> on <tt class= - "LITERAL">www.example.com</tt>. - </p> - </dd> - <dt> - <tt class="LITERAL">/index.html$</tt> - </dt> - <dd> - <p> - matches the document <tt class="LITERAL">/index.html</tt>, - regardless of the domain, i.e. on <span class="emphasis"><i - class="EMPHASIS">any</i></span> web server anywhere. - </p> - </dd> - <dt> - <tt class="LITERAL">/</tt> - </dt> - <dd> - <p> - Matches any URL because there's no requirement for either the - domain or the path to match anything. - </p> - </dd> - <dt> - <tt class="LITERAL">:8000/</tt> - </dt> - <dd> - <p> - Matches any URL pointing to TCP port 8000. - </p> - </dd> - <dt> - <tt class="LITERAL"><2001:db8::1>/</tt> - </dt> - <dd> - <p> - Matches any URL with the host address <tt class= - "LITERAL">2001:db8::1</tt>. (Note that the real URL uses - plain brackets, not angle brackets.) - </p> - </dd> - <dt> - <tt class="LITERAL">index.html</tt> - </dt> - <dd> - <p> - matches nothing, since it would be interpreted as a domain - name and there is no top-level domain called <tt class= - "LITERAL">.html</tt>. So its a mistake. - </p> + <dt><tt class="LITERAL">.example.com</tt></dt> + + <dd> + <p>matches any domain with first-level domain <tt class= + "LITERAL">com</tt> and second-level domain <tt class= + "LITERAL">example</tt>. For example <tt class= + "LITERAL">www.example.com</tt>, <tt class= + "LITERAL">example.com</tt> and <tt class= + "LITERAL">foo.bar.baz.example.com</tt>. Note that it wouldn't + match if the second-level domain was <tt class= + "LITERAL">another-example</tt>.</p> + </dd> + + <dt><tt class="LITERAL">www.</tt></dt> + + <dd> + <p>matches any domain that <span class= + "emphasis EMPHASIS c2">STARTS</span> with <tt class= + "LITERAL">www.</tt> (It also matches the domain <tt class= + "LITERAL">www</tt> but most of the time that doesn't + matter.)</p> + </dd> + + <dt><tt class="LITERAL">.example.</tt></dt> + + <dd> + <p>matches any domain that <span class= + "emphasis EMPHASIS c2">CONTAINS</span> <tt class= + "LITERAL">.example.</tt>. And, by the way, also included would + be any files or documents that exist within that domain since + no path limitations are specified. (Correctly speaking: It + matches any FQDN that contains <tt class="LITERAL">example</tt> + as a domain.) This might be <tt class= + "LITERAL">www.example.com</tt>, <tt class= + "LITERAL">news.example.de</tt>, or <tt class= + "LITERAL">www.example.net/cgi/testing.pl</tt> for instance. All + these cases are matched.</p> </dd> </dl> </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="AEN2843">8.4.1. The Domain Pattern</a> - </h3> - <p> - The matching of the domain part offers some flexible options: if - the domain starts or ends with a dot, it becomes unanchored at - that end. For example: - </p> - <div class="VARIABLELIST"> - <dl> - <dt> - <tt class="LITERAL">.example.com</tt> - </dt> - <dd> - <p> - matches any domain with first-level domain <tt class= - "LITERAL">com</tt> and second-level domain <tt class= - "LITERAL">example</tt>. For example <tt class= - "LITERAL">www.example.com</tt>, <tt class= - "LITERAL">example.com</tt> and <tt class= - "LITERAL">foo.bar.baz.example.com</tt>. Note that it - wouldn't match if the second-level domain was <tt class= - "LITERAL">another-example</tt>. - </p> - </dd> - <dt> - <tt class="LITERAL">www.</tt> - </dt> - <dd> - <p> - matches any domain that <span class="emphasis"><i class= - "EMPHASIS">STARTS</i></span> with <tt class= - "LITERAL">www.</tt> (It also matches the domain <tt class= - "LITERAL">www</tt> but most of the time that doesn't - matter.) - </p> - </dd> - <dt> - <tt class="LITERAL">.example.</tt> - </dt> - <dd> - <p> - matches any domain that <span class="emphasis"><i class= - "EMPHASIS">CONTAINS</i></span> <tt class= - "LITERAL">.example.</tt>. And, by the way, also included - would be any files or documents that exist within that - domain since no path limitations are specified. (Correctly - speaking: It matches any FQDN that contains <tt class= - "LITERAL">example</tt> as a domain.) This might be <tt - class="LITERAL">www.example.com</tt>, <tt class= - "LITERAL">news.example.de</tt>, or <tt class= - "LITERAL">www.example.net/cgi/testing.pl</tt> for instance. - All these cases are matched. - </p> - </dd> - </dl> - </div> - <p> - Additionally, there are wild-cards that you can use in the domain - names themselves. These work similarly to shell globbing type - wild-cards: <span class="QUOTE">"*"</span> represents zero or - more arbitrary characters (this is equivalent to the <a href= - "http://en.wikipedia.org/wiki/Regular_expressions" target= - "_top"><span class="QUOTE">"Regular Expression"</span></a> based - syntax of <span class="QUOTE">".*"</span>), <span class= - "QUOTE">"?"</span> represents any single character (this is - equivalent to the regular expression syntax of a simple <span - class="QUOTE">"."</span>), and you can define <span class= - "QUOTE">"character classes"</span> in square brackets which is - similar to the same regular expression technique. All of this can - be freely mixed: - </p> - <div class="VARIABLELIST"> - <dl> - <dt> - <tt class="LITERAL">ad*.example.com</tt> - </dt> - <dd> - <p> - matches <span class="QUOTE">"adserver.example.com"</span>, - <span class="QUOTE">"ads.example.com"</span>, etc but not - <span class="QUOTE">"sfads.example.com"</span> - </p> - </dd> - <dt> - <tt class="LITERAL">*ad*.example.com</tt> - </dt> - <dd> - <p> - matches all of the above, and then some. - </p> - </dd> - <dt> - <tt class="LITERAL">.?pix.com</tt> - </dt> - <dd> - <p> - matches <tt class="LITERAL">www.ipix.com</tt>, <tt class= - "LITERAL">pictures.epix.com</tt>, <tt class= - "LITERAL">a.b.c.d.e.upix.com</tt> etc. - </p> - </dd> - <dt> - <tt class="LITERAL">www[1-9a-ez].example.c*</tt> - </dt> - <dd> - <p> - matches <tt class="LITERAL">www1.example.com</tt>, <tt - class="LITERAL">www4.example.cc</tt>, <tt class= - "LITERAL">wwwd.example.cy</tt>, <tt class= - "LITERAL">wwwz.example.com</tt> etc., but <span class= - "emphasis"><i class="EMPHASIS">not</i></span> <tt class= - "LITERAL">wwww.example.com</tt>. - </p> - </dd> - </dl> - </div> - <p> - While flexible, this is not the sophistication of full regular - expression based syntax. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="AEN2919">8.4.2. The Path Pattern</a> - </h3> - <p> - <span class="APPLICATION">Privoxy</span> uses <span class= - "QUOTE">"modern"</span> POSIX 1003.2 <a href= - "http://en.wikipedia.org/wiki/Regular_expressions" target= - "_top"><span class="QUOTE">"Regular Expressions"</span></a> for - matching the path portion (after the slash), and is thus more - flexible. - </p> - <p> - There is an <a href="appendix.html#REGEX">Appendix</a> with a - brief quick-start into regular expressions, you also might want - to have a look at your operating system's documentation on - regular expressions (try <tt class="LITERAL">man re_format</tt>). - </p> - <p> - Note that the path pattern is automatically left-anchored at the - <span class="QUOTE">"/"</span>, i.e. it matches as if it would - start with a <span class="QUOTE">"^"</span> (regular expression - speak for the beginning of a line). - </p> - <p> - Please also note that matching in the path is <span class= - "emphasis"><i class="EMPHASIS">CASE INSENSITIVE</i></span> by - default, but you can switch to case sensitive at any point in the - pattern by using the <span class="QUOTE">"(?-i)"</span> switch: - <tt class="LITERAL">www.example.com/(?-i)PaTtErN.*</tt> will - match only documents whose path starts with <tt class= - "LITERAL">PaTtErN</tt> in <span class="emphasis"><i class= - "EMPHASIS">exactly</i></span> this capitalization. - </p> - <div class="VARIABLELIST"> - <dl> - <dt> - <tt class="LITERAL">.example.com/.*</tt> - </dt> - <dd> - <p> - Is equivalent to just <span class= - "QUOTE">".example.com"</span>, since any documents within - that domain are matched with or without the <span class= - "QUOTE">".*"</span> regular expression. This is redundant - </p> - </dd> - <dt> - <tt class="LITERAL">.example.com/.*/index.html$</tt> - </dt> - <dd> - <p> - Will match any page in the domain of <span class= - "QUOTE">"example.com"</span> that is named <span class= - "QUOTE">"index.html"</span>, and that is part of some path. - For example, it matches <span class= - "QUOTE">"www.example.com/testing/index.html"</span> but NOT - <span class="QUOTE">"www.example.com/index.html"</span> - because the regular expression called for at least two - <span class="QUOTE">"/'s"</span>, thus the path - requirement. It also would match <span class= - "QUOTE">"www.example.com/testing/index_html"</span>, - because of the special meta-character <span class= - "QUOTE">"."</span>. - </p> - </dd> - <dt> - <tt class="LITERAL">.example.com/(.*/)?index\.html$</tt> - </dt> - <dd> - <p> - This regular expression is conditional so it will match any - page named <span class="QUOTE">"index.html"</span> - regardless of path which in this case can have one or more - <span class="QUOTE">"/'s"</span>. And this one must contain - exactly <span class="QUOTE">".html"</span> (but does not - have to end with that!). - </p> - </dd> - <dt> - <tt class= - "LITERAL">.example.com/(.*/)(ads|banners?|junk)</tt> - </dt> - <dd> - <p> - This regular expression will match any path of <span class= - "QUOTE">"example.com"</span> that contains any of the words - <span class="QUOTE">"ads"</span>, <span class= - "QUOTE">"banner"</span>, <span class= - "QUOTE">"banners"</span> (because of the <span class= - "QUOTE">"?"</span>) or <span class="QUOTE">"junk"</span>. - The path does not have to end in these words, just contain - them. - </p> - </dd> - <dt> - <tt class= - "LITERAL">.example.com/(.*/)(ads|banners?|junk)/.*\.(jpe?g|gif|png)$</tt> - </dt> - <dd> - <p> - This is very much the same as above, except now it must end - in either <span class="QUOTE">".jpg"</span>, <span class= - "QUOTE">".jpeg"</span>, <span class="QUOTE">".gif"</span> - or <span class="QUOTE">".png"</span>. So this one is - limited to common image formats. - </p> - </dd> - </dl> - </div> - <p> - There are many, many good examples to be found in <tt class= - "FILENAME">default.action</tt>, and more tutorials below in <a - href="appendix.html#REGEX">Appendix on regular expressions</a>. - </p> + + <p>Additionally, there are wild-cards that you can use in the domain + names themselves. These work similarly to shell globbing type + wild-cards: <span class="QUOTE">"*"</span> represents zero or more + arbitrary characters (this is equivalent to the <a href= + "http://en.wikipedia.org/wiki/Regular_expressions" target= + "_top"><span class="QUOTE">"Regular Expression"</span></a> based + syntax of <span class="QUOTE">".*"</span>), <span class= + "QUOTE">"?"</span> represents any single character (this is + equivalent to the regular expression syntax of a simple <span class= + "QUOTE">"."</span>), and you can define <span class= + "QUOTE">"character classes"</span> in square brackets which is + similar to the same regular expression technique. All of this can be + freely mixed:</p> + + <div class="VARIABLELIST"> + <dl> + <dt><tt class="LITERAL">ad*.example.com</tt></dt> + + <dd> + <p>matches <span class="QUOTE">"adserver.example.com"</span>, + <span class="QUOTE">"ads.example.com"</span>, etc but not + <span class="QUOTE">"sfads.example.com"</span></p> + </dd> + + <dt><tt class="LITERAL">*ad*.example.com</tt></dt> + + <dd> + <p>matches all of the above, and then some.</p> + </dd> + + <dt><tt class="LITERAL">.?pix.com</tt></dt> + + <dd> + <p>matches <tt class="LITERAL">www.ipix.com</tt>, <tt class= + "LITERAL">pictures.epix.com</tt>, <tt class= + "LITERAL">a.b.c.d.e.upix.com</tt> etc.</p> + </dd> + + <dt><tt class="LITERAL">www[1-9a-ez].example.c*</tt></dt> + + <dd> + <p>matches <tt class="LITERAL">www1.example.com</tt>, + <tt class="LITERAL">www4.example.cc</tt>, <tt class= + "LITERAL">wwwd.example.cy</tt>, <tt class= + "LITERAL">wwwz.example.com</tt> etc., but <span class= + "emphasis EMPHASIS c2">not</span> <tt class= + "LITERAL">wwww.example.com</tt>.</p> + </dd> + </dl> </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="TAG-PATTERN">8.4.3. The Tag Pattern</a> - </h3> - <p> - Tag patterns are used to change the applying actions based on the - request's tags. Tags can be created with either the <a href= - "actions-file.html#CLIENT-HEADER-TAGGER">client-header-tagger</a> - or the <a href= - "actions-file.html#SERVER-HEADER-TAGGER">server-header-tagger</a> - action. - </p> - <p> - Tag patterns have to start with <span class= - "QUOTE">"TAG:"</span>, so <span class= - "APPLICATION">Privoxy</span> can tell them apart from URL - patterns. Everything after the colon including white space, is - interpreted as a regular expression with path pattern syntax, - except that tag patterns aren't left-anchored automatically - (<span class="APPLICATION">Privoxy</span> doesn't silently add a - <span class="QUOTE">"^"</span>, you have to do it yourself if you - need it). - </p> - <p> - To match all requests that are tagged with <span class= - "QUOTE">"foo"</span> your pattern line should be <span class= - "QUOTE">"TAG:^foo$"</span>, <span class="QUOTE">"TAG:foo"</span> - would work as well, but it would also match requests whose tags - contain <span class="QUOTE">"foo"</span> somewhere. <span class= - "QUOTE">"TAG: foo"</span> wouldn't work as it requires white - space. - </p> - <p> - Sections can contain URL and tag patterns at the same time, but - tag patterns are checked after the URL patterns and thus always - overrule them, even if they are located before the URL patterns. - </p> - <p> - Once a new tag is added, Privoxy checks right away if it's - matched by one of the tag patterns and updates the action - settings accordingly. As a result tags can be used to activate - other tagger actions, as long as these other taggers look for - headers that haven't already be parsed. - </p> - <p> - For example you could tag client requests which use the <tt - class="LITERAL">POST</tt> method, then use this tag to activate - another tagger that adds a tag if cookies are sent, and then use - a block action based on the cookie tag. This allows the outcome - of one action, to be input into a subsequent action. However if - you'd reverse the position of the described taggers, and - activated the method tagger based on the cookie tagger, no method - tags would be created. The method tagger would look for the - request line, but at the time the cookie tag is created, the - request line has already been parsed. - </p> - <p> - While this is a limitation you should be aware of, this kind of - indirection is seldom needed anyway and even the example doesn't - make too much sense. - </p> + + <p>While flexible, this is not the sophistication of full regular + expression based syntax.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="AEN3058" id="AEN3058">8.4.2. The Path + Pattern</a></h3> + + <p><span class="APPLICATION">Privoxy</span> uses <span class= + "QUOTE">"modern"</span> POSIX 1003.2 <a href= + "http://en.wikipedia.org/wiki/Regular_expressions" target= + "_top"><span class="QUOTE">"Regular Expressions"</span></a> for + matching the path portion (after the slash), and is thus more + flexible.</p> + + <p>There is an <a href="appendix.html#REGEX">Appendix</a> with a + brief quick-start into regular expressions, you also might want to + have a look at your operating system's documentation on regular + expressions (try <tt class="LITERAL">man re_format</tt>).</p> + + <p>Note that the path pattern is automatically left-anchored at the + <span class="QUOTE">"/"</span>, i.e. it matches as if it would start + with a <span class="QUOTE">"^"</span> (regular expression speak for + the beginning of a line).</p> + + <p>Please also note that matching in the path is <span class= + "emphasis EMPHASIS c2">CASE INSENSITIVE</span> by default, but you + can switch to case sensitive at any point in the pattern by using the + <span class="QUOTE">"(?-i)"</span> switch: <tt class= + "LITERAL">www.example.com/(?-i)PaTtErN.*</tt> will match only + documents whose path starts with <tt class="LITERAL">PaTtErN</tt> in + <span class="emphasis EMPHASIS c2">exactly</span> this + capitalization.</p> + + <div class="VARIABLELIST"> + <dl> + <dt><tt class="LITERAL">.example.com/.*</tt></dt> + + <dd> + <p>Is equivalent to just <span class= + "QUOTE">".example.com"</span>, since any documents within that + domain are matched with or without the <span class= + "QUOTE">".*"</span> regular expression. This is redundant</p> + </dd> + + <dt><tt class="LITERAL">.example.com/.*/index.html$</tt></dt> + + <dd> + <p>Will match any page in the domain of <span class= + "QUOTE">"example.com"</span> that is named <span class= + "QUOTE">"index.html"</span>, and that is part of some path. For + example, it matches <span class= + "QUOTE">"www.example.com/testing/index.html"</span> but NOT + <span class="QUOTE">"www.example.com/index.html"</span> because + the regular expression called for at least two <span class= + "QUOTE">"/'s"</span>, thus the path requirement. It also would + match <span class= + "QUOTE">"www.example.com/testing/index_html"</span>, because of + the special meta-character <span class="QUOTE">"."</span>.</p> + </dd> + + <dt><tt class="LITERAL">.example.com/(.*/)?index\.html$</tt></dt> + + <dd> + <p>This regular expression is conditional so it will match any + page named <span class="QUOTE">"index.html"</span> regardless + of path which in this case can have one or more <span class= + "QUOTE">"/'s"</span>. And this one must contain exactly + <span class="QUOTE">".html"</span> (but does not have to end + with that!).</p> + </dd> + + <dt><tt class= + "LITERAL">.example.com/(.*/)(ads|banners?|junk)</tt></dt> + + <dd> + <p>This regular expression will match any path of <span class= + "QUOTE">"example.com"</span> that contains any of the words + <span class="QUOTE">"ads"</span>, <span class= + "QUOTE">"banner"</span>, <span class="QUOTE">"banners"</span> + (because of the <span class="QUOTE">"?"</span>) or <span class= + "QUOTE">"junk"</span>. The path does not have to end in these + words, just contain them.</p> + </dd> + + <dt><tt class= + "LITERAL">.example.com/(.*/)(ads|banners?|junk)/.*\.(jpe?g|gif|png)$</tt></dt> + + <dd> + <p>This is very much the same as above, except now it must end + in either <span class="QUOTE">".jpg"</span>, <span class= + "QUOTE">".jpeg"</span>, <span class="QUOTE">".gif"</span> or + <span class="QUOTE">".png"</span>. So this one is limited to + common image formats.</p> + </dd> + </dl> </div> + + <p>There are many, many good examples to be found in <tt class= + "FILENAME">default.action</tt>, and more tutorials below in <a href= + "appendix.html#REGEX">Appendix on regular expressions</a>.</p> </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="ACTIONS">8.5. Actions</a> - </h2> - <p> - All actions are disabled by default, until they are explicitly - enabled somewhere in an actions file. Actions are turned on if - preceded with a <span class="QUOTE">"+"</span>, and turned off if - preceded with a <span class="QUOTE">"-"</span>. So a <tt class= - "LITERAL">+action</tt> means <span class="QUOTE">"do that - action"</span>, e.g. <tt class="LITERAL">+block</tt> means <span - class="QUOTE">"please block URLs that match the following - patterns"</span>, and <tt class="LITERAL">-block</tt> means <span - class="QUOTE">"don't block URLs that match the following patterns, - even if <tt class="LITERAL">+block</tt> previously - applied."</span> - </p> - <p> - Again, actions are invoked by placing them on a line, enclosed in - curly braces and separated by whitespace, like in <tt class= - "LITERAL">{+some-action -some-other-action{some-parameter}}</tt>, - followed by a list of URL patterns, one per line, to which they - apply. Together, the actions line and the following pattern lines - make up a section of the actions file. - </p> - <p> - Actions fall into three categories: - </p> - <p> - </p> - <ul> - <li> - <p> - Boolean, i.e the action can only be <span class= - "QUOTE">"enabled"</span> or <span class= - "QUOTE">"disabled"</span>. Syntax: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> - +<tt class="REPLACEABLE"><i>name</i></tt> # enable action <tt class= -"REPLACEABLE"><i>name</i></tt> - -<tt class="REPLACEABLE"><i>name</i></tt> # disable action <tt -class="REPLACEABLE"><i>name</i></tt> + + <div class="SECT3"> + <h3 class="SECT3"><a name="TAG-PATTERN" id="TAG-PATTERN">8.4.3. The + Tag Pattern</a></h3> + + <p>Tag patterns are used to change the applying actions based on the + request's tags. Tags can be created with either the <a href= + "actions-file.html#CLIENT-HEADER-TAGGER">client-header-tagger</a> or + the <a href= + "actions-file.html#SERVER-HEADER-TAGGER">server-header-tagger</a> + action.</p> + + <p>Tag patterns have to start with <span class="QUOTE">"TAG:"</span>, + so <span class="APPLICATION">Privoxy</span> can tell them apart from + URL patterns. Everything after the colon including white space, is + interpreted as a regular expression with path pattern syntax, except + that tag patterns aren't left-anchored automatically (<span class= + "APPLICATION">Privoxy</span> doesn't silently add a <span class= + "QUOTE">"^"</span>, you have to do it yourself if you need it).</p> + + <p>To match all requests that are tagged with <span class= + "QUOTE">"foo"</span> your pattern line should be <span class= + "QUOTE">"TAG:^foo$"</span>, <span class="QUOTE">"TAG:foo"</span> + would work as well, but it would also match requests whose tags + contain <span class="QUOTE">"foo"</span> somewhere. <span class= + "QUOTE">"TAG: foo"</span> wouldn't work as it requires white + space.</p> + + <p>Sections can contain URL and tag patterns at the same time, but + tag patterns are checked after the URL patterns and thus always + overrule them, even if they are located before the URL patterns.</p> + + <p>Once a new tag is added, Privoxy checks right away if it's matched + by one of the tag patterns and updates the action settings + accordingly. As a result tags can be used to activate other tagger + actions, as long as these other taggers look for headers that haven't + already be parsed.</p> + + <p>For example you could tag client requests which use the <tt class= + "LITERAL">POST</tt> method, then use this tag to activate another + tagger that adds a tag if cookies are sent, and then use a block + action based on the cookie tag. This allows the outcome of one + action, to be input into a subsequent action. However if you'd + reverse the position of the described taggers, and activated the + method tagger based on the cookie tagger, no method tags would be + created. The method tagger would look for the request line, but at + the time the cookie tag is created, the request line has already been + parsed.</p> + + <p>While this is a limitation you should be aware of, this kind of + indirection is seldom needed anyway and even the example doesn't make + too much sense.</p> + </div> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="ACTIONS" id="ACTIONS">8.5. Actions</a></h2> + + <p>All actions are disabled by default, until they are explicitly + enabled somewhere in an actions file. Actions are turned on if preceded + with a <span class="QUOTE">"+"</span>, and turned off if preceded with + a <span class="QUOTE">"-"</span>. So a <tt class="LITERAL">+action</tt> + means <span class="QUOTE">"do that action"</span>, e.g. <tt class= + "LITERAL">+block</tt> means <span class="QUOTE">"please block URLs that + match the following patterns"</span>, and <tt class= + "LITERAL">-block</tt> means <span class="QUOTE">"don't block URLs that + match the following patterns, even if <tt class="LITERAL">+block</tt> + previously applied."</span></p> + + <p>Again, actions are invoked by placing them on a line, enclosed in + curly braces and separated by whitespace, like in <tt class= + "LITERAL">{+some-action -some-other-action{some-parameter}}</tt>, + followed by a list of URL patterns, one per line, to which they apply. + Together, the actions line and the following pattern lines make up a + section of the actions file.</p> + + <p>Actions fall into three categories:</p> + + <ul> + <li> + <p>Boolean, i.e the action can only be <span class= + "QUOTE">"enabled"</span> or <span class="QUOTE">"disabled"</span>. + Syntax:</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> + +<tt class="REPLACEABLE c5">name</tt> # enable action <tt class= +"REPLACEABLE c5">name</tt> + -<tt class="REPLACEABLE c5">name</tt> # disable action <tt class= +"REPLACEABLE c5">name</tt> </pre> - </td> - </tr> - </table> - - <p> - Example: <tt class="LITERAL">+handle-as-image</tt> - </p> - </li> - <li> - <p> - Parameterized, where some value is required in order to enable - this type of action. Syntax: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> - +<tt class="REPLACEABLE"><i>name</i></tt>{<tt class= -"REPLACEABLE"><i>param</i></tt>} # enable action and set parameter to <tt -class="REPLACEABLE"><i>param</i></tt>, + </td> + </tr> + </table> + + <p>Example: <tt class="LITERAL">+handle-as-image</tt></p> + </li> + + <li> + <p>Parameterized, where some value is required in order to enable + this type of action. Syntax:</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> + +<tt class="REPLACEABLE c5">name</tt>{<tt class= +"REPLACEABLE c5">param</tt>} # enable action and set parameter to <tt class= +"REPLACEABLE c5">param</tt>, # overwriting parameter from previous match if necessary -<tt class= -"REPLACEABLE"><i>name</i></tt> # disable action. The parameter can be omitted +"REPLACEABLE c5">name</tt> # disable action. The parameter can be omitted </pre> - </td> - </tr> - </table> - - <p> - Note that if the URL matches multiple positive forms of a - parameterized action, the last match wins, i.e. the params from - earlier matches are simply ignored. - </p> - <p> - Example: <tt class="LITERAL">+hide-user-agent{Mozilla/5.0 (X11; - U; FreeBSD i386; en-US; rv:1.8.1.4) Gecko/20070602 - Firefox/2.0.0.4}</tt> - </p> - </li> - <li> - <p> - Multi-value. These look exactly like parameterized actions, but - they behave differently: If the action applies multiple times - to the same URL, but with different parameters, <span class= - "emphasis"><i class="EMPHASIS">all</i></span> the parameters - from <span class="emphasis"><i class="EMPHASIS">all</i></span> - matches are remembered. This is used for actions that can be - executed for the same request repeatedly, like adding multiple - headers, or filtering through multiple filters. Syntax: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> - +<tt class="REPLACEABLE"><i>name</i></tt>{<tt class= -"REPLACEABLE"><i>param</i></tt>} # enable action and add <tt class= -"REPLACEABLE"><i>param</i></tt> to the list of parameters - -<tt class="REPLACEABLE"><i>name</i></tt>{<tt class= -"REPLACEABLE"><i>param</i></tt>} # remove the parameter <tt class= -"REPLACEABLE"><i>param</i></tt> from the list of parameters + </td> + </tr> + </table> + + <p>Note that if the URL matches multiple positive forms of a + parameterized action, the last match wins, i.e. the params from + earlier matches are simply ignored.</p> + + <p>Example: <tt class="LITERAL">+hide-user-agent{Mozilla/5.0 (X11; + U; FreeBSD i386; en-US; rv:1.8.1.4) Gecko/20070602 + Firefox/2.0.0.4}</tt></p> + </li> + + <li> + <p>Multi-value. These look exactly like parameterized actions, but + they behave differently: If the action applies multiple times to + the same URL, but with different parameters, <span class= + "emphasis EMPHASIS c2">all</span> the parameters from <span class= + "emphasis EMPHASIS c2">all</span> matches are remembered. This is + used for actions that can be executed for the same request + repeatedly, like adding multiple headers, or filtering through + multiple filters. Syntax:</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> + +<tt class="REPLACEABLE c5">name</tt>{<tt class= +"REPLACEABLE c5">param</tt>} # enable action and add <tt class= +"REPLACEABLE c5">param</tt> to the list of parameters + -<tt class="REPLACEABLE c5">name</tt>{<tt class= +"REPLACEABLE c5">param</tt>} # remove the parameter <tt class= +"REPLACEABLE c5">param</tt> from the list of parameters # If it was the last one left, disable the action. <tt class= -"REPLACEABLE"><i>-name</i></tt> # disable this action completely and remove all parameters from the list +"REPLACEABLE c5">-name</tt> # disable this action completely and remove all parameters from the list </pre> - </td> - </tr> - </table> - - <p> - Examples: <tt class="LITERAL">+add-header{X-Fun-Header: Some - text}</tt> and <tt class= - "LITERAL">+filter{html-annoyances}</tt> - </p> - </li> - </ul> - - <p> - If nothing is specified in any actions file, no <span class= - "QUOTE">"actions"</span> are taken. So in this case <span class= - "APPLICATION">Privoxy</span> would just be a normal, non-blocking, - non-filtering proxy. You must specifically enable the privacy and - blocking features you need (although the provided default actions - files will give a good starting point). - </p> - <p> - Later defined action sections always over-ride earlier ones of the - same type. So exceptions to any rules you make, should come in the - latter part of the file (or in a file that is processed later when - using multiple actions files such as <tt class= - "FILENAME">user.action</tt>). For multi-valued actions, the actions - are applied in the order they are specified. Actions files are - processed in the order they are defined in <tt class= - "FILENAME">config</tt> (the default installation has three actions - files). It also quite possible for any given URL to match more than - one <span class="QUOTE">"pattern"</span> (because of wildcards and - regular expressions), and thus to trigger more than one set of - actions! Last match wins. - </p> - <p> - The list of valid <span class="APPLICATION">Privoxy</span> actions - are: - </p> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="ADD-HEADER">8.5.1. add-header</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Confuse log analysis, custom applications - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Sends a user defined HTTP header to the web server. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Multi-value. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - Any string value is possible. Validity of the defined HTTP - headers is not checked. It is recommended that you use the - <span class="QUOTE">"<tt class="LITERAL">X-</tt>"</span> - prefix for custom headers. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - This action may be specified multiple times, in order to - define multiple headers. This is rarely needed for the - typical user. If you don't know what <span class= - "QUOTE">"HTTP headers"</span> are, you definitely don't - need to worry about this one. - </p> - <p> - Headers added by this action are not modified by other - actions. - </p> - </dd> - <dt> - Example usage: - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>Examples: <tt class="LITERAL">+add-header{X-Fun-Header: Some + text}</tt> and <tt class= + "LITERAL">+filter{html-annoyances}</tt></p> + </li> + </ul> + + <p>If nothing is specified in any actions file, no <span class= + "QUOTE">"actions"</span> are taken. So in this case <span class= + "APPLICATION">Privoxy</span> would just be a normal, non-blocking, + non-filtering proxy. You must specifically enable the privacy and + blocking features you need (although the provided default actions files + will give a good starting point).</p> + + <p>Later defined action sections always over-ride earlier ones of the + same type. So exceptions to any rules you make, should come in the + latter part of the file (or in a file that is processed later when + using multiple actions files such as <tt class= + "FILENAME">user.action</tt>). For multi-valued actions, the actions are + applied in the order they are specified. Actions files are processed in + the order they are defined in <tt class="FILENAME">config</tt> (the + default installation has three actions files). It also quite possible + for any given URL to match more than one <span class= + "QUOTE">"pattern"</span> (because of wildcards and regular + expressions), and thus to trigger more than one set of actions! Last + match wins.</p> + + <p>The list of valid <span class="APPLICATION">Privoxy</span> actions + are:</p> + + <div class="SECT3"> + <h4 class="SECT3"><a name="ADD-HEADER" id="ADD-HEADER">8.5.1. + add-header</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Confuse log analysis, custom applications</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Sends a user defined HTTP header to the web server.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Multi-value.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>Any string value is possible. Validity of the defined HTTP + headers is not checked. It is recommended that you use the + <span class="QUOTE">"<tt class="LITERAL">X-</tt>"</span> prefix + for custom headers.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>This action may be specified multiple times, in order to + define multiple headers. This is rarely needed for the typical + user. If you don't know what <span class="QUOTE">"HTTP + headers"</span> are, you definitely don't need to worry about + this one.</p> + + <p>Headers added by this action are not modified by other + actions.</p> + </dd> + + <dt>Example usage:</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +add-header{X-User-Tracking: sucks} </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="BLOCK">8.5.2. block</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Block ads or other unwanted content - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Requests for URLs to which this action applies are blocked, - i.e. the requests are trapped by <span class= - "APPLICATION">Privoxy</span> and the requested URL is never - retrieved, but is answered locally with a substitute page - or image, as determined by the <tt class="LITERAL"><a href= - "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></tt>, - <tt class="LITERAL"><a href= - "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker</a></tt>, - and <tt class="LITERAL"><a href= - "actions-file.html#HANDLE-AS-EMPTY-DOCUMENT">handle-as-empty-document</a></tt> - actions. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Parameterized. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - A block reason that should be given to the user. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - <span class="APPLICATION">Privoxy</span> sends a special - <span class="QUOTE">"BLOCKED"</span> page for requests to - blocked pages. This page contains the block reason given as - parameter, a link to find out why the block action applies, - and a click-through to the blocked content (the latter only - if the force feature is available and enabled). - </p> - <p> - A very important exception occurs if <span class= - "emphasis"><i class="EMPHASIS">both</i></span> <tt class= - "LITERAL">block</tt> and <tt class="LITERAL"><a href= - "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></tt>, - apply to the same request: it will then be replaced by an - image. If <tt class="LITERAL"><a href= - "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker</a></tt> - (see below) also applies, the type of image will be - determined by its parameter, if not, the standard - checkerboard pattern is sent. - </p> - <p> - It is important to understand this process, in order to - understand how <span class="APPLICATION">Privoxy</span> - deals with ads and other unwanted content. Blocking is a - core feature, and one upon which various other features - depend. - </p> - <p> - The <tt class="LITERAL"><a href= - "actions-file.html#FILTER">filter</a></tt> action can - perform a very similar task, by <span class= - "QUOTE">"blocking"</span> banner images and other content - through rewriting the relevant URLs in the document's HTML - source, so they don't get requested in the first place. - Note that this is a totally different technique, and it's - easy to confuse the two. - </p> - </dd> - <dt> - Example usage (section): - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="BLOCK" id="BLOCK">8.5.2. block</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Block ads or other unwanted content</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Requests for URLs to which this action applies are blocked, + i.e. the requests are trapped by <span class= + "APPLICATION">Privoxy</span> and the requested URL is never + retrieved, but is answered locally with a substitute page or + image, as determined by the <tt class="LITERAL"><a href= + "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></tt>, + <tt class="LITERAL"><a href= + "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker</a></tt>, + and <tt class="LITERAL"><a href= + "actions-file.html#HANDLE-AS-EMPTY-DOCUMENT">handle-as-empty-document</a></tt> + actions.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Parameterized.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>A block reason that should be given to the user.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p><span class="APPLICATION">Privoxy</span> sends a special + <span class="QUOTE">"BLOCKED"</span> page for requests to + blocked pages. This page contains the block reason given as + parameter, a link to find out why the block action applies, and + a click-through to the blocked content (the latter only if the + force feature is available and enabled).</p> + + <p>A very important exception occurs if <span class= + "emphasis EMPHASIS c2">both</span> <tt class= + "LITERAL">block</tt> and <tt class="LITERAL"><a href= + "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></tt>, + apply to the same request: it will then be replaced by an + image. If <tt class="LITERAL"><a href= + "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker</a></tt> + (see below) also applies, the type of image will be determined + by its parameter, if not, the standard checkerboard pattern is + sent.</p> + + <p>It is important to understand this process, in order to + understand how <span class="APPLICATION">Privoxy</span> deals + with ads and other unwanted content. Blocking is a core + feature, and one upon which various other features depend.</p> + + <p>The <tt class="LITERAL"><a href= + "actions-file.html#FILTER">filter</a></tt> action can perform a + very similar task, by <span class="QUOTE">"blocking"</span> + banner images and other content through rewriting the relevant + URLs in the document's HTML source, so they don't get requested + in the first place. Note that this is a totally different + technique, and it's easy to confuse the two.</p> + </dd> + + <dt>Example usage (section):</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> {+block{No nasty stuff for you.}} # Block and replace with "blocked" page .nasty-stuff.example.com @@ -1299,255 +1089,212 @@ class="REPLACEABLE"><i>param</i></tt>, # Block and then ignore adserver.example.net/.*\.js$ </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="CHANGE-X-FORWARDED-FOR">8.5.3. - change-x-forwarded-for</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Improve privacy by not forwarding the source of the request - in the HTTP headers. - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Deletes the <span class="QUOTE">"X-Forwarded-For:"</span> - HTTP header from the client request, or adds a new one. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Parameterized. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <ul> - <li> - <p> - <span class="QUOTE">"block"</span> to delete the - header. - </p> - </li> - <li> - <p> - <span class="QUOTE">"add"</span> to create the header - (or append the client's IP address to an already - existing one). - </p> - </li> - </ul> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - It is safe and recommended to use <tt class= - "LITERAL">block</tt>. - </p> - <p> - Forwarding the source address of the request may make sense - in some multi-user setups but is also a privacy risk. - </p> - </dd> - <dt> - Example usage: - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="CHANGE-X-FORWARDED-FOR" id= + "CHANGE-X-FORWARDED-FOR">8.5.3. change-x-forwarded-for</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Improve privacy by not forwarding the source of the request + in the HTTP headers.</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Deletes the <span class="QUOTE">"X-Forwarded-For:"</span> + HTTP header from the client request, or adds a new one.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Parameterized.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <ul> + <li> + <p><span class="QUOTE">"block"</span> to delete the + header.</p> + </li> + + <li> + <p><span class="QUOTE">"add"</span> to create the header + (or append the client's IP address to an already existing + one).</p> + </li> + </ul> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>It is safe and recommended to use <tt class= + "LITERAL">block</tt>.</p> + + <p>Forwarding the source address of the request may make sense + in some multi-user setups but is also a privacy risk.</p> + </dd> + + <dt>Example usage:</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +change-x-forwarded-for{block} </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="CLIENT-HEADER-FILTER">8.5.4. client-header-filter</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Rewrite or remove single client headers. - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - All client headers to which this action applies are - filtered on-the-fly through the specified regular - expression based substitutions. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Parameterized. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - The name of a client-header filter, as defined in one of - the <a href="filter-file.html">filter files</a>. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - Client-header filters are applied to each header on its - own, not to all at once. This makes it easier to diagnose - problems, but on the downside you can't write filters that - only change header x if header y's value is z. You can do - that by using tags though. - </p> - <p> - Client-header filters are executed after the other header - actions have finished and use their output as input. - </p> - <p> - If the request URL gets changed, <span class= - "APPLICATION">Privoxy</span> will detect that and use the - new one. This can be used to rewrite the request - destination behind the client's back, for example to - specify a Tor exit relay for certain requests. - </p> - <p> - Please refer to the <a href="filter-file.html">filter file - chapter</a> to learn which client-header filters are - available by default, and how to create your own. - </p> - </dd> - <dt> - Example usage (section): - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="CLIENT-HEADER-FILTER" id= + "CLIENT-HEADER-FILTER">8.5.4. client-header-filter</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Rewrite or remove single client headers.</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>All client headers to which this action applies are filtered + on-the-fly through the specified regular expression based + substitutions.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Parameterized.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>The name of a client-header filter, as defined in one of the + <a href="filter-file.html">filter files</a>.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>Client-header filters are applied to each header on its own, + not to all at once. This makes it easier to diagnose problems, + but on the downside you can't write filters that only change + header x if header y's value is z. You can do that by using + tags though.</p> + + <p>Client-header filters are executed after the other header + actions have finished and use their output as input.</p> + + <p>If the request URL gets changed, <span class= + "APPLICATION">Privoxy</span> will detect that and use the new + one. This can be used to rewrite the request destination behind + the client's back, for example to specify a Tor exit relay for + certain requests.</p> + + <p>Please refer to the <a href="filter-file.html">filter file + chapter</a> to learn which client-header filters are available + by default, and how to create your own.</p> + </dd> + + <dt>Example usage (section):</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> # Hide Tor exit notation in Host and Referer Headers {+client-header-filter{hide-tor-exit-notation}} / </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="CLIENT-HEADER-TAGGER">8.5.5. client-header-tagger</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Block requests based on their headers. - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Client headers to which this action applies are filtered - on-the-fly through the specified regular expression based - substitutions, the result is used as tag. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Parameterized. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - The name of a client-header tagger, as defined in one of - the <a href="filter-file.html">filter files</a>. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - Client-header taggers are applied to each header on its - own, and as the header isn't modified, each tagger <span - class="QUOTE">"sees"</span> the original. - </p> - <p> - Client-header taggers are the first actions that are - executed and their tags can be used to control every other - action. - </p> - </dd> - <dt> - Example usage (section): - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="CLIENT-HEADER-TAGGER" id= + "CLIENT-HEADER-TAGGER">8.5.5. client-header-tagger</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Block requests based on their headers.</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Client headers to which this action applies are filtered + on-the-fly through the specified regular expression based + substitutions, the result is used as tag.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Parameterized.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>The name of a client-header tagger, as defined in one of the + <a href="filter-file.html">filter files</a>.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>Client-header taggers are applied to each header on its own, + and as the header isn't modified, each tagger <span class= + "QUOTE">"sees"</span> the original.</p> + + <p>Client-header taggers are the first actions that are + executed and their tags can be used to control every other + action.</p> + </dd> + + <dt>Example usage (section):</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> # Tag every request with the User-Agent header {+client-header-tagger{user-agent}} / @@ -1571,126 +1318,107 @@ TAG:^User-Agent: fetch libfetch/ TAG:^User-Agent: Ubuntu APT-HTTP/ TAG:^User-Agent: MPlayer/ -</pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> - </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="CONTENT-TYPE-OVERWRITE">8.5.6. - content-type-overwrite</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Stop useless download menus from popping up, or change the - browser's rendering mode - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Replaces the <span class="QUOTE">"Content-Type:"</span> - HTTP server header. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Parameterized. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - Any string. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - The <span class="QUOTE">"Content-Type:"</span> HTTP server - header is used by the browser to decide what to do with the - document. The value of this header can cause the browser to - open a download menu instead of displaying the document by - itself, even if the document's format is supported by the - browser. - </p> - <p> - The declared content type can also affect which rendering - mode the browser chooses. If XHTML is delivered as <span - class="QUOTE">"text/html"</span>, many browsers treat it as - yet another broken HTML document. If it is send as <span - class="QUOTE">"application/xml"</span>, browsers with XHTML - support will only display it, if the syntax is correct. - </p> - <p> - If you see a web site that proudly uses XHTML buttons, but - sets <span class="QUOTE">"Content-Type: text/html"</span>, - you can use <span class="APPLICATION">Privoxy</span> to - overwrite it with <span class= - "QUOTE">"application/xml"</span> and validate the web - master's claim inside your XHTML-supporting browser. If the - syntax is incorrect, the browser will complain loudly. - </p> - <p> - You can also go the opposite direction: if your browser - prints error messages instead of rendering a document - falsely declared as XHTML, you can overwrite the content - type with <span class="QUOTE">"text/html"</span> and have - it rendered as broken HTML document. - </p> - <p> - By default <tt class="LITERAL">content-type-overwrite</tt> - only replaces <span class="QUOTE">"Content-Type:"</span> - headers that look like some kind of text. If you want to - overwrite it unconditionally, you have to combine it with - <tt class="LITERAL"><a href= - "actions-file.html#FORCE-TEXT-MODE">force-text-mode</a></tt>. - This limitation exists for a reason, think twice before - circumventing it. - </p> - <p> - Most of the time it's easier to replace this action with a - custom <tt class="LITERAL"><a href= - "actions-file.html#SERVER-HEADER-FILTER">server-header - filter</a></tt>. It allows you to activate it for every - document of a certain site and it will still only replace - the content types you aimed at. - </p> - <p> - Of course you can apply <tt class= - "LITERAL">content-type-overwrite</tt> to a whole site and - then make URL based exceptions, but it's a lot more work to - get the same precision. - </p> - </dd> - <dt> - Example usage (sections): - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> +</pre> + </td> + </tr> + </table> + </dd> + </dl> + </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="CONTENT-TYPE-OVERWRITE" id= + "CONTENT-TYPE-OVERWRITE">8.5.6. content-type-overwrite</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Stop useless download menus from popping up, or change the + browser's rendering mode</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Replaces the <span class="QUOTE">"Content-Type:"</span> HTTP + server header.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Parameterized.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>Any string.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>The <span class="QUOTE">"Content-Type:"</span> HTTP server + header is used by the browser to decide what to do with the + document. The value of this header can cause the browser to + open a download menu instead of displaying the document by + itself, even if the document's format is supported by the + browser.</p> + + <p>The declared content type can also affect which rendering + mode the browser chooses. If XHTML is delivered as <span class= + "QUOTE">"text/html"</span>, many browsers treat it as yet + another broken HTML document. If it is send as <span class= + "QUOTE">"application/xml"</span>, browsers with XHTML support + will only display it, if the syntax is correct.</p> + + <p>If you see a web site that proudly uses XHTML buttons, but + sets <span class="QUOTE">"Content-Type: text/html"</span>, you + can use <span class="APPLICATION">Privoxy</span> to overwrite + it with <span class="QUOTE">"application/xml"</span> and + validate the web master's claim inside your XHTML-supporting + browser. If the syntax is incorrect, the browser will complain + loudly.</p> + + <p>You can also go the opposite direction: if your browser + prints error messages instead of rendering a document falsely + declared as XHTML, you can overwrite the content type with + <span class="QUOTE">"text/html"</span> and have it rendered as + broken HTML document.</p> + + <p>By default <tt class="LITERAL">content-type-overwrite</tt> + only replaces <span class="QUOTE">"Content-Type:"</span> + headers that look like some kind of text. If you want to + overwrite it unconditionally, you have to combine it with + <tt class="LITERAL"><a href= + "actions-file.html#FORCE-TEXT-MODE">force-text-mode</a></tt>. + This limitation exists for a reason, think twice before + circumventing it.</p> + + <p>Most of the time it's easier to replace this action with a + custom <tt class="LITERAL"><a href= + "actions-file.html#SERVER-HEADER-FILTER">server-header + filter</a></tt>. It allows you to activate it for every + document of a certain site and it will still only replace the + content types you aimed at.</p> + + <p>Of course you can apply <tt class= + "LITERAL">content-type-overwrite</tt> to a whole site and then + make URL based exceptions, but it's a lot more work to get the + same precision.</p> + </dd> + + <dt>Example usage (sections):</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> # Check if www.example.net/ really uses valid XHTML { +content-type-overwrite{application/xml} } www.example.net/ @@ -1700,197 +1428,166 @@ www.example.net/ www.example.net/.*\.css$ www.example.net/.*style </pre> + </td> + </tr> + </table> + </dd> + </dl> + </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="CRUNCH-CLIENT-HEADER" id= + "CRUNCH-CLIENT-HEADER">8.5.7. crunch-client-header</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Remove a client header <span class= + "APPLICATION">Privoxy</span> has no dedicated action for.</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Deletes every header sent by the client that contains the + string the user supplied as parameter.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Parameterized.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>Any string.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>This action allows you to block client headers for which no + dedicated <span class="APPLICATION">Privoxy</span> action + exists. <span class="APPLICATION">Privoxy</span> will remove + every client header that contains the string you supplied as + parameter.</p> + + <p>Regular expressions are <span class= + "emphasis EMPHASIS c2">not supported</span> and you can't use + this action to block different headers in the same request, + unless they contain the same string.</p> + + <p><tt class="LITERAL">crunch-client-header</tt> is only meant + for quick tests. If you have to block several different + headers, or only want to modify parts of them, you should use a + <tt class="LITERAL"><a href= + "actions-file.html#CLIENT-HEADER-FILTER">client-header + filter</a></tt>.</p> + + <div class="WARNING"> + <table class="WARNING" border="1" width="90%"> + <tr> + <td class="c6" align="center">Warning</td> + </tr> + + <tr> + <td align="left"> + <p>Don't block any header without understanding the + consequences.</p> </td> </tr> </table> - </dd> - </dl> - </div> - </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="CRUNCH-CLIENT-HEADER">8.5.7. crunch-client-header</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Remove a client header <span class= - "APPLICATION">Privoxy</span> has no dedicated action for. - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Deletes every header sent by the client that contains the - string the user supplied as parameter. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Parameterized. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - Any string. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - This action allows you to block client headers for which no - dedicated <span class="APPLICATION">Privoxy</span> action - exists. <span class="APPLICATION">Privoxy</span> will - remove every client header that contains the string you - supplied as parameter. - </p> - <p> - Regular expressions are <span class="emphasis"><i class= - "EMPHASIS">not supported</i></span> and you can't use this - action to block different headers in the same request, - unless they contain the same string. - </p> - <p> - <tt class="LITERAL">crunch-client-header</tt> is only meant - for quick tests. If you have to block several different - headers, or only want to modify parts of them, you should - use a <tt class="LITERAL"><a href= - "actions-file.html#CLIENT-HEADER-FILTER">client-header - filter</a></tt>. - </p> - <div class="WARNING"> - <table class="WARNING" border="1" width="90%"> - <tr> - <td align="CENTER"> - <b>Warning</b> - </td> - </tr> - <tr> - <td align="LEFT"> - <p> - Don't block any header without understanding the - consequences. - </p> - </td> - </tr> - </table> - </div> - </dd> - <dt> - Example usage (section): - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + </dd> + + <dt>Example usage (section):</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> # Block the non-existent "Privacy-Violation:" client header { +crunch-client-header{Privacy-Violation:} } / </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="CRUNCH-IF-NONE-MATCH">8.5.8. crunch-if-none-match</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Prevent yet another way to track the user's steps between - sessions. - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Deletes the <span class="QUOTE">"If-None-Match:"</span> - HTTP client header. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Boolean. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - N/A - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - Removing the <span class="QUOTE">"If-None-Match:"</span> - HTTP client header is useful for filter testing, where you - want to force a real reload instead of getting status code - <span class="QUOTE">"304"</span> which would cause the - browser to use a cached copy of the page. - </p> - <p> - It is also useful to make sure the header isn't used as a - cookie replacement (unlikely but possible). - </p> - <p> - Blocking the <span class="QUOTE">"If-None-Match:"</span> - header shouldn't cause any caching problems, as long as the - <span class="QUOTE">"If-Modified-Since:"</span> header - isn't blocked or missing as well. - </p> - <p> - It is recommended to use this action together with <tt - class="LITERAL"><a href= - "actions-file.html#HIDE-IF-MODIFIED-SINCE">hide-if-modified-since</a></tt> - and <tt class="LITERAL"><a href= - "actions-file.html#OVERWRITE-LAST-MODIFIED">overwrite-last-modified</a></tt>. - </p> - </dd> - <dt> - Example usage (section): - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="CRUNCH-IF-NONE-MATCH" id= + "CRUNCH-IF-NONE-MATCH">8.5.8. crunch-if-none-match</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Prevent yet another way to track the user's steps between + sessions.</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Deletes the <span class="QUOTE">"If-None-Match:"</span> HTTP + client header.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Boolean.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>N/A</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>Removing the <span class="QUOTE">"If-None-Match:"</span> + HTTP client header is useful for filter testing, where you want + to force a real reload instead of getting status code + <span class="QUOTE">"304"</span> which would cause the browser + to use a cached copy of the page.</p> + + <p>It is also useful to make sure the header isn't used as a + cookie replacement (unlikely but possible).</p> + + <p>Blocking the <span class="QUOTE">"If-None-Match:"</span> + header shouldn't cause any caching problems, as long as the + <span class="QUOTE">"If-Modified-Since:"</span> header isn't + blocked or missing as well.</p> + + <p>It is recommended to use this action together with + <tt class="LITERAL"><a href= + "actions-file.html#HIDE-IF-MODIFIED-SINCE">hide-if-modified-since</a></tt> + and <tt class="LITERAL"><a href= + "actions-file.html#OVERWRITE-LAST-MODIFIED">overwrite-last-modified</a></tt>.</p> + </dd> + + <dt>Example usage (section):</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> # Let the browser revalidate cached documents but don't # allow the server to use the revalidation headers for user tracking. {+hide-if-modified-since{-60} \ @@ -1898,1302 +1595,1140 @@ www.example.net/.*style +crunch-if-none-match} / </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="CRUNCH-INCOMING-COOKIES">8.5.9. - crunch-incoming-cookies</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Prevent the web server from setting HTTP cookies on your - system - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Deletes any <span class="QUOTE">"Set-Cookie:"</span> HTTP - headers from server replies. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Boolean. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - N/A - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - This action is only concerned with <span class= - "emphasis"><i class="EMPHASIS">incoming</i></span> HTTP - cookies. For <span class="emphasis"><i class= - "EMPHASIS">outgoing</i></span> HTTP cookies, use <tt class= - "LITERAL"><a href= - "actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a></tt>. - Use <span class="emphasis"><i class= - "EMPHASIS">both</i></span> to disable HTTP cookies - completely. - </p> - <p> - It makes <span class="emphasis"><i class="EMPHASIS">no - sense at all</i></span> to use this action in conjunction - with the <tt class="LITERAL"><a href= - "actions-file.html#SESSION-COOKIES-ONLY">session-cookies-only</a></tt> - action, since it would prevent the session cookies from - being set. See also <tt class="LITERAL"><a href= - "actions-file.html#FILTER-CONTENT-COOKIES">filter-content-cookies</a></tt>. - </p> - </dd> - <dt> - Example usage: - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="CRUNCH-INCOMING-COOKIES" id= + "CRUNCH-INCOMING-COOKIES">8.5.9. crunch-incoming-cookies</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Prevent the web server from setting HTTP cookies on your + system</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Deletes any <span class="QUOTE">"Set-Cookie:"</span> HTTP + headers from server replies.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Boolean.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>N/A</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>This action is only concerned with <span class= + "emphasis EMPHASIS c2">incoming</span> HTTP cookies. For + <span class="emphasis EMPHASIS c2">outgoing</span> HTTP + cookies, use <tt class="LITERAL"><a href= + "actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a></tt>. + Use <span class="emphasis EMPHASIS c2">both</span> to disable + HTTP cookies completely.</p> + + <p>It makes <span class="emphasis EMPHASIS c2">no sense at + all</span> to use this action in conjunction with the + <tt class="LITERAL"><a href= + "actions-file.html#SESSION-COOKIES-ONLY">session-cookies-only</a></tt> + action, since it would prevent the session cookies from being + set. See also <tt class="LITERAL"><a href= + "actions-file.html#FILTER-CONTENT-COOKIES">filter-content-cookies</a></tt>.</p> + </dd> + + <dt>Example usage:</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +crunch-incoming-cookies </pre> + </td> + </tr> + </table> + </dd> + </dl> + </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="CRUNCH-SERVER-HEADER" id= + "CRUNCH-SERVER-HEADER">8.5.10. crunch-server-header</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Remove a server header <span class= + "APPLICATION">Privoxy</span> has no dedicated action for.</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Deletes every header sent by the server that contains the + string the user supplied as parameter.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Parameterized.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>Any string.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>This action allows you to block server headers for which no + dedicated <span class="APPLICATION">Privoxy</span> action + exists. <span class="APPLICATION">Privoxy</span> will remove + every server header that contains the string you supplied as + parameter.</p> + + <p>Regular expressions are <span class= + "emphasis EMPHASIS c2">not supported</span> and you can't use + this action to block different headers in the same request, + unless they contain the same string.</p> + + <p><tt class="LITERAL">crunch-server-header</tt> is only meant + for quick tests. If you have to block several different + headers, or only want to modify parts of them, you should use a + custom <tt class="LITERAL"><a href= + "actions-file.html#SERVER-HEADER-FILTER">server-header + filter</a></tt>.</p> + + <div class="WARNING"> + <table class="WARNING" border="1" width="90%"> + <tr> + <td class="c6" align="center">Warning</td> + </tr> + + <tr> + <td align="left"> + <p>Don't block any header without understanding the + consequences.</p> </td> </tr> </table> - </dd> - </dl> - </div> - </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="CRUNCH-SERVER-HEADER">8.5.10. crunch-server-header</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Remove a server header <span class= - "APPLICATION">Privoxy</span> has no dedicated action for. - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Deletes every header sent by the server that contains the - string the user supplied as parameter. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Parameterized. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - Any string. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - This action allows you to block server headers for which no - dedicated <span class="APPLICATION">Privoxy</span> action - exists. <span class="APPLICATION">Privoxy</span> will - remove every server header that contains the string you - supplied as parameter. - </p> - <p> - Regular expressions are <span class="emphasis"><i class= - "EMPHASIS">not supported</i></span> and you can't use this - action to block different headers in the same request, - unless they contain the same string. - </p> - <p> - <tt class="LITERAL">crunch-server-header</tt> is only meant - for quick tests. If you have to block several different - headers, or only want to modify parts of them, you should - use a custom <tt class="LITERAL"><a href= - "actions-file.html#SERVER-HEADER-FILTER">server-header - filter</a></tt>. - </p> - <div class="WARNING"> - <table class="WARNING" border="1" width="90%"> - <tr> - <td align="CENTER"> - <b>Warning</b> - </td> - </tr> - <tr> - <td align="LEFT"> - <p> - Don't block any header without understanding the - consequences. - </p> - </td> - </tr> - </table> - </div> - </dd> - <dt> - Example usage (section): - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + </dd> + + <dt>Example usage (section):</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> # Crunch server headers that try to prevent caching { +crunch-server-header{no-cache} } / </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="CRUNCH-OUTGOING-COOKIES">8.5.11. - crunch-outgoing-cookies</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Prevent the web server from reading any HTTP cookies from - your system - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Deletes any <span class="QUOTE">"Cookie:"</span> HTTP - headers from client requests. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Boolean. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - N/A - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - This action is only concerned with <span class= - "emphasis"><i class="EMPHASIS">outgoing</i></span> HTTP - cookies. For <span class="emphasis"><i class= - "EMPHASIS">incoming</i></span> HTTP cookies, use <tt class= - "LITERAL"><a href= - "actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a></tt>. - Use <span class="emphasis"><i class= - "EMPHASIS">both</i></span> to disable HTTP cookies - completely. - </p> - <p> - It makes <span class="emphasis"><i class="EMPHASIS">no - sense at all</i></span> to use this action in conjunction - with the <tt class="LITERAL"><a href= - "actions-file.html#SESSION-COOKIES-ONLY">session-cookies-only</a></tt> - action, since it would prevent the session cookies from - being read. - </p> - </dd> - <dt> - Example usage: - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="CRUNCH-OUTGOING-COOKIES" id= + "CRUNCH-OUTGOING-COOKIES">8.5.11. crunch-outgoing-cookies</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Prevent the web server from reading any HTTP cookies from + your system</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Deletes any <span class="QUOTE">"Cookie:"</span> HTTP + headers from client requests.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Boolean.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>N/A</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>This action is only concerned with <span class= + "emphasis EMPHASIS c2">outgoing</span> HTTP cookies. For + <span class="emphasis EMPHASIS c2">incoming</span> HTTP + cookies, use <tt class="LITERAL"><a href= + "actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a></tt>. + Use <span class="emphasis EMPHASIS c2">both</span> to disable + HTTP cookies completely.</p> + + <p>It makes <span class="emphasis EMPHASIS c2">no sense at + all</span> to use this action in conjunction with the + <tt class="LITERAL"><a href= + "actions-file.html#SESSION-COOKIES-ONLY">session-cookies-only</a></tt> + action, since it would prevent the session cookies from being + read.</p> + </dd> + + <dt>Example usage:</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +crunch-outgoing-cookies </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="DEANIMATE-GIFS">8.5.12. deanimate-gifs</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Stop those annoying, distracting animated GIF images. - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - De-animate GIF animations, i.e. reduce them to their first - or last image. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Parameterized. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - <span class="QUOTE">"last"</span> or <span class= - "QUOTE">"first"</span> - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - This will also shrink the images considerably (in bytes, - not pixels!). If the option <span class= - "QUOTE">"first"</span> is given, the first frame of the - animation is used as the replacement. If <span class= - "QUOTE">"last"</span> is given, the last frame of the - animation is used instead, which probably makes more sense - for most banner animations, but also has the risk of not - showing the entire last frame (if it is only a delta to an - earlier frame). - </p> - <p> - You can safely use this action with patterns that will also - match non-GIF objects, because no attempt will be made at - anything that doesn't look like a GIF. - </p> - </dd> - <dt> - Example usage: - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="DEANIMATE-GIFS" id= + "DEANIMATE-GIFS">8.5.12. deanimate-gifs</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Stop those annoying, distracting animated GIF images.</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>De-animate GIF animations, i.e. reduce them to their first + or last image.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Parameterized.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p><span class="QUOTE">"last"</span> or <span class= + "QUOTE">"first"</span></p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>This will also shrink the images considerably (in bytes, not + pixels!). If the option <span class="QUOTE">"first"</span> is + given, the first frame of the animation is used as the + replacement. If <span class="QUOTE">"last"</span> is given, the + last frame of the animation is used instead, which probably + makes more sense for most banner animations, but also has the + risk of not showing the entire last frame (if it is only a + delta to an earlier frame).</p> + + <p>You can safely use this action with patterns that will also + match non-GIF objects, because no attempt will be made at + anything that doesn't look like a GIF.</p> + </dd> + + <dt>Example usage:</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +deanimate-gifs{last} </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="DOWNGRADE-HTTP-VERSION">8.5.13. - downgrade-http-version</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Work around (very rare) problems with HTTP/1.1 - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Downgrades HTTP/1.1 client requests and server replies to - HTTP/1.0. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Boolean. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - N/A - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - This is a left-over from the time when <span class= - "APPLICATION">Privoxy</span> didn't support important - HTTP/1.1 features well. It is left here for the unlikely - case that you experience HTTP/1.1 related problems with - some server out there. Not all HTTP/1.1 features and - requirements are supported yet, so there is a chance you - might need this action. - </p> - </dd> - <dt> - Example usage (section): - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="DOWNGRADE-HTTP-VERSION" id= + "DOWNGRADE-HTTP-VERSION">8.5.13. downgrade-http-version</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Work around (very rare) problems with HTTP/1.1</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Downgrades HTTP/1.1 client requests and server replies to + HTTP/1.0.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Boolean.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>N/A</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>This is a left-over from the time when <span class= + "APPLICATION">Privoxy</span> didn't support important HTTP/1.1 + features well. It is left here for the unlikely case that you + experience HTTP/1.1 related problems with some server out + there. Not all HTTP/1.1 features and requirements are supported + yet, so there is a chance you might need this action.</p> + </dd> + + <dt>Example usage (section):</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> {+downgrade-http-version} problem-host.example.com </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="FAST-REDIRECTS">8.5.14. fast-redirects</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Fool some click-tracking scripts and speed up indirect - links. - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Detects redirection URLs and redirects the browser without - contacting the redirection server first. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Parameterized. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <ul> - <li> - <p> - <span class="QUOTE">"simple-check"</span> to just - search for the string <span class= - "QUOTE">"http://"</span> to detect redirection URLs. - </p> - </li> - <li> - <p> - <span class="QUOTE">"check-decoded-url"</span> to - decode URLs (if necessary) before searching for - redirection URLs. - </p> - </li> - </ul> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - Many sites, like yahoo.com, don't just link to other sites. - Instead, they will link to some script on their own - servers, giving the destination as a parameter, which will - then redirect you to the final target. URLs resulting from - this scheme typically look like: <span class= - "QUOTE">"http://www.example.org/click-tracker.cgi?target=http%3a//www.example.net/"</span>. - </p> - <p> - Sometimes, there are even multiple consecutive redirects - encoded in the URL. These redirections via scripts make - your web browsing more traceable, since the server from - which you follow such a link can see where you go to. Apart - from that, valuable bandwidth and time is wasted, while - your browser asks the server for one redirect after the - other. Plus, it feeds the advertisers. - </p> - <p> - This feature is currently not very smart and is scheduled - for improvement. If it is enabled by default, you will have - to create some exceptions to this action. It can lead to - failures in several ways: - </p> - <p> - Not every URLs with other URLs as parameters is evil. Some - sites offer a real service that requires this information - to work. For example a validation service needs to know, - which document to validate. <tt class= - "LITERAL">fast-redirects</tt> assumes that every URL - parameter that looks like another URL is a redirection - target, and will always redirect to the last one. Most of - the time the assumption is correct, but if it isn't, the - user gets redirected anyway. - </p> - <p> - Another failure occurs if the URL contains other parameters - after the URL parameter. The URL: <span class= - "QUOTE">"http://www.example.org/?redirect=http%3a//www.example.net/&foo=bar"</span>. - contains the redirection URL <span class= - "QUOTE">"http://www.example.net/"</span>, followed by - another parameter. <tt class="LITERAL">fast-redirects</tt> - doesn't know that and will cause a redirect to <span class= - "QUOTE">"http://www.example.net/&foo=bar"</span>. - Depending on the target server configuration, the parameter - will be silently ignored or lead to a <span class= - "QUOTE">"page not found"</span> error. You can prevent this - problem by first using the <tt class="LITERAL"><a href= - "actions-file.html#REDIRECT">redirect</a></tt> action to - remove the last part of the URL, but it requires a little - effort. - </p> - <p> - To detect a redirection URL, <tt class= - "LITERAL">fast-redirects</tt> only looks for the string - <span class="QUOTE">"http://"</span>, either in plain text - (invalid but often used) or encoded as <span class= - "QUOTE">"http%3a//"</span>. Some sites use their own URL - encoding scheme, encrypt the address of the target server - or replace it with a database id. In theses cases <tt - class="LITERAL">fast-redirects</tt> is fooled and the - request reaches the redirection server where it probably - gets logged. - </p> - </dd> - <dt> - Example usage: - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="FAST-REDIRECTS" id= + "FAST-REDIRECTS">8.5.14. fast-redirects</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Fool some click-tracking scripts and speed up indirect + links.</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Detects redirection URLs and redirects the browser without + contacting the redirection server first.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Parameterized.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <ul> + <li> + <p><span class="QUOTE">"simple-check"</span> to just search + for the string <span class="QUOTE">"http://"</span> to + detect redirection URLs.</p> + </li> + + <li> + <p><span class="QUOTE">"check-decoded-url"</span> to decode + URLs (if necessary) before searching for redirection + URLs.</p> + </li> + </ul> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>Many sites, like yahoo.com, don't just link to other sites. + Instead, they will link to some script on their own servers, + giving the destination as a parameter, which will then redirect + you to the final target. URLs resulting from this scheme + typically look like: <span class= + "QUOTE">"http://www.example.org/click-tracker.cgi?target=http%3a//www.example.net/"</span>.</p> + + <p>Sometimes, there are even multiple consecutive redirects + encoded in the URL. These redirections via scripts make your + web browsing more traceable, since the server from which you + follow such a link can see where you go to. Apart from that, + valuable bandwidth and time is wasted, while your browser asks + the server for one redirect after the other. Plus, it feeds the + advertisers.</p> + + <p>This feature is currently not very smart and is scheduled + for improvement. If it is enabled by default, you will have to + create some exceptions to this action. It can lead to failures + in several ways:</p> + + <p>Not every URLs with other URLs as parameters is evil. Some + sites offer a real service that requires this information to + work. For example a validation service needs to know, which + document to validate. <tt class="LITERAL">fast-redirects</tt> + assumes that every URL parameter that looks like another URL is + a redirection target, and will always redirect to the last one. + Most of the time the assumption is correct, but if it isn't, + the user gets redirected anyway.</p> + + <p>Another failure occurs if the URL contains other parameters + after the URL parameter. The URL: <span class= + "QUOTE">"http://www.example.org/?redirect=http%3a//www.example.net/&foo=bar"</span>. + contains the redirection URL <span class= + "QUOTE">"http://www.example.net/"</span>, followed by another + parameter. <tt class="LITERAL">fast-redirects</tt> doesn't know + that and will cause a redirect to <span class= + "QUOTE">"http://www.example.net/&foo=bar"</span>. Depending + on the target server configuration, the parameter will be + silently ignored or lead to a <span class="QUOTE">"page not + found"</span> error. You can prevent this problem by first + using the <tt class="LITERAL"><a href= + "actions-file.html#REDIRECT">redirect</a></tt> action to remove + the last part of the URL, but it requires a little effort.</p> + + <p>To detect a redirection URL, <tt class= + "LITERAL">fast-redirects</tt> only looks for the string + <span class="QUOTE">"http://"</span>, either in plain text + (invalid but often used) or encoded as <span class= + "QUOTE">"http%3a//"</span>. Some sites use their own URL + encoding scheme, encrypt the address of the target server or + replace it with a database id. In theses cases <tt class= + "LITERAL">fast-redirects</tt> is fooled and the request reaches + the redirection server where it probably gets logged.</p> + </dd> + + <dt>Example usage:</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> { +fast-redirects{simple-check} } one.example.com { +fast-redirects{check-decoded-url} } another.example.com/testing </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="FILTER">8.5.15. filter</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Get rid of HTML and JavaScript annoyances, banner - advertisements (by size), do fun text replacements, add - personalized effects, etc. - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - All instances of text-based type, most notably HTML and - JavaScript, to which this action applies, can be filtered - on-the-fly through the specified regular expression based - substitutions. (Note: as of version 3.0.3 plain text - documents are exempted from filtering, because web servers - often use the <tt class="LITERAL">text/plain</tt> MIME type - for all files whose type they don't know.) - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Parameterized. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - The name of a content filter, as defined in the <a href= - "filter-file.html">filter file</a>. Filters can be defined - in one or more files as defined by the <tt class= - "LITERAL"><a href= - "config.html#FILTERFILE">filterfile</a></tt> option in the - <a href="config.html">config file</a>. <tt class= - "FILENAME">default.filter</tt> is the collection of filters - supplied by the developers. Locally defined filters should - go in their own file, such as <tt class= - "FILENAME">user.filter</tt>. - </p> - <p> - When used in its negative form, and without parameters, - <span class="emphasis"><i class="EMPHASIS">all</i></span> - filtering is completely disabled. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - For your convenience, there are a number of pre-defined - filters available in the distribution filter file that you - can use. See the examples below for a list. - </p> - <p> - Filtering requires buffering the page content, which may - appear to slow down page rendering since nothing is - displayed until all content has passed the filters. (The - total time until the page is completely rendered doesn't - change much, but it may be perceived as slower since the - page is not incrementally displayed.) This effect will be - more noticeable on slower connections. - </p> - <p> - <span class="QUOTE">"Rolling your own"</span> filters - requires a knowledge of <a href= - "http://en.wikipedia.org/wiki/Regular_expressions" target= - "_top"><span class="QUOTE">"Regular Expressions"</span></a> - and <a href="http://en.wikipedia.org/wiki/Html" target= - "_top"><span class="QUOTE">"HTML"</span></a>. This is very - powerful feature, and potentially very intrusive. Filters - should be used with caution, and where an equivalent <span - class="QUOTE">"action"</span> is not available. - </p> - <p> - The amount of data that can be filtered is limited to the - <tt class="LITERAL"><a href= - "config.html#BUFFER-LIMIT">buffer-limit</a></tt> option in - the main <a href="config.html">config file</a>. The default - is 4096 KB (4 Megs). Once this limit is exceeded, the - buffered data, and all pending data, is passed through - unfiltered. - </p> - <p> - Inappropriate MIME types, such as zipped files, are not - filtered at all. (Again, only text-based types except plain - text). Encrypted SSL data (from HTTPS servers) cannot be - filtered either, since this would violate the integrity of - the secure transaction. In some situations it might be - necessary to protect certain text, like source code, from - filtering by defining appropriate <tt class= - "LITERAL">-filter</tt> exceptions. - </p> - <p> - Compressed content can't be filtered either, unless <span - class="APPLICATION">Privoxy</span> is compiled with zlib - support (requires at least <span class= - "APPLICATION">Privoxy</span> 3.0.7), in which case <span - class="APPLICATION">Privoxy</span> will decompress the - content before filtering it. - </p> - <p> - If you use a <span class="APPLICATION">Privoxy</span> - version without zlib support, but want filtering to work on - as much documents as possible, even those that would - normally be sent compressed, you must use the <tt class= - "LITERAL"><a href= - "actions-file.html#PREVENT-COMPRESSION">prevent-compression</a></tt> - action in conjunction with <tt class="LITERAL">filter</tt>. - </p> - <p> - Content filtering can achieve some of the same effects as - the <tt class="LITERAL"><a href= - "actions-file.html#BLOCK">block</a></tt> action, i.e. it - can be used to block ads and banners. But the mechanism - works quite differently. One effective use, is to block ad - banners based on their size (see below), since many of - these seem to be somewhat standardized. - </p> - <p> - <a href="contact.html">Feedback</a> with suggestions for - new or improved filters is particularly welcome! - </p> - <p> - The below list has only the names and a one-line - description of each predefined filter. There are <a href= - "filter-file.html#PREDEFINED-FILTERS">more verbose - explanations</a> of what these filters do in the <a href= - "filter-file.html">filter file chapter</a>. - </p> - </dd> - <dt> - Example usage (with filters from the distribution <tt class= - "FILENAME">default.filter</tt> file). See <a href= - "filter-file.html#PREDEFINED-FILTERS">the Predefined Filters - section</a> for more explanation on each: - </dt> - <dd> - <p> - <a name="FILTER-JS-ANNOYANCES"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="FILTER" id="FILTER">8.5.15. + filter</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Get rid of HTML and JavaScript annoyances, banner + advertisements (by size), do fun text replacements, add + personalized effects, etc.</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>All instances of text-based type, most notably HTML and + JavaScript, to which this action applies, can be filtered + on-the-fly through the specified regular expression based + substitutions. (Note: as of version 3.0.3 plain text documents + are exempted from filtering, because web servers often use the + <tt class="LITERAL">text/plain</tt> MIME type for all files + whose type they don't know.)</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Parameterized.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>The name of a content filter, as defined in the <a href= + "filter-file.html">filter file</a>. Filters can be defined in + one or more files as defined by the <tt class= + "LITERAL"><a href="config.html#FILTERFILE">filterfile</a></tt> + option in the <a href="config.html">config file</a>. <tt class= + "FILENAME">default.filter</tt> is the collection of filters + supplied by the developers. Locally defined filters should go + in their own file, such as <tt class= + "FILENAME">user.filter</tt>.</p> + + <p>When used in its negative form, and without parameters, + <span class="emphasis EMPHASIS c2">all</span> filtering is + completely disabled.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>For your convenience, there are a number of pre-defined + filters available in the distribution filter file that you can + use. See the examples below for a list.</p> + + <p>Filtering requires buffering the page content, which may + appear to slow down page rendering since nothing is displayed + until all content has passed the filters. (The total time until + the page is completely rendered doesn't change much, but it may + be perceived as slower since the page is not incrementally + displayed.) This effect will be more noticeable on slower + connections.</p> + + <p><span class="QUOTE">"Rolling your own"</span> filters + requires a knowledge of <a href= + "http://en.wikipedia.org/wiki/Regular_expressions" target= + "_top"><span class="QUOTE">"Regular Expressions"</span></a> and + <a href="http://en.wikipedia.org/wiki/Html" target= + "_top"><span class="QUOTE">"HTML"</span></a>. This is very + powerful feature, and potentially very intrusive. Filters + should be used with caution, and where an equivalent + <span class="QUOTE">"action"</span> is not available.</p> + + <p>The amount of data that can be filtered is limited to the + <tt class="LITERAL"><a href= + "config.html#BUFFER-LIMIT">buffer-limit</a></tt> option in the + main <a href="config.html">config file</a>. The default is 4096 + KB (4 Megs). Once this limit is exceeded, the buffered data, + and all pending data, is passed through unfiltered.</p> + + <p>Inappropriate MIME types, such as zipped files, are not + filtered at all. (Again, only text-based types except plain + text). Encrypted SSL data (from HTTPS servers) cannot be + filtered either, since this would violate the integrity of the + secure transaction. In some situations it might be necessary to + protect certain text, like source code, from filtering by + defining appropriate <tt class="LITERAL">-filter</tt> + exceptions.</p> + + <p>Compressed content can't be filtered either, but if + <span class="APPLICATION">Privoxy</span> is compiled with zlib + support and a supported compression algorithm is used (gzip or + deflate), <span class="APPLICATION">Privoxy</span> can first + decompress the content and then filter it.</p> + + <p>If you use a <span class="APPLICATION">Privoxy</span> + version without zlib support, but want filtering to work on as + much documents as possible, even those that would normally be + sent compressed, you must use the <tt class="LITERAL"><a href= + "actions-file.html#PREVENT-COMPRESSION">prevent-compression</a></tt> + action in conjunction with <tt class="LITERAL">filter</tt>.</p> + + <p>Content filtering can achieve some of the same effects as + the <tt class="LITERAL"><a href= + "actions-file.html#BLOCK">block</a></tt> action, i.e. it can be + used to block ads and banners. But the mechanism works quite + differently. One effective use, is to block ad banners based on + their size (see below), since many of these seem to be somewhat + standardized.</p> + + <p><a href="contact.html">Feedback</a> with suggestions for new + or improved filters is particularly welcome!</p> + + <p>The below list has only the names and a one-line description + of each predefined filter. There are <a href= + "filter-file.html#PREDEFINED-FILTERS">more verbose + explanations</a> of what these filters do in the <a href= + "filter-file.html">filter file chapter</a>.</p> + </dd> + + <dt>Example usage (with filters from the distribution <tt class= + "FILENAME">default.filter</tt> file). See <a href= + "filter-file.html#PREDEFINED-FILTERS">the Predefined Filters + section</a> for more explanation on each:</dt> + + <dd> + <p><a name="FILTER-JS-ANNOYANCES" id= + "FILTER-JS-ANNOYANCES"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{js-annoyances} # Get rid of particularly annoying JavaScript abuse. </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <a name="FILTER-JS-EVENTS"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p><a name="FILTER-JS-EVENTS" id="FILTER-JS-EVENTS"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{js-events} # Kill all JS event bindings and timers (Radically destructive! Only for extra nasty sites). </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <a name="FILTER-HTML-ANNOYANCES"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p><a name="FILTER-HTML-ANNOYANCES" id= + "FILTER-HTML-ANNOYANCES"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{html-annoyances} # Get rid of particularly annoying HTML abuse. </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <a name="FILTER-CONTENT-COOKIES"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p><a name="FILTER-CONTENT-COOKIES" id= + "FILTER-CONTENT-COOKIES"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{content-cookies} # Kill cookies that come in the HTML or JS content. </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <a name="FILTER-REFRESH-TAGS"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p><a name="FILTER-REFRESH-TAGS" id= + "FILTER-REFRESH-TAGS"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{refresh-tags} # Kill automatic refresh tags (for dial-on-demand setups). </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <a name="FILTER-UNSOLICITED-POPUPS"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p><a name="FILTER-UNSOLICITED-POPUPS" id= + "FILTER-UNSOLICITED-POPUPS"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{unsolicited-popups} # Disable only unsolicited pop-up windows. Useful if your browser lacks this ability. </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <a name="FILTER-ALL-POPUPS"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p><a name="FILTER-ALL-POPUPS" id="FILTER-ALL-POPUPS"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{all-popups} # Kill all popups in JavaScript and HTML. Useful if your browser lacks this ability. </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <a name="FILTER-IMG-REORDER"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p><a name="FILTER-IMG-REORDER" id= + "FILTER-IMG-REORDER"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{img-reorder} # Reorder attributes in <img> tags to make the banners-by-* filters more effective. </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <a name="FILTER-BANNERS-BY-SIZE"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p><a name="FILTER-BANNERS-BY-SIZE" id= + "FILTER-BANNERS-BY-SIZE"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{banners-by-size} # Kill banners by size. </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <a name="FILTER-BANNERS-BY-LINK"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p><a name="FILTER-BANNERS-BY-LINK" id= + "FILTER-BANNERS-BY-LINK"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{banners-by-link} # Kill banners by their links to known clicktrackers. </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <a name="FILTER-WEBBUGS"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p><a name="FILTER-WEBBUGS" id="FILTER-WEBBUGS"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{webbugs} # Squish WebBugs (1x1 invisible GIFs used for user tracking). </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <a name="FILTER-TINY-TEXTFORMS"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p><a name="FILTER-TINY-TEXTFORMS" id= + "FILTER-TINY-TEXTFORMS"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{tiny-textforms} # Extend those tiny textareas up to 40x80 and kill the hard wrap. </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <a name="FILTER-JUMPING-WINDOWS"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p><a name="FILTER-JUMPING-WINDOWS" id= + "FILTER-JUMPING-WINDOWS"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{jumping-windows} # Prevent windows from resizing and moving themselves. </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <a name="FILTER-FRAMESET-BORDERS"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> -+filter{frameset-borders} # Give frames a border and make them resizable. -</pre> - </td> - </tr> - </table> + <p><a name="FILTER-FRAMESET-BORDERS" id= + "FILTER-FRAMESET-BORDERS"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> ++filter{frameset-borders} # Give frames a border and make them resizable. +</pre> + </td> + </tr> + </table> - <p> - <a name="FILTER-DEMORONIZER"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p><a name="FILTER-DEMORONIZER" id= + "FILTER-DEMORONIZER"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{demoronizer} # Fix MS's non-standard use of standard charsets. </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <a name="FILTER-SHOCKWAVE-FLASH"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p><a name="FILTER-SHOCKWAVE-FLASH" id= + "FILTER-SHOCKWAVE-FLASH"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{shockwave-flash} # Kill embedded Shockwave Flash objects. </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <a name="FILTER-QUICKTIME-KIOSKMODE"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p><a name="FILTER-QUICKTIME-KIOSKMODE" id= + "FILTER-QUICKTIME-KIOSKMODE"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{quicktime-kioskmode} # Make Quicktime movies saveable. </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <a name="FILTER-FUN"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p><a name="FILTER-FUN" id="FILTER-FUN"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{fun} # Text replacements for subversive browsing fun! </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <a name="FILTER-CRUDE-PARENTAL"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p><a name="FILTER-CRUDE-PARENTAL" id= + "FILTER-CRUDE-PARENTAL"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{crude-parental} # Crude parental filtering. Note that this filter doesn't work reliably. </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <a name="FILTER-IE-EXPLOITS"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p><a name="FILTER-IE-EXPLOITS" id= + "FILTER-IE-EXPLOITS"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{ie-exploits} # Disable some known Internet Explorer bug exploits. </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <a name="FILTER-SITE-SPECIFICS"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p><a name="FILTER-SITE-SPECIFICS" id= + "FILTER-SITE-SPECIFICS"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{site-specifics} # Cure for site-specific problems. Don't apply generally! </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <a name="FILTER-NO-PING"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p><a name="FILTER-NO-PING" id="FILTER-NO-PING"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{no-ping} # Removes non-standard ping attributes in <a> and <area> tags. </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <a name="FILTER-GOOGLE"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p><a name="FILTER-GOOGLE" id="FILTER-GOOGLE"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{google} # CSS-based block for Google text ads. Also removes a width limitation and the toolbar advertisement. </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <a name="FILTER-YAHOO"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p><a name="FILTER-YAHOO" id="FILTER-YAHOO"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{yahoo} # CSS-based block for Yahoo text ads. Also removes a width limitation. </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <a name="FILTER-MSN"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p><a name="FILTER-MSN" id="FILTER-MSN"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{msn} # CSS-based block for MSN text ads. Also removes tracking URLs and a width limitation. </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <a name="FILTER-BLOGSPOT"></a> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p><a name="FILTER-BLOGSPOT" id="FILTER-BLOGSPOT"></a></p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +filter{blogspot} # Cleans up some Blogspot blogs. Read the fine print before using this. </pre> + </td> + </tr> + </table> + </dd> + </dl> + </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="FORCE-TEXT-MODE" id= + "FORCE-TEXT-MODE">8.5.16. force-text-mode</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Force <span class="APPLICATION">Privoxy</span> to treat a + document as if it was in some kind of <span class= + "emphasis EMPHASIS c2">text</span> format.</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Declares a document as text, even if the <span class= + "QUOTE">"Content-Type:"</span> isn't detected as such.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Boolean.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>N/A</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>As explained <tt class="LITERAL"><a href= + "actions-file.html#FILTER">above</a></tt>, <span class= + "APPLICATION">Privoxy</span> tries to only filter files that + are in some kind of text format. The same restrictions apply to + <tt class="LITERAL"><a href= + "actions-file.html#CONTENT-TYPE-OVERWRITE">content-type-overwrite</a></tt>. + <tt class="LITERAL">force-text-mode</tt> declares a document as + text, without looking at the <span class= + "QUOTE">"Content-Type:"</span> first.</p> + + <div class="WARNING"> + <table class="WARNING" border="1" width="90%"> + <tr> + <td class="c6" align="center">Warning</td> + </tr> + + <tr> + <td align="left"> + <p>Think twice before activating this action. Filtering + binary data with regular expressions can cause file + damage.</p> </td> </tr> </table> - </dd> - </dl> - </div> - </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="FORCE-TEXT-MODE">8.5.16. force-text-mode</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Force <span class="APPLICATION">Privoxy</span> to treat a - document as if it was in some kind of <span class= - "emphasis"><i class="EMPHASIS">text</i></span> format. - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Declares a document as text, even if the <span class= - "QUOTE">"Content-Type:"</span> isn't detected as such. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Boolean. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - N/A - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - As explained <tt class="LITERAL"><a href= - "actions-file.html#FILTER">above</a></tt>, <span class= - "APPLICATION">Privoxy</span> tries to only filter files - that are in some kind of text format. The same restrictions - apply to <tt class="LITERAL"><a href= - "actions-file.html#CONTENT-TYPE-OVERWRITE">content-type-overwrite</a></tt>. - <tt class="LITERAL">force-text-mode</tt> declares a - document as text, without looking at the <span class= - "QUOTE">"Content-Type:"</span> first. - </p> - <div class="WARNING"> - <table class="WARNING" border="1" width="90%"> - <tr> - <td align="CENTER"> - <b>Warning</b> - </td> - </tr> - <tr> - <td align="LEFT"> - <p> - Think twice before activating this action. - Filtering binary data with regular expressions can - cause file damage. - </p> - </td> - </tr> - </table> - </div> - </dd> - <dt> - Example usage: - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + </dd> + + <dt>Example usage:</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +force-text-mode </pre> + </td> + </tr> + </table> + </dd> + </dl> + </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="FORWARD-OVERRIDE" id= + "FORWARD-OVERRIDE">8.5.17. forward-override</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Change the forwarding settings based on User-Agent or + request origin</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Overrules the forward directives in the configuration + file.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Multi-value.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <ul> + <li> + <p><span class="QUOTE">"forward ."</span> to use a direct + connection without any additional proxies.</p> + </li> + + <li> + <p><span class="QUOTE">"forward 127.0.0.1:8123"</span> to + use the HTTP proxy listening at 127.0.0.1 port 8123.</p> + </li> + + <li> + <p><span class="QUOTE">"forward-socks4a 127.0.0.1:9050 + ."</span> to use the socks4a proxy listening at 127.0.0.1 + port 9050. Replace <span class= + "QUOTE">"forward-socks4a"</span> with <span class= + "QUOTE">"forward-socks4"</span> to use a socks4 connection + (with local DNS resolution) instead, use <span class= + "QUOTE">"forward-socks5"</span> for socks5 connections + (with remote DNS resolution).</p> + </li> + + <li> + <p><span class="QUOTE">"forward-socks4a 127.0.0.1:9050 + proxy.example.org:8000"</span> to use the socks4a proxy + listening at 127.0.0.1 port 9050 to reach the HTTP proxy + listening at proxy.example.org port 8000. Replace + <span class="QUOTE">"forward-socks4a"</span> with + <span class="QUOTE">"forward-socks4"</span> to use a socks4 + connection (with local DNS resolution) instead, use + <span class="QUOTE">"forward-socks5"</span> for socks5 + connections (with remote DNS resolution).</p> + </li> + </ul> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>This action takes parameters similar to the <a href= + "config.html#FORWARDING">forward</a> directives in the + configuration file, but without the URL pattern. It can be used + as replacement, but normally it's only used in cases where + matching based on the request URL isn't sufficient.</p> + + <div class="WARNING"> + <table class="WARNING" border="1" width="90%"> + <tr> + <td class="c6" align="center">Warning</td> + </tr> + + <tr> + <td align="left"> + <p>Please read the description for the <a href= + "config.html#FORWARDING">forward</a> directives before + using this action. Forwarding to the wrong people will + reduce your privacy and increase the chances of + man-in-the-middle attacks.</p> + + <p>If the ports are missing or invalid, default values + will be used. This might change in the future and you + shouldn't rely on it. Otherwise incorrect syntax causes + Privoxy to exit.</p> + + <p>Use the <a href= + "http://config.privoxy.org/show-url-info" target= + "_top">show-url-info CGI page</a> to verify that your + forward settings do what you thought the do.</p> </td> </tr> </table> - </dd> - </dl> - </div> - </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="FORWARD-OVERRIDE">8.5.17. forward-override</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Change the forwarding settings based on User-Agent or - request origin - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Overrules the forward directives in the configuration file. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Multi-value. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <ul> - <li> - <p> - <span class="QUOTE">"forward ."</span> to use a direct - connection without any additional proxies. - </p> - </li> - <li> - <p> - <span class="QUOTE">"forward 127.0.0.1:8123"</span> to - use the HTTP proxy listening at 127.0.0.1 port 8123. - </p> - </li> - <li> - <p> - <span class="QUOTE">"forward-socks4a 127.0.0.1:9050 - ."</span> to use the socks4a proxy listening at - 127.0.0.1 port 9050. Replace <span class= - "QUOTE">"forward-socks4a"</span> with <span class= - "QUOTE">"forward-socks4"</span> to use a socks4 - connection (with local DNS resolution) instead, use - <span class="QUOTE">"forward-socks5"</span> for socks5 - connections (with remote DNS resolution). - </p> - </li> - <li> - <p> - <span class="QUOTE">"forward-socks4a 127.0.0.1:9050 - proxy.example.org:8000"</span> to use the socks4a proxy - listening at 127.0.0.1 port 9050 to reach the HTTP - proxy listening at proxy.example.org port 8000. Replace - <span class="QUOTE">"forward-socks4a"</span> with <span - class="QUOTE">"forward-socks4"</span> to use a socks4 - connection (with local DNS resolution) instead, use - <span class="QUOTE">"forward-socks5"</span> for socks5 - connections (with remote DNS resolution). - </p> - </li> - </ul> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - This action takes parameters similar to the <a href= - "config.html#FORWARDING">forward</a> directives in the - configuration file, but without the URL pattern. It can be - used as replacement, but normally it's only used in cases - where matching based on the request URL isn't sufficient. - </p> - <div class="WARNING"> - <table class="WARNING" border="1" width="90%"> - <tr> - <td align="CENTER"> - <b>Warning</b> - </td> - </tr> - <tr> - <td align="LEFT"> - <p> - Please read the description for the <a href= - "config.html#FORWARDING">forward</a> directives - before using this action. Forwarding to the wrong - people will reduce your privacy and increase the - chances of man-in-the-middle attacks. - </p> - <p> - If the ports are missing or invalid, default values - will be used. This might change in the future and - you shouldn't rely on it. Otherwise incorrect - syntax causes Privoxy to exit. - </p> - <p> - Use the <a href= - "http://config.privoxy.org/show-url-info" target= - "_top">show-url-info CGI page</a> to verify that - your forward settings do what you thought the do. - </p> - </td> - </tr> - </table> - </div> - </dd> - <dt> - Example usage: - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + </dd> + + <dt>Example usage:</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> # Always use direct connections for requests previously tagged as # <span class="QUOTE">"User-Agent: fetch libfetch/2.0"</span> and make sure # resuming downloads continues to work. @@ -3208,193 +2743,162 @@ problem-host.example.com } TAG:^User-Agent: fetch libfetch/2\.0$ -</pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> - </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="HANDLE-AS-EMPTY-DOCUMENT">8.5.18. - handle-as-empty-document</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Mark URLs that should be replaced by empty documents <span - class="emphasis"><i class="EMPHASIS">if they get - blocked</i></span> - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - This action alone doesn't do anything noticeable. It just - marks URLs. If the <tt class="LITERAL"><a href= - "actions-file.html#BLOCK">block</a></tt> action <span - class="emphasis"><i class="EMPHASIS">also - applies</i></span>, the presence or absence of this mark - decides whether an HTML <span class= - "QUOTE">"BLOCKED"</span> page, or an empty document will be - sent to the client as a substitute for the blocked content. - The <span class="emphasis"><i class= - "EMPHASIS">empty</i></span> document isn't literally empty, - but actually contains a single space. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Boolean. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - N/A - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - Some browsers complain about syntax errors if JavaScript - documents are blocked with <span class= - "APPLICATION">Privoxy's</span> default HTML page; this - option can be used to silence them. And of course this - action can also be used to eliminate the <span class= - "APPLICATION">Privoxy</span> BLOCKED message in frames. - </p> - <p> - The content type for the empty document can be specified - with <tt class="LITERAL"><a href= - "actions-file.html#CONTENT-TYPE-OVERWRITE">content-type-overwrite{}</a></tt>, - but usually this isn't necessary. - </p> - </dd> - <dt> - Example usage: - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> -# Block all documents on example.org that end with ".js", -# but send an empty document instead of the usual HTML message. -{+block{Blocked JavaScript} +handle-as-empty-document} -example.org/.*\.js$ +</pre> + </td> + </tr> + </table> + </dd> + </dl> + </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="HANDLE-AS-EMPTY-DOCUMENT" id= + "HANDLE-AS-EMPTY-DOCUMENT">8.5.18. handle-as-empty-document</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Mark URLs that should be replaced by empty documents + <span class="emphasis EMPHASIS c2">if they get + blocked</span></p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>This action alone doesn't do anything noticeable. It just + marks URLs. If the <tt class="LITERAL"><a href= + "actions-file.html#BLOCK">block</a></tt> action <span class= + "emphasis EMPHASIS c2">also applies</span>, the presence or + absence of this mark decides whether an HTML <span class= + "QUOTE">"BLOCKED"</span> page, or an empty document will be + sent to the client as a substitute for the blocked content. The + <span class="emphasis EMPHASIS c2">empty</span> document isn't + literally empty, but actually contains a single space.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Boolean.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>N/A</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>Some browsers complain about syntax errors if JavaScript + documents are blocked with <span class= + "APPLICATION">Privoxy's</span> default HTML page; this option + can be used to silence them. And of course this action can also + be used to eliminate the <span class= + "APPLICATION">Privoxy</span> BLOCKED message in frames.</p> + + <p>The content type for the empty document can be specified + with <tt class="LITERAL"><a href= + "actions-file.html#CONTENT-TYPE-OVERWRITE">content-type-overwrite{}</a></tt>, + but usually this isn't necessary.</p> + </dd> + + <dt>Example usage:</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +# Block all documents on example.org that end with ".js", +# but send an empty document instead of the usual HTML message. +{+block{Blocked JavaScript} +handle-as-empty-document} +example.org/.*\.js$ + +</pre> + </td> + </tr> + </table> + </dd> + </dl> + </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="HANDLE-AS-IMAGE" id= + "HANDLE-AS-IMAGE">8.5.19. handle-as-image</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Mark URLs as belonging to images (so they'll be replaced by + images <span class="emphasis EMPHASIS c2">if they do get + blocked</span>, rather than HTML pages)</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>This action alone doesn't do anything noticeable. It just + marks URLs as images. If the <tt class="LITERAL"><a href= + "actions-file.html#BLOCK">block</a></tt> action <span class= + "emphasis EMPHASIS c2">also applies</span>, the presence or + absence of this mark decides whether an HTML <span class= + "QUOTE">"blocked"</span> page, or a replacement image (as + determined by the <tt class="LITERAL"><a href= + "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker</a></tt> + action) will be sent to the client as a substitute for the + blocked content.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Boolean.</p> + </dd> + + <dt>Parameter:</dt> -</pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> - </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="HANDLE-AS-IMAGE">8.5.19. handle-as-image</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Mark URLs as belonging to images (so they'll be replaced by - images <span class="emphasis"><i class="EMPHASIS">if they - do get blocked</i></span>, rather than HTML pages) - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - This action alone doesn't do anything noticeable. It just - marks URLs as images. If the <tt class="LITERAL"><a href= - "actions-file.html#BLOCK">block</a></tt> action <span - class="emphasis"><i class="EMPHASIS">also - applies</i></span>, the presence or absence of this mark - decides whether an HTML <span class= - "QUOTE">"blocked"</span> page, or a replacement image (as - determined by the <tt class="LITERAL"><a href= - "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker</a></tt> - action) will be sent to the client as a substitute for the - blocked content. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Boolean. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - N/A - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - The below generic example section is actually part of <tt - class="FILENAME">default.action</tt>. It marks all URLs - with well-known image file name extensions as images and - should be left intact. - </p> - <p> - Users will probably only want to use the handle-as-image - action in conjunction with <tt class="LITERAL"><a href= - "actions-file.html#BLOCK">block</a></tt>, to block sources - of banners, whose URLs don't reflect the file type, like in - the second example section. - </p> - <p> - Note that you cannot treat HTML pages as images in most - cases. For instance, (in-line) ad frames require an HTML - page to be sent, or they won't display properly. Forcing - <tt class="LITERAL">handle-as-image</tt> in this situation - will not replace the ad frame with an image, but lead to - error messages. - </p> - </dd> - <dt> - Example usage (sections): - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <dd> + <p>N/A</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>The below generic example section is actually part of + <tt class="FILENAME">default.action</tt>. It marks all URLs + with well-known image file name extensions as images and should + be left intact.</p> + + <p>Users will probably only want to use the handle-as-image + action in conjunction with <tt class="LITERAL"><a href= + "actions-file.html#BLOCK">block</a></tt>, to block sources of + banners, whose URLs don't reflect the file type, like in the + second example section.</p> + + <p>Note that you cannot treat HTML pages as images in most + cases. For instance, (in-line) ad frames require an HTML page + to be sent, or they won't display properly. Forcing <tt class= + "LITERAL">handle-as-image</tt> in this situation will not + replace the ad frame with an image, but lead to error + messages.</p> + </dd> + + <dt>Example usage (sections):</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> # Generic image extensions: # {+handle-as-image} @@ -3406,847 +2910,710 @@ example.org/.*\.js$ {+block{Nasty banners.} +handle-as-image} nasty-banner-server.example.com/junk.cgi\?output=trash </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="HIDE-ACCEPT-LANGUAGE">8.5.20. hide-accept-language</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Pretend to use different language settings. - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Deletes or replaces the <span class= - "QUOTE">"Accept-Language:"</span> HTTP header in client - requests. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Parameterized. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - Keyword: <span class="QUOTE">"block"</span>, or any user - defined value. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - Faking the browser's language settings can be useful to - make a foreign User-Agent set with <tt class="LITERAL"><a - href= - "actions-file.html#HIDE-USER-AGENT">hide-user-agent</a></tt> - more believable. - </p> - <p> - However some sites with content in different languages - check the <span class="QUOTE">"Accept-Language:"</span> to - decide which one to take by default. Sometimes it isn't - possible to later switch to another language without - changing the <span class="QUOTE">"Accept-Language:"</span> - header first. - </p> - <p> - Therefore it's a good idea to either only change the <span - class="QUOTE">"Accept-Language:"</span> header to languages - you understand, or to languages that aren't wide spread. - </p> - <p> - Before setting the <span class= - "QUOTE">"Accept-Language:"</span> header to a rare - language, you should consider that it helps to make your - requests unique and thus easier to trace. If you don't plan - to change this header frequently, you should stick to a - common language. - </p> - </dd> - <dt> - Example usage (section): - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="HIDE-ACCEPT-LANGUAGE" id= + "HIDE-ACCEPT-LANGUAGE">8.5.20. hide-accept-language</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Pretend to use different language settings.</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Deletes or replaces the <span class= + "QUOTE">"Accept-Language:"</span> HTTP header in client + requests.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Parameterized.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>Keyword: <span class="QUOTE">"block"</span>, or any user + defined value.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>Faking the browser's language settings can be useful to make + a foreign User-Agent set with <tt class="LITERAL"><a href= + "actions-file.html#HIDE-USER-AGENT">hide-user-agent</a></tt> + more believable.</p> + + <p>However some sites with content in different languages check + the <span class="QUOTE">"Accept-Language:"</span> to decide + which one to take by default. Sometimes it isn't possible to + later switch to another language without changing the + <span class="QUOTE">"Accept-Language:"</span> header first.</p> + + <p>Therefore it's a good idea to either only change the + <span class="QUOTE">"Accept-Language:"</span> header to + languages you understand, or to languages that aren't wide + spread.</p> + + <p>Before setting the <span class= + "QUOTE">"Accept-Language:"</span> header to a rare language, + you should consider that it helps to make your requests unique + and thus easier to trace. If you don't plan to change this + header frequently, you should stick to a common language.</p> + </dd> + + <dt>Example usage (section):</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> # Pretend to use Canadian language settings. {+hide-accept-language{en-ca} \ +hide-user-agent{Mozilla/5.0 (X11; U; OpenBSD i386; en-CA; rv:1.8.0.4) Gecko/20060628 Firefox/1.5.0.4} \ } / </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="HIDE-CONTENT-DISPOSITION">8.5.21. - hide-content-disposition</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Prevent download menus for content you prefer to view - inside the browser. - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Deletes or replaces the <span class= - "QUOTE">"Content-Disposition:"</span> HTTP header set by - some servers. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Parameterized. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - Keyword: <span class="QUOTE">"block"</span>, or any user - defined value. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - Some servers set the <span class= - "QUOTE">"Content-Disposition:"</span> HTTP header for - documents they assume you want to save locally before - viewing them. The <span class= - "QUOTE">"Content-Disposition:"</span> header contains the - file name the browser is supposed to use by default. - </p> - <p> - In most browsers that understand this header, it makes it - impossible to <span class="emphasis"><i class= - "EMPHASIS">just view</i></span> the document, without - downloading it first, even if it's just a simple text file - or an image. - </p> - <p> - Removing the <span class= - "QUOTE">"Content-Disposition:"</span> header helps to - prevent this annoyance, but some browsers additionally - check the <span class="QUOTE">"Content-Type:"</span> - header, before they decide if they can display a document - without saving it first. In these cases, you have to change - this header as well, before the browser stops displaying - download menus. - </p> - <p> - It is also possible to change the server's file name - suggestion to another one, but in most cases it isn't worth - the time to set it up. - </p> - <p> - This action will probably be removed in the future, use - server-header filters instead. - </p> - </dd> - <dt> - Example usage: - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="HIDE-CONTENT-DISPOSITION" id= + "HIDE-CONTENT-DISPOSITION">8.5.21. hide-content-disposition</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Prevent download menus for content you prefer to view inside + the browser.</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Deletes or replaces the <span class= + "QUOTE">"Content-Disposition:"</span> HTTP header set by some + servers.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Parameterized.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>Keyword: <span class="QUOTE">"block"</span>, or any user + defined value.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>Some servers set the <span class= + "QUOTE">"Content-Disposition:"</span> HTTP header for documents + they assume you want to save locally before viewing them. The + <span class="QUOTE">"Content-Disposition:"</span> header + contains the file name the browser is supposed to use by + default.</p> + + <p>In most browsers that understand this header, it makes it + impossible to <span class="emphasis EMPHASIS c2">just + view</span> the document, without downloading it first, even if + it's just a simple text file or an image.</p> + + <p>Removing the <span class= + "QUOTE">"Content-Disposition:"</span> header helps to prevent + this annoyance, but some browsers additionally check the + <span class="QUOTE">"Content-Type:"</span> header, before they + decide if they can display a document without saving it first. + In these cases, you have to change this header as well, before + the browser stops displaying download menus.</p> + + <p>It is also possible to change the server's file name + suggestion to another one, but in most cases it isn't worth the + time to set it up.</p> + + <p>This action will probably be removed in the future, use + server-header filters instead.</p> + </dd> + + <dt>Example usage:</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> # Disarm the download link in Sourceforge's patch tracker { -filter \ +content-type-overwrite{text/plain}\ +hide-content-disposition{block} } .sourceforge.net/tracker/download\.php </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="HIDE-IF-MODIFIED-SINCE">8.5.22. - hide-if-modified-since</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Prevent yet another way to track the user's steps between - sessions. - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Deletes the <span class="QUOTE">"If-Modified-Since:"</span> - HTTP client header or modifies its value. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Parameterized. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - Keyword: <span class="QUOTE">"block"</span>, or a user - defined value that specifies a range of hours. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - Removing this header is useful for filter testing, where - you want to force a real reload instead of getting status - code <span class="QUOTE">"304"</span>, which would cause - the browser to use a cached copy of the page. - </p> - <p> - Instead of removing the header, <tt class= - "LITERAL">hide-if-modified-since</tt> can also add or - subtract a random amount of time to/from the header's - value. You specify a range of minutes where the random - factor should be chosen from and <span class= - "APPLICATION">Privoxy</span> does the rest. A negative - value means subtracting, a positive value adding. - </p> - <p> - Randomizing the value of the <span class= - "QUOTE">"If-Modified-Since:"</span> makes it less likely - that the server can use the time as a cookie replacement, - but you will run into caching problems if the random range - is too high. - </p> - <p> - It is a good idea to only use a small negative value and - let <tt class="LITERAL"><a href= - "actions-file.html#OVERWRITE-LAST-MODIFIED">overwrite-last-modified</a></tt> - handle the greater changes. - </p> - <p> - It is also recommended to use this action together with <tt - class="LITERAL"><a href= - "actions-file.html#CRUNCH-IF-NONE-MATCH">crunch-if-none-match</a></tt>, - otherwise it's more or less pointless. - </p> - </dd> - <dt> - Example usage (section): - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="HIDE-IF-MODIFIED-SINCE" id= + "HIDE-IF-MODIFIED-SINCE">8.5.22. hide-if-modified-since</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Prevent yet another way to track the user's steps between + sessions.</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Deletes the <span class="QUOTE">"If-Modified-Since:"</span> + HTTP client header or modifies its value.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Parameterized.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>Keyword: <span class="QUOTE">"block"</span>, or a user + defined value that specifies a range of hours.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>Removing this header is useful for filter testing, where you + want to force a real reload instead of getting status code + <span class="QUOTE">"304"</span>, which would cause the browser + to use a cached copy of the page.</p> + + <p>Instead of removing the header, <tt class= + "LITERAL">hide-if-modified-since</tt> can also add or subtract + a random amount of time to/from the header's value. You specify + a range of minutes where the random factor should be chosen + from and <span class="APPLICATION">Privoxy</span> does the + rest. A negative value means subtracting, a positive value + adding.</p> + + <p>Randomizing the value of the <span class= + "QUOTE">"If-Modified-Since:"</span> makes it less likely that + the server can use the time as a cookie replacement, but you + will run into caching problems if the random range is too + high.</p> + + <p>It is a good idea to only use a small negative value and let + <tt class="LITERAL"><a href= + "actions-file.html#OVERWRITE-LAST-MODIFIED">overwrite-last-modified</a></tt> + handle the greater changes.</p> + + <p>It is also recommended to use this action together with + <tt class="LITERAL"><a href= + "actions-file.html#CRUNCH-IF-NONE-MATCH">crunch-if-none-match</a></tt>, + otherwise it's more or less pointless.</p> + </dd> + + <dt>Example usage (section):</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> # Let the browser revalidate but make tracking based on the time less likely. {+hide-if-modified-since{-60} \ +overwrite-last-modified{randomize} \ +crunch-if-none-match} / </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="HIDE-FROM-HEADER">8.5.23. hide-from-header</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Keep your (old and ill) browser from telling web servers - your email address - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Deletes any existing <span class="QUOTE">"From:"</span> - HTTP header, or replaces it with the specified string. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Parameterized. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - Keyword: <span class="QUOTE">"block"</span>, or any user - defined value. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - The keyword <span class="QUOTE">"block"</span> will - completely remove the header (not to be confused with the - <tt class="LITERAL"><a href= - "actions-file.html#BLOCK">block</a></tt> action). - </p> - <p> - Alternately, you can specify any value you prefer to be - sent to the web server. If you do, it is a matter of - fairness not to use any address that is actually used by a - real person. - </p> - <p> - This action is rarely needed, as modern web browsers don't - send <span class="QUOTE">"From:"</span> headers anymore. - </p> - </dd> - <dt> - Example usage: - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="HIDE-FROM-HEADER" id= + "HIDE-FROM-HEADER">8.5.23. hide-from-header</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Keep your (old and ill) browser from telling web servers + your email address</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Deletes any existing <span class="QUOTE">"From:"</span> HTTP + header, or replaces it with the specified string.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Parameterized.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>Keyword: <span class="QUOTE">"block"</span>, or any user + defined value.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>The keyword <span class="QUOTE">"block"</span> will + completely remove the header (not to be confused with the + <tt class="LITERAL"><a href= + "actions-file.html#BLOCK">block</a></tt> action).</p> + + <p>Alternately, you can specify any value you prefer to be sent + to the web server. If you do, it is a matter of fairness not to + use any address that is actually used by a real person.</p> + + <p>This action is rarely needed, as modern web browsers don't + send <span class="QUOTE">"From:"</span> headers anymore.</p> + </dd> + + <dt>Example usage:</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +hide-from-header{block} </pre> - </td> - </tr> - </table> - or - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table>or + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +hide-from-header{spam-me-senseless@sittingduck.example.com} </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> + </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="HIDE-REFERRER" id="HIDE-REFERRER">8.5.24. + hide-referrer</a></h4><a name="HIDE-REFERER" id="HIDE-REFERER"></a> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Conceal which link you followed to get to a particular + site</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Deletes the <span class="QUOTE">"Referer:"</span> (sic) HTTP + header from the client request, or replaces it with a forged + one.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Parameterized.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <ul> + <li> + <p><span class="QUOTE">"conditional-block"</span> to delete + the header completely if the host has changed.</p> + </li> + + <li> + <p><span class="QUOTE">"conditional-forge"</span> to forge + the header if the host has changed.</p> + </li> + + <li> + <p><span class="QUOTE">"block"</span> to delete the header + unconditionally.</p> + </li> + + <li> + <p><span class="QUOTE">"forge"</span> to pretend to be + coming from the homepage of the server we are talking + to.</p> + </li> + + <li> + <p>Any other string to set a user defined referrer.</p> + </li> + </ul> + </dd> + + <dt>Notes:</dt> + + <dd> + <p><tt class="LITERAL">conditional-block</tt> is the only + parameter, that isn't easily detected in the server's log file. + If it blocks the referrer, the request will look like the + visitor used a bookmark or typed in the address directly.</p> + + <p>Leaving the referrer unmodified for requests on the same + host allows the server owner to see the visitor's <span class= + "QUOTE">"click path"</span>, but in most cases she could also + get that information by comparing other parts of the log file: + for example the User-Agent if it isn't a very common one, or + the user's IP address if it doesn't change between different + requests.</p> + + <p>Always blocking the referrer, or using a custom one, can + lead to failures on servers that check the referrer before they + answer any requests, in an attempt to prevent their content + from being embedded or linked to elsewhere.</p> + + <p>Both <tt class="LITERAL">conditional-block</tt> and + <tt class="LITERAL">forge</tt> will work with referrer checks, + as long as content and valid referring page are on the same + host. Most of the time that's the case.</p> + + <p><tt class="LITERAL">hide-referer</tt> is an alternate + spelling of <tt class="LITERAL">hide-referrer</tt> and the two + can be can be freely substituted with each other. (<span class= + "QUOTE">"referrer"</span> is the correct English spelling, + however the HTTP specification has a bug - it requires it to be + spelled as <span class="QUOTE">"referer"</span>.)</p> + </dd> + + <dt>Example usage:</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> ++hide-referrer{forge} +</pre> + </td> + </tr> + </table>or + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> ++hide-referrer{http://www.yahoo.com/} +</pre> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="HIDE-REFERRER">8.5.24. hide-referrer</a> - </h4> - <a name="HIDE-REFERER"></a> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Conceal which link you followed to get to a particular site - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Deletes the <span class="QUOTE">"Referer:"</span> (sic) - HTTP header from the client request, or replaces it with a - forged one. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Parameterized. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <ul> - <li> - <p> - <span class="QUOTE">"conditional-block"</span> to - delete the header completely if the host has changed. - </p> - </li> - <li> - <p> - <span class="QUOTE">"conditional-forge"</span> to forge - the header if the host has changed. - </p> - </li> - <li> - <p> - <span class="QUOTE">"block"</span> to delete the header - unconditionally. - </p> - </li> - <li> - <p> - <span class="QUOTE">"forge"</span> to pretend to be - coming from the homepage of the server we are talking - to. - </p> - </li> - <li> - <p> - Any other string to set a user defined referrer. - </p> - </li> - </ul> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - <tt class="LITERAL">conditional-block</tt> is the only - parameter, that isn't easily detected in the server's log - file. If it blocks the referrer, the request will look like - the visitor used a bookmark or typed in the address - directly. - </p> - <p> - Leaving the referrer unmodified for requests on the same - host allows the server owner to see the visitor's <span - class="QUOTE">"click path"</span>, but in most cases she - could also get that information by comparing other parts of - the log file: for example the User-Agent if it isn't a very - common one, or the user's IP address if it doesn't change - between different requests. - </p> - <p> - Always blocking the referrer, or using a custom one, can - lead to failures on servers that check the referrer before - they answer any requests, in an attempt to prevent their - content from being embedded or linked to elsewhere. - </p> - <p> - Both <tt class="LITERAL">conditional-block</tt> and <tt - class="LITERAL">forge</tt> will work with referrer checks, - as long as content and valid referring page are on the same - host. Most of the time that's the case. - </p> - <p> - <tt class="LITERAL">hide-referer</tt> is an alternate - spelling of <tt class="LITERAL">hide-referrer</tt> and the - two can be can be freely substituted with each other. - (<span class="QUOTE">"referrer"</span> is the correct - English spelling, however the HTTP specification has a bug - - it requires it to be spelled as <span class= - "QUOTE">"referer"</span>.) - </p> - </dd> - <dt> - Example usage: - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="HIDE-USER-AGENT" id= + "HIDE-USER-AGENT">8.5.25. hide-user-agent</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Try to conceal your type of browser and client operating + system</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Replaces the value of the <span class= + "QUOTE">"User-Agent:"</span> HTTP header in client requests + with the specified value.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Parameterized.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>Any user-defined string.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <div class="WARNING"> + <table class="WARNING" border="1" width="90%"> <tr> - <td> -<pre class="SCREEN"> -+hide-referrer{forge} -</pre> - </td> + <td class="c6" align="center">Warning</td> </tr> - </table> - or - <table border="0" bgcolor="#E0E0E0" width="90%"> + <tr> - <td> -<pre class="SCREEN"> -+hide-referrer{http://www.yahoo.com/} -</pre> + <td align="left"> + <p>This can lead to problems on web sites that depend + on looking at this header in order to customize their + content for different browsers (which, by the way, is + <span class="emphasis EMPHASIS c2">NOT</span> the right + thing to do: good web sites work + browser-independently).</p> </td> </tr> </table> - </dd> - </dl> - </div> - </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="HIDE-USER-AGENT">8.5.25. hide-user-agent</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Try to conceal your type of browser and client operating - system - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Replaces the value of the <span class= - "QUOTE">"User-Agent:"</span> HTTP header in client requests - with the specified value. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Parameterized. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - Any user-defined string. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <div class="WARNING"> - <table class="WARNING" border="1" width="90%"> - <tr> - <td align="CENTER"> - <b>Warning</b> - </td> - </tr> - <tr> - <td align="LEFT"> - <p> - This can lead to problems on web sites that depend - on looking at this header in order to customize - their content for different browsers (which, by the - way, is <span class="emphasis"><i class= - "EMPHASIS">NOT</i></span> the right thing to do: - good web sites work browser-independently). - </p> - </td> - </tr> - </table> - </div> - <p> - Using this action in multi-user setups or wherever - different types of browsers will access the same <span - class="APPLICATION">Privoxy</span> is <span class= - "emphasis"><i class="EMPHASIS">not recommended</i></span>. - In single-user, single-browser setups, you might use it to - delete your OS version information from the headers, - because it is an invitation to exploit known bugs for your - OS. It is also occasionally useful to forge this in order - to access sites that won't let you in otherwise (though - there may be a good reason in some cases). - </p> - <p> - More information on known user-agent strings can be found - at <a href="http://www.user-agents.org/" target= - "_top">http://www.user-agents.org/</a> and <a href= - "http://en.wikipedia.org/wiki/User_agent" target= - "_top">http://en.wikipedia.org/wiki/User_agent</a>. - </p> - </dd> - <dt> - Example usage: - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <p>Using this action in multi-user setups or wherever different + types of browsers will access the same <span class= + "APPLICATION">Privoxy</span> is <span class= + "emphasis EMPHASIS c2">not recommended</span>. In single-user, + single-browser setups, you might use it to delete your OS + version information from the headers, because it is an + invitation to exploit known bugs for your OS. It is also + occasionally useful to forge this in order to access sites that + won't let you in otherwise (though there may be a good reason + in some cases).</p> + + <p>More information on known user-agent strings can be found at + <a href="http://www.user-agents.org/" target= + "_top">http://www.user-agents.org/</a> and <a href= + "http://en.wikipedia.org/wiki/User_agent" target= + "_top">http://en.wikipedia.org/wiki/User_agent</a>.</p> + </dd> + + <dt>Example usage:</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +hide-user-agent{Netscape 6.1 (X11; I; Linux 2.4.18 i686)} </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="LIMIT-CONNECT">8.5.26. limit-connect</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Prevent abuse of <span class="APPLICATION">Privoxy</span> - as a TCP proxy relay or disable SSL for untrusted sites - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Specifies to which ports HTTP CONNECT requests are - allowable. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Parameterized. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - A comma-separated list of ports or port ranges (the latter - using dashes, with the minimum defaulting to 0 and the - maximum to 65K). - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - By default, i.e. if no <tt class= - "LITERAL">limit-connect</tt> action applies, <span class= - "APPLICATION">Privoxy</span> allows HTTP CONNECT requests - to all ports. Use <tt class="LITERAL">limit-connect</tt> if - fine-grained control is desired for some or all - destinations. - </p> - <p> - The CONNECT methods exists in HTTP to allow access to - secure websites (<span class="QUOTE">"https://"</span> - URLs) through proxies. It works very simply: the proxy - connects to the server on the specified port, and then - short-circuits its connections to the client and to the - remote server. This means CONNECT-enabled proxies can be - used as TCP relays very easily. - </p> - <p> - <span class="APPLICATION">Privoxy</span> relays HTTPS - traffic without seeing the decoded content. Websites can - leverage this limitation to circumvent <span class= - "APPLICATION">Privoxy</span>'s filters. By specifying an - invalid port range you can disable HTTPS entirely. - </p> - </dd> - <dt> - Example usages: - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="LIMIT-CONNECT" id="LIMIT-CONNECT">8.5.26. + limit-connect</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Prevent abuse of <span class="APPLICATION">Privoxy</span> as + a TCP proxy relay or disable SSL for untrusted sites</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Specifies to which ports HTTP CONNECT requests are + allowable.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Parameterized.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>A comma-separated list of ports or port ranges (the latter + using dashes, with the minimum defaulting to 0 and the maximum + to 65K).</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>By default, i.e. if no <tt class= + "LITERAL">limit-connect</tt> action applies, <span class= + "APPLICATION">Privoxy</span> allows HTTP CONNECT requests to + all ports. Use <tt class="LITERAL">limit-connect</tt> if + fine-grained control is desired for some or all + destinations.</p> + + <p>The CONNECT methods exists in HTTP to allow access to secure + websites (<span class="QUOTE">"https://"</span> URLs) through + proxies. It works very simply: the proxy connects to the server + on the specified port, and then short-circuits its connections + to the client and to the remote server. This means + CONNECT-enabled proxies can be used as TCP relays very + easily.</p> + + <p><span class="APPLICATION">Privoxy</span> relays HTTPS + traffic without seeing the decoded content. Websites can + leverage this limitation to circumvent <span class= + "APPLICATION">Privoxy</span>'s filters. By specifying an + invalid port range you can disable HTTPS entirely.</p> + </dd> + + <dt>Example usages:</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +limit-connect{443} # Port 443 is OK. +limit-connect{80,443} # Ports 80 and 443 are OK. +limit-connect{-3, 7, 20-100, 500-} # Ports less than 3, 7, 20 to 100 and above 500 are OK. +limit-connect{-} # All ports are OK +limit-connect{,} # No HTTPS/SSL traffic is allowed </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="PREVENT-COMPRESSION">8.5.27. prevent-compression</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Ensure that servers send the content uncompressed, so it - can be passed through <tt class="LITERAL"><a href= - "actions-file.html#FILTER">filter</a></tt>s. - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Removes the Accept-Encoding header which can be used to ask - for compressed transfer. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Boolean. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - N/A - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - More and more websites send their content compressed by - default, which is generally a good idea and saves - bandwidth. But the <tt class="LITERAL"><a href= - "actions-file.html#FILTER">filter</a></tt> and <tt class= - "LITERAL"><a href= - "actions-file.html#DEANIMATE-GIFS">deanimate-gifs</a></tt> - actions need access to the uncompressed data. - </p> - <p> - When compiled with zlib support (available since <span - class="APPLICATION">Privoxy</span> 3.0.7), content that - should be filtered is decompressed on-the-fly and you don't - have to worry about this action. If you are using an older - <span class="APPLICATION">Privoxy</span> version, or one - that hasn't been compiled with zlib support, this action - can be used to convince the server to send the content - uncompressed. - </p> - <p> - Most text-based instances compress very well, the size is - seldom decreased by less than 50%, for markup-heavy - instances like news feeds saving more than 90% of the - original size isn't unusual. - </p> - <p> - Not using compression will therefore slow down the - transfer, and you should only enable this action if you - really need it. As of <span class= - "APPLICATION">Privoxy</span> 3.0.7 it's disabled in all - predefined action settings. - </p> - <p> - Note that some (rare) ill-configured sites don't handle - requests for uncompressed documents correctly. Broken PHP - applications tend to send an empty document body, some IIS - versions only send the beginning of the content. If you - enable <tt class="LITERAL">prevent-compression</tt> per - default, you might want to add exceptions for those sites. - See the example for how to do that. - </p> - </dd> - <dt> - Example usage (sections): - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="PREVENT-COMPRESSION" id= + "PREVENT-COMPRESSION">8.5.27. prevent-compression</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Ensure that servers send the content uncompressed, so it can + be passed through <tt class="LITERAL"><a href= + "actions-file.html#FILTER">filter</a></tt>s.</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Removes the Accept-Encoding header which can be used to ask + for compressed transfer.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Boolean.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>N/A</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>More and more websites send their content compressed by + default, which is generally a good idea and saves bandwidth. + But the <tt class="LITERAL"><a href= + "actions-file.html#FILTER">filter</a></tt> and <tt class= + "LITERAL"><a href= + "actions-file.html#DEANIMATE-GIFS">deanimate-gifs</a></tt> + actions need access to the uncompressed data.</p> + + <p>When compiled with zlib support (available since + <span class="APPLICATION">Privoxy</span> 3.0.7), content that + should be filtered is decompressed on-the-fly and you don't + have to worry about this action. If you are using an older + <span class="APPLICATION">Privoxy</span> version, or one that + hasn't been compiled with zlib support, this action can be used + to convince the server to send the content uncompressed.</p> + + <p>Most text-based instances compress very well, the size is + seldom decreased by less than 50%, for markup-heavy instances + like news feeds saving more than 90% of the original size isn't + unusual.</p> + + <p>Not using compression will therefore slow down the transfer, + and you should only enable this action if you really need it. + As of <span class="APPLICATION">Privoxy</span> 3.0.7 it's + disabled in all predefined action settings.</p> + + <p>Note that some (rare) ill-configured sites don't handle + requests for uncompressed documents correctly. Broken PHP + applications tend to send an empty document body, some IIS + versions only send the beginning of the content. If you enable + <tt class="LITERAL">prevent-compression</tt> per default, you + might want to add exceptions for those sites. See the example + for how to do that.</p> + </dd> + + <dt>Example usage (sections):</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> # Selectively turn off compression, and enable a filter # { +filter{tiny-textforms} +prevent-compression } @@ -4265,316 +3632,268 @@ nasty-banner-server.example.com/junk.cgi\?output=trash { -prevent-compression } .compusa.com/ </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="OVERWRITE-LAST-MODIFIED">8.5.28. - overwrite-last-modified</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Prevent yet another way to track the user's steps between - sessions. - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Deletes the <span class="QUOTE">"Last-Modified:"</span> - HTTP server header or modifies its value. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Parameterized. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - One of the keywords: <span class="QUOTE">"block"</span>, - <span class="QUOTE">"reset-to-request-time"</span> and - <span class="QUOTE">"randomize"</span> - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - Removing the <span class="QUOTE">"Last-Modified:"</span> - header is useful for filter testing, where you want to - force a real reload instead of getting status code <span - class="QUOTE">"304"</span>, which would cause the browser - to reuse the old version of the page. - </p> - <p> - The <span class="QUOTE">"randomize"</span> option - overwrites the value of the <span class= - "QUOTE">"Last-Modified:"</span> header with a randomly - chosen time between the original value and the current - time. In theory the server could send each document with a - different <span class="QUOTE">"Last-Modified:"</span> - header to track visits without using cookies. <span class= - "QUOTE">"Randomize"</span> makes it impossible and the - browser can still revalidate cached documents. - </p> - <p> - <span class="QUOTE">"reset-to-request-time"</span> - overwrites the value of the <span class= - "QUOTE">"Last-Modified:"</span> header with the current - time. You could use this option together with <tt class= - "LITERAL"><a href= - "actions-file.html#HIDE-IF-MODIFIED-SINCE">hide-if-modified-since</a></tt> - to further customize your random range. - </p> - <p> - The preferred parameter here is <span class= - "QUOTE">"randomize"</span>. It is safe to use, as long as - the time settings are more or less correct. If the server - sets the <span class="QUOTE">"Last-Modified:"</span> header - to the time of the request, the random range becomes zero - and the value stays the same. Therefore you should later - randomize it a second time with <tt class="LITERAL"><a - href= - "actions-file.html#HIDE-IF-MODIFIED-SINCE">hided-if-modified-since</a></tt>, - just to be sure. - </p> - <p> - It is also recommended to use this action together with <tt - class="LITERAL"><a href= - "actions-file.html#CRUNCH-IF-NONE-MATCH">crunch-if-none-match</a></tt>. - </p> - </dd> - <dt> - Example usage: - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="OVERWRITE-LAST-MODIFIED" id= + "OVERWRITE-LAST-MODIFIED">8.5.28. overwrite-last-modified</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Prevent yet another way to track the user's steps between + sessions.</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Deletes the <span class="QUOTE">"Last-Modified:"</span> HTTP + server header or modifies its value.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Parameterized.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>One of the keywords: <span class="QUOTE">"block"</span>, + <span class="QUOTE">"reset-to-request-time"</span> and + <span class="QUOTE">"randomize"</span></p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>Removing the <span class="QUOTE">"Last-Modified:"</span> + header is useful for filter testing, where you want to force a + real reload instead of getting status code <span class= + "QUOTE">"304"</span>, which would cause the browser to reuse + the old version of the page.</p> + + <p>The <span class="QUOTE">"randomize"</span> option overwrites + the value of the <span class="QUOTE">"Last-Modified:"</span> + header with a randomly chosen time between the original value + and the current time. In theory the server could send each + document with a different <span class= + "QUOTE">"Last-Modified:"</span> header to track visits without + using cookies. <span class="QUOTE">"Randomize"</span> makes it + impossible and the browser can still revalidate cached + documents.</p> + + <p><span class="QUOTE">"reset-to-request-time"</span> + overwrites the value of the <span class= + "QUOTE">"Last-Modified:"</span> header with the current time. + You could use this option together with <tt class= + "LITERAL"><a href= + "actions-file.html#HIDE-IF-MODIFIED-SINCE">hide-if-modified-since</a></tt> + to further customize your random range.</p> + + <p>The preferred parameter here is <span class= + "QUOTE">"randomize"</span>. It is safe to use, as long as the + time settings are more or less correct. If the server sets the + <span class="QUOTE">"Last-Modified:"</span> header to the time + of the request, the random range becomes zero and the value + stays the same. Therefore you should later randomize it a + second time with <tt class="LITERAL"><a href= + "actions-file.html#HIDE-IF-MODIFIED-SINCE">hided-if-modified-since</a></tt>, + just to be sure.</p> + + <p>It is also recommended to use this action together with + <tt class="LITERAL"><a href= + "actions-file.html#CRUNCH-IF-NONE-MATCH">crunch-if-none-match</a></tt>.</p> + </dd> + + <dt>Example usage:</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> # Let the browser revalidate without being tracked across sessions { +hide-if-modified-since{-60} \ +overwrite-last-modified{randomize} \ +crunch-if-none-match} / </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="REDIRECT">8.5.29. redirect</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Redirect requests to other sites. - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Convinces the browser that the requested document has been - moved to another location and the browser should get it - from there. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Parameterized - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - An absolute URL or a single pcrs command. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - Requests to which this action applies are answered with a - HTTP redirect to URLs of your choosing. The new URL is - either provided as parameter, or derived by applying a - single pcrs command to the original URL. - </p> - <p> - This action will be ignored if you use it together with <tt - class="LITERAL"><a href= - "actions-file.html#BLOCK">block</a></tt>. It can be - combined with <tt class="LITERAL"><a href= - "actions-file.html#FAST-REDIRECTS">fast-redirects{check-decoded-url}</a></tt> - to redirect to a decoded version of a rewritten URL. - </p> - <p> - Use this action carefully, make sure not to create - redirection loops and be aware that using your own - redirects might make it possible to fingerprint your - requests. - </p> - <p> - In case of problems with your redirects, or simply to watch - them working, enable <a href="config.html#DEBUG">debug - 128</a>. - </p> - </dd> - <dt> - Example usages: - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="REDIRECT" id="REDIRECT">8.5.29. + redirect</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Redirect requests to other sites.</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Convinces the browser that the requested document has been + moved to another location and the browser should get it from + there.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Parameterized</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>An absolute URL or a single pcrs command.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>Requests to which this action applies are answered with a + HTTP redirect to URLs of your choosing. The new URL is either + provided as parameter, or derived by applying a single pcrs + command to the original URL.</p> + + <p>This action will be ignored if you use it together with + <tt class="LITERAL"><a href= + "actions-file.html#BLOCK">block</a></tt>. It can be combined + with <tt class="LITERAL"><a href= + "actions-file.html#FAST-REDIRECTS">fast-redirects{check-decoded-url}</a></tt> + to redirect to a decoded version of a rewritten URL.</p> + + <p>Use this action carefully, make sure not to create + redirection loops and be aware that using your own redirects + might make it possible to fingerprint your requests.</p> + + <p>In case of problems with your redirects, or simply to watch + them working, enable <a href="config.html#DEBUG">debug + 128</a>.</p> + </dd> + + <dt>Example usages:</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> # Replace example.com's style sheet with another one { +redirect{http://localhost/css-replacements/example.com.css} } example.com/stylesheet\.css -# Create a short, easy to remember nickname for a favorite site -# (relies on the browser accept and forward invalid URLs to <span class= -"APPLICATION">Privoxy</span>) -{ +redirect{http://www.privoxy.org/user-manual/actions-file.html} } - a +# Create a short, easy to remember nickname for a favorite site +# (relies on the browser accept and forward invalid URLs to <span class= +"APPLICATION">Privoxy</span>) +{ +redirect{http://www.privoxy.org/user-manual/actions-file.html} } + a + +# Always use the expanded view for Undeadly.org articles +# (Note the $ at the end of the URL pattern to make sure +# the request for the rewritten URL isn't redirected as well) +{+redirect{s@$@&mode=expanded@}} +undeadly.org/cgi\?action=article&sid=\d*$ + +# Redirect Google search requests to MSN +{+redirect{s@^http://[^/]*/search\?q=([^&]*).*@http://search.msn.com/results.aspx?q=$1@}} +.google.com/search + +# Redirect MSN search requests to Yahoo +{+redirect{s@^http://[^/]*/results\.aspx\?q=([^&]*).*@http://search.yahoo.com/search?p=$1@}} +search.msn.com//results\.aspx\?q= + +# Redirect remote requests for this manual +# to the local version delivered by Privoxy +{+redirect{s@^http://www@http://config@}} +www.privoxy.org/user-manual/ +</pre> + </td> + </tr> + </table> + </dd> + </dl> + </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="SERVER-HEADER-FILTER" id= + "SERVER-HEADER-FILTER">8.5.30. server-header-filter</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Rewrite or remove single server headers.</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>All server headers to which this action applies are filtered + on-the-fly through the specified regular expression based + substitutions.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Parameterized.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>The name of a server-header filter, as defined in one of the + <a href="filter-file.html">filter files</a>.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>Server-header filters are applied to each header on its own, + not to all at once. This makes it easier to diagnose problems, + but on the downside you can't write filters that only change + header x if header y's value is z. You can do that by using + tags though.</p> -# Always use the expanded view for Undeadly.org articles -# (Note the $ at the end of the URL pattern to make sure -# the request for the rewritten URL isn't redirected as well) -{+redirect{s@$@&mode=expanded@}} -undeadly.org/cgi\?action=article&sid=\d*$ + <p>Server-header filters are executed after the other header + actions have finished and use their output as input.</p> -# Redirect Google search requests to MSN -{+redirect{s@^http://[^/]*/search\?q=([^&]*).*@http://search.msn.com/results.aspx?q=$1@}} -.google.com/search + <p>Please refer to the <a href="filter-file.html">filter file + chapter</a> to learn which server-header filters are available + by default, and how to create your own.</p> + </dd> -# Redirect MSN search requests to Yahoo -{+redirect{s@^http://[^/]*/results\.aspx\?q=([^&]*).*@http://search.yahoo.com/search?p=$1@}} -search.msn.com//results\.aspx\?q= + <dt>Example usage (section):</dt> -# Redirect remote requests for this manual -# to the local version delivered by Privoxy -{+redirect{s@^http://www@http://config@}} -www.privoxy.org/user-manual/ -</pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> - </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="SERVER-HEADER-FILTER">8.5.30. server-header-filter</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Rewrite or remove single server headers. - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - All server headers to which this action applies are - filtered on-the-fly through the specified regular - expression based substitutions. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Parameterized. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - The name of a server-header filter, as defined in one of - the <a href="filter-file.html">filter files</a>. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - Server-header filters are applied to each header on its - own, not to all at once. This makes it easier to diagnose - problems, but on the downside you can't write filters that - only change header x if header y's value is z. You can do - that by using tags though. - </p> - <p> - Server-header filters are executed after the other header - actions have finished and use their output as input. - </p> - <p> - Please refer to the <a href="filter-file.html">filter file - chapter</a> to learn which server-header filters are - available by default, and how to create your own. - </p> - </dd> - <dt> - Example usage (section): - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> {+server-header-filter{html-to-xml}} example.org/xml-instance-that-is-delivered-as-html @@ -4582,451 +3901,381 @@ example.org/xml-instance-that-is-delivered-as-html example.org/instance-that-is-delivered-as-xml-but-is-not </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="SERVER-HEADER-TAGGER">8.5.31. server-header-tagger</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Enable or disable filters based on the Content-Type header. - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Server headers to which this action applies are filtered - on-the-fly through the specified regular expression based - substitutions, the result is used as tag. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Parameterized. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - The name of a server-header tagger, as defined in one of - the <a href="filter-file.html">filter files</a>. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - Server-header taggers are applied to each header on its - own, and as the header isn't modified, each tagger <span - class="QUOTE">"sees"</span> the original. - </p> - <p> - Server-header taggers are executed before all other header - actions that modify server headers. Their tags can be used - to control all of the other server-header actions, the - content filters and the crunch actions (<a href= - "actions-file.html#REDIRECT">redirect</a> and <a href= - "actions-file.html#BLOCK">block</a>). - </p> - <p> - Obviously crunching based on tags created by server-header - taggers doesn't prevent the request from showing up in the - server's log file. - </p> - </dd> - <dt> - Example usage (section): - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="SERVER-HEADER-TAGGER" id= + "SERVER-HEADER-TAGGER">8.5.31. server-header-tagger</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Enable or disable filters based on the Content-Type + header.</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Server headers to which this action applies are filtered + on-the-fly through the specified regular expression based + substitutions, the result is used as tag.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Parameterized.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>The name of a server-header tagger, as defined in one of the + <a href="filter-file.html">filter files</a>.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>Server-header taggers are applied to each header on its own, + and as the header isn't modified, each tagger <span class= + "QUOTE">"sees"</span> the original.</p> + + <p>Server-header taggers are executed before all other header + actions that modify server headers. Their tags can be used to + control all of the other server-header actions, the content + filters and the crunch actions (<a href= + "actions-file.html#REDIRECT">redirect</a> and <a href= + "actions-file.html#BLOCK">block</a>).</p> + + <p>Obviously crunching based on tags created by server-header + taggers doesn't prevent the request from showing up in the + server's log file.</p> + </dd> + + <dt>Example usage (section):</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> # Tag every request with the content type declared by the server {+server-header-tagger{content-type}} / </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="SESSION-COOKIES-ONLY">8.5.32. session-cookies-only</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Allow only temporary <span class="QUOTE">"session"</span> - cookies (for the current browser session <span class= - "emphasis"><i class="EMPHASIS">only</i></span>). - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - Deletes the <span class="QUOTE">"expires"</span> field from - <span class="QUOTE">"Set-Cookie:"</span> server headers. - Most browsers will not store such cookies permanently and - forget them in between sessions. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Boolean. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <p> - N/A - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - This is less strict than <tt class="LITERAL"><a href= - "actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a></tt> - / <tt class="LITERAL"><a href= - "actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a></tt> - and allows you to browse websites that insist or rely on - setting cookies, without compromising your privacy too - badly. - </p> - <p> - Most browsers will not permanently store cookies that have - been processed by <tt class= - "LITERAL">session-cookies-only</tt> and will forget about - them between sessions. This makes profiling cookies - useless, but won't break sites which require cookies so - that you can log in for transactions. This is generally - turned on for all sites, and is the recommended setting. - </p> - <p> - It makes <span class="emphasis"><i class="EMPHASIS">no - sense at all</i></span> to use <tt class= - "LITERAL">session-cookies-only</tt> together with <tt - class="LITERAL"><a href= - "actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a></tt> - or <tt class="LITERAL"><a href= - "actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a></tt>. - If you do, cookies will be plainly killed. - </p> - <p> - Note that it is up to the browser how it handles such - cookies without an <span class="QUOTE">"expires"</span> - field. If you use an exotic browser, you might want to try - it out to be sure. - </p> - <p> - This setting also has no effect on cookies that may have - been stored previously by the browser before starting <span - class="APPLICATION">Privoxy</span>. These would have to be - removed manually. - </p> - <p> - <span class="APPLICATION">Privoxy</span> also uses the <a - href= - "actions-file.html#FILTER-CONTENT-COOKIES">content-cookies - filter</a> to block some types of cookies. Content cookies - are not effected by <tt class= - "LITERAL">session-cookies-only</tt>. - </p> - </dd> - <dt> - Example usage: - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="SESSION-COOKIES-ONLY" id= + "SESSION-COOKIES-ONLY">8.5.32. session-cookies-only</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Allow only temporary <span class="QUOTE">"session"</span> + cookies (for the current browser session <span class= + "emphasis EMPHASIS c2">only</span>).</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>Deletes the <span class="QUOTE">"expires"</span> field from + <span class="QUOTE">"Set-Cookie:"</span> server headers. Most + browsers will not store such cookies permanently and forget + them in between sessions.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Boolean.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <p>N/A</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>This is less strict than <tt class="LITERAL"><a href= + "actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a></tt> + / <tt class="LITERAL"><a href= + "actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a></tt> + and allows you to browse websites that insist or rely on + setting cookies, without compromising your privacy too + badly.</p> + + <p>Most browsers will not permanently store cookies that have + been processed by <tt class="LITERAL">session-cookies-only</tt> + and will forget about them between sessions. This makes + profiling cookies useless, but won't break sites which require + cookies so that you can log in for transactions. This is + generally turned on for all sites, and is the recommended + setting.</p> + + <p>It makes <span class="emphasis EMPHASIS c2">no sense at + all</span> to use <tt class="LITERAL">session-cookies-only</tt> + together with <tt class="LITERAL"><a href= + "actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a></tt> + or <tt class="LITERAL"><a href= + "actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a></tt>. + If you do, cookies will be plainly killed.</p> + + <p>Note that it is up to the browser how it handles such + cookies without an <span class="QUOTE">"expires"</span> field. + If you use an exotic browser, you might want to try it out to + be sure.</p> + + <p>This setting also has no effect on cookies that may have + been stored previously by the browser before starting + <span class="APPLICATION">Privoxy</span>. These would have to + be removed manually.</p> + + <p><span class="APPLICATION">Privoxy</span> also uses the + <a href= + "actions-file.html#FILTER-CONTENT-COOKIES">content-cookies + filter</a> to block some types of cookies. Content cookies are + not effected by <tt class= + "LITERAL">session-cookies-only</tt>.</p> + </dd> + + <dt>Example usage:</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +session-cookies-only </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="SET-IMAGE-BLOCKER">8.5.33. set-image-blocker</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Typical use: - </dt> - <dd> - <p> - Choose the replacement for blocked images - </p> - </dd> - <dt> - Effect: - </dt> - <dd> - <p> - This action alone doesn't do anything noticeable. If <span - class="emphasis"><i class="EMPHASIS">both</i></span> <tt - class="LITERAL"><a href= - "actions-file.html#BLOCK">block</a></tt> <span class= - "emphasis"><i class="EMPHASIS">and</i></span> <tt class= - "LITERAL"><a href= - "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></tt> - <span class="emphasis"><i class="EMPHASIS">also</i></span> - apply, i.e. if the request is to be blocked as an image, - <span class="emphasis"><i class="EMPHASIS">then</i></span> - the parameter of this action decides what will be sent as a - replacement. - </p> - </dd> - <dt> - Type: - </dt> - <dd> - <p> - Parameterized. - </p> - </dd> - <dt> - Parameter: - </dt> - <dd> - <ul> - <li> - <p> - <span class="QUOTE">"pattern"</span> to send a built-in - checkerboard pattern image. The image is visually - decent, scales very well, and makes it obvious where - banners were busted. - </p> - </li> - <li> - <p> - <span class="QUOTE">"blank"</span> to send a built-in - transparent image. This makes banners disappear - completely, but makes it hard to detect where <span - class="APPLICATION">Privoxy</span> has blocked images - on a given page and complicates troubleshooting if - <span class="APPLICATION">Privoxy</span> has blocked - innocent images, like navigation icons. - </p> - </li> - <li> - <p> - <span class="QUOTE">"<tt class= - "REPLACEABLE"><i>target-url</i></tt>"</span> to send a - redirect to <tt class= - "REPLACEABLE"><i>target-url</i></tt>. You can redirect - to any image anywhere, even in your local filesystem - via <span class="QUOTE">"file:///"</span> URL. (But - note that not all browsers support redirecting to a - local file system). - </p> - <p> - A good application of redirects is to use special <span - class="APPLICATION">Privoxy</span>-built-in URLs, which - send the built-in images, as <tt class= - "REPLACEABLE"><i>target-url</i></tt>. This has the same - visual effect as specifying <span class= - "QUOTE">"blank"</span> or <span class= - "QUOTE">"pattern"</span> in the first place, but - enables your browser to cache the replacement image, - instead of requesting it over and over again. - </p> - </li> - </ul> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - The URLs for the built-in images are <span class= - "QUOTE">"http://config.privoxy.org/send-banner?type=<tt - class="REPLACEABLE"><i>type</i></tt>"</span>, where <tt - class="REPLACEABLE"><i>type</i></tt> is either <span class= - "QUOTE">"blank"</span> or <span class= - "QUOTE">"pattern"</span>. - </p> - <p> - There is a third (advanced) type, called <span class= - "QUOTE">"auto"</span>. It is <span class="emphasis"><i - class="EMPHASIS">NOT</i></span> to be used in <tt class= - "LITERAL">set-image-blocker</tt>, but meant for use from <a - href="filter-file.html">filters</a>. Auto will select the - type of image that would have applied to the referring - page, had it been an image. - </p> - </dd> - <dt> - Example usage: - </dt> - <dd> - <p> - Built-in pattern: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="SET-IMAGE-BLOCKER" id= + "SET-IMAGE-BLOCKER">8.5.33. set-image-blocker</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Typical use:</dt> + + <dd> + <p>Choose the replacement for blocked images</p> + </dd> + + <dt>Effect:</dt> + + <dd> + <p>This action alone doesn't do anything noticeable. If + <span class="emphasis EMPHASIS c2">both</span> <tt class= + "LITERAL"><a href="actions-file.html#BLOCK">block</a></tt> + <span class="emphasis EMPHASIS c2">and</span> <tt class= + "LITERAL"><a href= + "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></tt> + <span class="emphasis EMPHASIS c2">also</span> apply, i.e. if + the request is to be blocked as an image, <span class= + "emphasis EMPHASIS c2">then</span> the parameter of this action + decides what will be sent as a replacement.</p> + </dd> + + <dt>Type:</dt> + + <dd> + <p>Parameterized.</p> + </dd> + + <dt>Parameter:</dt> + + <dd> + <ul> + <li> + <p><span class="QUOTE">"pattern"</span> to send a built-in + checkerboard pattern image. The image is visually decent, + scales very well, and makes it obvious where banners were + busted.</p> + </li> + + <li> + <p><span class="QUOTE">"blank"</span> to send a built-in + transparent image. This makes banners disappear completely, + but makes it hard to detect where <span class= + "APPLICATION">Privoxy</span> has blocked images on a given + page and complicates troubleshooting if <span class= + "APPLICATION">Privoxy</span> has blocked innocent images, + like navigation icons.</p> + </li> + + <li> + <p><span class="QUOTE">"<tt class= + "REPLACEABLE c5">target-url</tt>"</span> to send a redirect + to <tt class="REPLACEABLE c5">target-url</tt>. You can + redirect to any image anywhere, even in your local + filesystem via <span class="QUOTE">"file:///"</span> URL. + (But note that not all browsers support redirecting to a + local file system).</p> + + <p>A good application of redirects is to use special + <span class="APPLICATION">Privoxy</span>-built-in URLs, + which send the built-in images, as <tt class= + "REPLACEABLE c5">target-url</tt>. This has the same visual + effect as specifying <span class="QUOTE">"blank"</span> or + <span class="QUOTE">"pattern"</span> in the first place, + but enables your browser to cache the replacement image, + instead of requesting it over and over again.</p> + </li> + </ul> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>The URLs for the built-in images are <span class= + "QUOTE">"http://config.privoxy.org/send-banner?type=<tt class= + "REPLACEABLE c5">type</tt>"</span>, where <tt class= + "REPLACEABLE c5">type</tt> is either <span class= + "QUOTE">"blank"</span> or <span class= + "QUOTE">"pattern"</span>.</p> + + <p>There is a third (advanced) type, called <span class= + "QUOTE">"auto"</span>. It is <span class= + "emphasis EMPHASIS c2">NOT</span> to be used in <tt class= + "LITERAL">set-image-blocker</tt>, but meant for use from + <a href="filter-file.html">filters</a>. Auto will select the + type of image that would have applied to the referring page, + had it been an image.</p> + </dd> + + <dt>Example usage:</dt> + + <dd> + <p>Built-in pattern:</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +set-image-blocker{pattern} </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Redirect to the BSD daemon: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p>Redirect to the BSD daemon:</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +set-image-blocker{http://www.freebsd.org/gifs/dae_up3.gif} </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Redirect to the built-in pattern for better caching: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p>Redirect to the built-in pattern for better caching:</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> +set-image-blocker{http://config.privoxy.org/send-banner?type=pattern} </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="AEN4549">8.5.34. Summary</a> - </h3> - <p> - Note that many of these actions have the potential to cause a - page to misbehave, possibly even not to display at all. There are - many ways a site designer may choose to design his site, and what - HTTP header content, and other criteria, he may depend on. There - is no way to have hard and fast rules for all sites. See the <a - href="appendix.html#ACTIONSANAT">Appendix</a> for a brief example - on troubleshooting actions. - </p> + </td> + </tr> + </table> + </dd> + </dl> </div> </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="ALIASES">8.6. Aliases</a> - </h2> - <p> - Custom <span class="QUOTE">"actions"</span>, known to <span class= - "APPLICATION">Privoxy</span> as <span class= - "QUOTE">"aliases"</span>, can be defined by combining other - actions. These can in turn be invoked just like the built-in - actions. Currently, an alias name can contain any character except - space, tab, <span class="QUOTE">"="</span>, <span class= - "QUOTE">"{"</span> and <span class="QUOTE">"}"</span>, but we <span - class="emphasis"><i class="EMPHASIS">strongly recommend</i></span> - that you only use <span class="QUOTE">"a"</span> to <span class= - "QUOTE">"z"</span>, <span class="QUOTE">"0"</span> to <span class= - "QUOTE">"9"</span>, <span class="QUOTE">"+"</span>, and <span - class="QUOTE">"-"</span>. Alias names are not case sensitive, and - are not required to start with a <span class="QUOTE">"+"</span> or - <span class="QUOTE">"-"</span> sign, since they are merely - textually expanded. - </p> - <p> - Aliases can be used throughout the actions file, but they <span - class="emphasis"><i class="EMPHASIS">must be defined in a special - section at the top of the file!</i></span> And there can only be - one such section per actions file. Each actions file may have its - own alias section, and the aliases defined in it are only visible - within that file. - </p> - <p> - There are two main reasons to use aliases: One is to save typing - for frequently used combinations of actions, the other one is a - gain in flexibility: If you decide once how you want to handle - shops by defining an alias called <span class= - "QUOTE">"shop"</span>, you can later change your policy on shops in - <span class="emphasis"><i class="EMPHASIS">one</i></span> place, - and your changes will take effect everywhere in the actions file - where the <span class="QUOTE">"shop"</span> alias is used. Calling - aliases by their purpose also makes your actions files more - readable. - </p> - <p> - Currently, there is one big drawback to using aliases, though: - <span class="APPLICATION">Privoxy</span>'s built-in web-based - action file editor honors aliases when reading the actions files, - but it expands them before writing. So the effects of your aliases - are of course preserved, but the aliases themselves are lost when - you edit sections that use aliases with it. - </p> - <p> - Now let's define some aliases... - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + + <div class="SECT3"> + <h3 class="SECT3"><a name="AEN4687" id="AEN4687">8.5.34. + Summary</a></h3> + + <p>Note that many of these actions have the potential to cause a page + to misbehave, possibly even not to display at all. There are many + ways a site designer may choose to design his site, and what HTTP + header content, and other criteria, he may depend on. There is no way + to have hard and fast rules for all sites. See the <a href= + "appendix.html#ACTIONSANAT">Appendix</a> for a brief example on + troubleshooting actions.</p> + </div> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="ALIASES" id="ALIASES">8.6. Aliases</a></h2> + + <p>Custom <span class="QUOTE">"actions"</span>, known to <span class= + "APPLICATION">Privoxy</span> as <span class="QUOTE">"aliases"</span>, + can be defined by combining other actions. These can in turn be invoked + just like the built-in actions. Currently, an alias name can contain + any character except space, tab, <span class="QUOTE">"="</span>, + <span class="QUOTE">"{"</span> and <span class="QUOTE">"}"</span>, but + we <span class="emphasis EMPHASIS c2">strongly recommend</span> that + you only use <span class="QUOTE">"a"</span> to <span class= + "QUOTE">"z"</span>, <span class="QUOTE">"0"</span> to <span class= + "QUOTE">"9"</span>, <span class="QUOTE">"+"</span>, and <span class= + "QUOTE">"-"</span>. Alias names are not case sensitive, and are not + required to start with a <span class="QUOTE">"+"</span> or <span class= + "QUOTE">"-"</span> sign, since they are merely textually expanded.</p> + + <p>Aliases can be used throughout the actions file, but they + <span class="emphasis EMPHASIS c2">must be defined in a special section + at the top of the file!</span> And there can only be one such section + per actions file. Each actions file may have its own alias section, and + the aliases defined in it are only visible within that file.</p> + + <p>There are two main reasons to use aliases: One is to save typing for + frequently used combinations of actions, the other one is a gain in + flexibility: If you decide once how you want to handle shops by + defining an alias called <span class="QUOTE">"shop"</span>, you can + later change your policy on shops in <span class= + "emphasis EMPHASIS c2">one</span> place, and your changes will take + effect everywhere in the actions file where the <span class= + "QUOTE">"shop"</span> alias is used. Calling aliases by their purpose + also makes your actions files more readable.</p> + + <p>Currently, there is one big drawback to using aliases, though: + <span class="APPLICATION">Privoxy</span>'s built-in web-based action + file editor honors aliases when reading the actions files, but it + expands them before writing. So the effects of your aliases are of + course preserved, but the aliases themselves are lost when you edit + sections that use aliases with it.</p> + + <p>Now let's define some aliases...</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> # Useful custom aliases we can use later. # # Note the (required!) section header line and that this section @@ -5038,11 +4287,9 @@ example.org/instance-that-is-delivered-as-xml-but-is-not # (Note that some already use other aliases!) # +crunch-all-cookies = +<a href= -"actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> +<a -href="actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a> +"actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> +<a href="actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a> -crunch-all-cookies = -<a href= -"actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> -<a -href="actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a> +"actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> -<a href="actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a> +block-as-image = +block{Blocked image.} +handle-as-image allow-all-cookies = -crunch-all-cookies -<a href= "actions-file.html#SESSION-COOKIES-ONLY">session-cookies-only</a> -<a href= @@ -5065,22 +4312,19 @@ href="actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a> c0 = +crunch-all-cookies c1 = -crunch-all-cookies </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - ...and put them to use. These sections would appear in the lower - part of an actions file and define exceptions to the default - actions (as specified further up for the <span class= - "QUOTE">"/"</span> pattern): - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p>...and put them to use. These sections would appear in the lower + part of an actions file and define exceptions to the default actions + (as specified further up for the <span class="QUOTE">"/"</span> + pattern):</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> # These sites are either very complex or very keen on # user data and require minimal interference to work: # @@ -5104,71 +4348,62 @@ href="actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a> .dabs.com .overclockers.co.uk </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Aliases like <span class="QUOTE">"shop"</span> and <span class= - "QUOTE">"fragile"</span> are typically used for <span class= - "QUOTE">"problem"</span> sites that require more than one action to - be disabled in order to function properly. - </p> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="ACT-EXAMPLES">8.7. Actions Files Tutorial</a> - </h2> - <p> - The above chapters have shown <a href="actions-file.html">which - actions files there are and how they are organized</a>, how actions - are <a href="actions-file.html#ACTIONS">specified</a> and <a href= - "actions-file.html#ACTIONS-APPLY">applied to URLs</a>, how <a href= - "actions-file.html#AF-PATTERNS">patterns</a> work, and how to - define and use <a href="actions-file.html#ALIASES">aliases</a>. - Now, let's look at an example <tt class= - "FILENAME">match-all.action</tt>, <tt class= - "FILENAME">default.action</tt> and <tt class= - "FILENAME">user.action</tt> file and see how all these pieces come - together: - </p> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="AEN4613">8.7.1. match-all.action</a> - </h3> - <p> - Remember <span class="emphasis"><i class="EMPHASIS">all actions - are disabled when matching starts</i></span>, so we have to - explicitly enable the ones we want. - </p> - <p> - While the <tt class="FILENAME">match-all.action</tt> file only - contains a single section, it is probably the most important one. - It has only one pattern, <span class="QUOTE">"<tt class= - "LITERAL">/</tt>"</span>, but this pattern <a href= - "actions-file.html#AF-PATTERNS">matches all URLs</a>. Therefore, - the set of actions used in this <span class= - "QUOTE">"default"</span> section <span class="emphasis"><i class= - "EMPHASIS">will be applied to all requests as a start</i></span>. - It can be partly or wholly overridden by other actions files like - <tt class="FILENAME">default.action</tt> and <tt class= - "FILENAME">user.action</tt>, but it will still be largely - responsible for your overall browsing experience. - </p> - <p> - Again, at the start of matching, all actions are disabled, so - there is no need to disable any actions here. (Remember: a <span - class="QUOTE">"+"</span> preceding the action name enables the - action, a <span class="QUOTE">"-"</span> disables!). Also note - how this long line has been made more readable by splitting it - into multiple lines with line continuation. - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p>Aliases like <span class="QUOTE">"shop"</span> and <span class= + "QUOTE">"fragile"</span> are typically used for <span class= + "QUOTE">"problem"</span> sites that require more than one action to be + disabled in order to function properly.</p> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="ACT-EXAMPLES" id="ACT-EXAMPLES">8.7. Actions + Files Tutorial</a></h2> + + <p>The above chapters have shown <a href="actions-file.html">which + actions files there are and how they are organized</a>, how actions are + <a href="actions-file.html#ACTIONS">specified</a> and <a href= + "actions-file.html#ACTIONS-APPLY">applied to URLs</a>, how <a href= + "actions-file.html#AF-PATTERNS">patterns</a> work, and how to define + and use <a href="actions-file.html#ALIASES">aliases</a>. Now, let's + look at an example <tt class="FILENAME">match-all.action</tt>, + <tt class="FILENAME">default.action</tt> and <tt class= + "FILENAME">user.action</tt> file and see how all these pieces come + together:</p> + + <div class="SECT3"> + <h3 class="SECT3"><a name="AEN4751" id="AEN4751">8.7.1. + match-all.action</a></h3> + + <p>Remember <span class="emphasis EMPHASIS c2">all actions are + disabled when matching starts</span>, so we have to explicitly enable + the ones we want.</p> + + <p>While the <tt class="FILENAME">match-all.action</tt> file only + contains a single section, it is probably the most important one. It + has only one pattern, <span class="QUOTE">"<tt class= + "LITERAL">/</tt>"</span>, but this pattern <a href= + "actions-file.html#AF-PATTERNS">matches all URLs</a>. Therefore, the + set of actions used in this <span class="QUOTE">"default"</span> + section <span class="emphasis EMPHASIS c2">will be applied to all + requests as a start</span>. It can be partly or wholly overridden by + other actions files like <tt class="FILENAME">default.action</tt> and + <tt class="FILENAME">user.action</tt>, but it will still be largely + responsible for your overall browsing experience.</p> + + <p>Again, at the start of matching, all actions are disabled, so + there is no need to disable any actions here. (Remember: a + <span class="QUOTE">"+"</span> preceding the action name enables the + action, a <span class="QUOTE">"-"</span> disables!). Also note how + this long line has been made more readable by splitting it into + multiple lines with line continuation.</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> { \ +<a href= "actions-file.html#CHANGE-X-FORWARDED-FOR">change-x-forwarded-for{block}</a> \ @@ -5177,64 +4412,56 @@ href="actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a> "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker{pattern}</a> \ } / # Match all URLs + </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - The default behavior is now set. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="AEN4635">8.7.2. default.action</a> - </h3> - <p> - If you aren't a developer, there's no need for you to edit the - <tt class="FILENAME">default.action</tt> file. It is maintained - by the <span class="APPLICATION">Privoxy</span> developers and if - you disagree with some of the sections, you should overrule them - in your <tt class="FILENAME">user.action</tt>. - </p> - <p> - Understanding the <tt class="FILENAME">default.action</tt> file - can help you with your <tt class="FILENAME">user.action</tt>, - though. - </p> - <p> - The first section in this file is a special section for internal - use that prevents older <span class="APPLICATION">Privoxy</span> - versions from reading the file: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p>The default behavior is now set.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="AEN4773" id="AEN4773">8.7.2. + default.action</a></h3> + + <p>If you aren't a developer, there's no need for you to edit the + <tt class="FILENAME">default.action</tt> file. It is maintained by + the <span class="APPLICATION">Privoxy</span> developers and if you + disagree with some of the sections, you should overrule them in your + <tt class="FILENAME">user.action</tt>.</p> + + <p>Understanding the <tt class="FILENAME">default.action</tt> file + can help you with your <tt class="FILENAME">user.action</tt>, + though.</p> + + <p>The first section in this file is a special section for internal + use that prevents older <span class="APPLICATION">Privoxy</span> + versions from reading the file:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> ########################################################################## # Settings -- Don't change! For internal Privoxy use ONLY. ########################################################################## {{settings}} for-privoxy-version=3.0.11 </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - After that comes the (optional) alias section. We'll use the - example section from the above <a href= - "actions-file.html#ALIASES">chapter on aliases</a>, that also - explains why and how aliases are used: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p>After that comes the (optional) alias section. We'll use the + example section from the above <a href= + "actions-file.html#ALIASES">chapter on aliases</a>, that also + explains why and how aliases are used:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> ########################################################################## # Aliases ########################################################################## @@ -5244,11 +4471,9 @@ for-privoxy-version=3.0.11 # (Note that some already use other aliases!) # +crunch-all-cookies = +<a href= -"actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> +<a -href="actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a> +"actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> +<a href="actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a> -crunch-all-cookies = -<a href= -"actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> -<a -href="actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a> +"actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> -<a href="actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a> +block-as-image = +block{Blocked image.} +handle-as-image mercy-for-cookies = -crunch-all-cookies -<a href= "actions-file.html#SESSION-COOKIES-ONLY">session-cookies-only</a> -<a href= @@ -5263,26 +4488,23 @@ href="actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a> "actions-file.html#HIDE-REFERER">hide-referrer</a> shop = -crunch-all-cookies -<a href= "actions-file.html#FILTER-ALL-POPUPS">filter{all-popups}</a> -</pre> - </td> - </tr> - </table> +</pre> + </td> + </tr> + </table> - <p> - The first of our specialized sections is concerned with <span - class="QUOTE">"fragile"</span> sites, i.e. sites that require - minimum interference, because they are either very complex or - very keen on tracking you (and have mechanisms in place that make - them unusable for people who avoid being tracked). We will simply - use our pre-defined <tt class="LITERAL">fragile</tt> alias - instead of stating the list of actions explicitly: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p>The first of our specialized sections is concerned with + <span class="QUOTE">"fragile"</span> sites, i.e. sites that require + minimum interference, because they are either very complex or very + keen on tracking you (and have mechanisms in place that make them + unusable for people who avoid being tracked). We will simply use our + pre-defined <tt class="LITERAL">fragile</tt> alias instead of stating + the list of actions explicitly:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> ########################################################################## # Exceptions for sites that'll break under the default action set: ########################################################################## @@ -5294,21 +4516,18 @@ href="actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a> .windowsupdate.microsoft.com mail.google.com </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Shopping sites are not as fragile, but they typically require - cookies to log in, and pop-up windows for shopping carts or item - details. Again, we'll use a pre-defined alias: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p>Shopping sites are not as fragile, but they typically require + cookies to log in, and pop-up windows for shopping carts or item + details. Again, we'll use a pre-defined alias:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> # Shopping sites: # { shop } @@ -5317,23 +4536,20 @@ mail.google.com .jungle.com .scan.co.uk </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - The <tt class="LITERAL"><a href= - "actions-file.html#FAST-REDIRECTS">fast-redirects</a></tt> - action, which may have been enabled in <tt class= - "FILENAME">match-all.action</tt>, breaks some sites. So disable - it for popular sites where we know it misbehaves: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p>The <tt class="LITERAL"><a href= + "actions-file.html#FAST-REDIRECTS">fast-redirects</a></tt> action, + which may have been enabled in <tt class= + "FILENAME">match-all.action</tt>, breaks some sites. So disable it + for popular sites where we know it misbehaves:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> { -<a href="actions-file.html#FAST-REDIRECTS">fast-redirects</a> } login.yahoo.com edit.*.yahoo.com @@ -5342,30 +4558,26 @@ edit.*.yahoo.com .altavista.com/trans.*urltext=http .nytimes.com </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - It is important that <span class="APPLICATION">Privoxy</span> - knows which URLs belong to images, so that <span class= - "emphasis"><i class="EMPHASIS">if</i></span> they are to be - blocked, a substitute image can be sent, rather than an HTML - page. Contacting the remote site to find out is not an option, - since it would destroy the loading time advantage of banner - blocking, and it would feed the advertisers information about - you. We can mark any URL as an image with the <tt class= - "LITERAL"><a href= - "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></tt> - action, and marking all URLs that end in a known image file - extension is a good start: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p>It is important that <span class="APPLICATION">Privoxy</span> + knows which URLs belong to images, so that <span class= + "emphasis EMPHASIS c2">if</span> they are to be blocked, a substitute + image can be sent, rather than an HTML page. Contacting the remote + site to find out is not an option, since it would destroy the loading + time advantage of banner blocking, and it would feed the advertisers + information about you. We can mark any URL as an image with the + <tt class="LITERAL"><a href= + "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></tt> action, + and marking all URLs that end in a known image file extension is a + good start:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> ########################################################################## # Images: ########################################################################## @@ -5376,34 +4588,30 @@ edit.*.yahoo.com { +<a href="actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a> } /.*\.(gif|jpe?g|png|bmp|ico)$ </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - And then there are known banner sources. They often use scripts - to generate the banners, so it won't be visible from the URL that - the request is for an image. Hence we block them <span class= - "emphasis"><i class="EMPHASIS">and</i></span> mark them as images - in one go, with the help of our <tt class= - "LITERAL">+block-as-image</tt> alias defined above. (We could of - course just as well use <tt class="LITERAL">+<a href= - "actions-file.html#BLOCK">block</a> +<a href= - "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></tt> - here.) Remember that the type of the replacement image is chosen - by the <tt class="LITERAL"><a href= - "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker</a></tt> - action. Since all URLs have matched the default section with its - <tt class="LITERAL">+<a href= - "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker</a>{pattern}</tt> - action before, it still applies and needn't be repeated: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p>And then there are known banner sources. They often use scripts to + generate the banners, so it won't be visible from the URL that the + request is for an image. Hence we block them <span class= + "emphasis EMPHASIS c2">and</span> mark them as images in one go, with + the help of our <tt class="LITERAL">+block-as-image</tt> alias + defined above. (We could of course just as well use <tt class= + "LITERAL">+<a href="actions-file.html#BLOCK">block</a> +<a href= + "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></tt> here.) + Remember that the type of the replacement image is chosen by the + <tt class="LITERAL"><a href= + "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker</a></tt> + action. Since all URLs have matched the default section with its + <tt class="LITERAL">+<a href= + "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker</a>{pattern}</tt> + action before, it still applies and needn't be repeated:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> # Known ad generators: # { +block-as-image } @@ -5415,37 +4623,32 @@ ar.atwola.com bs*.gsanet.com .qkimg.net </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - One of the most important jobs of <span class= - "APPLICATION">Privoxy</span> is to block banners. Many of these - can be <span class="QUOTE">"blocked"</span> by the <tt class= - "LITERAL"><a href= - "actions-file.html#FILTER">filter</a>{banners-by-size}</tt> - action, which we enabled above, and which deletes the references - to banner images from the pages while they are loaded, so the - browser doesn't request them anymore, and hence they don't need - to be blocked here. But this naturally doesn't catch all banners, - and some people choose not to use filters, so we need a - comprehensive list of patterns for banner URLs here, and apply - the <tt class="LITERAL"><a href= - "actions-file.html#BLOCK">block</a></tt> action to them. - </p> - <p> - First comes many generic patterns, which do most of the work, by - matching typical domain and path name components of banners. Then - comes a list of individual patterns for specific sites, which is - omitted here to keep the example short: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p>One of the most important jobs of <span class= + "APPLICATION">Privoxy</span> is to block banners. Many of these can + be <span class="QUOTE">"blocked"</span> by the <tt class= + "LITERAL"><a href= + "actions-file.html#FILTER">filter</a>{banners-by-size}</tt> action, + which we enabled above, and which deletes the references to banner + images from the pages while they are loaded, so the browser doesn't + request them anymore, and hence they don't need to be blocked here. + But this naturally doesn't catch all banners, and some people choose + not to use filters, so we need a comprehensive list of patterns for + banner URLs here, and apply the <tt class="LITERAL"><a href= + "actions-file.html#BLOCK">block</a></tt> action to them.</p> + + <p>First comes many generic patterns, which do most of the work, by + matching typical domain and path name components of banners. Then + comes a list of individual patterns for specific sites, which is + omitted here to keep the example short:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> ########################################################################## # Block these fine banners: ########################################################################## @@ -5464,55 +4667,47 @@ count*. # .hitbox.com </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - It's quite remarkable how many advertisers actually call their - banner servers ads.<tt class= - "REPLACEABLE"><i>company</i></tt>.com, or call the directory in - which the banners are stored simply <span class= - "QUOTE">"banners"</span>. So the above generic patterns are - surprisingly effective. - </p> - <p> - But being very generic, they necessarily also catch URLs that we - don't want to block. The pattern <tt class="LITERAL">.*ads.</tt> - e.g. catches <span class="QUOTE">"nasty-<span class="emphasis"><i - class="EMPHASIS">ads</i></span>.nasty-corp.com"</span> as - intended, but also <span class="QUOTE">"downlo<span class= - "emphasis"><i class= - "EMPHASIS">ads</i></span>.sourcefroge.net"</span> or <span class= - "QUOTE">"<span class="emphasis"><i class= - "EMPHASIS">ads</i></span>l.some-provider.net."</span> So here - come some well-known exceptions to the <tt class="LITERAL">+<a - href="actions-file.html#BLOCK">block</a></tt> section above. - </p> - <p> - Note that these are exceptions to exceptions from the default! - Consider the URL <span class= - "QUOTE">"downloads.sourcefroge.net"</span>: Initially, all - actions are deactivated, so it wouldn't get blocked. Then comes - the defaults section, which matches the URL, but just deactivates - the <tt class="LITERAL"><a href= - "actions-file.html#BLOCK">block</a></tt> action once again. Then - it matches <tt class="LITERAL">.*ads.</tt>, an exception to the - general non-blocking policy, and suddenly <tt class="LITERAL"><a - href="actions-file.html#BLOCK">+block</a></tt> applies. And now, - it'll match <tt class="LITERAL">.*loads.</tt>, where <tt class= - "LITERAL"><a href="actions-file.html#BLOCK">-block</a></tt> - applies, so (unless it matches <span class="emphasis"><i class= - "EMPHASIS">again</i></span> further down) it ends up with no <tt - class="LITERAL"><a href="actions-file.html#BLOCK">block</a></tt> - action applying. - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p>It's quite remarkable how many advertisers actually call their + banner servers ads.<tt class="REPLACEABLE c5">company</tt>.com, or + call the directory in which the banners are stored simply + <span class="QUOTE">"banners"</span>. So the above generic patterns + are surprisingly effective.</p> + + <p>But being very generic, they necessarily also catch URLs that we + don't want to block. The pattern <tt class="LITERAL">.*ads.</tt> e.g. + catches <span class="QUOTE">"nasty-<span class= + "emphasis EMPHASIS c2">ads</span>.nasty-corp.com"</span> as intended, + but also <span class="QUOTE">"downlo<span class= + "emphasis EMPHASIS c2">ads</span>.sourcefroge.net"</span> or + <span class="QUOTE">"<span class= + "emphasis EMPHASIS c2">ads</span>l.some-provider.net."</span> So here + come some well-known exceptions to the <tt class="LITERAL">+<a href= + "actions-file.html#BLOCK">block</a></tt> section above.</p> + + <p>Note that these are exceptions to exceptions from the default! + Consider the URL <span class= + "QUOTE">"downloads.sourcefroge.net"</span>: Initially, all actions + are deactivated, so it wouldn't get blocked. Then comes the defaults + section, which matches the URL, but just deactivates the <tt class= + "LITERAL"><a href="actions-file.html#BLOCK">block</a></tt> action + once again. Then it matches <tt class="LITERAL">.*ads.</tt>, an + exception to the general non-blocking policy, and suddenly <tt class= + "LITERAL"><a href="actions-file.html#BLOCK">+block</a></tt> applies. + And now, it'll match <tt class="LITERAL">.*loads.</tt>, where + <tt class="LITERAL"><a href="actions-file.html#BLOCK">-block</a></tt> + applies, so (unless it matches <span class= + "emphasis EMPHASIS c2">again</span> further down) it ends up with no + <tt class="LITERAL"><a href="actions-file.html#BLOCK">block</a></tt> + action applying.</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> ########################################################################## # Save some innocent victims of the above generic block patterns: ########################################################################## @@ -5536,24 +4731,21 @@ ad[ud]*. # (adult.* and add.*) www.globalintersec.com/adv # (adv = advanced) www.ugu.com/sui/ugu/adv </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Filtering source code can have nasty side effects, so make an - exception for our friends at sourceforge.net, and all paths with - <span class="QUOTE">"cvs"</span> in them. Note that <tt class= - "LITERAL">-<a href="actions-file.html#FILTER">filter</a></tt> - disables <span class="emphasis"><i class= - "EMPHASIS">all</i></span> filters in one fell swoop! - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p>Filtering source code can have nasty side effects, so make an + exception for our friends at sourceforge.net, and all paths with + <span class="QUOTE">"cvs"</span> in them. Note that <tt class= + "LITERAL">-<a href="actions-file.html#FILTER">filter</a></tt> + disables <span class="emphasis EMPHASIS c2">all</span> filters in one + fell swoop!</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> # Don't filter code! # { -<a href="actions-file.html#FILTER">filter</a> } @@ -5563,65 +4755,55 @@ developer. wiki. .sourceforge.net </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - The actual <tt class="FILENAME">default.action</tt> is of course - much more comprehensive, but we hope this example made clear how - it works. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="AEN4748">8.7.3. user.action</a> - </h3> - <p> - So far we are painting with a broad brush by setting general - policies, which would be a reasonable starting point for many - people. Now, you might want to be more specific and have - customized rules that are more suitable to your personal habits - and preferences. These would be for narrowly defined situations - like your ISP or your bank, and should be placed in <tt class= - "FILENAME">user.action</tt>, which is parsed after all other - actions files and hence has the last word, over-riding any - previously defined actions. <tt class="FILENAME">user.action</tt> - is also a <span class="emphasis"><i class= - "EMPHASIS">safe</i></span> place for your personal settings, - since <tt class="FILENAME">default.action</tt> is actively - maintained by the <span class="APPLICATION">Privoxy</span> - developers and you'll probably want to install updated versions - from time to time. - </p> - <p> - So let's look at a few examples of things that one might - typically do in <tt class="FILENAME">user.action</tt>: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p>The actual <tt class="FILENAME">default.action</tt> is of course + much more comprehensive, but we hope this example made clear how it + works.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="AEN4886" id="AEN4886">8.7.3. + user.action</a></h3> + + <p>So far we are painting with a broad brush by setting general + policies, which would be a reasonable starting point for many people. + Now, you might want to be more specific and have customized rules + that are more suitable to your personal habits and preferences. These + would be for narrowly defined situations like your ISP or your bank, + and should be placed in <tt class="FILENAME">user.action</tt>, which + is parsed after all other actions files and hence has the last word, + over-riding any previously defined actions. <tt class= + "FILENAME">user.action</tt> is also a <span class= + "emphasis EMPHASIS c2">safe</span> place for your personal settings, + since <tt class="FILENAME">default.action</tt> is actively maintained + by the <span class="APPLICATION">Privoxy</span> developers and you'll + probably want to install updated versions from time to time.</p> + + <p>So let's look at a few examples of things that one might typically + do in <tt class="FILENAME">user.action</tt>:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> # My user.action file. <fred@example.com> </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - As <a href="actions-file.html#ALIASES">aliases</a> are local to - the actions file that they are defined in, you can't use the ones - from <tt class="FILENAME">default.action</tt>, unless you repeat - them here: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p>As <a href="actions-file.html#ALIASES">aliases</a> are local to + the actions file that they are defined in, you can't use the ones + from <tt class="FILENAME">default.action</tt>, unless you repeat them + here:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> # Aliases are local to the file they are defined in. # (Re-)define aliases for this file: # @@ -5650,65 +4832,54 @@ allow-ads = -block -filter{banners-by-size} -filter{banners-by-link} # Alias for specific file types that are text, but might have conflicting # MIME types. We want the browser to force these to be text documents. handle-as-text = -<a href="actions-file.html#FILTER">filter</a> +-<a href= -"actions-file.html#CONTENT-TYPE-OVERWRITE">content-type-overwrite{text/plain}</a> +-<a - href="actions-file.html#FORCE-TEXT-MODE">force-text-mode</a> -<a href= -"actions-file.html#HIDE-CONTENT-DISPOSITION">hide-content-disposition</a> +"actions-file.html#CONTENT-TYPE-OVERWRITE">content-type-overwrite{text/plain}</a> +-<a href="actions-file.html#FORCE-TEXT-MODE">force-text-mode</a> -<a href="actions-file.html#HIDE-CONTENT-DISPOSITION">hide-content-disposition</a> </pre> - </td> - </tr> - </table> - <br> - - <p> - Say you have accounts on some sites that you visit regularly, and - you don't want to have to log in manually each time. So you'd - like to allow persistent cookies for these sites. The <tt class= - "LITERAL">allow-all-cookies</tt> alias defined above does exactly - that, i.e. it disables crunching of cookies in any direction, and - the processing of cookies to make them only temporary. - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>Say you have accounts on some sites that you visit regularly, and + you don't want to have to log in manually each time. So you'd like to + allow persistent cookies for these sites. The <tt class= + "LITERAL">allow-all-cookies</tt> alias defined above does exactly + that, i.e. it disables crunching of cookies in any direction, and the + processing of cookies to make them only temporary.</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> { allow-all-cookies } sourceforge.net .yahoo.com .msdn.microsoft.com .redhat.com </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Your bank is allergic to some filter, but you don't know which, - so you disable them all: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p>Your bank is allergic to some filter, but you don't know which, so + you disable them all:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> { -<a href="actions-file.html#FILTER">filter</a> } .your-home-banking-site.com </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Some file types you may not want to filter for various reasons: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p>Some file types you may not want to filter for various + reasons:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> # Technical documentation is likely to contain strings that might # erroneously get altered by the JavaScript-oriented filters: # @@ -5720,215 +4891,196 @@ handle-as-text = -<a href="actions-file.html#FILTER">filter</a> +-<a href= # stupid-server.example.com/ </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Example of a simple <a href="actions-file.html#BLOCK">block</a> - action. Say you've seen an ad on your favourite page on - example.com that you want to get rid of. You have right-clicked - the image, selected <span class="QUOTE">"copy image - location"</span> and pasted the URL below while removing the - leading http://, into a <tt class="LITERAL">{ +block{} }</tt> - section. Note that <tt class="LITERAL">{ +handle-as-image }</tt> - need not be specified, since all URLs ending in <tt class= - "LITERAL">.gif</tt> will be tagged as images by the general rules - as set in default.action anyway: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p>Example of a simple <a href="actions-file.html#BLOCK">block</a> + action. Say you've seen an ad on your favourite page on example.com + that you want to get rid of. You have right-clicked the image, + selected <span class="QUOTE">"copy image location"</span> and pasted + the URL below while removing the leading http://, into a <tt class= + "LITERAL">{ +block{} }</tt> section. Note that <tt class="LITERAL">{ + +handle-as-image }</tt> need not be specified, since all URLs ending + in <tt class="LITERAL">.gif</tt> will be tagged as images by the + general rules as set in default.action anyway:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> { +<a href="actions-file.html#BLOCK">block</a>{Nasty ads.} } www.example.com/nasty-ads/sponsor\.gif another.example.net/more/junk/here/ </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - The URLs of dynamically generated banners, especially from large - banner farms, often don't use the well-known image file name - extensions, which makes it impossible for <span class= - "APPLICATION">Privoxy</span> to guess the file type just by - looking at the URL. You can use the <tt class= - "LITERAL">+block-as-image</tt> alias defined above for these - cases. Note that objects which match this rule but then turn out - NOT to be an image are typically rendered as a <span class= - "QUOTE">"broken image"</span> icon by the browser. Use - cautiously. - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p>The URLs of dynamically generated banners, especially from large + banner farms, often don't use the well-known image file name + extensions, which makes it impossible for <span class= + "APPLICATION">Privoxy</span> to guess the file type just by looking + at the URL. You can use the <tt class="LITERAL">+block-as-image</tt> + alias defined above for these cases. Note that objects which match + this rule but then turn out NOT to be an image are typically rendered + as a <span class="QUOTE">"broken image"</span> icon by the browser. + Use cautiously.</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> { +block-as-image } .doubleclick.net .fastclick.net /Realmedia/ads/ ar.atwola.com/ </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Now you noticed that the default configuration breaks Forbes - Magazine, but you were too lazy to find out which action is the - culprit, and you were again too lazy to give <a href= - "contact.html">feedback</a>, so you just used the <tt class= - "LITERAL">fragile</tt> alias on the site, and -- <span class= - "emphasis"><i class="EMPHASIS">whoa!</i></span> -- it worked. The - <tt class="LITERAL">fragile</tt> aliases disables those actions - that are most likely to break a site. Also, good for testing - purposes to see if it is <span class="APPLICATION">Privoxy</span> - that is causing the problem or not. We later find other regular - sites that misbehave, and add those to our personalized list of - troublemakers: - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p>Now you noticed that the default configuration breaks Forbes + Magazine, but you were too lazy to find out which action is the + culprit, and you were again too lazy to give <a href= + "contact.html">feedback</a>, so you just used the <tt class= + "LITERAL">fragile</tt> alias on the site, and -- <span class= + "emphasis EMPHASIS c2">whoa!</span> -- it worked. The <tt class= + "LITERAL">fragile</tt> aliases disables those actions that are most + likely to break a site. Also, good for testing purposes to see if it + is <span class="APPLICATION">Privoxy</span> that is causing the + problem or not. We later find other regular sites that misbehave, and + add those to our personalized list of troublemakers:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> { fragile } .forbes.com webmail.example.com .mybank.com </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - You like the <span class="QUOTE">"fun"</span> text replacements - in <tt class="FILENAME">default.filter</tt>, but it is disabled - in the distributed actions file. So you'd like to turn it on in - your private, update-safe config, once and for all: - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p>You like the <span class="QUOTE">"fun"</span> text replacements in + <tt class="FILENAME">default.filter</tt>, but it is disabled in the + distributed actions file. So you'd like to turn it on in your + private, update-safe config, once and for all:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> { +<a href="actions-file.html#FILTER-FUN">filter{fun}</a> } / # For ALL sites! </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Note that the above is not really a good idea: There are - exceptions to the filters in <tt class= - "FILENAME">default.action</tt> for things that really shouldn't - be filtered, like code on CVS->Web interfaces. Since <tt - class="FILENAME">user.action</tt> has the last word, these - exceptions won't be valid for the <span class= - "QUOTE">"fun"</span> filtering specified here. - </p> - <p> - You might also worry about how your favourite free websites are - funded, and find that they rely on displaying banner - advertisements to survive. So you might want to specifically - allow banners for those sites that you feel provide value to you: - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p>Note that the above is not really a good idea: There are + exceptions to the filters in <tt class="FILENAME">default.action</tt> + for things that really shouldn't be filtered, like code on + CVS->Web interfaces. Since <tt class="FILENAME">user.action</tt> + has the last word, these exceptions won't be valid for the + <span class="QUOTE">"fun"</span> filtering specified here.</p> + + <p>You might also worry about how your favourite free websites are + funded, and find that they rely on displaying banner advertisements + to survive. So you might want to specifically allow banners for those + sites that you feel provide value to you:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> { allow-ads } .sourceforge.net .slashdot.org .osdn.net </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Note that <tt class="LITERAL">allow-ads</tt> has been aliased to - <tt class="LITERAL">-<a href= - "actions-file.html#BLOCK">block</a></tt>, <tt class="LITERAL">-<a - href= - "actions-file.html#FILTER-BANNERS-BY-SIZE">filter{banners-by-size}</a></tt>, - and <tt class="LITERAL">-<a href= - "actions-file.html#FILTER-BANNERS-BY-LINK">filter{banners-by-link}</a></tt> - above. - </p> - <p> - Invoke another alias here to force an over-ride of the MIME type - <tt class="LITERAL">application/x-sh</tt> which typically would - open a download type dialog. In my case, I want to look at the - shell script, and then I can save it should I choose to. - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p>Note that <tt class="LITERAL">allow-ads</tt> has been aliased to + <tt class="LITERAL">-<a href= + "actions-file.html#BLOCK">block</a></tt>, <tt class= + "LITERAL">-<a href= + "actions-file.html#FILTER-BANNERS-BY-SIZE">filter{banners-by-size}</a></tt>, + and <tt class="LITERAL">-<a href= + "actions-file.html#FILTER-BANNERS-BY-LINK">filter{banners-by-link}</a></tt> + above.</p> + + <p>Invoke another alias here to force an over-ride of the MIME type + <tt class="LITERAL">application/x-sh</tt> which typically would open + a download type dialog. In my case, I want to look at the shell + script, and then I can save it should I choose to.</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> { handle-as-text } /.*\.sh$ </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - <tt class="FILENAME">user.action</tt> is generally the best place - to define exceptions and additions to the default policies of <tt - class="FILENAME">default.action</tt>. Some actions are safe to - have their default policies set here though. So let's set a - default policy to have a <span class="QUOTE">"blank"</span> image - as opposed to the checkerboard pattern for <span class= - "emphasis"><i class="EMPHASIS">ALL</i></span> sites. <span class= - "QUOTE">"/"</span> of course matches all URL paths and patterns: - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p><tt class="FILENAME">user.action</tt> is generally the best place + to define exceptions and additions to the default policies of + <tt class="FILENAME">default.action</tt>. Some actions are safe to + have their default policies set here though. So let's set a default + policy to have a <span class="QUOTE">"blank"</span> image as opposed + to the checkerboard pattern for <span class= + "emphasis EMPHASIS c2">ALL</span> sites. <span class= + "QUOTE">"/"</span> of course matches all URL paths and patterns:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> { +<a href= "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker{blank}</a> } / # ALL sites </pre> - </td> - </tr> - </table> - </div> + </td> + </tr> + </table> </div> </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="config.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="filter-file.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - The Main Configuration File - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Filter Files - </td> - </tr> - </table> - </div> - </body> -</html> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="config.html" + accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + <td width="33%" align="right" valign="top"><a href="filter-file.html" + accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">The Main Configuration + File</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Filter Files</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/user-manual/appendix.html b/doc/webserver/user-manual/appendix.html index 8bc96bc4..45b706d0 100644 --- a/doc/webserver/user-manual/appendix.html +++ b/doc/webserver/user-manual/appendix.html @@ -1,766 +1,661 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Appendix - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> - <link rel="PREVIOUS" title="See Also" href="seealso.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <link rel="STYLESHEET" type="text/css" href="p_doc.css"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Appendix</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> + <link rel="PREVIOUS" title="See Also" href="seealso.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <link rel="STYLESHEET" type="text/css" href="p_doc.css"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy 3.0.18 User Manual - </th> - </tr> - <tr> - <td width="10%" align="left" valign="bottom"> - <a href="seealso.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - - </td> - </tr> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + table.c3 {background-color: #E0E0E0} + span.c2 {font-style: italic} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy 3.0.18 User Manual</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href="seealso.html" + accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"> </td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="APPENDIX" id="APPENDIX">14. Appendix</a></h1> + + <div class="SECT2"> + <h2 class="SECT2"><a name="REGEX" id="REGEX">14.1. Regular + Expressions</a></h2> + + <p><span class="APPLICATION">Privoxy</span> uses Perl-style + <span class="QUOTE">"regular expressions"</span> in its <a href= + "actions-file.html">actions files</a> and <a href= + "filter-file.html">filter file</a>, through the <a href= + "http://www.pcre.org/" target="_top">PCRE</a> and <span class= + "APPLICATION">PCRS</span> libraries.</p> + + <p>If you are reading this, you probably don't understand what + <span class="QUOTE">"regular expressions"</span> are, or what they can + do. So this will be a very brief introduction only. A full explanation + would require a <a href="http://www.oreilly.com/catalog/regex/" target= + "_top">book</a> ;-)</p> + + <p>Regular expressions provide a language to describe patterns that can + be run against strings of characters (letter, numbers, etc), to see if + they match the string or not. The patterns are themselves (sometimes + complex) strings of literal characters, combined with wild-cards, and + other special characters, called meta-characters. The <span class= + "QUOTE">"meta-characters"</span> have special meanings and are used to + build complex patterns to be matched against. Perl Compatible Regular + Expressions are an especially convenient <span class= + "QUOTE">"dialect"</span> of the regular expression language.</p> + + <p>To make a simple analogy, we do something similar when we use + wild-card characters when listing files with the <b class= + "COMMAND">dir</b> command in DOS. <tt class="LITERAL">*.*</tt> matches + all filenames. The <span class="QUOTE">"special"</span> character here + is the asterisk which matches any and all characters. We can be more + specific and use <tt class="LITERAL">?</tt> to match just individual + characters. So <span class="QUOTE">"dir file?.text"</span> would match + <span class="QUOTE">"file1.txt"</span>, <span class= + "QUOTE">"file2.txt"</span>, etc. We are pattern matching, using a + similar technique to <span class="QUOTE">"regular + expressions"</span>!</p> + + <p>Regular expressions do essentially the same thing, but are much, + much more powerful. There are many more <span class="QUOTE">"special + characters"</span> and ways of building complex patterns however. Let's + look at a few of the common ones, and then some examples:</p> + + <table border="0"> + <tbody> + <tr> + <td><span class="emphasis EMPHASIS c2">.</span> - Matches any + single character, e.g. <span class="QUOTE">"a"</span>, + <span class="QUOTE">"A"</span>, <span class="QUOTE">"4"</span>, + <span class="QUOTE">":"</span>, or <span class= + "QUOTE">"@"</span>.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><span class="emphasis EMPHASIS c2">?</span> - The preceding + character or expression is matched ZERO or ONE times. + Either/or.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><span class="emphasis EMPHASIS c2">+</span> - The preceding + character or expression is matched ONE or MORE times.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><span class="emphasis EMPHASIS c2">*</span> - The preceding + character or expression is matched ZERO or MORE times.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><span class="emphasis EMPHASIS c2">\</span> - The + <span class="QUOTE">"escape"</span> character denotes that the + following character should be taken literally. This is used where + one of the special characters (e.g. <span class= + "QUOTE">"."</span>) needs to be taken literally and not as a + special meta-character. Example: <span class= + "QUOTE">"example\.com"</span>, makes sure the period is + recognized only as a period (and not expanded to its + meta-character meaning of any single character).</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><span class="emphasis EMPHASIS c2">[ ]</span> - Characters + enclosed in brackets will be matched if any of the enclosed + characters are encountered. For instance, <span class= + "QUOTE">"[0-9]"</span> matches any numeric digit (zero through + nine). As an example, we can combine this with <span class= + "QUOTE">"+"</span> to match any digit one of more times: + <span class="QUOTE">"[0-9]+"</span>.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><span class="emphasis EMPHASIS c2">( )</span> - parentheses + are used to group a sub-expression, or multiple + sub-expressions.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><span class="emphasis EMPHASIS c2">|</span> - The + <span class="QUOTE">"bar"</span> character works like an + <span class="QUOTE">"or"</span> conditional statement. A match is + successful if the sub-expression on either side of <span class= + "QUOTE">"|"</span> matches. As an example: <span class= + "QUOTE">"/(this|that) example/"</span> uses grouping and the bar + character and would match either <span class="QUOTE">"this + example"</span> or <span class="QUOTE">"that example"</span>, and + nothing else.</td> + </tr> + </tbody> </table> - <hr width="100%" class="c1"> + + <p>These are just some of the ones you are likely to use when matching + URLs with <span class="APPLICATION">Privoxy</span>, and is a long way + from a definitive list. This is enough to get us started with a few + simple examples which may be more illuminating:</p> + + <p><span class="emphasis EMPHASIS c2"><tt class= + "LITERAL">/.*/banners/.*</tt></span> - A simple example that uses the + common combination of <span class="QUOTE">"."</span> and <span class= + "QUOTE">"*"</span> to denote any character, zero or more times. In + other words, any string at all. So we start with a literal forward + slash, then our regular expression pattern (<span class= + "QUOTE">".*"</span>) another literal forward slash, the string + <span class="QUOTE">"banners"</span>, another forward slash, and lastly + another <span class="QUOTE">".*"</span>. We are building a directory + path here. This will match any file with the path that has a directory + named <span class="QUOTE">"banners"</span> in it. The <span class= + "QUOTE">".*"</span> matches any characters, and this could conceivably + be more forward slashes, so it might expand into a much longer looking + path. For example, this could match: <span class= + "QUOTE">"/eye/hate/spammers/banners/annoy_me_please.gif"</span>, or + just <span class="QUOTE">"/banners/annoying.html"</span>, or almost an + infinite number of other possible combinations, just so it has + <span class="QUOTE">"banners"</span> in the path somewhere.</p> + + <p>And now something a little more complex:</p> + + <p><span class="emphasis EMPHASIS c2"><tt class= + "LITERAL">/.*/adv((er)?ts?|ertis(ing|ements?))?/</tt></span> - We have + several literal forward slashes again (<span class="QUOTE">"/"</span>), + so we are building another expression that is a file path statement. We + have another <span class="QUOTE">".*"</span>, so we are matching + against any conceivable sub-path, just so it matches our expression. + The only true literal that <span class="emphasis EMPHASIS c2">must + match</span> our pattern is <span class="APPLICATION">adv</span>, + together with the forward slashes. What comes after the <span class= + "QUOTE">"adv"</span> string is the interesting part.</p> + + <p>Remember the <span class="QUOTE">"?"</span> means the preceding + expression (either a literal character or anything grouped with + <span class="QUOTE">"(...)"</span> in this case) can exist or not, + since this means either zero or one match. So <span class= + "QUOTE">"((er)?ts?|ertis(ing|ements?))"</span> is optional, as are the + individual sub-expressions: <span class="QUOTE">"(er)"</span>, + <span class="QUOTE">"(ing|ements?)"</span>, and the <span class= + "QUOTE">"s"</span>. The <span class="QUOTE">"|"</span> means + <span class="QUOTE">"or"</span>. We have two of those. For instance, + <span class="QUOTE">"(ing|ements?)"</span>, can expand to match either + <span class="QUOTE">"ing"</span> <span class= + "emphasis EMPHASIS c2">OR</span> <span class="QUOTE">"ements?"</span>. + What is being done here, is an attempt at matching as many variations + of <span class="QUOTE">"advertisement"</span>, and similar, as + possible. So this would expand to match just <span class= + "QUOTE">"adv"</span>, or <span class="QUOTE">"advert"</span>, or + <span class="QUOTE">"adverts"</span>, or <span class= + "QUOTE">"advertising"</span>, or <span class= + "QUOTE">"advertisement"</span>, or <span class= + "QUOTE">"advertisements"</span>. You get the idea. But it would not + match <span class="QUOTE">"advertizements"</span> (with a <span class= + "QUOTE">"z"</span>). We could fix that by changing our regular + expression to: <span class= + "QUOTE">"/.*/adv((er)?ts?|erti(s|z)(ing|ements?))?/"</span>, which + would then match either spelling.</p> + + <p><span class="emphasis EMPHASIS c2"><tt class= + "LITERAL">/.*/advert[0-9]+\.(gif|jpe?g)</tt></span> - Again another + path statement with forward slashes. Anything in the square brackets + <span class="QUOTE">"[ ]"</span> can be matched. This is using + <span class="QUOTE">"0-9"</span> as a shorthand expression to mean any + digit one through nine. It is the same as saying <span class= + "QUOTE">"0123456789"</span>. So any digit matches. The <span class= + "QUOTE">"+"</span> means one or more of the preceding expression must + be included. The preceding expression here is what is in the square + brackets -- in this case, any digit one through nine. Then, at the end, + we have a grouping: <span class="QUOTE">"(gif|jpe?g)"</span>. This + includes a <span class="QUOTE">"|"</span>, so this needs to match the + expression on either side of that bar character also. A simple + <span class="QUOTE">"gif"</span> on one side, and the other side will + in turn match either <span class="QUOTE">"jpeg"</span> or <span class= + "QUOTE">"jpg"</span>, since the <span class="QUOTE">"?"</span> means + the letter <span class="QUOTE">"e"</span> is optional and can be + matched once or not at all. So we are building an expression here to + match image GIF or JPEG type image file. It must include the literal + string <span class="QUOTE">"advert"</span>, then one or more digits, + and a <span class="QUOTE">"."</span> (which is now a literal, and not a + special character, since it is escaped with <span class= + "QUOTE">"\"</span>), and lastly either <span class= + "QUOTE">"gif"</span>, or <span class="QUOTE">"jpeg"</span>, or + <span class="QUOTE">"jpg"</span>. Some possible matches would include: + <span class="QUOTE">"//advert1.jpg"</span>, <span class= + "QUOTE">"/nasty/ads/advert1234.gif"</span>, <span class= + "QUOTE">"/banners/from/hell/advert99.jpg"</span>. It would not match + <span class="QUOTE">"advert1.gif"</span> (no leading slash), or + <span class="QUOTE">"/adverts232.jpg"</span> (the expression does not + include an <span class="QUOTE">"s"</span>), or <span class= + "QUOTE">"/advert1.jsp"</span> (<span class="QUOTE">"jsp"</span> is not + in the expression anywhere).</p> + + <p>We are barely scratching the surface of regular expressions here so + that you can understand the default <span class= + "APPLICATION">Privoxy</span> configuration files, and maybe use this + knowledge to customize your own installation. There is much, much more + that can be done with regular expressions. Now that you know enough to + get started, you can learn more on your own :/</p> + + <p>More reading on Perl Compatible Regular expressions: <a href= + "http://perldoc.perl.org/perlre.html" target= + "_top">http://perldoc.perl.org/perlre.html</a></p> + + <p>For information on regular expression based substitutions and their + applications in filters, please see the <a href= + "filter-file.html">filter file tutorial</a> in this manual.</p> </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="APPENDIX">14. Appendix</a> - </h1> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="REGEX">14.1. Regular Expressions</a> - </h2> - <p> - <span class="APPLICATION">Privoxy</span> uses Perl-style <span - class="QUOTE">"regular expressions"</span> in its <a href= - "actions-file.html">actions files</a> and <a href= - "filter-file.html">filter file</a>, through the <a href= - "http://www.pcre.org/" target="_top">PCRE</a> and <span class= - "APPLICATION">PCRS</span> libraries. - </p> - <p> - If you are reading this, you probably don't understand what <span - class="QUOTE">"regular expressions"</span> are, or what they can - do. So this will be a very brief introduction only. A full - explanation would require a <a href= - "http://www.oreilly.com/catalog/regex/" target="_top">book</a> ;-) - </p> - <p> - Regular expressions provide a language to describe patterns that - can be run against strings of characters (letter, numbers, etc), to - see if they match the string or not. The patterns are themselves - (sometimes complex) strings of literal characters, combined with - wild-cards, and other special characters, called meta-characters. - The <span class="QUOTE">"meta-characters"</span> have special - meanings and are used to build complex patterns to be matched - against. Perl Compatible Regular Expressions are an especially - convenient <span class="QUOTE">"dialect"</span> of the regular - expression language. - </p> - <p> - To make a simple analogy, we do something similar when we use - wild-card characters when listing files with the <b class= - "COMMAND">dir</b> command in DOS. <tt class="LITERAL">*.*</tt> - matches all filenames. The <span class="QUOTE">"special"</span> - character here is the asterisk which matches any and all - characters. We can be more specific and use <tt class= - "LITERAL">?</tt> to match just individual characters. So <span - class="QUOTE">"dir file?.text"</span> would match <span class= - "QUOTE">"file1.txt"</span>, <span class="QUOTE">"file2.txt"</span>, - etc. We are pattern matching, using a similar technique to <span - class="QUOTE">"regular expressions"</span>! - </p> - <p> - Regular expressions do essentially the same thing, but are much, - much more powerful. There are many more <span class= - "QUOTE">"special characters"</span> and ways of building complex - patterns however. Let's look at a few of the common ones, and then - some examples: - </p> - <table border="0"> - <tbody> - <tr> - <td> - <span class="emphasis"><i class="EMPHASIS">.</i></span> - - Matches any single character, e.g. <span class= - "QUOTE">"a"</span>, <span class="QUOTE">"A"</span>, <span - class="QUOTE">"4"</span>, <span class="QUOTE">":"</span>, or - <span class="QUOTE">"@"</span>. - </td> - </tr> - </tbody> - </table> - - <table border="0"> - <tbody> - <tr> - <td> - <span class="emphasis"><i class="EMPHASIS">?</i></span> - The - preceding character or expression is matched ZERO or ONE - times. Either/or. - </td> - </tr> - </tbody> - </table> - - <table border="0"> - <tbody> - <tr> - <td> - <span class="emphasis"><i class="EMPHASIS">+</i></span> - The - preceding character or expression is matched ONE or MORE - times. - </td> - </tr> - </tbody> - </table> - - <table border="0"> - <tbody> - <tr> - <td> - <span class="emphasis"><i class="EMPHASIS">*</i></span> - The - preceding character or expression is matched ZERO or MORE - times. - </td> - </tr> - </tbody> - </table> - - <table border="0"> - <tbody> - <tr> - <td> - <span class="emphasis"><i class="EMPHASIS">\</i></span> - The - <span class="QUOTE">"escape"</span> character denotes that - the following character should be taken literally. This is - used where one of the special characters (e.g. <span class= - "QUOTE">"."</span>) needs to be taken literally and not as a - special meta-character. Example: <span class= - "QUOTE">"example\.com"</span>, makes sure the period is - recognized only as a period (and not expanded to its - meta-character meaning of any single character). - </td> - </tr> - </tbody> - </table> - - <table border="0"> - <tbody> - <tr> - <td> - <span class="emphasis"><i class="EMPHASIS">[ ]</i></span> - - Characters enclosed in brackets will be matched if any of the - enclosed characters are encountered. For instance, <span - class="QUOTE">"[0-9]"</span> matches any numeric digit (zero - through nine). As an example, we can combine this with <span - class="QUOTE">"+"</span> to match any digit one of more - times: <span class="QUOTE">"[0-9]+"</span>. - </td> - </tr> - </tbody> - </table> - - <table border="0"> - <tbody> - <tr> - <td> - <span class="emphasis"><i class="EMPHASIS">( )</i></span> - - parentheses are used to group a sub-expression, or multiple - sub-expressions. - </td> - </tr> - </tbody> - </table> - - <table border="0"> - <tbody> - <tr> - <td> - <span class="emphasis"><i class="EMPHASIS">|</i></span> - The - <span class="QUOTE">"bar"</span> character works like an - <span class="QUOTE">"or"</span> conditional statement. A - match is successful if the sub-expression on either side of - <span class="QUOTE">"|"</span> matches. As an example: <span - class="QUOTE">"/(this|that) example/"</span> uses grouping - and the bar character and would match either <span class= - "QUOTE">"this example"</span> or <span class="QUOTE">"that - example"</span>, and nothing else. - </td> - </tr> - </tbody> - </table> - - <p> - These are just some of the ones you are likely to use when matching - URLs with <span class="APPLICATION">Privoxy</span>, and is a long - way from a definitive list. This is enough to get us started with a - few simple examples which may be more illuminating: - </p> - <p> - <span class="emphasis"><i class="EMPHASIS"><tt class= - "LITERAL">/.*/banners/.*</tt></i></span> - A simple example that - uses the common combination of <span class="QUOTE">"."</span> and - <span class="QUOTE">"*"</span> to denote any character, zero or - more times. In other words, any string at all. So we start with a - literal forward slash, then our regular expression pattern (<span - class="QUOTE">".*"</span>) another literal forward slash, the - string <span class="QUOTE">"banners"</span>, another forward slash, - and lastly another <span class="QUOTE">".*"</span>. We are building - a directory path here. This will match any file with the path that - has a directory named <span class="QUOTE">"banners"</span> in it. - The <span class="QUOTE">".*"</span> matches any characters, and - this could conceivably be more forward slashes, so it might expand - into a much longer looking path. For example, this could match: - <span class= - "QUOTE">"/eye/hate/spammers/banners/annoy_me_please.gif"</span>, or - just <span class="QUOTE">"/banners/annoying.html"</span>, or almost - an infinite number of other possible combinations, just so it has - <span class="QUOTE">"banners"</span> in the path somewhere. - </p> - <p> - And now something a little more complex: - </p> - <p> - <span class="emphasis"><i class="EMPHASIS"><tt class= - "LITERAL">/.*/adv((er)?ts?|ertis(ing|ements?))?/</tt></i></span> - - We have several literal forward slashes again (<span class= - "QUOTE">"/"</span>), so we are building another expression that is - a file path statement. We have another <span class= - "QUOTE">".*"</span>, so we are matching against any conceivable - sub-path, just so it matches our expression. The only true literal - that <span class="emphasis"><i class="EMPHASIS">must - match</i></span> our pattern is <span class= - "APPLICATION">adv</span>, together with the forward slashes. What - comes after the <span class="QUOTE">"adv"</span> string is the - interesting part. - </p> - <p> - Remember the <span class="QUOTE">"?"</span> means the preceding - expression (either a literal character or anything grouped with - <span class="QUOTE">"(...)"</span> in this case) can exist or not, - since this means either zero or one match. So <span class= - "QUOTE">"((er)?ts?|ertis(ing|ements?))"</span> is optional, as are - the individual sub-expressions: <span class="QUOTE">"(er)"</span>, - <span class="QUOTE">"(ing|ements?)"</span>, and the <span class= - "QUOTE">"s"</span>. The <span class="QUOTE">"|"</span> means <span - class="QUOTE">"or"</span>. We have two of those. For instance, - <span class="QUOTE">"(ing|ements?)"</span>, can expand to match - either <span class="QUOTE">"ing"</span> <span class="emphasis"><i - class="EMPHASIS">OR</i></span> <span class= - "QUOTE">"ements?"</span>. What is being done here, is an attempt at - matching as many variations of <span class= - "QUOTE">"advertisement"</span>, and similar, as possible. So this - would expand to match just <span class="QUOTE">"adv"</span>, or - <span class="QUOTE">"advert"</span>, or <span class= - "QUOTE">"adverts"</span>, or <span class= - "QUOTE">"advertising"</span>, or <span class= - "QUOTE">"advertisement"</span>, or <span class= - "QUOTE">"advertisements"</span>. You get the idea. But it would not - match <span class="QUOTE">"advertizements"</span> (with a <span - class="QUOTE">"z"</span>). We could fix that by changing our - regular expression to: <span class= - "QUOTE">"/.*/adv((er)?ts?|erti(s|z)(ing|ements?))?/"</span>, which - would then match either spelling. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS"><tt class= - "LITERAL">/.*/advert[0-9]+\.(gif|jpe?g)</tt></i></span> - Again - another path statement with forward slashes. Anything in the square - brackets <span class="QUOTE">"[ ]"</span> can be matched. This is - using <span class="QUOTE">"0-9"</span> as a shorthand expression to - mean any digit one through nine. It is the same as saying <span - class="QUOTE">"0123456789"</span>. So any digit matches. The <span - class="QUOTE">"+"</span> means one or more of the preceding - expression must be included. The preceding expression here is what - is in the square brackets -- in this case, any digit one through - nine. Then, at the end, we have a grouping: <span class= - "QUOTE">"(gif|jpe?g)"</span>. This includes a <span class= - "QUOTE">"|"</span>, so this needs to match the expression on either - side of that bar character also. A simple <span class= - "QUOTE">"gif"</span> on one side, and the other side will in turn - match either <span class="QUOTE">"jpeg"</span> or <span class= - "QUOTE">"jpg"</span>, since the <span class="QUOTE">"?"</span> - means the letter <span class="QUOTE">"e"</span> is optional and can - be matched once or not at all. So we are building an expression - here to match image GIF or JPEG type image file. It must include - the literal string <span class="QUOTE">"advert"</span>, then one or - more digits, and a <span class="QUOTE">"."</span> (which is now a - literal, and not a special character, since it is escaped with - <span class="QUOTE">"\"</span>), and lastly either <span class= - "QUOTE">"gif"</span>, or <span class="QUOTE">"jpeg"</span>, or - <span class="QUOTE">"jpg"</span>. Some possible matches would - include: <span class="QUOTE">"//advert1.jpg"</span>, <span class= - "QUOTE">"/nasty/ads/advert1234.gif"</span>, <span class= - "QUOTE">"/banners/from/hell/advert99.jpg"</span>. It would not - match <span class="QUOTE">"advert1.gif"</span> (no leading slash), - or <span class="QUOTE">"/adverts232.jpg"</span> (the expression - does not include an <span class="QUOTE">"s"</span>), or <span - class="QUOTE">"/advert1.jsp"</span> (<span class= - "QUOTE">"jsp"</span> is not in the expression anywhere). - </p> - <p> - We are barely scratching the surface of regular expressions here so - that you can understand the default <span class= - "APPLICATION">Privoxy</span> configuration files, and maybe use - this knowledge to customize your own installation. There is much, - much more that can be done with regular expressions. Now that you - know enough to get started, you can learn more on your own :/ - </p> - <p> - More reading on Perl Compatible Regular expressions: <a href= - "http://perldoc.perl.org/perlre.html" target= - "_top">http://perldoc.perl.org/perlre.html</a> - </p> - <p> - For information on regular expression based substitutions and their - applications in filters, please see the <a href= - "filter-file.html">filter file tutorial</a> in this manual. - </p> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="AEN5636">14.2. Privoxy's Internal Pages</a> - </h2> - <p> - Since <span class="APPLICATION">Privoxy</span> proxies each - requested web page, it is easy for <span class= - "APPLICATION">Privoxy</span> to trap certain special URLs. In this - way, we can talk directly to <span class= - "APPLICATION">Privoxy</span>, and see how it is configured, see how - our rules are being applied, change these rules and other - configuration options, and even turn <span class= - "APPLICATION">Privoxy's</span> filtering off, all with a web - browser. - </p> - <p> - The URLs listed below are the special ones that allow direct access - to <span class="APPLICATION">Privoxy</span>. Of course, <span - class="APPLICATION">Privoxy</span> must be running to access these. - If not, you will get a friendly error message. Internet access is - not necessary either. - </p> - <p> - </p> - <ul> - <li> - <p> - Privoxy main page: - </p> - <a name="AEN5650"></a> - <blockquote class="BLOCKQUOTE"> - <p> - <a href="http://config.privoxy.org/" target= - "_top">http://config.privoxy.org/</a> - </p> - </blockquote> - <p> - There is a shortcut: <a href="http://p.p/" target= - "_top">http://p.p/</a> (But it doesn't provide a fall-back to a - real page, in case the request is not sent through <span class= - "APPLICATION">Privoxy</span>) - </p> - </li> - <li> - <p> - Show information about the current configuration, including - viewing and editing of actions files: - </p> - <a name="AEN5658"></a> - <blockquote class="BLOCKQUOTE"> - <p> - <a href="http://config.privoxy.org/show-status" target= - "_top">http://config.privoxy.org/show-status</a> - </p> - </blockquote> - </li> - <li> - <p> - Show the source code version numbers: - </p> - <a name="AEN5663"></a> - <blockquote class="BLOCKQUOTE"> - <p> - <a href="http://config.privoxy.org/show-version" target= - "_top">http://config.privoxy.org/show-version</a> - </p> - </blockquote> - </li> - <li> - <p> - Show the browser's request headers: - </p> - <a name="AEN5668"></a> - <blockquote class="BLOCKQUOTE"> - <p> - <a href="http://config.privoxy.org/show-request" target= - "_top">http://config.privoxy.org/show-request</a> - </p> - </blockquote> - </li> - <li> - <p> - Show which actions apply to a URL and why: - </p> - <a name="AEN5673"></a> - <blockquote class="BLOCKQUOTE"> - <p> - <a href="http://config.privoxy.org/show-url-info" target= - "_top">http://config.privoxy.org/show-url-info</a> - </p> - </blockquote> - </li> - <li> - <p> - Toggle Privoxy on or off. This feature can be turned off/on in - the main <tt class="FILENAME">config</tt> file. When toggled - <span class="QUOTE">"off"</span>, <span class= - "QUOTE">"Privoxy"</span> continues to run, but only as a - pass-through proxy, with no actions taking place: - </p> - <a name="AEN5681"></a> - <blockquote class="BLOCKQUOTE"> - <p> - <a href="http://config.privoxy.org/toggle" target= - "_top">http://config.privoxy.org/toggle</a> - </p> - </blockquote> - <p> - Short cuts. Turn off, then on: - </p> - <a name="AEN5685"></a> - <blockquote class="BLOCKQUOTE"> - <p> - <a href="http://config.privoxy.org/toggle?set=disable" - target= - "_top">http://config.privoxy.org/toggle?set=disable</a> - </p> - </blockquote> - <a name="AEN5688"></a> - <blockquote class="BLOCKQUOTE"> - <p> - <a href="http://config.privoxy.org/toggle?set=enable" target= - "_top">http://config.privoxy.org/toggle?set=enable</a> - </p> - </blockquote> - </li> - </ul> - <p> - These may be bookmarked for quick reference. See next. - </p> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="BOOKMARKLETS">14.2.1. Bookmarklets</a> - </h3> - <p> - Below are some <span class="QUOTE">"bookmarklets"</span> to allow - you to easily access a <span class="QUOTE">"mini"</span> version - of some of <span class="APPLICATION">Privoxy's</span> special - pages. They are designed for MS Internet Explorer, but should - work equally well in Netscape, Mozilla, and other browsers which - support JavaScript. They are designed to run directly from your - bookmarks - not by clicking the links below (although that should - work for testing). - </p> - <p> - To save them, right-click the link and choose <span class= - "QUOTE">"Add to Favorites"</span> (IE) or <span class= - "QUOTE">"Add Bookmark"</span> (Netscape). You will get a warning - that the bookmark <span class="QUOTE">"may not be safe"</span> - - just click OK. Then you can run the Bookmarklet directly from - your favorites/bookmarks. For even faster access, you can put - them on the <span class="QUOTE">"Links"</span> bar (IE) or the - <span class="QUOTE">"Personal Toolbar"</span> (Netscape), and run - them with a single click. - </p> - <p> - </p> - <ul> - <li> - <p> - <a href= - "javascript:void(window.open('http://config.privoxy.org/toggle?mini=y&set=enabled','ijbstatus','width=250,height=100,resizable=yes,scrollbars=no,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no').focus());" - target="_top">Privoxy - Enable</a> - </p> - </li> - <li> - <p> - <a href= - "javascript:void(window.open('http://config.privoxy.org/toggle?mini=y&set=disabled','ijbstatus','width=250,height=100,resizable=yes,scrollbars=no,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no').focus());" - target="_top">Privoxy - Disable</a> - </p> - </li> - <li> - <p> - <a href= - "javascript:void(window.open('http://config.privoxy.org/toggle?mini=y&set=toggle','ijbstatus','width=250,height=100,resizable=yes,scrollbars=no,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no').focus());" - target="_top">Privoxy - Toggle Privoxy</a> (Toggles between - enabled and disabled) - </p> - </li> - <li> - <p> - <a href= - "javascript:void(window.open('http://config.privoxy.org/toggle?mini=y','ijbstatus','width=250,height=2,resizable=yes,scrollbars=no,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no').focus());" - target="_top">Privoxy- View Status</a> - </p> - </li> - <li> - <p> - <a href= - "javascript:void(window.open('http://config.privoxy.org/show-url-info?url='+escape(location.href),'Why').focus());" - target="_top">Privoxy - Why?</a> - </p> - </li> - </ul> - - <p> - Credit: The site which gave us the general idea for these - bookmarklets is <a href="http://www.bookmarklets.com/" target= - "_top">www.bookmarklets.com</a>. They have more information about - bookmarklets. - </p> - </div> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="CHAIN">14.3. Chain of Events</a> - </h2> - <p> - Let's take a quick look at how some of <span class= - "APPLICATION">Privoxy's</span> core features are triggered, and the - ensuing sequence of events when a web page is requested by your - browser: - </p> - <p> - </p> + <div class="SECT2"> + <h2 class="SECT2"><a name="AEN5778" id="AEN5778">14.2. Privoxy's + Internal Pages</a></h2> + + <p>Since <span class="APPLICATION">Privoxy</span> proxies each + requested web page, it is easy for <span class= + "APPLICATION">Privoxy</span> to trap certain special URLs. In this way, + we can talk directly to <span class="APPLICATION">Privoxy</span>, and + see how it is configured, see how our rules are being applied, change + these rules and other configuration options, and even turn <span class= + "APPLICATION">Privoxy's</span> filtering off, all with a web + browser.</p> + + <p>The URLs listed below are the special ones that allow direct access + to <span class="APPLICATION">Privoxy</span>. Of course, <span class= + "APPLICATION">Privoxy</span> must be running to access these. If not, + you will get a friendly error message. Internet access is not necessary + either.</p> + + <ul> + <li> + <p>Privoxy main page:</p><a name="AEN5792" id="AEN5792"></a> + + <blockquote class="BLOCKQUOTE"> + <p><a href="http://config.privoxy.org/" target= + "_top">http://config.privoxy.org/</a></p> + </blockquote> + + <p>There is a shortcut: <a href="http://p.p/" target= + "_top">http://p.p/</a> (But it doesn't provide a fall-back to a + real page, in case the request is not sent through <span class= + "APPLICATION">Privoxy</span>)</p> + </li> + + <li> + <p>Show information about the current configuration, including + viewing and editing of actions files:</p><a name="AEN5800" id= + "AEN5800"></a> + + <blockquote class="BLOCKQUOTE"> + <p><a href="http://config.privoxy.org/show-status" target= + "_top">http://config.privoxy.org/show-status</a></p> + </blockquote> + </li> + + <li> + <p>Show the source code version numbers:</p><a name="AEN5805" id= + "AEN5805"></a> + + <blockquote class="BLOCKQUOTE"> + <p><a href="http://config.privoxy.org/show-version" target= + "_top">http://config.privoxy.org/show-version</a></p> + </blockquote> + </li> + + <li> + <p>Show the browser's request headers:</p><a name="AEN5810" id= + "AEN5810"></a> + + <blockquote class="BLOCKQUOTE"> + <p><a href="http://config.privoxy.org/show-request" target= + "_top">http://config.privoxy.org/show-request</a></p> + </blockquote> + </li> + + <li> + <p>Show which actions apply to a URL and why:</p><a name="AEN5815" + id="AEN5815"></a> + + <blockquote class="BLOCKQUOTE"> + <p><a href="http://config.privoxy.org/show-url-info" target= + "_top">http://config.privoxy.org/show-url-info</a></p> + </blockquote> + </li> + + <li> + <p>Toggle Privoxy on or off. This feature can be turned off/on in + the main <tt class="FILENAME">config</tt> file. When toggled + <span class="QUOTE">"off"</span>, <span class= + "QUOTE">"Privoxy"</span> continues to run, but only as a + pass-through proxy, with no actions taking place:</p><a name= + "AEN5823" id="AEN5823"></a> + + <blockquote class="BLOCKQUOTE"> + <p><a href="http://config.privoxy.org/toggle" target= + "_top">http://config.privoxy.org/toggle</a></p> + </blockquote> + + <p>Short cuts. Turn off, then on:</p><a name="AEN5827" id= + "AEN5827"></a> + + <blockquote class="BLOCKQUOTE"> + <p><a href="http://config.privoxy.org/toggle?set=disable" target= + "_top">http://config.privoxy.org/toggle?set=disable</a></p> + </blockquote><a name="AEN5830" id="AEN5830"></a> + + <blockquote class="BLOCKQUOTE"> + <p><a href="http://config.privoxy.org/toggle?set=enable" target= + "_top">http://config.privoxy.org/toggle?set=enable</a></p> + </blockquote> + </li> + </ul> + + <p>These may be bookmarked for quick reference. See next.</p> + + <div class="SECT3"> + <h3 class="SECT3"><a name="BOOKMARKLETS" id="BOOKMARKLETS">14.2.1. + Bookmarklets</a></h3> + + <p>Below are some <span class="QUOTE">"bookmarklets"</span> to allow + you to easily access a <span class="QUOTE">"mini"</span> version of + some of <span class="APPLICATION">Privoxy's</span> special pages. + They are designed for MS Internet Explorer, but should work equally + well in Netscape, Mozilla, and other browsers which support + JavaScript. They are designed to run directly from your bookmarks - + not by clicking the links below (although that should work for + testing).</p> + + <p>To save them, right-click the link and choose <span class= + "QUOTE">"Add to Favorites"</span> (IE) or <span class="QUOTE">"Add + Bookmark"</span> (Netscape). You will get a warning that the bookmark + <span class="QUOTE">"may not be safe"</span> - just click OK. Then + you can run the Bookmarklet directly from your favorites/bookmarks. + For even faster access, you can put them on the <span class= + "QUOTE">"Links"</span> bar (IE) or the <span class="QUOTE">"Personal + Toolbar"</span> (Netscape), and run them with a single click.</p> + <ul> <li> - <p> - First, your web browser requests a web page. The browser knows - to send the request to <span class= - "APPLICATION">Privoxy</span>, which will in turn, relay the - request to the remote web server after passing the following - tests: - </p> - </li> - <li> - <p> - <span class="APPLICATION">Privoxy</span> traps any request for - its own internal CGI pages (e.g <a href="http://p.p/" target= - "_top">http://p.p/</a>) and sends the CGI page back to the - browser. - </p> - </li> - <li> - <p> - Next, <span class="APPLICATION">Privoxy</span> checks to see if - the URL matches any <a href="actions-file.html#BLOCK"><span - class="QUOTE">"+block"</span></a> patterns. If so, the URL is - then blocked, and the remote web server will not be contacted. - <a href="actions-file.html#HANDLE-AS-IMAGE"><span class= - "QUOTE">"+handle-as-image"</span></a> and <a href= - "actions-file.html#HANDLE-AS-EMPTY-DOCUMENT"><span class= - "QUOTE">"+handle-as-empty-document"</span></a> are then - checked, and if there is no match, an HTML <span class= - "QUOTE">"BLOCKED"</span> page is sent back to the browser. - Otherwise, if it does match, an image is returned for the - former, and an empty text document for the latter. The type of - image would depend on the setting of <a href= - "actions-file.html#SET-IMAGE-BLOCKER"><span class= - "QUOTE">"+set-image-blocker"</span></a> (blank, checkerboard - pattern, or an HTTP redirect to an image elsewhere). - </p> - </li> - <li> - <p> - Untrusted URLs are blocked. If URLs are being added to the <tt - class="FILENAME">trust</tt> file, then that is done. - </p> - </li> - <li> - <p> - If the URL pattern matches the <a href= - "actions-file.html#FAST-REDIRECTS"><span class= - "QUOTE">"+fast-redirects"</span></a> action, it is then - processed. Unwanted parts of the requested URL are stripped. - </p> - </li> - <li> - <p> - Now the rest of the client browser's request headers are - processed. If any of these match any of the relevant actions - (e.g. <a href="actions-file.html#HIDE-USER-AGENT"><span class= - "QUOTE">"+hide-user-agent"</span></a>, etc.), headers are - suppressed or forged as determined by these actions and their - parameters. - </p> + <p><a href= + "javascript:void(window.open('http://config.privoxy.org/toggle?mini=y&set=enabled','ijbstatus','width=250,height=100,resizable=yes,scrollbars=no,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no').focus());" + target="_top">Privoxy - Enable</a></p> </li> + <li> - <p> - Now the web server starts sending its response back (i.e. - typically a web page). - </p> + <p><a href= + "javascript:void(window.open('http://config.privoxy.org/toggle?mini=y&set=disabled','ijbstatus','width=250,height=100,resizable=yes,scrollbars=no,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no').focus());" + target="_top">Privoxy - Disable</a></p> </li> + <li> - <p> - First, the server headers are read and processed to determine, - among other things, the MIME type (document type) and encoding. - The headers are then filtered as determined by the <a href= - "actions-file.html#CRUNCH-INCOMING-COOKIES"><span class= - "QUOTE">"+crunch-incoming-cookies"</span></a>, <a href= - "actions-file.html#SESSION-COOKIES-ONLY"><span class= - "QUOTE">"+session-cookies-only"</span></a>, and <a href= - "actions-file.html#DOWNGRADE-HTTP-VERSION"><span class= - "QUOTE">"+downgrade-http-version"</span></a> actions. - </p> + <p><a href= + "javascript:void(window.open('http://config.privoxy.org/toggle?mini=y&set=toggle','ijbstatus','width=250,height=100,resizable=yes,scrollbars=no,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no').focus());" + target="_top">Privoxy - Toggle Privoxy</a> (Toggles between + enabled and disabled)</p> </li> + <li> - <p> - If any <a href="actions-file.html#FILTER"><span class= - "QUOTE">"+filter"</span></a> action or <a href= - "actions-file.html#DEANIMATE-GIFS"><span class= - "QUOTE">"+deanimate-gifs"</span></a> action applies (and the - document type fits the action), the rest of the page is read - into memory (up to a configurable limit). Then the filter rules - (from <tt class="FILENAME">default.filter</tt> and any other - filter files) are processed against the buffered content. - Filters are applied in the order they are specified in one of - the filter files. Animated GIFs, if present, are reduced to - either the first or last frame, depending on the action - setting.The entire page, which is now filtered, is then sent by - <span class="APPLICATION">Privoxy</span> back to your browser. - </p> - <p> - If neither a <a href="actions-file.html#FILTER"><span class= - "QUOTE">"+filter"</span></a> action or <a href= - "actions-file.html#DEANIMATE-GIFS"><span class= - "QUOTE">"+deanimate-gifs"</span></a> matches, then <span class= - "APPLICATION">Privoxy</span> passes the raw data through to the - client browser as it becomes available. - </p> + <p><a href= + "javascript:void(window.open('http://config.privoxy.org/toggle?mini=y','ijbstatus','width=250,height=2,resizable=yes,scrollbars=no,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no').focus());" + target="_top">Privoxy- View Status</a></p> </li> + <li> - <p> - As the browser receives the now (possibly filtered) page - content, it reads and then requests any URLs that may be - embedded within the page source, e.g. ad images, stylesheets, - JavaScript, other HTML documents (e.g. frames), sounds, etc. - For each of these objects, the browser issues a separate - request (this is easily viewable in <span class= - "APPLICATION">Privoxy's</span> logs). And each such request is - in turn processed just as above. Note that a complex web page - will have many, many such embedded URLs. If these secondary - requests are to a different server, then quite possibly a very - differing set of actions is triggered. - </p> + <p><a href= + "javascript:void(window.open('http://config.privoxy.org/show-url-info?url='+escape(location.href),'Why').focus());" + target="_top">Privoxy - Why?</a></p> </li> </ul> - <p> - NOTE: This is somewhat of a simplistic overview of what happens - with each URL request. For the sake of brevity and simplicity, we - have focused on <span class="APPLICATION">Privoxy's</span> core - features only. - </p> + <p>Credit: The site which gave us the general idea for these + bookmarklets is <a href="http://www.bookmarklets.com/" target= + "_top">www.bookmarklets.com</a>. They have more information about + bookmarklets.</p> </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="ACTIONSANAT">14.4. Troubleshooting: Anatomy of an - Action</a> - </h2> - <p> - The way <span class="APPLICATION">Privoxy</span> applies <a href= - "actions-file.html#ACTIONS">actions</a> and <a href= - "actions-file.html#FILTER">filters</a> to any given URL can be - complex, and not always so easy to understand what is happening. - And sometimes we need to be able to <span class="emphasis"><i - class="EMPHASIS">see</i></span> just what <span class= - "APPLICATION">Privoxy</span> is doing. Especially, if something - <span class="APPLICATION">Privoxy</span> is doing is causing us a - problem inadvertently. It can be a little daunting to look at the - actions and filters files themselves, since they tend to be filled - with <a href="appendix.html#REGEX">regular expressions</a> whose - consequences are not always so obvious. - </p> - <p> - One quick test to see if <span class="APPLICATION">Privoxy</span> - is causing a problem or not, is to disable it temporarily. This - should be the first troubleshooting step. See <a href= - "appendix.html#BOOKMARKLETS">the Bookmarklets</a> section on a - quick and easy way to do this (be sure to flush caches afterward!). - Looking at the logs is a good idea too. (Note that both the toggle - feature and logging are enabled via <tt class= - "FILENAME">config</tt> file settings, and may need to be turned - <span class="QUOTE">"on"</span>.) - </p> - <p> - Another easy troubleshooting step to try is if you have done any - customization of your installation, revert back to the installed - defaults and see if that helps. There are times the developers get - complaints about one thing or another, and the problem is more - related to a customized configuration issue. - </p> - <p> - <span class="APPLICATION">Privoxy</span> also provides the <a href= - "http://config.privoxy.org/show-url-info" target= - "_top">http://config.privoxy.org/show-url-info</a> page that can - show us very specifically how <span class= - "APPLICATION">actions</span> are being applied to any given URL. - This is a big help for troubleshooting. - </p> - <p> - First, enter one URL (or partial URL) at the prompt, and then <span - class="APPLICATION">Privoxy</span> will tell us how the current - configuration will handle it. This will not help with filtering - effects (i.e. the <a href="actions-file.html#FILTER"><span class= - "QUOTE">"+filter"</span></a> action) from one of the filter files - since this is handled very differently and not so easy to trap! It - also will not tell you about any other URLs that may be embedded - within the URL you are testing. For instance, images such as ads - are expressed as URLs within the raw page source of HTML pages. So - you will only get info for the actual URL that is pasted into the - prompt area -- not any sub-URLs. If you want to know about embedded - URLs like ads, you will have to dig those out of the HTML source. - Use your browser's <span class="QUOTE">"View Page Source"</span> - option for this. Or right click on the ad, and grab the URL. - </p> - <p> - Let's try an example, <a href="http://google.com" target= - "_top">google.com</a>, and look at it one section at a time in a - sample configuration (your real configuration may vary): - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="CHAIN" id="CHAIN">14.3. Chain of + Events</a></h2> + + <p>Let's take a quick look at how some of <span class= + "APPLICATION">Privoxy's</span> core features are triggered, and the + ensuing sequence of events when a web page is requested by your + browser:</p> + + <ul> + <li> + <p>First, your web browser requests a web page. The browser knows + to send the request to <span class="APPLICATION">Privoxy</span>, + which will in turn, relay the request to the remote web server + after passing the following tests:</p> + </li> + + <li> + <p><span class="APPLICATION">Privoxy</span> traps any request for + its own internal CGI pages (e.g <a href="http://p.p/" target= + "_top">http://p.p/</a>) and sends the CGI page back to the + browser.</p> + </li> + + <li> + <p>Next, <span class="APPLICATION">Privoxy</span> checks to see if + the URL matches any <a href="actions-file.html#BLOCK"><span class= + "QUOTE">"+block"</span></a> patterns. If so, the URL is then + blocked, and the remote web server will not be contacted. <a href= + "actions-file.html#HANDLE-AS-IMAGE"><span class= + "QUOTE">"+handle-as-image"</span></a> and <a href= + "actions-file.html#HANDLE-AS-EMPTY-DOCUMENT"><span class= + "QUOTE">"+handle-as-empty-document"</span></a> are then checked, + and if there is no match, an HTML <span class= + "QUOTE">"BLOCKED"</span> page is sent back to the browser. + Otherwise, if it does match, an image is returned for the former, + and an empty text document for the latter. The type of image would + depend on the setting of <a href= + "actions-file.html#SET-IMAGE-BLOCKER"><span class= + "QUOTE">"+set-image-blocker"</span></a> (blank, checkerboard + pattern, or an HTTP redirect to an image elsewhere).</p> + </li> + + <li> + <p>Untrusted URLs are blocked. If URLs are being added to the + <tt class="FILENAME">trust</tt> file, then that is done.</p> + </li> + + <li> + <p>If the URL pattern matches the <a href= + "actions-file.html#FAST-REDIRECTS"><span class= + "QUOTE">"+fast-redirects"</span></a> action, it is then processed. + Unwanted parts of the requested URL are stripped.</p> + </li> + + <li> + <p>Now the rest of the client browser's request headers are + processed. If any of these match any of the relevant actions (e.g. + <a href="actions-file.html#HIDE-USER-AGENT"><span class= + "QUOTE">"+hide-user-agent"</span></a>, etc.), headers are + suppressed or forged as determined by these actions and their + parameters.</p> + </li> + + <li> + <p>Now the web server starts sending its response back (i.e. + typically a web page).</p> + </li> + + <li> + <p>First, the server headers are read and processed to determine, + among other things, the MIME type (document type) and encoding. The + headers are then filtered as determined by the <a href= + "actions-file.html#CRUNCH-INCOMING-COOKIES"><span class= + "QUOTE">"+crunch-incoming-cookies"</span></a>, <a href= + "actions-file.html#SESSION-COOKIES-ONLY"><span class= + "QUOTE">"+session-cookies-only"</span></a>, and <a href= + "actions-file.html#DOWNGRADE-HTTP-VERSION"><span class= + "QUOTE">"+downgrade-http-version"</span></a> actions.</p> + </li> + + <li> + <p>If any <a href="actions-file.html#FILTER"><span class= + "QUOTE">"+filter"</span></a> action or <a href= + "actions-file.html#DEANIMATE-GIFS"><span class= + "QUOTE">"+deanimate-gifs"</span></a> action applies (and the + document type fits the action), the rest of the page is read into + memory (up to a configurable limit). Then the filter rules (from + <tt class="FILENAME">default.filter</tt> and any other filter + files) are processed against the buffered content. Filters are + applied in the order they are specified in one of the filter files. + Animated GIFs, if present, are reduced to either the first or last + frame, depending on the action setting.The entire page, which is + now filtered, is then sent by <span class= + "APPLICATION">Privoxy</span> back to your browser.</p> + + <p>If neither a <a href="actions-file.html#FILTER"><span class= + "QUOTE">"+filter"</span></a> action or <a href= + "actions-file.html#DEANIMATE-GIFS"><span class= + "QUOTE">"+deanimate-gifs"</span></a> matches, then <span class= + "APPLICATION">Privoxy</span> passes the raw data through to the + client browser as it becomes available.</p> + </li> + + <li> + <p>As the browser receives the now (possibly filtered) page + content, it reads and then requests any URLs that may be embedded + within the page source, e.g. ad images, stylesheets, JavaScript, + other HTML documents (e.g. frames), sounds, etc. For each of these + objects, the browser issues a separate request (this is easily + viewable in <span class="APPLICATION">Privoxy's</span> logs). And + each such request is in turn processed just as above. Note that a + complex web page will have many, many such embedded URLs. If these + secondary requests are to a different server, then quite possibly a + very differing set of actions is triggered.</p> + </li> + </ul> + + <p>NOTE: This is somewhat of a simplistic overview of what happens with + each URL request. For the sake of brevity and simplicity, we have + focused on <span class="APPLICATION">Privoxy's</span> core features + only.</p> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="ACTIONSANAT" id="ACTIONSANAT">14.4. + Troubleshooting: Anatomy of an Action</a></h2> + + <p>The way <span class="APPLICATION">Privoxy</span> applies <a href= + "actions-file.html#ACTIONS">actions</a> and <a href= + "actions-file.html#FILTER">filters</a> to any given URL can be complex, + and not always so easy to understand what is happening. And sometimes + we need to be able to <span class="emphasis EMPHASIS c2">see</span> + just what <span class="APPLICATION">Privoxy</span> is doing. + Especially, if something <span class="APPLICATION">Privoxy</span> is + doing is causing us a problem inadvertently. It can be a little + daunting to look at the actions and filters files themselves, since + they tend to be filled with <a href="appendix.html#REGEX">regular + expressions</a> whose consequences are not always so obvious.</p> + + <p>One quick test to see if <span class="APPLICATION">Privoxy</span> is + causing a problem or not, is to disable it temporarily. This should be + the first troubleshooting step. See <a href= + "appendix.html#BOOKMARKLETS">the Bookmarklets</a> section on a quick + and easy way to do this (be sure to flush caches afterward!). Looking + at the logs is a good idea too. (Note that both the toggle feature and + logging are enabled via <tt class="FILENAME">config</tt> file settings, + and may need to be turned <span class="QUOTE">"on"</span>.)</p> + + <p>Another easy troubleshooting step to try is if you have done any + customization of your installation, revert back to the installed + defaults and see if that helps. There are times the developers get + complaints about one thing or another, and the problem is more related + to a customized configuration issue.</p> + + <p><span class="APPLICATION">Privoxy</span> also provides the <a href= + "http://config.privoxy.org/show-url-info" target= + "_top">http://config.privoxy.org/show-url-info</a> page that can show + us very specifically how <span class="APPLICATION">actions</span> are + being applied to any given URL. This is a big help for + troubleshooting.</p> + + <p>First, enter one URL (or partial URL) at the prompt, and then + <span class="APPLICATION">Privoxy</span> will tell us how the current + configuration will handle it. This will not help with filtering effects + (i.e. the <a href="actions-file.html#FILTER"><span class= + "QUOTE">"+filter"</span></a> action) from one of the filter files since + this is handled very differently and not so easy to trap! It also will + not tell you about any other URLs that may be embedded within the URL + you are testing. For instance, images such as ads are expressed as URLs + within the raw page source of HTML pages. So you will only get info for + the actual URL that is pasted into the prompt area -- not any sub-URLs. + If you want to know about embedded URLs like ads, you will have to dig + those out of the HTML source. Use your browser's <span class= + "QUOTE">"View Page Source"</span> option for this. Or right click on + the ad, and grab the URL.</p> + + <p>Let's try an example, <a href="http://google.com" target= + "_top">google.com</a>, and look at it one section at a time in a sample + configuration (your real configuration may vary):</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> Matches for http://www.google.com: In file: default.action <span class="GUIBUTTON">[ View ]</span> <span class= @@ -791,80 +686,70 @@ In file: user.action <span class="GUIBUTTON">[ View ]</span> <span class= "GUIBUTTON">[ Edit ]</span> (no matches in this file) </pre> - </td> - </tr> - </table> - - <p> - This is telling us how we have defined our <a href= - "actions-file.html#ACTIONS"><span class= - "QUOTE">"actions"</span></a>, and which ones match for our test - case, <span class="QUOTE">"google.com"</span>. Displayed is all the - actions that are available to us. Remember, the <tt class= - "LITERAL">+</tt> sign denotes <span class="QUOTE">"on"</span>. <tt - class="LITERAL">-</tt> denotes <span class="QUOTE">"off"</span>. So - some are <span class="QUOTE">"on"</span> here, but many are <span - class="QUOTE">"off"</span>. Each example we try may provide a - slightly different end result, depending on our configuration - directives. - </p> - <p> - The first listing is for our <tt class= - "FILENAME">default.action</tt> file. The large, multi-line listing, - is how the actions are set to match for all URLs, i.e. our default - settings. If you look at your <span class="QUOTE">"actions"</span> - file, this would be the section just below the <span class= - "QUOTE">"aliases"</span> section near the top. This will apply to - all URLs as signified by the single forward slash at the end of the - listing -- <span class="QUOTE">" / "</span>. - </p> - <p> - But we have defined additional actions that would be exceptions to - these general rules, and then we list specific URLs (or patterns) - that these exceptions would apply to. Last match wins. Just below - this then are two explicit matches for <span class= - "QUOTE">".google.com"</span>. The first is negating our previous - cookie setting, which was for <a href= - "actions-file.html#SESSION-COOKIES-ONLY"><span class= - "QUOTE">"+session-cookies-only"</span></a> (i.e. not persistent). - So we will allow persistent cookies for google, at least that is - how it is in this example. The second turns <span class= - "emphasis"><i class="EMPHASIS">off</i></span> any <a href= - "actions-file.html#FAST-REDIRECTS"><span class= - "QUOTE">"+fast-redirects"</span></a> action, allowing this to take - place unmolested. Note that there is a leading dot here -- <span - class="QUOTE">".google.com"</span>. This will match any hosts and - sub-domains, in the google.com domain also, such as <span class= - "QUOTE">"www.google.com"</span> or <span class= - "QUOTE">"mail.google.com"</span>. But it would not match <span - class="QUOTE">"www.google.de"</span>! So, apparently, we have these - two actions defined as exceptions to the general rules at the top - somewhere in the lower part of our <tt class= - "FILENAME">default.action</tt> file, and <span class= - "QUOTE">"google.com"</span> is referenced somewhere in these latter - sections. - </p> - <p> - Then, for our <tt class="FILENAME">user.action</tt> file, we again - have no hits. So there is nothing google-specific that we might - have added to our own, local configuration. If there was, those - actions would over-rule any actions from previously processed - files, such as <tt class="FILENAME">default.action</tt>. <tt class= - "FILENAME">user.action</tt> typically has the last word. This is - the best place to put hard and fast exceptions, - </p> - <p> - And finally we pull it all together in the bottom section and - summarize how <span class="APPLICATION">Privoxy</span> is applying - all its <span class="QUOTE">"actions"</span> to <span class= - "QUOTE">"google.com"</span>: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>This is telling us how we have defined our <a href= + "actions-file.html#ACTIONS"><span class="QUOTE">"actions"</span></a>, + and which ones match for our test case, <span class= + "QUOTE">"google.com"</span>. Displayed is all the actions that are + available to us. Remember, the <tt class="LITERAL">+</tt> sign denotes + <span class="QUOTE">"on"</span>. <tt class="LITERAL">-</tt> denotes + <span class="QUOTE">"off"</span>. So some are <span class= + "QUOTE">"on"</span> here, but many are <span class= + "QUOTE">"off"</span>. Each example we try may provide a slightly + different end result, depending on our configuration directives.</p> + + <p>The first listing is for our <tt class= + "FILENAME">default.action</tt> file. The large, multi-line listing, is + how the actions are set to match for all URLs, i.e. our default + settings. If you look at your <span class="QUOTE">"actions"</span> + file, this would be the section just below the <span class= + "QUOTE">"aliases"</span> section near the top. This will apply to all + URLs as signified by the single forward slash at the end of the listing + -- <span class="QUOTE">" / "</span>.</p> + + <p>But we have defined additional actions that would be exceptions to + these general rules, and then we list specific URLs (or patterns) that + these exceptions would apply to. Last match wins. Just below this then + are two explicit matches for <span class="QUOTE">".google.com"</span>. + The first is negating our previous cookie setting, which was for + <a href="actions-file.html#SESSION-COOKIES-ONLY"><span class= + "QUOTE">"+session-cookies-only"</span></a> (i.e. not persistent). So we + will allow persistent cookies for google, at least that is how it is in + this example. The second turns <span class= + "emphasis EMPHASIS c2">off</span> any <a href= + "actions-file.html#FAST-REDIRECTS"><span class= + "QUOTE">"+fast-redirects"</span></a> action, allowing this to take + place unmolested. Note that there is a leading dot here -- <span class= + "QUOTE">".google.com"</span>. This will match any hosts and + sub-domains, in the google.com domain also, such as <span class= + "QUOTE">"www.google.com"</span> or <span class= + "QUOTE">"mail.google.com"</span>. But it would not match <span class= + "QUOTE">"www.google.de"</span>! So, apparently, we have these two + actions defined as exceptions to the general rules at the top somewhere + in the lower part of our <tt class="FILENAME">default.action</tt> file, + and <span class="QUOTE">"google.com"</span> is referenced somewhere in + these latter sections.</p> + + <p>Then, for our <tt class="FILENAME">user.action</tt> file, we again + have no hits. So there is nothing google-specific that we might have + added to our own, local configuration. If there was, those actions + would over-rule any actions from previously processed files, such as + <tt class="FILENAME">default.action</tt>. <tt class= + "FILENAME">user.action</tt> typically has the last word. This is the + best place to put hard and fast exceptions,</p> + + <p>And finally we pull it all together in the bottom section and + summarize how <span class="APPLICATION">Privoxy</span> is applying all + its <span class="QUOTE">"actions"</span> to <span class= + "QUOTE">"google.com"</span>:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> Final results: -add-header @@ -924,27 +809,23 @@ In file: user.action <span class="GUIBUTTON">[ View ]</span> <span class= -session-cookies-only +set-image-blocker {pattern} </pre> - </td> - </tr> - </table> - - <p> - Notice the only difference here to the previous listing, is to - <span class="QUOTE">"fast-redirects"</span> and <span class= - "QUOTE">"session-cookies-only"</span>, which are activated - specifically for this site in our configuration, and thus show in - the <span class="QUOTE">"Final Results"</span>. - </p> - <p> - Now another example, <span class= - "QUOTE">"ad.doubleclick.net"</span>: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>Notice the only difference here to the previous listing, is to + <span class="QUOTE">"fast-redirects"</span> and <span class= + "QUOTE">"session-cookies-only"</span>, which are activated specifically + for this site in our configuration, and thus show in the <span class= + "QUOTE">"Final Results"</span>.</p> + + <p>Now another example, <span class= + "QUOTE">"ad.doubleclick.net"</span>:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> { +block{Domains starts with "ad"} } ad*. @@ -954,48 +835,41 @@ In file: user.action <span class="GUIBUTTON">[ View ]</span> <span class= { +block{Doubleclick banner server} +handle-as-image } .[a-vx-z]*.doubleclick.net </pre> - </td> - </tr> - </table> - - <p> - We'll just show the interesting part here - the explicit matches. - It is matched three different times. Two <span class= - "QUOTE">"+block{}"</span> sections, and a <span class= - "QUOTE">"+block{} +handle-as-image"</span>, which is the expanded - form of one of our aliases that had been defined as: <span class= - "QUOTE">"+block-as-image"</span>. (<a href= - "actions-file.html#ALIASES"><span class= - "QUOTE">"Aliases"</span></a> are defined in the first section of - the actions file and typically used to combine more than one - action.) - </p> - <p> - Any one of these would have done the trick and blocked this as an - unwanted image. This is unnecessarily redundant since the last case - effectively would also cover the first. No point in taking chances - with these guys though ;-) Note that if you want an ad or obnoxious - URL to be invisible, it should be defined as <span class= - "QUOTE">"ad.doubleclick.net"</span> is done here -- as both a <a - href="actions-file.html#BLOCK"><span class= - "QUOTE">"+block{}"</span></a> <span class="emphasis"><i class= - "EMPHASIS">and</i></span> an <a href= - "actions-file.html#HANDLE-AS-IMAGE"><span class= - "QUOTE">"+handle-as-image"</span></a>. The custom alias <span - class="QUOTE">"<tt class="LITERAL">+block-as-image</tt>"</span> - just simplifies the process and make it more readable. - </p> - <p> - One last example. Let's try <span class= - "QUOTE">"http://www.example.net/adsl/HOWTO/"</span>. This one is - giving us problems. We are getting a blank page. Hmmm ... - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>We'll just show the interesting part here - the explicit matches. It + is matched three different times. Two <span class= + "QUOTE">"+block{}"</span> sections, and a <span class="QUOTE">"+block{} + +handle-as-image"</span>, which is the expanded form of one of our + aliases that had been defined as: <span class= + "QUOTE">"+block-as-image"</span>. (<a href= + "actions-file.html#ALIASES"><span class="QUOTE">"Aliases"</span></a> + are defined in the first section of the actions file and typically used + to combine more than one action.)</p> + + <p>Any one of these would have done the trick and blocked this as an + unwanted image. This is unnecessarily redundant since the last case + effectively would also cover the first. No point in taking chances with + these guys though ;-) Note that if you want an ad or obnoxious URL to + be invisible, it should be defined as <span class= + "QUOTE">"ad.doubleclick.net"</span> is done here -- as both a <a href= + "actions-file.html#BLOCK"><span class="QUOTE">"+block{}"</span></a> + <span class="emphasis EMPHASIS c2">and</span> an <a href= + "actions-file.html#HANDLE-AS-IMAGE"><span class= + "QUOTE">"+handle-as-image"</span></a>. The custom alias <span class= + "QUOTE">"<tt class="LITERAL">+block-as-image</tt>"</span> just + simplifies the process and make it more readable.</p> + + <p>One last example. Let's try <span class= + "QUOTE">"http://www.example.net/adsl/HOWTO/"</span>. This one is giving + us problems. We are getting a blank page. Hmmm ...</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> Matches for http://www.example.net/adsl/HOWTO/: In file: default.action <span class="GUIBUTTON">[ View ]</span> <span class= @@ -1060,82 +934,71 @@ In file: user.action <span class="GUIBUTTON">[ View ]</span> <span class= { +block{Path contains "ads".} +handle-as-image } /ads </pre> - </td> - </tr> - </table> - - <p> - Ooops, the <span class="QUOTE">"/adsl/"</span> is matching <span - class="QUOTE">"/ads"</span> in our configuration! But we did not - want this at all! Now we see why we get the blank page. It is - actually triggering two different actions here, and the effects are - aggregated so that the URL is blocked, and <span class= - "APPLICATION">Privoxy</span> is told to treat the block as if it - were an image. But this is, of course, all wrong. We could now add - a new action below this (or better in our own <tt class= - "FILENAME">user.action</tt> file) that explicitly <span class= - "emphasis"><i class="EMPHASIS">un</i></span> blocks ( <a href= - "actions-file.html#BLOCK"><span class= - "QUOTE">"{-block}"</span></a>) paths with <span class= - "QUOTE">"adsl"</span> in them (remember, last match in the - configuration wins). There are various ways to handle such - exceptions. Example: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>Ooops, the <span class="QUOTE">"/adsl/"</span> is matching + <span class="QUOTE">"/ads"</span> in our configuration! But we did not + want this at all! Now we see why we get the blank page. It is actually + triggering two different actions here, and the effects are aggregated + so that the URL is blocked, and <span class= + "APPLICATION">Privoxy</span> is told to treat the block as if it were + an image. But this is, of course, all wrong. We could now add a new + action below this (or better in our own <tt class= + "FILENAME">user.action</tt> file) that explicitly <span class= + "emphasis EMPHASIS c2">un</span> blocks ( <a href= + "actions-file.html#BLOCK"><span class="QUOTE">"{-block}"</span></a>) + paths with <span class="QUOTE">"adsl"</span> in them (remember, last + match in the configuration wins). There are various ways to handle such + exceptions. Example:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> { -block } /adsl </pre> - </td> - </tr> - </table> - - <p> - Now the page displays ;-) Remember to flush your browser's caches - when making these kinds of changes to your configuration to insure - that you get a freshly delivered page! Or, try using <tt class= - "LITERAL">Shift+Reload</tt>. - </p> - <p> - But now what about a situation where we get no explicit matches - like we did with: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>Now the page displays ;-) Remember to flush your browser's caches + when making these kinds of changes to your configuration to insure that + you get a freshly delivered page! Or, try using <tt class= + "LITERAL">Shift+Reload</tt>.</p> + + <p>But now what about a situation where we get no explicit matches like + we did with:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> { +block{Path starts with "ads".} +handle-as-image } /ads </pre> - </td> - </tr> - </table> - - <p> - That actually was very helpful and pointed us quickly to where the - problem was. If you don't get this kind of match, then it means one - of the default rules in the first section of <tt class= - "FILENAME">default.action</tt> is causing the problem. This would - require some guesswork, and maybe a little trial and error to - isolate the offending rule. One likely cause would be one of the <a - href="actions-file.html#FILTER"><span class= - "QUOTE">"+filter"</span></a> actions. These tend to be harder to - troubleshoot. Try adding the URL for the site to one of aliases - that turn off <a href="actions-file.html#FILTER"><span class= - "QUOTE">"+filter"</span></a>: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>That actually was very helpful and pointed us quickly to where the + problem was. If you don't get this kind of match, then it means one of + the default rules in the first section of <tt class= + "FILENAME">default.action</tt> is causing the problem. This would + require some guesswork, and maybe a little trial and error to isolate + the offending rule. One likely cause would be one of the <a href= + "actions-file.html#FILTER"><span class="QUOTE">"+filter"</span></a> + actions. These tend to be harder to troubleshoot. Try adding the URL + for the site to one of aliases that turn off <a href= + "actions-file.html#FILTER"><span class= + "QUOTE">"+filter"</span></a>:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> { shop } .quietpc.com .worldpay.com # for quietpc.com @@ -1143,111 +1006,96 @@ In file: user.action <span class="GUIBUTTON">[ View ]</span> <span class= .scan.co.uk .forbes.com </pre> - </td> - </tr> - </table> - - <p> - <span class="QUOTE">"<tt class="LITERAL">{ shop }</tt>"</span> is - an <span class="QUOTE">"alias"</span> that expands to <span class= - "QUOTE">"<tt class="LITERAL">{ -filter -session-cookies-only - }</tt>"</span>. Or you could do your own exception to negate - filtering: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p><span class="QUOTE">"<tt class="LITERAL">{ shop }</tt>"</span> is an + <span class="QUOTE">"alias"</span> that expands to <span class= + "QUOTE">"<tt class="LITERAL">{ -filter -session-cookies-only + }</tt>"</span>. Or you could do your own exception to negate + filtering:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> { -filter } # Disable ALL filter actions for sites in this section .forbes.com developer.ibm.com localhost </pre> - </td> - </tr> - </table> - - <p> - This would turn off all filtering for these sites. This is best put - in <tt class="FILENAME">user.action</tt>, for local site - exceptions. Note that when a simple domain pattern is used by - itself (without the subsequent path portion), all sub-pages within - that domain are included automatically in the scope of the action. - </p> - <p> - Images that are inexplicably being blocked, may well be hitting the - <a href="actions-file.html#FILTER-BANNERS-BY-SIZE"><span class= - "QUOTE">"+filter{banners-by-size}"</span></a> rule, which assumes - that images of certain sizes are ad banners (works well <span - class="emphasis"><i class="EMPHASIS">most of the time</i></span> - since these tend to be standardized). - </p> - <p> - <span class="QUOTE">"<tt class="LITERAL">{ fragile }</tt>"</span> - is an alias that disables most actions that are the most likely to - cause trouble. This can be used as a last resort for problem sites. - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>This would turn off all filtering for these sites. This is best put + in <tt class="FILENAME">user.action</tt>, for local site exceptions. + Note that when a simple domain pattern is used by itself (without the + subsequent path portion), all sub-pages within that domain are included + automatically in the scope of the action.</p> + + <p>Images that are inexplicably being blocked, may well be hitting the + <a href="actions-file.html#FILTER-BANNERS-BY-SIZE"><span class= + "QUOTE">"+filter{banners-by-size}"</span></a> rule, which assumes that + images of certain sizes are ad banners (works well <span class= + "emphasis EMPHASIS c2">most of the time</span> since these tend to be + standardized).</p> + + <p><span class="QUOTE">"<tt class="LITERAL">{ fragile }</tt>"</span> is + an alias that disables most actions that are the most likely to cause + trouble. This can be used as a last resort for problem sites.</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> { fragile } # Handle with care: easy to break mail.google. mybank.example.com </pre> - </td> - </tr> - </table> - - <p> - <span class="emphasis"><i class="EMPHASIS">Remember to flush - caches!</i></span> Note that the <tt class= - "LITERAL">mail.google</tt> reference lacks the TLD portion (e.g. - <span class="QUOTE">".com"</span>). This will effectively match any - TLD with <tt class="LITERAL">google</tt> in it, such as <tt class= - "LITERAL">mail.google.de.</tt>, just as an example. - </p> - <p> - If this still does not work, you will have to go through the - remaining actions one by one to find which one(s) is causing the - problem. - </p> - </div> - </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="seealso.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - See Also - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - </td> </tr> </table> + + <p><span class="emphasis EMPHASIS c2">Remember to flush caches!</span> + Note that the <tt class="LITERAL">mail.google</tt> reference lacks the + TLD portion (e.g. <span class="QUOTE">".com"</span>). This will + effectively match any TLD with <tt class="LITERAL">google</tt> in it, + such as <tt class="LITERAL">mail.google.de.</tt>, just as an + example.</p> + + <p>If this still does not work, you will have to go through the + remaining actions one by one to find which one(s) is causing the + problem.</p> </div> - </body> -</html> + </div> + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="seealso.html" + accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + + <td width="33%" align="right" valign="top"> </td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">See Also</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top"> </td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/user-manual/config.html b/doc/webserver/user-manual/config.html index 9c4ba598..3c5c45c6 100644 --- a/doc/webserver/user-manual/config.html +++ b/doc/webserver/user-manual/config.html @@ -1,1007 +1,840 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - The Main Configuration File - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> - <link rel="PREVIOUS" title="Privoxy Configuration" href= - "configuration.html"> - <link rel="NEXT" title="Actions Files" href="actions-file.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <link rel="STYLESHEET" type="text/css" href="p_doc.css"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>The Main Configuration File</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> + <link rel="PREVIOUS" title="Privoxy Configuration" href= + "configuration.html"> + <link rel="NEXT" title="Actions Files" href="actions-file.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <link rel="STYLESHEET" type="text/css" href="p_doc.css"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy 3.0.18 User Manual - </th> - </tr> - <tr> - <td width="10%" align="left" valign="bottom"> - <a href="configuration.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="actions-file.html" accesskey="N">Next</a> - </td> - </tr> - </table> - <hr width="100%" class="c1"> - </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="CONFIG">7. The Main Configuration File</a> - </h1> - <p> - By default, the main configuration file is named <tt class= - "FILENAME">config</tt>, with the exception of Windows, where it is - named <tt class="FILENAME">config.txt</tt>. Configuration lines - consist of an initial keyword followed by a list of values, all - separated by whitespace (any number of spaces or tabs). For example: - </p> - <p> - </p> - <p class="LITERALLAYOUT"> - <tt class="LITERAL"> <span class="emphasis"><i class= - "EMPHASIS">confdir /etc/privoxy</i></span></tt> - </p> - - <p> - Assigns the value <tt class="LITERAL">/etc/privoxy</tt> to the option - <tt class="LITERAL">confdir</tt> and thus indicates that the - configuration directory is named <span class= - "QUOTE">"/etc/privoxy/"</span>. - </p> - <p> - All options in the config file except for <tt class= - "LITERAL">confdir</tt> and <tt class="LITERAL">logdir</tt> are - optional. Watch out in the below description for what happens if you - leave them unset. - </p> - <p> - The main config file controls all aspects of <span class= - "APPLICATION">Privoxy</span>'s operation that are not location - dependent (i.e. they apply universally, no matter where you may be - surfing). Like the filter and action files, the config file is a - plain text file and can be modified with a text editor like emacs, - vim or notepad.exe. - </p> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="LOCAL-SET-UP">7.1. Local Set-up Documentation</a> - </h2> - <p> - If you intend to operate <span class="APPLICATION">Privoxy</span> - for more users than just yourself, it might be a good idea to let - them know how to reach you, what you block and why you do that, - your policies, etc. - </p> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="USER-MANUAL">7.1.1. user-manual</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - Location of the <span class="APPLICATION">Privoxy</span> - User Manual. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - A fully qualified URI - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - <span class="emphasis"><i class="EMPHASIS">Unset</i></span> - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - <a href="http://www.privoxy.org/user-manual/" target= - "_top">http://www.privoxy.org/<tt class= - "REPLACEABLE"><i>version</i></tt>/user-manual/</a> will be - used, where <tt class="REPLACEABLE"><i>version</i></tt> is - the <span class="APPLICATION">Privoxy</span> version. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - The User Manual URI is the single best source of - information on <span class="APPLICATION">Privoxy</span>, - and is used for help links from some of the internal CGI - pages. The manual itself is normally packaged with the - binary distributions, so you probably want to set this to a - locally installed copy. - </p> - <p> - Examples: - </p> - <p> - The best all purpose solution is simply to put the full - local <tt class="LITERAL">PATH</tt> to where the <i class= - "CITETITLE">User Manual</i> is located: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + td.c5 {font-weight: bold} + table.c4 {background-color: #E0E0E0} + tt.c3 {font-style: italic} + span.c2 {font-style: italic} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy 3.0.18 User Manual</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href= + "configuration.html" accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href= + "actions-file.html" accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="CONFIG" id="CONFIG">7. The Main Configuration + File</a></h1> + + <p>By default, the main configuration file is named <tt class= + "FILENAME">config</tt>, with the exception of Windows, where it is named + <tt class="FILENAME">config.txt</tt>. Configuration lines consist of an + initial keyword followed by a list of values, all separated by whitespace + (any number of spaces or tabs). For example:</p> + + <p class="LITERALLAYOUT"><tt class="LITERAL"> <span class= + "emphasis EMPHASIS c2">confdir /etc/privoxy</span></tt></p> + + <p>Assigns the value <tt class="LITERAL">/etc/privoxy</tt> to the option + <tt class="LITERAL">confdir</tt> and thus indicates that the + configuration directory is named <span class= + "QUOTE">"/etc/privoxy/"</span>.</p> + + <p>All options in the config file except for <tt class= + "LITERAL">confdir</tt> and <tt class="LITERAL">logdir</tt> are optional. + Watch out in the below description for what happens if you leave them + unset.</p> + + <p>The main config file controls all aspects of <span class= + "APPLICATION">Privoxy</span>'s operation that are not location dependent + (i.e. they apply universally, no matter where you may be surfing). Like + the filter and action files, the config file is a plain text file and can + be modified with a text editor like emacs, vim or notepad.exe.</p> + + <div class="SECT2"> + <h2 class="SECT2"><a name="LOCAL-SET-UP" id="LOCAL-SET-UP">7.1. Local + Set-up Documentation</a></h2> + + <p>If you intend to operate <span class="APPLICATION">Privoxy</span> + for more users than just yourself, it might be a good idea to let them + know how to reach you, what you block and why you do that, your + policies, etc.</p> + + <div class="SECT3"> + <h4 class="SECT3"><a name="USER-MANUAL" id="USER-MANUAL">7.1.1. + user-manual</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>Location of the <span class="APPLICATION">Privoxy</span> + User Manual.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p>A fully qualified URI</p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p><span class="emphasis EMPHASIS c2">Unset</span></p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p><a href="http://www.privoxy.org/user-manual/" target= + "_top">http://www.privoxy.org/<tt class= + "REPLACEABLE c3">version</tt>/user-manual/</a> will be used, + where <tt class="REPLACEABLE c3">version</tt> is the + <span class="APPLICATION">Privoxy</span> version.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>The User Manual URI is the single best source of information + on <span class="APPLICATION">Privoxy</span>, and is used for + help links from some of the internal CGI pages. The manual + itself is normally packaged with the binary distributions, so + you probably want to set this to a locally installed copy.</p> + + <p>Examples:</p> + + <p>The best all purpose solution is simply to put the full + local <tt class="LITERAL">PATH</tt> to where the <i class= + "CITETITLE">User Manual</i> is located:</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> user-manual /usr/share/doc/privoxy/user-manual </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - The User Manual is then available to anyone with access to - <span class="APPLICATION">Privoxy</span>, by following the - built-in URL: <tt class= - "LITERAL">http://config.privoxy.org/user-manual/</tt> (or - the shortcut: <tt class= - "LITERAL">http://p.p/user-manual/</tt>). - </p> - <p> - If the documentation is not on the local system, it can be - accessed from a remote server, as: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p>The User Manual is then available to anyone with access to + <span class="APPLICATION">Privoxy</span>, by following the + built-in URL: <tt class= + "LITERAL">http://config.privoxy.org/user-manual/</tt> (or the + shortcut: <tt class= + "LITERAL">http://p.p/user-manual/</tt>).</p> + + <p>If the documentation is not on the local system, it can be + accessed from a remote server, as:</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> user-manual http://example.com/privoxy/user-manual/ </pre> + </td> + </tr> + </table> + + <div class="WARNING"> + <table class="WARNING" border="1" width="90%"> + <tr> + <td class="c5" align="center">Warning</td> + </tr> + + <tr> + <td align="left"> + <p>If set, this option should be <span class= + "emphasis EMPHASIS c2">the first option in the config + file</span>, because it is used while the config file + is being read on start-up.</p> </td> </tr> </table> - - <div class="WARNING"> - <table class="WARNING" border="1" width="90%"> - <tr> - <td align="CENTER"> - <b>Warning</b> - </td> - </tr> - <tr> - <td align="LEFT"> - <p> - If set, this option should be <span class= - "emphasis"><i class="EMPHASIS">the first option in - the config file</i></span>, because it is used - while the config file is being read on start-up. - </p> - </td> - </tr> - </table> - </div> - </dd> - </dl> - </div> + </div> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="TRUST-INFO-URL">7.1.2. trust-info-url</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - A URL to be displayed in the error page that users will see - if access to an untrusted page is denied. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - URL - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - <span class="emphasis"><i class="EMPHASIS">Unset</i></span> - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - No links are displayed on the "untrusted" error page. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - The value of this option only matters if the experimental - trust mechanism has been activated. (See <a href= - "config.html#TRUSTFILE"><span class="emphasis"><i class= - "EMPHASIS">trustfile</i></span></a> below.) - </p> - <p> - If you use the trust mechanism, it is a good idea to write - up some on-line documentation about your trust policy and - to specify the URL(s) here. Use multiple times for multiple - URLs. - </p> - <p> - The URL(s) should be added to the trustfile as well, so - users don't end up locked out from the information on why - they were locked out in the first place! - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="TRUST-INFO-URL" id="TRUST-INFO-URL">7.1.2. + trust-info-url</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>A URL to be displayed in the error page that users will see + if access to an untrusted page is denied.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p>URL</p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p><span class="emphasis EMPHASIS c2">Unset</span></p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>No links are displayed on the "untrusted" error page.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>The value of this option only matters if the experimental + trust mechanism has been activated. (See <a href= + "config.html#TRUSTFILE"><span class= + "emphasis EMPHASIS c2">trustfile</span></a> below.)</p> + + <p>If you use the trust mechanism, it is a good idea to write + up some on-line documentation about your trust policy and to + specify the URL(s) here. Use multiple times for multiple + URLs.</p> + + <p>The URL(s) should be added to the trustfile as well, so + users don't end up locked out from the information on why they + were locked out in the first place!</p> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="ADMIN-ADDRESS">7.1.3. admin-address</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - An email address to reach the <span class= - "APPLICATION">Privoxy</span> administrator. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - Email address - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - <span class="emphasis"><i class="EMPHASIS">Unset</i></span> - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - No email address is displayed on error pages and the CGI - user interface. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - If both <tt class="LITERAL">admin-address</tt> and <tt - class="LITERAL">proxy-info-url</tt> are unset, the whole - "Local Privoxy Support" box on all generated pages will not - be shown. - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="ADMIN-ADDRESS" id="ADMIN-ADDRESS">7.1.3. + admin-address</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>An email address to reach the <span class= + "APPLICATION">Privoxy</span> administrator.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p>Email address</p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p><span class="emphasis EMPHASIS c2">Unset</span></p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>No email address is displayed on error pages and the CGI + user interface.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>If both <tt class="LITERAL">admin-address</tt> and + <tt class="LITERAL">proxy-info-url</tt> are unset, the whole + "Local Privoxy Support" box on all generated pages will not be + shown.</p> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="PROXY-INFO-URL">7.1.4. proxy-info-url</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - A URL to documentation about the local <span class= - "APPLICATION">Privoxy</span> setup, configuration or - policies. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - URL - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - <span class="emphasis"><i class="EMPHASIS">Unset</i></span> - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - No link to local documentation is displayed on error pages - and the CGI user interface. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - If both <tt class="LITERAL">admin-address</tt> and <tt - class="LITERAL">proxy-info-url</tt> are unset, the whole - "Local Privoxy Support" box on all generated pages will not - be shown. - </p> - <p> - This URL shouldn't be blocked ;-) - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="PROXY-INFO-URL" id="PROXY-INFO-URL">7.1.4. + proxy-info-url</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>A URL to documentation about the local <span class= + "APPLICATION">Privoxy</span> setup, configuration or + policies.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p>URL</p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p><span class="emphasis EMPHASIS c2">Unset</span></p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>No link to local documentation is displayed on error pages + and the CGI user interface.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>If both <tt class="LITERAL">admin-address</tt> and + <tt class="LITERAL">proxy-info-url</tt> are unset, the whole + "Local Privoxy Support" box on all generated pages will not be + shown.</p> + + <p>This URL shouldn't be blocked ;-)</p> + </dd> + </dl> </div> </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="CONF-LOG-LOC">7.2. Configuration and Log File - Locations</a> - </h2> - <p> - <span class="APPLICATION">Privoxy</span> can (and normally does) - use a number of other files for additional configuration, help and - logging. This section of the configuration file tells <span class= - "APPLICATION">Privoxy</span> where to find those other files. - </p> - <p> - The user running <span class="APPLICATION">Privoxy</span>, must - have read permission for all configuration files, and write - permission to any files that would be modified, such as log files - and actions files. - </p> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="CONFDIR">7.2.1. confdir</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - The directory where the other configuration files are - located. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - Path name - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - /etc/privoxy (Unix) <span class="emphasis"><i class= - "EMPHASIS">or</i></span> <span class= - "APPLICATION">Privoxy</span> installation dir (Windows) - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Mandatory</i></span> - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - No trailing <span class="QUOTE">"<tt class= - "LITERAL">/</tt>"</span>, please. - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="CONF-LOG-LOC" id="CONF-LOG-LOC">7.2. + Configuration and Log File Locations</a></h2> + + <p><span class="APPLICATION">Privoxy</span> can (and normally does) use + a number of other files for additional configuration, help and logging. + This section of the configuration file tells <span class= + "APPLICATION">Privoxy</span> where to find those other files.</p> + + <p>The user running <span class="APPLICATION">Privoxy</span>, must have + read permission for all configuration files, and write permission to + any files that would be modified, such as log files and actions + files.</p> + + <div class="SECT3"> + <h4 class="SECT3"><a name="CONFDIR" id="CONFDIR">7.2.1. + confdir</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>The directory where the other configuration files are + located.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p>Path name</p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p>/etc/privoxy (Unix) <span class= + "emphasis EMPHASIS c2">or</span> <span class= + "APPLICATION">Privoxy</span> installation dir (Windows)</p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p><span class="emphasis EMPHASIS c2">Mandatory</span></p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>No trailing <span class="QUOTE">"<tt class= + "LITERAL">/</tt>"</span>, please.</p> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="TEMPLDIR">7.2.2. templdir</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - An alternative directory where the templates are loaded - from. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - Path name - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - unset - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - The templates are assumed to be located in - confdir/template. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - <span class="APPLICATION">Privoxy's</span> original - templates are usually overwritten with each update. Use - this option to relocate customized templates that should be - kept. As template variables might change between updates, - you shouldn't expect templates to work with <span class= - "APPLICATION">Privoxy</span> releases other than the one - they were part of, though. - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="TEMPLDIR" id="TEMPLDIR">7.2.2. + templdir</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>An alternative directory where the templates are loaded + from.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p>Path name</p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p>unset</p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>The templates are assumed to be located in + confdir/template.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p><span class="APPLICATION">Privoxy's</span> original + templates are usually overwritten with each update. Use this + option to relocate customized templates that should be kept. As + template variables might change between updates, you shouldn't + expect templates to work with <span class= + "APPLICATION">Privoxy</span> releases other than the one they + were part of, though.</p> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="LOGDIR">7.2.3. logdir</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - The directory where all logging takes place (i.e. where the - <tt class="FILENAME">logfile</tt> is located). - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - Path name - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - /var/log/privoxy (Unix) <span class="emphasis"><i class= - "EMPHASIS">or</i></span> <span class= - "APPLICATION">Privoxy</span> installation dir (Windows) - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - <span class="emphasis"><i class= - "EMPHASIS">Mandatory</i></span> - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - No trailing <span class="QUOTE">"<tt class= - "LITERAL">/</tt>"</span>, please. - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="LOGDIR" id="LOGDIR">7.2.3. logdir</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>The directory where all logging takes place (i.e. where the + <tt class="FILENAME">logfile</tt> is located).</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p>Path name</p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p>/var/log/privoxy (Unix) <span class= + "emphasis EMPHASIS c2">or</span> <span class= + "APPLICATION">Privoxy</span> installation dir (Windows)</p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p><span class="emphasis EMPHASIS c2">Mandatory</span></p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>No trailing <span class="QUOTE">"<tt class= + "LITERAL">/</tt>"</span>, please.</p> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="ACTIONSFILE">7.2.4. actionsfile</a> - </h4> - <a name="DEFAULT.ACTION"></a><a name="STANDARD.ACTION"></a><a name= - "USER.ACTION"></a> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - The <a href="actions-file.html">actions file(s)</a> to use - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - Complete file name, relative to <tt class= - "LITERAL">confdir</tt> - </p> - </dd> - <dt> - Default values: - </dt> - <dd> - <table border="0"> - <tbody> - <tr> - <td> - <p class="LITERALLAYOUT"> - match-all.action # Actions that are applied to all sites and maybe overruled later on. - </p> - </td> - </tr> - <tr> - <td> - <p class="LITERALLAYOUT"> - default.action # Main actions file - </p> - </td> - </tr> - <tr> - <td> - <p class="LITERALLAYOUT"> - user.action # User customizations - </p> - </td> - </tr> - </tbody> - </table> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - No actions are taken at all. More or less neutral proxying. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - Multiple <tt class="LITERAL">actionsfile</tt> lines are - permitted, and are in fact recommended! - </p> - <p> - The default values are <tt class= - "FILENAME">default.action</tt>, which is the <span class= - "QUOTE">"main"</span> actions file maintained by the - developers, and <tt class="FILENAME">user.action</tt>, - where you can make your personal additions. - </p> - <p> - Actions files contain all the per site and per URL - configuration for ad blocking, cookie management, privacy - considerations, etc. There is no point in using <span - class="APPLICATION">Privoxy</span> without at least one - actions file. - </p> - <p> - Note that since Privoxy 3.0.7, the complete filename, - including the <span class="QUOTE">".action"</span> - extension has to be specified. The syntax change was - necessary to be consistent with the other file options and - to allow previously forbidden characters. - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="ACTIONSFILE" id="ACTIONSFILE">7.2.4. + actionsfile</a></h4><a name="DEFAULT.ACTION" id= + "DEFAULT.ACTION"></a><a name="STANDARD.ACTION" id= + "STANDARD.ACTION"></a><a name="USER.ACTION" id="USER.ACTION"></a> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>The <a href="actions-file.html">actions file(s)</a> to + use</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p>Complete file name, relative to <tt class= + "LITERAL">confdir</tt></p> + </dd> + + <dt>Default values:</dt> + + <dd> + <table border="0"> + <tbody> + <tr> + <td> + <p class="LITERALLAYOUT"> + match-all.action # Actions that are applied to all sites and maybe overruled later on.</p> + </td> + </tr> + + <tr> + <td> + <p class="LITERALLAYOUT"> + default.action # Main actions file</p> + </td> + </tr> + + <tr> + <td> + <p class="LITERALLAYOUT"> + user.action # User customizations</p> + </td> + </tr> + </tbody> + </table> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>No actions are taken at all. More or less neutral + proxying.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>Multiple <tt class="LITERAL">actionsfile</tt> lines are + permitted, and are in fact recommended!</p> + + <p>The default values are <tt class= + "FILENAME">default.action</tt>, which is the <span class= + "QUOTE">"main"</span> actions file maintained by the + developers, and <tt class="FILENAME">user.action</tt>, where + you can make your personal additions.</p> + + <p>Actions files contain all the per site and per URL + configuration for ad blocking, cookie management, privacy + considerations, etc. There is no point in using <span class= + "APPLICATION">Privoxy</span> without at least one actions + file.</p> + + <p>Note that since Privoxy 3.0.7, the complete filename, + including the <span class="QUOTE">".action"</span> extension + has to be specified. The syntax change was necessary to be + consistent with the other file options and to allow previously + forbidden characters.</p> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="FILTERFILE">7.2.5. filterfile</a> - </h4> - <a name="DEFAULT.FILTER"></a> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - The <a href="filter-file.html">filter file(s)</a> to use - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - File name, relative to <tt class="LITERAL">confdir</tt> - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - default.filter (Unix) <span class="emphasis"><i class= - "EMPHASIS">or</i></span> default.filter.txt (Windows) - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - No textual content filtering takes place, i.e. all <tt - class="LITERAL">+<a href= - "actions-file.html#FILTER">filter</a>{<tt class= - "REPLACEABLE"><i>name</i></tt>}</tt> actions in the actions - files are turned neutral. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - Multiple <tt class="LITERAL">filterfile</tt> lines are - permitted. - </p> - <p> - The <a href="filter-file.html">filter files</a> contain - content modification rules that use <a href= - "appendix.html#REGEX">regular expressions</a>. These rules - permit powerful changes on the content of Web pages, and - optionally the headers as well, e.g., you could try to - disable your favorite JavaScript annoyances, re-write the - actual displayed text, or just have some fun playing - buzzword bingo with web pages. - </p> - <p> - The <tt class="LITERAL">+<a href= - "actions-file.html#FILTER">filter</a>{<tt class= - "REPLACEABLE"><i>name</i></tt>}</tt> actions rely on the - relevant filter (<tt class="REPLACEABLE"><i>name</i></tt>) - to be defined in a filter file! - </p> - <p> - A pre-defined filter file called <tt class= - "FILENAME">default.filter</tt> that contains a number of - useful filters for common problems is included in the - distribution. See the section on the <tt class="LITERAL"><a - href="actions-file.html#FILTER">filter</a></tt> action for - a list. - </p> - <p> - It is recommended to place any locally adapted filters into - a separate file, such as <tt class= - "FILENAME">user.filter</tt>. - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="FILTERFILE" id="FILTERFILE">7.2.5. + filterfile</a></h4><a name="DEFAULT.FILTER" id="DEFAULT.FILTER"></a> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>The <a href="filter-file.html">filter file(s)</a> to use</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p>File name, relative to <tt class="LITERAL">confdir</tt></p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p>default.filter (Unix) <span class= + "emphasis EMPHASIS c2">or</span> default.filter.txt + (Windows)</p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>No textual content filtering takes place, i.e. all + <tt class="LITERAL">+<a href= + "actions-file.html#FILTER">filter</a>{<tt class= + "REPLACEABLE c3">name</tt>}</tt> actions in the actions files + are turned neutral.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>Multiple <tt class="LITERAL">filterfile</tt> lines are + permitted.</p> + + <p>The <a href="filter-file.html">filter files</a> contain + content modification rules that use <a href= + "appendix.html#REGEX">regular expressions</a>. These rules + permit powerful changes on the content of Web pages, and + optionally the headers as well, e.g., you could try to disable + your favorite JavaScript annoyances, re-write the actual + displayed text, or just have some fun playing buzzword bingo + with web pages.</p> + + <p>The <tt class="LITERAL">+<a href= + "actions-file.html#FILTER">filter</a>{<tt class= + "REPLACEABLE c3">name</tt>}</tt> actions rely on the relevant + filter (<tt class="REPLACEABLE c3">name</tt>) to be defined in + a filter file!</p> + + <p>A pre-defined filter file called <tt class= + "FILENAME">default.filter</tt> that contains a number of useful + filters for common problems is included in the distribution. + See the section on the <tt class="LITERAL"><a href= + "actions-file.html#FILTER">filter</a></tt> action for a + list.</p> + + <p>It is recommended to place any locally adapted filters into + a separate file, such as <tt class= + "FILENAME">user.filter</tt>.</p> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="LOGFILE">7.2.6. logfile</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - The log file to use - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - File name, relative to <tt class="LITERAL">logdir</tt> - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - <span class="emphasis"><i class="EMPHASIS">Unset (commented - out)</i></span>. When activated: logfile (Unix) <span - class="emphasis"><i class="EMPHASIS">or</i></span> - privoxy.log (Windows). - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - No logfile is written. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - The logfile is where all logging and error messages are - written. The level of detail and number of messages are set - with the <tt class="LITERAL">debug</tt> option (see below). - The logfile can be useful for tracking down a problem with - <span class="APPLICATION">Privoxy</span> (e.g., it's not - blocking an ad you think it should block) and it can help - you to monitor what your browser is doing. - </p> - <p> - Depending on the debug options below, the logfile may be a - privacy risk if third parties can get access to it. As most - users will never look at it, <span class= - "APPLICATION">Privoxy</span> 3.0.7 and later only log fatal - errors by default. - </p> - <p> - For most troubleshooting purposes, you will have to change - that, please refer to the debugging section for details. - </p> - <p> - Your logfile will grow indefinitely, and you will probably - want to periodically remove it. On Unix systems, you can do - this with a cron job (see <span class="QUOTE">"man - cron"</span>). For Red Hat based Linux distributions, a <b - class="COMMAND">logrotate</b> script has been included. - </p> - <p> - Any log files must be writable by whatever user <span - class="APPLICATION">Privoxy</span> is being run as (on - Unix, default user id is <span class= - "QUOTE">"privoxy"</span>). - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="LOGFILE" id="LOGFILE">7.2.6. + logfile</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>The log file to use</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p>File name, relative to <tt class="LITERAL">logdir</tt></p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p><span class="emphasis EMPHASIS c2">Unset (commented + out)</span>. When activated: logfile (Unix) <span class= + "emphasis EMPHASIS c2">or</span> privoxy.log (Windows).</p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>No logfile is written.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>The logfile is where all logging and error messages are + written. The level of detail and number of messages are set + with the <tt class="LITERAL">debug</tt> option (see below). The + logfile can be useful for tracking down a problem with + <span class="APPLICATION">Privoxy</span> (e.g., it's not + blocking an ad you think it should block) and it can help you + to monitor what your browser is doing.</p> + + <p>Depending on the debug options below, the logfile may be a + privacy risk if third parties can get access to it. As most + users will never look at it, <span class= + "APPLICATION">Privoxy</span> 3.0.7 and later only log fatal + errors by default.</p> + + <p>For most troubleshooting purposes, you will have to change + that, please refer to the debugging section for details.</p> + + <p>Your logfile will grow indefinitely, and you will probably + want to periodically remove it. On Unix systems, you can do + this with a cron job (see <span class="QUOTE">"man + cron"</span>). For Red Hat based Linux distributions, a + <b class="COMMAND">logrotate</b> script has been included.</p> + + <p>Any log files must be writable by whatever user <span class= + "APPLICATION">Privoxy</span> is being run as (on Unix, default + user id is <span class="QUOTE">"privoxy"</span>).</p> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="TRUSTFILE">7.2.7. trustfile</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - The name of the trust file to use - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - File name, relative to <tt class="LITERAL">confdir</tt> - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - <span class="emphasis"><i class="EMPHASIS">Unset (commented - out)</i></span>. When activated: trust (Unix) <span class= - "emphasis"><i class="EMPHASIS">or</i></span> trust.txt - (Windows) - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - The entire trust mechanism is disabled. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - The trust mechanism is an experimental feature for building - white-lists and should be used with care. It is <span - class="emphasis"><i class="EMPHASIS">NOT</i></span> - recommended for the casual user. - </p> - <p> - If you specify a trust file, <span class= - "APPLICATION">Privoxy</span> will only allow access to - sites that are specified in the trustfile. Sites can be - listed in one of two ways: - </p> - <p> - Prepending a <tt class="LITERAL">~</tt> character limits - access to this site only (and any sub-paths within this - site), e.g. <tt class="LITERAL">~www.example.com</tt> - allows access to <tt class= - "LITERAL">~www.example.com/features/news.html</tt>, etc. - </p> - <p> - Or, you can designate sites as <span class="emphasis"><i - class="EMPHASIS">trusted referrers</i></span>, by - prepending the name with a <tt class="LITERAL">+</tt> - character. The effect is that access to untrusted sites - will be granted -- but only if a link from this trusted - referrer was used to get there. The link target will then - be added to the <span class="QUOTE">"trustfile"</span> so - that future, direct accesses will be granted. Sites added - via this mechanism do not become trusted referrers - themselves (i.e. they are added with a <tt class= - "LITERAL">~</tt> designation). There is a limit of 512 such - entries, after which new entries will not be made. - </p> - <p> - If you use the <tt class="LITERAL">+</tt> operator in the - trust file, it may grow considerably over time. - </p> - <p> - It is recommended that <span class= - "APPLICATION">Privoxy</span> be compiled with the <tt - class="LITERAL">--disable-force</tt>, <tt class= - "LITERAL">--disable-toggle</tt> and <tt class= - "LITERAL">--disable-editor</tt> options, if this feature is - to be used. - </p> - <p> - Possible applications include limiting Internet access for - children. - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="TRUSTFILE" id="TRUSTFILE">7.2.7. + trustfile</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>The name of the trust file to use</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p>File name, relative to <tt class="LITERAL">confdir</tt></p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p><span class="emphasis EMPHASIS c2">Unset (commented + out)</span>. When activated: trust (Unix) <span class= + "emphasis EMPHASIS c2">or</span> trust.txt (Windows)</p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>The entire trust mechanism is disabled.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>The trust mechanism is an experimental feature for building + white-lists and should be used with care. It is <span class= + "emphasis EMPHASIS c2">NOT</span> recommended for the casual + user.</p> + + <p>If you specify a trust file, <span class= + "APPLICATION">Privoxy</span> will only allow access to sites + that are specified in the trustfile. Sites can be listed in one + of two ways:</p> + + <p>Prepending a <tt class="LITERAL">~</tt> character limits + access to this site only (and any sub-paths within this site), + e.g. <tt class="LITERAL">~www.example.com</tt> allows access to + <tt class="LITERAL">~www.example.com/features/news.html</tt>, + etc.</p> + + <p>Or, you can designate sites as <span class= + "emphasis EMPHASIS c2">trusted referrers</span>, by prepending + the name with a <tt class="LITERAL">+</tt> character. The + effect is that access to untrusted sites will be granted -- but + only if a link from this trusted referrer was used to get + there. The link target will then be added to the <span class= + "QUOTE">"trustfile"</span> so that future, direct accesses will + be granted. Sites added via this mechanism do not become + trusted referrers themselves (i.e. they are added with a + <tt class="LITERAL">~</tt> designation). There is a limit of + 512 such entries, after which new entries will not be made.</p> + + <p>If you use the <tt class="LITERAL">+</tt> operator in the + trust file, it may grow considerably over time.</p> + + <p>It is recommended that <span class= + "APPLICATION">Privoxy</span> be compiled with the <tt class= + "LITERAL">--disable-force</tt>, <tt class= + "LITERAL">--disable-toggle</tt> and <tt class= + "LITERAL">--disable-editor</tt> options, if this feature is to + be used.</p> + + <p>Possible applications include limiting Internet access for + children.</p> + </dd> + </dl> </div> </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="DEBUGGING">7.3. Debugging</a> - </h2> - <p> - These options are mainly useful when tracing a problem. Note that - you might also want to invoke <span class= - "APPLICATION">Privoxy</span> with the <tt class= - "LITERAL">--no-daemon</tt> command line option when debugging. - </p> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="DEBUG">7.3.1. debug</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - Key values that determine what information gets logged. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - Integer values - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - 0 (i.e.: only fatal errors (that cause Privoxy to exit) are - logged) - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - Default value is used (see above). - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - The available debug levels are: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="DEBUGGING" id="DEBUGGING">7.3. + Debugging</a></h2> + + <p>These options are mainly useful when tracing a problem. Note that + you might also want to invoke <span class="APPLICATION">Privoxy</span> + with the <tt class="LITERAL">--no-daemon</tt> command line option when + debugging.</p> + + <div class="SECT3"> + <h4 class="SECT3"><a name="DEBUG" id="DEBUG">7.3.1. debug</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>Key values that determine what information gets logged.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p>Integer values</p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p>0 (i.e.: only fatal errors (that cause Privoxy to exit) are + logged)</p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>Default value is used (see above).</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>The available debug levels are:</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> debug 1 # Log the destination for each request <span class= "APPLICATION">Privoxy</span> let through. See also debug 1024. debug 2 # show each connection status @@ -1020,1491 +853,1236 @@ Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> debug 8192 # Non-fatal errors debug 32768 # log all data read from the network </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> + + <p>To select multiple debug levels, you can either add them or + use multiple <tt class="LITERAL">debug</tt> lines.</p> + + <p>A debug level of 1 is informative because it will show you + each request as it happens. <span class= + "emphasis EMPHASIS c2">1, 1024, 4096 and 8192 are + recommended</span> so that you will notice when things go + wrong. The other levels are probably only of interest if you + are hunting down a specific problem. They can produce a hell of + an output (especially 16).</p> + + <p><span class="APPLICATION">Privoxy</span> used to ship with + the debug levels recommended above enabled by default, but due + to privacy concerns 3.0.7 and later are configured to only log + fatal errors.</p> + + <p>If you are used to the more verbose settings, simply enable + the debug lines below again.</p> + + <p>If you want to use pure CLF (Common Log Format), you should + set <span class="QUOTE">"debug 512"</span> <span class= + "emphasis EMPHASIS c2">ONLY</span> and not enable anything + else.</p> + + <p><span class="APPLICATION">Privoxy</span> has a hard-coded + limit for the length of log messages. If it's reached, messages + are logged truncated and marked with <span class="QUOTE">"... + [too long, truncated]"</span>.</p> + + <p>Please don't file any support requests without trying to + reproduce the problem with increased debug level first. Once + you read the log messages, you may even be able to solve the + problem on your own.</p> + </dd> + </dl> + </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="SINGLE-THREADED" id= + "SINGLE-THREADED">7.3.2. single-threaded</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>Whether to run only one server thread.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p><span class="emphasis EMPHASIS c2">None</span></p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p><span class="emphasis EMPHASIS c2">Unset</span></p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>Multi-threaded (or, where unavailable: forked) operation, + i.e. the ability to serve multiple requests simultaneously.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>This option is only there for debugging purposes. + <span class="emphasis EMPHASIS c2">It will drastically reduce + performance.</span></p> + </dd> + </dl> + </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="HOSTNAME" id="HOSTNAME">7.3.3. + hostname</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>The hostname shown on the CGI pages.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p>Text</p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p><span class="emphasis EMPHASIS c2">Unset</span></p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>The hostname provided by the operating system is used.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>On some misconfigured systems resolving the hostname fails + or takes too much time and slows Privoxy down. Setting a fixed + hostname works around the problem.</p> + + <p>In other circumstances it might be desirable to show a + hostname other than the one returned by the operating system. + For example if the system has several different hostnames and + you don't want to use the first one.</p> + + <p>Note that Privoxy does not validate the specified hostname + value.</p> + </dd> + </dl> + </div> + </div> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="ACCESS-CONTROL" id="ACCESS-CONTROL">7.4. + Access Control and Security</a></h2> + + <p>This section of the config file controls the security-relevant + aspects of <span class="APPLICATION">Privoxy</span>'s + configuration.</p> + + <div class="SECT3"> + <h4 class="SECT3"><a name="LISTEN-ADDRESS" id="LISTEN-ADDRESS">7.4.1. + listen-address</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>The address and TCP port on which <span class= + "APPLICATION">Privoxy</span> will listen for client + requests.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p>[<tt class="REPLACEABLE c3">IP-Address</tt>]:<tt class= + "REPLACEABLE c3">Port</tt></p> + + <p>[<tt class="REPLACEABLE c3">Hostname</tt>]:<tt class= + "REPLACEABLE c3">Port</tt></p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p>127.0.0.1:8118</p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>Bind to 127.0.0.1 (IPv4 localhost), port 8118. This is + suitable and recommended for home users who run <span class= + "APPLICATION">Privoxy</span> on the same machine as their + browser.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>You will need to configure your browser(s) to this proxy + address and port.</p> + + <p>If you already have another service running on port 8118, or + if you want to serve requests from other machines (e.g. on your + local network) as well, you will need to override the + default.</p> + + <p>You can use this statement multiple times to make + <span class="APPLICATION">Privoxy</span> listen on more ports + or more <abbr class="ABBREV">IP</abbr> addresses. Suitable if + your operating system does not support sharing <abbr class= + "ABBREV">IPv6</abbr> and <abbr class="ABBREV">IPv4</abbr> + protocols on the same socket.</p> - <p> - To select multiple debug levels, you can either add them or - use multiple <tt class="LITERAL">debug</tt> lines. - </p> - <p> - A debug level of 1 is informative because it will show you - each request as it happens. <span class="emphasis"><i - class="EMPHASIS">1, 1024, 4096 and 8192 are - recommended</i></span> so that you will notice when things - go wrong. The other levels are probably only of interest if - you are hunting down a specific problem. They can produce a - hell of an output (especially 16). - </p> - <p> - <span class="APPLICATION">Privoxy</span> used to ship with - the debug levels recommended above enabled by default, but - due to privacy concerns 3.0.7 and later are configured to - only log fatal errors. - </p> - <p> - If you are used to the more verbose settings, simply enable - the debug lines below again. - </p> - <p> - If you want to use pure CLF (Common Log Format), you should - set <span class="QUOTE">"debug 512"</span> <span class= - "emphasis"><i class="EMPHASIS">ONLY</i></span> and not - enable anything else. - </p> - <p> - <span class="APPLICATION">Privoxy</span> has a hard-coded - limit for the length of log messages. If it's reached, - messages are logged truncated and marked with <span class= - "QUOTE">"... [too long, truncated]"</span>. - </p> - <p> - Please don't file any support requests without trying to - reproduce the problem with increased debug level first. - Once you read the log messages, you may even be able to - solve the problem on your own. - </p> - </dd> - </dl> - </div> - </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="SINGLE-THREADED">7.3.2. single-threaded</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - Whether to run only one server thread. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - <span class="emphasis"><i class="EMPHASIS">None</i></span> - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - <span class="emphasis"><i class="EMPHASIS">Unset</i></span> - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - Multi-threaded (or, where unavailable: forked) operation, - i.e. the ability to serve multiple requests simultaneously. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - This option is only there for debugging purposes. <span - class="emphasis"><i class="EMPHASIS">It will drastically - reduce performance.</i></span> - </p> - </dd> - </dl> - </div> - </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="HOSTNAME">7.3.3. hostname</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - The hostname shown on the CGI pages. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - Text - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - <span class="emphasis"><i class="EMPHASIS">Unset</i></span> - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - The hostname provided by the operating system is used. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - On some misconfigured systems resolving the hostname fails - or takes too much time and slows Privoxy down. Setting a - fixed hostname works around the problem. - </p> - <p> - In other circumstances it might be desirable to show a - hostname other than the one returned by the operating - system. For example if the system has several different - hostnames and you don't want to use the first one. - </p> - <p> - Note that Privoxy does not validate the specified hostname - value. - </p> - </dd> - </dl> - </div> - </div> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="ACCESS-CONTROL">7.4. Access Control and Security</a> - </h2> - <p> - This section of the config file controls the security-relevant - aspects of <span class="APPLICATION">Privoxy</span>'s - configuration. - </p> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="LISTEN-ADDRESS">7.4.1. listen-address</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - The address and TCP port on which <span class= - "APPLICATION">Privoxy</span> will listen for client - requests. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - [<tt class="REPLACEABLE"><i>IP-Address</i></tt>]:<tt class= - "REPLACEABLE"><i>Port</i></tt> - </p> - <p> - [<tt class="REPLACEABLE"><i>Hostname</i></tt>]:<tt class= - "REPLACEABLE"><i>Port</i></tt> - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - 127.0.0.1:8118 - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - Bind to 127.0.0.1 (IPv4 localhost), port 8118. This is - suitable and recommended for home users who run <span - class="APPLICATION">Privoxy</span> on the same machine as - their browser. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - You will need to configure your browser(s) to this proxy - address and port. - </p> - <p> - If you already have another service running on port 8118, - or if you want to serve requests from other machines (e.g. - on your local network) as well, you will need to override - the default. - </p> - <p> - You can use this statement multiple times to make <span - class="APPLICATION">Privoxy</span> listen on more ports or - more <abbr class="ABBREV">IP</abbr> addresses. Suitable if - your operating system does not support sharing <abbr class= - "ABBREV">IPv6</abbr> and <abbr class="ABBREV">IPv4</abbr> - protocols on the same socket. - </p> - <p> - If a hostname is used instead of an IP address, <span - class="APPLICATION">Privoxy</span> will try to resolve it - to an IP address and if there are multiple, use the first - one returned. - </p> - <p> - If the address for the hostname isn't already known on the - system (for example because it's in /etc/hostname), this - may result in DNS traffic. - </p> - <p> - If the specified address isn't available on the system, or - if the hostname can't be resolved, <span class= - "APPLICATION">Privoxy</span> will fail to start. - </p> - <p> - IPv6 addresses containing colons have to be quoted by - brackets. They can only be used if <span class= - "APPLICATION">Privoxy</span> has been compiled with IPv6 - support. If you aren't sure if your version supports it, - have a look at <tt class= - "LITERAL">http://config.privoxy.org/show-status</tt>. - </p> - <p> - Some operating systems will prefer IPv6 to IPv4 addresses - even if the system has no IPv6 connectivity which is - usually not expected by the user. Some even rely on DNS to - resolve localhost which mean the "localhost" address used - may not actually be local. - </p> - <p> - It is therefore recommended to explicitly configure the - intended IP address instead of relying on the operating - system, unless there's a strong reason not to. - </p> - <p> - If you leave out the address, <span class= - "APPLICATION">Privoxy</span> will bind to all IPv4 - interfaces (addresses) on your machine and may become - reachable from the Internet and/or the local network. Be - aware that some GNU/Linux distributions modify that - behaviour without updating the documentation. Check for - non-standard patches if your <span class= - "APPLICATION">Privoxy</span>version behaves differently. - </p> - <p> - If you configure <span class="APPLICATION">Privoxy</span>to - be reachable from the network, consider using <a href= - "config.html#ACLS">access control lists</a> (ACL's, see - below), and/or a firewall. - </p> - <p> - If you open <span class="APPLICATION">Privoxy</span> to - untrusted users, you will also want to make sure that the - following actions are disabled: <tt class="LITERAL"><a - href= - "config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</a></tt> - and <tt class="LITERAL"><a href= - "config.html#ENABLE-REMOTE-TOGGLE">enable-remote-toggle</a></tt> - </p> - <p> - With the exception noted above, listening on multiple - addresses is currently not supported by <span class= - "APPLICATION">Privoxy</span> directly. It can be done on - most operating systems by letting a packet filter redirect - request for certain addresses to Privoxy, though. - </p> - </dd> - <dt> - Example: - </dt> - <dd> - <p> - Suppose you are running <span class= - "APPLICATION">Privoxy</span> on a machine which has the - address 192.168.0.1 on your local private network - (192.168.0.0) and has another outside connection with a - different address. You want it to serve requests from - inside only: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>If a hostname is used instead of an IP address, <span class= + "APPLICATION">Privoxy</span> will try to resolve it to an IP + address and if there are multiple, use the first one + returned.</p> + + <p>If the address for the hostname isn't already known on the + system (for example because it's in /etc/hostname), this may + result in DNS traffic.</p> + + <p>If the specified address isn't available on the system, or + if the hostname can't be resolved, <span class= + "APPLICATION">Privoxy</span> will fail to start.</p> + + <p>IPv6 addresses containing colons have to be quoted by + brackets. They can only be used if <span class= + "APPLICATION">Privoxy</span> has been compiled with IPv6 + support. If you aren't sure if your version supports it, have a + look at <tt class= + "LITERAL">http://config.privoxy.org/show-status</tt>.</p> + + <p>Some operating systems will prefer IPv6 to IPv4 addresses + even if the system has no IPv6 connectivity which is usually + not expected by the user. Some even rely on DNS to resolve + localhost which mean the "localhost" address used may not + actually be local.</p> + + <p>It is therefore recommended to explicitly configure the + intended IP address instead of relying on the operating system, + unless there's a strong reason not to.</p> + + <p>If you leave out the address, <span class= + "APPLICATION">Privoxy</span> will bind to all IPv4 interfaces + (addresses) on your machine and may become reachable from the + Internet and/or the local network. Be aware that some GNU/Linux + distributions modify that behaviour without updating the + documentation. Check for non-standard patches if your + <span class="APPLICATION">Privoxy</span>version behaves + differently.</p> + + <p>If you configure <span class="APPLICATION">Privoxy</span>to + be reachable from the network, consider using <a href= + "config.html#ACLS">access control lists</a> (ACL's, see below), + and/or a firewall.</p> + + <p>If you open <span class="APPLICATION">Privoxy</span> to + untrusted users, you will also want to make sure that the + following actions are disabled: <tt class="LITERAL"><a href= + "config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</a></tt> + and <tt class="LITERAL"><a href= + "config.html#ENABLE-REMOTE-TOGGLE">enable-remote-toggle</a></tt></p> + + <p>With the exception noted above, listening on multiple + addresses is currently not supported by <span class= + "APPLICATION">Privoxy</span> directly. It can be done on most + operating systems by letting a packet filter redirect request + for certain addresses to Privoxy, though.</p> + </dd> + + <dt>Example:</dt> + + <dd> + <p>Suppose you are running <span class= + "APPLICATION">Privoxy</span> on a machine which has the address + 192.168.0.1 on your local private network (192.168.0.0) and has + another outside connection with a different address. You want + it to serve requests from inside only:</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> listen-address 192.168.0.1:8118 </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Suppose you are running <span class= - "APPLICATION">Privoxy</span> on an IPv6-capable machine and - you want it to listen on the IPv6 address of the loopback - device: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>Suppose you are running <span class= + "APPLICATION">Privoxy</span> on an IPv6-capable machine and you + want it to listen on the IPv6 address of the loopback + device:</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> listen-address [::1]:8118 </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="TOGGLE">7.4.2. toggle</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - Initial state of "toggle" status - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - 1 or 0 - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - 1 - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - Act as if toggled on - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - If set to 0, <span class="APPLICATION">Privoxy</span> will - start in <span class="QUOTE">"toggled off"</span> mode, - i.e. mostly behave like a normal, content-neutral proxy - with both ad blocking and content filtering disabled. See - <tt class="LITERAL">enable-remote-toggle</tt> below. - </p> - <p> - The windows version will only display the toggle icon in - the system tray if this option is present. - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="TOGGLE" id="TOGGLE">7.4.2. toggle</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>Initial state of "toggle" status</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p>1 or 0</p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p>1</p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>Act as if toggled on</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>If set to 0, <span class="APPLICATION">Privoxy</span> will + start in <span class="QUOTE">"toggled off"</span> mode, i.e. + mostly behave like a normal, content-neutral proxy with both ad + blocking and content filtering disabled. See <tt class= + "LITERAL">enable-remote-toggle</tt> below.</p> + + <p>The windows version will only display the toggle icon in the + system tray if this option is present.</p> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="ENABLE-REMOTE-TOGGLE">7.4.3. enable-remote-toggle</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - Whether or not the <a href= - "http://config.privoxy.org/toggle" target="_top">web-based - toggle feature</a> may be used - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - 0 or 1 - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - 0 - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - The web-based toggle feature is disabled. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - When toggled off, <span class="APPLICATION">Privoxy</span> - mostly acts like a normal, content-neutral proxy, i.e. - doesn't block ads or filter content. - </p> - <p> - Access to the toggle feature can <span class="emphasis"><i - class="EMPHASIS">not</i></span> be controlled separately by - <span class="QUOTE">"ACLs"</span> or HTTP authentication, - so that everybody who can access <span class= - "APPLICATION">Privoxy</span> (see <span class= - "QUOTE">"ACLs"</span> and <tt class= - "LITERAL">listen-address</tt> above) can toggle it for all - users. So this option is <span class="emphasis"><i class= - "EMPHASIS">not recommended</i></span> for multi-user - environments with untrusted users. - </p> - <p> - Note that malicious client side code (e.g Java) is also - capable of using this option. - </p> - <p> - As a lot of <span class="APPLICATION">Privoxy</span> users - don't read documentation, this feature is disabled by - default. - </p> - <p> - Note that you must have compiled <span class= - "APPLICATION">Privoxy</span> with support for this feature, - otherwise this option has no effect. - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="ENABLE-REMOTE-TOGGLE" id= + "ENABLE-REMOTE-TOGGLE">7.4.3. enable-remote-toggle</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>Whether or not the <a href= + "http://config.privoxy.org/toggle" target="_top">web-based + toggle feature</a> may be used</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p>0 or 1</p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p>0</p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>The web-based toggle feature is disabled.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>When toggled off, <span class="APPLICATION">Privoxy</span> + mostly acts like a normal, content-neutral proxy, i.e. doesn't + block ads or filter content.</p> + + <p>Access to the toggle feature can <span class= + "emphasis EMPHASIS c2">not</span> be controlled separately by + <span class="QUOTE">"ACLs"</span> or HTTP authentication, so + that everybody who can access <span class= + "APPLICATION">Privoxy</span> (see <span class= + "QUOTE">"ACLs"</span> and <tt class= + "LITERAL">listen-address</tt> above) can toggle it for all + users. So this option is <span class="emphasis EMPHASIS c2">not + recommended</span> for multi-user environments with untrusted + users.</p> + + <p>Note that malicious client side code (e.g Java) is also + capable of using this option.</p> + + <p>As a lot of <span class="APPLICATION">Privoxy</span> users + don't read documentation, this feature is disabled by + default.</p> + + <p>Note that you must have compiled <span class= + "APPLICATION">Privoxy</span> with support for this feature, + otherwise this option has no effect.</p> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="ENABLE-REMOTE-HTTP-TOGGLE">7.4.4. - enable-remote-http-toggle</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - Whether or not Privoxy recognizes special HTTP headers to - change its behaviour. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - 0 or 1 - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - 0 - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - Privoxy ignores special HTTP headers. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - When toggled on, the client can change <span class= - "APPLICATION">Privoxy's</span> behaviour by setting special - HTTP headers. Currently the only supported special header - is <span class="QUOTE">"X-Filter: No"</span>, to disable - filtering for the ongoing request, even if it is enabled in - one of the action files. - </p> - <p> - This feature is disabled by default. If you are using <span - class="APPLICATION">Privoxy</span> in a environment with - trusted clients, you may enable this feature at your - discretion. Note that malicious client side code (e.g Java) - is also capable of using this feature. - </p> - <p> - This option will be removed in future releases as it has - been obsoleted by the more general header taggers. - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="ENABLE-REMOTE-HTTP-TOGGLE" id= + "ENABLE-REMOTE-HTTP-TOGGLE">7.4.4. enable-remote-http-toggle</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>Whether or not Privoxy recognizes special HTTP headers to + change its behaviour.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p>0 or 1</p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p>0</p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>Privoxy ignores special HTTP headers.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>When toggled on, the client can change <span class= + "APPLICATION">Privoxy's</span> behaviour by setting special + HTTP headers. Currently the only supported special header is + <span class="QUOTE">"X-Filter: No"</span>, to disable filtering + for the ongoing request, even if it is enabled in one of the + action files.</p> + + <p>This feature is disabled by default. If you are using + <span class="APPLICATION">Privoxy</span> in a environment with + trusted clients, you may enable this feature at your + discretion. Note that malicious client side code (e.g Java) is + also capable of using this feature.</p> + + <p>This option will be removed in future releases as it has + been obsoleted by the more general header taggers.</p> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="ENABLE-EDIT-ACTIONS">7.4.5. enable-edit-actions</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - Whether or not the <a href= - "http://config.privoxy.org/show-status" target= - "_top">web-based actions file editor</a> may be used - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - 0 or 1 - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - 0 - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - The web-based actions file editor is disabled. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - Access to the editor can <span class="emphasis"><i class= - "EMPHASIS">not</i></span> be controlled separately by <span - class="QUOTE">"ACLs"</span> or HTTP authentication, so that - everybody who can access <span class= - "APPLICATION">Privoxy</span> (see <span class= - "QUOTE">"ACLs"</span> and <tt class= - "LITERAL">listen-address</tt> above) can modify its - configuration for all users. - </p> - <p> - This option is <span class="emphasis"><i class= - "EMPHASIS">not recommended</i></span> for environments with - untrusted users and as a lot of <span class= - "APPLICATION">Privoxy</span> users don't read - documentation, this feature is disabled by default. - </p> - <p> - Note that malicious client side code (e.g Java) is also - capable of using the actions editor and you shouldn't - enable this options unless you understand the consequences - and are sure your browser is configured correctly. - </p> - <p> - Note that you must have compiled <span class= - "APPLICATION">Privoxy</span> with support for this feature, - otherwise this option has no effect. - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="ENABLE-EDIT-ACTIONS" id= + "ENABLE-EDIT-ACTIONS">7.4.5. enable-edit-actions</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>Whether or not the <a href= + "http://config.privoxy.org/show-status" target="_top">web-based + actions file editor</a> may be used</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p>0 or 1</p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p>0</p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>The web-based actions file editor is disabled.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>Access to the editor can <span class= + "emphasis EMPHASIS c2">not</span> be controlled separately by + <span class="QUOTE">"ACLs"</span> or HTTP authentication, so + that everybody who can access <span class= + "APPLICATION">Privoxy</span> (see <span class= + "QUOTE">"ACLs"</span> and <tt class= + "LITERAL">listen-address</tt> above) can modify its + configuration for all users.</p> + + <p>This option is <span class="emphasis EMPHASIS c2">not + recommended</span> for environments with untrusted users and as + a lot of <span class="APPLICATION">Privoxy</span> users don't + read documentation, this feature is disabled by default.</p> + + <p>Note that malicious client side code (e.g Java) is also + capable of using the actions editor and you shouldn't enable + this options unless you understand the consequences and are + sure your browser is configured correctly.</p> + + <p>Note that you must have compiled <span class= + "APPLICATION">Privoxy</span> with support for this feature, + otherwise this option has no effect.</p> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="ENFORCE-BLOCKS">7.4.6. enforce-blocks</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - Whether the user is allowed to ignore blocks and can <span - class="QUOTE">"go there anyway"</span>. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - <tt class="REPLACEABLE"><i>0 or 1</i></tt> - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - <span class="emphasis"><i class="EMPHASIS">0</i></span> - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - Blocks are not enforced. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - <span class="APPLICATION">Privoxy</span> is mainly used to - block and filter requests as a service to the user, for - example to block ads and other junk that clogs the pipes. - <span class="APPLICATION">Privoxy's</span> configuration - isn't perfect and sometimes innocent pages are blocked. In - this situation it makes sense to allow the user to enforce - the request and have <span class= - "APPLICATION">Privoxy</span> ignore the block. - </p> - <p> - In the default configuration <span class= - "APPLICATION">Privoxy's</span> <span class= - "QUOTE">"Blocked"</span> page contains a <span class= - "QUOTE">"go there anyway"</span> link to adds a special - string (the force prefix) to the request URL. If that link - is used, <span class="APPLICATION">Privoxy</span> will - detect the force prefix, remove it again and let the - request pass. - </p> - <p> - Of course <span class="APPLICATION">Privoxy</span> can also - be used to enforce a network policy. In that case the user - obviously should not be able to bypass any blocks, and - that's what the <span class="QUOTE">"enforce-blocks"</span> - option is for. If it's enabled, <span class= - "APPLICATION">Privoxy</span> hides the <span class= - "QUOTE">"go there anyway"</span> link. If the user adds the - force prefix by hand, it will not be accepted and the - circumvention attempt is logged. - </p> - </dd> - <dt> - Examples: - </dt> - <dd> - <p> - enforce-blocks 1 - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="ENFORCE-BLOCKS" id="ENFORCE-BLOCKS">7.4.6. + enforce-blocks</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>Whether the user is allowed to ignore blocks and can + <span class="QUOTE">"go there anyway"</span>.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p><tt class="REPLACEABLE c3">0 or 1</tt></p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p><span class="emphasis EMPHASIS c2">0</span></p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>Blocks are not enforced.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p><span class="APPLICATION">Privoxy</span> is mainly used to + block and filter requests as a service to the user, for example + to block ads and other junk that clogs the pipes. <span class= + "APPLICATION">Privoxy's</span> configuration isn't perfect and + sometimes innocent pages are blocked. In this situation it + makes sense to allow the user to enforce the request and have + <span class="APPLICATION">Privoxy</span> ignore the block.</p> + + <p>In the default configuration <span class= + "APPLICATION">Privoxy's</span> <span class= + "QUOTE">"Blocked"</span> page contains a <span class= + "QUOTE">"go there anyway"</span> link to adds a special string + (the force prefix) to the request URL. If that link is used, + <span class="APPLICATION">Privoxy</span> will detect the force + prefix, remove it again and let the request pass.</p> + + <p>Of course <span class="APPLICATION">Privoxy</span> can also + be used to enforce a network policy. In that case the user + obviously should not be able to bypass any blocks, and that's + what the <span class="QUOTE">"enforce-blocks"</span> option is + for. If it's enabled, <span class="APPLICATION">Privoxy</span> + hides the <span class="QUOTE">"go there anyway"</span> link. If + the user adds the force prefix by hand, it will not be accepted + and the circumvention attempt is logged.</p> + </dd> + + <dt>Examples:</dt> + + <dd> + <p>enforce-blocks 1</p> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="ACLS">7.4.7. ACLs: permit-access and deny-access</a> - </h4> - <a name="PERMIT-ACCESS"></a><a name="DENY-ACCESS"></a> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - Who can access what. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - <tt class="REPLACEABLE"><i>src_addr</i></tt>[:<tt class= - "REPLACEABLE"><i>port</i></tt>][/<tt class= - "REPLACEABLE"><i>src_masklen</i></tt>] [<tt class= - "REPLACEABLE"><i>dst_addr</i></tt>[:<tt class= - "REPLACEABLE"><i>port</i></tt>][/<tt class= - "REPLACEABLE"><i>dst_masklen</i></tt>]] - </p> - <p> - Where <tt class="REPLACEABLE"><i>src_addr</i></tt> and <tt - class="REPLACEABLE"><i>dst_addr</i></tt> are IPv4 addresses - in dotted decimal notation or valid DNS names, <tt class= - "REPLACEABLE"><i>port</i></tt> is a port number, and <tt - class="REPLACEABLE"><i>src_masklen</i></tt> and <tt class= - "REPLACEABLE"><i>dst_masklen</i></tt> are subnet masks in - CIDR notation, i.e. integer values from 2 to 30 - representing the length (in bits) of the network address. - The masks and the whole destination part are optional. - </p> - <p> - If your system implements <a href= - "http://tools.ietf.org/html/rfc3493" target="_top">RFC - 3493</a>, then <tt class="REPLACEABLE"><i>src_addr</i></tt> - and <tt class="REPLACEABLE"><i>dst_addr</i></tt> can be - IPv6 addresses delimeted by brackets, <tt class= - "REPLACEABLE"><i>port</i></tt> can be a number or a service - name, and <tt class="REPLACEABLE"><i>src_masklen</i></tt> - and <tt class="REPLACEABLE"><i>dst_masklen</i></tt> can be - a number from 0 to 128. - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - <span class="emphasis"><i class="EMPHASIS">Unset</i></span> - </p> - <p> - If no <tt class="REPLACEABLE"><i>port</i></tt> is - specified, any port will match. If no <tt class= - "REPLACEABLE"><i>src_masklen</i></tt> or <tt class= - "REPLACEABLE"><i>src_masklen</i></tt> is given, the - complete IP address has to match (i.e. 32 bits for IPv4 and - 128 bits for IPv6). - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - Don't restrict access further than implied by <tt class= - "LITERAL">listen-address</tt> - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - Access controls are included at the request of ISPs and - systems administrators, and <span class="emphasis"><i - class="EMPHASIS">are not usually needed by individual - users</i></span>. For a typical home user, it will normally - suffice to ensure that <span class= - "APPLICATION">Privoxy</span> only listens on the localhost - (127.0.0.1) or internal (home) network address by means of - the <a href="config.html#LISTEN-ADDRESS"><span class= - "emphasis"><i class= - "EMPHASIS">listen-address</i></span></a> option. - </p> - <p> - Please see the warnings in the FAQ that <span class= - "APPLICATION">Privoxy</span> is not intended to be a - substitute for a firewall or to encourage anyone to defer - addressing basic security weaknesses. - </p> - <p> - Multiple ACL lines are OK. If any ACLs are specified, <span - class="APPLICATION">Privoxy</span> only talks to IP - addresses that match at least one <tt class= - "LITERAL">permit-access</tt> line and don't match any - subsequent <tt class="LITERAL">deny-access</tt> line. In - other words, the last match wins, with the default being - <tt class="LITERAL">deny-access</tt>. - </p> - <p> - If <span class="APPLICATION">Privoxy</span> is using a - forwarder (see <tt class="LITERAL">forward</tt> below) for - a particular destination URL, the <tt class= - "REPLACEABLE"><i>dst_addr</i></tt> that is examined is the - address of the forwarder and <span class="emphasis"><i - class="EMPHASIS">NOT</i></span> the address of the ultimate - target. This is necessary because it may be impossible for - the local <span class="APPLICATION">Privoxy</span> to - determine the IP address of the ultimate target (that's - often what gateways are used for). - </p> - <p> - You should prefer using IP addresses over DNS names, - because the address lookups take time. All DNS names must - resolve! You can <span class="emphasis"><i class= - "EMPHASIS">not</i></span> use domain patterns like <span - class="QUOTE">"*.org"</span> or partial domain names. If a - DNS name resolves to multiple IP addresses, only the first - one is used. - </p> - <p> - Some systems allow IPv4 clients to connect to IPv6 server - sockets. Then the client's IPv4 address will be translated - by the system into IPv6 address space with special prefix - ::ffff:0:0/96 (so called IPv4 mapped IPv6 address). <span - class="APPLICATION">Privoxy</span> can handle it and maps - such ACL addresses automatically. - </p> - <p> - Denying access to particular sites by ACL may have - undesired side effects if the site in question is hosted on - a machine which also hosts other sites (most sites are). - </p> - </dd> - <dt> - Examples: - </dt> - <dd> - <p> - Explicitly define the default behavior if no ACL and <tt - class="LITERAL">listen-address</tt> are set: <span class= - "QUOTE">"localhost"</span> is OK. The absence of a <tt - class="REPLACEABLE"><i>dst_addr</i></tt> implies that <span - class="emphasis"><i class="EMPHASIS">all</i></span> - destination addresses are OK: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="ACLS" id="ACLS">7.4.7. ACLs: permit-access + and deny-access</a></h4><a name="PERMIT-ACCESS" id= + "PERMIT-ACCESS"></a><a name="DENY-ACCESS" id="DENY-ACCESS"></a> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>Who can access what.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p><tt class="REPLACEABLE c3">src_addr</tt>[:<tt class= + "REPLACEABLE c3">port</tt>][/<tt class= + "REPLACEABLE c3">src_masklen</tt>] [<tt class= + "REPLACEABLE c3">dst_addr</tt>[:<tt class= + "REPLACEABLE c3">port</tt>][/<tt class= + "REPLACEABLE c3">dst_masklen</tt>]]</p> + + <p>Where <tt class="REPLACEABLE c3">src_addr</tt> and + <tt class="REPLACEABLE c3">dst_addr</tt> are IPv4 addresses in + dotted decimal notation or valid DNS names, <tt class= + "REPLACEABLE c3">port</tt> is a port number, and <tt class= + "REPLACEABLE c3">src_masklen</tt> and <tt class= + "REPLACEABLE c3">dst_masklen</tt> are subnet masks in CIDR + notation, i.e. integer values from 2 to 30 representing the + length (in bits) of the network address. The masks and the + whole destination part are optional.</p> + + <p>If your system implements <a href= + "http://tools.ietf.org/html/rfc3493" target="_top">RFC + 3493</a>, then <tt class="REPLACEABLE c3">src_addr</tt> and + <tt class="REPLACEABLE c3">dst_addr</tt> can be IPv6 addresses + delimeted by brackets, <tt class="REPLACEABLE c3">port</tt> can + be a number or a service name, and <tt class= + "REPLACEABLE c3">src_masklen</tt> and <tt class= + "REPLACEABLE c3">dst_masklen</tt> can be a number from 0 to + 128.</p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p><span class="emphasis EMPHASIS c2">Unset</span></p> + + <p>If no <tt class="REPLACEABLE c3">port</tt> is specified, any + port will match. If no <tt class= + "REPLACEABLE c3">src_masklen</tt> or <tt class= + "REPLACEABLE c3">src_masklen</tt> is given, the complete IP + address has to match (i.e. 32 bits for IPv4 and 128 bits for + IPv6).</p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>Don't restrict access further than implied by <tt class= + "LITERAL">listen-address</tt></p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>Access controls are included at the request of ISPs and + systems administrators, and <span class= + "emphasis EMPHASIS c2">are not usually needed by individual + users</span>. For a typical home user, it will normally suffice + to ensure that <span class="APPLICATION">Privoxy</span> only + listens on the localhost (127.0.0.1) or internal (home) network + address by means of the <a href= + "config.html#LISTEN-ADDRESS"><span class= + "emphasis EMPHASIS c2">listen-address</span></a> option.</p> + + <p>Please see the warnings in the FAQ that <span class= + "APPLICATION">Privoxy</span> is not intended to be a substitute + for a firewall or to encourage anyone to defer addressing basic + security weaknesses.</p> + + <p>Multiple ACL lines are OK. If any ACLs are specified, + <span class="APPLICATION">Privoxy</span> only talks to IP + addresses that match at least one <tt class= + "LITERAL">permit-access</tt> line and don't match any + subsequent <tt class="LITERAL">deny-access</tt> line. In other + words, the last match wins, with the default being <tt class= + "LITERAL">deny-access</tt>.</p> + + <p>If <span class="APPLICATION">Privoxy</span> is using a + forwarder (see <tt class="LITERAL">forward</tt> below) for a + particular destination URL, the <tt class= + "REPLACEABLE c3">dst_addr</tt> that is examined is the address + of the forwarder and <span class= + "emphasis EMPHASIS c2">NOT</span> the address of the ultimate + target. This is necessary because it may be impossible for the + local <span class="APPLICATION">Privoxy</span> to determine the + IP address of the ultimate target (that's often what gateways + are used for).</p> + + <p>You should prefer using IP addresses over DNS names, because + the address lookups take time. All DNS names must resolve! You + can <span class="emphasis EMPHASIS c2">not</span> use domain + patterns like <span class="QUOTE">"*.org"</span> or partial + domain names. If a DNS name resolves to multiple IP addresses, + only the first one is used.</p> + + <p>Some systems allow IPv4 clients to connect to IPv6 server + sockets. Then the client's IPv4 address will be translated by + the system into IPv6 address space with special prefix + ::ffff:0:0/96 (so called IPv4 mapped IPv6 address). + <span class="APPLICATION">Privoxy</span> can handle it and maps + such ACL addresses automatically.</p> + + <p>Denying access to particular sites by ACL may have undesired + side effects if the site in question is hosted on a machine + which also hosts other sites (most sites are).</p> + </dd> + + <dt>Examples:</dt> + + <dd> + <p>Explicitly define the default behavior if no ACL and + <tt class="LITERAL">listen-address</tt> are set: <span class= + "QUOTE">"localhost"</span> is OK. The absence of a <tt class= + "REPLACEABLE c3">dst_addr</tt> implies that <span class= + "emphasis EMPHASIS c2">all</span> destination addresses are + OK:</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> permit-access localhost </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Allow any host on the same class C subnet as - www.privoxy.org access to nothing but www.example.com (or - other domains hosted on the same system): - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p>Allow any host on the same class C subnet as www.privoxy.org + access to nothing but www.example.com (or other domains hosted + on the same system):</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> permit-access www.privoxy.org/24 www.example.com/32 </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Allow access from any host on the 26-bit subnet - 192.168.45.64 to anywhere, with the exception that - 192.168.45.73 may not access the IP address behind - www.dirty-stuff.example.com: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p>Allow access from any host on the 26-bit subnet + 192.168.45.64 to anywhere, with the exception that + 192.168.45.73 may not access the IP address behind + www.dirty-stuff.example.com:</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> permit-access 192.168.45.64/26 deny-access 192.168.45.73 www.dirty-stuff.example.com </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Allow access from the IPv4 network 192.0.2.0/24 even if - listening on an IPv6 wild card address (not supported on - all platforms): - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>Allow access from the IPv4 network 192.0.2.0/24 even if + listening on an IPv6 wild card address (not supported on all + platforms):</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> permit-access 192.0.2.0/24 </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - This is equivalent to the following line even if listening - on an IPv4 address (not supported on all platforms): - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>This is equivalent to the following line even if listening + on an IPv4 address (not supported on all platforms):</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> permit-access [::ffff:192.0.2.0]/120 </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="BUFFER-LIMIT">7.4.8. buffer-limit</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - Maximum size of the buffer for content filtering. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - Size in Kbytes - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - 4096 - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - Use a 4MB (4096 KB) limit. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - For content filtering, i.e. the <tt class= - "LITERAL">+filter</tt> and <tt class= - "LITERAL">+deanimate-gif</tt> actions, it is necessary that - <span class="APPLICATION">Privoxy</span> buffers the entire - document body. This can be potentially dangerous, since a - server could just keep sending data indefinitely and wait - for your RAM to exhaust -- with nasty consequences. Hence - this option. - </p> - <p> - When a document buffer size reaches the <tt class= - "LITERAL">buffer-limit</tt>, it is flushed to the client - unfiltered and no further attempt to filter the rest of the - document is made. Remember that there may be multiple - threads running, which might require up to <tt class= - "LITERAL">buffer-limit</tt> Kbytes <span class= - "emphasis"><i class="EMPHASIS">each</i></span>, unless you - have enabled <span class="QUOTE">"single-threaded"</span> - above. - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="BUFFER-LIMIT" id="BUFFER-LIMIT">7.4.8. + buffer-limit</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>Maximum size of the buffer for content filtering.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p>Size in Kbytes</p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p>4096</p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>Use a 4MB (4096 KB) limit.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>For content filtering, i.e. the <tt class= + "LITERAL">+filter</tt> and <tt class= + "LITERAL">+deanimate-gif</tt> actions, it is necessary that + <span class="APPLICATION">Privoxy</span> buffers the entire + document body. This can be potentially dangerous, since a + server could just keep sending data indefinitely and wait for + your RAM to exhaust -- with nasty consequences. Hence this + option.</p> + + <p>When a document buffer size reaches the <tt class= + "LITERAL">buffer-limit</tt>, it is flushed to the client + unfiltered and no further attempt to filter the rest of the + document is made. Remember that there may be multiple threads + running, which might require up to <tt class= + "LITERAL">buffer-limit</tt> Kbytes <span class= + "emphasis EMPHASIS c2">each</span>, unless you have enabled + <span class="QUOTE">"single-threaded"</span> above.</p> + </dd> + </dl> </div> </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="FORWARDING">7.5. Forwarding</a> - </h2> - <p> - This feature allows routing of HTTP requests through a chain of - multiple proxies. - </p> - <p> - Forwarding can be used to chain Privoxy with a caching proxy to - speed up browsing. Using a parent proxy may also be necessary if - the machine that <span class="APPLICATION">Privoxy</span> runs on - has no direct Internet access. - </p> - <p> - Note that parent proxies can severely decrease your privacy level. - For example a parent proxy could add your IP address to the request - headers and if it's a caching proxy it may add the <span class= - "QUOTE">"Etag"</span> header to revalidation requests again, even - though you configured Privoxy to remove it. It may also ignore - Privoxy's header time randomization and use the original values - which could be used by the server as cookie replacement to track - your steps between visits. - </p> - <p> - Also specified here are SOCKS proxies. <span class= - "APPLICATION">Privoxy</span> supports the SOCKS 4 and SOCKS 4A - protocols. - </p> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="FORWARD">7.5.1. forward</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - To which parent HTTP proxy specific requests should be - routed. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - <tt class="REPLACEABLE"><i>target_pattern</i></tt> <tt - class="REPLACEABLE"><i>http_parent</i></tt>[:<tt class= - "REPLACEABLE"><i>port</i></tt>] - </p> - <p> - where <tt class="REPLACEABLE"><i>target_pattern</i></tt> is - a <a href="actions-file.html#AF-PATTERNS">URL pattern</a> - that specifies to which requests (i.e. URLs) this forward - rule shall apply. Use <tt class="LITERAL">/</tt> to denote - <span class="QUOTE">"all URLs"</span>. <tt class= - "REPLACEABLE"><i>http_parent</i></tt>[:<tt class= - "REPLACEABLE"><i>port</i></tt>] is the DNS name or IP - address of the parent HTTP proxy through which the requests - should be forwarded, optionally followed by its listening - port (default: 8000). Use a single dot (<tt class= - "LITERAL">.</tt>) to denote <span class="QUOTE">"no - forwarding"</span>. - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - <span class="emphasis"><i class="EMPHASIS">Unset</i></span> - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - Don't use parent HTTP proxies. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - If <tt class="REPLACEABLE"><i>http_parent</i></tt> is <span - class="QUOTE">"."</span>, then requests are not forwarded - to another HTTP proxy but are made directly to the web - servers. - </p> - <p> - <tt class="REPLACEABLE"><i>http_parent</i></tt> can be a - numerical IPv6 address (if <a href= - "http://tools.ietf.org/html/rfc3493" target="_top">RFC - 3493</a> is implemented). To prevent clashes with the port - delimiter, the whole IP address has to be put into - brackets. On the other hand a <tt class= - "REPLACEABLE"><i>target_pattern</i></tt> containing an IPv6 - address has to be put into angle brackets (normal brackets - are reserved for regular expressions already). - </p> - <p> - Multiple lines are OK, they are checked in sequence, and - the last match wins. - </p> - </dd> - <dt> - Examples: - </dt> - <dd> - <p> - Everything goes to an example parent proxy, except SSL on - port 443 (which it doesn't handle): - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="FORWARDING" id="FORWARDING">7.5. + Forwarding</a></h2> + + <p>This feature allows routing of HTTP requests through a chain of + multiple proxies.</p> + + <p>Forwarding can be used to chain Privoxy with a caching proxy to + speed up browsing. Using a parent proxy may also be necessary if the + machine that <span class="APPLICATION">Privoxy</span> runs on has no + direct Internet access.</p> + + <p>Note that parent proxies can severely decrease your privacy level. + For example a parent proxy could add your IP address to the request + headers and if it's a caching proxy it may add the <span class= + "QUOTE">"Etag"</span> header to revalidation requests again, even + though you configured Privoxy to remove it. It may also ignore + Privoxy's header time randomization and use the original values which + could be used by the server as cookie replacement to track your steps + between visits.</p> + + <p>Also specified here are SOCKS proxies. <span class= + "APPLICATION">Privoxy</span> supports the SOCKS 4 and SOCKS 4A + protocols.</p> + + <div class="SECT3"> + <h4 class="SECT3"><a name="FORWARD" id="FORWARD">7.5.1. + forward</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>To which parent HTTP proxy specific requests should be + routed.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p><tt class="REPLACEABLE c3">target_pattern</tt> <tt class= + "REPLACEABLE c3">http_parent</tt>[:<tt class= + "REPLACEABLE c3">port</tt>]</p> + + <p>where <tt class="REPLACEABLE c3">target_pattern</tt> is a + <a href="actions-file.html#AF-PATTERNS">URL pattern</a> that + specifies to which requests (i.e. URLs) this forward rule shall + apply. Use <tt class="LITERAL">/</tt> to denote <span class= + "QUOTE">"all URLs"</span>. <tt class= + "REPLACEABLE c3">http_parent</tt>[:<tt class= + "REPLACEABLE c3">port</tt>] is the DNS name or IP address of + the parent HTTP proxy through which the requests should be + forwarded, optionally followed by its listening port (default: + 8000). Use a single dot (<tt class="LITERAL">.</tt>) to denote + <span class="QUOTE">"no forwarding"</span>.</p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p><span class="emphasis EMPHASIS c2">Unset</span></p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>Don't use parent HTTP proxies.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>If <tt class="REPLACEABLE c3">http_parent</tt> is + <span class="QUOTE">"."</span>, then requests are not forwarded + to another HTTP proxy but are made directly to the web + servers.</p> + + <p><tt class="REPLACEABLE c3">http_parent</tt> can be a + numerical IPv6 address (if <a href= + "http://tools.ietf.org/html/rfc3493" target="_top">RFC 3493</a> + is implemented). To prevent clashes with the port delimiter, + the whole IP address has to be put into brackets. On the other + hand a <tt class="REPLACEABLE c3">target_pattern</tt> + containing an IPv6 address has to be put into angle brackets + (normal brackets are reserved for regular expressions + already).</p> + + <p>Multiple lines are OK, they are checked in sequence, and the + last match wins.</p> + </dd> + + <dt>Examples:</dt> + + <dd> + <p>Everything goes to an example parent proxy, except SSL on + port 443 (which it doesn't handle):</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> forward / parent-proxy.example.org:8080 forward :443 . </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Everything goes to our example ISP's caching proxy, except - for requests to that ISP's sites: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p>Everything goes to our example ISP's caching proxy, except + for requests to that ISP's sites:</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> forward / caching-proxy.isp.example.net:8000 forward .isp.example.net . </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Parent proxy specified by an IPv6 address: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>Parent proxy specified by an IPv6 address:</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> forward / [2001:DB8::1]:8000 </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Suppose your parent proxy doesn't support IPv6: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="PROGRAMLISTING"> + <p>Suppose your parent proxy doesn't support IPv6:</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="PROGRAMLISTING"> forward / parent-proxy.example.org:8000 forward ipv6-server.example.org . forward <[2-3][0-9a-f][0-9a-f][0-9a-f]:*> . </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="SOCKS">7.5.2. forward-socks4, forward-socks4a and - forward-socks5</a> - </h4> - <a name="FORWARD-SOCKS4"></a><a name="FORWARD-SOCKS4A"></a> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - Through which SOCKS proxy (and optionally to which parent - HTTP proxy) specific requests should be routed. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - <tt class="REPLACEABLE"><i>target_pattern</i></tt> <tt - class="REPLACEABLE"><i>socks_proxy</i></tt>[:<tt class= - "REPLACEABLE"><i>port</i></tt>] <tt class= - "REPLACEABLE"><i>http_parent</i></tt>[:<tt class= - "REPLACEABLE"><i>port</i></tt>] - </p> - <p> - where <tt class="REPLACEABLE"><i>target_pattern</i></tt> is - a <a href="actions-file.html#AF-PATTERNS">URL pattern</a> - that specifies to which requests (i.e. URLs) this forward - rule shall apply. Use <tt class="LITERAL">/</tt> to denote - <span class="QUOTE">"all URLs"</span>. <tt class= - "REPLACEABLE"><i>http_parent</i></tt> and <tt class= - "REPLACEABLE"><i>socks_proxy</i></tt> are IP addresses in - dotted decimal notation or valid DNS names (<tt class= - "REPLACEABLE"><i>http_parent</i></tt> may be <span class= - "QUOTE">"."</span> to denote <span class="QUOTE">"no HTTP - forwarding"</span>), and the optional <tt class= - "REPLACEABLE"><i>port</i></tt> parameters are TCP ports, - i.e. integer values from 1 to 65535 - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - <span class="emphasis"><i class="EMPHASIS">Unset</i></span> - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - Don't use SOCKS proxies. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - Multiple lines are OK, they are checked in sequence, and - the last match wins. - </p> - <p> - The difference between <tt class= - "LITERAL">forward-socks4</tt> and <tt class= - "LITERAL">forward-socks4a</tt> is that in the SOCKS 4A - protocol, the DNS resolution of the target hostname happens - on the SOCKS server, while in SOCKS 4 it happens locally. - </p> - <p> - With <tt class="LITERAL">forward-socks5</tt> the DNS - resolution will happen on the remote server as well. - </p> - <p> - <tt class="REPLACEABLE"><i>socks_proxy</i></tt> and <tt - class="REPLACEABLE"><i>http_parent</i></tt> can be a - numerical IPv6 address (if <a href= - "http://tools.ietf.org/html/rfc3493" target="_top">RFC - 3493</a> is implemented). To prevent clashes with the port - delimiter, the whole IP address has to be put into - brackets. On the other hand a <tt class= - "REPLACEABLE"><i>target_pattern</i></tt> containing an IPv6 - address has to be put into angle brackets (normal brackets - are reserved for regular expressions already). - </p> - <p> - If <tt class="REPLACEABLE"><i>http_parent</i></tt> is <span - class="QUOTE">"."</span>, then requests are not forwarded - to another HTTP proxy but are made (HTTP-wise) directly to - the web servers, albeit through a SOCKS proxy. - </p> - </dd> - <dt> - Examples: - </dt> - <dd> - <p> - From the company example.com, direct connections are made - to all <span class="QUOTE">"internal"</span> domains, but - everything outbound goes through their ISP's proxy by way - of example.com's corporate SOCKS 4A gateway to the - Internet. - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="SOCKS" id="SOCKS">7.5.2. forward-socks4, + forward-socks4a and forward-socks5</a></h4><a name="FORWARD-SOCKS4" + id="FORWARD-SOCKS4"></a><a name="FORWARD-SOCKS4A" id= + "FORWARD-SOCKS4A"></a> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>Through which SOCKS proxy (and optionally to which parent + HTTP proxy) specific requests should be routed.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p><tt class="REPLACEABLE c3">target_pattern</tt> <tt class= + "REPLACEABLE c3">socks_proxy</tt>[:<tt class= + "REPLACEABLE c3">port</tt>] <tt class= + "REPLACEABLE c3">http_parent</tt>[:<tt class= + "REPLACEABLE c3">port</tt>]</p> + + <p>where <tt class="REPLACEABLE c3">target_pattern</tt> is a + <a href="actions-file.html#AF-PATTERNS">URL pattern</a> that + specifies to which requests (i.e. URLs) this forward rule shall + apply. Use <tt class="LITERAL">/</tt> to denote <span class= + "QUOTE">"all URLs"</span>. <tt class= + "REPLACEABLE c3">http_parent</tt> and <tt class= + "REPLACEABLE c3">socks_proxy</tt> are IP addresses in dotted + decimal notation or valid DNS names (<tt class= + "REPLACEABLE c3">http_parent</tt> may be <span class= + "QUOTE">"."</span> to denote <span class="QUOTE">"no HTTP + forwarding"</span>), and the optional <tt class= + "REPLACEABLE c3">port</tt> parameters are TCP ports, i.e. + integer values from 1 to 65535</p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p><span class="emphasis EMPHASIS c2">Unset</span></p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>Don't use SOCKS proxies.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>Multiple lines are OK, they are checked in sequence, and the + last match wins.</p> + + <p>The difference between <tt class= + "LITERAL">forward-socks4</tt> and <tt class= + "LITERAL">forward-socks4a</tt> is that in the SOCKS 4A + protocol, the DNS resolution of the target hostname happens on + the SOCKS server, while in SOCKS 4 it happens locally.</p> + + <p>With <tt class="LITERAL">forward-socks5</tt> the DNS + resolution will happen on the remote server as well.</p> + + <p><tt class="REPLACEABLE c3">socks_proxy</tt> and <tt class= + "REPLACEABLE c3">http_parent</tt> can be a numerical IPv6 + address (if <a href="http://tools.ietf.org/html/rfc3493" + target="_top">RFC 3493</a> is implemented). To prevent clashes + with the port delimiter, the whole IP address has to be put + into brackets. On the other hand a <tt class= + "REPLACEABLE c3">target_pattern</tt> containing an IPv6 address + has to be put into angle brackets (normal brackets are reserved + for regular expressions already).</p> + + <p>If <tt class="REPLACEABLE c3">http_parent</tt> is + <span class="QUOTE">"."</span>, then requests are not forwarded + to another HTTP proxy but are made (HTTP-wise) directly to the + web servers, albeit through a SOCKS proxy.</p> + </dd> + + <dt>Examples:</dt> + + <dd> + <p>From the company example.com, direct connections are made to + all <span class="QUOTE">"internal"</span> domains, but + everything outbound goes through their ISP's proxy by way of + example.com's corporate SOCKS 4A gateway to the Internet.</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> forward-socks4a / socks-gw.example.com:1080 www-cache.isp.example.net:8080 forward .example.com . </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - A rule that uses a SOCKS 4 gateway for all destinations but - no HTTP parent looks like this: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p>A rule that uses a SOCKS 4 gateway for all destinations but + no HTTP parent looks like this:</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> forward-socks4 / socks-gw.example.com:1080 . </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - To chain Privoxy and Tor, both running on the same system, - you would use something like: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p>To chain Privoxy and Tor, both running on the same system, + you would use something like:</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> forward-socks5 / 127.0.0.1:9050 . </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - The public <span class="APPLICATION">Tor</span> network - can't be used to reach your local network, if you need to - access local servers you therefore might want to make some - exceptions: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p>The public <span class="APPLICATION">Tor</span> network + can't be used to reach your local network, if you need to + access local servers you therefore might want to make some + exceptions:</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> forward 192.168.*.*/ . forward 10.*.*.*/ . forward 127.*.*.*/ . </pre> - </td> - </tr> - </table> + </td> + </tr> + </table> - <p> - Unencrypted connections to systems in these address ranges - will be as (un)secure as the local network is, but the - alternative is that you can't reach the local network - through <span class="APPLICATION">Privoxy</span> at all. Of - course this may actually be desired and there is no reason - to make these exceptions if you aren't sure you need them. - </p> - <p> - If you also want to be able to reach servers in your local - network by using their names, you will need additional - exceptions that look like this: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + <p>Unencrypted connections to systems in these address ranges + will be as (un)secure as the local network is, but the + alternative is that you can't reach the local network through + <span class="APPLICATION">Privoxy</span> at all. Of course this + may actually be desired and there is no reason to make these + exceptions if you aren't sure you need them.</p> + + <p>If you also want to be able to reach servers in your local + network by using their names, you will need additional + exceptions that look like this:</p> + + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> forward localhost/ . </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="ADVANCED-FORWARDING-EXAMPLES">7.5.3. Advanced Forwarding - Examples</a> - </h4> - <p> - If you have links to multiple ISPs that provide various special - content only to their subscribers, you can configure multiple - <span class="APPLICATION">Privoxies</span> which have connections - to the respective ISPs to act as forwarders to each other, so - that <span class="emphasis"><i class="EMPHASIS">your</i></span> - users can see the internal content of all ISPs. - </p> - <p> - Assume that host-a has a PPP connection to isp-a.example.net. And - host-b has a PPP connection to isp-b.example.org. Both run <span - class="APPLICATION">Privoxy</span>. Their forwarding - configuration can look like this: - </p> - <p> - host-a: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="ADVANCED-FORWARDING-EXAMPLES" id= + "ADVANCED-FORWARDING-EXAMPLES">7.5.3. Advanced Forwarding + Examples</a></h4> + + <p>If you have links to multiple ISPs that provide various special + content only to their subscribers, you can configure multiple + <span class="APPLICATION">Privoxies</span> which have connections to + the respective ISPs to act as forwarders to each other, so that + <span class="emphasis EMPHASIS c2">your</span> users can see the + internal content of all ISPs.</p> + + <p>Assume that host-a has a PPP connection to isp-a.example.net. And + host-b has a PPP connection to isp-b.example.org. Both run + <span class="APPLICATION">Privoxy</span>. Their forwarding + configuration can look like this:</p> + + <p>host-a:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> forward / . forward .isp-b.example.net host-b:8118 </pre> - </td> - </tr> - </table> - - <p> - host-b: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>host-b:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> forward / . forward .isp-a.example.org host-a:8118 </pre> - </td> - </tr> - </table> - - <p> - Now, your users can set their browser's proxy to use either - host-a or host-b and be able to browse the internal content of - both isp-a and isp-b. - </p> - <p> - If you intend to chain <span class="APPLICATION">Privoxy</span> - and <span class="APPLICATION">squid</span> locally, then chaining - as <tt class="LITERAL">browser -> squid -> privoxy</tt> is - the recommended way. - </p> - <p> - Assuming that <span class="APPLICATION">Privoxy</span> and <span - class="APPLICATION">squid</span> run on the same box, your <span - class="APPLICATION">squid</span> configuration could then look - like this: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>Now, your users can set their browser's proxy to use either host-a + or host-b and be able to browse the internal content of both isp-a + and isp-b.</p> + + <p>If you intend to chain <span class="APPLICATION">Privoxy</span> + and <span class="APPLICATION">squid</span> locally, then chaining as + <tt class="LITERAL">browser -> squid -> privoxy</tt> is the + recommended way.</p> + + <p>Assuming that <span class="APPLICATION">Privoxy</span> and + <span class="APPLICATION">squid</span> run on the same box, your + <span class="APPLICATION">squid</span> configuration could then look + like this:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> # Define Privoxy as parent proxy (without ICP) cache_peer 127.0.0.1 parent 8118 7 no-query @@ -2517,995 +2095,811 @@ Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> # Forward all the rest to Privoxy never_direct allow all </pre> - </td> - </tr> - </table> - - <p> - You would then need to change your browser's proxy settings to - <span class="APPLICATION">squid</span>'s address and port. Squid - normally uses port 3128. If unsure consult <tt class= - "LITERAL">http_port</tt> in <tt class="FILENAME">squid.conf</tt>. - </p> - <p> - You could just as well decide to only forward requests you - suspect of leading to Windows executables through a - virus-scanning parent proxy, say, on <tt class= - "LITERAL">antivir.example.com</tt>, port 8010: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>You would then need to change your browser's proxy settings to + <span class="APPLICATION">squid</span>'s address and port. Squid + normally uses port 3128. If unsure consult <tt class= + "LITERAL">http_port</tt> in <tt class="FILENAME">squid.conf</tt>.</p> + + <p>You could just as well decide to only forward requests you suspect + of leading to Windows executables through a virus-scanning parent + proxy, say, on <tt class="LITERAL">antivir.example.com</tt>, port + 8010:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> forward / . forward /.*\.(exe|com|dll|zip)$ antivir.example.com:8010 </pre> - </td> - </tr> - </table> - </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="FORWARDED-CONNECT-RETRIES">7.5.4. - forwarded-connect-retries</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - How often Privoxy retries if a forwarded connection request - fails. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - <tt class="REPLACEABLE"><i>Number of retries.</i></tt> - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - <span class="emphasis"><i class="EMPHASIS">0</i></span> - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - Connections forwarded through other proxies are treated - like direct connections and no retry attempts are made. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - <tt class= - "REPLACEABLE"><i>forwarded-connect-retries</i></tt> is - mainly interesting for socks4a connections, where <span - class="APPLICATION">Privoxy</span> can't detect why the - connections failed. The connection might have failed - because of a DNS timeout in which case a retry makes sense, - but it might also have failed because the server doesn't - exist or isn't reachable. In this case the retry will just - delay the appearance of Privoxy's error message. - </p> - <p> - Note that in the context of this option, <span class= - "QUOTE">"forwarded connections"</span> includes all - connections that Privoxy forwards through other proxies. - This option is not limited to the HTTP CONNECT method. - </p> - <p> - Only use this option, if you are getting lots of - forwarding-related error messages that go away when you try - again manually. Start with a small value and check - Privoxy's logfile from time to time, to see how many - retries are usually needed. - </p> - </dd> - <dt> - Examples: - </dt> - <dd> - <p> - forwarded-connect-retries 1 - </p> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="FORWARDED-CONNECT-RETRIES" id= + "FORWARDED-CONNECT-RETRIES">7.5.4. forwarded-connect-retries</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>How often Privoxy retries if a forwarded connection request + fails.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p><tt class="REPLACEABLE c3">Number of retries.</tt></p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p><span class="emphasis EMPHASIS c2">0</span></p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>Connections forwarded through other proxies are treated like + direct connections and no retry attempts are made.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p><tt class="REPLACEABLE c3">forwarded-connect-retries</tt> is + mainly interesting for socks4a connections, where <span class= + "APPLICATION">Privoxy</span> can't detect why the connections + failed. The connection might have failed because of a DNS + timeout in which case a retry makes sense, but it might also + have failed because the server doesn't exist or isn't + reachable. In this case the retry will just delay the + appearance of Privoxy's error message.</p> + + <p>Note that in the context of this option, <span class= + "QUOTE">"forwarded connections"</span> includes all connections + that Privoxy forwards through other proxies. This option is not + limited to the HTTP CONNECT method.</p> + + <p>Only use this option, if you are getting lots of + forwarding-related error messages that go away when you try + again manually. Start with a small value and check Privoxy's + logfile from time to time, to see how many retries are usually + needed.</p> + </dd> + + <dt>Examples:</dt> + + <dd> + <p>forwarded-connect-retries 1</p> + </dd> + </dl> </div> </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="MISC">7.6. Miscellaneous</a> - </h2> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="ACCEPT-INTERCEPTED-REQUESTS">7.6.1. - accept-intercepted-requests</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - Whether intercepted requests should be treated as valid. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - <tt class="REPLACEABLE"><i>0 or 1</i></tt> - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - <span class="emphasis"><i class="EMPHASIS">0</i></span> - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - Only proxy requests are accepted, intercepted requests are - treated as invalid. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - If you don't trust your clients and want to force them to - use <span class="APPLICATION">Privoxy</span>, enable this - option and configure your packet filter to redirect - outgoing HTTP connections into <span class= - "APPLICATION">Privoxy</span>. - </p> - <p> - Make sure that <span class="APPLICATION">Privoxy's</span> - own requests aren't redirected as well. Additionally take - care that <span class="APPLICATION">Privoxy</span> can't - intentionally connect to itself, otherwise you could run - into redirection loops if <span class= - "APPLICATION">Privoxy's</span> listening port is reachable - by the outside or an attacker has access to the pages you - visit. - </p> - </dd> - <dt> - Examples: - </dt> - <dd> - <p> - accept-intercepted-requests 1 - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="MISC" id="MISC">7.6. Miscellaneous</a></h2> + + <div class="SECT3"> + <h4 class="SECT3"><a name="ACCEPT-INTERCEPTED-REQUESTS" id= + "ACCEPT-INTERCEPTED-REQUESTS">7.6.1. + accept-intercepted-requests</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>Whether intercepted requests should be treated as valid.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p><tt class="REPLACEABLE c3">0 or 1</tt></p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p><span class="emphasis EMPHASIS c2">0</span></p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>Only proxy requests are accepted, intercepted requests are + treated as invalid.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>If you don't trust your clients and want to force them to + use <span class="APPLICATION">Privoxy</span>, enable this + option and configure your packet filter to redirect outgoing + HTTP connections into <span class= + "APPLICATION">Privoxy</span>.</p> + + <p>Make sure that <span class="APPLICATION">Privoxy's</span> + own requests aren't redirected as well. Additionally take care + that <span class="APPLICATION">Privoxy</span> can't + intentionally connect to itself, otherwise you could run into + redirection loops if <span class="APPLICATION">Privoxy's</span> + listening port is reachable by the outside or an attacker has + access to the pages you visit.</p> + </dd> + + <dt>Examples:</dt> + + <dd> + <p>accept-intercepted-requests 1</p> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="ALLOW-CGI-REQUEST-CRUNCHING">7.6.2. - allow-cgi-request-crunching</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - Whether requests to <span class= - "APPLICATION">Privoxy's</span> CGI pages can be blocked or - redirected. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - <tt class="REPLACEABLE"><i>0 or 1</i></tt> - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - <span class="emphasis"><i class="EMPHASIS">0</i></span> - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - <span class="APPLICATION">Privoxy</span> ignores block and - redirect actions for its CGI pages. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - By default <span class="APPLICATION">Privoxy</span> ignores - block or redirect actions for its CGI pages. Intercepting - these requests can be useful in multi-user setups to - implement fine-grained access control, but it can also - render the complete web interface useless and make - debugging problems painful if done without care. - </p> - <p> - Don't enable this option unless you're sure that you really - need it. - </p> - </dd> - <dt> - Examples: - </dt> - <dd> - <p> - allow-cgi-request-crunching 1 - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="ALLOW-CGI-REQUEST-CRUNCHING" id= + "ALLOW-CGI-REQUEST-CRUNCHING">7.6.2. + allow-cgi-request-crunching</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>Whether requests to <span class= + "APPLICATION">Privoxy's</span> CGI pages can be blocked or + redirected.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p><tt class="REPLACEABLE c3">0 or 1</tt></p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p><span class="emphasis EMPHASIS c2">0</span></p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p><span class="APPLICATION">Privoxy</span> ignores block and + redirect actions for its CGI pages.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>By default <span class="APPLICATION">Privoxy</span> ignores + block or redirect actions for its CGI pages. Intercepting these + requests can be useful in multi-user setups to implement + fine-grained access control, but it can also render the + complete web interface useless and make debugging problems + painful if done without care.</p> + + <p>Don't enable this option unless you're sure that you really + need it.</p> + </dd> + + <dt>Examples:</dt> + + <dd> + <p>allow-cgi-request-crunching 1</p> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="SPLIT-LARGE-FORMS">7.6.3. split-large-forms</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - Whether the CGI interface should stay compatible with - broken HTTP clients. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - <tt class="REPLACEABLE"><i>0 or 1</i></tt> - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - <span class="emphasis"><i class="EMPHASIS">0</i></span> - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - The CGI form generate long GET URLs. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - <span class="APPLICATION">Privoxy's</span> CGI forms can - lead to rather long URLs. This isn't a problem as far as - the HTTP standard is concerned, but it can confuse clients - with arbitrary URL length limitations. - </p> - <p> - Enabling split-large-forms causes <span class= - "APPLICATION">Privoxy</span> to divide big forms into - smaller ones to keep the URL length down. It makes editing - a lot less convenient and you can no longer submit all - changes at once, but at least it works around this browser - bug. - </p> - <p> - If you don't notice any editing problems, there is no - reason to enable this option, but if one of the submit - buttons appears to be broken, you should give it a try. - </p> - </dd> - <dt> - Examples: - </dt> - <dd> - <p> - split-large-forms 1 - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="SPLIT-LARGE-FORMS" id= + "SPLIT-LARGE-FORMS">7.6.3. split-large-forms</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>Whether the CGI interface should stay compatible with broken + HTTP clients.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p><tt class="REPLACEABLE c3">0 or 1</tt></p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p><span class="emphasis EMPHASIS c2">0</span></p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>The CGI form generate long GET URLs.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p><span class="APPLICATION">Privoxy's</span> CGI forms can + lead to rather long URLs. This isn't a problem as far as the + HTTP standard is concerned, but it can confuse clients with + arbitrary URL length limitations.</p> + + <p>Enabling split-large-forms causes <span class= + "APPLICATION">Privoxy</span> to divide big forms into smaller + ones to keep the URL length down. It makes editing a lot less + convenient and you can no longer submit all changes at once, + but at least it works around this browser bug.</p> + + <p>If you don't notice any editing problems, there is no reason + to enable this option, but if one of the submit buttons appears + to be broken, you should give it a try.</p> + </dd> + + <dt>Examples:</dt> + + <dd> + <p>split-large-forms 1</p> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="KEEP-ALIVE-TIMEOUT">7.6.4. keep-alive-timeout</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - Number of seconds after which an open connection will no - longer be reused. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - <tt class="REPLACEABLE"><i>Time in seconds.</i></tt> - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - None - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - Connections are not kept alive. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - This option allows clients to keep the connection to <span - class="APPLICATION">Privoxy</span> alive. If the server - supports it, <span class="APPLICATION">Privoxy</span> will - keep the connection to the server alive as well. Under - certain circumstances this may result in speed-ups. - </p> - <p> - By default, <span class="APPLICATION">Privoxy</span> will - close the connection to the server if the client connection - gets closed, or if the specified timeout has been reached - without a new request coming in. This behaviour can be - changed with the <a href="#CONNECTION-SHARING" target= - "_top">connection-sharing</a> option. - </p> - <p> - This option has no effect if <span class= - "APPLICATION">Privoxy</span> has been compiled without - keep-alive support. - </p> - <p> - Note that a timeout of five seconds as used in the default - configuration file significantly decreases the number of - connections that will be reused. The value is used because - some browsers limit the number of connections they open to - a single host and apply the same limit to proxies. This can - result in a single website <span class= - "QUOTE">"grabbing"</span> all the connections the browser - allows, which means connections to other websites can't be - opened until the connections currently in use time out. - </p> - <p> - Several users have reported this as a Privoxy bug, so the - default value has been reduced. Consider increasing it to - 300 seconds or even more if you think your browser can - handle it. If your browser appears to be hanging it can't. - </p> - </dd> - <dt> - Examples: - </dt> - <dd> - <p> - keep-alive-timeout 300 - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="KEEP-ALIVE-TIMEOUT" id= + "KEEP-ALIVE-TIMEOUT">7.6.4. keep-alive-timeout</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>Number of seconds after which an open connection will no + longer be reused.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p><tt class="REPLACEABLE c3">Time in seconds.</tt></p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p>None</p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>Connections are not kept alive.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>This option allows clients to keep the connection to + <span class="APPLICATION">Privoxy</span> alive. If the server + supports it, <span class="APPLICATION">Privoxy</span> will keep + the connection to the server alive as well. Under certain + circumstances this may result in speed-ups.</p> + + <p>By default, <span class="APPLICATION">Privoxy</span> will + close the connection to the server if the client connection + gets closed, or if the specified timeout has been reached + without a new request coming in. This behaviour can be changed + with the <a href="#CONNECTION-SHARING" target= + "_top">connection-sharing</a> option.</p> + + <p>This option has no effect if <span class= + "APPLICATION">Privoxy</span> has been compiled without + keep-alive support.</p> + + <p>Note that a timeout of five seconds as used in the default + configuration file significantly decreases the number of + connections that will be reused. The value is used because some + browsers limit the number of connections they open to a single + host and apply the same limit to proxies. This can result in a + single website <span class="QUOTE">"grabbing"</span> all the + connections the browser allows, which means connections to + other websites can't be opened until the connections currently + in use time out.</p> + + <p>Several users have reported this as a Privoxy bug, so the + default value has been reduced. Consider increasing it to 300 + seconds or even more if you think your browser can handle it. + If your browser appears to be hanging it can't.</p> + </dd> + + <dt>Examples:</dt> + + <dd> + <p>keep-alive-timeout 300</p> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="DEFAULT-SERVER-TIMEOUT">7.6.5. - default-server-timeout</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - Assumed server-side keep-alive timeout if not specified by - the server. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - <tt class="REPLACEABLE"><i>Time in seconds.</i></tt> - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - None - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - Connections for which the server didn't specify the - keep-alive timeout are not reused. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - Enabling this option significantly increases the number of - connections that are reused, provided the <a href= - "#KEEP-ALIVE-TIMEOUT" target="_top">keep-alive-timeout</a> - option is also enabled. - </p> - <p> - While it also increases the number of connections problems - when <span class="APPLICATION">Privoxy</span> tries to - reuse a connection that already has been closed on the - server side, or is closed while <span class= - "APPLICATION">Privoxy</span> is trying to reuse it, this - should only be a problem if it happens for the first - request sent by the client. If it happens for requests on - reused client connections, <span class= - "APPLICATION">Privoxy</span> will simply close the - connection and the client is supposed to retry the request - without bothering the user. - </p> - <p> - Enabling this option is therefore only recommended if the - <a href="#CONNECTION-SHARING" target= - "_top">connection-sharing</a> option is disabled. - </p> - <p> - It is an error to specify a value larger than the <a href= - "#KEEP-ALIVE-TIMEOUT" target="_top">keep-alive-timeout</a> - value. - </p> - <p> - This option has no effect if <span class= - "APPLICATION">Privoxy</span> has been compiled without - keep-alive support. - </p> - </dd> - <dt> - Examples: - </dt> - <dd> - <p> - default-server-timeout 60 - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="DEFAULT-SERVER-TIMEOUT" id= + "DEFAULT-SERVER-TIMEOUT">7.6.5. default-server-timeout</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>Assumed server-side keep-alive timeout if not specified by + the server.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p><tt class="REPLACEABLE c3">Time in seconds.</tt></p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p>None</p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>Connections for which the server didn't specify the + keep-alive timeout are not reused.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>Enabling this option significantly increases the number of + connections that are reused, provided the <a href= + "#KEEP-ALIVE-TIMEOUT" target="_top">keep-alive-timeout</a> + option is also enabled.</p> + + <p>While it also increases the number of connections problems + when <span class="APPLICATION">Privoxy</span> tries to reuse a + connection that already has been closed on the server side, or + is closed while <span class="APPLICATION">Privoxy</span> is + trying to reuse it, this should only be a problem if it happens + for the first request sent by the client. If it happens for + requests on reused client connections, <span class= + "APPLICATION">Privoxy</span> will simply close the connection + and the client is supposed to retry the request without + bothering the user.</p> + + <p>Enabling this option is therefore only recommended if the + <a href="#CONNECTION-SHARING" target= + "_top">connection-sharing</a> option is disabled.</p> + + <p>It is an error to specify a value larger than the <a href= + "#KEEP-ALIVE-TIMEOUT" target="_top">keep-alive-timeout</a> + value.</p> + + <p>This option has no effect if <span class= + "APPLICATION">Privoxy</span> has been compiled without + keep-alive support.</p> + </dd> + + <dt>Examples:</dt> + + <dd> + <p>default-server-timeout 60</p> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="CONNECTION-SHARING">7.6.6. connection-sharing</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - Whether or not outgoing connections that have been kept - alive should be shared between different incoming - connections. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - <tt class="REPLACEABLE"><i>0 or 1</i></tt> - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - None - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - Connections are not shared. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - This option has no effect if <span class= - "APPLICATION">Privoxy</span> has been compiled without - keep-alive support, or if it's disabled. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - Note that reusing connections doesn't necessary cause - speedups. There are also a few privacy implications you - should be aware of. - </p> - <p> - If this option is effective, outgoing connections are - shared between clients (if there are more than one) and - closing the browser that initiated the outgoing connection - does no longer affect the connection between <span class= - "APPLICATION">Privoxy</span> and the server unless the - client's request hasn't been completed yet. - </p> - <p> - If the outgoing connection is idle, it will not be closed - until either <span class="APPLICATION">Privoxy's</span> or - the server's timeout is reached. While it's open, the - server knows that the system running <span class= - "APPLICATION">Privoxy</span> is still there. - </p> - <p> - If there are more than one client (maybe even belonging to - multiple users), they will be able to reuse each others - connections. This is potentially dangerous in case of - authentication schemes like NTLM where only the connection - is authenticated, instead of requiring authentication for - each request. - </p> - <p> - If there is only a single client, and if said client can - keep connections alive on its own, enabling this option has - next to no effect. If the client doesn't support connection - keep-alive, enabling this option may make sense as it - allows <span class="APPLICATION">Privoxy</span> to keep - outgoing connections alive even if the client itself - doesn't support it. - </p> - <p> - You should also be aware that enabling this option - increases the likelihood of getting the "No server or - forwarder data" error message, especially if you are using - a slow connection to the Internet. - </p> - <p> - This option should only be used by experienced users who - understand the risks and can weight them against the - benefits. - </p> - </dd> - <dt> - Examples: - </dt> - <dd> - <p> - connection-sharing 1 - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="CONNECTION-SHARING" id= + "CONNECTION-SHARING">7.6.6. connection-sharing</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>Whether or not outgoing connections that have been kept + alive should be shared between different incoming + connections.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p><tt class="REPLACEABLE c3">0 or 1</tt></p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p>None</p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>Connections are not shared.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>This option has no effect if <span class= + "APPLICATION">Privoxy</span> has been compiled without + keep-alive support, or if it's disabled.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>Note that reusing connections doesn't necessary cause + speedups. There are also a few privacy implications you should + be aware of.</p> + + <p>If this option is effective, outgoing connections are shared + between clients (if there are more than one) and closing the + browser that initiated the outgoing connection does no longer + affect the connection between <span class= + "APPLICATION">Privoxy</span> and the server unless the client's + request hasn't been completed yet.</p> + + <p>If the outgoing connection is idle, it will not be closed + until either <span class="APPLICATION">Privoxy's</span> or the + server's timeout is reached. While it's open, the server knows + that the system running <span class= + "APPLICATION">Privoxy</span> is still there.</p> + + <p>If there are more than one client (maybe even belonging to + multiple users), they will be able to reuse each others + connections. This is potentially dangerous in case of + authentication schemes like NTLM where only the connection is + authenticated, instead of requiring authentication for each + request.</p> + + <p>If there is only a single client, and if said client can + keep connections alive on its own, enabling this option has + next to no effect. If the client doesn't support connection + keep-alive, enabling this option may make sense as it allows + <span class="APPLICATION">Privoxy</span> to keep outgoing + connections alive even if the client itself doesn't support + it.</p> + + <p>You should also be aware that enabling this option increases + the likelihood of getting the "No server or forwarder data" + error message, especially if you are using a slow connection to + the Internet.</p> + + <p>This option should only be used by experienced users who + understand the risks and can weight them against the + benefits.</p> + </dd> + + <dt>Examples:</dt> + + <dd> + <p>connection-sharing 1</p> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="SOCKET-TIMEOUT">7.6.7. socket-timeout</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - Number of seconds after which a socket times out if no data - is received. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - <tt class="REPLACEABLE"><i>Time in seconds.</i></tt> - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - None - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - A default value of 300 seconds is used. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - The default is quite high and you probably want to reduce - it. If you aren't using an occasionally slow proxy like - Tor, reducing it to a few seconds should be fine. - </p> - </dd> - <dt> - Examples: - </dt> - <dd> - <p> - socket-timeout 300 - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="SOCKET-TIMEOUT" id="SOCKET-TIMEOUT">7.6.7. + socket-timeout</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>Number of seconds after which a socket times out if no data + is received.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p><tt class="REPLACEABLE c3">Time in seconds.</tt></p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p>None</p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>A default value of 300 seconds is used.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>The default is quite high and you probably want to reduce + it. If you aren't using an occasionally slow proxy like Tor, + reducing it to a few seconds should be fine.</p> + </dd> + + <dt>Examples:</dt> + + <dd> + <p>socket-timeout 300</p> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="MAX-CLIENT-CONNECTIONS">7.6.8. - max-client-connections</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - Maximum number of client connections that will be served. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - <tt class="REPLACEABLE"><i>Positive number.</i></tt> - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - None - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - Connections are served until a resource limit is reached. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - <span class="APPLICATION">Privoxy</span> creates one thread - (or process) for every incoming client connection that - isn't rejected based on the access control settings. - </p> - <p> - If the system is powerful enough, <span class= - "APPLICATION">Privoxy</span> can theoretically deal with - several hundred (or thousand) connections at the same time, - but some operating systems enforce resource limits by - shutting down offending processes and their default limits - may be below the ones <span class= - "APPLICATION">Privoxy</span> would require under heavy - load. - </p> - <p> - Configuring <span class="APPLICATION">Privoxy</span> to - enforce a connection limit below the thread or process - limit used by the operating system makes sure this doesn't - happen. Simply increasing the operating system's limit - would work too, but if <span class= - "APPLICATION">Privoxy</span> isn't the only application - running on the system, you may actually want to limit the - resources used by <span class="APPLICATION">Privoxy</span>. - </p> - <p> - If <span class="APPLICATION">Privoxy</span> is only used by - a single trusted user, limiting the number of client - connections is probably unnecessary. If there are multiple - possibly untrusted users you probably still want to - additionally use a packet filter to limit the maximal - number of incoming connections per client. Otherwise a - malicious user could intentionally create a high number of - connections to prevent other users from using <span class= - "APPLICATION">Privoxy</span>. - </p> - <p> - Obviously using this option only makes sense if you choose - a limit below the one enforced by the operating system. - </p> - </dd> - <dt> - Examples: - </dt> - <dd> - <p> - max-client-connections 256 - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="MAX-CLIENT-CONNECTIONS" id= + "MAX-CLIENT-CONNECTIONS">7.6.8. max-client-connections</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>Maximum number of client connections that will be + served.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p><tt class="REPLACEABLE c3">Positive number.</tt></p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p>None</p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>Connections are served until a resource limit is + reached.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p><span class="APPLICATION">Privoxy</span> creates one thread + (or process) for every incoming client connection that isn't + rejected based on the access control settings.</p> + + <p>If the system is powerful enough, <span class= + "APPLICATION">Privoxy</span> can theoretically deal with + several hundred (or thousand) connections at the same time, but + some operating systems enforce resource limits by shutting down + offending processes and their default limits may be below the + ones <span class="APPLICATION">Privoxy</span> would require + under heavy load.</p> + + <p>Configuring <span class="APPLICATION">Privoxy</span> to + enforce a connection limit below the thread or process limit + used by the operating system makes sure this doesn't happen. + Simply increasing the operating system's limit would work too, + but if <span class="APPLICATION">Privoxy</span> isn't the only + application running on the system, you may actually want to + limit the resources used by <span class= + "APPLICATION">Privoxy</span>.</p> + + <p>If <span class="APPLICATION">Privoxy</span> is only used by + a single trusted user, limiting the number of client + connections is probably unnecessary. If there are multiple + possibly untrusted users you probably still want to + additionally use a packet filter to limit the maximal number of + incoming connections per client. Otherwise a malicious user + could intentionally create a high number of connections to + prevent other users from using <span class= + "APPLICATION">Privoxy</span>.</p> + + <p>Obviously using this option only makes sense if you choose a + limit below the one enforced by the operating system.</p> + </dd> + + <dt>Examples:</dt> + + <dd> + <p>max-client-connections 256</p> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="HANDLE-AS-EMPTY-DOC-RETURNS-OK">7.6.9. - handle-as-empty-doc-returns-ok</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - The status code Privoxy returns for pages blocked with <tt - class="LITERAL"><a href= - "actions-file.html#HANDLE-AS-EMPTY-DOCUMENT" target= - "_top">+handle-as-empty-document</a></tt>. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - <tt class="REPLACEABLE"><i>0 or 1</i></tt> - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - 0 - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - Privoxy returns a status 403(forbidden) for all blocked - pages. - </p> - </dd> - <dt> - Effect if set: - </dt> - <dd> - <p> - Privoxy returns a status 200(OK) for pages blocked with - +handle-as-empty-document and a status 403(Forbidden) for - all other blocked pages. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - This is a work-around for Firefox bug 492459: <span class= - "QUOTE">" Websites are no longer rendered if SSL requests - for JavaScripts are blocked by a proxy. "</span> (<a href= - "https://bugzilla.mozilla.org/show_bug.cgi?id=492459" - target= - "_top">https://bugzilla.mozilla.org/show_bug.cgi?id=492459</a>) - As the bug has been fixed for quite some time this option - should no longer be needed and will be removed in a future - release. Please speak up if you have a reason why the - option should be kept around. - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="HANDLE-AS-EMPTY-DOC-RETURNS-OK" id= + "HANDLE-AS-EMPTY-DOC-RETURNS-OK">7.6.9. + handle-as-empty-doc-returns-ok</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>The status code Privoxy returns for pages blocked with + <tt class="LITERAL"><a href= + "actions-file.html#HANDLE-AS-EMPTY-DOCUMENT" target= + "_top">+handle-as-empty-document</a></tt>.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p><tt class="REPLACEABLE c3">0 or 1</tt></p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p>0</p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>Privoxy returns a status 403(forbidden) for all blocked + pages.</p> + </dd> + + <dt>Effect if set:</dt> + + <dd> + <p>Privoxy returns a status 200(OK) for pages blocked with + +handle-as-empty-document and a status 403(Forbidden) for all + other blocked pages.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>This is a work-around for Firefox bug 492459: <span class= + "QUOTE">" Websites are no longer rendered if SSL requests for + JavaScripts are blocked by a proxy. "</span> (<a href= + "https://bugzilla.mozilla.org/show_bug.cgi?id=492459" target= + "_top">https://bugzilla.mozilla.org/show_bug.cgi?id=492459</a>) + As the bug has been fixed for quite some time this option + should no longer be needed and will be removed in a future + release. Please speak up if you have a reason why the option + should be kept around.</p> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="ENABLE-COMPRESSION">7.6.10. enable-compression</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - Whether or not buffered content is compressed before - delivery. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - <tt class="REPLACEABLE"><i>0 or 1</i></tt> - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - 0 - </p> - </dd> - <dt> - Effect if unset: - </dt> - <dd> - <p> - Privoxy does not compress buffered content. - </p> - </dd> - <dt> - Effect if set: - </dt> - <dd> - <p> - Privoxy compresses buffered content before delivering it to - the client, provided the client supports it. - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - This directive is only supported if Privoxy has been - compiled with FEATURE_COMPRESSION, which should not to be - confused with FEATURE_ZLIB. - </p> - <p> - Compressing buffered content is mainly useful if Privoxy - and the client are running on different systems. If they - are running on the same system, enabling compression is - likely to slow things down. If you didn't measure - otherwise, you should assume that it does and keep this - option disabled. - </p> - <p> - Privoxy will not compress buffered content below a certain - length. - </p> - </dd> - </dl> - </div> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="ENABLE-COMPRESSION" id= + "ENABLE-COMPRESSION">7.6.10. enable-compression</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>Whether or not buffered content is compressed before + delivery.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p><tt class="REPLACEABLE c3">0 or 1</tt></p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p>0</p> + </dd> + + <dt>Effect if unset:</dt> + + <dd> + <p>Privoxy does not compress buffered content.</p> + </dd> + + <dt>Effect if set:</dt> + + <dd> + <p>Privoxy compresses buffered content before delivering it to + the client, provided the client supports it.</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>This directive is only supported if Privoxy has been + compiled with FEATURE_COMPRESSION, which should not to be + confused with FEATURE_ZLIB.</p> + + <p>Compressing buffered content is mainly useful if Privoxy and + the client are running on different systems. If they are + running on the same system, enabling compression is likely to + slow things down. If you didn't measure otherwise, you should + assume that it does and keep this option disabled.</p> + + <p>Privoxy will not compress buffered content below a certain + length.</p> + </dd> + </dl> </div> - <div class="SECT3"> - <h4 class="SECT3"> - <a name="COMPRESSION-LEVEL">7.6.11. compression-level</a> - </h4> - <div class="VARIABLELIST"> - <dl> - <dt> - Specifies: - </dt> - <dd> - <p> - The compression level that is passed to the zlib library - when compressing buffered content. - </p> - </dd> - <dt> - Type of value: - </dt> - <dd> - <p> - <tt class="REPLACEABLE"><i>Positive number ranging from 0 - to 9.</i></tt> - </p> - </dd> - <dt> - Default value: - </dt> - <dd> - <p> - 1 - </p> - </dd> - <dt> - Notes: - </dt> - <dd> - <p> - Compressing the data more takes usually longer than - compressing it less or not compressing it at all. Which - level is best depends on the connection between Privoxy and - the client. If you can't be bothered to benchmark it for - yourself, you should stick with the default and keep - compression disabled. - </p> - <p> - If compression is disabled, the compression level is - irrelevant. - </p> - </dd> - <dt> - Examples: - </dt> - <dd> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="90%"> - <tr> - <td> -<pre class="SCREEN"> + </div> + + <div class="SECT3"> + <h4 class="SECT3"><a name="COMPRESSION-LEVEL" id= + "COMPRESSION-LEVEL">7.6.11. compression-level</a></h4> + + <div class="VARIABLELIST"> + <dl> + <dt>Specifies:</dt> + + <dd> + <p>The compression level that is passed to the zlib library + when compressing buffered content.</p> + </dd> + + <dt>Type of value:</dt> + + <dd> + <p><tt class="REPLACEABLE c3">Positive number ranging from 0 to + 9.</tt></p> + </dd> + + <dt>Default value:</dt> + + <dd> + <p>1</p> + </dd> + + <dt>Notes:</dt> + + <dd> + <p>Compressing the data more takes usually longer than + compressing it less or not compressing it at all. Which level + is best depends on the connection between Privoxy and the + client. If you can't be bothered to benchmark it for yourself, + you should stick with the default and keep compression + disabled.</p> + + <p>If compression is disabled, the compression level is + irrelevant.</p> + </dd> + + <dt>Examples:</dt> + + <dd> + <table class="c4" border="0" width="90%"> + <tr> + <td> + <pre class="SCREEN"> # Best speed (compared to the other levels) compression-level 1 # Best compression @@ -3518,186 +2912,140 @@ Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> compression-level 0 </pre> - </td> - </tr> - </table> - </dd> - </dl> - </div> + </td> + </tr> + </table> + </dd> + </dl> </div> </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="WINDOWS-GUI">7.7. Windows GUI Options</a> - </h2> - <p> - <span class="APPLICATION">Privoxy</span> has a number of options - specific to the Windows GUI interface: - </p> - <a name="ACTIVITY-ANIMATION"></a> - <p> - If <span class="QUOTE">"activity-animation"</span> is set to 1, the - <span class="APPLICATION">Privoxy</span> icon will animate when - <span class="QUOTE">"Privoxy"</span> is active. To turn off, set to - 0. - </p> - <p> - </p> - <p class="LITERALLAYOUT"> - <tt class="LITERAL"> <span class="emphasis"><i class= - "EMPHASIS">activity-animation 1</i></span><br> - </tt> - </p> - <a name="LOG-MESSAGES"></a> - <p> - If <span class="QUOTE">"log-messages"</span> is set to 1, <span - class="APPLICATION">Privoxy</span> will log messages to the console - window: - </p> - <p> - </p> - <p class="LITERALLAYOUT"> - <tt class="LITERAL"> <span class="emphasis"><i class= - "EMPHASIS">log-messages 1</i></span><br> - </tt> - </p> - <a name="LOG-BUFFER-SIZE"></a> - <p> - If <span class="QUOTE">"log-buffer-size"</span> is set to 1, the - size of the log buffer, i.e. the amount of memory used for the log - messages displayed in the console window, will be limited to <span - class="QUOTE">"log-max-lines"</span> (see below). - </p> - <p> - Warning: Setting this to 0 will result in the buffer to grow - infinitely and eat up all your memory! - </p> - <p> - </p> - <p class="LITERALLAYOUT"> - <tt class="LITERAL"> <span class="emphasis"><i class= - "EMPHASIS">log-buffer-size 1</i></span><br> - </tt> - </p> - <a name="LOG-MAX-LINES"></a> - <p> - <span class="APPLICATION">log-max-lines</span> is the maximum - number of lines held in the log buffer. See above. - </p> - <p> - </p> - <p class="LITERALLAYOUT"> - <tt class="LITERAL"> <span class="emphasis"><i class= - "EMPHASIS">log-max-lines 200</i></span><br> - </tt> - </p> - <a name="LOG-HIGHLIGHT-MESSAGES"></a> - <p> - If <span class="QUOTE">"log-highlight-messages"</span> is set to 1, - <span class="APPLICATION">Privoxy</span> will highlight portions of - the log messages with a bold-faced font: - </p> - <p> - </p> - <p class="LITERALLAYOUT"> - <tt class="LITERAL"> <span class="emphasis"><i class= - "EMPHASIS">log-highlight-messages 1</i></span><br> - </tt> - </p> - <a name="LOG-FONT-NAME"></a> - <p> - The font used in the console window: - </p> - <p> - </p> - <p class="LITERALLAYOUT"> - <tt class="LITERAL"> <span class="emphasis"><i class= - "EMPHASIS">log-font-name Comic Sans MS</i></span><br> - </tt> - </p> - <a name="LOG-FONT-SIZE"></a> - <p> - Font size used in the console window: - </p> - <p> - </p> - <p class="LITERALLAYOUT"> - <tt class="LITERAL"> <span class="emphasis"><i class= - "EMPHASIS">log-font-size 8</i></span><br> - </tt> - </p> - <a name="SHOW-ON-TASK-BAR"></a> - <p> - <span class="QUOTE">"show-on-task-bar"</span> controls whether or - not <span class="APPLICATION">Privoxy</span> will appear as a - button on the Task bar when minimized: - </p> - <p> - </p> - <p class="LITERALLAYOUT"> - <tt class="LITERAL"> <span class="emphasis"><i class= - "EMPHASIS">show-on-task-bar 0</i></span><br> - </tt> - </p> - <a name="CLOSE-BUTTON-MINIMIZES"></a> - <p> - If <span class="QUOTE">"close-button-minimizes"</span> is set to 1, - the Windows close button will minimize <span class= - "APPLICATION">Privoxy</span> instead of closing the program (close - with the exit option on the File menu). - </p> - <p> - </p> - <p class="LITERALLAYOUT"> - <tt class="LITERAL"> <span class="emphasis"><i class= - "EMPHASIS">close-button-minimizes 1</i></span><br> - </tt> - </p> - <a name="HIDE-CONSOLE"></a> - <p> - The <span class="QUOTE">"hide-console"</span> option is specific to - the MS-Win console version of <span class= - "APPLICATION">Privoxy</span>. If this option is used, <span class= - "APPLICATION">Privoxy</span> will disconnect from and hide the - command console. - </p> - <p> - </p> - <p class="LITERALLAYOUT"> - <tt class="LITERAL"> #<span class="emphasis"><i class= - "EMPHASIS">hide-console</i></span><br> - </tt> - </p> - </div> </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="configuration.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="actions-file.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - Privoxy Configuration - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Actions Files - </td> - </tr> - </table> + + <div class="SECT2"> + <h2 class="SECT2"><a name="WINDOWS-GUI" id="WINDOWS-GUI">7.7. Windows + GUI Options</a></h2> + + <p><span class="APPLICATION">Privoxy</span> has a number of options + specific to the Windows GUI interface:</p><a name="ACTIVITY-ANIMATION" + id="ACTIVITY-ANIMATION"></a> + + <p>If <span class="QUOTE">"activity-animation"</span> is set to 1, the + <span class="APPLICATION">Privoxy</span> icon will animate when + <span class="QUOTE">"Privoxy"</span> is active. To turn off, set to + 0.</p> + + <p class="LITERALLAYOUT"><tt class="LITERAL"> <span class= + "emphasis EMPHASIS c2">activity-animation 1</span><br> + </tt></p><a name="LOG-MESSAGES" id= + "LOG-MESSAGES"></a> + + <p>If <span class="QUOTE">"log-messages"</span> is set to 1, + <span class="APPLICATION">Privoxy</span> will log messages to the + console window:</p> + + <p class="LITERALLAYOUT"><tt class="LITERAL"> <span class= + "emphasis EMPHASIS c2">log-messages 1</span><br> + </tt></p><a name="LOG-BUFFER-SIZE" id= + "LOG-BUFFER-SIZE"></a> + + <p>If <span class="QUOTE">"log-buffer-size"</span> is set to 1, the + size of the log buffer, i.e. the amount of memory used for the log + messages displayed in the console window, will be limited to + <span class="QUOTE">"log-max-lines"</span> (see below).</p> + + <p>Warning: Setting this to 0 will result in the buffer to grow + infinitely and eat up all your memory!</p> + + <p class="LITERALLAYOUT"><tt class="LITERAL"> <span class= + "emphasis EMPHASIS c2">log-buffer-size 1</span><br> + </tt></p><a name="LOG-MAX-LINES" id= + "LOG-MAX-LINES"></a> + + <p><span class="APPLICATION">log-max-lines</span> is the maximum number + of lines held in the log buffer. See above.</p> + + <p class="LITERALLAYOUT"><tt class="LITERAL"> <span class= + "emphasis EMPHASIS c2">log-max-lines 200</span><br> + </tt></p><a name="LOG-HIGHLIGHT-MESSAGES" id= + "LOG-HIGHLIGHT-MESSAGES"></a> + + <p>If <span class="QUOTE">"log-highlight-messages"</span> is set to 1, + <span class="APPLICATION">Privoxy</span> will highlight portions of the + log messages with a bold-faced font:</p> + + <p class="LITERALLAYOUT"><tt class="LITERAL"> <span class= + "emphasis EMPHASIS c2">log-highlight-messages 1</span><br> + </tt></p><a name="LOG-FONT-NAME" id= + "LOG-FONT-NAME"></a> + + <p>The font used in the console window:</p> + + <p class="LITERALLAYOUT"><tt class="LITERAL"> <span class= + "emphasis EMPHASIS c2">log-font-name Comic Sans MS</span><br> + </tt></p><a name="LOG-FONT-SIZE" id= + "LOG-FONT-SIZE"></a> + + <p>Font size used in the console window:</p> + + <p class="LITERALLAYOUT"><tt class="LITERAL"> <span class= + "emphasis EMPHASIS c2">log-font-size 8</span><br> + </tt></p><a name="SHOW-ON-TASK-BAR" id= + "SHOW-ON-TASK-BAR"></a> + + <p><span class="QUOTE">"show-on-task-bar"</span> controls whether or + not <span class="APPLICATION">Privoxy</span> will appear as a button on + the Task bar when minimized:</p> + + <p class="LITERALLAYOUT"><tt class="LITERAL"> <span class= + "emphasis EMPHASIS c2">show-on-task-bar 0</span><br> + </tt></p><a name="CLOSE-BUTTON-MINIMIZES" id= + "CLOSE-BUTTON-MINIMIZES"></a> + + <p>If <span class="QUOTE">"close-button-minimizes"</span> is set to 1, + the Windows close button will minimize <span class= + "APPLICATION">Privoxy</span> instead of closing the program (close with + the exit option on the File menu).</p> + + <p class="LITERALLAYOUT"><tt class="LITERAL"> <span class= + "emphasis EMPHASIS c2">close-button-minimizes 1</span><br> + </tt></p><a name="HIDE-CONSOLE" id= + "HIDE-CONSOLE"></a> + + <p>The <span class="QUOTE">"hide-console"</span> option is specific to + the MS-Win console version of <span class="APPLICATION">Privoxy</span>. + If this option is used, <span class="APPLICATION">Privoxy</span> will + disconnect from and hide the command console.</p> + + <p class="LITERALLAYOUT"><tt class="LITERAL"> #<span class= + "emphasis EMPHASIS c2">hide-console</span><br> + </tt></p> </div> - </body> -</html> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href= + "configuration.html" accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + <td width="33%" align="right" valign="top"><a href= + "actions-file.html" accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Privoxy Configuration</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Actions Files</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/user-manual/configuration.html b/doc/webserver/user-manual/configuration.html index 1885bdae..a03e6f83 100644 --- a/doc/webserver/user-manual/configuration.html +++ b/doc/webserver/user-manual/configuration.html @@ -1,320 +1,282 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Privoxy Configuration - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> - <link rel="PREVIOUS" title="Starting Privoxy" href="startup.html"> - <link rel="NEXT" title="The Main Configuration File" href="config.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <link rel="STYLESHEET" type="text/css" href="p_doc.css"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Privoxy Configuration</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> + <link rel="PREVIOUS" title="Starting Privoxy" href="startup.html"> + <link rel="NEXT" title="The Main Configuration File" href="config.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <link rel="STYLESHEET" type="text/css" href="p_doc.css"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy 3.0.18 User Manual - </th> - </tr> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + span.c3 {font-style: italic} + table.c2 {background-color: #E0E0E0} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy 3.0.18 User Manual</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href="startup.html" + accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href="config.html" + accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="CONFIGURATION" id="CONFIGURATION">6. Privoxy + Configuration</a></h1> + + <p>All <span class="APPLICATION">Privoxy</span> configuration is stored + in text files. These files can be edited with a text editor. Many + important aspects of <span class="APPLICATION">Privoxy</span> can also be + controlled easily with a web browser.</p> + + <div class="SECT2"> + <h2 class="SECT2"><a name="AEN1074" id="AEN1074">6.1. Controlling + Privoxy with Your Web Browser</a></h2> + + <p><span class="APPLICATION">Privoxy</span>'s user interface can be + reached through the special URL <a href="http://config.privoxy.org/" + target="_top">http://config.privoxy.org/</a> (shortcut: <a href= + "http://p.p/" target="_top">http://p.p/</a>), which is a built-in page + and works without Internet access. You will see the following + section:</p> + + <table class="c2" border="0" width="100%"> <tr> - <td width="10%" align="left" valign="bottom"> - <a href="startup.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="config.html" accesskey="N">Next</a> - </td> - </tr> - </table> - <hr width="100%" class="c1"> - </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="CONFIGURATION">6. Privoxy Configuration</a> - </h1> - <p> - All <span class="APPLICATION">Privoxy</span> configuration is stored - in text files. These files can be edited with a text editor. Many - important aspects of <span class="APPLICATION">Privoxy</span> can - also be controlled easily with a web browser. - </p> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="AEN933">6.1. Controlling Privoxy with Your Web Browser</a> - </h2> - <p> - <span class="APPLICATION">Privoxy</span>'s user interface can be - reached through the special URL <a href= - "http://config.privoxy.org/" target= - "_top">http://config.privoxy.org/</a> (shortcut: <a href= - "http://p.p/" target="_top">http://p.p/</a>), which is a built-in - page and works without Internet access. You will see the following - section: - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <td> + <pre class="SCREEN"> </pre> - <h2 class="BRIDGEHEAD"> - <a name="AEN941"></a> Privoxy Menu - </h2> -<pre> -</pre> - <table border="0"> - <tbody> - <tr> - <td> - ▪ <a - href="http://config.privoxy.org/show-status" target= - "_top">View & change the current configuration</a> - </td> - </tr> - <tr> - <td> - ▪ <a - href="http://config.privoxy.org/show-version" target= - "_top">View the source code version numbers</a> - </td> - </tr> - <tr> - <td> - ▪ <a - href="http://config.privoxy.org/show-request" target= - "_top">View the request headers.</a> - </td> - </tr> - <tr> - <td> - ▪ <a - href="http://config.privoxy.org/show-url-info" target= - "_top">Look up which actions apply to a URL and why</a> - - </td> - </tr> - <tr> - <td> - ▪ <a - href="http://config.privoxy.org/toggle" target= - "_top">Toggle Privoxy on or off</a> - </td> - </tr> - <tr> - <td> - ▪ <a - href="http://www.privoxy.org/3.0.18/user-manual/" - target="_top">Documentation</a> - </td> - </tr> - </tbody> - </table> -<pre> + + <h2 class="BRIDGEHEAD"><a name="AEN1082" id= + "AEN1082"></a> Privoxy Menu</h2> + <pre> </pre> - </td> - </tr> - </table> - <p> - This should be self-explanatory. Note the first item leads to an - editor for the <a href="actions-file.html">actions files</a>, which - is where the ad, banner, cookie, and URL blocking magic is - configured as well as other advanced features of <span class= - "APPLICATION">Privoxy</span>. This is an easy way to adjust various - aspects of <span class="APPLICATION">Privoxy</span> configuration. - The actions file, and other configuration files, are explained in - detail below. - </p> - <p> - <span class="QUOTE">"Toggle Privoxy On or Off"</span> is handy for - sites that might have problems with your current actions and - filters. You can in fact use it as a test to see whether it is - <span class="APPLICATION">Privoxy</span> causing the problem or - not. <span class="APPLICATION">Privoxy</span> continues to run as a - proxy in this case, but all manipulation is disabled, i.e. <span - class="APPLICATION">Privoxy</span> acts like a normal forwarding - proxy. There is even a toggle <a href= - "appendix.html#BOOKMARKLETS">Bookmarklet</a> offered, so that you - can toggle <span class="APPLICATION">Privoxy</span> with one click - from your browser. - </p> - <p> - Note that several of the features described above are disabled by - default in <span class="APPLICATION">Privoxy</span> 3.0.7 beta and - later. Check the <a href="config.html" target="_top">configuration - file</a> to learn why and in which cases it's safe to enable them - again. - </p> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="CONFOVERVIEW">6.2. Configuration Files Overview</a> - </h2> - <p> - For Unix, *BSD and Linux, all configuration files are located in - <tt class="FILENAME">/etc/privoxy/</tt> by default. For MS Windows, - OS/2, and AmigaOS these are all in the same directory as the <span - class="APPLICATION">Privoxy</span> executable. The name and number - of configuration files has changed from previous versions, and is - subject to change as development progresses. - </p> - <p> - The installed defaults provide a reasonable starting point, though - some settings may be aggressive by some standards. For the time - being, the principle configuration files are: - </p> - <p> - </p> - <ul> - <li> - <p> - The <a href="config.html">main configuration file</a> is named - <tt class="FILENAME">config</tt> on Linux, Unix, BSD, OS/2, and - AmigaOS and <tt class="FILENAME">config.txt</tt> on Windows. - This is a required file. - </p> - </li> - <li> - <p> - <tt class="FILENAME">match-all.action</tt> is used to define - which <span class="QUOTE">"actions"</span> relating to - banner-blocking, images, pop-ups, content modification, cookie - handling etc should be applied by default. It should be the - first actions file loaded. - </p> - <p> - <tt class="FILENAME">default.action</tt> defines many - exceptions (both positive and negative) from the default set of - actions that's configured in <tt class= - "FILENAME">match-all.action</tt>. It should be the second - actions file loaded and shouldn't be edited by the user. - </p> - <p> - Multiple actions files may be defined in <tt class= - "FILENAME">config</tt>. These are processed in the order they - are defined. Local customizations and locally preferred - exceptions to the default policies as defined in <tt class= - "FILENAME">match-all.action</tt> (which you will most probably - want to define sooner or later) are best applied in <tt class= - "FILENAME">user.action</tt>, where you can preserve them across - upgrades. The file isn't installed by all installers, but you - can easily create it yourself with a text editor. - </p> - <p> - There is also a web based editor that can be accessed from <a - href="http://config.privoxy.org/show-status" target= - "_top">http://config.privoxy.org/show-status</a> (Shortcut: <a - href="http://p.p/show-status" target= - "_top">http://p.p/show-status</a>) for the various actions - files. - </p> - </li> - <li> - <p> - <span class="QUOTE">"Filter files"</span> (the <a href= - "filter-file.html">filter file</a>) can be used to re-write the - raw page content, including viewable text as well as embedded - HTML and JavaScript, and whatever else lurks on any given web - page. The filtering jobs are only pre-defined here; whether to - apply them or not is up to the actions files. <tt class= - "FILENAME">default.filter</tt> includes various filters made - available for use by the developers. Some are much more - intrusive than others, and all should be used with caution. You - may define additional filter files in <tt class= - "FILENAME">config</tt> as you can with actions files. We - suggest <tt class="FILENAME">user.filter</tt> for any locally - defined filters or customizations. - </p> - </li> - </ul> - - <p> - The syntax of the configuration and filter files may change between - different Privoxy versions, unfortunately some enhancements cost - backwards compatibility. - </p> - <p> - All files use the <span class="QUOTE">"<tt class= - "LITERAL">#</tt>"</span> character to denote a comment (the rest of - the line will be ignored) and understand line continuation through - placing a backslash ("<tt class="LITERAL">\</tt>") as the very last - character in a line. If the <tt class="LITERAL">#</tt> is preceded - by a backslash, it looses its special function. Placing a <tt - class="LITERAL">#</tt> in front of an otherwise valid configuration - line to prevent it from being interpreted is called "commenting - out" that line. Blank lines are ignored. - </p> - <p> - The actions files and filter files can use Perl style <a href= - "appendix.html#REGEX">regular expressions</a> for maximum - flexibility. - </p> - <p> - After making any changes, there is no need to restart <span class= - "APPLICATION">Privoxy</span> in order for the changes to take - effect. <span class="APPLICATION">Privoxy</span> detects such - changes automatically. Note, however, that it may take one or two - additional requests for the change to take effect. When changing - the listening address of <span class="APPLICATION">Privoxy</span>, - these <span class="QUOTE">"wake up"</span> requests must obviously - be sent to the <span class="emphasis"><i class= - "EMPHASIS">old</i></span> listening address. - </p> - <p> - While under development, the configuration content is subject to - change. The below documentation may not be accurate by the time you - read this. Also, what constitutes a <span class= - "QUOTE">"default"</span> setting, may change, so please check all - your configuration files on important issues. - </p> - </div> - </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="startup.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="config.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - Starting Privoxy - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - The Main Configuration File + + <table border="0"> + <tbody> + <tr> + <td> + ▪ <a href="http://config.privoxy.org/show-status" + target="_top">View & change the current + configuration</a></td> + </tr> + + <tr> + <td> + ▪ <a href="http://config.privoxy.org/show-version" + target="_top">View the source code version numbers</a></td> + </tr> + + <tr> + <td> + ▪ <a href="http://config.privoxy.org/show-request" + target="_top">View the request headers.</a></td> + </tr> + + <tr> + <td> + ▪ <a href="http://config.privoxy.org/show-url-info" + target="_top">Look up which actions apply to a URL and + why</a></td> + </tr> + + <tr> + <td> + ▪ <a href="http://config.privoxy.org/toggle" + target="_top">Toggle Privoxy on or off</a></td> + </tr> + + <tr> + <td> + ▪ <a href="http://www.privoxy.org/3.0.18/user-manual/" + target="_top">Documentation</a></td> + </tr> + </tbody> + </table> </td> </tr> </table> + + <p>This should be self-explanatory. Note the first item leads to an + editor for the <a href="actions-file.html">actions files</a>, which is + where the ad, banner, cookie, and URL blocking magic is configured as + well as other advanced features of <span class= + "APPLICATION">Privoxy</span>. This is an easy way to adjust various + aspects of <span class="APPLICATION">Privoxy</span> configuration. The + actions file, and other configuration files, are explained in detail + below.</p> + + <p><span class="QUOTE">"Toggle Privoxy On or Off"</span> is handy for + sites that might have problems with your current actions and filters. + You can in fact use it as a test to see whether it is <span class= + "APPLICATION">Privoxy</span> causing the problem or not. <span class= + "APPLICATION">Privoxy</span> continues to run as a proxy in this case, + but all manipulation is disabled, i.e. <span class= + "APPLICATION">Privoxy</span> acts like a normal forwarding proxy. There + is even a toggle <a href="appendix.html#BOOKMARKLETS">Bookmarklet</a> + offered, so that you can toggle <span class= + "APPLICATION">Privoxy</span> with one click from your browser.</p> + + <p>Note that several of the features described above are disabled by + default in <span class="APPLICATION">Privoxy</span> 3.0.7 beta and + later. Check the <a href="config.html" target="_top">configuration + file</a> to learn why and in which cases it's safe to enable them + again.</p> </div> - </body> -</html> + <div class="SECT2"> + <h2 class="SECT2"><a name="CONFOVERVIEW" id="CONFOVERVIEW">6.2. + Configuration Files Overview</a></h2> + + <p>For Unix, *BSD and Linux, all configuration files are located in + <tt class="FILENAME">/etc/privoxy/</tt> by default. For MS Windows, + OS/2, and AmigaOS these are all in the same directory as the + <span class="APPLICATION">Privoxy</span> executable.</p> + + <p>The installed defaults provide a reasonable starting point, though + some settings may be aggressive by some standards. For the time being, + the principle configuration files are:</p> + + <ul> + <li> + <p>The <a href="config.html">main configuration file</a> is named + <tt class="FILENAME">config</tt> on Linux, Unix, BSD, OS/2, and + AmigaOS and <tt class="FILENAME">config.txt</tt> on Windows. This + is a required file.</p> + </li> + + <li> + <p><tt class="FILENAME">match-all.action</tt> is used to define + which <span class="QUOTE">"actions"</span> relating to + banner-blocking, images, pop-ups, content modification, cookie + handling etc should be applied by default. It should be the first + actions file loaded.</p> + + <p><tt class="FILENAME">default.action</tt> defines many exceptions + (both positive and negative) from the default set of actions that's + configured in <tt class="FILENAME">match-all.action</tt>. It should + be the second actions file loaded and shouldn't be edited by the + user.</p> + + <p>Multiple actions files may be defined in <tt class= + "FILENAME">config</tt>. These are processed in the order they are + defined. Local customizations and locally preferred exceptions to + the default policies as defined in <tt class= + "FILENAME">match-all.action</tt> (which you will most probably want + to define sooner or later) are best applied in <tt class= + "FILENAME">user.action</tt>, where you can preserve them across + upgrades. The file isn't installed by all installers, but you can + easily create it yourself with a text editor.</p> + + <p>There is also a web based editor that can be accessed from + <a href="http://config.privoxy.org/show-status" target= + "_top">http://config.privoxy.org/show-status</a> (Shortcut: + <a href="http://p.p/show-status" target= + "_top">http://p.p/show-status</a>) for the various actions + files.</p> + </li> + + <li> + <p><span class="QUOTE">"Filter files"</span> (the <a href= + "filter-file.html">filter file</a>) can be used to re-write the raw + page content, including viewable text as well as embedded HTML and + JavaScript, and whatever else lurks on any given web page. The + filtering jobs are only pre-defined here; whether to apply them or + not is up to the actions files. <tt class= + "FILENAME">default.filter</tt> includes various filters made + available for use by the developers. Some are much more intrusive + than others, and all should be used with caution. You may define + additional filter files in <tt class="FILENAME">config</tt> as you + can with actions files. We suggest <tt class= + "FILENAME">user.filter</tt> for any locally defined filters or + customizations.</p> + </li> + </ul> + + <p>The syntax of the configuration and filter files may change between + different Privoxy versions, unfortunately some enhancements cost + backwards compatibility.</p> + + <p>All files use the <span class="QUOTE">"<tt class= + "LITERAL">#</tt>"</span> character to denote a comment (the rest of the + line will be ignored) and understand line continuation through placing + a backslash ("<tt class="LITERAL">\</tt>") as the very last character + in a line. If the <tt class="LITERAL">#</tt> is preceded by a + backslash, it looses its special function. Placing a <tt class= + "LITERAL">#</tt> in front of an otherwise valid configuration line to + prevent it from being interpreted is called "commenting out" that line. + Blank lines are ignored.</p> + + <p>The actions files and filter files can use Perl style <a href= + "appendix.html#REGEX">regular expressions</a> for maximum + flexibility.</p> + + <p>After making any changes, there is no need to restart <span class= + "APPLICATION">Privoxy</span> in order for the changes to take effect. + <span class="APPLICATION">Privoxy</span> detects such changes + automatically. Note, however, that it may take one or two additional + requests for the change to take effect. When changing the listening + address of <span class="APPLICATION">Privoxy</span>, these <span class= + "QUOTE">"wake up"</span> requests must obviously be sent to the + <span class="emphasis EMPHASIS c3">old</span> listening address.</p> + </div> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="startup.html" + accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + + <td width="33%" align="right" valign="top"><a href="config.html" + accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Starting Privoxy</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">The Main Configuration + File</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/user-manual/contact.html b/doc/webserver/user-manual/contact.html index 189114c3..cce50c59 100644 --- a/doc/webserver/user-manual/contact.html +++ b/doc/webserver/user-manual/contact.html @@ -1,407 +1,368 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Contacting the Developers, Bug Reporting and Feature Requests - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> - <link rel="PREVIOUS" title="Privoxy's Template Files" href= - "templates.html"> - <link rel="NEXT" title="Privoxy Copyright, License and History" href= - "copyright.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <link rel="STYLESHEET" type="text/css" href="p_doc.css"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Contacting the Developers, Bug Reporting and Feature + Requests</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> + <link rel="PREVIOUS" title="Privoxy's Template Files" href= + "templates.html"> + <link rel="NEXT" title="Privoxy Copyright, License and History" href= + "copyright.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <link rel="STYLESHEET" type="text/css" href="p_doc.css"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy 3.0.18 User Manual - </th> - </tr> - <tr> - <td width="10%" align="left" valign="bottom"> - <a href="templates.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="copyright.html" accesskey="N">Next</a> - </td> - </tr> - </table> - <hr width="100%" class="c1"> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + span.c2 {font-style: italic} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy 3.0.18 User Manual</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href="templates.html" + accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href= + "copyright.html" accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="CONTACT" id="CONTACT">11. Contacting the + Developers, Bug Reporting and Feature Requests</a></h1> + + <p>We value your feedback. In fact, we rely on it to improve <span class= + "APPLICATION">Privoxy</span> and its configuration. However, please note + the following hints, so we can provide you with the best support:</p> + + <div class="SECT2"> + <h2 class="SECT2"><a name="CONTACT-SUPPORT" id="CONTACT-SUPPORT">11.1. + Get Support</a></h2> + + <p>For casual users, our <a href= + "http://sourceforge.net/tracker/?group_id=11118&atid=211118" + target="_top">support forum at SourceForge</a> is probably best suited: + <a href= + "http://sourceforge.net/tracker/?group_id=11118&atid=211118" + target="_top">http://sourceforge.net/tracker/?group_id=11118&atid=211118</a></p> + + <p>All users are of course welcome to discuss their issues on the + <a href="http://lists.sourceforge.net/lists/listinfo/ijbswa-users" + target="_top">users mailing list</a>, where the developers also hang + around.</p> + + <p>Please don't sent private support requests to individual Privoxy + developers, either use the mailing lists or the support trackers.</p> + + <p>If you have to contact a Privoxy developer directly for other + reasons, please send a real mail and do not bother with SourceForge's + messaging system. Answers to SourceForge messages are usually bounced + by SourceForge's mail server in which case the developer wasted time + writing a response you don't get. From your point of view it will look + like your message has been completely ignored, so this is frustrating + for all parties involved.</p> + + <p>Note that the Privoxy mailing lists are moderated. Posts from + unsubscribed addresses have to be accepted manually by a moderator. + This may cause a delay of several days and if you use a subject that + doesn't clearly mention Privoxy or one of its features, your message + may be accidentally discarded as spam.</p> + + <p>If you aren't subscribed, you should therefore spend a few seconds + to come up with a proper subject. Additionally you should make it clear + that you want to get CC'd. Otherwise some responses will be directed to + the mailing list only, and you won't see them.</p> </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="CONTACT">11. Contacting the Developers, Bug Reporting and - Feature Requests</a> - </h1> - <p> - We value your feedback. In fact, we rely on it to improve <span - class="APPLICATION">Privoxy</span> and its configuration. However, - please note the following hints, so we can provide you with the best - support: - </p> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="CONTACT-SUPPORT">11.1. Get Support</a> - </h2> - <p> - For casual users, our <a href= - "http://sourceforge.net/tracker/?group_id=11118&atid=211118" - target="_top">support forum at SourceForge</a> is probably best - suited: <a href= - "http://sourceforge.net/tracker/?group_id=11118&atid=211118" - target= - "_top">http://sourceforge.net/tracker/?group_id=11118&atid=211118</a> - </p> - <p> - All users are of course welcome to discuss their issues on the <a - href="http://lists.sourceforge.net/lists/listinfo/ijbswa-users" - target="_top">users mailing list</a>, where the developers also - hang around. - </p> - <p> - Please don't sent private support requests to individual Privoxy - developers, either use the mailing lists or the support trackers. - </p> - <p> - If you have to contact a Privoxy developer directly for other - reasons, please send a real mail and do not bother with - SourceForge's messaging system. Answers to SourceForge messages are - usually bounced by SourceForge's mail server in which case the - developer wasted time writing a response you don't get. From your - point of view it will look like your message has been completely - ignored, so this is frustrating for all parties involved. - </p> - <p> - Note that the Privoxy mailing lists are moderated. Posts from - unsubscribed addresses have to be accepted manually by a moderator. - This may cause a delay of several days and if you use a subject - that doesn't clearly mention Privoxy or one of its features, your - message may be accidentally discarded as spam. - </p> - <p> - If you aren't subscribed, you should therefore spend a few seconds - to come up with a proper subject. Additionally you should make it - clear that you want to get CC'd. Otherwise some responses will be - directed to the mailing list only, and you won't see them. - </p> + + <div class="SECT2"> + <h2 class="SECT2"><a name="REPORTING" id="REPORTING">11.2. Reporting + Problems</a></h2> + + <p><span class="QUOTE">"Problems"</span> for our purposes, come in two + forms:</p> + + <ul> + <li> + <p>Configuration issues, such as ads that slip through, or sites + that don't function properly due to one <span class= + "APPLICATION">Privoxy</span> <span class="QUOTE">"action"</span> or + another being turned <span class="QUOTE">"on"</span>.</p> + </li> + + <li> + <p><span class="QUOTE">"Bugs"</span> in the programming code that + makes up <span class="APPLICATION">Privoxy</span>, such as that + might cause a crash.</p> + </li> + </ul> + + <div class="SECT3"> + <h3 class="SECT3"><a name="CONTACT-ADS" id="CONTACT-ADS">11.2.1. + Reporting Ads or Other Configuration Problems</a></h3> + + <p>Please send feedback on ads that slipped through, innocent images + that were blocked, sites that don't work properly, and other + configuration related problem of <tt class= + "FILENAME">default.action</tt> file, to <a href= + "http://sourceforge.net/tracker/?group_id=11118&atid=460288" + target= + "_top">http://sourceforge.net/tracker/?group_id=11118&atid=460288</a>, + the Actions File Tracker.</p> + + <p>New, improved <tt class="FILENAME">default.action</tt> files may + occasionally be made available based on your feedback. These will be + announced on the <a href= + "http://lists.sourceforge.net/lists/listinfo/ijbswa-announce" target= + "_top">ijbswa-announce</a> list and available from our the <a href= + "http://sourceforge.net/project/showfiles.php?group_id=11118" target= + "_top">files section</a> of our <a href= + "http://sf.net/projects/ijbswa/" target="_top">project page</a>.</p> </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="REPORTING">11.2. Reporting Problems</a> - </h2> - <p> - <span class="QUOTE">"Problems"</span> for our purposes, come in two - forms: - </p> + + <div class="SECT3"> + <h3 class="SECT3"><a name="CONTACT-BUGS" id="CONTACT-BUGS">11.2.2. + Reporting Bugs</a></h3> + + <p>Please report all bugs through our bug tracker: <a href= + "http://sourceforge.net/tracker/?group_id=11118&atid=111118" + target= + "_top">http://sourceforge.net/tracker/?group_id=11118&atid=111118</a>.</p> + + <p>Before doing so, please make sure that the bug has <span class= + "emphasis EMPHASIS c2">not already been submitted</span> and observe + the additional hints at the top of the <a href= + "http://sourceforge.net/tracker/?func=add&group_id=11118&atid=111118" + target="_top">submit form</a>. If already submitted, please feel free + to add any info to the original report that might help to solve the + issue.</p> + + <p>Please try to verify that it is a <span class= + "APPLICATION">Privoxy</span> bug, and not a browser or site bug or + documented behaviour that just happens to be different than what you + expected. If unsure, try <a href= + "http://config.privoxy.org/toggle?set=disable" target="_top">toggling + off</a> <span class="APPLICATION">Privoxy</span>, and see if the + problem persists.</p> + + <p>If you are using your own custom configuration, please try the + stock configs to see if the problem is configuration related. If + you're having problems with a feature that is disabled by default, + please ask around on the mailing list if others can reproduce the + problem.</p> + + <p>If you aren't using the latest Privoxy version, the bug may have + been found and fixed in the meantime. We would appreciate if you + could take the time to <a href= + "http://www.privoxy.org/user-manual/installation.html" target= + "_top">upgrade to the latest version</a> (or even the latest CVS + snapshot) and verify that your bug still exists.</p> + + <p>Please be sure to provide the following information:</p> + <ul> <li> - <p> - Configuration issues, such as ads that slip through, or sites - that don't function properly due to one <span class= - "APPLICATION">Privoxy</span> <span class= - "QUOTE">"action"</span> or another being turned <span class= - "QUOTE">"on"</span>. - </p> + <p>The exact <span class="APPLICATION">Privoxy</span> version you + are using (if you got the source from CVS, please also provide + the source code revisions as shown in <a href= + "http://config.privoxy.org/show-version" target= + "_top">http://config.privoxy.org/show-version</a>).</p> + </li> + + <li> + <p>The operating system and versions you run <span class= + "APPLICATION">Privoxy</span> on, (e.g. <span class= + "APPLICATION">Windows XP SP2</span>), if you are using a Unix + flavor, sending the output of <span class="QUOTE">"uname + -a"</span> should do, in case of GNU/Linux, please also name the + distribution.</p> + </li> + + <li> + <p>The name, platform, and version of the <span class= + "APPLICATION">browser</span> you were using (e.g. <span class= + "APPLICATION">Internet Explorer v5.5</span> for Mac).</p> + </li> + + <li> + <p>The URL where the problem occurred, or some way for us to + duplicate the problem (e.g. <tt class= + "LITERAL">http://somesite.example.com/?somethingelse=123</tt>).</p> + </li> + + <li> + <p>Whether your version of <span class= + "APPLICATION">Privoxy</span> is one supplied by the <span class= + "APPLICATION">Privoxy</span> developers via SourceForge, or if + you got your copy somewhere else.</p> + </li> + + <li> + <p>Whether you are using <span class="APPLICATION">Privoxy</span> + in tandem with another proxy such as <span class= + "APPLICATION">Tor</span>. If so, please temporary disable the + other proxy to see if the symptoms change.</p> </li> + <li> - <p> - <span class="QUOTE">"Bugs"</span> in the programming code that - makes up <span class="APPLICATION">Privoxy</span>, such as that - might cause a crash. - </p> + <p>Whether you are using a personal firewall product. If so, does + <span class="APPLICATION">Privoxy</span> work without it?</p> + </li> + + <li> + <p>Any other pertinent information to help identify the problem + such as config or log file excerpts (yes, you should have log + file entries for each action taken). To get a meaningful logfile, + please make sure that the <a href= + "../user-manual/config.html#LOGFILE" target="_top">logfile + directive</a> is being used and the following <a href= + "../user-manual/config.html#DEBUG" target="_top">debug + options</a> are enabled:</p> + + <p class="LITERALLAYOUT"> + debug 1 # Log the destination for each request Privoxy let through. See also debug 1024.<br> + + debug 2 # show each connection status<br> + + debug 4 # show I/O status<br> + + debug 8 # show header parsing<br> + + debug 128 # debug redirects<br> + debug 256 # debug GIF de-animation<br> + + debug 512 # Common Log Format<br> + + debug 1024 # Log the destination for requests Privoxy didn't let through, and the reason why.<br> + + debug 4096 # Startup banner and warnings.<br> + + debug 8192 # Non-fatal errors</p>If you + are having trouble with a filter, please additionally enable + + <p class="LITERALLAYOUT"> + debug 64 # debug regular expression filters</p>If + you are using Privoxy 3.0.17 or later and suspect that it + interprets the request or the response incorrectly, please enable + + <p class="LITERALLAYOUT"> + debug 32768 # log all data read from the network</p>Note + that Privoxy log files may contain sensitive information so + please don't submit any logfiles you didn't read first. You can + mask sensitive information as long as it's clear that you removed + something. </li> </ul> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="CONTACT-ADS">11.2.1. Reporting Ads or Other - Configuration Problems</a> - </h3> - <p> - Please send feedback on ads that slipped through, innocent images - that were blocked, sites that don't work properly, and other - configuration related problem of <tt class= - "FILENAME">default.action</tt> file, to <a href= - "http://sourceforge.net/tracker/?group_id=11118&atid=460288" - target= - "_top">http://sourceforge.net/tracker/?group_id=11118&atid=460288</a>, - the Actions File Tracker. - </p> - <p> - New, improved <tt class="FILENAME">default.action</tt> files may - occasionally be made available based on your feedback. These will - be announced on the <a href= - "http://lists.sourceforge.net/lists/listinfo/ijbswa-announce" - target="_top">ijbswa-announce</a> list and available from our the - <a href= - "http://sourceforge.net/project/showfiles.php?group_id=11118" - target="_top">files section</a> of our <a href= - "http://sf.net/projects/ijbswa/" target="_top">project page</a>. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="CONTACT-BUGS">11.2.2. Reporting Bugs</a> - </h3> - <p> - Please report all bugs through our bug tracker: <a href= - "http://sourceforge.net/tracker/?group_id=11118&atid=111118" - target= - "_top">http://sourceforge.net/tracker/?group_id=11118&atid=111118</a>. - </p> - <p> - Before doing so, please make sure that the bug has <span class= - "emphasis"><i class="EMPHASIS">not already been - submitted</i></span> and observe the additional hints at the top - of the <a href= - "http://sourceforge.net/tracker/?func=add&group_id=11118&atid=111118" - target="_top">submit form</a>. If already submitted, please feel - free to add any info to the original report that might help to - solve the issue. - </p> - <p> - Please try to verify that it is a <span class= - "APPLICATION">Privoxy</span> bug, and not a browser or site bug - or documented behaviour that just happens to be different than - what you expected. If unsure, try <a href= - "http://config.privoxy.org/toggle?set=disable" target= - "_top">toggling off</a> <span class="APPLICATION">Privoxy</span>, - and see if the problem persists. - </p> - <p> - If you are using your own custom configuration, please try the - stock configs to see if the problem is configuration related. If - you're having problems with a feature that is disabled by - default, please ask around on the mailing list if others can - reproduce the problem. - </p> - <p> - If you aren't using the latest Privoxy version, the bug may have - been found and fixed in the meantime. We would appreciate if you - could take the time to <a href= - "http://www.privoxy.org/user-manual/installation.html" target= - "_top">upgrade to the latest version</a> (or even the latest CVS - snapshot) and verify that your bug still exists. - </p> - <p> - Please be sure to provide the following information: - </p> - <p> - </p> - <ul> - <li> - <p> - The exact <span class="APPLICATION">Privoxy</span> version - you are using (if you got the source from CVS, please also - provide the source code revisions as shown in <a href= - "http://config.privoxy.org/show-version" target= - "_top">http://config.privoxy.org/show-version</a>). - </p> - </li> - <li> - <p> - The operating system and versions you run <span class= - "APPLICATION">Privoxy</span> on, (e.g. <span class= - "APPLICATION">Windows XP SP2</span>), if you are using a Unix - flavor, sending the output of <span class="QUOTE">"uname - -a"</span> should do, in case of GNU/Linux, please also name - the distribution. - </p> - </li> - <li> - <p> - The name, platform, and version of the <span class= - "APPLICATION">browser</span> you were using (e.g. <span - class="APPLICATION">Internet Explorer v5.5</span> for Mac). - </p> - </li> - <li> - <p> - The URL where the problem occurred, or some way for us to - duplicate the problem (e.g. <tt class= - "LITERAL">http://somesite.example.com/?somethingelse=123</tt>). - </p> - </li> - <li> - <p> - Whether your version of <span class= - "APPLICATION">Privoxy</span> is one supplied by the <span - class="APPLICATION">Privoxy</span> developers via - SourceForge, or if you got your copy somewhere else. - </p> - </li> - <li> - <p> - Whether you are using <span class= - "APPLICATION">Privoxy</span> in tandem with another proxy - such as <span class="APPLICATION">Tor</span>. If so, please - temporary disable the other proxy to see if the symptoms - change. - </p> - </li> - <li> - <p> - Whether you are using a personal firewall product. If so, - does <span class="APPLICATION">Privoxy</span> work without - it? - </p> - </li> - <li> - <p> - Any other pertinent information to help identify the problem - such as config or log file excerpts (yes, you should have log - file entries for each action taken). To get a meaningful - logfile, please make sure that the <a href= - "../user-manual/config.html#LOGFILE" target="_top">logfile - directive</a> is being used and the following <a href= - "../user-manual/config.html#DEBUG" target="_top">debug - options</a> are enabled: - </p> - <p class="LITERALLAYOUT"> - debug 1 # Log the destination for each request Privoxy let through. See also debug 1024.<br> - - debug 2 # show each connection status<br> - - debug 4 # show I/O status<br> - - debug 8 # show header parsing<br> - - debug 128 # debug redirects<br> - - debug 256 # debug GIF de-animation<br> - - debug 512 # Common Log Format<br> - - debug 1024 # Log the destination for requests Privoxy didn't let through, and the reason why.<br> - - debug 4096 # Startup banner and warnings.<br> - - debug 8192 # Non-fatal errors - </p> - If you are having trouble with a filter, please additionally - enable - <p class="LITERALLAYOUT"> - debug 64 # debug regular expression filters - </p> - If you are using Privoxy 3.0.17 or later and suspect that it - interprets the request or the response incorrectly, please - enable - <p class="LITERALLAYOUT"> - debug 32768 # log all data read from the network - </p> - Note that Privoxy log files may contain sensitive information - so please don't submit any logfiles you didn't read first. You - can mask sensitive information as long as it's clear that you - removed something.<br> - </li> - </ul> - - <p> - You don't have to tell us your actual name when filing a problem - report, but if you don't, please use a nickname so we can - differentiate between your messages and the ones entered by other - "anonymous" users that may respond to your request if they have - the same problem or already found a solution. Note that due to - spam the trackers may not always allow to post without being - logged into SourceForge. If that's the case, you are still free - to create a login that isn't directly linked to your name, - though. - </p> - <p> - Please also check the status of your request a few days after - submitting it, as we may request additional information. If you - use a SF id, you should automatically get a mail when someone - responds to your request. Please don't bother to add an email - address when using the tracker. If you prefer to communicate - through email, just use one of the mailing lists directly. - </p> - <p> - The <a href= - "http://www.privoxy.org/user-manual/appendix.html#ACTIONSANAT" - target="_top">appendix of the Privoxy User Manual</a> also has - helpful information on understanding <tt class= - "LITERAL">actions</tt>, and <tt class="LITERAL">action</tt> - debugging. - </p> - </div> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="CONTACT-FEATURE">11.3. Request New Features</a> - </h2> - <p> - You are welcome to submit ideas on new features or other proposals - for improvement through our feature request tracker at <a href= - "http://sourceforge.net/tracker/?atid=361118&group_id=11118" - target= - "_top">http://sourceforge.net/tracker/?atid=361118&group_id=11118</a>. - </p> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="MAILING-LISTS">11.4. Mailing Lists</a> - </h2> - <p> - If you prefer to communicate through email, instead of using a web - interface, feel free to use one of the mailing lists. To discuss - issues that haven't been completely diagnosed yet, please use the - Privoxy users list. Technically interested users and people who - wish to contribute to the project are always welcome on the - developers list. You can find an overview of all <span class= - "APPLICATION">Privoxy</span>-related mailing lists, including list - archives, at: <a href="http://sourceforge.net/mail/?group_id=11118" - target="_top">http://sourceforge.net/mail/?group_id=11118</a>. - </p> + + <p>You don't have to tell us your actual name when filing a problem + report, but if you don't, please use a nickname so we can + differentiate between your messages and the ones entered by other + "anonymous" users that may respond to your request if they have the + same problem or already found a solution. Note that due to spam the + trackers may not always allow to post without being logged into + SourceForge. If that's the case, you are still free to create a login + that isn't directly linked to your name, though.</p> + + <p>Please also check the status of your request a few days after + submitting it, as we may request additional information. If you use a + SF id, you should automatically get a mail when someone responds to + your request. Please don't bother to add an email address when using + the tracker. If you prefer to communicate through email, just use one + of the mailing lists directly.</p> + + <p>If you are new to reporting problems, you might be interested in + <a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html" + target="_top">How to Report Bugs Effectively</a>.</p> + + <p>If you are new to reporting problems, you might be interested in + <a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html" + target="_top">How to Report Bugs Effectively</a>.</p> + + <p>The <a href= + "http://www.privoxy.org/user-manual/appendix.html#ACTIONSANAT" + target="_top">appendix of the Privoxy User Manual</a> also has + helpful information on understanding <tt class= + "LITERAL">actions</tt>, and <tt class="LITERAL">action</tt> + debugging.</p> </div> </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="templates.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="copyright.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - Privoxy's Template Files - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Privoxy Copyright, License and History - </td> - </tr> - </table> + + <div class="SECT2"> + <h2 class="SECT2"><a name="CONTACT-FEATURE" id="CONTACT-FEATURE">11.3. + Request New Features</a></h2> + + <p>You are welcome to submit ideas on new features or other proposals + for improvement through our feature request tracker at <a href= + "http://sourceforge.net/tracker/?atid=361118&group_id=11118" + target="_top">http://sourceforge.net/tracker/?atid=361118&group_id=11118</a>.</p> </div> - </body> -</html> + <div class="SECT2"> + <h2 class="SECT2"><a name="MAILING-LISTS" id="MAILING-LISTS">11.4. + Mailing Lists</a></h2> + + <p>If you prefer to communicate through email, instead of using a web + interface, feel free to use one of the mailing lists. To discuss issues + that haven't been completely diagnosed yet, please use the Privoxy + users list. Technically interested users and people who wish to + contribute to the project are always welcome on the developers list. + You can find an overview of all <span class= + "APPLICATION">Privoxy</span>-related mailing lists, including list + archives, at: <a href="http://sourceforge.net/mail/?group_id=11118" + target="_top">http://sourceforge.net/mail/?group_id=11118</a>.</p> + </div> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="templates.html" + accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + + <td width="33%" align="right" valign="top"><a href="copyright.html" + accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Privoxy's Template + Files</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Privoxy Copyright, License + and History</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/user-manual/copyright.html b/doc/webserver/user-manual/copyright.html index 217336e8..4d0ed29a 100644 --- a/doc/webserver/user-manual/copyright.html +++ b/doc/webserver/user-manual/copyright.html @@ -1,306 +1,281 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Privoxy Copyright, License and History - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> - <link rel="PREVIOUS" title= - "Contacting the Developers, Bug Reporting and Feature Requests" href= - "contact.html"> - <link rel="NEXT" title="See Also" href="seealso.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <link rel="STYLESHEET" type="text/css" href="p_doc.css"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Privoxy Copyright, License and History</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> + <link rel="PREVIOUS" title= + "Contacting the Developers, Bug Reporting and Feature Requests" href= + "contact.html"> + <link rel="NEXT" title="See Also" href="seealso.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <link rel="STYLESHEET" type="text/css" href="p_doc.css"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy 3.0.18 User Manual - </th> - </tr> - <tr> - <td width="10%" align="left" valign="bottom"> - <a href="contact.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="seealso.html" accesskey="N">Next</a> - </td> - </tr> - </table> - <hr width="100%" class="c1"> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + a.c2 {font-style: italic} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy 3.0.18 User Manual</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href="contact.html" + accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href="seealso.html" + accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="COPYRIGHT" id="COPYRIGHT">12. Privoxy + Copyright, License and History</a></h1> + + <p>Copyright © 2001-2011 by Privoxy Developers <code class= + "EMAIL"><<a href= + "mailto:ijbswa-developers@lists.sourceforge.net">ijbswa-developers@lists.sourceforge.net</a>></code></p> + + <p>Some source code is based on code Copyright © 1997 by Anonymous + Coders and Junkbusters, Inc. and licensed under the <i class= + "CITETITLE">GNU General Public License</i>.</p> + + <div class="SECT2"> + <h2 class="SECT2"><a name="AEN5525" id="AEN5525">12.1. License</a></h2> + + <p><span class="APPLICATION">Privoxy</span> is free software; you can + redistribute it and/or modify it under the terms of the <i class= + "CITETITLE">GNU General Public License</i>, version 2, as published by + the Free Software Foundation.</p> + + <p>This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the <a class= + "CITETITLE c2" href= + "http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" target= + "_top">GNU General Public License</a> for details.</p> + + <p>You should have received a copy of the <i class="CITETITLE">GNU + GPL</i> along with this program; if not, write to the</p> + + <p class="ADDRESS"> Free Software<br> + Foundation, Inc. <span class="STREET">51 Franklin + Street, Fifth Floor</span><br> + <span class="CITY">Boston</span>, <span class= + "STATE">MA</span> <span class="POSTCODE">02110-1301</span><br> + <span class="COUNTRY">USA</span> </p> </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="COPYRIGHT">12. Privoxy Copyright, License and History</a> - </h1> - <p> - Copyright © 2001-2011 by Privoxy Developers <code class= - "EMAIL"><<a href= - "mailto:ijbswa-developers@lists.sourceforge.net">ijbswa-developers@lists.sourceforge.net</a>></code> - </p> - <p> - Some source code is based on code Copyright © 1997 by Anonymous - Coders and Junkbusters, Inc. and licensed under the <i class= - "CITETITLE">GNU General Public License</i>. - </p> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="AEN5383">12.1. License</a> - </h2> - <p> - <span class="APPLICATION">Privoxy</span> is free software; you can - redistribute it and/or modify it under the terms of the <i class= - "CITETITLE">GNU General Public License</i>, version 2, as published - by the Free Software Foundation. - </p> - <p> - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the <a - href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" - target="_top"><i class="CITETITLE">GNU General Public - License</i></a> for details. - </p> - <p> - You should have received a copy of the <i class="CITETITLE">GNU - GPL</i> along with this program; if not, write to the - </p> - <p class="ADDRESS"> - Free Software<br> - Foundation, Inc. <span class="STREET">51 Franklin - Street, Fifth Floor</span><br> - <span class="CITY">Boston</span>, <span class= - "STATE">MA</span> <span class="POSTCODE">02110-1301</span><br> - <span class="COUNTRY">USA</span> - </p> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="HISTORY">12.2. History</a> - </h2> - <p> - A long time ago, there was the <a href= - "http://www.junkbusters.com/ijb.html" target="_top"><span class= - "APPLICATION">Internet Junkbuster</span></a>, by Anonymous Coders - and <a href="http://www.junkbusters.com/" target="_top">Junkbusters - Corporation</a>. This saved many users a lot of pain in the early - days of web advertising and user tracking. - </p> - <p> - But the web, its protocols and standards, and with it, the - techniques for forcing ads on users, give up autonomy over their - browsing, and for tracking them, keeps evolving. Unfortunately, the - <span class="APPLICATION">Internet Junkbuster</span> did not. - Version 2.0.2, published in 1998, was (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>. Fortunately, it had been released under the GNU <a - href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" - target="_top">GPL</a>, which allowed further development by others. - </p> - <p> - So Stefan Waldherr started maintaining an improved version of the - software, to which eventually a number of people contributed - patches. It could already replace banners with a transparent image, - and had a first version of pop-up killing, but it was still very - closely based on the original, with all its limitations, such as - the lack of HTTP/1.1 support, flexible per-site configuration, or - content modification. The last release from this effort was version - 2.0.2-10, published in 2000. - </p> - <p> - Then, some <a href= - "http://www.privoxy.org/user-manual/copyright.html#AUTHORS" target= - "_top">developers</a> picked up the thread, and started turning the - software inside out, upside down, and then reassembled it, adding - many <a href= - "http://www.privoxy.org/user-manual/introduction.html#FEATURES" - target="_top">new features</a> along the way. - </p> - <p> - The result of this is <span class="APPLICATION">Privoxy</span>, - whose first stable version, 3.0, was released August, 2002. - </p> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="AUTHORS">12.3. Authors</a> - </h2> - <p> - Current Privoxy Team: - </p> - <p class="LITERALLAYOUT"> - Fabian Keil, lead developer<br> - David Schmidt, developer<br> - Hal Burgiss<br> - Mark Miller<br> - Gerry Murphy<br> - Lee Rian<br> - Roland Rosenfeld - </p> - <p> - Former Privoxy Team Members: - </p> - <p class="LITERALLAYOUT"> - Johny Agotnes<br> - Rodrigo Barbosa<br> - Moritz Barsnick<br> - Ian Cummings<br> - Brian Dessent<br> - Jon Foster<br> - Karsten Hopp<br> - Alexander Lazic<br> - Daniel Leite<br> - Gábor Lipták<br> - Adam Lock<br> - Guy Laroche<br> - Justin McMurtry<br> - Andreas Oesterhelt<br> - Haroon Rafique<br> - Georg Sauthoff<br> - Thomas Steudten<br> - Jörg Strohmayer<br> - Rodney Stromlund<br> - Sviatoslav Sviridov<br> - Sarantis Paskalis<br> - Stefan Waldherr - </p> - <p> - Thanks to the many people who have tested Privoxy, reported bugs, - provided patches, made suggestions or contributed in some way. - These include (in alphabetical order): - </p> - <p class="LITERALLAYOUT"> - Ken Arromdee<br> - Devin Bayer<br> - Havard Berland<br> - Gergely Bor<br> - Francois Botha<br> - Reiner Buehl<br> - Andrew J. Caines<br> - Clifford Caoile<br> - Wan-Teh Chang<br> - Frédéric Crozat<br> - Michael T. Davis<br> - Mattes Dolak<br> - Matthias Drochner<br> - Peter E.<br> - Florian Effenberger<br> - Markus Elfring<br> - Dean Gaudet<br> - Stephen Gildea<br> - Daniel Griscom<br> - Felix Gröbert<br> - Jeff H.<br> - Aaron Hamid<br> - Darel Henman<br> - Magnus Holmgren<br> - Eric M. Hopper<br> - Ralf Horstmann<br> - Stefan Huehner<br> - Peter Hyman<br> - Derek Jennings<br> - Petr Kadlec<br> - David Laight<br> - Bert van Leeuwen<br> - Don Libes<br> - Paul Lieverse<br> - Toby Lyward<br> - Wil Mahan<br> - Jindrich Makovicka<br> - Francois Marier<br> - David Mediavilla<br> - Raphael Moll<br> - Amuro Namie<br> - Adam Piggott<br> - Petr Písar<br> - Dan Price<br> - Roberto Ragusa<br> - Félix Rauch<br> - Maynard Riley<br> - Chung-chieh Shan<br> - Spinor S.<br> - Bart Schelstraete<br> - Oliver Stoeneberg<br> - Peter Thoenen<br> - Martin Thomas<br> - Bobby G. Vinyard<br> - Jochen Voss<br> - Glenn Washburn<br> - Song Weijia<br> - Jörg Weinmann<br> - Darren Wiebe<br> - Anduin Withers<br> - Oliver Yeoh<br> - Jamie Zawinski - </p> - <p> - Privoxy is based in part on code originally developed by - Junkbusters Corp. and Anonymous Coders. - </p> - <p> - Privoxy heavily relies on Philip Hazel's PCRE. - </p> - <p> - The code to filter compressed content makes use of zlib which is - written by Jean-loup Gailly and Mark Adler. - </p> - <p> - On systems that lack snprintf(), Privoxy is using a version written - by Mark Martinec. On systems that lack strptime(), Privoxy is using - the one from the GNU C Library written by Ulrich Drepper. - </p> - </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="HISTORY" id="HISTORY">12.2. History</a></h2> + + <p>A long time ago, there was the <a href= + "http://www.junkbusters.com/ijb.html" target="_top"><span class= + "APPLICATION">Internet Junkbuster</span></a>, by Anonymous Coders and + <a href="http://www.junkbusters.com/" target="_top">Junkbusters + Corporation</a>. This saved many users a lot of pain in the early days + of web advertising and user tracking.</p> + + <p>But the web, its protocols and standards, and with it, the + techniques for forcing ads on users, give up autonomy over their + browsing, and for tracking them, keeps evolving. Unfortunately, the + <span class="APPLICATION">Internet Junkbuster</span> did not. Version + 2.0.2, published in 1998, was (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>. Fortunately, it had been + released under the GNU <a href= + "http://www.gnu.org/licenses/old-licenses/gpl-2.0.html" target= + "_top">GPL</a>, which allowed further development by others.</p> + + <p>So Stefan Waldherr started maintaining an improved version of the + software, to which eventually a number of people contributed patches. + It could already replace banners with a transparent image, and had a + first version of pop-up killing, but it was still very closely based on + the original, with all its limitations, such as the lack of HTTP/1.1 + support, flexible per-site configuration, or content modification. The + last release from this effort was version 2.0.2-10, published in + 2000.</p> + + <p>Then, some <a href= + "http://www.privoxy.org/user-manual/copyright.html#AUTHORS" target= + "_top">developers</a> picked up the thread, and started turning the + software inside out, upside down, and then reassembled it, adding many + <a href="http://www.privoxy.org/user-manual/introduction.html#FEATURES" + target="_top">new features</a> along the way.</p> + + <p>The result of this is <span class="APPLICATION">Privoxy</span>, + whose first stable version, 3.0, was released August, 2002.</p> </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="contact.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="seealso.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - Contacting the Developers, Bug Reporting and Feature Requests - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - See Also - </td> - </tr> - </table> + + <div class="SECT2"> + <h2 class="SECT2"><a name="AUTHORS" id="AUTHORS">12.3. Authors</a></h2> + + <p>Current Privoxy Team:</p> + + <p class="LITERALLAYOUT"> + Fabian Keil, lead developer<br> + David Schmidt, developer<br> + Hal Burgiss<br> + Mark Miller<br> + Gerry Murphy<br> + Lee Rian<br> + Roland Rosenfeld</p> + + <p>Former Privoxy Team Members:</p> + + <p class="LITERALLAYOUT"> Johny Agotnes<br> + Rodrigo Barbosa<br> + Moritz Barsnick<br> + Ian Cummings<br> + Brian Dessent<br> + Jon Foster<br> + Karsten Hopp<br> + Alexander Lazic<br> + Daniel Leite<br> + Gábor Lipták<br> + Adam Lock<br> + Guy Laroche<br> + Justin McMurtry<br> + Andreas Oesterhelt<br> + Haroon Rafique<br> + Georg Sauthoff<br> + Thomas Steudten<br> + Jörg Strohmayer<br> + Rodney Stromlund<br> + Sviatoslav Sviridov<br> + Sarantis Paskalis<br> + Stefan Waldherr</p> + + <p>Thanks to the many people who have tested Privoxy, reported bugs, + provided patches, made suggestions or contributed in some way. These + include (in alphabetical order):</p> + + <p class="LITERALLAYOUT"> Ken Arromdee<br> + Devin Bayer<br> + Havard Berland<br> + Gergely Bor<br> + Francois Botha<br> + Reiner Buehl<br> + Andrew J. Caines<br> + Clifford Caoile<br> + Wan-Teh Chang<br> + Frédéric Crozat<br> + Michael T. Davis<br> + Mattes Dolak<br> + Matthias Drochner<br> + Peter E.<br> + Florian Effenberger<br> + Markus Elfring<br> + Dean Gaudet<br> + Stephen Gildea<br> + Daniel Griscom<br> + Felix Gröbert<br> + Jeff H.<br> + Aaron Hamid<br> + Darel Henman<br> + Magnus Holmgren<br> + Eric M. Hopper<br> + Ralf Horstmann<br> + Stefan Huehner<br> + Peter Hyman<br> + Derek Jennings<br> + Petr Kadlec<br> + David Laight<br> + Bert van Leeuwen<br> + Don Libes<br> + Paul Lieverse<br> + Toby Lyward<br> + Wil Mahan<br> + Jindrich Makovicka<br> + Francois Marier<br> + David Mediavilla<br> + Raphael Moll<br> + Amuro Namie<br> + Adam Piggott<br> + Petr Písar<br> + Dan Price<br> + Roberto Ragusa<br> + Félix Rauch<br> + Maynard Riley<br> + Chung-chieh Shan<br> + Spinor S.<br> + Bart Schelstraete<br> + Oliver Stoeneberg<br> + Peter Thoenen<br> + Martin Thomas<br> + Bobby G. Vinyard<br> + Jochen Voss<br> + Glenn Washburn<br> + Song Weijia<br> + Jörg Weinmann<br> + Darren Wiebe<br> + Anduin Withers<br> + Oliver Yeoh<br> + Jamie Zawinski</p> + + <p>Privoxy is based in part on code originally developed by Junkbusters + Corp. and Anonymous Coders.</p> + + <p>Privoxy heavily relies on Philip Hazel's PCRE.</p> + + <p>The code to filter compressed content makes use of zlib which is + written by Jean-loup Gailly and Mark Adler.</p> + + <p>On systems that lack snprintf(), Privoxy is using a version written + by Mark Martinec. On systems that lack strptime(), Privoxy is using the + one from the GNU C Library written by Ulrich Drepper.</p> </div> - </body> -</html> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="contact.html" + accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + <td width="33%" align="right" valign="top"><a href="seealso.html" + accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Contacting the Developers, + Bug Reporting and Feature Requests</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">See Also</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/user-manual/filter-file.html b/doc/webserver/user-manual/filter-file.html index d48f67e7..c7383a81 100644 --- a/doc/webserver/user-manual/filter-file.html +++ b/doc/webserver/user-manual/filter-file.html @@ -1,459 +1,406 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Filter Files - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> - <link rel="PREVIOUS" title="Actions Files" href="actions-file.html"> - <link rel="NEXT" title="Privoxy's Template Files" href="templates.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <link rel="STYLESHEET" type="text/css" href="p_doc.css"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Filter Files</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> + <link rel="PREVIOUS" title="Actions Files" href="actions-file.html"> + <link rel="NEXT" title="Privoxy's Template Files" href="templates.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <link rel="STYLESHEET" type="text/css" href="p_doc.css"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy 3.0.18 User Manual - </th> - </tr> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + table.c4 {background-color: #E0E0E0} + tt.c3 {font-style: italic} + span.c2 {font-style: italic} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy 3.0.18 User Manual</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href= + "actions-file.html" accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href= + "templates.html" accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="FILTER-FILE" id="FILTER-FILE">9. Filter + Files</a></h1> + + <p>On-the-fly text substitutions need to be defined in a <span class= + "QUOTE">"filter file"</span>. Once defined, they can then be invoked as + an <span class="QUOTE">"action"</span>.</p> + + <p><span class="APPLICATION">Privoxy</span> supports three different + filter actions: <tt class="LITERAL"><a href= + "actions-file.html#FILTER">filter</a></tt> to rewrite the content that is + send to the client, <tt class="LITERAL"><a href= + "actions-file.html#CLIENT-HEADER-FILTER">client-header-filter</a></tt> to + rewrite headers that are send by the client, and <tt class= + "LITERAL"><a href= + "actions-file.html#SERVER-HEADER-FILTER">server-header-filter</a></tt> to + rewrite headers that are send by the server.</p> + + <p><span class="APPLICATION">Privoxy</span> also supports two tagger + actions: <tt class="LITERAL"><a href= + "actions-file.html#CLIENT-HEADER-TAGGER">client-header-tagger</a></tt> + and <tt class="LITERAL"><a href= + "actions-file.html#SERVER-HEADER-TAGGER">server-header-tagger</a></tt>. + Taggers and filters use the same syntax in the filter files, the + difference is that taggers don't modify the text they are filtering, but + use a rewritten version of the filtered text as tag. The tags can then be + used to change the applying actions through sections with <a href= + "actions-file.html#TAG-PATTERN">tag-patterns</a>.</p> + + <p>Multiple filter files can be defined through the <tt class= + "LITERAL"><a href="config.html#FILTERFILE">filterfile</a></tt> config + directive. The filters as supplied by the developers are located in + <tt class="FILENAME">default.filter</tt>. It is recommended that any + locally defined or modified filters go in a separately defined file such + as <tt class="FILENAME">user.filter</tt>.</p> + + <p>Common tasks for content filters are to eliminate common annoyances in + HTML and JavaScript, such as pop-up windows, exit consoles, crippled + windows without navigation tools, the infamous <BLINK> tag etc, to + suppress images with certain width and height attributes (standard banner + sizes or web-bugs), or just to have fun.</p> + + <p>Enabled content filters are applied to any content whose <span class= + "QUOTE">"Content Type"</span> header is recognised as a sign of + text-based content, with the exception of <tt class= + "LITERAL">text/plain</tt>. Use the <a href= + "actions-file.html#FORCE-TEXT-MODE">force-text-mode</a> action to also + filter other content.</p> + + <p>Substitutions are made at the source level, so if you want to + <span class="QUOTE">"roll your own"</span> filters, you should first be + familiar with HTML syntax, and, of course, regular expressions.</p> + + <p>Just like the <a href="actions-file.html">actions files</a>, the + filter file is organized in sections, which are called <span class= + "emphasis EMPHASIS c2">filters</span> here. Each filter consists of a + heading line, that starts with one of the <span class= + "emphasis EMPHASIS c2">keywords</span> <tt class="LITERAL">FILTER:</tt>, + <tt class="LITERAL">CLIENT-HEADER-FILTER:</tt> or <tt class= + "LITERAL">SERVER-HEADER-FILTER:</tt> followed by the filter's + <span class="emphasis EMPHASIS c2">name</span>, and a short (one line) + <span class="emphasis EMPHASIS c2">description</span> of what it does. + Below that line come the <span class="emphasis EMPHASIS c2">jobs</span>, + i.e. lines that define the actual text substitutions. By convention, the + name of a filter should describe what the filter <span class= + "emphasis EMPHASIS c2">eliminates</span>. The comment is used in the + <a href="http://config.privoxy.org/" target="_top">web-based user + interface</a>.</p> + + <p>Once a filter called <tt class="REPLACEABLE c3">name</tt> has been + defined in the filter file, it can be invoked by using an action of the + form +<tt class="LITERAL"><a href= + "actions-file.html#FILTER">filter</a>{<tt class= + "REPLACEABLE c3">name</tt>}</tt> in any <a href= + "actions-file.html">actions file</a>.</p> + + <p>Filter definitions start with a header line that contains the filter + type, the filter name and the filter description. A content filter header + line for a filter called <span class="QUOTE">"foo"</span> could look like + this:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> +FILTER: foo Replace all "foo" with "bar" +</pre> + </td> + </tr> + </table> + + <p>Below that line, and up to the next header line, come the jobs that + define what text replacements the filter executes. They are specified in + a syntax that imitates <a href="http://www.perl.org/" target= + "_top">Perl</a>'s <tt class="LITERAL">s///</tt> operator. If you are + familiar with Perl, you will find this to be quite intuitive, and may + want to look at the PCRS documentation for the subtle differences to Perl + behaviour. Most notably, the non-standard option letter <tt class= + "LITERAL">U</tt> is supported, which turns the default to ungreedy + matching.</p> + + <p>If you are new to <a href= + "http://en.wikipedia.org/wiki/Regular_expressions" target= + "_top"><span class="QUOTE">"Regular Expressions"</span></a>, you might + want to take a look at the <a href="appendix.html#REGEX">Appendix on + regular expressions</a>, and see the <a href= + "http://perldoc.perl.org/perlre.html" target="_top">Perl manual</a> for + <a href="http://perldoc.perl.org/perlop.html" target="_top">the + <tt class="LITERAL">s///</tt> operator's syntax</a> and <a href= + "http://perldoc.perl.org/perlre.html" target="_top">Perl-style regular + expressions</a> in general. The below examples might also help to get you + started.</p> + + <div class="SECT2"> + <h2 class="SECT2"><a name="AEN5041" id="AEN5041">9.1. Filter File + Tutorial</a></h2> + + <p>Now, let's complete our <span class="QUOTE">"foo"</span> content + filter. We have already defined the heading, but the jobs are still + missing. Since all it does is to replace <span class= + "QUOTE">"foo"</span> with <span class="QUOTE">"bar"</span>, there is + only one (trivial) job needed:</p> + + <table class="c4" border="0" width="100%"> <tr> - <td width="10%" align="left" valign="bottom"> - <a href="actions-file.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="templates.html" accesskey="N">Next</a> + <td> + <pre class="SCREEN"> +s/foo/bar/ +</pre> </td> </tr> </table> - <hr width="100%" class="c1"> - </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="FILTER-FILE">9. Filter Files</a> - </h1> - <p> - On-the-fly text substitutions need to be defined in a <span class= - "QUOTE">"filter file"</span>. Once defined, they can then be invoked - as an <span class="QUOTE">"action"</span>. - </p> - <p> - <span class="APPLICATION">Privoxy</span> supports three different - filter actions: <tt class="LITERAL"><a href= - "actions-file.html#FILTER">filter</a></tt> to rewrite the content - that is send to the client, <tt class="LITERAL"><a href= - "actions-file.html#CLIENT-HEADER-FILTER">client-header-filter</a></tt> - to rewrite headers that are send by the client, and <tt class= - "LITERAL"><a href= - "actions-file.html#SERVER-HEADER-FILTER">server-header-filter</a></tt> - to rewrite headers that are send by the server. - </p> - <p> - <span class="APPLICATION">Privoxy</span> also supports two tagger - actions: <tt class="LITERAL"><a href= - "actions-file.html#CLIENT-HEADER-TAGGER">client-header-tagger</a></tt> - and <tt class="LITERAL"><a href= - "actions-file.html#SERVER-HEADER-TAGGER">server-header-tagger</a></tt>. - Taggers and filters use the same syntax in the filter files, the - difference is that taggers don't modify the text they are filtering, - but use a rewritten version of the filtered text as tag. The tags can - then be used to change the applying actions through sections with <a - href="actions-file.html#TAG-PATTERN">tag-patterns</a>. - </p> - <p> - Multiple filter files can be defined through the <tt class= - "LITERAL"><a href="config.html#FILTERFILE">filterfile</a></tt> config - directive. The filters as supplied by the developers are located in - <tt class="FILENAME">default.filter</tt>. It is recommended that any - locally defined or modified filters go in a separately defined file - such as <tt class="FILENAME">user.filter</tt>. - </p> - <p> - Common tasks for content filters are to eliminate common annoyances - in HTML and JavaScript, such as pop-up windows, exit consoles, - crippled windows without navigation tools, the infamous <BLINK> - tag etc, to suppress images with certain width and height attributes - (standard banner sizes or web-bugs), or just to have fun. - </p> - <p> - Enabled content filters are applied to any content whose <span class= - "QUOTE">"Content Type"</span> header is recognised as a sign of - text-based content, with the exception of <tt class= - "LITERAL">text/plain</tt>. Use the <a href= - "actions-file.html#FORCE-TEXT-MODE">force-text-mode</a> action to - also filter other content. - </p> - <p> - Substitutions are made at the source level, so if you want to <span - class="QUOTE">"roll your own"</span> filters, you should first be - familiar with HTML syntax, and, of course, regular expressions. - </p> - <p> - Just like the <a href="actions-file.html">actions files</a>, the - filter file is organized in sections, which are called <span class= - "emphasis"><i class="EMPHASIS">filters</i></span> here. Each filter - consists of a heading line, that starts with one of the <span class= - "emphasis"><i class="EMPHASIS">keywords</i></span> <tt class= - "LITERAL">FILTER:</tt>, <tt class= - "LITERAL">CLIENT-HEADER-FILTER:</tt> or <tt class= - "LITERAL">SERVER-HEADER-FILTER:</tt> followed by the filter's <span - class="emphasis"><i class="EMPHASIS">name</i></span>, and a short - (one line) <span class="emphasis"><i class= - "EMPHASIS">description</i></span> of what it does. Below that line - come the <span class="emphasis"><i class="EMPHASIS">jobs</i></span>, - i.e. lines that define the actual text substitutions. By convention, - the name of a filter should describe what the filter <span class= - "emphasis"><i class="EMPHASIS">eliminates</i></span>. The comment is - used in the <a href="http://config.privoxy.org/" target= - "_top">web-based user interface</a>. - </p> - <p> - Once a filter called <tt class="REPLACEABLE"><i>name</i></tt> has - been defined in the filter file, it can be invoked by using an action - of the form +<tt class="LITERAL"><a href= - "actions-file.html#FILTER">filter</a>{<tt class= - "REPLACEABLE"><i>name</i></tt>}</tt> in any <a href= - "actions-file.html">actions file</a>. - </p> - <p> - Filter definitions start with a header line that contains the filter - type, the filter name and the filter description. A content filter - header line for a filter called <span class="QUOTE">"foo"</span> - could look like this: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> + + <p>But wait! Didn't the comment say that <span class= + "emphasis EMPHASIS c2">all</span> occurrences of <span class= + "QUOTE">"foo"</span> should be replaced? Our current job will only take + care of the first <span class="QUOTE">"foo"</span> on each page. For + global substitution, we'll need to add the <tt class="LITERAL">g</tt> + option:</p> + + <table class="c4" border="0" width="100%"> <tr> <td> -<pre class="SCREEN"> -FILTER: foo Replace all "foo" with "bar" + <pre class="SCREEN"> +s/foo/bar/g </pre> </td> </tr> </table> - <p> - Below that line, and up to the next header line, come the jobs that - define what text replacements the filter executes. They are specified - in a syntax that imitates <a href="http://www.perl.org/" target= - "_top">Perl</a>'s <tt class="LITERAL">s///</tt> operator. If you are - familiar with Perl, you will find this to be quite intuitive, and may - want to look at the PCRS documentation for the subtle differences to - Perl behaviour. Most notably, the non-standard option letter <tt - class="LITERAL">U</tt> is supported, which turns the default to - ungreedy matching. - </p> - <p> - If you are new to <a href= - "http://en.wikipedia.org/wiki/Regular_expressions" target= - "_top"><span class="QUOTE">"Regular Expressions"</span></a>, you - might want to take a look at the <a href= - "appendix.html#REGEX">Appendix on regular expressions</a>, and see - the <a href="http://perldoc.perl.org/perlre.html" target="_top">Perl - manual</a> for <a href="http://perldoc.perl.org/perlop.html" target= - "_top">the <tt class="LITERAL">s///</tt> operator's syntax</a> and <a - href="http://perldoc.perl.org/perlre.html" target="_top">Perl-style - regular expressions</a> in general. The below examples might also - help to get you started. - </p> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="AEN4903">9.1. Filter File Tutorial</a> - </h2> - <p> - Now, let's complete our <span class="QUOTE">"foo"</span> content - filter. We have already defined the heading, but the jobs are still - missing. Since all it does is to replace <span class= - "QUOTE">"foo"</span> with <span class="QUOTE">"bar"</span>, there - is only one (trivial) job needed: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> -s/foo/bar/ -</pre> - </td> - </tr> - </table> - - <p> - But wait! Didn't the comment say that <span class="emphasis"><i - class="EMPHASIS">all</i></span> occurrences of <span class= - "QUOTE">"foo"</span> should be replaced? Our current job will only - take care of the first <span class="QUOTE">"foo"</span> on each - page. For global substitution, we'll need to add the <tt class= - "LITERAL">g</tt> option: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> -s/foo/bar/g -</pre> - </td> - </tr> - </table> - - <p> - Our complete filter now looks like this: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p>Our complete filter now looks like this:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> FILTER: foo Replace all "foo" with "bar" s/foo/bar/g </pre> - </td> - </tr> - </table> - - <p> - Let's look at some real filters for more interesting examples. Here - you see a filter that protects against some common annoyances that - arise from JavaScript abuse. Let's look at its jobs one after the - other: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>Let's look at some real filters for more interesting examples. Here + you see a filter that protects against some common annoyances that + arise from JavaScript abuse. Let's look at its jobs one after the + other:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> FILTER: js-annoyances Get rid of particularly annoying JavaScript abuse # Get rid of JavaScript referrer tracking. Test page: http://www.randomoddness.com/untitled.htm # s|(<script.*)document\.referrer(.*</script>)|$1"Not Your Business!"$2|Usg </pre> - </td> - </tr> - </table> - - <p> - Following the header line and a comment, you see the job. Note that - it uses <tt class="LITERAL">|</tt> as the delimiter instead of <tt - class="LITERAL">/</tt>, because the pattern contains a forward - slash, which would otherwise have to be escaped by a backslash (<tt - class="LITERAL">\</tt>). - </p> - <p> - Now, let's examine the pattern: it starts with the text <tt class= - "LITERAL"><script.*</tt> enclosed in parentheses. Since the dot - matches any character, and <tt class="LITERAL">*</tt> means: <span - class="QUOTE">"Match an arbitrary number of the element left of - myself"</span>, this matches <span class= - "QUOTE">"<script"</span>, followed by <span class="emphasis"><i - class="EMPHASIS">any</i></span> text, i.e. it matches the whole - page, from the start of the first <script> tag. - </p> - <p> - That's more than we want, but the pattern continues: <tt class= - "LITERAL">document\.referrer</tt> matches only the exact string - <span class="QUOTE">"document.referrer"</span>. The dot needed to - be <span class="emphasis"><i class="EMPHASIS">escaped</i></span>, - i.e. preceded by a backslash, to take away its special meaning as a - joker, and make it just a regular dot. So far, the meaning is: - Match from the start of the first <script> tag in a the page, - up to, and including, the text <span class= - "QUOTE">"document.referrer"</span>, if <span class="emphasis"><i - class="EMPHASIS">both</i></span> are present in the page (and - appear in that order). - </p> - <p> - But there's still more pattern to go. The next element, again - enclosed in parentheses, is <tt class= - "LITERAL">.*</script></tt>. You already know what <tt class= - "LITERAL">.*</tt> means, so the whole pattern translates to: Match - from the start of the first <script> tag in a page to the end - of the last <script> tag, provided that the text <span class= - "QUOTE">"document.referrer"</span> appears somewhere in between. - </p> - <p> - This is still not the whole story, since we have ignored the - options and the parentheses: The portions of the page matched by - sub-patterns that are enclosed in parentheses, will be remembered - and be available through the variables <tt class="LITERAL">$1, $2, - ...</tt> in the substitute. The <tt class="LITERAL">U</tt> option - switches to ungreedy matching, which means that the first <tt - class="LITERAL">.*</tt> in the pattern will only <span class= - "QUOTE">"eat up"</span> all text in between <span class= - "QUOTE">"<script"</span> and the <span class="emphasis"><i - class="EMPHASIS">first</i></span> occurrence of <span class= - "QUOTE">"document.referrer"</span>, and that the second <tt class= - "LITERAL">.*</tt> will only span the text up to the <span class= - "emphasis"><i class="EMPHASIS">first</i></span> <span class= - "QUOTE">"</script>"</span> tag. Furthermore, the <tt class= - "LITERAL">s</tt> option says that the match may span multiple lines - in the page, and the <tt class="LITERAL">g</tt> option again means - that the substitution is global. - </p> - <p> - So, to summarize, the pattern means: Match all scripts that contain - the text <span class="QUOTE">"document.referrer"</span>. Remember - the parts of the script from (and including) the start tag up to - (and excluding) the string <span class= - "QUOTE">"document.referrer"</span> as <tt class="LITERAL">$1</tt>, - and the part following that string, up to and including the closing - tag, as <tt class="LITERAL">$2</tt>. - </p> - <p> - Now the pattern is deciphered, but wasn't this about substituting - things? So lets look at the substitute: <tt class="LITERAL">$1"Not - Your Business!"$2</tt> is easy to read: The text remembered as <tt - class="LITERAL">$1</tt>, followed by <tt class="LITERAL">"Not Your - Business!"</tt> (<span class="emphasis"><i class= - "EMPHASIS">including</i></span> the quotation marks!), followed by - the text remembered as <tt class="LITERAL">$2</tt>. This produces - an exact copy of the original string, with the middle part (the - <span class="QUOTE">"document.referrer"</span>) replaced by <tt - class="LITERAL">"Not Your Business!"</tt>. - </p> - <p> - The whole job now reads: Replace <span class= - "QUOTE">"document.referrer"</span> by <tt class="LITERAL">"Not Your - Business!"</tt> wherever it appears inside a <script> tag. - Note that this job won't break JavaScript syntax, since both the - original and the replacement are syntactically valid string - objects. The script just won't have access to the referrer - information anymore. - </p> - <p> - We'll show you two other jobs from the JavaScript taming - department, but this time only point out the constructs of special - interest: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>Following the header line and a comment, you see the job. Note that + it uses <tt class="LITERAL">|</tt> as the delimiter instead of + <tt class="LITERAL">/</tt>, because the pattern contains a forward + slash, which would otherwise have to be escaped by a backslash + (<tt class="LITERAL">\</tt>).</p> + + <p>Now, let's examine the pattern: it starts with the text <tt class= + "LITERAL"><script.*</tt> enclosed in parentheses. Since the dot + matches any character, and <tt class="LITERAL">*</tt> means: + <span class="QUOTE">"Match an arbitrary number of the element left of + myself"</span>, this matches <span class="QUOTE">"<script"</span>, + followed by <span class="emphasis EMPHASIS c2">any</span> text, i.e. it + matches the whole page, from the start of the first <script> + tag.</p> + + <p>That's more than we want, but the pattern continues: <tt class= + "LITERAL">document\.referrer</tt> matches only the exact string + <span class="QUOTE">"document.referrer"</span>. The dot needed to be + <span class="emphasis EMPHASIS c2">escaped</span>, i.e. preceded by a + backslash, to take away its special meaning as a joker, and make it + just a regular dot. So far, the meaning is: Match from the start of the + first <script> tag in a the page, up to, and including, the text + <span class="QUOTE">"document.referrer"</span>, if <span class= + "emphasis EMPHASIS c2">both</span> are present in the page (and appear + in that order).</p> + + <p>But there's still more pattern to go. The next element, again + enclosed in parentheses, is <tt class="LITERAL">.*</script></tt>. + You already know what <tt class="LITERAL">.*</tt> means, so the whole + pattern translates to: Match from the start of the first <script> + tag in a page to the end of the last <script> tag, provided that + the text <span class="QUOTE">"document.referrer"</span> appears + somewhere in between.</p> + + <p>This is still not the whole story, since we have ignored the options + and the parentheses: The portions of the page matched by sub-patterns + that are enclosed in parentheses, will be remembered and be available + through the variables <tt class="LITERAL">$1, $2, ...</tt> in the + substitute. The <tt class="LITERAL">U</tt> option switches to ungreedy + matching, which means that the first <tt class="LITERAL">.*</tt> in the + pattern will only <span class="QUOTE">"eat up"</span> all text in + between <span class="QUOTE">"<script"</span> and the <span class= + "emphasis EMPHASIS c2">first</span> occurrence of <span class= + "QUOTE">"document.referrer"</span>, and that the second <tt class= + "LITERAL">.*</tt> will only span the text up to the <span class= + "emphasis EMPHASIS c2">first</span> <span class= + "QUOTE">"</script>"</span> tag. Furthermore, the <tt class= + "LITERAL">s</tt> option says that the match may span multiple lines in + the page, and the <tt class="LITERAL">g</tt> option again means that + the substitution is global.</p> + + <p>So, to summarize, the pattern means: Match all scripts that contain + the text <span class="QUOTE">"document.referrer"</span>. Remember the + parts of the script from (and including) the start tag up to (and + excluding) the string <span class="QUOTE">"document.referrer"</span> as + <tt class="LITERAL">$1</tt>, and the part following that string, up to + and including the closing tag, as <tt class="LITERAL">$2</tt>.</p> + + <p>Now the pattern is deciphered, but wasn't this about substituting + things? So lets look at the substitute: <tt class="LITERAL">$1"Not Your + Business!"$2</tt> is easy to read: The text remembered as <tt class= + "LITERAL">$1</tt>, followed by <tt class="LITERAL">"Not Your + Business!"</tt> (<span class="emphasis EMPHASIS c2">including</span> + the quotation marks!), followed by the text remembered as <tt class= + "LITERAL">$2</tt>. This produces an exact copy of the original string, + with the middle part (the <span class= + "QUOTE">"document.referrer"</span>) replaced by <tt class= + "LITERAL">"Not Your Business!"</tt>.</p> + + <p>The whole job now reads: Replace <span class= + "QUOTE">"document.referrer"</span> by <tt class="LITERAL">"Not Your + Business!"</tt> wherever it appears inside a <script> tag. Note + that this job won't break JavaScript syntax, since both the original + and the replacement are syntactically valid string objects. The script + just won't have access to the referrer information anymore.</p> + + <p>We'll show you two other jobs from the JavaScript taming department, + but this time only point out the constructs of special interest:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> # The status bar is for displaying link targets, not pointless blahblah # s/window\.status\s*=\s*(['"]).*?\1/dUmMy=1/ig </pre> - </td> - </tr> - </table> - - <p> - <tt class="LITERAL">\s</tt> stands for whitespace characters - (space, tab, newline, carriage return, form feed), so that <tt - class="LITERAL">\s*</tt> means: <span class="QUOTE">"zero or more - whitespace"</span>. The <tt class="LITERAL">?</tt> in <tt class= - "LITERAL">.*?</tt> makes this matching of arbitrary text ungreedy. - (Note that the <tt class="LITERAL">U</tt> option is not set). The - <tt class="LITERAL">['"]</tt> construct means: <span class= - "QUOTE">"a single <span class="emphasis"><i class= - "EMPHASIS">or</i></span> a double quote"</span>. Finally, <tt - class="LITERAL">\1</tt> is a back-reference to the first - parenthesis just like <tt class="LITERAL">$1</tt> above, with the - difference that in the <span class="emphasis"><i class= - "EMPHASIS">pattern</i></span>, a backslash indicates a - back-reference, whereas in the <span class="emphasis"><i class= - "EMPHASIS">substitute</i></span>, it's the dollar. - </p> - <p> - So what does this job do? It replaces assignments of single- or - double-quoted strings to the <span class= - "QUOTE">"window.status"</span> object with a dummy assignment - (using a variable name that is hopefully odd enough not to conflict - with real variables in scripts). Thus, it catches many cases where - e.g. pointless descriptions are displayed in the status bar instead - of the link target when you move your mouse over links. - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p><tt class="LITERAL">\s</tt> stands for whitespace characters (space, + tab, newline, carriage return, form feed), so that <tt class= + "LITERAL">\s*</tt> means: <span class="QUOTE">"zero or more + whitespace"</span>. The <tt class="LITERAL">?</tt> in <tt class= + "LITERAL">.*?</tt> makes this matching of arbitrary text ungreedy. + (Note that the <tt class="LITERAL">U</tt> option is not set). The + <tt class="LITERAL">['"]</tt> construct means: <span class="QUOTE">"a + single <span class="emphasis EMPHASIS c2">or</span> a double + quote"</span>. Finally, <tt class="LITERAL">\1</tt> is a back-reference + to the first parenthesis just like <tt class="LITERAL">$1</tt> above, + with the difference that in the <span class= + "emphasis EMPHASIS c2">pattern</span>, a backslash indicates a + back-reference, whereas in the <span class= + "emphasis EMPHASIS c2">substitute</span>, it's the dollar.</p> + + <p>So what does this job do? It replaces assignments of single- or + double-quoted strings to the <span class="QUOTE">"window.status"</span> + object with a dummy assignment (using a variable name that is hopefully + odd enough not to conflict with real variables in scripts). Thus, it + catches many cases where e.g. pointless descriptions are displayed in + the status bar instead of the link target when you move your mouse over + links.</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> # Kill OnUnload popups. Yummy. Test: http://www.zdnet.com/zdsubs/yahoo/tree/yfs.html # s/(<body [^>]*)onunload(.*>)/$1never$2/iU </pre> - </td> - </tr> - </table> - - <p> - Including the <a href= - "http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/events.html#Events-eventgroupings-htmlevents" - target="_top">OnUnload event binding</a> in the HTML DOM was a - <span class="emphasis"><i class="EMPHASIS">CRIME</i></span>. When I - close a browser window, I want it to close and die. Basta. This job - replaces the <span class="QUOTE">"onunload"</span> attribute in - <span class="QUOTE">"<body>"</span> tags with the dummy word - <tt class="LITERAL">never</tt>. Note that the <tt class= - "LITERAL">i</tt> option makes the pattern matching - case-insensitive. Also note that ungreedy matching alone doesn't - always guarantee a minimal match: In the first parenthesis, we had - to use <tt class="LITERAL">[^>]*</tt> instead of <tt class= - "LITERAL">.*</tt> to prevent the match from exceeding the - <body> tag if it doesn't contain <span class= - "QUOTE">"OnUnload"</span>, but the page's content does. - </p> - <p> - The last example is from the fun department: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>Including the <a href= + "http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/events.html#Events-eventgroupings-htmlevents" + target="_top">OnUnload event binding</a> in the HTML DOM was a + <span class="emphasis EMPHASIS c2">CRIME</span>. When I close a browser + window, I want it to close and die. Basta. This job replaces the + <span class="QUOTE">"onunload"</span> attribute in <span class= + "QUOTE">"<body>"</span> tags with the dummy word <tt class= + "LITERAL">never</tt>. Note that the <tt class="LITERAL">i</tt> option + makes the pattern matching case-insensitive. Also note that ungreedy + matching alone doesn't always guarantee a minimal match: In the first + parenthesis, we had to use <tt class="LITERAL">[^>]*</tt> instead of + <tt class="LITERAL">.*</tt> to prevent the match from exceeding the + <body> tag if it doesn't contain <span class= + "QUOTE">"OnUnload"</span>, but the page's content does.</p> + + <p>The last example is from the fun department:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> FILTER: fun Fun text replacements # Spice the daily news: # s/microsoft(?!\.com)/MicroSuck/ig </pre> - </td> - </tr> - </table> - - <p> - Note the <tt class="LITERAL">(?!\.com)</tt> part (a so-called - negative lookahead) in the job's pattern, which means: Don't match, - if the string <span class="QUOTE">".com"</span> appears directly - following <span class="QUOTE">"microsoft"</span> in the page. This - prevents links to microsoft.com from being trashed, while still - replacing the word everywhere else. - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>Note the <tt class="LITERAL">(?!\.com)</tt> part (a so-called + negative lookahead) in the job's pattern, which means: Don't match, if + the string <span class="QUOTE">".com"</span> appears directly following + <span class="QUOTE">"microsoft"</span> in the page. This prevents links + to microsoft.com from being trashed, while still replacing the word + everywhere else.</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> # Buzzword Bingo (example for extended regex syntax) # s* industry[ -]leading \ @@ -469,539 +416,429 @@ s* industry[ -]leading \ *<font color="red"><b>BINGO!</b></font> \ *igx </pre> - </td> - </tr> - </table> - - <p> - The <tt class="LITERAL">x</tt> option in this job turns on extended - syntax, and allows for e.g. the liberal use of (non-interpreted!) - whitespace for nicer formatting. - </p> - <p> - You get the idea? - </p> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="PREDEFINED-FILTERS">9.2. The Pre-defined Filters</a> - </h2> - <p> - The distribution <tt class="FILENAME">default.filter</tt> file - contains a selection of pre-defined filters for your convenience: - </p> - <div class="VARIABLELIST"> - <dl> - <dt> - <span class="emphasis"><i class= - "EMPHASIS">js-annoyances</i></span> - </dt> - <dd> - <p> - The purpose of this filter is to get rid of particularly - annoying JavaScript abuse. To that end, it - </p> - <ul> - <li> - <p> - replaces JavaScript references to the browser's referrer - information with the string "Not Your Business!". This - compliments the <tt class="LITERAL"><a href= - "actions-file.html#HIDE-REFERRER">hide-referrer</a></tt> - action on the content level. - </p> - </li> - <li> - <p> - removes the bindings to the DOM's <a href= - "http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/events.html#Events-eventgroupings-htmlevents" - target="_top">unload event</a> which we feel has no - right to exist and is responsible for most <span class= - "QUOTE">"exit consoles"</span>, i.e. nasty windows that - pop up when you close another one. - </p> - </li> - <li> - <p> - removes code that causes new windows to be opened with - undesired properties, such as being full-screen, - non-resizeable, without location, status or menu bar etc. - </p> - </li> - </ul> - - <p> - Use with caution. This is an aggressive filter, and can break - sites that rely heavily on JavaScript. - </p> - </dd> - <dt> - <span class="emphasis"><i class="EMPHASIS">js-events</i></span> - </dt> - <dd> - <p> - This is a very radical measure. It removes virtually all - JavaScript event bindings, which means that scripts can not - react to user actions such as mouse movements or clicks, - window resizing etc, anymore. Use with caution! - </p> - <p> - We <span class="emphasis"><i class="EMPHASIS">strongly - discourage</i></span> using this filter as a default since it - breaks many legitimate scripts. It is meant for use only on - extra-nasty sites (should you really need to go there). - </p> - </dd> - <dt> - <span class="emphasis"><i class= - "EMPHASIS">html-annoyances</i></span> - </dt> - <dd> - <p> - This filter will undo many common instances of HTML based - abuse. - </p> - <p> - The <tt class="LITERAL">BLINK</tt> and <tt class= - "LITERAL">MARQUEE</tt> tags are neutralized (yeah baby!), and - browser windows will be created as resizeable (as of course - they should be!), and will have location, scroll and menu - bars -- even if specified otherwise. - </p> - </dd> - <dt> - <span class="emphasis"><i class= - "EMPHASIS">content-cookies</i></span> - </dt> - <dd> - <p> - Most cookies are set in the HTTP dialog, where they can be - intercepted by the <tt class="LITERAL"><a href= - "actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a></tt> - and <tt class="LITERAL"><a href= - "actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a></tt> - actions. But web sites increasingly make use of HTML meta - tags and JavaScript to sneak cookies to the browser on the - content level. - </p> - <p> - This filter disables most HTML and JavaScript code that reads - or sets cookies. It cannot detect all clever uses of these - types of code, so it should not be relied on as an absolute - fix. Use it wherever you would also use the cookie crunch - actions. - </p> - </dd> - <dt> - <span class="emphasis"><i class="EMPHASIS">refresh - tags</i></span> - </dt> - <dd> - <p> - Disable any refresh tags if the interval is greater than nine - seconds (so that redirections done via refresh tags are not - destroyed). This is useful for dial-on-demand setups, or for - those who find this HTML feature annoying. - </p> - </dd> - <dt> - <span class="emphasis"><i class= - "EMPHASIS">unsolicited-popups</i></span> - </dt> - <dd> - <p> - This filter attempts to prevent only <span class= - "QUOTE">"unsolicited"</span> pop-up windows from opening, yet - still allow pop-up windows that the user has explicitly - chosen to open. It was added in version 3.0.1, as an - improvement over earlier such filters. - </p> - <p> - Technical note: The filter works by redefining the - window.open JavaScript function to a dummy function, <tt - class="LITERAL">PrivoxyWindowOpen()</tt>, during the loading - and rendering phase of each HTML page access, and restoring - the function afterward. - </p> - <p> - This is recommended only for browsers that cannot perform - this function reliably themselves. And be aware that some - sites require such windows in order to function normally. Use - with caution. - </p> - </dd> - <dt> - <span class="emphasis"><i class= - "EMPHASIS">all-popups</i></span> - </dt> - <dd> - <p> - Attempt to prevent <span class="emphasis"><i class= - "EMPHASIS">all</i></span> pop-up windows from opening. Note - this should be used with even more discretion than the above, - since it is more likely to break some sites that require - pop-ups for normal usage. Use with caution. - </p> - </dd> - <dt> - <span class="emphasis"><i class= - "EMPHASIS">img-reorder</i></span> - </dt> - <dd> - <p> - This is a helper filter that has no value if used alone. It - makes the <tt class="LITERAL">banners-by-size</tt> and <tt - class="LITERAL">banners-by-link</tt> (see below) filters more - effective and should be enabled together with them. - </p> - </dd> - <dt> - <span class="emphasis"><i class= - "EMPHASIS">banners-by-size</i></span> - </dt> - <dd> - <p> - This filter removes image tags purely based on what size they - are. Fortunately for us, many ads and banner images tend to - conform to certain standardized sizes, which makes this - filter quite effective for ad stripping purposes. - </p> - <p> - Occasionally this filter will cause false positives on images - that are not ads, but just happen to be of one of the - standard banner sizes. - </p> - <p> - Recommended only for those who require extreme ad blocking. - The default block rules should catch 95+% of all ads <span - class="emphasis"><i class="EMPHASIS">without</i></span> this - filter enabled. - </p> - </dd> - <dt> - <span class="emphasis"><i class= - "EMPHASIS">banners-by-link</i></span> - </dt> - <dd> - <p> - This is an experimental filter that attempts to kill any - banners if their URLs seem to point to known or suspected - click trackers. It is currently not of much value and is not - recommended for use by default. - </p> - </dd> - <dt> - <span class="emphasis"><i class="EMPHASIS">webbugs</i></span> - </dt> - <dd> - <p> - Webbugs are small, invisible images (technically 1X1 GIF - images), that are used to track users across websites, and - collect information on them. As an HTML page is loaded by the - browser, an embedded image tag causes the browser to contact - a third-party site, disclosing the tracking information - through the requested URL and/or cookies for that third-party - domain, without the user ever becoming aware of the - interaction with the third-party site. HTML-ized spam also - uses a similar technique to verify email addresses. - </p> - <p> - This filter removes the HTML code that loads such <span - class="QUOTE">"webbugs"</span>. - </p> - </dd> - <dt> - <span class="emphasis"><i class= - "EMPHASIS">tiny-textforms</i></span> - </dt> - <dd> - <p> - A rather special-purpose filter that can be used to enlarge - textareas (those multi-line text boxes in web forms) and turn - off hard word wrap in them. It was written for the - sourceforge.net tracker system where such boxes are a - nuisance, but it can be handy on other sites, too. - </p> - <p> - It is not recommended to use this filter as a default. - </p> - </dd> - <dt> - <span class="emphasis"><i class= - "EMPHASIS">jumping-windows</i></span> - </dt> - <dd> - <p> - Many consider windows that move, or resize themselves to be - abusive. This filter neutralizes the related JavaScript code. - Note that some sites might not display or behave as intended - when using this filter. Use with caution. - </p> - </dd> - <dt> - <span class="emphasis"><i class= - "EMPHASIS">frameset-borders</i></span> - </dt> - <dd> - <p> - Some web designers seem to assume that everyone in the world - will view their web sites using the same browser brand and - version, screen resolution etc, because only that assumption - could explain why they'd use static frame sizes, yet prevent - their frames from being resized by the user, should they be - too small to show their whole content. - </p> - <p> - This filter removes the related HTML code. It should only be - applied to sites which need it. - </p> - </dd> - <dt> - <span class="emphasis"><i class= - "EMPHASIS">demoronizer</i></span> - </dt> - <dd> - <p> - Many Microsoft products that generate HTML use non-standard - extensions (read: violations) of the ISO 8859-1 aka Latin-1 - character set. This can cause those HTML documents to display - with errors on standard-compliant platforms. - </p> - <p> - This filter translates the MS-only characters into Latin-1 - equivalents. It is not necessary when using MS products, and - will cause corruption of all documents that use 8-bit - character sets other than Latin-1. It's mostly worthwhile for - Europeans on non-MS platforms, if weird garbage characters - sometimes appear on some pages, or user agents that don't - correct for this on the fly. - </p> - </dd> - <dt> - <span class="emphasis"><i class= - "EMPHASIS">shockwave-flash</i></span> - </dt> - <dd> - <p> - A filter for shockwave haters. As the name suggests, this - filter strips code out of web pages that is used to embed - shockwave flash objects. - </p> - <p> - </p> - </dd> - <dt> - <span class="emphasis"><i class= - "EMPHASIS">quicktime-kioskmode</i></span> - </dt> - <dd> - <p> - Change HTML code that embeds Quicktime objects so that - kioskmode, which prevents saving, is disabled. - </p> - </dd> - <dt> - <span class="emphasis"><i class="EMPHASIS">fun</i></span> - </dt> - <dd> - <p> - Text replacements for subversive browsing fun. Make fun of - your favorite Monopolist or play buzzword bingo. - </p> - </dd> - <dt> - <span class="emphasis"><i class= - "EMPHASIS">crude-parental</i></span> - </dt> - <dd> - <p> - A demonstration-only filter that shows how <span class= - "APPLICATION">Privoxy</span> can be used to delete web - content on a keyword basis. - </p> - </dd> - <dt> - <span class="emphasis"><i class= - "EMPHASIS">ie-exploits</i></span> - </dt> - <dd> - <p> - An experimental collection of text replacements to disable - malicious HTML and JavaScript code that exploits known - security holes in Internet Explorer. - </p> - <p> - Presently, it only protects against Nimda and a cross-site - scripting bug, and would need active maintenance to provide - more substantial protection. - </p> - </dd> - <dt> - <span class="emphasis"><i class= - "EMPHASIS">site-specifics</i></span> - </dt> - <dd> - <p> - Some web sites have very specific problems, the cure for - which doesn't apply anywhere else, or could even cause damage - on other sites. - </p> - <p> - This is a collection of such site-specific cures which should - only be applied to the sites they were intended for, which is - what the supplied <tt class="FILENAME">default.action</tt> - file does. Users shouldn't need to change anything regarding - this filter. - </p> - </dd> - <dt> - <span class="emphasis"><i class="EMPHASIS">google</i></span> - </dt> - <dd> - <p> - A CSS based block for Google text ads. Also removes a width - limitation and the toolbar advertisement. - </p> - </dd> - <dt> - <span class="emphasis"><i class="EMPHASIS">yahoo</i></span> - </dt> - <dd> - <p> - Another CSS based block, this time for Yahoo text ads. And - removes a width limitation as well. - </p> - </dd> - <dt> - <span class="emphasis"><i class="EMPHASIS">msn</i></span> - </dt> - <dd> - <p> - Another CSS based block, this time for MSN text ads. And - removes tracking URLs, as well as a width limitation. - </p> - </dd> - <dt> - <span class="emphasis"><i class="EMPHASIS">blogspot</i></span> - </dt> - <dd> - <p> - Cleans up some Blogspot blogs. Read the fine print before - using this one! - </p> - <p> - This filter also intentionally removes some navigation stuff - and sets the page width to 100%. As a result, some rounded - <span class="QUOTE">"corners"</span> would appear to early or - not at all and as fixing this would require a browser that - understands background-size (CSS3), they are removed instead. - </p> - </dd> - <dt> - <span class="emphasis"><i class= - "EMPHASIS">xml-to-html</i></span> - </dt> - <dd> - <p> - Server-header filter to change the Content-Type from xml to - html. - </p> - </dd> - <dt> - <span class="emphasis"><i class= - "EMPHASIS">html-to-xml</i></span> - </dt> - <dd> - <p> - Server-header filter to change the Content-Type from html to - xml. - </p> - </dd> - <dt> - <span class="emphasis"><i class="EMPHASIS">no-ping</i></span> - </dt> - <dd> - <p> - Removes the non-standard <tt class="LITERAL">ping</tt> - attribute from anchor and area HTML tags. - </p> - </dd> - <dt> - <span class="emphasis"><i class= - "EMPHASIS">hide-tor-exit-notation</i></span> - </dt> - <dd> - <p> - Client-header filter to remove the <b class="COMMAND">Tor</b> - exit node notation found in Host and Referer headers. - </p> - <p> - If <span class="APPLICATION">Privoxy</span> and <b class= - "COMMAND">Tor</b> are chained and <span class= - "APPLICATION">Privoxy</span> is configured to use socks4a, - one can use <span class= - "QUOTE">"http://www.example.org.foobar.exit/"</span> to - access the host <span class="QUOTE">"www.example.org"</span> - through the <b class="COMMAND">Tor</b> exit node <span class= - "QUOTE">"foobar"</span>. - </p> - <p> - As the HTTP client isn't aware of this notation, it treats - the whole string <span class= - "QUOTE">"www.example.org.foobar.exit"</span> as host and uses - it for the <span class="QUOTE">"Host"</span> and <span class= - "QUOTE">"Referer"</span> headers. From the server's point of - view the resulting headers are invalid and can cause - problems. - </p> - <p> - An invalid <span class="QUOTE">"Referer"</span> header can - trigger <span class="QUOTE">"hot-linking"</span> protections, - an invalid <span class="QUOTE">"Host"</span> header will make - it impossible for the server to find the right vhost (several - domains hosted on the same IP address). - </p> - <p> - This client-header filter removes the <span class= - "QUOTE">"foo.exit"</span> part in those headers to prevent - the mentioned problems. Note that it only modifies the HTTP - headers, it doesn't make it impossible for the server to - detect your <b class="COMMAND">Tor</b> exit node based on the - IP address the request is coming from. - </p> - </dd> - </dl> - </div> - </div> - </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="actions-file.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="templates.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - Actions Files - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Privoxy's Template Files </td> </tr> </table> + + <p>The <tt class="LITERAL">x</tt> option in this job turns on extended + syntax, and allows for e.g. the liberal use of (non-interpreted!) + whitespace for nicer formatting.</p> + + <p>You get the idea?</p> </div> - </body> -</html> + <div class="SECT2"> + <h2 class="SECT2"><a name="PREDEFINED-FILTERS" id= + "PREDEFINED-FILTERS">9.2. The Pre-defined Filters</a></h2> + + <p>The distribution <tt class="FILENAME">default.filter</tt> file + contains a selection of pre-defined filters for your convenience:</p> + + <div class="VARIABLELIST"> + <dl> + <dt><span class="emphasis EMPHASIS c2">js-annoyances</span></dt> + + <dd> + <p>The purpose of this filter is to get rid of particularly + annoying JavaScript abuse. To that end, it</p> + + <ul> + <li> + <p>replaces JavaScript references to the browser's referrer + information with the string "Not Your Business!". This + compliments the <tt class="LITERAL"><a href= + "actions-file.html#HIDE-REFERRER">hide-referrer</a></tt> + action on the content level.</p> + </li> + + <li> + <p>removes the bindings to the DOM's <a href= + "http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/events.html#Events-eventgroupings-htmlevents" + target="_top">unload event</a> which we feel has no right to + exist and is responsible for most <span class="QUOTE">"exit + consoles"</span>, i.e. nasty windows that pop up when you + close another one.</p> + </li> + + <li> + <p>removes code that causes new windows to be opened with + undesired properties, such as being full-screen, + non-resizeable, without location, status or menu bar etc.</p> + </li> + </ul> + + <p>Use with caution. This is an aggressive filter, and can break + sites that rely heavily on JavaScript.</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">js-events</span></dt> + + <dd> + <p>This is a very radical measure. It removes virtually all + JavaScript event bindings, which means that scripts can not react + to user actions such as mouse movements or clicks, window + resizing etc, anymore. Use with caution!</p> + + <p>We <span class="emphasis EMPHASIS c2">strongly + discourage</span> using this filter as a default since it breaks + many legitimate scripts. It is meant for use only on extra-nasty + sites (should you really need to go there).</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">html-annoyances</span></dt> + + <dd> + <p>This filter will undo many common instances of HTML based + abuse.</p> + + <p>The <tt class="LITERAL">BLINK</tt> and <tt class= + "LITERAL">MARQUEE</tt> tags are neutralized (yeah baby!), and + browser windows will be created as resizeable (as of course they + should be!), and will have location, scroll and menu bars -- even + if specified otherwise.</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">content-cookies</span></dt> + + <dd> + <p>Most cookies are set in the HTTP dialog, where they can be + intercepted by the <tt class="LITERAL"><a href= + "actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a></tt> + and <tt class="LITERAL"><a href= + "actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a></tt> + actions. But web sites increasingly make use of HTML meta tags + and JavaScript to sneak cookies to the browser on the content + level.</p> + + <p>This filter disables most HTML and JavaScript code that reads + or sets cookies. It cannot detect all clever uses of these types + of code, so it should not be relied on as an absolute fix. Use it + wherever you would also use the cookie crunch actions.</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">refresh tags</span></dt> + + <dd> + <p>Disable any refresh tags if the interval is greater than nine + seconds (so that redirections done via refresh tags are not + destroyed). This is useful for dial-on-demand setups, or for + those who find this HTML feature annoying.</p> + </dd> + + <dt><span class= + "emphasis EMPHASIS c2">unsolicited-popups</span></dt> + + <dd> + <p>This filter attempts to prevent only <span class= + "QUOTE">"unsolicited"</span> pop-up windows from opening, yet + still allow pop-up windows that the user has explicitly chosen to + open. It was added in version 3.0.1, as an improvement over + earlier such filters.</p> + + <p>Technical note: The filter works by redefining the window.open + JavaScript function to a dummy function, <tt class= + "LITERAL">PrivoxyWindowOpen()</tt>, during the loading and + rendering phase of each HTML page access, and restoring the + function afterward.</p> + + <p>This is recommended only for browsers that cannot perform this + function reliably themselves. And be aware that some sites + require such windows in order to function normally. Use with + caution.</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">all-popups</span></dt> + + <dd> + <p>Attempt to prevent <span class= + "emphasis EMPHASIS c2">all</span> pop-up windows from opening. + Note this should be used with even more discretion than the + above, since it is more likely to break some sites that require + pop-ups for normal usage. Use with caution.</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">img-reorder</span></dt> + + <dd> + <p>This is a helper filter that has no value if used alone. It + makes the <tt class="LITERAL">banners-by-size</tt> and <tt class= + "LITERAL">banners-by-link</tt> (see below) filters more effective + and should be enabled together with them.</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">banners-by-size</span></dt> + + <dd> + <p>This filter removes image tags purely based on what size they + are. Fortunately for us, many ads and banner images tend to + conform to certain standardized sizes, which makes this filter + quite effective for ad stripping purposes.</p> + + <p>Occasionally this filter will cause false positives on images + that are not ads, but just happen to be of one of the standard + banner sizes.</p> + + <p>Recommended only for those who require extreme ad blocking. + The default block rules should catch 95+% of all ads <span class= + "emphasis EMPHASIS c2">without</span> this filter enabled.</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">banners-by-link</span></dt> + + <dd> + <p>This is an experimental filter that attempts to kill any + banners if their URLs seem to point to known or suspected click + trackers. It is currently not of much value and is not + recommended for use by default.</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">webbugs</span></dt> + + <dd> + <p>Webbugs are small, invisible images (technically 1X1 GIF + images), that are used to track users across websites, and + collect information on them. As an HTML page is loaded by the + browser, an embedded image tag causes the browser to contact a + third-party site, disclosing the tracking information through the + requested URL and/or cookies for that third-party domain, without + the user ever becoming aware of the interaction with the + third-party site. HTML-ized spam also uses a similar technique to + verify email addresses.</p> + + <p>This filter removes the HTML code that loads such <span class= + "QUOTE">"webbugs"</span>.</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">tiny-textforms</span></dt> + + <dd> + <p>A rather special-purpose filter that can be used to enlarge + textareas (those multi-line text boxes in web forms) and turn off + hard word wrap in them. It was written for the sourceforge.net + tracker system where such boxes are a nuisance, but it can be + handy on other sites, too.</p> + + <p>It is not recommended to use this filter as a default.</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">jumping-windows</span></dt> + + <dd> + <p>Many consider windows that move, or resize themselves to be + abusive. This filter neutralizes the related JavaScript code. + Note that some sites might not display or behave as intended when + using this filter. Use with caution.</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">frameset-borders</span></dt> + + <dd> + <p>Some web designers seem to assume that everyone in the world + will view their web sites using the same browser brand and + version, screen resolution etc, because only that assumption + could explain why they'd use static frame sizes, yet prevent + their frames from being resized by the user, should they be too + small to show their whole content.</p> + + <p>This filter removes the related HTML code. It should only be + applied to sites which need it.</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">demoronizer</span></dt> + + <dd> + <p>Many Microsoft products that generate HTML use non-standard + extensions (read: violations) of the ISO 8859-1 aka Latin-1 + character set. This can cause those HTML documents to display + with errors on standard-compliant platforms.</p> + + <p>This filter translates the MS-only characters into Latin-1 + equivalents. It is not necessary when using MS products, and will + cause corruption of all documents that use 8-bit character sets + other than Latin-1. It's mostly worthwhile for Europeans on + non-MS platforms, if weird garbage characters sometimes appear on + some pages, or user agents that don't correct for this on the + fly.</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">shockwave-flash</span></dt> + + <dd> + <p>A filter for shockwave haters. As the name suggests, this + filter strips code out of web pages that is used to embed + shockwave flash objects.</p> + </dd> + + <dt><span class= + "emphasis EMPHASIS c2">quicktime-kioskmode</span></dt> + + <dd> + <p>Change HTML code that embeds Quicktime objects so that + kioskmode, which prevents saving, is disabled.</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">fun</span></dt> + + <dd> + <p>Text replacements for subversive browsing fun. Make fun of + your favorite Monopolist or play buzzword bingo.</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">crude-parental</span></dt> + + <dd> + <p>A demonstration-only filter that shows how <span class= + "APPLICATION">Privoxy</span> can be used to delete web content on + a keyword basis.</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">ie-exploits</span></dt> + + <dd> + <p>An experimental collection of text replacements to disable + malicious HTML and JavaScript code that exploits known security + holes in Internet Explorer.</p> + + <p>Presently, it only protects against Nimda and a cross-site + scripting bug, and would need active maintenance to provide more + substantial protection.</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">site-specifics</span></dt> + + <dd> + <p>Some web sites have very specific problems, the cure for which + doesn't apply anywhere else, or could even cause damage on other + sites.</p> + + <p>This is a collection of such site-specific cures which should + only be applied to the sites they were intended for, which is + what the supplied <tt class="FILENAME">default.action</tt> file + does. Users shouldn't need to change anything regarding this + filter.</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">google</span></dt> + + <dd> + <p>A CSS based block for Google text ads. Also removes a width + limitation and the toolbar advertisement.</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">yahoo</span></dt> + + <dd> + <p>Another CSS based block, this time for Yahoo text ads. And + removes a width limitation as well.</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">msn</span></dt> + + <dd> + <p>Another CSS based block, this time for MSN text ads. And + removes tracking URLs, as well as a width limitation.</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">blogspot</span></dt> + + <dd> + <p>Cleans up some Blogspot blogs. Read the fine print before + using this one!</p> + + <p>This filter also intentionally removes some navigation stuff + and sets the page width to 100%. As a result, some rounded + <span class="QUOTE">"corners"</span> would appear to early or not + at all and as fixing this would require a browser that + understands background-size (CSS3), they are removed instead.</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">xml-to-html</span></dt> + + <dd> + <p>Server-header filter to change the Content-Type from xml to + html.</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">html-to-xml</span></dt> + + <dd> + <p>Server-header filter to change the Content-Type from html to + xml.</p> + </dd> + + <dt><span class="emphasis EMPHASIS c2">no-ping</span></dt> + + <dd> + <p>Removes the non-standard <tt class="LITERAL">ping</tt> + attribute from anchor and area HTML tags.</p> + </dd> + + <dt><span class= + "emphasis EMPHASIS c2">hide-tor-exit-notation</span></dt> + + <dd> + <p>Client-header filter to remove the <b class="COMMAND">Tor</b> + exit node notation found in Host and Referer headers.</p> + + <p>If <span class="APPLICATION">Privoxy</span> and <b class= + "COMMAND">Tor</b> are chained and <span class= + "APPLICATION">Privoxy</span> is configured to use socks4a, one + can use <span class= + "QUOTE">"http://www.example.org.foobar.exit/"</span> to access + the host <span class="QUOTE">"www.example.org"</span> through the + <b class="COMMAND">Tor</b> exit node <span class= + "QUOTE">"foobar"</span>.</p> + + <p>As the HTTP client isn't aware of this notation, it treats the + whole string <span class= + "QUOTE">"www.example.org.foobar.exit"</span> as host and uses it + for the <span class="QUOTE">"Host"</span> and <span class= + "QUOTE">"Referer"</span> headers. From the server's point of view + the resulting headers are invalid and can cause problems.</p> + + <p>An invalid <span class="QUOTE">"Referer"</span> header can + trigger <span class="QUOTE">"hot-linking"</span> protections, an + invalid <span class="QUOTE">"Host"</span> header will make it + impossible for the server to find the right vhost (several + domains hosted on the same IP address).</p> + + <p>This client-header filter removes the <span class= + "QUOTE">"foo.exit"</span> part in those headers to prevent the + mentioned problems. Note that it only modifies the HTTP headers, + it doesn't make it impossible for the server to detect your + <b class="COMMAND">Tor</b> exit node based on the IP address the + request is coming from.</p> + </dd> + </dl> + </div> + </div> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="actions-file.html" + accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + + <td width="33%" align="right" valign="top"><a href="templates.html" + accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Actions Files</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Privoxy's Template + Files</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/user-manual/index.html b/doc/webserver/user-manual/index.html index d2f17e42..1dd8cc37 100644 --- a/doc/webserver/user-manual/index.html +++ b/doc/webserver/user-manual/index.html @@ -1,771 +1,621 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Privoxy 3.0.18 User Manual - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="NEXT" title="Introduction" href="introduction.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <link rel="STYLESHEET" type="text/css" href="p_doc.css"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Privoxy 3.0.18 User Manual</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="NEXT" title="Introduction" href="introduction.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <link rel="STYLESHEET" type="text/css" href="p_doc.css"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c2 {text-align: left} - dt.c1 {font-weight: bold} -</style> - </head> - <body class="ARTICLE"> - <div class="ARTICLE"> - <div class="TITLEPAGE"> - <h1 class="TITLE"> - <a name="AEN2">Privoxy 3.0.18 User Manual</a> - </h1> - <p class="PUBDATE"> - <sub><a href="copyright.html">Copyright</a> © 2001-2011 by <a - href="http://www.privoxy.org/" target="_top">Privoxy - Developers</a></sub><br> - </p> - <p class="PUBDATE"> - $Id: index.html,v 1.77 2011/08/26 16:14:24 fabiankeil Exp $<br> - </p> - <div> - <a name="AEN9"></a> - <p> - The <i class="CITETITLE">Privoxy User Manual</i> gives users - information on how to install, configure and use <a href= - "http://www.privoxy.org/" target="_top">Privoxy</a>. - </p> - <p> - Privoxy is a non-caching web proxy with advanced filtering - capabilities for enhancing privacy, modifying web page data and - HTTP headers, controlling access, and removing ads and other - obnoxious Internet junk. Privoxy has a flexible configuration and - can be customized to suit individual needs and tastes. It has - application for both stand-alone systems and multi-user networks. - </p> - <p> - Privoxy is Free Software and licensed under the GNU GPLv2. - </p> - <p> - Privoxy is an associated project of Software in the Public - Interest (SPI). - </p> - <p> - Helping hands and donations are welcome: - </p> - <ul> - <li> - <p> - <a href="http://www.privoxy.org/faq/general.html#PARTICIPATE" - target= - "_top">http://www.privoxy.org/faq/general.html#PARTICIPATE</a> - </p> - </li> - <li> - <p> - <a href="http://www.privoxy.org/faq/general.html#DONATE" - target= - "_top">http://www.privoxy.org/faq/general.html#DONATE</a> - </p> - </li> - </ul> - - <p> - You can find the latest version of the <i class= - "CITETITLE">Privoxy User Manual</i> at <a href= - "http://www.privoxy.org/user-manual/" target= - "_top">http://www.privoxy.org/user-manual/</a>. Please see the <a - href="contact.html">Contact section</a> on how to contact the - developers. - </p> - </div> - <hr> - </div> - <div class="TOC"> - <dl> - <dt class="c1"> - Table of Contents - </dt> - <dt> - 1. <a href="introduction.html">Introduction</a> - </dt> - <dd> - <dl> - <dt> - 1.1. <a href="introduction.html#FEATURES">Features</a> - </dt> - </dl> - </dd> - <dt> - 2. <a href="installation.html">Installation</a> - </dt> - <dd> - <dl> - <dt> - 2.1. <a href="installation.html#INSTALLATION-PACKAGES">Binary - Packages</a> - </dt> - <dd> - <dl> - <dt> - 2.1.1. <a href= - "installation.html#INSTALLATION-PACK-RPM">Red Hat and - Fedora RPMs</a> - </dt> - <dt> - 2.1.2. <a href= - "installation.html#INSTALLATION-DEB">Debian and - Ubuntu</a> - </dt> - <dt> - 2.1.3. <a href= - "installation.html#INSTALLATION-PACK-WIN">Windows</a> - </dt> - <dt> - 2.1.4. <a href= - "installation.html#INSTALLATION-PACK-BINTGZ">Solaris</a> - </dt> - <dt> - 2.1.5. <a href= - "installation.html#INSTALLATION-OS2">OS/2</a> - </dt> - <dt> - 2.1.6. <a href="installation.html#INSTALLATION-MAC">Mac - OS X</a> - </dt> - <dt> - 2.1.7. <a href= - "installation.html#INSTALLATION-AMIGA">AmigaOS</a> - </dt> - <dt> - 2.1.8. <a href= - "installation.html#INSTALLATION-TBZ">FreeBSD</a> - </dt> - <dt> - 2.1.9. <a href= - "installation.html#INSTALLATTION-GENTOO">Gentoo</a> - </dt> - </dl> - </dd> - <dt> - 2.2. <a href="installation.html#INSTALLATION-SOURCE">Building - from Source</a> - </dt> - <dt> - 2.3. <a href= - "installation.html#INSTALLATION-KEEPUPDATED">Keeping your - Installation Up-to-Date</a> - </dt> - </dl> - </dd> - <dt> - 3. <a href="whatsnew.html">What's New in this Release</a> - </dt> - <dd> - <dl> - <dt> - 3.1. <a href="whatsnew.html#UPGRADERSNOTE">Note to - Upgraders</a> - </dt> - </dl> - </dd> - <dt> - 4. <a href="quickstart.html">Quickstart to Using Privoxy</a> - </dt> - <dd> - <dl> - <dt> - 4.1. <a href= - "quickstart.html#QUICKSTART-AD-BLOCKING">Quickstart to Ad - Blocking</a> - </dt> - </dl> - </dd> - <dt> - 5. <a href="startup.html">Starting Privoxy</a> - </dt> - <dd> - <dl> - <dt> - 5.1. <a href="startup.html#START-REDHAT">Red Hat and - Fedora</a> - </dt> - <dt> - 5.2. <a href="startup.html#START-DEBIAN">Debian</a> - </dt> - <dt> - 5.3. <a href="startup.html#START-WINDOWS">Windows</a> - </dt> - <dt> - 5.4. <a href="startup.html#START-UNICES">Solaris, NetBSD, - FreeBSD, HP-UX and others</a> - </dt> - <dt> - 5.5. <a href="startup.html#START-OS2">OS/2</a> - </dt> - <dt> - 5.6. <a href="startup.html#START-MACOSX">Mac OS X</a> - </dt> - <dt> - 5.7. <a href="startup.html#START-AMIGAOS">AmigaOS</a> - </dt> - <dt> - 5.8. <a href="startup.html#START-GENTOO">Gentoo</a> - </dt> - <dt> - 5.9. <a href="startup.html#CMDOPTIONS">Command Line - Options</a> - </dt> - </dl> - </dd> - <dt> - 6. <a href="configuration.html">Privoxy Configuration</a> - </dt> - <dd> - <dl> - <dt> - 6.1. <a href="configuration.html#AEN933">Controlling Privoxy - with Your Web Browser</a> - </dt> - <dt> - 6.2. <a href="configuration.html#CONFOVERVIEW">Configuration - Files Overview</a> - </dt> - </dl> - </dd> - <dt> - 7. <a href="config.html">The Main Configuration File</a> - </dt> - <dd> - <dl> - <dt> - 7.1. <a href="config.html#LOCAL-SET-UP">Local Set-up - Documentation</a> - </dt> - <dd> - <dl> - <dt> - 7.1.1. <a href="config.html#USER-MANUAL">user-manual</a> - </dt> - <dt> - 7.1.2. <a href= - "config.html#TRUST-INFO-URL">trust-info-url</a> - </dt> - <dt> - 7.1.3. <a href= - "config.html#ADMIN-ADDRESS">admin-address</a> - </dt> - <dt> - 7.1.4. <a href= - "config.html#PROXY-INFO-URL">proxy-info-url</a> - </dt> - </dl> - </dd> - <dt> - 7.2. <a href="config.html#CONF-LOG-LOC">Configuration and Log - File Locations</a> - </dt> - <dd> - <dl> - <dt> - 7.2.1. <a href="config.html#CONFDIR">confdir</a> - </dt> - <dt> - 7.2.2. <a href="config.html#TEMPLDIR">templdir</a> - </dt> - <dt> - 7.2.3. <a href="config.html#LOGDIR">logdir</a> - </dt> - <dt> - 7.2.4. <a href="config.html#ACTIONSFILE">actionsfile</a> - </dt> - <dt> - 7.2.5. <a href="config.html#FILTERFILE">filterfile</a> - </dt> - <dt> - 7.2.6. <a href="config.html#LOGFILE">logfile</a> - </dt> - <dt> - 7.2.7. <a href="config.html#TRUSTFILE">trustfile</a> - </dt> - </dl> - </dd> - <dt> - 7.3. <a href="config.html#DEBUGGING">Debugging</a> - </dt> - <dd> - <dl> - <dt> - 7.3.1. <a href="config.html#DEBUG">debug</a> - </dt> - <dt> - 7.3.2. <a href= - "config.html#SINGLE-THREADED">single-threaded</a> - </dt> - <dt> - 7.3.3. <a href="config.html#HOSTNAME">hostname</a> - </dt> - </dl> - </dd> - <dt> - 7.4. <a href="config.html#ACCESS-CONTROL">Access Control and - Security</a> - </dt> - <dd> - <dl> - <dt> - 7.4.1. <a href= - "config.html#LISTEN-ADDRESS">listen-address</a> - </dt> - <dt> - 7.4.2. <a href="config.html#TOGGLE">toggle</a> - </dt> - <dt> - 7.4.3. <a href= - "config.html#ENABLE-REMOTE-TOGGLE">enable-remote-toggle</a> - </dt> - <dt> - 7.4.4. <a href= - "config.html#ENABLE-REMOTE-HTTP-TOGGLE">enable-remote-http-toggle</a> - </dt> - <dt> - 7.4.5. <a href= - "config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</a> - </dt> - <dt> - 7.4.6. <a href= - "config.html#ENFORCE-BLOCKS">enforce-blocks</a> - </dt> - <dt> - 7.4.7. <a href="config.html#ACLS">ACLs: permit-access and - deny-access</a> - </dt> - <dt> - 7.4.8. <a href= - "config.html#BUFFER-LIMIT">buffer-limit</a> - </dt> - </dl> - </dd> - <dt> - 7.5. <a href="config.html#FORWARDING">Forwarding</a> - </dt> - <dd> - <dl> - <dt> - 7.5.1. <a href="config.html#FORWARD">forward</a> - </dt> - <dt> - 7.5.2. <a href="config.html#SOCKS">forward-socks4, - forward-socks4a and forward-socks5</a> - </dt> - <dt> - 7.5.3. <a href= - "config.html#ADVANCED-FORWARDING-EXAMPLES">Advanced - Forwarding Examples</a> - </dt> - <dt> - 7.5.4. <a href= - "config.html#FORWARDED-CONNECT-RETRIES">forwarded-connect-retries</a> - </dt> - </dl> - </dd> - <dt> - 7.6. <a href="config.html#MISC">Miscellaneous</a> - </dt> - <dd> - <dl> - <dt> - 7.6.1. <a href= - "config.html#ACCEPT-INTERCEPTED-REQUESTS">accept-intercepted-requests</a> - </dt> - <dt> - 7.6.2. <a href= - "config.html#ALLOW-CGI-REQUEST-CRUNCHING">allow-cgi-request-crunching</a> - </dt> - <dt> - 7.6.3. <a href= - "config.html#SPLIT-LARGE-FORMS">split-large-forms</a> - </dt> - <dt> - 7.6.4. <a href= - "config.html#KEEP-ALIVE-TIMEOUT">keep-alive-timeout</a> - </dt> - <dt> - 7.6.5. <a href= - "config.html#DEFAULT-SERVER-TIMEOUT">default-server-timeout</a> - </dt> - <dt> - 7.6.6. <a href= - "config.html#CONNECTION-SHARING">connection-sharing</a> - </dt> - <dt> - 7.6.7. <a href= - "config.html#SOCKET-TIMEOUT">socket-timeout</a> - </dt> - <dt> - 7.6.8. <a href= - "config.html#MAX-CLIENT-CONNECTIONS">max-client-connections</a> - </dt> - <dt> - 7.6.9. <a href= - "config.html#HANDLE-AS-EMPTY-DOC-RETURNS-OK">handle-as-empty-doc-returns-ok</a> - </dt> - <dt> - 7.6.10. <a href= - "config.html#ENABLE-COMPRESSION">enable-compression</a> - </dt> - <dt> - 7.6.11. <a href= - "config.html#COMPRESSION-LEVEL">compression-level</a> - </dt> - </dl> - </dd> - <dt> - 7.7. <a href="config.html#WINDOWS-GUI">Windows GUI - Options</a> - </dt> - </dl> - </dd> - <dt> - 8. <a href="actions-file.html">Actions Files</a> - </dt> - <dd> - <dl> - <dt> - 8.1. <a href="actions-file.html#AEN2724">Finding the Right - Mix</a> - </dt> - <dt> - 8.2. <a href="actions-file.html#AEN2731">How to Edit</a> - </dt> - <dt> - 8.3. <a href="actions-file.html#ACTIONS-APPLY">How Actions - are Applied to Requests</a> - </dt> - <dt> - 8.4. <a href="actions-file.html#AF-PATTERNS">Patterns</a> - </dt> - <dd> - <dl> - <dt> - 8.4.1. <a href="actions-file.html#AEN2843">The Domain - Pattern</a> - </dt> - <dt> - 8.4.2. <a href="actions-file.html#AEN2919">The Path - Pattern</a> - </dt> - <dt> - 8.4.3. <a href="actions-file.html#TAG-PATTERN">The Tag - Pattern</a> - </dt> - </dl> - </dd> - <dt> - 8.5. <a href="actions-file.html#ACTIONS">Actions</a> - </dt> - <dd> - <dl> - <dt> - 8.5.1. <a href= - "actions-file.html#ADD-HEADER">add-header</a> - </dt> - <dt> - 8.5.2. <a href="actions-file.html#BLOCK">block</a> - </dt> - <dt> - 8.5.3. <a href= - "actions-file.html#CHANGE-X-FORWARDED-FOR">change-x-forwarded-for</a> - </dt> - <dt> - 8.5.4. <a href= - "actions-file.html#CLIENT-HEADER-FILTER">client-header-filter</a> - </dt> - <dt> - 8.5.5. <a href= - "actions-file.html#CLIENT-HEADER-TAGGER">client-header-tagger</a> - </dt> - <dt> - 8.5.6. <a href= - "actions-file.html#CONTENT-TYPE-OVERWRITE">content-type-overwrite</a> - </dt> - <dt> - 8.5.7. <a href= - "actions-file.html#CRUNCH-CLIENT-HEADER">crunch-client-header</a> - </dt> - <dt> - 8.5.8. <a href= - "actions-file.html#CRUNCH-IF-NONE-MATCH">crunch-if-none-match</a> - </dt> - <dt> - 8.5.9. <a href= - "actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> - </dt> - <dt> - 8.5.10. <a href= - "actions-file.html#CRUNCH-SERVER-HEADER">crunch-server-header</a> - </dt> - <dt> - 8.5.11. <a href= - "actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a> - </dt> - <dt> - 8.5.12. <a href= - "actions-file.html#DEANIMATE-GIFS">deanimate-gifs</a> - </dt> - <dt> - 8.5.13. <a href= - "actions-file.html#DOWNGRADE-HTTP-VERSION">downgrade-http-version</a> - </dt> - <dt> - 8.5.14. <a href= - "actions-file.html#FAST-REDIRECTS">fast-redirects</a> - </dt> - <dt> - 8.5.15. <a href="actions-file.html#FILTER">filter</a> - </dt> - <dt> - 8.5.16. <a href= - "actions-file.html#FORCE-TEXT-MODE">force-text-mode</a> - </dt> - <dt> - 8.5.17. <a href= - "actions-file.html#FORWARD-OVERRIDE">forward-override</a> - </dt> - <dt> - 8.5.18. <a href= - "actions-file.html#HANDLE-AS-EMPTY-DOCUMENT">handle-as-empty-document</a> - </dt> - <dt> - 8.5.19. <a href= - "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a> - </dt> - <dt> - 8.5.20. <a href= - "actions-file.html#HIDE-ACCEPT-LANGUAGE">hide-accept-language</a> - </dt> - <dt> - 8.5.21. <a href= - "actions-file.html#HIDE-CONTENT-DISPOSITION">hide-content-disposition</a> - </dt> - <dt> - 8.5.22. <a href= - "actions-file.html#HIDE-IF-MODIFIED-SINCE">hide-if-modified-since</a> - </dt> - <dt> - 8.5.23. <a href= - "actions-file.html#HIDE-FROM-HEADER">hide-from-header</a> - </dt> - <dt> - 8.5.24. <a href= - "actions-file.html#HIDE-REFERRER">hide-referrer</a> - </dt> - <dt> - 8.5.25. <a href= - "actions-file.html#HIDE-USER-AGENT">hide-user-agent</a> - </dt> - <dt> - 8.5.26. <a href= - "actions-file.html#LIMIT-CONNECT">limit-connect</a> - </dt> - <dt> - 8.5.27. <a href= - "actions-file.html#PREVENT-COMPRESSION">prevent-compression</a> - </dt> - <dt> - 8.5.28. <a href= - "actions-file.html#OVERWRITE-LAST-MODIFIED">overwrite-last-modified</a> - </dt> - <dt> - 8.5.29. <a href="actions-file.html#REDIRECT">redirect</a> - </dt> - <dt> - 8.5.30. <a href= - "actions-file.html#SERVER-HEADER-FILTER">server-header-filter</a> - </dt> - <dt> - 8.5.31. <a href= - "actions-file.html#SERVER-HEADER-TAGGER">server-header-tagger</a> - </dt> - <dt> - 8.5.32. <a href= - "actions-file.html#SESSION-COOKIES-ONLY">session-cookies-only</a> - </dt> - <dt> - 8.5.33. <a href= - "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker</a> - </dt> - <dt> - 8.5.34. <a href="actions-file.html#AEN4549">Summary</a> - </dt> - </dl> - </dd> - <dt> - 8.6. <a href="actions-file.html#ALIASES">Aliases</a> - </dt> - <dt> - 8.7. <a href="actions-file.html#ACT-EXAMPLES">Actions Files - Tutorial</a> - </dt> - <dd> - <dl> - <dt> - 8.7.1. <a href= - "actions-file.html#AEN4613">match-all.action</a> - </dt> - <dt> - 8.7.2. <a href= - "actions-file.html#AEN4635">default.action</a> - </dt> - <dt> - 8.7.3. <a href= - "actions-file.html#AEN4748">user.action</a> - </dt> - </dl> - </dd> - </dl> - </dd> - <dt> - 9. <a href="filter-file.html">Filter Files</a> - </dt> - <dd> - <dl> - <dt> - 9.1. <a href="filter-file.html#AEN4903">Filter File - Tutorial</a> - </dt> - <dt> - 9.2. <a href="filter-file.html#PREDEFINED-FILTERS">The - Pre-defined Filters</a> - </dt> - </dl> - </dd> - <dt> - 10. <a href="templates.html">Privoxy's Template Files</a> - </dt> - <dt> - 11. <a href="contact.html">Contacting the Developers, Bug - Reporting and Feature Requests</a> - </dt> - <dd> - <dl> - <dt> - 11.1. <a href="contact.html#CONTACT-SUPPORT">Get Support</a> - </dt> - <dt> - 11.2. <a href="contact.html#REPORTING">Reporting Problems</a> - </dt> - <dd> - <dl> - <dt> - 11.2.1. <a href="contact.html#CONTACT-ADS">Reporting Ads - or Other Configuration Problems</a> - </dt> - <dt> - 11.2.2. <a href="contact.html#CONTACT-BUGS">Reporting - Bugs</a> - </dt> - </dl> - </dd> - <dt> - 11.3. <a href="contact.html#CONTACT-FEATURE">Request New - Features</a> - </dt> - <dt> - 11.4. <a href="contact.html#MAILING-LISTS">Mailing Lists</a> - </dt> - </dl> - </dd> - <dt> - 12. <a href="copyright.html">Privoxy Copyright, License and - History</a> - </dt> - <dd> - <dl> - <dt> - 12.1. <a href="copyright.html#AEN5383">License</a> - </dt> - <dt> - 12.2. <a href="copyright.html#HISTORY">History</a> - </dt> - <dt> - 12.3. <a href="copyright.html#AUTHORS">Authors</a> - </dt> - </dl> - </dd> - <dt> - 13. <a href="seealso.html">See Also</a> - </dt> - <dt> - 14. <a href="appendix.html">Appendix</a> - </dt> - <dd> - <dl> - <dt> - 14.1. <a href="appendix.html#REGEX">Regular Expressions</a> - </dt> - <dt> - 14.2. <a href="appendix.html#AEN5636">Privoxy's Internal - Pages</a> - </dt> - <dd> - <dl> - <dt> - 14.2.1. <a href= - "appendix.html#BOOKMARKLETS">Bookmarklets</a> - </dt> - </dl> - </dd> - <dt> - 14.3. <a href="appendix.html#CHAIN">Chain of Events</a> - </dt> - <dt> - 14.4. <a href="appendix.html#ACTIONSANAT">Troubleshooting: - Anatomy of an Action</a> - </dt> - </dl> - </dd> - </dl> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + hr.c2 {text-align: left} + dt.c1 {font-weight: bold} + </style> +</head> + +<body class="ARTICLE"> + <div class="ARTICLE"> + <div class="TITLEPAGE"> + <h1 class="TITLE"><a name="AEN2" id="AEN2">Privoxy 3.0.18 User + Manual</a></h1> + + <p class="PUBDATE"><sub><a href="copyright.html">Copyright</a> © + 2001-2011 by <a href="http://www.privoxy.org/" target="_top">Privoxy + Developers</a></sub><br></p> + + <p class="PUBDATE">$Id: user-manual.sgml,v 2.136 2011/10/14 16:53:10 + fabiankeil Exp $<br></p> + + <div class="ABSTRACT"> + <a name="AEN9" id="AEN9"></a> + + <p>The <i class="CITETITLE">Privoxy User Manual</i> gives users + information on how to install, configure and use <a href= + "http://www.privoxy.org/" target="_top">Privoxy</a>.</p> + + <p>Privoxy is a non-caching web proxy with advanced filtering + capabilities for enhancing privacy, modifying web page data and HTTP + headers, controlling access, and removing ads and other obnoxious + Internet junk. Privoxy has a flexible configuration and can be + customized to suit individual needs and tastes. It has application + for both stand-alone systems and multi-user networks.</p> + + <p>Privoxy is Free Software and licensed under the GNU GPLv2.</p> + + <p>Privoxy is an associated project of Software in the Public + Interest (SPI).</p> + + <p>Helping hands and donations are welcome:</p> + + <ul> + <li> + <p><a href="http://www.privoxy.org/faq/general.html#PARTICIPATE" + target= + "_top">http://www.privoxy.org/faq/general.html#PARTICIPATE</a></p> + </li> + + <li> + <p><a href="http://www.privoxy.org/faq/general.html#DONATE" + target= + "_top">http://www.privoxy.org/faq/general.html#DONATE</a></p> + </li> + </ul> + + <p>You can find the latest version of the <i class= + "CITETITLE">Privoxy User Manual</i> at <a href= + "http://www.privoxy.org/user-manual/" target= + "_top">http://www.privoxy.org/user-manual/</a>. Please see the + <a href="contact.html">Contact section</a> on how to contact the + developers.</p> </div> + <hr> </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c2"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - <a href="introduction.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Introduction - </td> - </tr> - </table> + + <div class="TOC"> + <dl> + <dt class="c1">Table of Contents</dt> + + <dt>1. <a href="introduction.html">Introduction</a></dt> + + <dd> + <dl> + <dt>1.1. <a href="introduction.html#FEATURES">Features</a></dt> + </dl> + </dd> + + <dt>2. <a href="installation.html">Installation</a></dt> + + <dd> + <dl> + <dt>2.1. <a href="installation.html#INSTALLATION-PACKAGES">Binary + Packages</a></dt> + + <dd> + <dl> + <dt>2.1.1. <a href= + "installation.html#INSTALLATION-PACK-RPM">Red Hat and Fedora + RPMs</a></dt> + + <dt>2.1.2. <a href= + "installation.html#INSTALLATION-DEB">Debian and + Ubuntu</a></dt> + + <dt>2.1.3. <a href= + "installation.html#INSTALLATION-PACK-WIN">Windows</a></dt> + + <dt>2.1.4. <a href= + "installation.html#INSTALLATION-PACK-BINTGZ">Solaris</a></dt> + + <dt>2.1.5. <a href= + "installation.html#INSTALLATION-OS2">OS/2</a></dt> + + <dt>2.1.6. <a href="installation.html#INSTALLATION-MAC">Mac + OS X</a></dt> + + <dt>2.1.7. <a href= + "installation.html#INSTALLATION-AMIGA">AmigaOS</a></dt> + + <dt>2.1.8. <a href= + "installation.html#INSTALLATION-TBZ">FreeBSD</a></dt> + + <dt>2.1.9. <a href= + "installation.html#INSTALLATTION-GENTOO">Gentoo</a></dt> + </dl> + </dd> + + <dt>2.2. <a href="installation.html#INSTALLATION-SOURCE">Building + from Source</a></dt> + + <dt>2.3. <a href= + "installation.html#INSTALLATION-KEEPUPDATED">Keeping your + Installation Up-to-Date</a></dt> + </dl> + </dd> + + <dt>3. <a href="whatsnew.html">What's New in this Release</a></dt> + + <dd> + <dl> + <dt>3.1. <a href="whatsnew.html#UPGRADERSNOTE">Note to + Upgraders</a></dt> + </dl> + </dd> + + <dt>4. <a href="quickstart.html">Quickstart to Using Privoxy</a></dt> + + <dd> + <dl> + <dt>4.1. <a href= + "quickstart.html#QUICKSTART-AD-BLOCKING">Quickstart to Ad + Blocking</a></dt> + </dl> + </dd> + + <dt>5. <a href="startup.html">Starting Privoxy</a></dt> + + <dd> + <dl> + <dt>5.1. <a href="startup.html#START-REDHAT">Red Hat and + Fedora</a></dt> + + <dt>5.2. <a href="startup.html#START-DEBIAN">Debian</a></dt> + + <dt>5.3. <a href="startup.html#START-WINDOWS">Windows</a></dt> + + <dt>5.4. <a href="startup.html#START-UNICES">Solaris, NetBSD, + FreeBSD, HP-UX and others</a></dt> + + <dt>5.5. <a href="startup.html#START-OS2">OS/2</a></dt> + + <dt>5.6. <a href="startup.html#START-MACOSX">Mac OS X</a></dt> + + <dt>5.7. <a href="startup.html#START-AMIGAOS">AmigaOS</a></dt> + + <dt>5.8. <a href="startup.html#START-GENTOO">Gentoo</a></dt> + + <dt>5.9. <a href="startup.html#CMDOPTIONS">Command Line + Options</a></dt> + </dl> + </dd> + + <dt>6. <a href="configuration.html">Privoxy Configuration</a></dt> + + <dd> + <dl> + <dt>6.1. <a href="configuration.html#AEN1074">Controlling Privoxy + with Your Web Browser</a></dt> + + <dt>6.2. <a href="configuration.html#CONFOVERVIEW">Configuration + Files Overview</a></dt> + </dl> + </dd> + + <dt>7. <a href="config.html">The Main Configuration File</a></dt> + + <dd> + <dl> + <dt>7.1. <a href="config.html#LOCAL-SET-UP">Local Set-up + Documentation</a></dt> + + <dd> + <dl> + <dt>7.1.1. <a href= + "config.html#USER-MANUAL">user-manual</a></dt> + + <dt>7.1.2. <a href= + "config.html#TRUST-INFO-URL">trust-info-url</a></dt> + + <dt>7.1.3. <a href= + "config.html#ADMIN-ADDRESS">admin-address</a></dt> + + <dt>7.1.4. <a href= + "config.html#PROXY-INFO-URL">proxy-info-url</a></dt> + </dl> + </dd> + + <dt>7.2. <a href="config.html#CONF-LOG-LOC">Configuration and Log + File Locations</a></dt> + + <dd> + <dl> + <dt>7.2.1. <a href="config.html#CONFDIR">confdir</a></dt> + + <dt>7.2.2. <a href="config.html#TEMPLDIR">templdir</a></dt> + + <dt>7.2.3. <a href="config.html#LOGDIR">logdir</a></dt> + + <dt>7.2.4. <a href= + "config.html#ACTIONSFILE">actionsfile</a></dt> + + <dt>7.2.5. <a href= + "config.html#FILTERFILE">filterfile</a></dt> + + <dt>7.2.6. <a href="config.html#LOGFILE">logfile</a></dt> + + <dt>7.2.7. <a href="config.html#TRUSTFILE">trustfile</a></dt> + </dl> + </dd> + + <dt>7.3. <a href="config.html#DEBUGGING">Debugging</a></dt> + + <dd> + <dl> + <dt>7.3.1. <a href="config.html#DEBUG">debug</a></dt> + + <dt>7.3.2. <a href= + "config.html#SINGLE-THREADED">single-threaded</a></dt> + + <dt>7.3.3. <a href="config.html#HOSTNAME">hostname</a></dt> + </dl> + </dd> + + <dt>7.4. <a href="config.html#ACCESS-CONTROL">Access Control and + Security</a></dt> + + <dd> + <dl> + <dt>7.4.1. <a href= + "config.html#LISTEN-ADDRESS">listen-address</a></dt> + + <dt>7.4.2. <a href="config.html#TOGGLE">toggle</a></dt> + + <dt>7.4.3. <a href= + "config.html#ENABLE-REMOTE-TOGGLE">enable-remote-toggle</a></dt> + + <dt>7.4.4. <a href= + "config.html#ENABLE-REMOTE-HTTP-TOGGLE">enable-remote-http-toggle</a></dt> + + <dt>7.4.5. <a href= + "config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</a></dt> + + <dt>7.4.6. <a href= + "config.html#ENFORCE-BLOCKS">enforce-blocks</a></dt> + + <dt>7.4.7. <a href="config.html#ACLS">ACLs: permit-access and + deny-access</a></dt> + + <dt>7.4.8. <a href= + "config.html#BUFFER-LIMIT">buffer-limit</a></dt> + </dl> + </dd> + + <dt>7.5. <a href="config.html#FORWARDING">Forwarding</a></dt> + + <dd> + <dl> + <dt>7.5.1. <a href="config.html#FORWARD">forward</a></dt> + + <dt>7.5.2. <a href="config.html#SOCKS">forward-socks4, + forward-socks4a and forward-socks5</a></dt> + + <dt>7.5.3. <a href= + "config.html#ADVANCED-FORWARDING-EXAMPLES">Advanced + Forwarding Examples</a></dt> + + <dt>7.5.4. <a href= + "config.html#FORWARDED-CONNECT-RETRIES">forwarded-connect-retries</a></dt> + </dl> + </dd> + + <dt>7.6. <a href="config.html#MISC">Miscellaneous</a></dt> + + <dd> + <dl> + <dt>7.6.1. <a href= + "config.html#ACCEPT-INTERCEPTED-REQUESTS">accept-intercepted-requests</a></dt> + + <dt>7.6.2. <a href= + "config.html#ALLOW-CGI-REQUEST-CRUNCHING">allow-cgi-request-crunching</a></dt> + + <dt>7.6.3. <a href= + "config.html#SPLIT-LARGE-FORMS">split-large-forms</a></dt> + + <dt>7.6.4. <a href= + "config.html#KEEP-ALIVE-TIMEOUT">keep-alive-timeout</a></dt> + + <dt>7.6.5. <a href= + "config.html#DEFAULT-SERVER-TIMEOUT">default-server-timeout</a></dt> + + <dt>7.6.6. <a href= + "config.html#CONNECTION-SHARING">connection-sharing</a></dt> + + <dt>7.6.7. <a href= + "config.html#SOCKET-TIMEOUT">socket-timeout</a></dt> + + <dt>7.6.8. <a href= + "config.html#MAX-CLIENT-CONNECTIONS">max-client-connections</a></dt> + + <dt>7.6.9. <a href= + "config.html#HANDLE-AS-EMPTY-DOC-RETURNS-OK">handle-as-empty-doc-returns-ok</a></dt> + + <dt>7.6.10. <a href= + "config.html#ENABLE-COMPRESSION">enable-compression</a></dt> + + <dt>7.6.11. <a href= + "config.html#COMPRESSION-LEVEL">compression-level</a></dt> + </dl> + </dd> + + <dt>7.7. <a href="config.html#WINDOWS-GUI">Windows GUI + Options</a></dt> + </dl> + </dd> + + <dt>8. <a href="actions-file.html">Actions Files</a></dt> + + <dd> + <dl> + <dt>8.1. <a href="actions-file.html#AEN2863">Finding the Right + Mix</a></dt> + + <dt>8.2. <a href="actions-file.html#AEN2870">How to Edit</a></dt> + + <dt>8.3. <a href="actions-file.html#ACTIONS-APPLY">How Actions + are Applied to Requests</a></dt> + + <dt>8.4. <a href= + "actions-file.html#AF-PATTERNS">Patterns</a></dt> + + <dd> + <dl> + <dt>8.4.1. <a href="actions-file.html#AEN2982">The Domain + Pattern</a></dt> + + <dt>8.4.2. <a href="actions-file.html#AEN3058">The Path + Pattern</a></dt> + + <dt>8.4.3. <a href="actions-file.html#TAG-PATTERN">The Tag + Pattern</a></dt> + </dl> + </dd> + + <dt>8.5. <a href="actions-file.html#ACTIONS">Actions</a></dt> + + <dd> + <dl> + <dt>8.5.1. <a href= + "actions-file.html#ADD-HEADER">add-header</a></dt> + + <dt>8.5.2. <a href="actions-file.html#BLOCK">block</a></dt> + + <dt>8.5.3. <a href= + "actions-file.html#CHANGE-X-FORWARDED-FOR">change-x-forwarded-for</a></dt> + + <dt>8.5.4. <a href= + "actions-file.html#CLIENT-HEADER-FILTER">client-header-filter</a></dt> + + <dt>8.5.5. <a href= + "actions-file.html#CLIENT-HEADER-TAGGER">client-header-tagger</a></dt> + + <dt>8.5.6. <a href= + "actions-file.html#CONTENT-TYPE-OVERWRITE">content-type-overwrite</a></dt> + + <dt>8.5.7. <a href= + "actions-file.html#CRUNCH-CLIENT-HEADER">crunch-client-header</a></dt> + + <dt>8.5.8. <a href= + "actions-file.html#CRUNCH-IF-NONE-MATCH">crunch-if-none-match</a></dt> + + <dt>8.5.9. <a href= + "actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a></dt> + + <dt>8.5.10. <a href= + "actions-file.html#CRUNCH-SERVER-HEADER">crunch-server-header</a></dt> + + <dt>8.5.11. <a href= + "actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a></dt> + + <dt>8.5.12. <a href= + "actions-file.html#DEANIMATE-GIFS">deanimate-gifs</a></dt> + + <dt>8.5.13. <a href= + "actions-file.html#DOWNGRADE-HTTP-VERSION">downgrade-http-version</a></dt> + + <dt>8.5.14. <a href= + "actions-file.html#FAST-REDIRECTS">fast-redirects</a></dt> + + <dt>8.5.15. <a href= + "actions-file.html#FILTER">filter</a></dt> + + <dt>8.5.16. <a href= + "actions-file.html#FORCE-TEXT-MODE">force-text-mode</a></dt> + + <dt>8.5.17. <a href= + "actions-file.html#FORWARD-OVERRIDE">forward-override</a></dt> + + <dt>8.5.18. <a href= + "actions-file.html#HANDLE-AS-EMPTY-DOCUMENT">handle-as-empty-document</a></dt> + + <dt>8.5.19. <a href= + "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></dt> + + <dt>8.5.20. <a href= + "actions-file.html#HIDE-ACCEPT-LANGUAGE">hide-accept-language</a></dt> + + <dt>8.5.21. <a href= + "actions-file.html#HIDE-CONTENT-DISPOSITION">hide-content-disposition</a></dt> + + <dt>8.5.22. <a href= + "actions-file.html#HIDE-IF-MODIFIED-SINCE">hide-if-modified-since</a></dt> + + <dt>8.5.23. <a href= + "actions-file.html#HIDE-FROM-HEADER">hide-from-header</a></dt> + + <dt>8.5.24. <a href= + "actions-file.html#HIDE-REFERRER">hide-referrer</a></dt> + + <dt>8.5.25. <a href= + "actions-file.html#HIDE-USER-AGENT">hide-user-agent</a></dt> + + <dt>8.5.26. <a href= + "actions-file.html#LIMIT-CONNECT">limit-connect</a></dt> + + <dt>8.5.27. <a href= + "actions-file.html#PREVENT-COMPRESSION">prevent-compression</a></dt> + + <dt>8.5.28. <a href= + "actions-file.html#OVERWRITE-LAST-MODIFIED">overwrite-last-modified</a></dt> + + <dt>8.5.29. <a href= + "actions-file.html#REDIRECT">redirect</a></dt> + + <dt>8.5.30. <a href= + "actions-file.html#SERVER-HEADER-FILTER">server-header-filter</a></dt> + + <dt>8.5.31. <a href= + "actions-file.html#SERVER-HEADER-TAGGER">server-header-tagger</a></dt> + + <dt>8.5.32. <a href= + "actions-file.html#SESSION-COOKIES-ONLY">session-cookies-only</a></dt> + + <dt>8.5.33. <a href= + "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker</a></dt> + + <dt>8.5.34. <a href= + "actions-file.html#AEN4687">Summary</a></dt> + </dl> + </dd> + + <dt>8.6. <a href="actions-file.html#ALIASES">Aliases</a></dt> + + <dt>8.7. <a href="actions-file.html#ACT-EXAMPLES">Actions Files + Tutorial</a></dt> + + <dd> + <dl> + <dt>8.7.1. <a href= + "actions-file.html#AEN4751">match-all.action</a></dt> + + <dt>8.7.2. <a href= + "actions-file.html#AEN4773">default.action</a></dt> + + <dt>8.7.3. <a href= + "actions-file.html#AEN4886">user.action</a></dt> + </dl> + </dd> + </dl> + </dd> + + <dt>9. <a href="filter-file.html">Filter Files</a></dt> + + <dd> + <dl> + <dt>9.1. <a href="filter-file.html#AEN5041">Filter File + Tutorial</a></dt> + + <dt>9.2. <a href="filter-file.html#PREDEFINED-FILTERS">The + Pre-defined Filters</a></dt> + </dl> + </dd> + + <dt>10. <a href="templates.html">Privoxy's Template Files</a></dt> + + <dt>11. <a href="contact.html">Contacting the Developers, Bug + Reporting and Feature Requests</a></dt> + + <dd> + <dl> + <dt>11.1. <a href="contact.html#CONTACT-SUPPORT">Get + Support</a></dt> + + <dt>11.2. <a href="contact.html#REPORTING">Reporting + Problems</a></dt> + + <dd> + <dl> + <dt>11.2.1. <a href="contact.html#CONTACT-ADS">Reporting Ads + or Other Configuration Problems</a></dt> + + <dt>11.2.2. <a href="contact.html#CONTACT-BUGS">Reporting + Bugs</a></dt> + </dl> + </dd> + + <dt>11.3. <a href="contact.html#CONTACT-FEATURE">Request New + Features</a></dt> + + <dt>11.4. <a href="contact.html#MAILING-LISTS">Mailing + Lists</a></dt> + </dl> + </dd> + + <dt>12. <a href="copyright.html">Privoxy Copyright, License and + History</a></dt> + + <dd> + <dl> + <dt>12.1. <a href="copyright.html#AEN5525">License</a></dt> + + <dt>12.2. <a href="copyright.html#HISTORY">History</a></dt> + + <dt>12.3. <a href="copyright.html#AUTHORS">Authors</a></dt> + </dl> + </dd> + + <dt>13. <a href="seealso.html">See Also</a></dt> + + <dt>14. <a href="appendix.html">Appendix</a></dt> + + <dd> + <dl> + <dt>14.1. <a href="appendix.html#REGEX">Regular + Expressions</a></dt> + + <dt>14.2. <a href="appendix.html#AEN5778">Privoxy's Internal + Pages</a></dt> + + <dd> + <dl> + <dt>14.2.1. <a href= + "appendix.html#BOOKMARKLETS">Bookmarklets</a></dt> + </dl> + </dd> + + <dt>14.3. <a href="appendix.html#CHAIN">Chain of Events</a></dt> + + <dt>14.4. <a href="appendix.html#ACTIONSANAT">Troubleshooting: + Anatomy of an Action</a></dt> + </dl> + </dd> + </dl> </div> - </body> -</html> + </div> + + <div class="NAVFOOTER"> + <hr class="c2" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"> </td> + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top"><a href= + "introduction.html" accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top"> </td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Introduction</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/user-manual/installation.html b/doc/webserver/user-manual/installation.html index b57ae844..a8c75bc9 100644 --- a/doc/webserver/user-manual/installation.html +++ b/doc/webserver/user-manual/installation.html @@ -1,419 +1,368 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Installation - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> - <link rel="PREVIOUS" title="Introduction" href="introduction.html"> - <link rel="NEXT" title="What's New in this Release" href="whatsnew.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <link rel="STYLESHEET" type="text/css" href="p_doc.css"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Installation</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> + <link rel="PREVIOUS" title="Introduction" href="introduction.html"> + <link rel="NEXT" title="What's New in this Release" href="whatsnew.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <link rel="STYLESHEET" type="text/css" href="p_doc.css"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy 3.0.18 User Manual - </th> - </tr> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + table.c4 {background-color: #E0E0E0} + tt.c3 {font-style: italic} + span.c2 {font-style: italic} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy 3.0.18 User Manual</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href= + "introduction.html" accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href="whatsnew.html" + accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="INSTALLATION" id="INSTALLATION">2. + Installation</a></h1> + + <p><span class="APPLICATION">Privoxy</span> is available both in + convenient pre-compiled packages for a wide range of operating systems, + and as raw source code. For most users, we recommend using the packages, + which can be downloaded from our <a href= + "http://sourceforge.net/projects/ijbswa/" target="_top">Privoxy Project + Page</a>.</p> + + <p>Note: On some platforms, the installer may remove previously installed + versions, if found. (See below for your platform). In any case + <span class="emphasis EMPHASIS c2">be sure to backup your old + configuration if it is valuable to you.</span> See the <a href= + "whatsnew.html#UPGRADERSNOTE">note to upgraders</a> section below.</p> + + <div class="SECT2"> + <h2 class="SECT2"><a name="INSTALLATION-PACKAGES" id= + "INSTALLATION-PACKAGES">2.1. Binary Packages</a></h2> + + <p>How to install the binary packages depends on your operating + system:</p> + + <div class="SECT3"> + <h3 class="SECT3"><a name="INSTALLATION-PACK-RPM" id= + "INSTALLATION-PACK-RPM">2.1.1. Red Hat and Fedora RPMs</a></h3> + + <p>RPMs can be installed with <tt class="LITERAL">rpm -Uvh + privoxy-3.0.18-1.rpm</tt>, and will use <tt class= + "FILENAME">/etc/privoxy</tt> for the location of configuration + files.</p> + + <p>Note that on Red Hat, <span class="APPLICATION">Privoxy</span> + will <span class="emphasis EMPHASIS c2">not</span> be automatically + started on system boot. You will need to enable that using <b class= + "COMMAND">chkconfig</b>, <b class="COMMAND">ntsysv</b>, or similar + methods.</p> + + <p>If you have problems with failed dependencies, try rebuilding the + SRC RPM: <tt class="LITERAL">rpm --rebuild + privoxy-3.0.18-1.src.rpm</tt>. This will use your locally installed + libraries and RPM version.</p> + + <p>Also note that if you have a <span class= + "APPLICATION">Junkbuster</span> RPM installed on your system, you + need to remove it first, because the packages conflict. Otherwise, + RPM will try to remove <span class="APPLICATION">Junkbuster</span> + automatically if found, before installing <span class= + "APPLICATION">Privoxy</span>.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="INSTALLATION-DEB" id= + "INSTALLATION-DEB">2.1.2. Debian and Ubuntu</a></h3> + + <p>DEBs can be installed with <tt class="LITERAL">apt-get install + privoxy</tt>, and will use <tt class="FILENAME">/etc/privoxy</tt> for + the location of configuration files.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="INSTALLATION-PACK-WIN" id= + "INSTALLATION-PACK-WIN">2.1.3. Windows</a></h3> + + <p>Just double-click the installer, which will guide you through the + installation process. You will find the configuration files in the + same directory as you installed <span class= + "APPLICATION">Privoxy</span> in.</p> + + <p>Version 3.0.5 beta introduced full <span class= + "APPLICATION">Windows</span> service functionality. On Windows only, + the <span class="APPLICATION">Privoxy</span> program has two new + command line arguments to install and uninstall <span class= + "APPLICATION">Privoxy</span> as a <span class= + "emphasis EMPHASIS c2">service</span>.</p> + + <div class="VARIABLELIST"> + <dl> + <dt>Arguments:</dt> + + <dd> + <p><tt class="REPLACEABLE c3">--install</tt>[:<tt class= + "REPLACEABLE c3">service_name</tt>]</p> + + <p><tt class="REPLACEABLE c3">--uninstall</tt>[:<tt class= + "REPLACEABLE c3">service_name</tt>]</p> + </dd> + </dl> + </div> + + <p>After invoking <span class="APPLICATION">Privoxy</span> with + <b class="COMMAND">--install</b>, you will need to bring up the + <span class="APPLICATION">Windows</span> service console to assign + the user you want <span class="APPLICATION">Privoxy</span> to run + under, and whether or not you want it to run whenever the system + starts. You can start the <span class="APPLICATION">Windows</span> + services console with the following command: <b class= + "COMMAND">services.msc</b>. If you do not take the manual step of + modifying <span class="APPLICATION">Privoxy's</span> service + settings, it will not start. Note too that you will need to give + Privoxy a user account that actually exists, or it will not be + permitted to write to its log and configuration files.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="INSTALLATION-PACK-BINTGZ" id= + "INSTALLATION-PACK-BINTGZ">2.1.4. Solaris</a></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.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="INSTALLATION-OS2" id= + "INSTALLATION-OS2">2.1.5. OS/2</a></h3> + + <p>First, make sure that no previous installations of <span class= + "APPLICATION">Junkbuster</span> and / or <span class= + "APPLICATION">Privoxy</span> are left on your system. Check that no + <span class="APPLICATION">Junkbuster</span> or <span class= + "APPLICATION">Privoxy</span> objects are in your startup folder.</p> + + <p>Then, just double-click the WarpIN self-installing archive, which + will guide you through the installation process. A shadow of the + <span class="APPLICATION">Privoxy</span> executable will be placed in + your startup folder so it will start automatically whenever OS/2 + starts.</p> + + <p>The directory you choose to install <span class= + "APPLICATION">Privoxy</span> into will contain all of the + configuration files.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="INSTALLATION-MAC" id= + "INSTALLATION-MAC">2.1.6. Mac OS X</a></h3> + + <p>Unzip the downloaded file (you can either double-click on the zip + file icon from the Finder, or from the desktop if you downloaded it + there). Then, double-click on the package installer icon and follow + the installation process.</p> + + <p>The privoxy service will automatically start after a successful + installation (in addition to every time your computer starts up). To + prevent the privoxy service from automatically starting when your + computer starts up, remove or rename the folder named <tt class= + "LITERAL">/Library/StartupItems/Privoxy</tt>.</p> + + <p>To manually start or stop the privoxy service, use the Privoxy + Utility for Mac OS X. This application controls the privoxy service + (e.g. starting and stopping the service as well as uninstalling the + software).</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="INSTALLATION-AMIGA" id= + "INSTALLATION-AMIGA">2.1.7. AmigaOS</a></h3> + + <p>Copy and then unpack the <tt class="FILENAME">lha</tt> archive to + a suitable location. All necessary files will be installed into + <span class="APPLICATION">Privoxy</span> directory, including all + configuration and log files. To uninstall, just remove this + directory.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="INSTALLATION-TBZ" id= + "INSTALLATION-TBZ">2.1.8. FreeBSD</a></h3> + + <p>Privoxy is part of FreeBSD's Ports Collection, you can build and + install it with <tt class="LITERAL">cd /usr/ports/www/privoxy; make + install clean</tt>.</p> + + <p>If you don't use the ports, you can fetch and install the package + with <tt class="LITERAL">pkg_add -r privoxy</tt>.</p> + + <p>The port skeleton and the package can also be downloaded from the + <a href= + "https://sourceforge.net/project/showfiles.php?group_id=11118" + target="_top">File Release Page</a>, but there's no reason to use + them unless you're interested in the beta releases which are only + available there.</p> + </div> + + <div class="SECT3"> + <h3 class="SECT3"><a name="INSTALLATTION-GENTOO" id= + "INSTALLATTION-GENTOO">2.1.9. Gentoo</a></h3> + + <p>Gentoo source packages (Ebuilds) for <span class= + "APPLICATION">Privoxy</span> are contained in the Gentoo Portage Tree + (they are not on the download page, but there is a Gentoo section, + where you can see when a new <span class="APPLICATION">Privoxy</span> + Version is added to the Portage Tree).</p> + + <p>Before installing <span class="APPLICATION">Privoxy</span> under + Gentoo just do first <tt class="LITERAL">emerge --sync</tt> to get + the latest changes from the Portage tree. With <tt class= + "LITERAL">emerge privoxy</tt> you install the latest version.</p> + + <p>Configuration files are in <tt class="FILENAME">/etc/privoxy</tt>, + the documentation is in <tt class= + "FILENAME">/usr/share/doc/privoxy-3.0.18</tt> and the Log directory + is in <tt class="FILENAME">/var/log/privoxy</tt>.</p> + </div> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="INSTALLATION-SOURCE" id= + "INSTALLATION-SOURCE">2.2. Building from Source</a></h2> + + <p>The most convenient way to obtain the <span class= + "APPLICATION">Privoxy</span> sources is to download the source tarball + from our <a href= + "http://sourceforge.net/project/showfiles.php?group_id=11118&package_id=10571" + target="_top">project download page</a>.</p> + + <p>If you like to live on the bleeding edge and are not afraid of using + possibly unstable development versions, you can check out the + up-to-the-minute version directly from <a href= + "http://sourceforge.net/cvs/?group_id=11118" target="_top">the CVS + repository</a>.</p> + + <p>To build <span class="APPLICATION">Privoxy</span> from source, + <a href="http://www.gnu.org/software/autoconf/autoconf.html" target= + "_top">autoconf</a>, <a href= + "http://www.gnu.org/software/make/make.html" target="_top">GNU make + (gmake)</a>, and, of course, a C compiler like <a href= + "http://www.gnu.org/software/gcc/gcc.html" target="_top">gcc</a> are + required.</p> + + <p>When building from a source tarball, first unpack the source:</p> + + <table class="c4" border="0" width="100%"> <tr> - <td width="10%" align="left" valign="bottom"> - <a href="introduction.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="whatsnew.html" accesskey="N">Next</a> + <td> + <pre class="SCREEN"> + tar xzvf privoxy-3.0.18-stable-src.tar.gz + cd privoxy-3.0.18-stable +</pre> </td> </tr> </table> - <hr width="100%" class="c1"> - </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="INSTALLATION">2. Installation</a> - </h1> - <p> - <span class="APPLICATION">Privoxy</span> is available both in - convenient pre-compiled packages for a wide range of operating - systems, and as raw source code. For most users, we recommend using - the packages, which can be downloaded from our <a href= - "http://sourceforge.net/projects/ijbswa/" target="_top">Privoxy - Project Page</a>. - </p> - <p> - Note: On some platforms, the installer may remove previously - installed versions, if found. (See below for your platform). In any - case <span class="emphasis"><i class="EMPHASIS">be sure to backup - your old configuration if it is valuable to you.</i></span> See the - <a href="whatsnew.html#UPGRADERSNOTE">note to upgraders</a> section - below. - </p> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="INSTALLATION-PACKAGES">2.1. Binary Packages</a> - </h2> - <p> - How to install the binary packages depends on your operating - system: - </p> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="INSTALLATION-PACK-RPM">2.1.1. Red Hat and Fedora - RPMs</a> - </h3> - <p> - RPMs can be installed with <tt class="LITERAL">rpm -Uvh - privoxy-3.0.18-1.rpm</tt>, and will use <tt class= - "FILENAME">/etc/privoxy</tt> for the location of configuration - files. - </p> - <p> - Note that on Red Hat, <span class="APPLICATION">Privoxy</span> - will <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">chkconfig</b>, <b class= - "COMMAND">ntsysv</b>, or similar methods. - </p> - <p> - If you have problems with failed dependencies, try rebuilding the - SRC RPM: <tt class="LITERAL">rpm --rebuild - privoxy-3.0.18-1.src.rpm</tt>. This will use your locally - installed libraries and RPM version. - </p> - <p> - Also note that if you have a <span class= - "APPLICATION">Junkbuster</span> RPM installed on your system, you - need to remove it first, because the packages conflict. - Otherwise, RPM will try to remove <span class= - "APPLICATION">Junkbuster</span> automatically if found, before - installing <span class="APPLICATION">Privoxy</span>. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="INSTALLATION-DEB">2.1.2. Debian and Ubuntu</a> - </h3> - <p> - DEBs can be installed with <tt class="LITERAL">apt-get install - privoxy</tt>, and will use <tt class="FILENAME">/etc/privoxy</tt> - for the location of configuration files. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="INSTALLATION-PACK-WIN">2.1.3. Windows</a> - </h3> - <p> - Just double-click the installer, which will guide you through the - installation process. You will find the configuration files in - the same directory as you installed <span class= - "APPLICATION">Privoxy</span> in. - </p> - <p> - Version 3.0.5 beta introduced full <span class= - "APPLICATION">Windows</span> service functionality. On Windows - only, the <span class="APPLICATION">Privoxy</span> program has - two new command line arguments to install and uninstall <span - class="APPLICATION">Privoxy</span> as a <span class="emphasis"><i - class="EMPHASIS">service</i></span>. - </p> - <div class="VARIABLELIST"> - <dl> - <dt> - Arguments: - </dt> - <dd> - <p> - <tt class="REPLACEABLE"><i>--install</i></tt>[:<tt class= - "REPLACEABLE"><i>service_name</i></tt>] - </p> - <p> - <tt class="REPLACEABLE"><i>--uninstall</i></tt>[:<tt class= - "REPLACEABLE"><i>service_name</i></tt>] - </p> - </dd> - </dl> - </div> - <p> - After invoking <span class="APPLICATION">Privoxy</span> with <b - class="COMMAND">--install</b>, you will need to bring up the - <span class="APPLICATION">Windows</span> service console to - assign the user you want <span class="APPLICATION">Privoxy</span> - to run under, and whether or not you want it to run whenever the - system starts. You can start the <span class= - "APPLICATION">Windows</span> services console with the following - command: <b class="COMMAND">services.msc</b>. If you do not take - the manual step of modifying <span class= - "APPLICATION">Privoxy's</span> service settings, it will not - start. Note too that you will need to give Privoxy a user account - that actually exists, or it will not be permitted to write to its - log and configuration files. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="INSTALLATION-PACK-BINTGZ">2.1.4. Solaris</a> - </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. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="INSTALLATION-OS2">2.1.5. OS/2</a> - </h3> - <p> - First, make sure that no previous installations of <span class= - "APPLICATION">Junkbuster</span> and / or <span class= - "APPLICATION">Privoxy</span> are left on your system. Check that - no <span class="APPLICATION">Junkbuster</span> or <span class= - "APPLICATION">Privoxy</span> objects are in your startup - folder. - </p> - <p> - Then, just double-click the WarpIN self-installing archive, which - will guide you through the installation process. A shadow of the - <span class="APPLICATION">Privoxy</span> executable will be - placed in your startup folder so it will start automatically - whenever OS/2 starts. - </p> - <p> - The directory you choose to install <span class= - "APPLICATION">Privoxy</span> into will contain all of the - configuration files. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="INSTALLATION-MAC">2.1.6. Mac OS X</a> - </h3> - <p> - Unzip the downloaded file (you can either double-click on the zip - file icon from the Finder, or from the desktop if you downloaded - it there). Then, double-click on the package installer icon and - follow the installation process. - </p> - <p> - The privoxy service will automatically start after a successful - installation (in addition to every time your computer starts up). - To prevent the privoxy service from automatically starting when - your computer starts up, remove or rename the folder named <tt - class="LITERAL">/Library/StartupItems/Privoxy</tt>. - </p> - <p> - To manually start or stop the privoxy service, use the Privoxy - Utility for Mac OS X. This application controls the privoxy - service (e.g. starting and stopping the service as well as - uninstalling the software). - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="INSTALLATION-AMIGA">2.1.7. AmigaOS</a> - </h3> - <p> - Copy and then unpack the <tt class="FILENAME">lha</tt> archive to - a suitable location. All necessary files will be installed into - <span class="APPLICATION">Privoxy</span> directory, including all - configuration and log files. To uninstall, just remove this - directory. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="INSTALLATION-TBZ">2.1.8. FreeBSD</a> - </h3> - <p> - Privoxy is part of FreeBSD's Ports Collection, you can build and - install it with <tt class="LITERAL">cd /usr/ports/www/privoxy; - make install clean</tt>. - </p> - <p> - If you don't use the ports, you can fetch and install the package - with <tt class="LITERAL">pkg_add -r privoxy</tt>. - </p> - <p> - The port skeleton and the package can also be downloaded from the - <a href= - "https://sourceforge.net/project/showfiles.php?group_id=11118" - target="_top">File Release Page</a>, but there's no reason to use - them unless you're interested in the beta releases which are only - available there. - </p> - </div> - <div class="SECT3"> - <h3 class="SECT3"> - <a name="INSTALLATTION-GENTOO">2.1.9. Gentoo</a> - </h3> - <p> - Gentoo source packages (Ebuilds) for <span class= - "APPLICATION">Privoxy</span> are contained in the Gentoo Portage - Tree (they are not on the download page, but there is a Gentoo - section, where you can see when a new <span class= - "APPLICATION">Privoxy</span> Version is added to the Portage - Tree). - </p> - <p> - Before installing <span class="APPLICATION">Privoxy</span> under - Gentoo just do first <tt class="LITERAL">emerge --sync</tt> to - get the latest changes from the Portage tree. With <tt class= - "LITERAL">emerge privoxy</tt> you install the latest version. - </p> - <p> - Configuration files are in <tt class= - "FILENAME">/etc/privoxy</tt>, the documentation is in <tt class= - "FILENAME">/usr/share/doc/privoxy-3.0.18</tt> and the Log - directory is in <tt class="FILENAME">/var/log/privoxy</tt>. - </p> - </div> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="INSTALLATION-SOURCE">2.2. Building from Source</a> - </h2> - <p> - The most convenient way to obtain the <span class= - "APPLICATION">Privoxy</span> sources is to download the source - tarball from our <a href= - "http://sourceforge.net/project/showfiles.php?group_id=11118&package_id=10571" - target="_top">project download page</a>. - </p> - <p> - If you like to live on the bleeding edge and are not afraid of - using possibly unstable development versions, you can check out the - up-to-the-minute version directly from <a href= - "http://sourceforge.net/cvs/?group_id=11118" target="_top">the CVS - repository</a>. - </p> - <p> - To build <span class="APPLICATION">Privoxy</span> from source, <a - href="http://www.gnu.org/software/autoconf/autoconf.html" target= - "_top">autoconf</a>, <a href= - "http://www.gnu.org/software/make/make.html" target="_top">GNU make - (gmake)</a>, and, of course, a C compiler like <a href= - "http://www.gnu.org/software/gcc/gcc.html" target="_top">gcc</a> - are required. - </p> - <p> - When building from a source tarball, first unpack the source: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> - tar xzvf privoxy-3.0.18-beta-src.tar.gz - cd privoxy-3.0.18-beta -</pre> - </td> - </tr> - </table> - - <p> - For retrieving the current CVS sources, you'll need a CVS client - installed. Note that sources from CVS are typically development - quality, and may not be stable, or well tested. To download CVS - source, check the Sourceforge documentation, which might give - commands like: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + + <p>For retrieving the current CVS sources, you'll need a CVS client + installed. Note that sources from CVS are typically development + quality, and may not be stable, or well tested. To download CVS source, + check the Sourceforge documentation, which might give commands + like:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> cvs -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa login cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co current cd current </pre> - </td> - </tr> - </table> - - <p> - This will create a directory named <tt class= - "FILENAME">current/</tt>, which will contain the source tree. - </p> - <p> - You can also check out any <span class="APPLICATION">Privoxy</span> - <span class="QUOTE">"branch"</span>, just exchange the <span class= - "APPLICATION">current</span> name with the wanted branch name - (Example: v_3_0_branch for the 3.0 cvs tree). - </p> - <p> - It is also strongly recommended to not run <span class= - "APPLICATION">Privoxy</span> as root. You should - configure/install/run <span class="APPLICATION">Privoxy</span> as - an unprivileged user, preferably by creating a <span class= - "QUOTE">"privoxy"</span> user and group just for this purpose. See - your local documentation for the correct command line to do add new - users and groups (something like <b class="COMMAND">adduser</b>, - but the command syntax may vary from platform to platform). - </p> - <p> - <tt class="FILENAME">/etc/passwd</tt> might then look like: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>This will create a directory named <tt class= + "FILENAME">current/</tt>, which will contain the source tree.</p> + + <p>You can also check out any <span class="APPLICATION">Privoxy</span> + <span class="QUOTE">"branch"</span>, just exchange the <span class= + "APPLICATION">current</span> name with the wanted branch name (Example: + v_3_0_branch for the 3.0 cvs tree).</p> + + <p>It is also strongly recommended to not run <span class= + "APPLICATION">Privoxy</span> as root. You should configure/install/run + <span class="APPLICATION">Privoxy</span> as an unprivileged user, + preferably by creating a <span class="QUOTE">"privoxy"</span> user and + group just for this purpose. See your local documentation for the + correct command line to do add new users and groups (something like + <b class="COMMAND">adduser</b>, but the command syntax may vary from + platform to platform).</p> + + <p><tt class="FILENAME">/etc/passwd</tt> might then look like:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> privoxy:*:7777:7777:privoxy proxy:/no/home:/no/shell </pre> - </td> - </tr> - </table> - - <p> - And then <tt class="FILENAME">/etc/group</tt>, like: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>And then <tt class="FILENAME">/etc/group</tt>, like:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> privoxy:*:7777: </pre> - </td> - </tr> - </table> - - <p> - Some binary packages may do this for you. - </p> - <p> - Then, to build from either unpacked tarball or CVS source: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>Some binary packages may do this for you.</p> + + <p>Then, to build from either unpacked tarball or CVS source:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> autoheader autoconf ./configure # (--help to see options) @@ -422,225 +371,193 @@ Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> make -n install # (to see where all the files will go) make -s install # (to really install, -s to silence output) </pre> - </td> - </tr> - </table> - - <p> - Using GNU <b class="COMMAND">make</b>, you can have the first four - steps automatically done for you by just typing: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>Using GNU <b class="COMMAND">make</b>, you can have the first four + steps automatically done for you by just typing:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> make </pre> - </td> - </tr> - </table> - - <p> - in the freshly downloaded or unpacked source directory. - </p> - <p> - To build an executable with security enhanced features so that - users cannot easily bypass the proxy (e.g. <span class="QUOTE">"Go - There Anyway"</span>), or alter their own configurations, <b class= - "COMMAND">configure</b> like this: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>in the freshly downloaded or unpacked source directory.</p> + + <p>To build an executable with security enhanced features so that users + cannot easily bypass the proxy (e.g. <span class="QUOTE">"Go There + Anyway"</span>), or alter their own configurations, <b class= + "COMMAND">configure</b> like this:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> ./configure --disable-toggle --disable-editor --disable-force </pre> - </td> - </tr> - </table> - - <p> - Then build as above. In Privoxy 3.0.7 and later, all of these - options can also be disabled through the configuration file. - </p> - <p> - <span class="emphasis"><i class="EMPHASIS">WARNING:</i></span> If - installing as root, the install will fail unless a non-root user or - group is specified, or a <tt class="LITERAL">privoxy</tt> user and - group already exist on the system. If a non-root user is specified, - and no group, then the installation will try to also use a group of - the same name as <span class="QUOTE">"user"</span>. If a group is - specified (and no user), then the support files will be installed - as writable by that group, and owned by the user running the - installation. - </p> - <p> - <b class="COMMAND">configure</b> accepts <tt class= - "LITERAL">--with-user</tt> and <tt class= - "LITERAL">--with-group</tt> options for setting user and group - ownership of the configuration files (which need to be writable by - the daemon). The specified <span class="emphasis"><i class= - "EMPHASIS">user must already exist</i></span>. When starting <span - class="APPLICATION">Privoxy</span>, it must be run as this same - user to insure write access to configuration and log files! - </p> - <p> - Alternately, you can specify <tt class="LITERAL">user</tt> and <tt - class="LITERAL">group</tt> on the <b class="COMMAND">make</b> - command line, but be sure both already exist: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> - make -s install USER=privoxy GROUP=privoxy -</pre> - </td> - </tr> - </table> - - <p> - The default installation path for <b class="COMMAND">make - install</b> is <tt class="FILENAME">/usr/local</tt>. This may of - course be customized with the various <b class= - "COMMAND">./configure</b> path options. If you are doing an install - to anywhere besides <tt class="FILENAME">/usr/local</tt>, be sure - to set the appropriate paths with the correct configure options (<b - class="COMMAND">./configure --help</b>). Non-privileged users must - of course have write access permissions to wherever the target - installation is going. - </p> - <p> - If you do install to <tt class="FILENAME">/usr/local</tt>, the - install will use <tt class= - "LITERAL">sysconfdir=$prefix/etc/privoxy</tt> by default. All other - destinations, and the direct usage of <tt class= - "LITERAL">--sysconfdir</tt> flag behave like normal, i.e. will not - add the extra <tt class="FILENAME">privoxy</tt> directory. This is - for a safer install, as there may already exist another program - that uses a file with the <span class="QUOTE">"config"</span> name, - and thus makes <tt class="FILENAME">/usr/local/etc</tt> cleaner. - </p> - <p> - If installing to <tt class="FILENAME">/usr/local</tt>, the - documentation will go by default to <tt class= - "FILENAME">$prefix/share/doc</tt>. But if this directory doesn't - exist, it will then try <tt class="FILENAME">$prefix/doc</tt> and - install there before creating a new <tt class= - "FILENAME">$prefix/share/doc</tt> just for <span class= - "APPLICATION">Privoxy</span>. - </p> - <p> - Again, if the installs goes to <tt class= - "FILENAME">/usr/local</tt>, the <tt class= - "LITERAL">localstatedir</tt> (ie: <tt class="FILENAME">var/</tt>) - will default to <tt class="FILENAME">/var</tt> instead of <tt - class="LITERAL">$prefix/var</tt> so the logs will go to <tt class= - "FILENAME">/var/log/privoxy/</tt>, and the pid file will be created - in <tt class="FILENAME">/var/run/privoxy.pid</tt>. - </p> - <p> - <b class="COMMAND">make install</b> will attempt to set the correct - values in <tt class="FILENAME">config</tt> (main configuration - file). You should check this to make sure all values are correct. - If appropriate, an init script will be installed, but it is up to - the user to determine how and where to start <span class= - "APPLICATION">Privoxy</span>. The init script should be checked for - correct paths and values, if anything other than a default install - is done. - </p> - <p> - If install finds previous versions of local configuration files, - most of these will not be overwritten, and the new ones will be - installed with a <span class="QUOTE">"new"</span> extension. - default.action and default.filter <span class="emphasis"><i class= - "EMPHASIS">will be overwritten</i></span>. You will then need to - manually update the other installed configuration files as needed. - The default template files <span class="emphasis"><i class= - "EMPHASIS">will</i></span> be overwritten. If you have customized, - local templates, these should be stored safely in a separate - directory and defined in <tt class="FILENAME">config</tt> by the - <span class="QUOTE">"templdir"</span> directive. It is of course - wise to always back-up any important configuration files <span - class="QUOTE">"just in case"</span>. If a previous version of <span - class="APPLICATION">Privoxy</span> is already running, you will - have to restart it manually. - </p> - <p> - For more detailed instructions on how to build Redhat RPMs, Windows - self-extracting installers, building on platforms with special - requirements etc, please consult the <a href= - "http://www.privoxy.org/developer-manual/newrelease.html" target= - "_top">developer manual</a>. - </p> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="INSTALLATION-KEEPUPDATED">2.3. Keeping your Installation - Up-to-Date</a> - </h2> - <p> - As user feedback comes in and development continues, we will make - updated versions of both the main <a href= - "actions-file.html">actions file</a> (as a <a href= - "http://sourceforge.net/project/showfiles.php?group_id=11118&release_id=103670" - target="_top">separate package</a>) and the software itself - (including the actions file) available for download. - </p> - <p> - If you wish to receive an email notification whenever we release - updates of <span class="APPLICATION">Privoxy</span> or the actions - file, <a href= - "http://lists.sourceforge.net/lists/listinfo/ijbswa-announce/" - target="_top">subscribe to our announce mailing list</a>, - ijbswa-announce@lists.sourceforge.net. - </p> - <p> - In order not to lose your personal changes and adjustments when - updating to the latest <tt class="LITERAL">default.action</tt> file - we <span class="emphasis"><i class="EMPHASIS">strongly - recommend</i></span> that you use <tt class= - "LITERAL">user.action</tt> and <tt class="LITERAL">user.filter</tt> - for your local customizations of <span class= - "APPLICATION">Privoxy</span>. See the <a href= - "actions-file.html">Chapter on actions files</a> for details. - </p> - </div> - </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="introduction.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="whatsnew.html" accesskey="N">Next</a> </td> </tr> + </table> + + <p>Then build as above. In Privoxy 3.0.7 and later, all of these + options can also be disabled through the configuration file.</p> + + <p><span class="emphasis EMPHASIS c2">WARNING:</span> If installing as + root, the install will fail unless a non-root user or group is + specified, or a <tt class="LITERAL">privoxy</tt> user and group already + exist on the system. If a non-root user is specified, and no group, + then the installation will try to also use a group of the same name as + <span class="QUOTE">"user"</span>. If a group is specified (and no + user), then the support files will be installed as writable by that + group, and owned by the user running the installation.</p> + + <p><b class="COMMAND">configure</b> accepts <tt class= + "LITERAL">--with-user</tt> and <tt class="LITERAL">--with-group</tt> + options for setting user and group ownership of the configuration files + (which need to be writable by the daemon). The specified <span class= + "emphasis EMPHASIS c2">user must already exist</span>. When starting + <span class="APPLICATION">Privoxy</span>, it must be run as this same + user to insure write access to configuration and log files!</p> + + <p>Alternately, you can specify <tt class="LITERAL">user</tt> and + <tt class="LITERAL">group</tt> on the <b class="COMMAND">make</b> + command line, but be sure both already exist:</p> + + <table class="c4" border="0" width="100%"> <tr> - <td width="33%" align="left" valign="top"> - Introduction - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - What's New in this Release + <td> + <pre class="SCREEN"> + make -s install USER=privoxy GROUP=privoxy +</pre> </td> </tr> </table> + + <p>The default installation path for <b class="COMMAND">make + install</b> is <tt class="FILENAME">/usr/local</tt>. This may of course + be customized with the various <b class="COMMAND">./configure</b> path + options. If you are doing an install to anywhere besides <tt class= + "FILENAME">/usr/local</tt>, be sure to set the appropriate paths with + the correct configure options (<b class="COMMAND">./configure + --help</b>). Non-privileged users must of course have write access + permissions to wherever the target installation is going.</p> + + <p>If you do install to <tt class="FILENAME">/usr/local</tt>, the + install will use <tt class= + "LITERAL">sysconfdir=$prefix/etc/privoxy</tt> by default. All other + destinations, and the direct usage of <tt class= + "LITERAL">--sysconfdir</tt> flag behave like normal, i.e. will not add + the extra <tt class="FILENAME">privoxy</tt> directory. This is for a + safer install, as there may already exist another program that uses a + file with the <span class="QUOTE">"config"</span> name, and thus makes + <tt class="FILENAME">/usr/local/etc</tt> cleaner.</p> + + <p>If installing to <tt class="FILENAME">/usr/local</tt>, the + documentation will go by default to <tt class= + "FILENAME">$prefix/share/doc</tt>. But if this directory doesn't exist, + it will then try <tt class="FILENAME">$prefix/doc</tt> and install + there before creating a new <tt class="FILENAME">$prefix/share/doc</tt> + just for <span class="APPLICATION">Privoxy</span>.</p> + + <p>Again, if the installs goes to <tt class="FILENAME">/usr/local</tt>, + the <tt class="LITERAL">localstatedir</tt> (ie: <tt class= + "FILENAME">var/</tt>) will default to <tt class="FILENAME">/var</tt> + instead of <tt class="LITERAL">$prefix/var</tt> so the logs will go to + <tt class="FILENAME">/var/log/privoxy/</tt>, and the pid file will be + created in <tt class="FILENAME">/var/run/privoxy.pid</tt>.</p> + + <p><b class="COMMAND">make install</b> will attempt to set the correct + values in <tt class="FILENAME">config</tt> (main configuration file). + You should check this to make sure all values are correct. If + appropriate, an init script will be installed, but it is up to the user + to determine how and where to start <span class= + "APPLICATION">Privoxy</span>. The init script should be checked for + correct paths and values, if anything other than a default install is + done.</p> + + <p>If install finds previous versions of local configuration files, + most of these will not be overwritten, and the new ones will be + installed with a <span class="QUOTE">"new"</span> extension. + default.action and default.filter <span class= + "emphasis EMPHASIS c2">will be overwritten</span>. You will then need + to manually update the other installed configuration files as needed. + The default template files <span class= + "emphasis EMPHASIS c2">will</span> be overwritten. If you have + customized, local templates, these should be stored safely in a + separate directory and defined in <tt class="FILENAME">config</tt> by + the <span class="QUOTE">"templdir"</span> directive. It is of course + wise to always back-up any important configuration files <span class= + "QUOTE">"just in case"</span>. If a previous version of <span class= + "APPLICATION">Privoxy</span> is already running, you will have to + restart it manually.</p> + + <p>For more detailed instructions on how to build Redhat RPMs, Windows + self-extracting installers, building on platforms with special + requirements etc, please consult the <a href= + "http://www.privoxy.org/developer-manual/newrelease.html" target= + "_top">developer manual</a>.</p> </div> - </body> -</html> + <div class="SECT2"> + <h2 class="SECT2"><a name="INSTALLATION-KEEPUPDATED" id= + "INSTALLATION-KEEPUPDATED">2.3. Keeping your Installation + Up-to-Date</a></h2> + + <p>As user feedback comes in and development continues, we will make + updated versions of both the main <a href="actions-file.html">actions + file</a> (as a <a href= + "http://sourceforge.net/project/showfiles.php?group_id=11118&release_id=103670" + target="_top">separate package</a>) and the software itself (including + the actions file) available for download.</p> + + <p>If you wish to receive an email notification whenever we release + updates of <span class="APPLICATION">Privoxy</span> or the actions + file, <a href= + "http://lists.sourceforge.net/lists/listinfo/ijbswa-announce/" target= + "_top">subscribe to our announce mailing list</a>, + ijbswa-announce@lists.sourceforge.net.</p> + + <p>In order not to lose your personal changes and adjustments when + updating to the latest <tt class="LITERAL">default.action</tt> file we + <span class="emphasis EMPHASIS c2">strongly recommend</span> that you + use <tt class="LITERAL">user.action</tt> and <tt class= + "LITERAL">user.filter</tt> for your local customizations of + <span class="APPLICATION">Privoxy</span>. See the <a href= + "actions-file.html">Chapter on actions files</a> for details.</p> + </div> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="introduction.html" + accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + + <td width="33%" align="right" valign="top"><a href="whatsnew.html" + accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Introduction</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">What's New in this + Release</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/user-manual/introduction.html b/doc/webserver/user-manual/introduction.html index eb4d9587..d66b17a9 100644 --- a/doc/webserver/user-manual/introduction.html +++ b/doc/webserver/user-manual/introduction.html @@ -1,215 +1,182 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Introduction - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> - <link rel="PREVIOUS" title="Privoxy 3.0.18 User Manual" href= - "index.html"> - <link rel="NEXT" title="Installation" href="installation.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <link rel="STYLESHEET" type="text/css" href="p_doc.css"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Introduction</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> + <link rel="PREVIOUS" title="Privoxy 3.0.18 User Manual" href="index.html"> + <link rel="NEXT" title="Installation" href="installation.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <link rel="STYLESHEET" type="text/css" href="p_doc.css"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy 3.0.18 User Manual - </th> - </tr> - <tr> - <td width="10%" align="left" valign="bottom"> - <a href="index.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="installation.html" accesskey="N">Next</a> - </td> - </tr> - </table> - <hr width="100%" class="c1"> - </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="INTRODUCTION">1. Introduction</a> - </h1> - <p> - This documentation is included with the current UNRELEASED version of - <span class="APPLICATION">Privoxy</span>, v.3.0.18, and is mostly - complete at this point. The most up to date reference for the time - being is still the comments in the source files and in the individual - configuration files. Development of a new version is currently - nearing completion, and includes significant changes and enhancements - over earlier versions. - </p> - <p> - Since this is a UNRELEASED 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 <span class="emphasis"><i - class="EMPHASIS">may be</i></span> bugs, though hopefully not many! - </p> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="FEATURES">1.1. Features</a> - </h2> - <p> - In addition to the core features of ad blocking and <a href= - "http://en.wikipedia.org/wiki/Browser_cookie" target= - "_top">cookie</a> management, <span class= - "APPLICATION">Privoxy</span> provides many supplemental features, - some of them currently under development, that give the end-user - more control, more privacy and more freedom: - </p> - <p> - </p> - <ul> - <li> - <p> - Supports "Connection: keep-alive". Outgoing connections can be - kept alive independently from the client. - </p> - </li> - <li> - <p> - Supports IPv6, provided the operating system does so too, and - the configure script detects it. - </p> - </li> - <li> - <p> - Supports tagging which allows to change the behaviour based on - client and server headers. - </p> - </li> - <li> - <p> - Can be run as an "intercepting" proxy, which obviates the need - to configure browsers individually. - </p> - </li> - <li> - <p> - Sophisticated actions and filters for manipulating both server - and client headers. - </p> - </li> - <li> - <p> - Can be chained with other proxies. - </p> - </li> - <li> - <p> - Integrated browser-based configuration and control utility at - <a href="http://config.privoxy.org/" target= - "_top">http://config.privoxy.org/</a> (shortcut: <a href= - "http://p.p/" target="_top">http://p.p/</a>). Browser-based - tracing of rule and filter effects. Remote toggling. - </p> - </li> - <li> - <p> - Web page filtering (text replacements, removes banners based on - size, invisible <span class="QUOTE">"web-bugs"</span> and HTML - annoyances, etc.) - </p> - </li> - <li> - <p> - Modularized configuration that allows for standard settings and - user settings to reside in separate files, so that installing - updated actions files won't overwrite individual user settings. - </p> - </li> - <li> - <p> - Support for Perl Compatible Regular Expressions in the - configuration files, and a more sophisticated and flexible - configuration syntax. - </p> - </li> - <li> - <p> - GIF de-animation. - </p> - </li> - <li> - <p> - Bypass many click-tracking scripts (avoids script redirection). - </p> - </li> - <li> - <p> - User-customizable HTML templates for most proxy-generated pages - (e.g. "blocked" page). - </p> - </li> - <li> - <p> - Auto-detection and re-reading of config file changes. - </p> - </li> - <li> - <p> - Most features are controllable on a per-site or per-location - basis. - </p> - </li> - <li> - <p> - Many smaller new features added, limitations and bugs removed. - </p> - </li> - </ul> - </div> - </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="index.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="installation.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - Privoxy 3.0.18 User Manual - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Installation - </td> - </tr> - </table> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy 3.0.18 User Manual</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href="index.html" + accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href= + "installation.html" accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="INTRODUCTION" id="INTRODUCTION">1. + Introduction</a></h1> + + <p>This documentation is included with the current stable version of + <span class="APPLICATION">Privoxy</span>, v.3.0.18.</p> + + <div class="SECT2"> + <h2 class="SECT2"><a name="FEATURES" id="FEATURES">1.1. + Features</a></h2> + + <p>In addition to the core features of ad blocking and <a href= + "http://en.wikipedia.org/wiki/Browser_cookie" target="_top">cookie</a> + management, <span class="APPLICATION">Privoxy</span> provides many + supplemental features, that give the end-user more control, more + privacy and more freedom:</p> + + <ul> + <li> + <p>Supports "Connection: keep-alive". Outgoing connections can be + kept alive independently from the client.</p> + </li> + + <li> + <p>Supports IPv6, provided the operating system does so too, and + the configure script detects it.</p> + </li> + + <li> + <p>Supports tagging which allows to change the behaviour based on + client and server headers.</p> + </li> + + <li> + <p>Can be run as an "intercepting" proxy, which obviates the need + to configure browsers individually.</p> + </li> + + <li> + <p>Sophisticated actions and filters for manipulating both server + and client headers.</p> + </li> + + <li> + <p>Can be chained with other proxies.</p> + </li> + + <li> + <p>Integrated browser-based configuration and control utility at + <a href="http://config.privoxy.org/" target= + "_top">http://config.privoxy.org/</a> (shortcut: <a href= + "http://p.p/" target="_top">http://p.p/</a>). Browser-based tracing + of rule and filter effects. Remote toggling.</p> + </li> + + <li> + <p>Web page filtering (text replacements, removes banners based on + size, invisible <span class="QUOTE">"web-bugs"</span> and HTML + annoyances, etc.)</p> + </li> + + <li> + <p>Modularized configuration that allows for standard settings and + user settings to reside in separate files, so that installing + updated actions files won't overwrite individual user settings.</p> + </li> + + <li> + <p>Support for Perl Compatible Regular Expressions in the + configuration files, and a more sophisticated and flexible + configuration syntax.</p> + </li> + + <li> + <p>GIF de-animation.</p> + </li> + + <li> + <p>Bypass many click-tracking scripts (avoids script + redirection).</p> + </li> + + <li> + <p>User-customizable HTML templates for most proxy-generated pages + (e.g. "blocked" page).</p> + </li> + + <li> + <p>Auto-detection and re-reading of config file changes.</p> + </li> + + <li> + <p>Most features are controllable on a per-site or per-location + basis.</p> + </li> + + <li> + <p>Many smaller new features added, limitations and bugs + removed.</p> + </li> + </ul> </div> - </body> -</html> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="index.html" + accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + <td width="33%" align="right" valign="top"><a href= + "installation.html" accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Privoxy 3.0.18 User + Manual</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Installation</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/user-manual/quickstart.html b/doc/webserver/user-manual/quickstart.html index c17cca06..2991107e 100644 --- a/doc/webserver/user-manual/quickstart.html +++ b/doc/webserver/user-manual/quickstart.html @@ -1,516 +1,451 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Quickstart to Using Privoxy - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> - <link rel="PREVIOUS" title="What's New in this Release" href= - "whatsnew.html"> - <link rel="NEXT" title="Starting Privoxy" href="startup.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <link rel="STYLESHEET" type="text/css" href="p_doc.css"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Quickstart to Using Privoxy</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> + <link rel="PREVIOUS" title="What's New in this Release" href= + "whatsnew.html"> + <link rel="NEXT" title="Starting Privoxy" href="startup.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <link rel="STYLESHEET" type="text/css" href="p_doc.css"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - p.c2 {font-weight: bold} - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy 3.0.18 User Manual - </th> - </tr> - <tr> - <td width="10%" align="left" valign="bottom"> - <a href="whatsnew.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="startup.html" accesskey="N">Next</a> - </td> - </tr> - </table> - <hr width="100%" class="c1"> - </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="QUICKSTART">4. Quickstart to Using Privoxy</a> - </h1> - <p> - </p> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + p.c3 {font-weight: bold} + span.c2 {font-style: italic} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy 3.0.18 User Manual</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href="whatsnew.html" + accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href="startup.html" + accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="QUICKSTART" id="QUICKSTART">4. Quickstart to + Using Privoxy</a></h1> + + <ul> + <li> + <p>Install <span class="APPLICATION">Privoxy</span>. See the <a href= + "installation.html">Installation Section</a> below for platform + specific information.</p> + </li> + + <li> + <p>Advanced users and those who want to offer <span class= + "APPLICATION">Privoxy</span> service to more than just their local + machine should check the <a href="config.html">main config file</a>, + especially the <a href= + "config.html#ACCESS-CONTROL">security-relevant</a> options. These are + off by default.</p> + </li> + + <li> + <p>Start <span class="APPLICATION">Privoxy</span>, if the + installation program has not done this already (may vary according to + platform). See the section <a href="startup.html">Starting + <span class="APPLICATION">Privoxy</span></a>.</p> + </li> + + <li> + <p>Set your browser to use <span class="APPLICATION">Privoxy</span> + as HTTP and HTTPS (SSL) <a href= + "http://en.wikipedia.org/wiki/Proxy_server" target="_top">proxy</a> + by setting the proxy configuration for address of <tt class= + "LITERAL">127.0.0.1</tt> and port <tt class="LITERAL">8118</tt>. + <span class="emphasis EMPHASIS c2">DO NOT</span> activate proxying + for <tt class="LITERAL">FTP</tt> or any protocols besides HTTP and + HTTPS (SSL) unless you intend to prevent your browser from using + these protocols.</p> + </li> + + <li> + <p>Flush your browser's disk and memory caches, to remove any cached + ad images. If using <span class="APPLICATION">Privoxy</span> to + manage <a href="http://en.wikipedia.org/wiki/Browser_cookie" target= + "_top">cookies</a>, you should remove any currently stored cookies + too.</p> + </li> + + <li> + <p>A default installation should provide a reasonable starting point + for most. There will undoubtedly be occasions where you will want to + adjust the configuration, but that can be dealt with as the need + arises. Little to no initial configuration is required in most cases, + you may want to enable the <a href="config.html#ENABLE-EDIT-ACTIONS" + target="_top">web-based action editor</a> though. Be sure to read the + warnings first.</p> + + <p>See the <a href="configuration.html">Configuration section</a> for + more configuration options, and how to customize your installation. + You might also want to look at the <a href= + "quickstart.html#QUICKSTART-AD-BLOCKING">next section</a> for a quick + introduction to how <span class="APPLICATION">Privoxy</span> blocks + ads and banners.</p> + </li> + + <li> + <p>If you experience ads that slip through, innocent images that are + blocked, or otherwise feel the need to fine-tune <span class= + "APPLICATION">Privoxy's</span> behavior, take a look at the <a href= + "actions-file.html">actions files</a>. As a quick start, you might + find the <a href="actions-file.html#ACT-EXAMPLES">richly commented + examples</a> helpful. You can also view and edit the actions files + through the <a href="http://config.privoxy.org" target= + "_top">web-based user interface</a>. The Appendix <span class= + "QUOTE">"<a href="appendix.html#ACTIONSANAT">Troubleshooting: Anatomy + of an Action</a>"</span> has hints on how to understand and debug + actions that <span class="QUOTE">"misbehave"</span>.</p> + </li> + + <li> + <p>Please see the section <a href="contact.html">Contacting the + Developers</a> on how to report bugs, problems with websites or to + get help.</p> + </li> + + <li> + <p>Now enjoy surfing with enhanced control, comfort and privacy!</p> + </li> + </ul> + + <div class="SECT2"> + <h2 class="SECT2"><a name="QUICKSTART-AD-BLOCKING" id= + "QUICKSTART-AD-BLOCKING">4.1. Quickstart to Ad Blocking</a></h2> + + <p>Ad blocking is but one of <span class="APPLICATION">Privoxy's</span> + array of features. Many of these features are for the technically + minded advanced user. But, ad and banner blocking is surely common + ground for everybody.</p> + + <p>This section will provide a quick summary of ad blocking so you can + get up to speed quickly without having to read the more extensive + information provided below, though this is highly recommended.</p> + + <p>First a bit of a warning ... blocking ads is much like blocking + SPAM: the more aggressive you are about it, the more likely you are to + block things that were not intended. And the more likely that some + things may not work as intended. So there is a trade off here. If you + want extreme ad free browsing, be prepared to deal with more + <span class="QUOTE">"problem"</span> sites, and to spend more time + adjusting the configuration to solve these unintended consequences. In + short, there is not an easy way to eliminate <span class= + "emphasis EMPHASIS c2">all</span> ads. Either take the easy way and + settle for <span class="emphasis EMPHASIS c2">most</span> ads blocked + with the default configuration, or jump in and tweak it for your + personal surfing habits and preferences.</p> + + <p>Secondly, a brief explanation of <span class= + "APPLICATION">Privoxy's</span> <span class="QUOTE">"actions"</span>. + <span class="QUOTE">"Actions"</span> in this context, are the + directives we use to tell <span class="APPLICATION">Privoxy</span> to + perform some task relating to HTTP transactions (i.e. web browsing). We + tell <span class="APPLICATION">Privoxy</span> to take some <span class= + "QUOTE">"action"</span>. Each action has a unique name and function. + While there are many potential <span class="APPLICATION">actions</span> + in <span class="APPLICATION">Privoxy's</span> arsenal, only a few are + used for ad blocking. <a href="actions-file.html#ACTIONS">Actions</a>, + and <a href="actions-file.html">action configuration files</a>, are + explained in depth below.</p> + + <p>Actions are specified in <span class="APPLICATION">Privoxy's</span> + configuration, followed by one or more URLs to which the action should + apply. URLs can actually be URL type <a href= + "actions-file.html#AF-PATTERNS">patterns</a> that use wildcards so they + can apply potentially to a range of similar URLs. The actions, together + with the URL patterns are called a section.</p> + + <p>When you connect to a website, the full URL will either match one or + more of the sections as defined in <span class= + "APPLICATION">Privoxy's</span> configuration, or not. If so, then + <span class="APPLICATION">Privoxy</span> will perform the respective + actions. If not, then nothing special happens. Furthermore, web pages + may contain embedded, secondary URLs that your web browser will use to + load additional components of the page, as it parses the original + page's HTML content. An ad image for instance, is just an URL embedded + in the page somewhere. The image itself may be on the same server, or a + server somewhere else on the Internet. Complex web pages will have many + such embedded URLs. <span class="APPLICATION">Privoxy</span> can deal + with each URL individually, so, for instance, the main page text is not + touched, but images from such-and-such server are blocked.</p> + + <p>The most important actions for basic ad blocking are: <tt class= + "LITERAL"><a href="actions-file.html#BLOCK">block</a></tt>, <tt class= + "LITERAL"><a href= + "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></tt>, + <tt class="LITERAL"><a href= + "actions-file.html#HANDLE-AS-EMPTY-DOCUMENT">handle-as-empty-document</a></tt>,and + <tt class="LITERAL"><a href= + "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker</a></tt>:</p> + <ul> <li> - <p> - Install <span class="APPLICATION">Privoxy</span>. See the <a - href="installation.html">Installation Section</a> below for - platform specific information. - </p> + <p><tt class="LITERAL"><a href= + "actions-file.html#BLOCK">block</a></tt> - this is perhaps the + single most used action, and is particularly important for ad + blocking. This action stops any contact between your browser and + any URL patterns that match this action's configuration. It can be + used for blocking ads, but also anything that is determined to be + unwanted. By itself, it simply stops any communication with the + remote server and sends <span class="APPLICATION">Privoxy</span>'s + own built-in BLOCKED page instead to let you now what has happened + (with some exceptions, see below).</p> </li> + <li> - <p> - Advanced users and those who want to offer <span class= - "APPLICATION">Privoxy</span> service to more than just their - local machine should check the <a href="config.html">main config - file</a>, especially the <a href= - "config.html#ACCESS-CONTROL">security-relevant</a> options. These - are off by default. - </p> + <p><tt class="LITERAL"><a href= + "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></tt> - + tells <span class="APPLICATION">Privoxy</span> to treat this URL as + an image. <span class="APPLICATION">Privoxy</span>'s default + configuration already does this for all common image types (e.g. + GIF), but there are many situations where this is not so easy to + determine. So we'll force it in these cases. This is particularly + important for ad blocking, since only if we know that it's an image + of some kind, can we replace it with an image of our choosing, + instead of the <span class="APPLICATION">Privoxy</span> BLOCKED + page (which would only result in a <span class="QUOTE">"broken + image"</span> icon). There are some limitations to this though. For + instance, you can't just brute-force an image substitution for an + entire HTML page in most situations.</p> </li> + <li> - <p> - Start <span class="APPLICATION">Privoxy</span>, if the - installation program has not done this already (may vary - according to platform). See the section <a href= - "startup.html">Starting <span class= - "APPLICATION">Privoxy</span></a>. - </p> + <p><tt class="LITERAL"><a href= + "actions-file.html#HANDLE-AS-EMPTY-DOCUMENT">handle-as-empty-document</a></tt> + - sends an empty document instead of <span class= + "APPLICATION">Privoxy's</span> normal BLOCKED HTML page. This is + useful for file types that are neither HTML nor images, such as + blocking JavaScript files.</p> </li> + <li> - <p> - Set your browser to use <span class="APPLICATION">Privoxy</span> - as HTTP and HTTPS (SSL) <a href= - "http://en.wikipedia.org/wiki/Proxy_server" target= - "_top">proxy</a> by setting the proxy configuration for address - of <tt class="LITERAL">127.0.0.1</tt> and port <tt class= - "LITERAL">8118</tt>. <span class="emphasis"><i class= - "EMPHASIS">DO NOT</i></span> activate proxying for <tt class= - "LITERAL">FTP</tt> or any protocols besides HTTP and HTTPS (SSL) - unless you intend to prevent your browser from using these - protocols. - </p> + <p><tt class="LITERAL"><a href= + "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker</a></tt> - + tells <span class="APPLICATION">Privoxy</span> what to display in + place of an ad image that has hit a block rule. For this to come + into play, the URL must match a <tt class="LITERAL"><a href= + "actions-file.html#BLOCK">block</a></tt> action somewhere in the + configuration, <span class="emphasis EMPHASIS c2">and</span>, it + must also match an <tt class="LITERAL"><a href= + "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></tt> + action.</p> + + <p>The configuration options on what to display instead of the ad + are:</p> + + <table border="0"> + <tbody> + <tr> + <td> <span class= + "emphasis EMPHASIS c2">pattern</span> - a checkerboard + pattern, so that an ad replacement is obvious. This is the + default.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td> <span class= + "emphasis EMPHASIS c2">blank</span> - A very small empty GIF + image is displayed. This is the so-called <span class= + "QUOTE">"invisible"</span> configuration option.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td> <span class= + "emphasis EMPHASIS c2">http://<URL></span> - A redirect + to any image anywhere of the user's choosing (advanced + usage).</td> + </tr> + </tbody> + </table> </li> + </ul> + + <p>Advanced users will eventually want to explore <span class= + "APPLICATION">Privoxy</span> <tt class="LITERAL"><a href= + "actions-file.html#FILTER">filters</a></tt> as well. Filters are very + different from <tt class="LITERAL"><a href= + "actions-file.html#BLOCK">blocks</a></tt>. A <span class= + "QUOTE">"block"</span> blocks a site, page, or unwanted contented. + Filters are a way of filtering or modifying what is actually on the + page. An example filter usage: a text replacement of <span class= + "QUOTE">"no-no"</span> for <span class="QUOTE">"nasty-word"</span>. + That is a very simple example. This process can be used for ad + blocking, but it is more in the realm of advanced usage and has some + pitfalls to be wary off.</p> + + <p>The quickest way to adjust any of these settings is with your + browser through the special <span class="APPLICATION">Privoxy</span> + editor at <a href="http://config.privoxy.org/show-status" target= + "_top">http://config.privoxy.org/show-status</a> (shortcut: <a href= + "http://p.p/" target="_top">http://p.p/show-status</a>). This is an + internal page, and does not require Internet access.</p> + + <p>Note that as of <span class="APPLICATION">Privoxy</span> 3.0.7 beta + the action editor is disabled by default. Check the <a href= + "config.html#ENABLE-EDIT-ACTIONS" target="_top">enable-edit-actions + section in the configuration file</a> to learn why and in which cases + it's safe to enable again.</p> + + <p>If you decided to enable the action editor, select the appropriate + <span class="QUOTE">"actions"</span> file, and click <span class= + "QUOTE">"<span class="GUIBUTTON">Edit</span>"</span>. It is best to put + personal or local preferences in <tt class="FILENAME">user.action</tt> + since this is not meant to be overwritten during upgrades, and will + over-ride the settings in other files. Here you can insert new + <span class="QUOTE">"actions"</span>, and URLs for ad blocking or other + purposes, and make other adjustments to the configuration. <span class= + "APPLICATION">Privoxy</span> will detect these changes + automatically.</p> + + <p>A quick and simple step by step example:</p> + + <ul> <li> - <p> - Flush your browser's disk and memory caches, to remove any cached - ad images. If using <span class="APPLICATION">Privoxy</span> to - manage <a href="http://en.wikipedia.org/wiki/Browser_cookie" - target="_top">cookies</a>, you should remove any currently stored - cookies too. - </p> + <p>Right click on the ad image to be blocked, then select + <span class="QUOTE">"<span class="GUIMENUITEM">Copy Link + Location</span>"</span> from the pop-up menu.</p> </li> + <li> - <p> - A default installation should provide a reasonable starting point - for most. There will undoubtedly be occasions where you will want - to adjust the configuration, but that can be dealt with as the - need arises. Little to no initial configuration is required in - most cases, you may want to enable the <a href= - "config.html#ENABLE-EDIT-ACTIONS" target="_top">web-based action - editor</a> though. Be sure to read the warnings first. - </p> - <p> - See the <a href="configuration.html">Configuration section</a> - for more configuration options, and how to customize your - installation. You might also want to look at the <a href= - "quickstart.html#QUICKSTART-AD-BLOCKING">next section</a> for a - quick introduction to how <span class= - "APPLICATION">Privoxy</span> blocks ads and banners. - </p> + <p>Set your browser to <a href= + "http://config.privoxy.org/show-status" target= + "_top">http://config.privoxy.org/show-status</a></p> </li> + <li> - <p> - If you experience ads that slip through, innocent images that are - blocked, or otherwise feel the need to fine-tune <span class= - "APPLICATION">Privoxy's</span> behavior, take a look at the <a - href="actions-file.html">actions files</a>. As a quick start, you - might find the <a href="actions-file.html#ACT-EXAMPLES">richly - commented examples</a> helpful. You can also view and edit the - actions files through the <a href="http://config.privoxy.org" - target="_top">web-based user interface</a>. The Appendix <span - class="QUOTE">"<a href= - "appendix.html#ACTIONSANAT">Troubleshooting: Anatomy of an - Action</a>"</span> has hints on how to understand and debug - actions that <span class="QUOTE">"misbehave"</span>. - </p> + <p>Find <tt class="FILENAME">user.action</tt> in the top section, + and click on <span class="QUOTE">"<span class= + "GUIBUTTON">Edit</span>"</span>:</p> + + <div class="FIGURE"> + <a name="AEN828" id="AEN828"></a> + + <p class="c3">Figure 1. Actions Files in Use</p> + + <div class="MEDIAOBJECT"> + <p><img src="files-in-use.jpg"></p> + </div> + </div> </li> + <li> - <p> - Please see the section <a href="contact.html">Contacting the - Developers</a> on how to report bugs, problems with websites or - to get help. - </p> + <p>You should have a section with only <tt class="LITERAL"><a href= + "actions-file.html#BLOCK">block</a></tt> listed under <span class= + "QUOTE">"Actions:"</span>. If not, click a <span class= + "QUOTE">"<span class="GUIBUTTON">Insert new section + below</span>"</span> button, and in the new section that just + appeared, click the <span class="GUIBUTTON">Edit</span> button + right under the word <span class="QUOTE">"Actions:"</span>. This + will bring up a list of all actions. Find <tt class= + "LITERAL"><a href="actions-file.html#BLOCK">block</a></tt> near the + top, and click in the <span class="QUOTE">"Enabled"</span> column, + then <span class="QUOTE">"<span class= + "GUIBUTTON">Submit</span>"</span> just below the list.</p> </li> + <li> - <p> - Now enjoy surfing with enhanced control, comfort and privacy! - </p> + <p>Now, in the <tt class="LITERAL"><a href= + "actions-file.html#BLOCK">block</a></tt> actions section, click the + <span class="QUOTE">"<span class="GUIBUTTON">Add</span>"</span> + button, and paste the URL the browser got from <span class= + "QUOTE">"<span class="GUIMENUITEM">Copy Link + Location</span>"</span>. Remove the <tt class= + "LITERAL">http://</tt> at the beginning of the URL. Then, click + <span class="QUOTE">"<span class="GUIBUTTON">Submit</span>"</span> + (or <span class="QUOTE">"<span class="GUIBUTTON">OK</span>"</span> + if in a pop-up window).</p> + </li> + + <li> + <p>Now go back to the original page, and press <b class= + "KEYCAP">SHIFT-Reload</b> (or flush all browser caches). The image + should be gone now.</p> </li> </ul> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="QUICKSTART-AD-BLOCKING">4.1. Quickstart to Ad Blocking</a> - </h2> - <p> - Ad blocking is but one of <span class= - "APPLICATION">Privoxy's</span> array of features. Many of these - features are for the technically minded advanced user. But, ad and - banner blocking is surely common ground for everybody. - </p> - <p> - This section will provide a quick summary of ad blocking so you can - get up to speed quickly without having to read the more extensive - information provided below, though this is highly recommended. - </p> - <p> - First a bit of a warning ... blocking ads is much like blocking - SPAM: the more aggressive you are about it, the more likely you are - to block things that were not intended. And the more likely that - some things may not work as intended. So there is a trade off here. - If you want extreme ad free browsing, be prepared to deal with more - <span class="QUOTE">"problem"</span> sites, and to spend more time - adjusting the configuration to solve these unintended consequences. - In short, there is not an easy way to eliminate <span class= - "emphasis"><i class="EMPHASIS">all</i></span> ads. Either take the - easy way and settle for <span class="emphasis"><i class= - "EMPHASIS">most</i></span> ads blocked with the default - configuration, or jump in and tweak it for your personal surfing - habits and preferences. - </p> - <p> - Secondly, a brief explanation of <span class= - "APPLICATION">Privoxy's</span> <span class= - "QUOTE">"actions"</span>. <span class="QUOTE">"Actions"</span> in - this context, are the directives we use to tell <span class= - "APPLICATION">Privoxy</span> to perform some task relating to HTTP - transactions (i.e. web browsing). We tell <span class= - "APPLICATION">Privoxy</span> to take some <span class= - "QUOTE">"action"</span>. Each action has a unique name and - function. While there are many potential <span class= - "APPLICATION">actions</span> in <span class= - "APPLICATION">Privoxy's</span> arsenal, only a few are used for ad - blocking. <a href="actions-file.html#ACTIONS">Actions</a>, and <a - href="actions-file.html">action configuration files</a>, are - explained in depth below. - </p> - <p> - Actions are specified in <span class="APPLICATION">Privoxy's</span> - configuration, followed by one or more URLs to which the action - should apply. URLs can actually be URL type <a href= - "actions-file.html#AF-PATTERNS">patterns</a> that use wildcards so - they can apply potentially to a range of similar URLs. The actions, - together with the URL patterns are called a section. - </p> - <p> - When you connect to a website, the full URL will either match one - or more of the sections as defined in <span class= - "APPLICATION">Privoxy's</span> configuration, or not. If so, then - <span class="APPLICATION">Privoxy</span> will perform the - respective actions. If not, then nothing special happens. - Furthermore, web pages may contain embedded, secondary URLs that - your web browser will use to load additional components of the - page, as it parses the original page's HTML content. An ad image - for instance, is just an URL embedded in the page somewhere. The - image itself may be on the same server, or a server somewhere else - on the Internet. Complex web pages will have many such embedded - URLs. <span class="APPLICATION">Privoxy</span> can deal with each - URL individually, so, for instance, the main page text is not - touched, but images from such-and-such server are blocked. - </p> - <p> - The most important actions for basic ad blocking are: <tt class= - "LITERAL"><a href="actions-file.html#BLOCK">block</a></tt>, <tt - class="LITERAL"><a href= - "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></tt>, <tt - class="LITERAL"><a href= - "actions-file.html#HANDLE-AS-EMPTY-DOCUMENT">handle-as-empty-document</a></tt>,and - <tt class="LITERAL"><a href= - "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker</a></tt>: - </p> - <p> - </p> - <ul> - <li> - <p> - <tt class="LITERAL"><a href= - "actions-file.html#BLOCK">block</a></tt> - this is perhaps the - single most used action, and is particularly important for ad - blocking. This action stops any contact between your browser - and any URL patterns that match this action's configuration. It - can be used for blocking ads, but also anything that is - determined to be unwanted. By itself, it simply stops any - communication with the remote server and sends <span class= - "APPLICATION">Privoxy</span>'s own built-in BLOCKED page - instead to let you now what has happened (with some exceptions, - see below). - </p> - </li> - <li> - <p> - <tt class="LITERAL"><a href= - "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></tt> - - tells <span class="APPLICATION">Privoxy</span> to treat this - URL as an image. <span class="APPLICATION">Privoxy</span>'s - default configuration already does this for all common image - types (e.g. GIF), but there are many situations where this is - not so easy to determine. So we'll force it in these cases. - This is particularly important for ad blocking, since only if - we know that it's an image of some kind, can we replace it with - an image of our choosing, instead of the <span class= - "APPLICATION">Privoxy</span> BLOCKED page (which would only - result in a <span class="QUOTE">"broken image"</span> icon). - There are some limitations to this though. For instance, you - can't just brute-force an image substitution for an entire HTML - page in most situations. - </p> - </li> - <li> - <p> - <tt class="LITERAL"><a href= - "actions-file.html#HANDLE-AS-EMPTY-DOCUMENT">handle-as-empty-document</a></tt> - - sends an empty document instead of <span class= - "APPLICATION">Privoxy's</span> normal BLOCKED HTML page. This - is useful for file types that are neither HTML nor images, such - as blocking JavaScript files. - </p> - </li> - <li> - <p> - <tt class="LITERAL"><a href= - "actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker</a></tt> - - tells <span class="APPLICATION">Privoxy</span> what to - display in place of an ad image that has hit a block rule. For - this to come into play, the URL must match a <tt class= - "LITERAL"><a href="actions-file.html#BLOCK">block</a></tt> - action somewhere in the configuration, <span class= - "emphasis"><i class="EMPHASIS">and</i></span>, it must also - match an <tt class="LITERAL"><a href= - "actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a></tt> - action. - </p> - <p> - The configuration options on what to display instead of the ad - are: - </p> - <table border="0"> - <tbody> - <tr> - <td> - <span class="emphasis"><i class= - "EMPHASIS">pattern</i></span> - a checkerboard pattern, - so that an ad replacement is obvious. This is the - default. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <span class="emphasis"><i class= - "EMPHASIS">blank</i></span> - A very small empty GIF - image is displayed. This is the so-called <span class= - "QUOTE">"invisible"</span> configuration option. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <span class="emphasis"><i class= - "EMPHASIS">http://<URL></i></span> - A redirect to - any image anywhere of the user's choosing (advanced - usage). - </td> - </tr> - </tbody> - </table> - </li> - </ul> - - <p> - Advanced users will eventually want to explore <span class= - "APPLICATION">Privoxy</span> <tt class="LITERAL"><a href= - "actions-file.html#FILTER">filters</a></tt> as well. Filters are - very different from <tt class="LITERAL"><a href= - "actions-file.html#BLOCK">blocks</a></tt>. A <span class= - "QUOTE">"block"</span> blocks a site, page, or unwanted contented. - Filters are a way of filtering or modifying what is actually on the - page. An example filter usage: a text replacement of <span class= - "QUOTE">"no-no"</span> for <span class="QUOTE">"nasty-word"</span>. - That is a very simple example. This process can be used for ad - blocking, but it is more in the realm of advanced usage and has - some pitfalls to be wary off. - </p> - <p> - The quickest way to adjust any of these settings is with your - browser through the special <span class= - "APPLICATION">Privoxy</span> editor at <a href= - "http://config.privoxy.org/show-status" target= - "_top">http://config.privoxy.org/show-status</a> (shortcut: <a - href="http://p.p/" target="_top">http://p.p/show-status</a>). This - is an internal page, and does not require Internet access. - </p> - <p> - Note that as of <span class="APPLICATION">Privoxy</span> 3.0.7 beta - the action editor is disabled by default. Check the <a href= - "config.html#ENABLE-EDIT-ACTIONS" target="_top">enable-edit-actions - section in the configuration file</a> to learn why and in which - cases it's safe to enable again. - </p> - <p> - If you decided to enable the action editor, select the appropriate - <span class="QUOTE">"actions"</span> file, and click <span class= - "QUOTE">"<span class="GUIBUTTON">Edit</span>"</span>. It is best to - put personal or local preferences in <tt class= - "FILENAME">user.action</tt> since this is not meant to be - overwritten during upgrades, and will over-ride the settings in - other files. Here you can insert new <span class= - "QUOTE">"actions"</span>, and URLs for ad blocking or other - purposes, and make other adjustments to the configuration. <span - class="APPLICATION">Privoxy</span> will detect these changes - automatically. - </p> - <p> - A quick and simple step by step example: - </p> - <p> - </p> - <ul> - <li> - <p> - Right click on the ad image to be blocked, then select <span - class="QUOTE">"<span class="GUIMENUITEM">Copy Link - Location</span>"</span> from the pop-up menu. - </p> - </li> - <li> - <p> - Set your browser to <a href= - "http://config.privoxy.org/show-status" target= - "_top">http://config.privoxy.org/show-status</a> - </p> - </li> - <li> - <p> - Find <tt class="FILENAME">user.action</tt> in the top section, - and click on <span class="QUOTE">"<span class= - "GUIBUTTON">Edit</span>"</span>: - </p> - <p> - </p> - <div class="FIGURE"> - <a name="AEN687"></a> - <p class="c2"> - Figure 1. Actions Files in Use - </p> - <div class="MEDIAOBJECT"> - <p> - <img src="files-in-use.jpg"> - </p> - </div> - </div> - </li> - <li> - <p> - You should have a section with only <tt class="LITERAL"><a - href="actions-file.html#BLOCK">block</a></tt> listed under - <span class="QUOTE">"Actions:"</span>. If not, click a <span - class="QUOTE">"<span class="GUIBUTTON">Insert new section - below</span>"</span> button, and in the new section that just - appeared, click the <span class="GUIBUTTON">Edit</span> button - right under the word <span class="QUOTE">"Actions:"</span>. - This will bring up a list of all actions. Find <tt class= - "LITERAL"><a href="actions-file.html#BLOCK">block</a></tt> near - the top, and click in the <span class="QUOTE">"Enabled"</span> - column, then <span class="QUOTE">"<span class= - "GUIBUTTON">Submit</span>"</span> just below the list. - </p> - </li> - <li> - <p> - Now, in the <tt class="LITERAL"><a href= - "actions-file.html#BLOCK">block</a></tt> actions section, click - the <span class="QUOTE">"<span class= - "GUIBUTTON">Add</span>"</span> button, and paste the URL the - browser got from <span class="QUOTE">"<span class= - "GUIMENUITEM">Copy Link Location</span>"</span>. Remove the <tt - class="LITERAL">http://</tt> at the beginning of the URL. Then, - click <span class="QUOTE">"<span class= - "GUIBUTTON">Submit</span>"</span> (or <span class= - "QUOTE">"<span class="GUIBUTTON">OK</span>"</span> if in a - pop-up window). - </p> - </li> - <li> - <p> - Now go back to the original page, and press <b class= - "KEYCAP">SHIFT-Reload</b> (or flush all browser caches). The - image should be gone now. - </p> - </li> - </ul> - - <p> - This is a very crude and simple example. There might be good - reasons to use a wildcard pattern match to include potentially - similar images from the same site. For a more extensive explanation - of <span class="QUOTE">"patterns"</span>, and the entire actions - concept, see <a href="actions-file.html">the Actions section</a>. - </p> - <p> - For advanced users who want to hand edit their config files, you - might want to now go to the <a href= - "actions-file.html#ACT-EXAMPLES">Actions Files Tutorial</a>. The - ideas explained therein also apply to the web-based editor. - </p> - <p> - There are also various <a href= - "actions-file.html#FILTER">filters</a> that can be used for ad - blocking (filters are a special subset of actions). These fall into - the <span class="QUOTE">"advanced"</span> usage category, and are - explained in depth in later sections. - </p> - </div> - </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="whatsnew.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="startup.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - What's New in this Release - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Starting Privoxy - </td> - </tr> - </table> + <p>This is a very crude and simple example. There might be good reasons + to use a wildcard pattern match to include potentially similar images + from the same site. For a more extensive explanation of <span class= + "QUOTE">"patterns"</span>, and the entire actions concept, see <a href= + "actions-file.html">the Actions section</a>.</p> + + <p>For advanced users who want to hand edit their config files, you + might want to now go to the <a href= + "actions-file.html#ACT-EXAMPLES">Actions Files Tutorial</a>. The ideas + explained therein also apply to the web-based editor.</p> + + <p>There are also various <a href= + "actions-file.html#FILTER">filters</a> that can be used for ad blocking + (filters are a special subset of actions). These fall into the + <span class="QUOTE">"advanced"</span> usage category, and are explained + in depth in later sections.</p> </div> - </body> -</html> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="whatsnew.html" + accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + <td width="33%" align="right" valign="top"><a href="startup.html" + accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">What's New in this + Release</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Starting Privoxy</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/user-manual/seealso.html b/doc/webserver/user-manual/seealso.html index a3ae8571..c6f011da 100644 --- a/doc/webserver/user-manual/seealso.html +++ b/doc/webserver/user-manual/seealso.html @@ -1,226 +1,208 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - See Also - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> - <link rel="PREVIOUS" title="Privoxy Copyright, License and History" href= - "copyright.html"> - <link rel="NEXT" title="Appendix" href="appendix.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <link rel="STYLESHEET" type="text/css" href="p_doc.css"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>See Also</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> + <link rel="PREVIOUS" title="Privoxy Copyright, License and History" href= + "copyright.html"> + <link rel="NEXT" title="Appendix" href="appendix.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <link rel="STYLESHEET" type="text/css" href="p_doc.css"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy 3.0.18 User Manual</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href="copyright.html" + accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href="appendix.html" + accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="SEEALSO" id="SEEALSO">13. See Also</a></h1> + + <p>Other references and sites of interest to <span class= + "APPLICATION">Privoxy</span> users:</p> + + <table border="0"> + <tbody> <tr> - <th colspan="3" align="center"> - Privoxy 3.0.18 User Manual - </th> + <td><a href="http://www.privoxy.org/" target= + "_top">http://www.privoxy.org/</a>, the <span class= + "APPLICATION">Privoxy</span> Home page.</td> </tr> + </tbody> + </table> + + <table border="0"> + <tbody> <tr> - <td width="10%" align="left" valign="bottom"> - <a href="copyright.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="appendix.html" accesskey="N">Next</a> - </td> + <td><a href="http://www.privoxy.org/faq/" target= + "_top">http://www.privoxy.org/faq/</a>, the <span class= + "APPLICATION">Privoxy</span> FAQ.</td> </tr> - </table> - <hr width="100%" class="c1"> - </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="SEEALSO">13. See Also</a> - </h1> - <p> - Other references and sites of interest to <span class= - "APPLICATION">Privoxy</span> users: - </p> - <p> - </p> - <table border="0"> - <tbody> - <tr> - <td> - <a href="http://www.privoxy.org/" target= - "_top">http://www.privoxy.org/</a>, the <span class= - "APPLICATION">Privoxy</span> Home page. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="http://www.privoxy.org/faq/" target= - "_top">http://www.privoxy.org/faq/</a>, the <span class= - "APPLICATION">Privoxy</span> FAQ. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="http://www.privoxy.org/developer-manual/" target= - "_top">http://www.privoxy.org/developer-manual/</a>, the <span - class="APPLICATION">Privoxy</span> developer manual. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="https://sourceforge.net/projects/ijbswa/" target= - "_top">https://sourceforge.net/projects/ijbswa/</a>, the - Project Page for <span class="APPLICATION">Privoxy</span> on <a - href="http://sourceforge.net" target="_top">SourceForge</a>. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="http://config.privoxy.org/" target= - "_top">http://config.privoxy.org/</a>, the web-based user - interface. <span class="APPLICATION">Privoxy</span> must be - running for this to work. Shortcut: <a href="http://p.p/" - target="_top">http://p.p/</a> - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href= - "https://sourceforge.net/tracker/?group_id=11118&atid=460288" - target= - "_top">https://sourceforge.net/tracker/?group_id=11118&atid=460288</a>, - to submit <span class="QUOTE">"misses"</span> and other - configuration related suggestions to the developers. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="http://www.junkbusters.com/ht/en/cookies.html" target= - "_top">http://www.junkbusters.com/ht/en/cookies.html</a>, an - explanation how cookies are used to track web users. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="http://www.junkbusters.com/ijb.html" target= - "_top">http://www.junkbusters.com/ijb.html</a>, the original - Internet Junkbuster. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="http://www.squid-cache.org/" target= - "_top">http://www.squid-cache.org/</a>, a popular caching - proxy, which is often used together with <span class= - "APPLICATION">Privoxy</span>. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="http://www.pps.jussieu.fr/~jch/software/polipo/" - target= - "_top">http://www.pps.jussieu.fr/~jch/software/polipo/</a>, - <span class="APPLICATION">Polipo</span> is a caching proxy with - advanced features like pipelining, multiplexing and caching of - partial instances. In many setups it can be used as <span - class="APPLICATION">Squid</span> replacement. - </td> - </tr> - </tbody> - </table> - <table border="0"> - <tbody> - <tr> - <td> - <a href="https://www.torproject.org/" target= - "_top">https://www.torproject.org/</a>, <span class= - "APPLICATION">Tor</span> can help anonymize web browsing, web - publishing, instant messaging, IRC, SSH, and other - applications. - </td> - </tr> - </tbody> - </table> - </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> + </tbody> + </table> + + <table border="0"> + <tbody> <tr> - <td width="33%" align="left" valign="top"> - <a href="copyright.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="appendix.html" accesskey="N">Next</a> - </td> + <td><a href="http://www.privoxy.org/developer-manual/" target= + "_top">http://www.privoxy.org/developer-manual/</a>, the + <span class="APPLICATION">Privoxy</span> developer manual.</td> </tr> + </tbody> + </table> + + <table border="0"> + <tbody> <tr> - <td width="33%" align="left" valign="top"> - Privoxy Copyright, License and History - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Appendix - </td> + <td><a href="https://sourceforge.net/projects/ijbswa/" target= + "_top">https://sourceforge.net/projects/ijbswa/</a>, the Project + Page for <span class="APPLICATION">Privoxy</span> on <a href= + "http://sourceforge.net" target="_top">SourceForge</a>.</td> </tr> - </table> - </div> - </body> -</html> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><a href="http://config.privoxy.org/" target= + "_top">http://config.privoxy.org/</a>, the web-based user + interface. <span class="APPLICATION">Privoxy</span> must be running + for this to work. Shortcut: <a href="http://p.p/" target= + "_top">http://p.p/</a></td> + </tr> + </tbody> + </table> + <table border="0"> + <tbody> + <tr> + <td><a href= + "https://sourceforge.net/tracker/?group_id=11118&atid=460288" + target= + "_top">https://sourceforge.net/tracker/?group_id=11118&atid=460288</a>, + to submit <span class="QUOTE">"misses"</span> and other + configuration related suggestions to the developers.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><a href="http://www.junkbusters.com/ht/en/cookies.html" target= + "_top">http://www.junkbusters.com/ht/en/cookies.html</a>, an + explanation how cookies are used to track web users.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><a href="http://www.junkbusters.com/ijb.html" target= + "_top">http://www.junkbusters.com/ijb.html</a>, the original + Internet Junkbuster.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><a href="http://www.squid-cache.org/" target= + "_top">http://www.squid-cache.org/</a>, a popular caching proxy, + which is often used together with <span class= + "APPLICATION">Privoxy</span>.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><a href="http://www.pps.jussieu.fr/~jch/software/polipo/" + target="_top">http://www.pps.jussieu.fr/~jch/software/polipo/</a>, + <span class="APPLICATION">Polipo</span> is a caching proxy with + advanced features like pipelining, multiplexing and caching of + partial instances. In many setups it can be used as <span class= + "APPLICATION">Squid</span> replacement.</td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td><a href="https://www.torproject.org/" target= + "_top">https://www.torproject.org/</a>, <span class= + "APPLICATION">Tor</span> can help anonymize web browsing, web + publishing, instant messaging, IRC, SSH, and other + applications.</td> + </tr> + </tbody> + </table> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="copyright.html" + accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + + <td width="33%" align="right" valign="top"><a href="appendix.html" + accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Privoxy Copyright, License + and History</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Appendix</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/user-manual/startup.html b/doc/webserver/user-manual/startup.html index df6da50a..3e4fa152 100644 --- a/doc/webserver/user-manual/startup.html +++ b/doc/webserver/user-manual/startup.html @@ -1,533 +1,458 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Starting Privoxy - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> - <link rel="PREVIOUS" title="Quickstart to Using Privoxy" href= - "quickstart.html"> - <link rel="NEXT" title="Privoxy Configuration" href="configuration.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <link rel="STYLESHEET" type="text/css" href="p_doc.css"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Starting Privoxy</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> + <link rel="PREVIOUS" title="Quickstart to Using Privoxy" href= + "quickstart.html"> + <link rel="NEXT" title="Privoxy Configuration" href="configuration.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <link rel="STYLESHEET" type="text/css" href="p_doc.css"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - p.c2 {font-weight: bold} - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + table.c4 {background-color: #E0E0E0} + p.c3 {font-weight: bold} + span.c2 {font-style: italic} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy 3.0.18 User Manual</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href= + "quickstart.html" accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href= + "configuration.html" accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="STARTUP" id="STARTUP">5. Starting + Privoxy</a></h1> + + <p>Before launching <span class="APPLICATION">Privoxy</span> for the + first time, you will want to configure your browser(s) to use + <span class="APPLICATION">Privoxy</span> as a HTTP and HTTPS (SSL) + <a href="http://en.wikipedia.org/wiki/Proxy_server" target= + "_top">proxy</a>. The default is 127.0.0.1 (or localhost) for the proxy + address, and port 8118 (earlier versions used port 8000). This is the one + configuration step <span class="emphasis EMPHASIS c2">that must be + done</span>!</p> + + <p>Please note that <span class="APPLICATION">Privoxy</span> can only + proxy HTTP and HTTPS traffic. It will not work with FTP or other + protocols.</p> + + <div class="FIGURE"> + <a name="AEN883" id="AEN883"></a> + + <p class="c3">Figure 2. Proxy Configuration Showing Mozilla/Netscape + HTTP and HTTPS (SSL) Settings</p> + + <div class="MEDIAOBJECT"> + <p><img src="proxy_setup.jpg"></p> + </div> + </div> + + <p>With <span class="APPLICATION">Firefox</span>, this is typically set + under:</p> + + <p class="LITERALLAYOUT"> <span class= + "GUIBUTTON">Tools</span> -> <span class= + "GUIBUTTON">Options</span> -> <span class= + "GUIBUTTON">Advanced</span> -> <span class= + "GUIBUTTON">Network</span> -><span class= + "GUIBUTTON">Connection</span> -> <span class= + "GUIBUTTON">Settings</span><br></p> + + <p>Or optionally on some platforms:</p> + + <p class="LITERALLAYOUT"> <span class= + "GUIBUTTON">Edit</span> -> <span class= + "GUIBUTTON">Preferences</span> -> <span class= + "GUIBUTTON">General</span> -> <span class= + "GUIBUTTON">Connection Settings</span> -> <span class= + "GUIBUTTON">Manual Proxy Configuration</span><br></p> + + <p>With <span class="APPLICATION">Netscape</span> (and <span class= + "APPLICATION">Mozilla</span>), this can be set under:</p> + + <p class="LITERALLAYOUT"> <span class= + "GUIBUTTON">Edit</span> -> <span class= + "GUIBUTTON">Preferences</span> -> <span class= + "GUIBUTTON">Advanced</span> -> <span class= + "GUIBUTTON">Proxies</span> -> <span class="GUIBUTTON">HTTP + Proxy</span><br></p> + + <p>For <span class="APPLICATION">Internet Explorer v.5-7</span>:</p> + + <p class="LITERALLAYOUT"> <span class= + "GUIBUTTON">Tools</span> -> <span class="GUIBUTTON">Internet + Options</span> -> <span class= + "GUIBUTTON">Connections</span> -> <span class= + "GUIBUTTON">LAN Settings</span></p> + + <p>Then, check <span class="QUOTE">"Use Proxy"</span> and fill in the + appropriate info (Address: 127.0.0.1, Port: 8118). Include HTTPS (SSL), + if you want HTTPS proxy support too (sometimes labeled <span class= + "QUOTE">"Secure"</span>). Make sure any checkboxes like <span class= + "QUOTE">"Use the same proxy server for all protocols"</span> is + <span class="emphasis EMPHASIS c2">UNCHECKED</span>. You want only HTTP + and HTTPS (SSL)!</p> + + <div class="FIGURE"> + <a name="AEN928" id="AEN928"></a> + + <p class="c3">Figure 3. Proxy Configuration Showing Internet Explorer + HTTP and HTTPS (Secure) Settings</p> + + <div class="MEDIAOBJECT"> + <p><img src="proxy2.jpg"></p> + </div> + </div> + + <p>After doing this, flush your browser's disk and memory caches to force + a re-reading of all pages and to get rid of any ads that may be cached. + Remove any <a href="http://en.wikipedia.org/wiki/Browser_cookie" target= + "_top">cookies</a>, if you want <span class="APPLICATION">Privoxy</span> + to manage that. You are now ready to start enjoying the benefits of using + <span class="APPLICATION">Privoxy</span>!</p> + + <p><span class="APPLICATION">Privoxy</span> itself is typically started + by specifying the main configuration file to be used on the command line. + If no configuration file is specified on the command line, <span class= + "APPLICATION">Privoxy</span> will look for a file named <tt class= + "FILENAME">config</tt> in the current directory. Except on Win32 where it + will try <tt class="FILENAME">config.txt</tt>.</p> + + <div class="SECT2"> + <h2 class="SECT2"><a name="START-REDHAT" id="START-REDHAT">5.1. Red Hat + and Fedora</a></h2> + + <p>A default Red Hat installation may not start <span class= + "APPLICATION">Privoxy</span> upon boot. It will use the file <tt class= + "FILENAME">/etc/privoxy/config</tt> as its main configuration file.</p> + + <table class="c4" border="0" width="100%"> <tr> - <th colspan="3" align="center"> - Privoxy 3.0.18 User Manual - </th> + <td> + <pre class="SCREEN"> + # /etc/rc.d/init.d/privoxy start +</pre> + </td> </tr> + </table> + + <p>Or ...</p> + + <table class="c4" border="0" width="100%"> <tr> - <td width="10%" align="left" valign="bottom"> - <a href="quickstart.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="configuration.html" accesskey="N">Next</a> + <td> + <pre class="SCREEN"> + # service privoxy start +</pre> </td> </tr> </table> - <hr width="100%" class="c1"> </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="STARTUP">5. Starting Privoxy</a> - </h1> - <p> - Before launching <span class="APPLICATION">Privoxy</span> for the - first time, you will want to configure your browser(s) to use <span - class="APPLICATION">Privoxy</span> as a HTTP and HTTPS (SSL) <a href= - "http://en.wikipedia.org/wiki/Proxy_server" target="_top">proxy</a>. - The default is 127.0.0.1 (or localhost) for the proxy address, and - port 8118 (earlier versions used port 8000). This is the one - configuration step <span class="emphasis"><i class="EMPHASIS">that - must be done</i></span>! - </p> - <p> - Please note that <span class="APPLICATION">Privoxy</span> can only - proxy HTTP and HTTPS traffic. It will not work with FTP or other - protocols. - </p> - <p> - </p> - <div class="FIGURE"> - <a name="AEN742"></a> - <p class="c2"> - Figure 2. Proxy Configuration Showing Mozilla/Netscape HTTP and - HTTPS (SSL) Settings - </p> - <div class="MEDIAOBJECT"> - <p> - <img src="proxy_setup.jpg"> - </p> - </div> - </div> - <p> - With <span class="APPLICATION">Firefox</span>, this is typically set - under: - </p> - <p class="LITERALLAYOUT"> - <span class="GUIBUTTON">Tools</span> -> <span - class="GUIBUTTON">Options</span> -> <span class= - "GUIBUTTON">Advanced</span> -> <span class= - "GUIBUTTON">Network</span> -><span class= - "GUIBUTTON">Connection</span> -> <span class= - "GUIBUTTON">Settings</span><br> - - </p> - <p> - Or optionally on some platforms: - </p> - <p class="LITERALLAYOUT"> - <span class="GUIBUTTON">Edit</span> -> <span - class="GUIBUTTON">Preferences</span> -> <span class= - "GUIBUTTON">General</span> -> <span class= - "GUIBUTTON">Connection Settings</span> -> <span class= - "GUIBUTTON">Manual Proxy Configuration</span><br> - - </p> - <p> - With <span class="APPLICATION">Netscape</span> (and <span class= - "APPLICATION">Mozilla</span>), this can be set under: - </p> - <p class="LITERALLAYOUT"> - <span class="GUIBUTTON">Edit</span> -> <span - class="GUIBUTTON">Preferences</span> -> <span class= - "GUIBUTTON">Advanced</span> -> <span class= - "GUIBUTTON">Proxies</span> -> <span class= - "GUIBUTTON">HTTP Proxy</span><br> - - </p> - <p> - For <span class="APPLICATION">Internet Explorer v.5-7</span>: - </p> - <p class="LITERALLAYOUT"> - <span class="GUIBUTTON">Tools</span> -> <span - class="GUIBUTTON">Internet Options</span> -> <span - class="GUIBUTTON">Connections</span> -> <span class= - "GUIBUTTON">LAN Settings</span> - </p> - <p> - Then, check <span class="QUOTE">"Use Proxy"</span> and fill in the - appropriate info (Address: 127.0.0.1, Port: 8118). Include HTTPS - (SSL), if you want HTTPS proxy support too (sometimes labeled <span - class="QUOTE">"Secure"</span>). Make sure any checkboxes like <span - class="QUOTE">"Use the same proxy server for all protocols"</span> is - <span class="emphasis"><i class="EMPHASIS">UNCHECKED</i></span>. You - want only HTTP and HTTPS (SSL)! - </p> - <p> - </p> - <div class="FIGURE"> - <a name="AEN787"></a> - <p class="c2"> - Figure 3. Proxy Configuration Showing Internet Explorer HTTP and - HTTPS (Secure) Settings - </p> - <div class="MEDIAOBJECT"> - <p> - <img src="proxy2.jpg"> - </p> - </div> - </div> + <div class="SECT2"> + <h2 class="SECT2"><a name="START-DEBIAN" id="START-DEBIAN">5.2. + Debian</a></h2> - <p> - After doing this, flush your browser's disk and memory caches to - force a re-reading of all pages and to get rid of any ads that may be - cached. Remove any <a href= - "http://en.wikipedia.org/wiki/Browser_cookie" target= - "_top">cookies</a>, if you want <span class= - "APPLICATION">Privoxy</span> to manage that. You are now ready to - start enjoying the benefits of using <span class= - "APPLICATION">Privoxy</span>! - </p> - <p> - <span class="APPLICATION">Privoxy</span> itself is typically started - by specifying the main configuration file to be used on the command - line. If no configuration file is specified on the command line, - <span class="APPLICATION">Privoxy</span> will look for a file named - <tt class="FILENAME">config</tt> in the current directory. Except on - Win32 where it will try <tt class="FILENAME">config.txt</tt>. - </p> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="START-REDHAT">5.1. Red Hat and Fedora</a> - </h2> - <p> - A default Red Hat installation may not start <span class= - "APPLICATION">Privoxy</span> upon boot. It will use the file <tt - class="FILENAME">/etc/privoxy/config</tt> as its main configuration - file. - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> - # /etc/rc.d/init.d/privoxy start -</pre> - </td> - </tr> - </table> - - <p> - Or ... - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> - # service privoxy start -</pre> - </td> - </tr> - </table> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="START-DEBIAN">5.2. Debian</a> - </h2> - <p> - We use a script. Note that Debian typically starts <span class= - "APPLICATION">Privoxy</span> upon booting per default. It will use - the file <tt class="FILENAME">/etc/privoxy/config</tt> as its main - configuration file. - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + <p>We use a script. Note that Debian typically starts <span class= + "APPLICATION">Privoxy</span> upon booting per default. It will use the + file <tt class="FILENAME">/etc/privoxy/config</tt> as its main + configuration file.</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> # /etc/init.d/privoxy start </pre> - </td> - </tr> - </table> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="START-WINDOWS">5.3. Windows</a> - </h2> - <p> - Click on the <span class="APPLICATION">Privoxy</span> Icon to start - <span class="APPLICATION">Privoxy</span>. If no configuration file - is specified on the command line, <span class= - "APPLICATION">Privoxy</span> will look for a file named <tt class= - "FILENAME">config.txt</tt>. Note that Windows will automatically - start <span class="APPLICATION">Privoxy</span> when the system - starts if you chose that option when installing. - </p> - <p> - <span class="APPLICATION">Privoxy</span> can run with full Windows - service functionality. On Windows only, the <span class= - "APPLICATION">Privoxy</span> program has two new command line - arguments to install and uninstall <span class= - "APPLICATION">Privoxy</span> as a service. See the <a href= - "installation.html#INSTALLATION-PACK-WIN">Windows Installation - instructions</a> for details. - </p> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="START-UNICES">5.4. Solaris, NetBSD, FreeBSD, HP-UX and - others</a> - </h2> - <p> - Example Unix startup command: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="START-WINDOWS" id="START-WINDOWS">5.3. + Windows</a></h2> + + <p>Click on the <span class="APPLICATION">Privoxy</span> Icon to start + <span class="APPLICATION">Privoxy</span>. If no configuration file is + specified on the command line, <span class="APPLICATION">Privoxy</span> + will look for a file named <tt class="FILENAME">config.txt</tt>. Note + that Windows will automatically start <span class= + "APPLICATION">Privoxy</span> when the system starts if you chose that + option when installing.</p> + + <p><span class="APPLICATION">Privoxy</span> can run with full Windows + service functionality. On Windows only, the <span class= + "APPLICATION">Privoxy</span> program has two new command line arguments + to install and uninstall <span class="APPLICATION">Privoxy</span> as a + service. See the <a href= + "installation.html#INSTALLATION-PACK-WIN">Windows Installation + instructions</a> for details.</p> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="START-UNICES" id="START-UNICES">5.4. + Solaris, NetBSD, FreeBSD, HP-UX and others</a></h2> + + <p>Example Unix startup command:</p> + + <table class="c4" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> # /usr/sbin/privoxy /etc/privoxy/config </pre> - </td> - </tr> - </table> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="START-OS2">5.5. OS/2</a> - </h2> - <p> - During installation, <span class="APPLICATION">Privoxy</span> is - configured to start automatically when the system restarts. You can - start it manually by double-clicking on the <span class= - "APPLICATION">Privoxy</span> icon in the <span class= - "APPLICATION">Privoxy</span> folder. - </p> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="START-MACOSX">5.6. Mac OS X</a> - </h2> - <p> - After downloading the privoxy software, unzip the downloaded file - by double-clicking on the zip file icon. Then, double-click on the - installer package icon and follow the installation process. - </p> - <p> - The privoxy service will automatically start after a successful - installation. In addition, the privoxy service will automatically - start every time your computer starts up. - </p> - <p> - To prevent the privoxy service from automatically starting when - your computer starts up, remove or rename the folder named - /Library/StartupItems/Privoxy. - </p> - <p> - A simple application named Privoxy Utility has been created which - enables administrators to easily start and stop the privoxy - service. - </p> - <p> - In addition, the Privoxy Utility presents a simple way for - administrators to edit the various privoxy config files. A method - to uninstall the software is also available. - </p> - <p> - An administrator username and password must be supplied in order - for the Privoxy Utility to perform any of the tasks. - </p> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="START-AMIGAOS">5.7. AmigaOS</a> - </h2> - <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="START-GENTOO">5.8. Gentoo</a> - </h2> - <p> - A script is again used. It will use the file <tt class= - "FILENAME">/etc/privoxy/config</tt> as its main configuration file. - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> - /etc/init.d/privoxy start -</pre> - </td> - </tr> - </table> - - <p> - Note that <span class="APPLICATION">Privoxy</span> is not - automatically started at boot time by default. You can change this - with the <tt class="LITERAL">rc-update</tt> command. - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> - rc-update add privoxy default -</pre> - </td> - </tr> - </table> - </div> - <div class="SECT2"> - <h2 class="SECT2"> - <a name="CMDOPTIONS">5.9. Command Line Options</a> - </h2> - <p> - <span class="APPLICATION">Privoxy</span> may be invoked with the - following command-line options: - </p> - <p> - </p> - <ul> - <li> - <p> - <span class="emphasis"><i class="EMPHASIS">--version</i></span> - </p> - <p> - Print version info and exit. Unix only. - </p> - </li> - <li> - <p> - <span class="emphasis"><i class="EMPHASIS">--help</i></span> - </p> - <p> - Print short usage info and exit. Unix only. - </p> - </li> - <li> - <p> - <span class="emphasis"><i class= - "EMPHASIS">--no-daemon</i></span> - </p> - <p> - Don't become a daemon, i.e. don't fork and become process group - leader, and don't detach from controlling tty. Unix only. - </p> - </li> - <li> - <p> - <span class="emphasis"><i class="EMPHASIS">--pidfile - FILE</i></span> - </p> - <p> - On startup, write the process ID to <span class="emphasis"><i - class="EMPHASIS">FILE</i></span>. Delete the <span class= - "emphasis"><i class="EMPHASIS">FILE</i></span> on exit. Failure - to create or delete the <span class="emphasis"><i class= - "EMPHASIS">FILE</i></span> is non-fatal. If no <span class= - "emphasis"><i class="EMPHASIS">FILE</i></span> option is given, - no PID file will be used. Unix only. - </p> - </li> - <li> - <p> - <span class="emphasis"><i class="EMPHASIS">--user - USER[.GROUP]</i></span> - </p> - <p> - After (optionally) writing the PID file, assume the user ID of - <span class="emphasis"><i class="EMPHASIS">USER</i></span>, and - if included the GID of GROUP. Exit if the privileges are not - sufficient to do so. Unix only. - </p> - </li> - <li> - <p> - <span class="emphasis"><i class="EMPHASIS">--chroot</i></span> - </p> - <p> - Before changing to the user ID given in the <span class= - "emphasis"><i class="EMPHASIS">--user</i></span> option, chroot - to that user's home directory, i.e. make the kernel pretend to - the <span class="APPLICATION">Privoxy</span> process that the - directory tree starts there. If set up carefully, this can - limit the impact of possible vulnerabilities in <span class= - "APPLICATION">Privoxy</span> to the files contained in that - hierarchy. Unix only. - </p> - </li> - <li> - <p> - <span class="emphasis"><i class= - "EMPHASIS">--pre-chroot-nslookup hostname</i></span> - </p> - <p> - Specifies a hostname to look up before doing a chroot. On some - systems, initializing the resolver library involves reading - config files from /etc and/or loading additional shared - libraries from /lib. On these systems, doing a hostname lookup - before the chroot reduces the number of files that must be - copied into the chroot tree. - </p> - <p> - For fastest startup speed, a good value is a hostname that is - not in /etc/hosts but that your local name server (listed in - /etc/resolv.conf) can resolve without recursion (that is, - without having to ask any other name servers). The hostname - need not exist, but if it doesn't, an error message (which can - be ignored) will be output. - </p> - </li> - <li> - <p> - <span class="emphasis"><i class= - "EMPHASIS">configfile</i></span> - </p> - <p> - If no <span class="emphasis"><i class= - "EMPHASIS">configfile</i></span> is included on the command - line, <span class="APPLICATION">Privoxy</span> will look for a - file named <span class="QUOTE">"config"</span> in the current - directory (except on Win32 where it will look for <span class= - "QUOTE">"config.txt"</span> instead). Specify full path to - avoid confusion. If no config file is found, <span class= - "APPLICATION">Privoxy</span> will fail to start. - </p> - </li> - </ul> - - <p> - On <span class="APPLICATION">MS Windows</span> only there are two - additional command-line options to allow <span class= - "APPLICATION">Privoxy</span> to install and run as a <span class= - "emphasis"><i class="EMPHASIS">service</i></span>. See the <a href= - "installation.html#INSTALLATION-PACK-WIN">Window Installation - section</a> for details. - </p> - </div> + </td> + </tr> + </table> </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> + + <div class="SECT2"> + <h2 class="SECT2"><a name="START-OS2" id="START-OS2">5.5. OS/2</a></h2> + + <p>During installation, <span class="APPLICATION">Privoxy</span> is + configured to start automatically when the system restarts. You can + start it manually by double-clicking on the <span class= + "APPLICATION">Privoxy</span> icon in the <span class= + "APPLICATION">Privoxy</span> folder.</p> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="START-MACOSX" id="START-MACOSX">5.6. Mac OS + X</a></h2> + + <p>After downloading the privoxy software, unzip the downloaded file by + double-clicking on the zip file icon. Then, double-click on the + installer package icon and follow the installation process.</p> + + <p>The privoxy service will automatically start after a successful + installation. In addition, the privoxy service will automatically start + every time your computer starts up.</p> + + <p>To prevent the privoxy service from automatically starting when your + computer starts up, remove or rename the folder named + /Library/StartupItems/Privoxy.</p> + + <p>A simple application named Privoxy Utility has been created which + enables administrators to easily start and stop the privoxy + service.</p> + + <p>In addition, the Privoxy Utility presents a simple way for + administrators to edit the various privoxy config files. A method to + uninstall the software is also available.</p> + + <p>An administrator username and password must be supplied in order for + the Privoxy Utility to perform any of the tasks.</p> + </div> + + <div class="SECT2"> + <h2 class="SECT2"><a name="START-AMIGAOS" id="START-AMIGAOS">5.7. + AmigaOS</a></h2> + + <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="START-GENTOO" id="START-GENTOO">5.8. + Gentoo</a></h2> + + <p>A script is again used. It will use the file <tt class= + "FILENAME">/etc/privoxy/config</tt> as its main configuration file.</p> + + <table class="c4" border="0" width="100%"> <tr> - <td width="33%" align="left" valign="top"> - <a href="quickstart.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="configuration.html" accesskey="N">Next</a> + <td> + <pre class="SCREEN"> + /etc/init.d/privoxy start + +</pre> </td> </tr> + </table> + + <p>Note that <span class="APPLICATION">Privoxy</span> is not + automatically started at boot time by default. You can change this with + the <tt class="LITERAL">rc-update</tt> command.</p> + + <table class="c4" border="0" width="100%"> <tr> - <td width="33%" align="left" valign="top"> - Quickstart to Using Privoxy - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Privoxy Configuration + <td> + <pre class="SCREEN"> + rc-update add privoxy default + +</pre> </td> </tr> </table> </div> - </body> -</html> + <div class="SECT2"> + <h2 class="SECT2"><a name="CMDOPTIONS" id="CMDOPTIONS">5.9. Command + Line Options</a></h2> + + <p><span class="APPLICATION">Privoxy</span> may be invoked with the + following command-line options:</p> + + <ul> + <li> + <p><span class="emphasis EMPHASIS c2">--version</span></p> + + <p>Print version info and exit. Unix only.</p> + </li> + + <li> + <p><span class="emphasis EMPHASIS c2">--help</span></p> + + <p>Print short usage info and exit. Unix only.</p> + </li> + + <li> + <p><span class="emphasis EMPHASIS c2">--no-daemon</span></p> + + <p>Don't become a daemon, i.e. don't fork and become process group + leader, and don't detach from controlling tty. Unix only.</p> + </li> + + <li> + <p><span class="emphasis EMPHASIS c2">--pidfile FILE</span></p> + + <p>On startup, write the process ID to <span class= + "emphasis EMPHASIS c2">FILE</span>. Delete the <span class= + "emphasis EMPHASIS c2">FILE</span> on exit. Failure to create or + delete the <span class="emphasis EMPHASIS c2">FILE</span> is + non-fatal. If no <span class="emphasis EMPHASIS c2">FILE</span> + option is given, no PID file will be used. Unix only.</p> + </li> + + <li> + <p><span class="emphasis EMPHASIS c2">--user + USER[.GROUP]</span></p> + + <p>After (optionally) writing the PID file, assume the user ID of + <span class="emphasis EMPHASIS c2">USER</span>, and if included the + GID of GROUP. Exit if the privileges are not sufficient to do so. + Unix only.</p> + </li> + + <li> + <p><span class="emphasis EMPHASIS c2">--chroot</span></p> + + <p>Before changing to the user ID given in the <span class= + "emphasis EMPHASIS c2">--user</span> option, chroot to that user's + home directory, i.e. make the kernel pretend to the <span class= + "APPLICATION">Privoxy</span> process that the directory tree starts + there. If set up carefully, this can limit the impact of possible + vulnerabilities in <span class="APPLICATION">Privoxy</span> to the + files contained in that hierarchy. Unix only.</p> + </li> + + <li> + <p><span class="emphasis EMPHASIS c2">--pre-chroot-nslookup + hostname</span></p> + + <p>Specifies a hostname to look up before doing a chroot. On some + systems, initializing the resolver library involves reading config + files from /etc and/or loading additional shared libraries from + /lib. On these systems, doing a hostname lookup before the chroot + reduces the number of files that must be copied into the chroot + tree.</p> + + <p>For fastest startup speed, a good value is a hostname that is + not in /etc/hosts but that your local name server (listed in + /etc/resolv.conf) can resolve without recursion (that is, without + having to ask any other name servers). The hostname need not exist, + but if it doesn't, an error message (which can be ignored) will be + output.</p> + </li> + + <li> + <p><span class="emphasis EMPHASIS c2">configfile</span></p> + + <p>If no <span class="emphasis EMPHASIS c2">configfile</span> is + included on the command line, <span class= + "APPLICATION">Privoxy</span> will look for a file named + <span class="QUOTE">"config"</span> in the current directory + (except on Win32 where it will look for <span class= + "QUOTE">"config.txt"</span> instead). Specify full path to avoid + confusion. If no config file is found, <span class= + "APPLICATION">Privoxy</span> will fail to start.</p> + </li> + </ul> + + <p>On <span class="APPLICATION">MS Windows</span> only there are two + additional command-line options to allow <span class= + "APPLICATION">Privoxy</span> to install and run as a <span class= + "emphasis EMPHASIS c2">service</span>. See the <a href= + "installation.html#INSTALLATION-PACK-WIN">Window Installation + section</a> for details.</p> + </div> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="quickstart.html" + accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + + <td width="33%" align="right" valign="top"><a href= + "configuration.html" accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Quickstart to Using + Privoxy</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Privoxy Configuration</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/user-manual/templates.html b/doc/webserver/user-manual/templates.html index 11784d98..9342a8da 100644 --- a/doc/webserver/user-manual/templates.html +++ b/doc/webserver/user-manual/templates.html @@ -1,186 +1,172 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - Privoxy's Template Files - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> - <link rel="PREVIOUS" title="Filter Files" href="filter-file.html"> - <link rel="NEXT" title= - "Contacting the Developers, Bug Reporting and Feature Requests" href= - "contact.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <link rel="STYLESHEET" type="text/css" href="p_doc.css"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>Privoxy's Template Files</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> + <link rel="PREVIOUS" title="Filter Files" href="filter-file.html"> + <link rel="NEXT" title= + "Contacting the Developers, Bug Reporting and Feature Requests" href= + "contact.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <link rel="STYLESHEET" type="text/css" href="p_doc.css"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy 3.0.18 User Manual - </th> - </tr> - <tr> - <td width="10%" align="left" valign="bottom"> - <a href="filter-file.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="contact.html" accesskey="N">Next</a> - </td> - </tr> - </table> - <hr width="100%" class="c1"> - </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="TEMPLATES">10. Privoxy's Template Files</a> - </h1> - <p> - All <span class="APPLICATION">Privoxy</span> built-in pages, i.e. - error pages such as the <a href="http://show-the-404-error.page" - target="_top"><span class="QUOTE">"404 - No Such Domain"</span> error - page</a>, the <a href= - "http://ads.bannerserver.example.com/nasty-ads/sponsor.html" target= - "_top"><span class="QUOTE">"BLOCKED"</span> page</a> and all pages of - its <a href="http://config.privoxy.org/" target="_top">web-based user - interface</a>, are generated from <span class="emphasis"><i class= - "EMPHASIS">templates</i></span>. (<span class= - "APPLICATION">Privoxy</span> must be running for the above links to - work as intended.) - </p> - <p> - These templates are stored in a subdirectory of the <a href= - "config.html#CONFDIR">configuration directory</a> called <tt class= - "FILENAME">templates</tt>. On Unixish platforms, this is typically <a - href="file:///etc/privoxy/templates/" target="_top"><tt class= - "FILENAME">/etc/privoxy/templates/</tt></a>. - </p> - <p> - The templates are basically normal HTML files, but with place-holders - (called symbols or exports), which <span class= - "APPLICATION">Privoxy</span> fills at run time. It is possible to - edit the templates with a normal text editor, should you want to - customize them. (<span class="emphasis"><i class="EMPHASIS">Not - recommended for the casual user</i></span>). Should you create your - own custom templates, you should use the <tt class= - "FILENAME">config</tt> setting <a href= - "config.html#TEMPLDIR">templdir</a> to specify an alternate location, - so your templates do not get overwritten during upgrades. - </p> - <p> - Note that just like in configuration files, lines starting with <tt - class="LITERAL">#</tt> are ignored when the templates are filled in. - </p> - <p> - The place-holders are of the form <tt class="LITERAL">@name@</tt>, - and you will find a list of available symbols, which vary from - template to template, in the comments at the start of each file. Note - that these comments are not always accurate, and that it's probably - best to look at the existing HTML code to find out which symbols are - supported and what they are filled in with. - </p> - <p> - A special application of this substitution mechanism is to make whole - blocks of HTML code disappear when a specific symbol is set. We use - this for many purposes, one of them being to include the beta warning - in all our user interface (CGI) pages when <span class= - "APPLICATION">Privoxy</span> is in an alpha or beta development - stage: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + table.c3 {background-color: #E0E0E0} + span.c2 {font-style: italic} + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy 3.0.18 User Manual</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href= + "filter-file.html" accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href="contact.html" + accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="TEMPLATES" id="TEMPLATES">10. Privoxy's + Template Files</a></h1> + + <p>All <span class="APPLICATION">Privoxy</span> built-in pages, i.e. + error pages such as the <a href="http://show-the-404-error.page" target= + "_top"><span class="QUOTE">"404 - No Such Domain"</span> error page</a>, + the <a href="http://ads.bannerserver.example.com/nasty-ads/sponsor.html" + target="_top"><span class="QUOTE">"BLOCKED"</span> page</a> and all pages + of its <a href="http://config.privoxy.org/" target="_top">web-based user + interface</a>, are generated from <span class= + "emphasis EMPHASIS c2">templates</span>. (<span class= + "APPLICATION">Privoxy</span> must be running for the above links to work + as intended.)</p> + + <p>These templates are stored in a subdirectory of the <a href= + "config.html#CONFDIR">configuration directory</a> called <tt class= + "FILENAME">templates</tt>. On Unixish platforms, this is typically + <a href="file:///etc/privoxy/templates/" target="_top"><tt class= + "FILENAME">/etc/privoxy/templates/</tt></a>.</p> + + <p>The templates are basically normal HTML files, but with place-holders + (called symbols or exports), which <span class= + "APPLICATION">Privoxy</span> fills at run time. It is possible to edit + the templates with a normal text editor, should you want to customize + them. (<span class="emphasis EMPHASIS c2">Not recommended for the casual + user</span>). Should you create your own custom templates, you should use + the <tt class="FILENAME">config</tt> setting <a href= + "config.html#TEMPLDIR">templdir</a> to specify an alternate location, so + your templates do not get overwritten during upgrades.</p> + + <p>Note that just like in configuration files, lines starting with + <tt class="LITERAL">#</tt> are ignored when the templates are filled + in.</p> + + <p>The place-holders are of the form <tt class="LITERAL">@name@</tt>, and + you will find a list of available symbols, which vary from template to + template, in the comments at the start of each file. Note that these + comments are not always accurate, and that it's probably best to look at + the existing HTML code to find out which symbols are supported and what + they are filled in with.</p> + + <p>A special application of this substitution mechanism is to make whole + blocks of HTML code disappear when a specific symbol is set. We use this + for many purposes, one of them being to include the beta warning in all + our user interface (CGI) pages when <span class= + "APPLICATION">Privoxy</span> is in an alpha or beta development + stage:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> <!-- @if-unstable-start --> ... beta warning HTML code goes here ... <!-- if-unstable-end@ --> </pre> - </td> - </tr> - </table> - - <p> - If the "unstable" symbol is set, everything in between and including - <tt class="LITERAL">@if-unstable-start</tt> and <tt class= - "LITERAL">if-unstable-end@</tt> will disappear, leaving nothing but - an empty comment: - </p> - <p> - </p> - <table border="0" bgcolor="#E0E0E0" width="100%"> - <tr> - <td> -<pre class="SCREEN"> + </td> + </tr> + </table> + + <p>If the "unstable" symbol is set, everything in between and including + <tt class="LITERAL">@if-unstable-start</tt> and <tt class= + "LITERAL">if-unstable-end@</tt> will disappear, leaving nothing but an + empty comment:</p> + + <table class="c3" border="0" width="100%"> + <tr> + <td> + <pre class="SCREEN"> <!-- --> </pre> - </td> - </tr> - </table> - - <p> - There's also an if-then-else construct and an <tt class= - "LITERAL">#include</tt> mechanism, but you'll sure find out if you - are inclined to edit the templates ;-) - </p> - <p> - All templates refer to a style located at <a href= - "http://config.privoxy.org/send-stylesheet" target="_top"><tt class= - "LITERAL">http://config.privoxy.org/send-stylesheet</tt></a>. This - is, of course, locally served by <span class= - "APPLICATION">Privoxy</span> and the source for it can be found and - edited in the <tt class="FILENAME">cgi-style.css</tt> template. - </p> - </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="filter-file.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="contact.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - Filter Files - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Contacting the Developers, Bug Reporting and Feature Requests - </td> - </tr> - </table> - </div> - </body> -</html> + </td> + </tr> + </table> + + <p>There's also an if-then-else construct and an <tt class= + "LITERAL">#include</tt> mechanism, but you'll sure find out if you are + inclined to edit the templates ;-)</p> + + <p>All templates refer to a style located at <a href= + "http://config.privoxy.org/send-stylesheet" target="_top"><tt class= + "LITERAL">http://config.privoxy.org/send-stylesheet</tt></a>. This is, of + course, locally served by <span class="APPLICATION">Privoxy</span> and + the source for it can be found and edited in the <tt class= + "FILENAME">cgi-style.css</tt> template.</p> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="filter-file.html" + accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + + <td width="33%" align="right" valign="top"><a href="contact.html" + accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Filter Files</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Contacting the Developers, + Bug Reporting and Feature Requests</td> + </tr> + </table> + </div> +</body> +</html> diff --git a/doc/webserver/user-manual/whatsnew.html b/doc/webserver/user-manual/whatsnew.html index 5a8cfa65..3e38ba0c 100644 --- a/doc/webserver/user-manual/whatsnew.html +++ b/doc/webserver/user-manual/whatsnew.html @@ -1,700 +1,1010 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 -Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> + <html> - <head> - <meta name="generator" content="HTML Tidy, see www.w3.org"> - <title> - What's New in this Release - </title> - <meta name="GENERATOR" content= - "Modular DocBook HTML Stylesheet Version 1.79"> - <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> - <link rel="PREVIOUS" title="Installation" href="installation.html"> - <link rel="NEXT" title="Quickstart to Using Privoxy" href= - "quickstart.html"> - <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <link rel="STYLESHEET" type="text/css" href="p_doc.css"> -<style type="text/css"> - body { +<head> + <meta name="generator" content= + "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org"> + + <title>What's New in this Release</title> + <meta name="GENERATOR" content= + "Modular DocBook HTML Stylesheet Version 1.79"> + <link rel="HOME" title="Privoxy 3.0.18 User Manual" href="index.html"> + <link rel="PREVIOUS" title="Installation" href="installation.html"> + <link rel="NEXT" title="Quickstart to Using Privoxy" href= + "quickstart.html"> + <link rel="STYLESHEET" type="text/css" href="../p_doc.css"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <link rel="STYLESHEET" type="text/css" href="p_doc.css"> + <style type="text/css"> +body { background-color: #EEEEEE; color: #000000; - } - :link { color: #0000FF } - :visited { color: #840084 } - :active { color: #0000FF } - hr.c1 {text-align: left} -</style> - </head> - <body class="SECT1"> - <div class="NAVHEADER"> - <table summary="Header navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <th colspan="3" align="center"> - Privoxy 3.0.18 User Manual - </th> - </tr> - <tr> - <td width="10%" align="left" valign="bottom"> - <a href="installation.html" accesskey="P">Prev</a> - </td> - <td width="80%" align="center" valign="bottom"> - </td> - <td width="10%" align="right" valign="bottom"> - <a href="quickstart.html" accesskey="N">Next</a> - </td> - </tr> - </table> - <hr width="100%" class="c1"> - </div> - <div class="SECT1"> - <h1 class="SECT1"> - <a name="WHATSNEW">3. What's New in this Release</a> - </h1> - <p> - <span class="APPLICATION">Privoxy 3.0.17</span> is a stable release. - The changes since 3.0.16 stable are: - </p> - <p> - </p> + } + :link { color: #0000FF } + :visited { color: #840084 } + :active { color: #0000FF } + hr.c1 {text-align: left} + </style> +</head> + +<body class="SECT1"> + <div class="NAVHEADER"> + <table summary="Header navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <th colspan="3" align="center">Privoxy 3.0.18 User Manual</th> + </tr> + + <tr> + <td width="10%" align="left" valign="bottom"><a href= + "installation.html" accesskey="P">Prev</a></td> + + <td width="80%" align="center" valign="bottom"></td> + + <td width="10%" align="right" valign="bottom"><a href= + "quickstart.html" accesskey="N">Next</a></td> + </tr> + </table> + <hr class="c1" width="100%"> + </div> + + <div class="SECT1"> + <h1 class="SECT1"><a name="WHATSNEW" id="WHATSNEW">3. What's New in this + Release</a></h1> + + <p><span class="APPLICATION">Privoxy 3.0.18</span> is a stable release. + The changes since 3.0.17 stable are:</p> + + <ul> + <li> + <p>Bug fixes:</p> + + <ul> + <li> + <p>Fix a logic bug that could cause Privoxy to reuse a tainted + server socket. It could happen for server sockets that got + tainted by a server-header-tagger-induced block, in which case + Privoxy doesn't necessarily read the whole server response. If + keep-alive was enabled and the request following the blocked one + was to the same host and using the same forwarding settings, + Privoxy would send it on the tainted server socket. While the + server would simply treat it as a pipelined request, Privoxy + would later on fail to properly parse the server's response as it + would try to parse the unread data from the first response as + server headers for the second one. Regression introduced in + 3.0.17.</p> + </li> + + <li> + <p>When implying keep-alive in client_connection(), remember that + the client didn't Fixes a regression introduced in 3.0.13 that + would cause Privoxy to wait for additional client requests after + receiving a HTTP/1.1 request with "Connection: close" set and + connection sharing enabled. With clients like curl which + terminates the client connection after detecting that the whole + body has been received it doesn't really matter, but with clients + like FreeBSD's fetch the client connection would be kept open + until it timed out.</p> + </li> + + <li> + <p>Fix a subtle race condition between + prepare_csp_for_next_request() and sweep() A thread preparing + itself for the next client request could briefly appear to be + inactive. If all other threads were already using more recent + files, the thread could get its files swept away under its feet. + I've only seen it while stress testing in valgrind while touching + action files in a loop. It's unlikely to have caused any actual + problems in the real world.</p> + </li> + </ul> + </li> + + <li> + <p>General improvements:</p> + + <ul> + <li> + <p>Privoxy can (re)compress buffered content before delivering it + to the client. Disabled by default as most users wouldn't benefit + from it.</p> + </li> + + <li> + <p>The +fast-redirects{check-decoded-url} action checks URL + segments separately. If there are other parameters behind the + redirect URL, this makes it unnecessary to cut them of by + additionally using a +redirect{} pcrs command. Initial patch + submitted by Jamie Zawinski in #3429848.</p> + </li> + + <li> + <p>Properly deal with FEATURE_TOGGLE being disabled</p> + </li> + + <li> + <p>Adjust url_code_map[] so spaces are replaced with %20 instead + of '+' While '+' can be used by client's submitting form data, + this is not actually what Privoxy is using the lookups for. This + is more of a cosmetic issue and doesn't fix any actual problems + I'm aware of.</p> + </li> + + <li> + <p>When compiled without FEATURE_FAST_REDIRECTS, do not silently + ignore +fast-redirect{} directives</p> + </li> + + <li> + <p>Added a workaround for GNU libc's strptime() reporting + negative year values when the parsed year is only specified with + two digits. On affected systems cookies with such a date would + not be turned into session cookies by the +session-cookies-only + action. Reported by Vaeinoe in #3403560</p> + </li> + + <li> + <p>When loading action sections, verify that the referenced + filters exist Currently missing filters only result in an error + message, but eventually the severity will be upgraded to + fatal.</p> + </li> + + <li> + <p>Allow to bind to multiple separate addresses. Patch set + submitted by Petr Pisar in #3354485.</p> + </li> + + <li> + <p>Set socket_error to errno if connecting fails in + rfc2553_connect_to() Previously rejected direct connections could + be incorrectly reported as DNS issues.</p> + </li> + + <li> + <p>Fixed bind failures with certain GNU libc versions if no + non-loopback IP address has been configured on the system. This + is mainly an issue if the system is using DHCP and Privoxy is + started before the network is completely configured. Reported by + Raphael Marichez in #3349356. Additional insight from Petr + Pisar.</p> + </li> + + <li> + <p>Disable filters if SDCH compression is used unless filtering + is forced. If SDCH was combined with a supported compression + algorithm, we'd previously try to decompress it, when successful + apply the enabled filters and ditch the Content-Encoding header + even though the SDCH compression wasn't removed. Reported by + zebul666 in #3225863.</p> + </li> + + <li> + <p>Privoxy log messages now use the ISO 8601 date format + %Y-%m-%d. It's only slightly longer than the old format, but + contains the full date including the year and allows sorting by + date (when grepping in multiple log files) without hassle.</p> + </li> + + <li> + <p>Make a copy of the --user value and only mess with that when + splitting user and group. On some operating systems modifying the + value directly is reflected in the output of ps and friends and + can be misleading. Reported by zepard in #3292710.</p> + </li> + + <li> + <p>If forwarded-connect-retries is set, only retry if the we are + actually forwarding the request. Previously direct connections + would be retried as well.</p> + </li> + + <li> + <p>Fixed a small memory leak when retrying connection</p> + </li> + + <li> + <p>Remove an incorrect assertion in + compile_dynamic_pcrs_job_list() It could be triggered by a pcrs + job with an invalid pcre pattern (for example one that contains a + lone quantifier).</p> + </li> + </ul> + </li> + + <li> + <p>Action file improvements:</p> + + <ul> + <li> + <p>Moved the site-specific block pattern section below the one + for the generic patterns so for requests that are matched in + both, the block reason for the domain is shown which is usually + more useful than showing the one for the generic pattern.</p> + </li> + + <li> + <p>Add a (disabled) section to block various Facebook tracking + URLs Reported by Dan Stahlke in #3421764.</p> + </li> + + <li> + <p>Add a (disabled) section to rewrite and redirect + click-tracking URLs used on news.google.com Reported by Dan + Stahlke in #3421755.</p> + </li> + + <li> + <p>Unblock linuxcounter.net/ Reported by Dan Stahlke in + #3422612.</p> + </li> + + <li> + <p>Block 'www91.intel.com/' which is used by Omniture. Reported + by Adam Piggott in #3167370.</p> + </li> + + <li> + <p>Disable the handle-as-empty-doc-returns-ok option and mark it + as deprecated. Reminded by tceverling in #2790091.</p> + </li> + + <li> + <p>Add ".ivwbox.de/" to the "Cross-site user tracking" section. + Reported by Nettozahler in #3172525.</p> + </li> + + <li> + <p>Unblock and fast-redirect ".awin1.com/.*=http://" Reported by + Adam Piggott in #3170921.</p> + </li> + + <li> + <p>Block "b.collective-media.net/".</p> + </li> + + <li> + <p>Widen the Debian popcon exception to "qa.debian.org/popcon". + Seen in Debian's 05_default_action.dpatch by Roland + Rosenfeld.</p> + </li> + + <li> + <p>Block ".gemius.pl/" which only seems to be used for user + tracking. Reported by johnd16 in #3002731. Additional input from + Lee and movax.</p> + </li> + + <li> + <p>Disable banners-by-size filters for '.thinkgeek.com/' The + filter only seems to catch pictures of the inventory.</p> + </li> + + <li> + <p>Block requests for 'go.idmnet.bbelements.com/please/showit/' + Reported by kacperdominik in #3372959.</p> + </li> + + <li> + <p>Unblock adainitiative.org/</p> + </li> + + <li> + <p>Add a fast-redirects exception for + '.googleusercontent.com/.*=cache'</p> + </li> + + <li> + <p>Add a fast-redirects exception for + webcache.googleusercontent.com/</p> + </li> + + <li> + <p>Remove -prevent-compression from the fragile alias It's no + longer used anywhere by default and isn't known to break stuff + anyway.</p> + </li> + + <li> + <p>Unblock http://adassier.wordpress.com/ and + http://adassier.files.wordpress.com/</p> + </li> + </ul> + </li> + + <li> + <p>Filter file improvements:</p> + + <ul> + <li> + <p>Let the yahoo filter hide '.ads'</p> + </li> + + <li> + <p>Let the msn filter hide overlay ads for Facebook 'likes' in + search results.</p> + </li> + + <li> + <p>Let the msn filter hide elements with the id 's_notf_div'. + They only seem to be used to advertise site 'enhancements'.</p> + </li> + + <li> + <p>Let the js-events filter additionally disarm setInterval() + Suggested by dg1727 in #3423775.</p> + </li> + </ul> + </li> + + <li> + <p>Documentation improvements:</p> + + <ul> + <li> + <p>Clarify the effect of compiling Privoxy with zlib support + Suggested by dg1727 in #3423782.</p> + </li> + + <li> + <p>Point out that the SourceForge messaging system works like a + blackhole and should thus not be used</p> + </li> + + <li> + <p>Mention some of the problems one can experience when not + explicitly configuring an IP addresses as listen address.</p> + </li> + + <li> + <p>Explicitly mention that hostnames can be used instead of IP + addresses for the listen-address, that only the first address + returned will be used and what happens if the address is invalid. + Requested by Calestyo in #3302213.</p> + </li> + </ul> + </li> + + <li> + <p>Log message improvements:</p> + + <ul> + <li> + <p>If only the server connection is kept alive, do not pretent to + wait for a new client request.</p> + </li> + + <li> + <p>Remove a superfluos log message in forget_connection()</p> + </li> + + <li> + <p>In chat(), properly report missing server responses as such + instead of calling them empty</p> + </li> + + <li> + <p>In forwarded_connect(), fix a log message nobody should ever + see</p> + </li> + + <li> + <p>Fix a log message in socks5_connect(), a failed write + operation was logged as failed read operation</p> + </li> + + <li> + <p>Let load_one_actions_file() properly complain about a missing + '{' at the beginning of the file Simply stating that a line is + invalid isn't particularly helpful.</p> + </li> + + <li> + <p>Do not claim to listen on a socket until we actually do. Patch + submitted by Petr Pisar #3354485</p> + </li> + + <li> + <p>Prevent a duplicated LOG_LEVEL_CLF message when sending out + the "no-server-data" response</p> + </li> + + <li> + <p>Also log the client socket when dropping a connection.</p> + </li> + + <li> + <p>Include the destination host in the 'Request ... marked for + blocking. limit-connect{...} doesn't allow CONNECT ...' message + Patch submitted by Saperski in #3296250.</p> + </li> + + <li> + <p>Prevent a duplicated log message if none of the resolved IP + addresses were reachable</p> + </li> + + <li> + <p>In connect_to(), do not pretend to retry if + forwarded-connect-retries is zero or unset.</p> + </li> + + <li> + <p>When a specified user or group can't be found, put the name in + single-quotes when logging it.</p> + </li> + + <li> + <p>In rfc2553_connect_to(), explain getnameinfo() errors + differently.</p> + </li> + + <li> + <p>Remove a useless log message in chat()</p> + </li> + + <li> + <p>When retrying to connect, also log the maximum number of + connection attempts</p> + </li> + + <li> + <p>Rephrase a log message in compile_dynamic_pcrs_job_list() + Divide the error code and its meaning with a colon. Call the pcrs + job dynamic and not the filter. Filters may contain dynamic and + non-dynamic pcrs jobs at the same time. Only mention the name of + the filter or tagger, but don't claim it's a filter when it could + be a tagger.</p> + </li> + + <li> + <p>In a fatal error message in load_one_actions_file(), cover + both URL and TAG patterns</p> + </li> + + <li> + <p>In pcrs_strerror(), properly report unknown positive error + code values as unknown. Previously they were handled like 0 (no + error).</p> + </li> + + <li> + <p>In compile_dynamic_pcrs_job_list(), also log the actual error + code as pcrs_strerror() doesn't handle all errors reported by + pcre</p> + </li> + + <li> + <p>Don't bother trying to continue chatting if the client didn't + ask for it. Reduces log noise a bit.</p> + </li> + + <li> + <p>Make two fatal error message in load_one_actions_file() more + descriptive</p> + </li> + + <li> + <p>In cgi_send_user_manual(), log when rejecting a file name due + to '/' or '..'</p> + </li> + + <li> + <p>In load_file(), log a message if opening a file failed The CGI + error message alone isn't too helpful.</p> + </li> + + <li> + <p>In connection_destination_matches(), improve two log messages + to help understand why the destinations don't match</p> + </li> + + <li> + <p>Rephrase a log message in serve(). Client request arrival + should be differentiated from closed client connections now.</p> + </li> + + <li> + <p>In serve(), log if a client connection isn't reused due to a + configuration file change.</p> + </li> + + <li> + <p>Let mark_server_socket_tainted() always mark the server socket + tainted, just don't talk about it in cases where it has no + effect. It doesn't change Privoxy's behaviour, but makes + understanding the log file easier.</p> + </li> + </ul> + </li> + + <li> + <p>Miscellaneous Privoxy improvements:</p> + + <ul> + <li> + <p>In get_last_url(), do not bother trying to decode URLs that do + not contain at least one '%' sign. It reduces the log noise and a + number of unnecessary memory allocations.</p> + </li> + + <li> + <p>If the --user argument user[.group] contains a dot, always + bail out if no group has been specified. Previously the intended, + but undocumented (and apparently untested), behaviour was to try + interpreting the whole argument as user name, but the detection + was flawed and checked for '0' isntead of '\0', thus merely + preventing group names beginning with a zero.</p> + </li> + + <li> + <p>Simplify the signal setup in main()</p> + </li> + + <li> + <p>Streamline socks5_connect() slightly</p> + </li> + + <li> + <p>In case of SOCKS5 failures, dump the socks response</p> + </li> + + <li> + <p>In socks5_connect(), require a complete socks response from + the server Previously we didn't care how much data the server + response contained as long as the first two bytes contained the + expected values. While at it, shrink the buffer size so we can't + read more than a whole socks response. This is required to + support Tor's optimistic data extension.</p> + </li> + + <li> + <p>In chat(), do not bother to generate a client request in case + of direct CONNECT requests</p> + </li> + + <li> + <p>Reduce server_last_modified()'s stack size</p> + </li> + + <li> + <p>Shorten get_http_time() by using strftime()</p> + </li> + + <li> + <p>Constify the known_http_methods pointers in + unknown_method()</p> + </li> + + <li> + <p>Constify the time_formats pointers in parse_header_time()</p> + </li> + + <li> + <p>Constify the formerly_valid_actions pointers in + action_used_to_be_valid()</p> + </li> + + <li> + <p>In html_code_map[], use a numeric character reference instead + of ' which wasn't standardized before XHTML 1.0</p> + </li> + + <li> + <p>Introduce a MAN_PAGE variable that defaults to privoxy.1. The + Debian package uses section 8 for the man page and this should + simplify the patch.</p> + </li> + + <li> + <p>Deduplicate the INADDR_NONE definition for Solaris by moving + it to jbsockets.h</p> + </li> + + <li> + <p>In block_url(), ditch the obsolete workaround for ancient + Netscape versions that supposedly couldn't properly deal with + status code 403.</p> + </li> + + <li> + <p>Remove a useless NULL pointer check in load_trustfile()</p> + </li> + + <li> + <p>Remove two useless NULL pointer checks in + load_one_re_filterfile().</p> + </li> + + <li> + <p>Change url_code_map[] from an array of pointers to an array of + arrays It removes an unnecessary layer of indirection and on + 64bit system reduces the size of the binary a bit.</p> + </li> + + <li> + <p>Fix various typos. Fixes taken from Debian's 29_typos.dpatch + by Roland Rosenfeld.</p> + </li> + + <li> + <p>Add a dok-tidy GNUMakefile target to clean up the messy HTML + generated by the other dok targets.</p> + </li> + + <li> + <p>GNUisms in the GNUMakefile have been removed.</p> + </li> + + <li> + <p>Change the HTTP version in static responses to 1.1</p> + </li> + + <li> + <p>Synced config.sub and config.guess with upstream + 2011-11-11/386c7218162c145f5f9e1ff7f558a3fbb66c37c5.</p> + </li> + + <li> + <p>Add a dedicated function to parse the values of toggles + Reduces duplicated code in load_config() and provides better + error handling. Invalid or missing toggle values are now a fatal + error instead of being silently ignored.</p> + </li> + + <li> + <p>Terminate HTML lines in static error messages with \n instead + of \r\n.</p> + </li> + + <li> + <p>Simplify cgi_error_unknown() a bit.</p> + </li> + + <li> + <p>In LogPutString(), don't bother looking at pszText when not + actually logging anything</p> + </li> + + <li> + <p>Change ssplit()'s fourth parameter from int to size_t. Fixes a + clang complaint.</p> + </li> + + <li> + <p>Add a warning that the statistics currently can't be trusted. + Mention Privoxy-Log-Parser's --statistics option as an + alternative for the time being.</p> + </li> + + <li> + <p>In rfc2553_connect_to(), start setting cgi->error_message + on error</p> + </li> + + <li> + <p>Change the expected status code returned for http://p.p/die + depending on whether or not FEATURE_GRACEFUL_TERMINATION is + available.</p> + </li> + + <li> + <p>In cgi_die(), mark the client connection for closing. If the + client will fetch the style sheet through another connection it + gets the main thread out of the accept() state and should thus + trigger the actual shutdown.</p> + </li> + + <li> + <p>Add a proper CGI message for cgi_die().</p> + </li> + + <li> + <p>Fix an invalid free when compiled with + FEATURE_GRACEFUL_TERMINATION and shut down through + http://config.privoxy.org/die</p> + </li> + + <li> + <p>Don't enforce a logical line length limit in + read_config_line()</p> + </li> + + <li> + <p>Slightly refactor server_last_modified() to remove useless + gmtime*() calls</p> + </li> + + <li> + <p>In get_content_type(), also recognize '.jpeg' as JPEG + extension</p> + </li> + + <li> + <p>Add '.png' to the list of recognized file extenstions in + get_content_type()</p> + </li> + + <li> + <p>In block_url(), consistently use the block reason "Request + blocked by Privoxy" In two places the reason was "Request for + blocked URL" which hides the fact that the request got blocked by + Privoxy and isn't necessarly correct as the block may be due to + tags.</p> + </li> + + <li> + <p>In get_actions(), fix the "temporary" backwards compatibility + hack to accept block actions without reason. It also covered + other actions that should be rejected as invalid. Reported by + Billy Crook.</p> + </li> + + <li> + <p>In listen_loop(), reload the configuration files after + accepting a new connection instead of before. Previously the + first connection that arrived after a configuration change would + still be handled with the old configuration.</p> + </li> + + <li> + <p>In chat()'s receive-data loop, skip a client socket check if + the socket will be written to right away anyway. This can + increase the transfer speed for unfiltered content on fast + network connections.</p> + </li> + + <li> + <p>The socket timeout is used for SOCKS negotiation as well.</p> + </li> + + <li> + <p>Don't keep the client connection alive if any configuration + file changed since the time the connection came in. This is + closer to Privoxy's behaviour before keep-alive support for + client connection has been added and also less confusing in + general.</p> + </li> + + <li> + <p>Treat all Content-Type header values containing the pattern + 'script' as a sign of text. Reported by pribog in #3134970.</p> + </li> + </ul> + </li> + + <li> + <p>configure:</p> + + <ul> + <li> + <p>Added a --disable-ipv6-support switch for platforms where + support is detected but doesn't actually work.</p> + </li> + + <li> + <p>Do not check for the existence of strerror() and memmove() + twice</p> + </li> + + <li> + <p>Remove a useless test for setpgrp(2). Privoxy doesn't need it + and it can cause problems when cross-compiling</p> + </li> + + <li> + <p>Rename the --disable-acl-files switch to --disable-acl-support + Since about 2001, ACL directives are specified in the standard + config file.</p> + </li> + + <li> + <p>Update the URL of the 'Removing outdated PCRE version after + the next stable release' posting. The old URL stopped working + after one of SF's recent layout pessimizations. Reported by Han + Liu.</p> + </li> + </ul> + </li> + + <li> + <p>Privoxy-Regression-Test:</p> + + <ul> + <li> + <p>Added --shuffle-tests option to increase the chances of + detection race conditions</p> + </li> + + <li> + <p>Added a --local-test-file option that allows to use + Privoxy-Regression-Test without Privoxy</p> + </li> + + <li> + <p>Added tests for missing socks4 and socks4a forwarders</p> + </li> + + <li> + <p>The --privoxy-address option now works with IPv6 addresses + containing brackets, too</p> + </li> + + <li> + <p>Perform limited sanity checks for parameters that are supposed + to have numerical values.</p> + </li> + + <li> + <p>Added a --sleep-time option to specify a number of seconds to + sleep between tests, defaults to 0.</p> + </li> + + <li> + <p>Disable the range-requests tagger for tests that break if it's + enabled</p> + </li> + + <li> + <p>Log messages use the ISO 8601 date format %Y-%m-%d.</p> + </li> + + <li> + <p>Fix spelling in two error messages.</p> + </li> + + <li> + <p>In the --help output, include a list of supported tests and + their default levels.</p> + </li> + </ul> + </li> + + <li> + <p>Privoxy-Log-Parser:</p> + + <ul> + <li> + <p>Perform limited sanity checks for parameters that are supposed + to have numerical values.</p> + </li> + + <li> + <p>Implement a --unbreak-lines-only option to try to revert MUA + breakage.</p> + </li> + + <li> + <p>Accept and highlight: Added header: Content-Encoding: + deflate</p> + </li> + + <li> + <p>Accept and highlight: Compressed content from 29258 to 8630 + bytes.</p> + </li> + + <li> + <p>Accept and highlight: Client request arrived in time on socket + 21.</p> + </li> + + <li> + <p>Highlight: Didn't receive data in time: a.fsdn.com:443</p> + </li> + + <li> + <p>Accept log messages with ISO 8601 time stamps, too</p> + </li> + </ul> + </li> + + <li> + <p>uagen:</p> + + <ul> + <li> + <p>Bump generated Firefox version to 9.0</p> + </li> + + <li> + <p>Only randomize the release date if the new + --randomize-release-date option is enabled. Firefox versions + after 4 use a fixed date string without meaning.</p> + </li> + </ul> + </li> + </ul> + + <div class="SECT2"> + <h2 class="SECT2"><a name="UPGRADERSNOTE" id="UPGRADERSNOTE">3.1. Note + to Upgraders</a></h2> + + <p>A quick list of things to be aware of before upgrading from earlier + versions of <span class="APPLICATION">Privoxy</span>:</p> + <ul> <li> - <p> - Fixed last-chunk-detection for responses where the content was - small enough to be read with the body, causing Privoxy to wait - for the end of the content until the server closed the connection - or the request timed out. Reported by "Karsten" in #3028326. - </p> - </li> - <li> - <p> - Responses with status code 204 weren't properly detected as - body-less like RFC2616 mandates. Like the previous bug, this - caused Privoxy to wait for the end of the content until the - server closed the connection or the request timed out. Fixes - #3022042 and #3025553, reported by a user with no visible name. - Most likely also fixes a bunch of other AJAX-related problem - reports that got closed in the past due to insufficient - information and lack of feedback. - </p> - </li> - <li> - <p> - Fixed an ACL bug that made it impossible to build a blacklist. - Usually the ACL directives are used in a whitelist, which worked - as expected, but blacklisting is still useful for public proxies - where one only needs to deny known abusers access. - </p> - </li> - <li> - <p> - Added LOG_LEVEL_RECEIVED to log the not-yet-parsed data read from - the network. This should make debugging various parsing issues a - lot easier. - </p> - </li> - <li> - <p> - The IPv6 code is enabled by default on Windows versions that - support it. Patch submitted by oCameLo in #2942729. - </p> - </li> - <li> - <p> - In mingw32 versions, the user.filter file is reachable through - the GUI, just like default.filter is. Feature request 3040263. - </p> - </li> - <li> - <p> - Added the configure option --enable-large-file-support to set a - few defines that are required by platforms like GNU/Linux to - support files larger then 2GB. Mainly interesting for users - without proper logfile management. - </p> - </li> - <li> - <p> - Logging with "debug 16" no longer stops at the first nul byte - which is pretty useless. Non-printable characters are replaced - with their hex value so the result can't span multiple lines - making parsing them harder then necessary. - </p> - </li> - <li> - <p> - Privoxy logs when reading an action, filter or trust file. - </p> - </li> - <li> - <p> - Fixed incorrect regression test markup which caused a test in - 3.0.16 to fail while Privoxy itself was working correctly. While - Privoxy accepts hide-referer, too, the action name is actually - hide-referrer which is also the name used one the final results - page, where the test expected the alias. - </p> - </li> - <li> - <p> - CGI interface improvements: - </p> - <ul> - <li> - <p> - In finish_http_response(), continue to add the 'Connection: - close' header if the client connection will not be kept - alive. Anonymously pointed out in #2987454. - </p> - </li> - <li> - <p> - Apostrophes in block messages no longer cause parse errors - when the blocked page is viewed with JavaScript enabled. - Reported by dg1727 in #3062296. - </p> - </li> - <li> - <p> - Fix a bunch of anchors that used underscores instead of - dashes. - </p> - </li> - <li> - <p> - Allow to keep the client connection alive after crunching the - previous request. Already opened server connections can be - kept alive, too. - </p> - </li> - <li> - <p> - In cgi_show_url_info(), don't forget to prefix URLs that only - contain http:// or https:// in the path. Fixes #2975765 - reported by Adam Piggott. - </p> - </li> - <li> - <p> - Show the 404 CGI page if cgi_send_user_manual() is called - while local user manual delivery is disabled. - </p> - </li> - </ul> + <p>The recommended way to upgrade <span class= + "APPLICATION">Privoxy</span> is to backup your old configuration + files, install the new ones, verify that <span class= + "APPLICATION">Privoxy</span> is working correctly and finally merge + back your changes using <span class="APPLICATION">diff</span> and + maybe <span class="APPLICATION">patch</span>.</p> + + <p>There are a number of new features in each <span class= + "APPLICATION">Privoxy</span> release and most of them have to be + explicitly enabled in the configuration files. Old configuration + files obviously don't do that and due to syntax changes using old + configuration files with a new <span class= + "APPLICATION">Privoxy</span> isn't always possible anyway.</p> </li> + <li> - <p> - Action file improvements: - </p> - <ul> - <li> - <p> - Enable user.filter by default. Suggested by David White in - #3001830. - </p> - </li> - <li> - <p> - Block .sitestat.com/. Reported by johnd16 in #3002725. - </p> - </li> - <li> - <p> - Block .atemda.com/. Reported by johnd16 in #3002723. - </p> - </li> - <li> - <p> - Block js.adlink.net/. Reported by johnd16 in #3002720. - </p> - </li> - <li> - <p> - Block .analytics.yahoo.com/. Reported by johnd16 in #3002713. - </p> - </li> - <li> - <p> - Block sb.scorecardresearch.com, too. Reported by dg1727 in - #2992652. - </p> - </li> - <li> - <p> - Fix problems noticed on Yahoo mail and news pages. - </p> - </li> - <li> - <p> - Remove the too broad yahoo section, only keeping the - fast-redirects exception as discussed on ijbswa-devel@. - </p> - </li> - <li> - <p> - Don't block adesklets.sourceforge.net. Reported in #2974204. - </p> - </li> - <li> - <p> - Block chartbeat ping tracking. Reported in #2975895. - </p> - </li> - <li> - <p> - Tag CSS and image requests with cautious and medium settings, - too. - </p> - </li> - <li> - <p> - Don't handle view.atdmt.com as image. It's used for - click-throughs so users should be able to "go there anyway". - Reported by Adam Piggott in #2975927. - </p> - </li> - <li> - <p> - Also let the refresh-tags filter remove invalid refresh tags - where the 'url=' part is missing. Anonymously reported in - #2986382. While at it, update the description to mention the - fact that only refresh tags with refresh times above 9 - seconds are covered. - </p> - </li> - <li> - <p> - javascript needs to be blocked with +handle-as-empty-document - to work around Firefox bug 492459. So move .js blockers from - +block{Might be a web-bug.} -handle-as-empty-document to - +block{Might be a web-bug.} +handle-as-empty-document. - </p> - </li> - <li> - <p> - ijbswa-Feature Requests-3006719 - Block 160x578 Banners. - </p> - </li> - <li> - <p> - Block another omniture tracking domain. - </p> - </li> - <li> - <p> - Added a range-requests tagger. - </p> - </li> - <li> - <p> - Added two sections to get Flickr's Ajax interface working - with default pre-settings. If you change the configuration to - block cookies by default, you'll need additional exceptions. - Reported by Mathias Homann in #3101419 and by Patrick on - ijbswa-users@. - </p> - </li> - </ul> + <p>Note that some installers remove earlier versions completely, + including configuration files, therefore you should really save any + important configuration files!</p> </li> + <li> - <p> - Documentation improvements: - </p> - <ul> - <li> - <p> - Explicitly mention how to match all URLs. - </p> - </li> - <li> - <p> - Consistently recommend socks5 in the Tor FAQ entry and - mention its advantage compared to socks4a. Reported by David - in #2960129. - </p> - </li> - <li> - <p> - Slightly improve the explanation of why filtering may appear - slower than it is. - </p> - </li> - <li> - <p> - Grammar fixes for the ACL section. - </p> - </li> - <li> - <p> - Fixed a link to the 'intercepting' entry and add another one. - </p> - </li> - <li> - <p> - Rename the 'Other' section to 'Mailing Lists' and reword it - to make it clear that nobody is forced to use the trackers - </p> - </li> - <li> - <p> - Note that 'anonymously' posting on the trackers may not - always be possible. - </p> - </li> - <li> - <p> - Suggest to enable debug 32768 when suspecting parsing - problems. - </p> - </li> - </ul> + <p>On the other hand, other installers don't overwrite existing + configuration files, thinking you will want to do that + yourself.</p> </li> + <li> - <p> - Privoxy-Log-Parser improvements: - </p> - <ul> - <li> - <p> - Gather statistics for ressources, methods, and HTTP versions - used by the client. - </p> - </li> - <li> - <p> - Also gather statistics for blocked and redirected requests. - </p> - </li> - <li> - <p> - Provide the percentage of keep-alive offers the client - accepted. - </p> - </li> - <li> - <p> - Add a --url-statistics-threshold option. - </p> - </li> - <li> - <p> - Add a --host-statistics-threshold option to also gather - statistics about how many request where made per host. - </p> - </li> - <li> - <p> - Fix a bug in handle_loglevel_header() where a 'scan: ' got - lost. - </p> - </li> - <li> - <p> - Add a --shorten-thread-ids option to replace the thread id - with a decimal number. - </p> - </li> - <li> - <p> - Accept and ignore: Looks like we got the last chunk together - with the server headers. We better stop reading. - </p> - </li> - <li> - <p> - Accept and ignore: Continue hack in da house. - </p> - </li> - <li> - <p> - Accept and higlight: Rejecting connection from 10.0.0.2. - Maximum number of connections reached. - </p> - </li> - <li> - <p> - Accept and highlight: Loading actions file: - /usr/local/etc/privoxy/default.action - </p> - </li> - <li> - <p> - Accept and highlight: Loading filter file: - /usr/local/etc/privoxy/default.filter - </p> - </li> - <li> - <p> - Accept and highlight: Killed all-caps Host header line: HOST: - bestproxydb.com - </p> - </li> - <li> - <p> - Accept and highlight: Reducing expected bytes to 0. Marking - the server socket tainted after throwing 4 bytes away. - </p> - </li> - <li> - <p> - Accept: Merged multiple header lines to: 'X-FORWARDED-PROTO: - http X-HOST: 127.0.0.1' - </p> - </li> - </ul> + <p><tt class="FILENAME">standard.action</tt> has been merged into + the <tt class="FILENAME">default.action</tt> file.</p> </li> + <li> - <p> - Code cleanups: - </p> - <ul> - <li> - <p> - Remove the next member from the client_state struct. Only the - main thread needs access to all client states so give it its - own struct. - </p> - </li> - <li> - <p> - Garbage-collect request_contains_null_bytes(). - </p> - </li> - <li> - <p> - Ditch redundant code in unload_configfile(). - </p> - </li> - <li> - <p> - Ditch LogGetURLUnderCursor() which doesn't seem to be used - anywhere. - </p> - </li> - <li> - <p> - In write_socket(), remove the write-only variable write_len - in an ifdef __OS2__ block. Spotted by cppcheck. - </p> - </li> - <li> - <p> - In connect_to(), don't declare the variable 'flags' on OS/2 - where it isn't used. Spotted by cppcheck. - </p> - </li> - <li> - <p> - Limit the scope of various variables. Spotted by cppcheck. - </p> - </li> - <li> - <p> - In add_to_iob(), turn an interestingly looking for loop into - a boring while loop. - </p> - </li> - <li> - <p> - Code cleanup in preparation for external filters. - </p> - </li> - <li> - <p> - In listen_loop(), mention the socket on which we accepted the - connection, not just the source IP address. - </p> - </li> - <li> - <p> - In write_socket(), also log the socket we're writing to. - </p> - </li> - <li> - <p> - In log_error(), assert that escaped characters get logged - completely or not at all. - </p> - </li> - <li> - <p> - In log_error(), assert that ival and sval have reasonable - values. There's no reason not to abort() if they don't. - </p> - </li> - <li> - <p> - Remove an incorrect cgi_error_unknown() call in a - cannot-happen-situation in send_crunch_response(). - </p> - </li> - <li> - <p> - Clean up white-space in http_response definition and move the - crunch_reason to the beginning. - </p> - </li> - <li> - <p> - Turn http_response.reason into an enum and rename it to - http_response.crunch_reason. - </p> - </li> - <li> - <p> - Silence a 'gcc (Debian 4.3.2-1.1) 4.3.2' warning on i686 - GNU/Linux. - </p> - </li> - <li> - <p> - Fix white-space in a log message in - remove_chunked_transfer_coding(). While at it, add a note - that the message doesn't seem to be entirely correct and - should be improved later on. - </p> - </li> - </ul> + <p>In the default configuration only fatal errors are logged now. + You can change that in the <a href="config.html#DEBUG">debug + section</a> of the configuration file. You may also want to enable + more verbose logging until you verified that the new <span class= + "APPLICATION">Privoxy</span> version is working as expected.</p> </li> + <li> - <p> - GNUmakefile improvements: - </p> - <ul> - <li> - <p> - Use $(SSH) instead of ssh, so one only needs to specify a - username once. - </p> - </li> - <li> - <p> - Removed references to the action feedback thingy that hasn't - been working for years. - </p> - </li> - <li> - <p> - Consistently use shell.sourceforge.net instead of - shell.sf.net so one doesn't need to check server fingerprints - twice. - </p> - </li> - <li> - <p> - Removed GNUisms in the webserver and webactions targets so - they work with standard tar. - </p> - </li> - </ul> + <p>Three other config file settings are now off by default: + <a href="config.html#ENABLE-REMOTE-TOGGLE">enable-remote-toggle</a>, + <a href= + "config.html#ENABLE-REMOTE-HTTP-TOGGLE">enable-remote-http-toggle</a>, + and <a href= + "config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</a>. If you + use or want these, you will need to explicitly enable them, and be + aware of the security issues involved.</p> </li> </ul> - - <div class="SECT2"> - <h2 class="SECT2"> - <a name="UPGRADERSNOTE">3.1. Note to Upgraders</a> - </h2> - <p> - A quick list of things to be aware of before upgrading from earlier - versions of <span class="APPLICATION">Privoxy</span>: - </p> - <p> - </p> - <ul> - <li> - <p> - The recommended way to upgrade <span class= - "APPLICATION">Privoxy</span> is to backup your old - configuration files, install the new ones, verify that <span - class="APPLICATION">Privoxy</span> is working correctly and - finally merge back your changes using <span class= - "APPLICATION">diff</span> and maybe <span class= - "APPLICATION">patch</span>. - </p> - <p> - There are a number of new features in each <span class= - "APPLICATION">Privoxy</span> release and most of them have to - be explicitly enabled in the configuration files. Old - configuration files obviously don't do that and due to syntax - changes using old configuration files with a new <span class= - "APPLICATION">Privoxy</span> isn't always possible anyway. - </p> - </li> - <li> - <p> - Note that some installers remove earlier versions completely, - including configuration files, therefore you should really save - any important configuration files! - </p> - </li> - <li> - <p> - On the other hand, other installers don't overwrite existing - configuration files, thinking you will want to do that - yourself. - </p> - </li> - <li> - <p> - <tt class="FILENAME">standard.action</tt> has been merged into - the <tt class="FILENAME">default.action</tt> file. - </p> - </li> - <li> - <p> - In the default configuration only fatal errors are logged now. - You can change that in the <a href="config.html#DEBUG">debug - section</a> of the configuration file. You may also want to - enable more verbose logging until you verified that the new - <span class="APPLICATION">Privoxy</span> version is working as - expected. - </p> - </li> - <li> - <p> - Three other config file settings are now off by default: <a - href= - "config.html#ENABLE-REMOTE-TOGGLE">enable-remote-toggle</a>, <a - href= - "config.html#ENABLE-REMOTE-HTTP-TOGGLE">enable-remote-http-toggle</a>, - and <a href= - "config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</a>. If - you use or want these, you will need to explicitly enable them, - and be aware of the security issues involved. - </p> - </li> - </ul> - </div> - </div> - <div class="NAVFOOTER"> - <hr width="100%" class="c1"> - <table summary="Footer navigation table" width="100%" border="0" - cellpadding="0" cellspacing="0"> - <tr> - <td width="33%" align="left" valign="top"> - <a href="installation.html" accesskey="P">Prev</a> - </td> - <td width="34%" align="center" valign="top"> - <a href="index.html" accesskey="H">Home</a> - </td> - <td width="33%" align="right" valign="top"> - <a href="quickstart.html" accesskey="N">Next</a> - </td> - </tr> - <tr> - <td width="33%" align="left" valign="top"> - Installation - </td> - <td width="34%" align="center" valign="top"> - - </td> - <td width="33%" align="right" valign="top"> - Quickstart to Using Privoxy - </td> - </tr> - </table> </div> - </body> -</html> + </div> + + <div class="NAVFOOTER"> + <hr class="c1" width="100%"> + + <table summary="Footer navigation table" width="100%" border="0" + cellpadding="0" cellspacing="0"> + <tr> + <td width="33%" align="left" valign="top"><a href="installation.html" + accesskey="P">Prev</a></td> + + <td width="34%" align="center" valign="top"><a href="index.html" + accesskey="H">Home</a></td> + <td width="33%" align="right" valign="top"><a href="quickstart.html" + accesskey="N">Next</a></td> + </tr> + + <tr> + <td width="33%" align="left" valign="top">Installation</td> + + <td width="34%" align="center" valign="top"> </td> + + <td width="33%" align="right" valign="top">Quickstart to Using + Privoxy</td> + </tr> + </table> + </div> +</body> +</html>