generated files. do NOT edit.
authorswa <swa@users.sourceforge.net>
Sun, 7 Apr 2002 08:39:11 +0000 (08:39 +0000)
committerswa <swa@users.sourceforge.net>
Sun, 7 Apr 2002 08:39:11 +0000 (08:39 +0000)
30 files changed:
doc/webserver/.gitignore
doc/webserver/developer-manual/coding.html [new file with mode: 0644]
doc/webserver/developer-manual/contact.html [new file with mode: 0644]
doc/webserver/developer-manual/copyright.html [new file with mode: 0644]
doc/webserver/developer-manual/cvs.html [new file with mode: 0644]
doc/webserver/developer-manual/documentation.html [new file with mode: 0644]
doc/webserver/developer-manual/index.html [new file with mode: 0644]
doc/webserver/developer-manual/introduction.html [new file with mode: 0644]
doc/webserver/developer-manual/newrelease.html [new file with mode: 0644]
doc/webserver/developer-manual/quickstart.html [new file with mode: 0644]
doc/webserver/developer-manual/seealso.html [new file with mode: 0644]
doc/webserver/developer-manual/testing.html [new file with mode: 0644]
doc/webserver/faq/configuration.html [new file with mode: 0644]
doc/webserver/faq/contact.html [new file with mode: 0644]
doc/webserver/faq/copyright.html [new file with mode: 0644]
doc/webserver/faq/general.html [new file with mode: 0644]
doc/webserver/faq/index.html [new file with mode: 0644]
doc/webserver/faq/installation.html [new file with mode: 0644]
doc/webserver/faq/misc.html [new file with mode: 0644]
doc/webserver/faq/trouble.html [new file with mode: 0644]
doc/webserver/man-page/privoxy-man-page.html [new file with mode: 0644]
doc/webserver/user-manual/appendix.html [new file with mode: 0644]
doc/webserver/user-manual/configuration.html [new file with mode: 0644]
doc/webserver/user-manual/contact.html [new file with mode: 0644]
doc/webserver/user-manual/copyright.html [new file with mode: 0644]
doc/webserver/user-manual/index.html [new file with mode: 0644]
doc/webserver/user-manual/installation.html [new file with mode: 0644]
doc/webserver/user-manual/introduction.html [new file with mode: 0644]
doc/webserver/user-manual/quickstart.html [new file with mode: 0644]
doc/webserver/user-manual/seealso.html [new file with mode: 0644]

index 7184d63..e69de29 100644 (file)
@@ -1,4 +0,0 @@
-developer-manual
-faq
-user-manual
-man-page
\ No newline at end of file
diff --git a/doc/webserver/developer-manual/coding.html b/doc/webserver/developer-manual/coding.html
new file mode 100644 (file)
index 0000000..5b3c488
--- /dev/null
@@ -0,0 +1,2265 @@
+<HTML
+><HEAD
+><TITLE
+>Coding Guidelines</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+REL="HOME"
+TITLE="Privoxy Developer Manual"
+HREF="index.html"><LINK
+REL="PREVIOUS"
+TITLE="Documentation Guidelines"
+HREF="documentation.html"><LINK
+REL="NEXT"
+TITLE="Version Control Guidelines"
+HREF="cvs.html"><LINK
+REL="STYLESHEET"
+TYPE="text/css"
+HREF="../p_doc.css"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+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"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="cvs.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="CODING"
+>5. Coding Guidelines</A
+></H1
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="S1"
+>5.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. ;-&#62;</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="S2"
+>5.2. Using Comments</A
+></H2
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="S3"
+>5.2.1. Comment, Comment, Comment</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></P
+><P
+>Comment as much as possible without commenting the obvious.
+    For example do not comment "aVariable is equal to bVariable".
+    Instead explain why aVariable should be equal to the bVariable.
+    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
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>/* if page size greater than 1k ... */
+if ( PageLength() &#62; 1024 )
+{
+    ... "block" the page up ...
+}
+
+/* if page size is small, send it in blocks */
+if ( PageLength() &#62; 1024 )
+{
+    ... "block" the page up ...
+}
+
+This demonstrates 2 cases of "what not to do".  The first is a
+"syntax comment".  The second is a comment that does not fit what
+is actually being done.</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="S4"
+>5.2.2. Use blocks for comments</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>/*********************************************************************
+ * This will stand out clearly in your code!
+ *********************************************************************/
+if ( thisVariable == thatVariable )
+{
+   DoSomethingVeryImportant();
+}
+
+
+/* unfortunately, this may not */
+if ( thisVariable == thatVariable )
+{
+   DoSomethingVeryImportant();
+}
+
+
+if ( thisVariable == thatVariable ) /* this may not either */
+{
+   DoSomethingVeryImportant();
+}</PRE
+></TD
+></TR
+></TABLE
+><P
+><I
+CLASS="EMPHASIS"
+>Exception:</I
+></P
+><P
+>If you are trying to add a small logic comment and do not
+    wish to "disrubt" 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"
+>5.2.3. Keep Comments on their own line</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>/*********************************************************************
+ * This will stand out clearly in your code,
+ * But the second example won't.
+ *********************************************************************/
+if ( thisVariable == thatVariable )
+{
+   DoSomethingVeryImportant();
+}
+
+if ( thisVariable == thatVariable ) /*can you see me?*/
+{
+   DoSomethingVeryImportant(); /*not easily*/
+}
+
+
+/*********************************************************************
+ * But, the encouraged exceptions:
+ *********************************************************************/
+int urls_read     = 0;     /* # of urls read + rejected */
+int urls_rejected = 0;     /* # of urls rejected */
+
+if ( 1 == X )
+{
+   DoSomethingVeryImportant();
+}
+
+
+short DoSomethingVeryImportant(
+   short firstparam,   /* represents something */
+   short nextparam     /* represents something else */ )
+{
+   ...code here...
+
+}   /* -END- DoSomethingVeryImportant */</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="S6"
+>5.2.4. Comment each logical step</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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"
+>5.2.5. Comment All Functions Thoroughly</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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"
+>5.2.6. Comment at the end of braces if the
+    content is more than one screen length</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>if ( 1 == X )
+{
+   DoSomethingVeryImportant();
+   ...some long list of commands...
+} /* -END- if x is 1 */
+
+or:
+
+if ( 1 == X )
+{
+   DoSomethingVeryImportant();
+   ...some long list of commands...
+} /* -END- if ( 1 == X ) */</PRE
+></TD
+></TR
+></TABLE
+></DIV
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="S9"
+>5.3. Naming Conventions</A
+></H2
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="S10"
+>5.3.1. Variable Names</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></P
+><P
+>Use all lowercase, and seperate 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
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int ms_iis5_hack = 0;</PRE
+></TD
+></TR
+></TABLE
+><P
+><I
+CLASS="EMPHASIS"
+>Instead of:</I
+></P
+><P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int msiis5hack = 0; int msIis5Hack = 0;</PRE
+></TD
+></TR
+></TABLE
+></P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="S11"
+>5.3.2. Function Names</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></P
+><P
+>Use all lowercase, and seperate 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
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int load_some_file( struct client_state *csp )</PRE
+></TD
+></TR
+></TABLE
+><P
+><I
+CLASS="EMPHASIS"
+>Instead of:</I
+></P
+><P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int loadsomefile( struct client_state *csp )
+int loadSomeFile( struct client_state *csp )</PRE
+></TD
+></TR
+></TABLE
+></P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="S12"
+>5.3.3. Header file prototypes</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>(.h) extern int load_aclfile( struct client_state *csp );
+(.c) int load_aclfile( struct client_state *csp )</PRE
+></TD
+></TR
+></TABLE
+><P
+><I
+CLASS="EMPHASIS"
+>Instead of:</I
+>
+<TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>(.h) extern int load_aclfile( struct client_state * ); or 
+(.h) extern int load_aclfile(); 
+(.c) int load_aclfile( struct client_state *csp )</PRE
+></TD
+></TR
+></TABLE
+></P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="S13"
+>5.3.4. Enumerations, and #defines</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>(enumeration) : enum Boolean { FALSE, TRUE };
+(#define) : #define DEFAULT_SIZE 100;</PRE
+></TD
+></TR
+></TABLE
+><P
+><I
+CLASS="EMPHASIS"
+>Note:</I
+> We have a standard naming scheme for #defines
+    that toggle a feature in the preprocessor: FEATURE_&#62;, where
+    &#62; is a short (preferably 1 or 2 word) description.</P
+><P
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define FEATURE_FORCE 1
+
+#ifdef FEATURE_FORCE
+#define FORCE_PREFIX blah
+#endif /* def FEATURE_FORCE */</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="S14"
+>5.3.5. Constants</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define USE_IMAGE_LIST 1</PRE
+></TD
+></TR
+></TABLE
+><P
+><I
+CLASS="EMPHASIS"
+>Instead of:</I
+></P
+><P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define USE_IMG_LST 1 or 
+#define _USE_IMAGE_LIST 1 or
+#define USE_IMAGE_LIST_ 1 or 
+#define use_image_list 1 or
+#define UseImageList 1</PRE
+></TD
+></TR
+></TABLE
+></P
+></DIV
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="S15"
+>5.4. Using Space</A
+></H2
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="S16"
+>5.4.1. Put braces on a line by themselves.</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>if ( this == that )
+{
+   ...
+}</PRE
+></TD
+></TR
+></TABLE
+><P
+><I
+CLASS="EMPHASIS"
+>Instead of:</I
+></P
+><P
+>if ( this == that ) { ... }</P
+><P
+>or</P
+><P
+>if ( this == that ) { ... }</P
+><P
+><I
+CLASS="EMPHASIS"
+>Note:</I
+> In the special case that the if-statement is
+    inside a loop, and it is trivial, i.e. it tests for a
+    condidtion 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
+><I
+CLASS="EMPHASIS"
+>Status:</I
+> developer-discrection.</P
+><P
+><I
+CLASS="EMPHASIS"
+>Example exception:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>while ( more lines are read )
+{
+   /* Please document what is/is not a comment line here */
+   if ( it's a comment ) continue;
+
+   do_something( line );
+}</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="S17"
+>5.4.2. ALL control statements should have a
+    block</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>if ( this == that )
+{
+   DoSomething();
+   DoSomethingElse();
+}</PRE
+></TD
+></TR
+></TABLE
+><P
+><I
+CLASS="EMPHASIS"
+>Instead of:</I
+></P
+><P
+>if ( this == that ) DoSomething(); DoSomethingElse();</P
+><P
+>or</P
+><P
+>if ( this == that ) DoSomething();</P
+><P
+><I
+CLASS="EMPHASIS"
+>Note:</I
+> 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"
+>5.4.3. Do not belabor/blow-up boolean
+    expressions</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>structure-&#62;flag = ( condition );</PRE
+></TD
+></TR
+></TABLE
+><P
+><I
+CLASS="EMPHASIS"
+>Instead of:</I
+></P
+><P
+>if ( condition ) { structure-&#62;flag = 1; } else {
+    structure-&#62;flag = 0; }</P
+><P
+><I
+CLASS="EMPHASIS"
+>Note:</I
+> The former is readable and consice. 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"
+>5.4.4. Use white space freely because it is
+    free</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></P
+><P
+>Make it readable. The notable exception to using white space
+    freely is listed in the next guideline.</P
+><P
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int firstValue   = 0;
+int someValue    = 0;
+int anotherValue = 0;
+int thisVariable = 0;
+
+if ( thisVariable == thatVariable )
+
+firstValue = oldValue + ( ( someValue - anotherValue ) - whatever )</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="S20"
+>5.4.5. Don't use white space around structure
+    operators</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></P
+><P
+>- structure pointer operator ( "-&#62;" ) - 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
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>aStruct-&#62;aMember;
+aStruct.aMember;
+FunctionName();</PRE
+></TD
+></TR
+></TABLE
+><P
+><I
+CLASS="EMPHASIS"
+>Instead of:</I
+> aStruct -&#62; aMember; aStruct . aMember;
+    FunctionName ();</P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="S21"
+>5.4.6. Make the last brace of a function stand
+    out</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int function1( ... )
+{
+   ...code...
+   return( retCode );
+
+}   /* -END- function1 */
+
+
+int function2( ... )
+{
+}   /* -END- function2 */</PRE
+></TD
+></TR
+></TABLE
+><P
+><I
+CLASS="EMPHASIS"
+>Instead of:</I
+></P
+><P
+>int function1( ... ) { ...code... return( retCode ); } int
+    function2( ... ) { }</P
+><P
+><I
+CLASS="EMPHASIS"
+>Note:</I
+> Use 1 blank line before the closing brace and 2
+    lines afterwards. This makes the end of function standout to
+    the most casual viewer. Although function comments help
+    seperate 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
+><I
+CLASS="EMPHASIS"
+>Status:</I
+> developer-discrection on the number of blank
+    lines. Enforced is the end of function comments.</P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="S22"
+>5.4.7. Use 3 character indentions</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>static const char * const url_code_map[256] =
+{
+   NULL, ...
+};
+
+
+int function1( ... )
+{
+   if ( 1 )
+   {
+      return( ALWAYS_TRUE );
+   }
+   else
+   {
+      return( HOW_DID_YOU_GET_HERE );
+   }
+
+   return( NEVER_GETS_HERE );
+
+}</PRE
+></TD
+></TR
+></TABLE
+></DIV
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="S23"
+>5.5. Initializing</A
+></H2
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="S24"
+>5.5.1. Initialize all variables</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>short anShort = 0;
+float aFloat  = 0;
+struct *ptr = NULL;</PRE
+></TD
+></TR
+></TABLE
+><P
+><I
+CLASS="EMPHASIS"
+>Note:</I
+> It is much easier to debug a SIGSEGV if the
+    message says you are trying to access memory address 00000000
+    and not 129FA012; or arrayPtr[20] causes a SIGSEV vs.
+    arrayPtr[0].</P
+><P
+><I
+CLASS="EMPHASIS"
+>Status:</I
+> developer-discrection if and only if the
+    variable is assigned a value "shortly after" declaration.</P
+></DIV
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="S25"
+>5.6. Functions</A
+></H2
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="S26"
+>5.6.1. Name functions that return a boolean as a
+    question.</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></P
+><P
+>Value should be phrased as a question that would logically
+    be answered as a true or false statement</P
+><P
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>ShouldWeBlockThis();
+ContainsAnImage();
+IsWebPageBlank();</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="S27"
+>5.6.2. Always specify a return type for a
+    function.</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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"
+>5.6.3. Minimize function calls when iterating by
+    using variables</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>for ( size_t cnt = 0; cnt &#60; blockListLength(); cnt ++ )
+{
+   ....
+}</PRE
+></TD
+></TR
+></TABLE
+><P
+><I
+CLASS="EMPHASIS"
+>Note:</I
+> 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 blockListLength() 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 blockListLength() 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
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>size_t len = blockListLength();
+
+for ( size_t cnt = 0; cnt &#60; len; cnt ++ )
+{
+   ....
+}</PRE
+></TD
+></TR
+></TABLE
+><P
+><I
+CLASS="EMPHASIS"
+>Exceptions:</I
+> if the value of blockListLength() *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"
+>5.6.4. Pass and Return by Const Reference</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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"
+>5.6.5. Pass and Return by Value</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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"
+>5.6.6. Names of include files</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#include &#60;iostream.h&#62;     /* This is not a local include */
+#include "config.h"       /* This IS a local include */</PRE
+></TD
+></TR
+></TABLE
+><P
+><I
+CLASS="EMPHASIS"
+>Exception:</I
+></P
+><P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>/* This is not a local include, but requires a path element. */ 
+#include &#60;sys/fileName.h&#62;</PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+><I
+CLASS="EMPHASIS"
+>Note:</I
+> Please! do not add "-I." to the Makefile
+    without a _very_ good reason. This duplicates the #include
+    "file.h" behaviour.</P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="S32"
+>5.6.7. Provide multiple inclusion
+    protection</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#ifndef PROJECT_H_INCLUDED
+#define PROJECT_H_INCLUDED
+ ...
+#endif /* ndef PROJECT_H_INCLUDED */</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="S33"
+>5.6.8. Use `extern "C"` when appropriate</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#ifdef __cplusplus
+extern "C"
+{
+#endif /* def __cplusplus */
+
+... function definitions here ...
+
+#ifdef __cplusplus
+}
+#endif /* def __cplusplus */</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="S34"
+>5.6.9. Where Possible, Use Forward Struct
+    Declaration Instead of Includes</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></P
+><P
+>Useful in headers that include pointers to other struct's.
+    Modifications to excess header files may cause needless
+    compiles.</P
+><P
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>/*********************************************************************
+ * We're avoiding an include statement here!
+ *********************************************************************/
+struct file_list;
+extern file_list *xyz;</PRE
+></TD
+></TR
+></TABLE
+><P
+><I
+CLASS="EMPHASIS"
+>Note:</I
+> 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 unneccessary.</P
+><P
+><I
+CLASS="EMPHASIS"
+>Status:</I
+> Use with discrection.</P
+></DIV
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="S35"
+>5.7. General Coding Practices</A
+></H2
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="S36"
+>5.7.1. Turn on warnings</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation</I
+></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"
+>5.7.2. Provide a default case for all switch
+    statements</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>switch( hash_string( cmd ) )
+{
+   case hash_actions_file :
+      ... code ...
+      break;
+
+   case hash_confdir :
+      ... code ...
+      break;
+
+   default :
+      log_error( ... );
+      ... anomly code goes here ...
+      continue; / break; / exit( 1 ); / etc ...
+
+} /* end switch( hash_string( cmd ) ) */</PRE
+></TD
+></TR
+></TABLE
+><P
+><I
+CLASS="EMPHASIS"
+>Note:</I
+> 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
+><I
+CLASS="EMPHASIS"
+>Another Note:</I
+> This is not so much a readability issue
+    as a robust programming issue. The "anomly code goes here" may
+    be no more than a print to the STDERR stream (as in
+    load_config). Or it may really be an ABEND condition.</P
+><P
+><I
+CLASS="EMPHASIS"
+>Status:</I
+> Programmer discretion is advised.</P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="S38"
+>5.7.3. Try to avoid falling through cases in a
+    switch statement.</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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"
+>5.7.4. Use 'long' or 'short' Instead of
+    'int'</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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
+><I
+CLASS="EMPHASIS"
+>Status:</I
+> 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"
+>5.7.5. Don't mix size_t and other types</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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. Try to avoid using size_t if
+    you can.</P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="S41"
+>5.7.6. Declare each variable and struct on its
+    own line.</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></P
+><P
+>It can be tempting to declare a series of variables all on
+    one line. Don't.</P
+><P
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>long a = 0;
+long b = 0;
+long c = 0;</PRE
+></TD
+></TR
+></TABLE
+><P
+><I
+CLASS="EMPHASIS"
+>Instead of:</I
+></P
+><P
+>long a, b, c;</P
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+> - 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
+><I
+CLASS="EMPHASIS"
+>Exceptions:</I
+> when you want to declare a bunch of loop
+    variables or other trivial variables; feel free to declare them
+    on 1 line. You should, although, provide a good comment on
+    their functions.</P
+><P
+><I
+CLASS="EMPHASIS"
+>Status:</I
+> developer-discrection.</P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="S42"
+>5.7.7. Use malloc/zalloc sparingly</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></P
+><P
+>Create a local stuct (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
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>If a function creates a struct and stores a pointer to it in a
+list, then it should definately be allocated via `malloc'.</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="S43"
+>5.7.8. The Programmer Who Uses 'malloc' is
+    Responsible for Ensuring 'free'</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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/destuctor type function to accomodate this.</P
+><P
+><I
+CLASS="EMPHASIS"
+>Example:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int load_re_filterfile( struct client_state *csp ) { ... }
+static void unload_re_filterfile( void *f ) { ... }</PRE
+></TD
+></TR
+></TABLE
+><P
+><I
+CLASS="EMPHASIS"
+>Exceptions:</I
+></P
+><P
+>The developer cannot be expected to provide `free'ing
+    functions for C run-time library functions ... such as
+    `strdup'.</P
+><P
+><I
+CLASS="EMPHASIS"
+>Status:</I
+> developer-discrection. 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"
+>5.7.9. Add loaders to the `file_list' structure
+    and in order</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></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
+><I
+CLASS="EMPHASIS"
+>Note:</I
+> 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"
+>5.7.10. "Uncertain" new code and/or changes to
+    exitinst code, use FIXME</A
+></H3
+><P
+><I
+CLASS="EMPHASIS"
+>Explanation:</I
+></P
+><P
+>If you have enough confidence in new code or confidence in
+    your changes, but are not *quite* sure of the reprocussions,
+    add this:</P
+><P
+>/* FIXME: this code has a logic error on platform XYZ, *
+    attempthing 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
+><I
+CLASS="EMPHASIS"
+>Note:</I
+> 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 conversly exclude from the
+    project).</P
+></DIV
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="S46"
+>5.8. Addendum: Template for files and function
+    comment blocks:</A
+></H2
+><P
+><I
+CLASS="EMPHASIS"
+>Example for file comments:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>const char FILENAME_rcs[] = "$Id: developer-manual.sgml,v 1.25 2002/04/06 05:07:28 hal9 Exp $";
+/*********************************************************************
+ *
+ * File        :  $Source$
+ *
+ * Purpose     :  (Fill me in with a good description!)
+ *
+ * Copyright   :  Written by and Copyright (C) 2001 the SourceForge
+ *                Privoxy team. http://www.privoxy.org/
+ *
+ *                Based on the Internet Junkbuster originally written
+ *                by and Copyright (C) 1997 Anonymous Coders and
+ *                Junkbusters Corporation.  http://www.junkbusters.com
+ *
+ *                This program is free software; you can redistribute it
+ *                and/or modify it under the terms of the GNU General
+ *                Public License as published by the Free Software
+ *                Foundation; either version 2 of the License, or (at
+ *                your option) any later version.
+ *
+ *                This program is distributed in the hope that it will
+ *                be useful, but WITHOUT ANY WARRANTY; without even the
+ *                implied warranty of MERCHANTABILITY or FITNESS FOR A
+ *                PARTICULAR PURPOSE.  See the GNU General Public
+ *                License for more details.
+ *
+ *                The GNU General Public License should be included with
+ *                this file.  If not, you can view it at
+ *                http://www.gnu.org/copyleft/gpl.html
+ *                or write to the Free Software Foundation, Inc., 59
+ *                Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ * Revisions   :
+ *    $Log$
+ *
+ *********************************************************************/
+
+
+#include "config.h"
+
+   ...necessary include files for us to do our work...
+
+const char FILENAME_h_rcs[] = FILENAME_H_VERSION;</PRE
+></TD
+></TR
+></TABLE
+><P
+><I
+CLASS="EMPHASIS"
+>Note:</I
+> 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
+><I
+CLASS="EMPHASIS"
+>Note:</I
+> The formfeed character that is present right
+    after the comment flower box is handy for (X|GNU)Emacs users to
+    skip the verbige and get to the heart of the code (via
+    `forward-page' and `backward-page'). Please include it if you
+    can.</P
+><P
+><I
+CLASS="EMPHASIS"
+>Example for file header comments:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#ifndef _FILENAME_H
+#define _FILENAME_H
+#define FILENAME_H_VERSION "$Id: developer-manual.sgml,v 1.25 2002/04/06 05:07:28 hal9 Exp $"
+/*********************************************************************
+ *
+ * File        :  $Source$
+ *
+ * Purpose     :  (Fill me in with a good description!)
+ *
+ * Copyright   :  Written by and Copyright (C) 2001 the SourceForge
+ *                Privoxy team. http://www.privoxy.org/
+ *
+ *                Based on the Internet Junkbuster originally written
+ *                by and Copyright (C) 1997 Anonymous Coders and
+ *                Junkbusters Corporation.  http://www.junkbusters.com
+ *
+ *                This program is free software; you can redistribute it
+ *                and/or modify it under the terms of the GNU General
+ *                Public License as published by the Free Software
+ *                Foundation; either version 2 of the License, or (at
+ *                your option) any later version.
+ *
+ *                This program is distributed in the hope that it will
+ *                be useful, but WITHOUT ANY WARRANTY; without even the
+ *                implied warranty of MERCHANTABILITY or FITNESS FOR A
+ *                PARTICULAR PURPOSE.  See the GNU General Public
+ *                License for more details.
+ *
+ *                The GNU General Public License should be included with
+ *                this file.  If not, you can view it at
+ *                http://www.gnu.org/copyleft/gpl.html
+ *                or write to the Free Software Foundation, Inc., 59
+ *                Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ * Revisions   :
+ *    $Log$
+ *
+ *********************************************************************/
+
+
+#include "project.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+   ... function headers here ...
+
+
+/* Revision control strings from this header and associated .c file */
+extern const char FILENAME_rcs[];
+extern const char FILENAME_h_rcs[];
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* ndef _FILENAME_H */
+
+/*
+  Local Variables:
+  tab-width: 3
+  end:
+*/</PRE
+></TD
+></TR
+></TABLE
+><P
+><I
+CLASS="EMPHASIS"
+>Example for function comments:</I
+></P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>/*********************************************************************
+ *
+ * Function    :  FUNCTION_NAME
+ *
+ * Description :  (Fill me in with a good description!)
+ *
+ * parameters  :
+ *          1  :  param1 = pointer to an important thing
+ *          2  :  x      = pointer to something else
+ *
+ * Returns     :  0 =&#62; Ok, everything else is an error.
+ *
+ *********************************************************************/
+int FUNCTION_NAME( void *param1, const char *x )
+{
+   ...
+   return( 0 );
+
+}</PRE
+></TD
+></TR
+></TABLE
+><P
+><I
+CLASS="EMPHASIS"
+>Note:</I
+> If we all follow this practice, we should be
+    able to parse our code to create a "self-documenting" web
+    page.</P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="documentation.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="cvs.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Documentation Guidelines</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Version Control Guidelines</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/developer-manual/contact.html b/doc/webserver/developer-manual/contact.html
new file mode 100644 (file)
index 0000000..2e312f5
--- /dev/null
@@ -0,0 +1,223 @@
+<HTML
+><HEAD
+><TITLE
+>Contacting the developers, Bug Reporting and Feature Requests</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><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="Copyright and History"
+HREF="copyright.html"><LINK
+REL="STYLESHEET"
+TYPE="text/css"
+HREF="../p_doc.css"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+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"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="copyright.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="CONTACT"
+>9. Contacting the developers, Bug Reporting and Feature Requests</A
+></H1
+><P
+> We value your feedback. However, to provide you with the best support, please
+ note:
+
+ <P
+></P
+><UL
+><LI
+><P
+CLASS="LITERALLAYOUT"
+>&nbsp;Use&nbsp;the&nbsp;Sourceforge&nbsp;Support&nbsp;Forum&nbsp;to&nbsp;get&nbsp;help:<br>
+&nbsp;&nbsp;&nbsp;<br>
+&nbsp;<A
+HREF="http://sourceforge.net/tracker/?group_id=11118&atid=211118"
+TARGET="_top"
+>http://sourceforge.net/tracker/?group_id=11118&#38;atid=211118</A
+><br>
+&nbsp;&nbsp;&nbsp;</P
+></LI
+><LI
+><P
+CLASS="LITERALLAYOUT"
+>&nbsp;Submit&nbsp;bugs&nbsp;only&nbsp;through&nbsp;our&nbsp;Sourceforge&nbsp;Bug&nbsp;Forum:<br>
+&nbsp;<br>
+&nbsp;<A
+HREF="http://sourceforge.net/tracker/?group_id=11118&atid=111118"
+TARGET="_top"
+>http://sourceforge.net/tracker/?group_id=11118&#38;atid=111118</A
+>.&nbsp;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;</P
+><P
+>   Make sure that the bug has not already been submitted.  Please try to
+   verify that it is a <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> bug, and not a
+   browser or site bug first. If you are using your own custom configuration,
+   please try the stock configs to see if the problem is a configuration
+   related bug.  And if not using the latest development snapshot, please try
+   the latest one. Or even better, CVS sources. Please be sure to include the
+   <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>/<SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+>
+   version, platform, browser, any pertinent log data, any other relevant
+   details (please be specific) and, if possible, some way to reproduce the
+   bug.
+  </P
+></LI
+><LI
+><P
+CLASS="LITERALLAYOUT"
+>&nbsp;Submit&nbsp;feature&nbsp;requests&nbsp;only&nbsp;through&nbsp;our&nbsp;Sourceforge&nbsp;feature&nbsp;request&nbsp;<br>
+&nbsp;forum:<br>
+&nbsp;<br>
+&nbsp;<A
+HREF="http://sourceforge.net/tracker/?atid=361118&group_id=11118&func=browse"
+TARGET="_top"
+>http://sourceforge.net/tracker/?atid=361118&#38;group_id=11118&#38;func=browse</A
+>.<br>
+&nbsp;&nbsp;&nbsp;</P
+></LI
+><LI
+><P
+CLASS="LITERALLAYOUT"
+>We&nbsp;will&nbsp;soon&nbsp;have&nbsp;an&nbsp;automated&nbsp;way&nbsp;to&nbsp;submit&nbsp;advertisements,&nbsp;incorrectly<br>
+blocked&nbsp;images,&nbsp;popups&nbsp;and&nbsp;the&nbsp;like.&nbsp;Check&nbsp;back.<br>
+&nbsp;&nbsp;&nbsp;</P
+></LI
+><LI
+><P
+CLASS="LITERALLAYOUT"
+>&nbsp;For&nbsp;any&nbsp;other&nbsp;issues,&nbsp;feel&nbsp;free&nbsp;to&nbsp;use&nbsp;the&nbsp;mailing&nbsp;lists:<br>
+&nbsp;<br>
+&nbsp;<A
+HREF="http://sourceforge.net/mail/?group_id=11118"
+TARGET="_top"
+>http://sourceforge.net/mail/?group_id=11118</A
+>.<br>
+&nbsp;</P
+><P
+>  Anyone interested in actively participating in development and related
+  discussions can also join the appropriate mailing list. Archives are
+  available too. 
+ </P
+></LI
+></UL
+></P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="newrelease.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="copyright.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Releasing a new version</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Copyright and History</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/developer-manual/copyright.html b/doc/webserver/developer-manual/copyright.html
new file mode 100644 (file)
index 0000000..58f5732
--- /dev/null
@@ -0,0 +1,211 @@
+<HTML
+><HEAD
+><TITLE
+>Copyright and History</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><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"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><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"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="seealso.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="COPYRIGHT"
+>10. Copyright and History</A
+></H1
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN930"
+>10.1. Copyright</A
+></H2
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is free software; you can
+ redistribute it and/or modify it under the terms of the GNU General Public
+ License as published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.</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 GNU General Public License for
+ more details, which is available from the Free Software Foundation, Inc, 59
+ Temple Place - Suite 330, Boston, MA  02111-1307, USA.</P
+><P
+> You should have received a copy of the <A
+HREF="http://www.gnu.org/copyleft/gpl.html"
+TARGET="_top"
+>GNU General Public License</A
+>
+ along with this program; if not, write to the Free Software Foundation, Inc.,
+ 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN937"
+>10.2. History</A
+></H2
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is evolved, and derived from, 
+ <SPAN
+CLASS="APPLICATION"
+>the Internet Junkbuster</SPAN
+>, with many 
+ improvments and enhancements over the original.</P
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+> was originally written by Anonymous
+ Coders and <A
+HREF="http://www.junkbusters.com"
+TARGET="_top"
+>Junkbuster's
+ Corporation</A
+>, and was released as free open-source software under the
+ GNU GPL. <A
+HREF="http://www.waldherr.org/junkbuster/"
+TARGET="_top"
+>Stefan
+ Waldherr</A
+> made many improvements, and started the <A
+HREF="http://sourceforge.net/projects/ijbswa/"
+TARGET="_top"
+>SourceForge project
+ Privoxy</A
+> to rekindle development. There are now several active
+ developers contributing.  The last stable release of
+ <SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+> was v2.0.2, which has now
+ grown whiskers ;-).</P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="contact.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="seealso.html"
+>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"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>See also</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/developer-manual/cvs.html b/doc/webserver/developer-manual/cvs.html
new file mode 100644 (file)
index 0000000..7b41c56
--- /dev/null
@@ -0,0 +1,135 @@
+<HTML
+><HEAD
+><TITLE
+>Version Control Guidelines</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+REL="HOME"
+TITLE="Privoxy Developer Manual"
+HREF="index.html"><LINK
+REL="PREVIOUS"
+TITLE="Coding Guidelines"
+HREF="coding.html"><LINK
+REL="NEXT"
+TITLE="Testing Guidelines"
+HREF="testing.html"><LINK
+REL="STYLESHEET"
+TYPE="text/css"
+HREF="../p_doc.css"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+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"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="testing.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="CVS"
+>6. Version Control Guidelines</A
+></H1
+><P
+>To be filled. note on cvs comments. Don't only comment what you did,
+    but also why you did it!</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="coding.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="testing.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Coding Guidelines</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Testing Guidelines</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/developer-manual/documentation.html b/doc/webserver/developer-manual/documentation.html
new file mode 100644 (file)
index 0000000..0ab7ad1
--- /dev/null
@@ -0,0 +1,779 @@
+<HTML
+><HEAD
+><TITLE
+>Documentation Guidelines</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+REL="HOME"
+TITLE="Privoxy Developer Manual"
+HREF="index.html"><LINK
+REL="PREVIOUS"
+TITLE="Quickstart to Privoxy Development"
+HREF="quickstart.html"><LINK
+REL="NEXT"
+TITLE="Coding Guidelines"
+HREF="coding.html"><LINK
+REL="STYLESHEET"
+TYPE="text/css"
+HREF="../p_doc.css"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+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="quickstart.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="coding.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="DOCUMENTATION"
+>4. Documentation Guidelines</A
+></H1
+><P
+>    All formal documents are maintained in docbook SGML and located in the
+    <TT
+CLASS="COMPUTEROUTPUT"
+>doc/source</TT
+> directory. You will need
+    <A
+HREF="http://www.docbook.org"
+TARGET="_top"
+>docbook</A
+> and the docbook
+    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
+>, is also now maintained 
+    as SGML. The <I
+CLASS="CITETITLE"
+>README</I
+> in the top-level source 
+    directory is a generated file. <I
+CLASS="EMPHASIS"
+>DO NOT edit this
+    directly</I
+>. Edit the SGML source!
+    </P
+><P
+>     Other, less formal documents (e.g. AUTHORS, LICENSE) are maintained as
+     plain text files in the toplevel source directory. At least for the 
+     time being.
+    </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. Or HTML versions can be downloaded from the <A
+HREF="http://www.privoxy.org"
+TARGET="_top"
+>www.privoxy.org</A
+> website, which
+     should be fairly current. (This is only a temporary solution.)
+    </P
+><P
+>     Formal documents are built with the Makefile targets of
+     <TT
+CLASS="COMPUTEROUTPUT"
+>make dok</TT
+>, or alternately
+     <TT
+CLASS="COMPUTEROUTPUT"
+>make redhat-dok</TT
+>. If you have problems,
+     try both. The build process uses the document SGML sources in
+     <TT
+CLASS="COMPUTEROUTPUT"
+>doc/source</TT
+> to update all text files in
+     <TT
+CLASS="COMPUTEROUTPUT"
+>doc/text</TT
+> and to update all HTML
+     documents in <TT
+CLASS="COMPUTEROUTPUT"
+>doc/webserver</TT
+>.
+    </P
+><P
+>     Documentation writers should please make sure documents build
+     successfully before committing to CVS.
+    </P
+><P
+>     How do you update the webserver (i.e. the pages on privoxy.org)?
+     
+     <P
+></P
+><OL
+TYPE="1"
+><LI
+><P
+>        First, build the docs by running <TT
+CLASS="COMPUTEROUTPUT"
+>make
+        dok</TT
+> (or alternately <TT
+CLASS="COMPUTEROUTPUT"
+>make
+        redhat-dok</TT
+>).                 
+      </P
+></LI
+><LI
+><P
+>        Run <TT
+CLASS="COMPUTEROUTPUT"
+>make webserver</TT
+> which copies all
+        files from <TT
+CLASS="COMPUTEROUTPUT"
+>doc/webserver</TT
+> to the
+        sourceforge webserver via scp.
+      </P
+></LI
+></OL
+>
+  </P
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="SGML"
+>4.1. Quickstart to Docbook and SGML</A
+></H2
+><P
+> If you are not familiar with SGML, it is a markup language similar to HTML. 
+ In fact, HTML is an SGML application. Both use <SPAN
+CLASS="QUOTE"
+>"tags"</SPAN
+>
+ to format text and other content. SGML tags are 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 SGML need to be always <SPAN
+CLASS="QUOTE"
+>"closed"</SPAN
+>. If not, you 
+ will likely generate errors. Example: 
+ <TT
+CLASS="LITERAL"
+>&#60;title&#62;My Title&#60;/title&#62;</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"
+>&#60;title&#62;</TT
+> element, and at least one 
+ <TT
+CLASS="LITERAL"
+>&#60;para&#62;</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
+>  <I
+CLASS="EMPHASIS"
+>&#60;para&#62;&#60;/para&#62;</I
+>, paragraph delimiter. Most 
+  text needs to be within paragraph elements.
+ </TD
+></TR
+><TR
+><TD
+>  <I
+CLASS="EMPHASIS"
+>&#60;emphasis&#62;&#60;/emphasis&#62;</I
+>, stylesheets make this
+ italics.
+ </TD
+></TR
+><TR
+><TD
+>  <I
+CLASS="EMPHASIS"
+>&#60;filename&#62;&#60;/filename&#62;</I
+>, files and directories.
+ </TD
+></TR
+><TR
+><TD
+>  <I
+CLASS="EMPHASIS"
+>&#60;command&#62;&#60;/command&#62;</I
+>, command examples.
+ </TD
+></TR
+><TR
+><TD
+>  <I
+CLASS="EMPHASIS"
+>&#60;literallayout&#62;&#60;/literllayout&#62;</I
+>, like 
+  <TT
+CLASS="LITERAL"
+>&#60;pre&#62;</TT
+>, more or less.
+ </TD
+></TR
+><TR
+><TD
+>  <I
+CLASS="EMPHASIS"
+>&#60;itemizedlist&#62;&#60;/itemizdelist&#62;</I
+>, list with bullets.
+ </TD
+></TR
+><TR
+><TD
+>  <I
+CLASS="EMPHASIS"
+>&#60;listitem&#62;&#60;/listitem&#62;</I
+>, member of the above.
+ </TD
+></TR
+><TR
+><TD
+>   <I
+CLASS="EMPHASIS"
+>&#60;screen&#62;&#60;/screen&#62;</I
+>, screen output, implies 
+   <TT
+CLASS="LITERAL"
+>&#60;literallayout&#62;</TT
+>.
+ </TD
+></TR
+><TR
+><TD
+>  <I
+CLASS="EMPHASIS"
+>&#60;ulink url="example.com"&#62;&#60;/ulink&#62;</I
+>, like 
+  HTML <TT
+CLASS="LITERAL"
+>&#60;a&#62;</TT
+> tag.
+ </TD
+></TR
+><TR
+><TD
+>   <I
+CLASS="EMPHASIS"
+>&#60;quote&#62;&#60;/quote&#62;</I
+>, for, doh, quoting text. 
+ </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+><P
+> Look at any of the existing docs for examples of all these and more.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="DOCSTYLE"
+>4.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
+></P
+><UL
+><LI
+><P
+>       All tags should be lower case.
+      </P
+></LI
+><LI
+><P
+>       Tags delimiting a block of text should be on their own line. 
+       Like:
+       <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&#60;para&#62;<br>
+&nbsp;&nbsp;Some&nbsp;text&nbsp;goes&nbsp;here.<br>
+&nbsp;&#60;/para&#62;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+>
+       Tags marking individual words, or few words, should be in-line:
+       <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;Just&nbsp;to&nbsp;&#60;emphasis&#62;emphasize&#60;/emphasis&#62;,&nbsp;some&nbsp;text&nbsp;goes&nbsp;here.<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+>
+     </P
+></LI
+><LI
+><P
+>      Tags should be nested and step indented like:
+       <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&#60;para&#62;<br>
+&nbsp;&nbsp;&#60;itemizedlist&#62;<br>
+&nbsp;&nbsp;&nbsp;&#60;para&#62;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&#60;listitem&#62;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Some&nbsp;text&nbsp;goes&nbsp;here&nbsp;in&nbsp;our&nbsp;list&nbsp;example.<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#60;/listitem&#62;<br>
+&nbsp;&nbsp;&nbsp;&#60;/para&#62;<br>
+&nbsp;&nbsp;&#60;/itemizedlist&#62;<br>
+&nbsp;&#60;/para&#62;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+>
+      This makes it easier to find the text amongst the tags ;-)
+    </P
+></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 
+     &#60;comment&#62; element, or the &#60;!--  --&#62; style comment 
+     familiar from HTML.
+    </P
+></LI
+><LI
+><P
+>     We have an international audience. Refrain from slang, or English 
+     idiosyncrasies (too many to list :).
+   </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 lenghty URLs for
+    instance.
+   </P
+></LI
+><LI
+><P
+>    Our documents are available in differing formats. Right now, they 
+    are just plain text, and HTML, but PDF, and others is always a 
+    future possibility. Be careful with URLs (&#60;ulink&#62;), and avoid 
+    this mistake:
+   </P
+><P
+>     My favorite site is &#60;ulink url="http://example.com"&#62;here&#60;/ulink&#62;.
+   </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 &#60;ulink url="http://example.com"&#62;example.com&#60;/ulink&#62;.
+   </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
+>
+ </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN173"
+>4.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
+  <I
+CLASS="EMPHASIS"
+>generic</I
+>. 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. A sampling of custom entities are
+  listed below. See any of the main docs for examples.
+ </P
+><P
+>  <P
+></P
+><UL
+><LI
+><P
+>    Re-cyclable <SPAN
+CLASS="QUOTE"
+>"boilerplate"</SPAN
+> text entities are defined like:
+   </P
+><P
+>    <TT
+CLASS="LITERAL"
+>&#60;!entity supported SYSTEM "supported.sgml"&#62;</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"
+>&#38;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
+><P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>    <I
+CLASS="EMPHASIS"
+>p-version</I
+>: the <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> 
+    version string, e.g. <SPAN
+CLASS="QUOTE"
+>"2.9.13"</SPAN
+>.
+   </TD
+></TR
+><TR
+><TD
+>    <I
+CLASS="EMPHASIS"
+>p-status</I
+>: the project status, either 
+    <SPAN
+CLASS="QUOTE"
+>"ALPHA"</SPAN
+>, <SPAN
+CLASS="QUOTE"
+>"BETA"</SPAN
+>, or <SPAN
+CLASS="QUOTE"
+>"STABLE"</SPAN
+>.
+   </TD
+></TR
+><TR
+><TD
+>    <I
+CLASS="EMPHASIS"
+>p-not-stable</I
+>: use to conditionally include 
+    text in <SPAN
+CLASS="QUOTE"
+>"not stable"</SPAN
+> releases (e.g. <SPAN
+CLASS="QUOTE"
+>"BETA"</SPAN
+>).
+   </TD
+></TR
+><TR
+><TD
+>    <I
+CLASS="EMPHASIS"
+>p-stable</I
+>: just the opposite.
+   </TD
+></TR
+><TR
+><TD
+>    <I
+CLASS="EMPHASIS"
+>p-text</I
+>: this doc is only generated as text.
+   </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></LI
+></UL
+>
+ </P
+><P
+>  There are others in various places that are defined for a specific 
+  purpose. Read the source!
+ </P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="quickstart.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="coding.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Quickstart to Privoxy Development</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Coding Guidelines</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/developer-manual/index.html b/doc/webserver/developer-manual/index.html
new file mode 100644 (file)
index 0000000..b7f8842
--- /dev/null
@@ -0,0 +1,654 @@
+<HTML
+><HEAD
+><TITLE
+>Privoxy Developer Manual</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+REL="NEXT"
+TITLE="Introduction"
+HREF="introduction.html"><LINK
+REL="STYLESHEET"
+TYPE="text/css"
+HREF="../p_doc.css"></HEAD
+><BODY
+CLASS="ARTICLE"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="ARTICLE"
+><DIV
+CLASS="TITLEPAGE"
+><H1
+CLASS="TITLE"
+><A
+NAME="AEN2"
+>Privoxy Developer Manual</A
+></H1
+><DIV
+CLASS="AUTHORGROUP"
+><A
+NAME="AEN5"
+></A
+><H3
+CLASS="AUTHOR"
+><A
+NAME="AEN6"
+></A
+></H3
+><DIV
+CLASS="AFFILIATION"
+><SPAN
+CLASS="ORGNAME"
+>By: Privoxy Developers<BR></SPAN
+></DIV
+></DIV
+><P
+CLASS="PUBDATE"
+>$Id: developer-manual.sgml,v 1.25 2002/04/06 05:07:28 hal9 Exp $<BR></P
+><DIV
+><DIV
+CLASS="ABSTRACT"
+><A
+NAME="AEN9"
+></A
+><P
+></P
+><P
+> 
+ </P
+><P
+> The developer manual gives the users information on how to help the developer
+ team. It provides guidance on coding, testing, documentation and other
+ issues. 
+ </P
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is a web proxy with advanced filtering
+ capabilities for protecting privacy, filtering web page content, managing
+ cookies, controlling access, and removing ads, banners, pop-ups and other
+ obnoxious Internet junk. <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> has a very
+ flexible configuration and can be customized to suit individual needs and
+ tastes. <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> has application for both
+ stand-alone systems and multi-user networks.</P
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is based on the code of the 
+ <SPAN
+CLASS="APPLICATION"
+>Internet Junkbuster</SPAN
+> (tm).
+ <SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+> was originally written by JunkBusters
+ Corporation, and was released as free open-source software under the GNU GPL.
+ Stefan Waldherr made many improvements, and started the SourceForge project
+ to continue development.</P
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> continues the
+ <SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+> tradition, but adds many 
+ refinements, enhancements and new features.</P
+><P
+> 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 the Contact section on how to contact the developers.</P
+><P
+></P
+></DIV
+></DIV
+><HR></DIV
+><DIV
+CLASS="TOC"
+><DL
+><DT
+><B
+>Table of Contents</B
+></DT
+><DT
+><A
+HREF="index.html#INTRO"
+></A
+></DT
+><DT
+>1. <A
+HREF="introduction.html"
+>Introduction</A
+></DT
+><DT
+>3. <A
+HREF="quickstart.html"
+>Quickstart to Privoxy Development</A
+></DT
+><DT
+>4. <A
+HREF="documentation.html"
+>Documentation Guidelines</A
+></DT
+><DD
+><DL
+><DT
+>4.1. <A
+HREF="documentation.html#SGML"
+>Quickstart to Docbook and SGML</A
+></DT
+><DD
+><DL
+><DT
+>1<A
+HREF="documentation.html#AEN113"
+></A
+></DT
+></DL
+></DD
+><DT
+>4.2. <A
+HREF="documentation.html#DOCSTYLE"
+><SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> Documentation Style</A
+></DT
+><DT
+>4.3. <A
+HREF="documentation.html#AEN173"
+>Privoxy Custom Entities</A
+></DT
+></DL
+></DD
+><DT
+>5. <A
+HREF="coding.html"
+>Coding Guidelines</A
+></DT
+><DD
+><DL
+><DT
+>5.1. <A
+HREF="coding.html#S1"
+>Introduction</A
+></DT
+><DT
+>5.2. <A
+HREF="coding.html#S2"
+>Using Comments</A
+></DT
+><DD
+><DL
+><DT
+>5.2.1. <A
+HREF="coding.html#S3"
+>Comment, Comment, Comment</A
+></DT
+><DT
+>5.2.2. <A
+HREF="coding.html#S4"
+>Use blocks for comments</A
+></DT
+><DT
+>5.2.3. <A
+HREF="coding.html#S5"
+>Keep Comments on their own line</A
+></DT
+><DT
+>5.2.4. <A
+HREF="coding.html#S6"
+>Comment each logical step</A
+></DT
+><DT
+>5.2.5. <A
+HREF="coding.html#S7"
+>Comment All Functions Thoroughly</A
+></DT
+><DT
+>5.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
+>5.3. <A
+HREF="coding.html#S9"
+>Naming Conventions</A
+></DT
+><DD
+><DL
+><DT
+>5.3.1. <A
+HREF="coding.html#S10"
+>Variable Names</A
+></DT
+><DT
+>5.3.2. <A
+HREF="coding.html#S11"
+>Function Names</A
+></DT
+><DT
+>5.3.3. <A
+HREF="coding.html#S12"
+>Header file prototypes</A
+></DT
+><DT
+>5.3.4. <A
+HREF="coding.html#S13"
+>Enumerations, and #defines</A
+></DT
+><DT
+>5.3.5. <A
+HREF="coding.html#S14"
+>Constants</A
+></DT
+></DL
+></DD
+><DT
+>5.4. <A
+HREF="coding.html#S15"
+>Using Space</A
+></DT
+><DD
+><DL
+><DT
+>5.4.1. <A
+HREF="coding.html#S16"
+>Put braces on a line by themselves.</A
+></DT
+><DT
+>5.4.2. <A
+HREF="coding.html#S17"
+>ALL control statements should have a
+    block</A
+></DT
+><DT
+>5.4.3. <A
+HREF="coding.html#S18"
+>Do not belabor/blow-up boolean
+    expressions</A
+></DT
+><DT
+>5.4.4. <A
+HREF="coding.html#S19"
+>Use white space freely because it is
+    free</A
+></DT
+><DT
+>5.4.5. <A
+HREF="coding.html#S20"
+>Don't use white space around structure
+    operators</A
+></DT
+><DT
+>5.4.6. <A
+HREF="coding.html#S21"
+>Make the last brace of a function stand
+    out</A
+></DT
+><DT
+>5.4.7. <A
+HREF="coding.html#S22"
+>Use 3 character indentions</A
+></DT
+></DL
+></DD
+><DT
+>5.5. <A
+HREF="coding.html#S23"
+>Initializing</A
+></DT
+><DD
+><DL
+><DT
+>5.5.1. <A
+HREF="coding.html#S24"
+>Initialize all variables</A
+></DT
+></DL
+></DD
+><DT
+>5.6. <A
+HREF="coding.html#S25"
+>Functions</A
+></DT
+><DD
+><DL
+><DT
+>5.6.1. <A
+HREF="coding.html#S26"
+>Name functions that return a boolean as a
+    question.</A
+></DT
+><DT
+>5.6.2. <A
+HREF="coding.html#S27"
+>Always specify a return type for a
+    function.</A
+></DT
+><DT
+>5.6.3. <A
+HREF="coding.html#S28"
+>Minimize function calls when iterating by
+    using variables</A
+></DT
+><DT
+>5.6.4. <A
+HREF="coding.html#S29"
+>Pass and Return by Const Reference</A
+></DT
+><DT
+>5.6.5. <A
+HREF="coding.html#S30"
+>Pass and Return by Value</A
+></DT
+><DT
+>5.6.6. <A
+HREF="coding.html#S31"
+>Names of include files</A
+></DT
+><DT
+>5.6.7. <A
+HREF="coding.html#S32"
+>Provide multiple inclusion
+    protection</A
+></DT
+><DT
+>5.6.8. <A
+HREF="coding.html#S33"
+>Use `extern "C"` when appropriate</A
+></DT
+><DT
+>5.6.9. <A
+HREF="coding.html#S34"
+>Where Possible, Use Forward Struct
+    Declaration Instead of Includes</A
+></DT
+></DL
+></DD
+><DT
+>5.7. <A
+HREF="coding.html#S35"
+>General Coding Practices</A
+></DT
+><DD
+><DL
+><DT
+>5.7.1. <A
+HREF="coding.html#S36"
+>Turn on warnings</A
+></DT
+><DT
+>5.7.2. <A
+HREF="coding.html#S37"
+>Provide a default case for all switch
+    statements</A
+></DT
+><DT
+>5.7.3. <A
+HREF="coding.html#S38"
+>Try to avoid falling through cases in a
+    switch statement.</A
+></DT
+><DT
+>5.7.4. <A
+HREF="coding.html#S39"
+>Use 'long' or 'short' Instead of
+    'int'</A
+></DT
+><DT
+>5.7.5. <A
+HREF="coding.html#S40"
+>Don't mix size_t and other types</A
+></DT
+><DT
+>5.7.6. <A
+HREF="coding.html#S41"
+>Declare each variable and struct on its
+    own line.</A
+></DT
+><DT
+>5.7.7. <A
+HREF="coding.html#S42"
+>Use malloc/zalloc sparingly</A
+></DT
+><DT
+>5.7.8. <A
+HREF="coding.html#S43"
+>The Programmer Who Uses 'malloc' is
+    Responsible for Ensuring 'free'</A
+></DT
+><DT
+>5.7.9. <A
+HREF="coding.html#S44"
+>Add loaders to the `file_list' structure
+    and in order</A
+></DT
+><DT
+>5.7.10. <A
+HREF="coding.html#S45"
+>"Uncertain" new code and/or changes to
+    exitinst code, use FIXME</A
+></DT
+></DL
+></DD
+><DT
+>5.8. <A
+HREF="coding.html#S46"
+>Addendum: Template for files and function
+    comment blocks:</A
+></DT
+></DL
+></DD
+><DT
+>6. <A
+HREF="cvs.html"
+>Version Control Guidelines</A
+></DT
+><DT
+>7. <A
+HREF="testing.html"
+>Testing Guidelines</A
+></DT
+><DD
+><DL
+><DT
+>7.1. <A
+HREF="testing.html#TESTING-PLAN"
+>Testplan for releases</A
+></DT
+><DT
+>7.2. <A
+HREF="testing.html#TESTING-REPORT"
+>Test reports</A
+></DT
+></DL
+></DD
+><DT
+>8. <A
+HREF="newrelease.html"
+>Releasing a new version</A
+></DT
+><DD
+><DL
+><DT
+>8.1. <A
+HREF="newrelease.html#BEFORERELEASE"
+>Before the Release</A
+></DT
+><DT
+>8.2. <A
+HREF="newrelease.html#NEWRELEASE-WEB"
+>Update the webserver</A
+></DT
+><DT
+>8.3. <A
+HREF="newrelease.html#NEWRELEASE-RPM"
+>SuSE or Red Hat</A
+></DT
+><DT
+>8.4. <A
+HREF="newrelease.html#NEWRELEASE-OS2"
+>OS/2</A
+></DT
+><DT
+>8.5. <A
+HREF="newrelease.html#NEWRELEASE-SOLARIS"
+>Solaris</A
+></DT
+><DT
+>8.6. <A
+HREF="newrelease.html#NEWRELEASE-WINDOWS"
+>Windows</A
+></DT
+><DT
+>8.7. <A
+HREF="newrelease.html#NEWRELEASE-DEBIAN"
+>Debian</A
+></DT
+><DT
+>8.8. <A
+HREF="newrelease.html#NEWRELEASE-MACOSX"
+>Mac OSX</A
+></DT
+><DT
+>8.9. <A
+HREF="newrelease.html#NEWRELEASE-FREEBSD"
+>FreeBSD</A
+></DT
+><DT
+>8.10. <A
+HREF="newrelease.html#NEWRELEASE-TARBALL"
+>Tarball</A
+></DT
+><DT
+>8.11. <A
+HREF="newrelease.html#NEWRELEASE-HPUX"
+>HP-UX 11</A
+></DT
+><DT
+>8.12. <A
+HREF="newrelease.html#NEWRELEASE-AMIGA"
+>Amiga OS</A
+></DT
+><DT
+>8.13. <A
+HREF="newrelease.html#NEWRELEASE-AIX"
+>AIX</A
+></DT
+></DL
+></DD
+><DT
+>9. <A
+HREF="contact.html"
+>Contacting the developers, Bug Reporting and Feature Requests</A
+></DT
+><DT
+>10. <A
+HREF="copyright.html"
+>Copyright and History</A
+></DT
+><DD
+><DL
+><DT
+>10.1. <A
+HREF="copyright.html#AEN930"
+>Copyright</A
+></DT
+><DT
+>10.2. <A
+HREF="copyright.html#AEN937"
+>History</A
+></DT
+></DL
+></DD
+><DT
+>11. <A
+HREF="seealso.html"
+>See also</A
+></DT
+></DL
+></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="INTRO"
+></A
+></H1
+><P
+> </P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="introduction.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Introduction</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/developer-manual/introduction.html b/doc/webserver/developer-manual/introduction.html
new file mode 100644 (file)
index 0000000..be712ac
--- /dev/null
@@ -0,0 +1,157 @@
+<HTML
+><HEAD
+><TITLE
+>Introduction</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+REL="HOME"
+TITLE="Privoxy Developer Manual"
+HREF="index.html"><LINK
+REL="PREVIOUS"
+TITLE="Privoxy Developer Manual"
+HREF="index.html"><LINK
+REL="NEXT"
+TITLE="Quickstart to Privoxy Development"
+HREF="quickstart.html"><LINK
+REL="STYLESHEET"
+TYPE="text/css"
+HREF="../p_doc.css"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+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"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="quickstart.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></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 an Open Source project 
+     and licensed under the GPL. 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,
+     and porting, are all important jobs as well.
+    </P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="index.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="quickstart.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Privoxy Developer Manual</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Quickstart to Privoxy Development</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/developer-manual/newrelease.html b/doc/webserver/developer-manual/newrelease.html
new file mode 100644 (file)
index 0000000..4881363
--- /dev/null
@@ -0,0 +1,1299 @@
+<HTML
+><HEAD
+><TITLE
+>Releasing a new version</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+REL="HOME"
+TITLE="Privoxy Developer Manual"
+HREF="index.html"><LINK
+REL="PREVIOUS"
+TITLE="Testing Guidelines"
+HREF="testing.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"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><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"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="contact.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="NEWRELEASE"
+>8. Releasing a new version</A
+></H1
+><P
+>      To minimize trouble with distribution contents, webpage
+       errors and the like, we strongly encourage you
+       to follow this section if you prepare a new release of
+       code or new pages on the webserver.
+    </P
+><P
+>      The following programs are required to follow this process:
+       <TT
+CLASS="FILENAME"
+>ncftpput</TT
+> (ncftp), <TT
+CLASS="FILENAME"
+>scp</TT
+> (ssh),
+<TT
+CLASS="FILENAME"
+>gmake</TT
+> (GNU's version of make), autoconf, cvs, ???.
+    </P
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="BEFORERELEASE"
+>8.1. Before the Release</A
+></H2
+><P
+>       The following <I
+CLASS="EMPHASIS"
+>must be done by one of the
+       developers</I
+> prior to each new release:
+     </P
+><P
+>      <P
+></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.
+        </P
+></LI
+><LI
+><P
+>         Increment the version number in <TT
+CLASS="FILENAME"
+>configure.in</TT
+> in
+         CVS. Also, the RPM release number in
+         <TT
+CLASS="FILENAME"
+>configure.in</TT
+>. Do NOT touch version information
+         after export from CVS. <I
+CLASS="EMPHASIS"
+>All packages</I
+> will use the
+         version and release data from <TT
+CLASS="FILENAME"
+>configure.in</TT
+>.
+         Local files should not be changed, except prior to a CVS commit!!!
+         This way we are all on the same page!
+       </P
+></LI
+><LI
+><P
+>        If the default actionsfile has changed since last release,
+        bump up its version info in this line:
+       </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
+></TABLE
+>
+       </P
+><P
+> 
+        Then change the version info in doc/webserver/actions/index.php,
+        line: '$required_actions_file_version = "A.B";'
+       </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
+> (where X = major, Y
+        = minor, Z = point). Don't use vX_Y_Z, ver_X_Y_Z, v_X.Y.Z (won't work)
+        etc.
+       </P
+></LI
+><LI
+><P
+>        The first package uploaded should be the official
+        <SPAN
+CLASS="QUOTE"
+>"tarball"</SPAN
+> release. This is built with the
+        <SPAN
+CLASS="QUOTE"
+>"<B
+CLASS="COMMAND"
+>make tarball-dist</B
+>"</SPAN
+> Makefile 
+        target, and then can be uploaded with 
+        <SPAN
+CLASS="QUOTE"
+>"<B
+CLASS="COMMAND"
+>make tarball-upload</B
+>"</SPAN
+> (see below).
+       </P
+></LI
+></UL
+>
+     </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="NEWRELEASE-WEB"
+>8.2. Update the webserver</A
+></H2
+><P
+>      All files must be group-readable and group-writable (or no one else
+       will be able to change them). To update the webserver, create any
+       pages locally in the <TT
+CLASS="FILENAME"
+>doc/webserver</TT
+> directory (or
+       create new directories under <TT
+CLASS="FILENAME"
+>doc/webserver</TT
+>), then do
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  make webserver
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      Note that <SPAN
+CLASS="QUOTE"
+>"<B
+CLASS="COMMAND"
+>make dok</B
+>"</SPAN
+> 
+     (or <SPAN
+CLASS="QUOTE"
+>"<B
+CLASS="COMMAND"
+>make redhat-dok</B
+>"</SPAN
+>) creates
+       <TT
+CLASS="FILENAME"
+>doc/webserver/user-manual</TT
+>,
+       <TT
+CLASS="FILENAME"
+>doc/webserver/developer-manual</TT
+>,
+       <TT
+CLASS="FILENAME"
+>doc/webserver/faq</TT
+> and
+       <TT
+CLASS="FILENAME"
+>doc/webserver/man-page</TT
+> automatically.
+      </P
+><P
+>      Please do NOT use any other means of transferring files to the
+      webserver. <SPAN
+CLASS="QUOTE"
+>"<B
+CLASS="COMMAND"
+>make webserver</B
+>"</SPAN
+> not only
+      uploads, but will make sure that the appropriate permissions are 
+      preserved for shared group access.
+      </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="NEWRELEASE-RPM"
+>8.3. SuSE or Red Hat</A
+></H2
+><P
+>      Ensure that you have the latest code version. Hence run:
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  cd current
+  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3  -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r  v_X_Y_Z current
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>       first. 
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  autoheader &#38;&#38; autoconf &#38;&#38; ./configure
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      Then do
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  make suse-dist or make redhat-dist
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      To upload the package to Sourceforge, simply issue
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  make suse-upload or make redhat-upload
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      Go to the displayed URL and release the file publicly on Sourceforge.
+      </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="NEWRELEASE-OS2"
+>8.4. OS/2</A
+></H2
+><P
+>      Ensure that you have the latest code version. Hence run:
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  cd current
+  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r  v_X_Y_Z current
+  cd ..
+  cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co os2setup
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><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, 
+       <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  installExeName='privoxyos2_setup_X.Y.Z.exe'
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       Next, edit the <TT
+CLASS="FILENAME"
+>IJB.wis</TT
+> file so the release number matches
+       in the <TT
+CLASS="FILENAME"
+>PACKAGEID</TT
+> section:
+       <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  PACKAGEID="Privoxy Team\Privoxy\Privoxy Package\X\Y\Z"
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       You're now ready to build.  Run:
+       <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  os2build
+       </PRE
+></TD
+></TR
+></TABLE
+>
+     And in the <TT
+CLASS="FILENAME"
+>./files</TT
+> directory you will have the
+     WarpIN-installable executable. 
+     Upload this anonymously to
+     <TT
+CLASS="FILENAME"
+>uploads.sourceforge.net/incoming</TT
+>, create a release
+     for it, and you're done.
+       </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="NEWRELEASE-SOLARIS"
+>8.5. Solaris</A
+></H2
+><P
+>      Login to Sourceforge's compilefarm via ssh
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  ssh cf.sourceforge.net
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      Choose the right operating system (not the Debian one). If you have
+       downloaded <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> before,
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  cd current
+  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3  -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r  v_X_Y_Z current
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      If not, please <A
+HREF="http://www.privoxy.org/user-manual/user-manual/installation.html#INSTALLATION-SOURCE"
+TARGET="_top"
+>checkout
+       Privoxy via CVS first</A
+>. Run:
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  autoheader &#38;&#38; autoconf &#38;&#38; ./configure
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      Then run
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  gmake solaris-dist
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><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.
+       </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="NEWRELEASE-WINDOWS"
+>8.6. Windows</A
+></H2
+><P
+>      Ensure that you have the latest code version. Hence run
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  cd current
+  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3  -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r  v_X_Y_Z current
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>       Run:
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  autoheader &#38;&#38; autoconf &#38;&#38; ./configure
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      Then do FIXME.
+       </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="NEWRELEASE-DEBIAN"
+>8.7. Debian</A
+></H2
+><P
+>      Ensure that you have the latest code version. Hence run:
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  cd current
+  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3  -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r  v_X_Y_Z current
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      first. Run:
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  autoheader &#38;&#38; autoconf &#38;&#38; ./configure
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      Then do FIXME.
+       </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="NEWRELEASE-MACOSX"
+>8.8. Mac OSX</A
+></H2
+><P
+>      Ensure that you have the latest code version. Hence run:
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  cd current
+  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r  v_X_Y_Z current
+  cd ..
+  cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co osxsetup
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      From the osxsetup directory, run:
+       <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  build
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><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:
+       <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>zip -r privoxyosx_setup_x.y.z.zip Privoxy.pkg
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       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.
+       </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="NEWRELEASE-FREEBSD"
+>8.9. FreeBSD</A
+></H2
+><P
+>      Change the version number of <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> in the
+       configure.in file. Run:
+       <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  autoheader &#38;&#38; autoconf &#38;&#38; ./configure
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       Then ...
+      </P
+><P
+>      Login to Sourceforge's compilefarm via ssh:
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  ssh cf.sourceforge.net
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      Choose the right operating system. If you have downloaded Privoxy
+       before,
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  cd current
+  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3  -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r  v_X_Y_Z current
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      If not, please <A
+HREF="http://www.privoxy.org/user-manual/user-manual/installation.html#INSTALLATION-SOURCE"
+TARGET="_top"
+>checkout
+       Privoxy via CVS first</A
+>. Run:
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  autoheader &#38;&#38; autoconf &#38;&#38; ./configure
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      Then run:
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  gmake freebsd-dist
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><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.
+       </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="NEWRELEASE-TARBALL"
+>8.10. Tarball</A
+></H2
+><P
+>      Ensure that you have the latest code version. Hence run:
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  cd current
+  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3  -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r  v_X_Y_Z current
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      first. Run:
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  make clobber
+  autoheader &#38;&#38; autoconf &#38;&#38; ./configure
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      Then do:
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  make tarball-dist
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      To upload the package to Sourceforge, simply issue
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  make tarball-upload
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      Goto the displayed URL and release the file publicly on Sourceforge.
+      </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="NEWRELEASE-HPUX"
+>8.11. HP-UX 11</A
+></H2
+><P
+>      Ensure that you have the latest code version. Hence run:
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  cd current
+  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3  -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r  v_X_Y_Z current
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      first. Run:
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  autoheader &#38;&#38; autoconf &#38;&#38; ./configure
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      Then do FIXME.
+       </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="NEWRELEASE-AMIGA"
+>8.12. Amiga OS</A
+></H2
+><P
+>      Ensure that you have the latest code version. Hence run:
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  cd current
+  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3  -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r  v_X_Y_Z current
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      first. Run:
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  autoheader &#38;&#38; autoconf &#38;&#38; ./configure
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      Then do FIXME.
+       </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="NEWRELEASE-AIX"
+>8.13. AIX</A
+></H2
+><P
+>      Login to Sourceforge's compilefarm via ssh:
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  ssh cf.sourceforge.net
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      Choose the right operating system. If you have downloaded Privoxy
+       before:
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  cd current
+  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3  -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa export -r  v_X_Y_Z current
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      If not, please <A
+HREF="http://www.privoxy.org/user-manual/user-manual/installation.html#INSTALLATION-SOURCE"
+TARGET="_top"
+>checkout
+       Privoxy via CVS first</A
+>. Run:
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  autoheader &#38;&#38; autoconf &#38;&#38; ./configure
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><P
+>      Then run:
+       </P
+><P
+>      <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>  make aix-dist
+       </PRE
+></TD
+></TR
+></TABLE
+>
+       </P
+><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.
+       </P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="testing.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="contact.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Testing Guidelines</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Contacting the developers, Bug Reporting and Feature Requests</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/developer-manual/quickstart.html b/doc/webserver/developer-manual/quickstart.html
new file mode 100644 (file)
index 0000000..f2b39a2
--- /dev/null
@@ -0,0 +1,174 @@
+<HTML
+><HEAD
+><TITLE
+>Quickstart to Privoxy Development</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><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"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><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"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="documentation.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="QUICKSTART"
+>3. Quickstart to Privoxy Development</A
+></H1
+><P
+>You'll need an account on <A
+HREF="http://sourceforge.net"
+TARGET="_top"
+>Sourceforge</A
+> to support our development.
+Mail your ID to the list and wait until a project manager has added you.</P
+><P
+>For the time being (read, this section is under construction), please note the
+following guidelines for changing stuff in the code. If it is
+       <P
+></P
+><OL
+TYPE="1"
+><LI
+><P
+>              A bugfix / clean-up / cosmetic thing: shoot
+                       </P
+></LI
+><LI
+><P
+>                      A new feature that can be turned off: shoot
+                       </P
+></LI
+><LI
+><P
+>              A clear improvement w/o side effects on other parts of the code: shoot
+                </P
+></LI
+><LI
+><P
+>              A matter of taste: ask the list
+               </P
+></LI
+><LI
+><P
+>              A major redesign of some part of the code: ask the list
+                </P
+></LI
+></OL
+>      
+ </P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="introduction.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="documentation.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Introduction</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Documentation Guidelines</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/developer-manual/seealso.html b/doc/webserver/developer-manual/seealso.html
new file mode 100644 (file)
index 0000000..9f31344
--- /dev/null
@@ -0,0 +1,286 @@
+<HTML
+><HEAD
+><TITLE
+>See also</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+REL="HOME"
+TITLE="Privoxy Developer Manual"
+HREF="index.html"><LINK
+REL="PREVIOUS"
+TITLE="Copyright and History"
+HREF="copyright.html"><LINK
+REL="STYLESHEET"
+TYPE="text/css"
+HREF="../p_doc.css"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+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"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+>&nbsp;</TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="SEEALSO"
+>11. See also</A
+></H1
+><P
+> Other references and sites of interest to <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ users:</P
+><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
+><P
+></P
+>
+ <P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>    <A
+HREF="http://sourceforge.net/projects/ijbswa"
+TARGET="_top"
+>http://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
+><P
+></P
+>
+ <P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>    <A
+HREF="http://p.p/"
+TARGET="_top"
+>http://p.p/</A
+>, access
+   <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> from your browser. Alternately, 
+   <A
+HREF="http://config.privoxy.org"
+TARGET="_top"
+>http://config.privoxy.org</A
+>
+   may work in some situations where the first does not.
+  </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+>
+ <P
+></P
+><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
+>
+  </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+>
+ <P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>    <A
+HREF="http://www.waldherr.org/junkbuster/"
+TARGET="_top"
+>http://www.waldherr.org/junkbuster/</A
+>
+  </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+>
+ <P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>    <A
+HREF="http://privacy.net/analyze/"
+TARGET="_top"
+>http://privacy.net/analyze/</A
+>
+  </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+>
+ <P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>   <A
+HREF="http://www.squid-cache.org/"
+TARGET="_top"
+>http://www.squid-cache.org/</A
+>
+  </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+>&#13;</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="copyright.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Copyright and History</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>&nbsp;</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/developer-manual/testing.html b/doc/webserver/developer-manual/testing.html
new file mode 100644 (file)
index 0000000..d219407
--- /dev/null
@@ -0,0 +1,248 @@
+<HTML
+><HEAD
+><TITLE
+>Testing Guidelines</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+REL="HOME"
+TITLE="Privoxy Developer Manual"
+HREF="index.html"><LINK
+REL="PREVIOUS"
+TITLE="Version Control Guidelines"
+HREF="cvs.html"><LINK
+REL="NEXT"
+TITLE="Releasing a new version"
+HREF="newrelease.html"><LINK
+REL="STYLESHEET"
+TYPE="text/css"
+HREF="../p_doc.css"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+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"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="newrelease.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="TESTING"
+>7. Testing Guidelines</A
+></H1
+><P
+>To be filled.</P
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="TESTING-PLAN"
+>7.1. Testplan for releases</A
+></H2
+><P
+>       Explain release numbers. major, minor. developer releases. etc.
+
+<P
+></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
+></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
+></P
+></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
+></P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="TESTING-REPORT"
+>7.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
+></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 mailinglist (we cannot keep track on issues there).
+      </P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="cvs.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="newrelease.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Version Control Guidelines</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Releasing a new version</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/faq/configuration.html b/doc/webserver/faq/configuration.html
new file mode 100644 (file)
index 0000000..339b762
--- /dev/null
@@ -0,0 +1,1111 @@
+<HTML
+><HEAD
+><TITLE
+>Configuration</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><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"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><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"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="misc.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="CONFIGURATION"
+>3. Configuration</A
+></H1
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="NEWCONFIG"
+>3.1. Can I use my old config files?</A
+></H3
+><P
+>   There are major changes to <SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+>/ 
+   <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> configuration from version 2.0.x to
+   2.9.x and later. Most of the older files will not work at all. This is 
+   especially true of <TT
+CLASS="FILENAME"
+>blocklist</TT
+>. If this is the case, you
+   will need to re-enter your old data into the new configuration structure.
+   This is probably also a good recommendation even if upgrading from 2.9.x to
+   3.x since there were many minor changes along the way.
+ </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN239"
+>3.2. What is an <SPAN
+CLASS="QUOTE"
+>"actions"</SPAN
+> file?</A
+></H3
+><P
+> <SPAN
+CLASS="QUOTE"
+>"actions"</SPAN
+> files are where various actions that
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> might take, are configured. 
+ Typically, you would define a set of default actions that apply 
+ to all URLs, then add exceptions to these defaults.</P
+><P
+> Actions can be defined on a per site basis, or for groups of sites. Actions
+ can also be grouped together and then applied to one or more sites. There
+ are many possible actions that might apply to any given site. As an example,
+ if we are blocking cookies as one of our default
+ <SPAN
+CLASS="APPLICATION"
+>actions</SPAN
+>, but need to accept cookies from a given
+ site, we would define this in our <SPAN
+CLASS="QUOTE"
+>"actions"</SPAN
+> file.&#13;</P
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> comes with several default
+ <SPAN
+CLASS="APPLICATION"
+>actions</SPAN
+> files, with varying degrees 
+ of filtering and blocking, as starting points for your own 
+ configuration (see below).</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="ACTIONSS"
+>3.3. The <SPAN
+CLASS="QUOTE"
+>"actions"</SPAN
+> concept confuses me. Please list 
+some of these <SPAN
+CLASS="QUOTE"
+>"actions"</SPAN
+>.</A
+></H3
+><P
+> These are all explained in the 
+ <A
+HREF="../user-manual/configuration.html#ACTIONSFILE"
+TARGET="_top"
+>user-manual</A
+>.
+ Please refer to that.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN257"
+>3.4. How are actions files configured? What is the easiest
+way to do this?</A
+></H3
+><P
+> The easiest way to do this, is to access <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ with your web browser at <A
+HREF="http://p.p/"
+TARGET="_top"
+>http://p.p/</A
+>, 
+ and then select 
+ "<A
+HREF="http://config.privoxy.org"
+TARGET="_top"
+>Edit the actions list</A
+>"
+ from the selection list. You can also do this by editing the appropriate 
+ file with a text editor.</P
+><P
+> Please see the 
+ <A
+HREF="../user-manual/configuration.html#ACTIONSFILE"
+TARGET="_top"
+>user-manual</A
+> for a
+ detailed explanation of these and other configuration files, and their
+ various options and syntax.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="CONFIGFILES"
+>3.5. What are the differences between
+intermediate.action, basic.action, etc.?</A
+></H3
+><P
+>Configuring <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is not easy. To help you get
+started, we provide you with three different default configurations. The
+following table shows you, which features are enabled in each configuration.
+ </P
+><P
+><DIV
+CLASS="TABLE"
+><A
+NAME="AEN270"
+></A
+><P
+><B
+>Table 1. Default Configurations</B
+></P
+><TABLE
+BORDER="1"
+CLASS="CALSTABLE"
+><THEAD
+><TR
+><TH
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>Feature</TH
+><TH
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>default.action</TH
+><TH
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>basic.action</TH
+><TH
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>intermediate.action</TH
+><TH
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>advanced.action</TH
+></TR
+></THEAD
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>ad-filtering</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>?</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>x</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>x</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>x</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>blank image</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>?</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>x</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>x</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>x</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>de-animate GIFs</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>?</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>x</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>x</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>x</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>referer forging</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>?</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>x</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>x</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>x</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>jon's +no-cookies-keep (i.e. session cookies only)</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>?</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>x</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>x</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>x</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>no-popup windows</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>?</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>x</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>x</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>fast redirects</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>?</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>x</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>x</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>hide-referrer</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>?</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>x</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>x</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>hide-useragent</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>?</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>x</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>x</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>content-modification</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>?</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>x</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>feature-x</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>?</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>feature-y</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>?</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>feature-z</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>?</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TBODY
+></TABLE
+></DIV
+></P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="BROWSECONFIG"
+>3.6. Why can I change the configuration with a
+browser? Does that not raise security issues?</A
+></H3
+><P
+>What I don't understand, is how I can browser edit the config file as a
+regular user, while 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 the config files.
+ </P
+><P
+>If you don't like this, setting <SPAN
+CLASS="QUOTE"
+>"enable-edit-actions 0"</SPAN
+> in the
+config file will disable the browser-based editor.  If you're that paranoid,
+you should also consider setting <SPAN
+CLASS="QUOTE"
+>"enable-remote-toggle 0"</SPAN
+> to prevent
+browser-based enabling/disabling of <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>.
+ </P
+><P
+>Note that normally only local users can connect to
+<SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>, so this is not (normally) a security
+problem.
+ </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN379"
+>3.7. What is <SPAN
+CLASS="QUOTE"
+>"default.filter"</SPAN
+>?</A
+></H3
+><P
+> The <SPAN
+CLASS="QUOTE"
+>"default.filter"</SPAN
+> file is used to <SPAN
+CLASS="QUOTE"
+>"filter"</SPAN
+> any
+ web page content. By <SPAN
+CLASS="QUOTE"
+>"filtering"</SPAN
+> we mean it can modify, remove, 
+ or change <I
+CLASS="EMPHASIS"
+>anything</I
+> on the page, including HTML tags, and
+ JavaScript. Regular expressions are used to accomplish this, and operate 
+ on a line by line basis. This is potentially a very powerful feature, but
+ requires some expertise. </P
+><P
+> If you are familiar with regular expressions, and HTML, you can look at 
+ the provided <TT
+CLASS="FILENAME"
+>default.filter</TT
+> with a text editor and see
+ some of things it can be used for.</P
+><P
+> Presently, there is no GUI editor option for this part of the configuration, 
+ but you can disable/enable various sections of the included default 
+ file with the <SPAN
+CLASS="QUOTE"
+>"Actions List Editor"</SPAN
+> from your browser.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN391"
+>3.8. How can I set up <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> to act as a proxy for my 
+ LAN?</A
+></H3
+><P
+> By default, <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> only responds to requests 
+ from localhost. To have it act as a server for a network, this needs to be 
+ changed in the main config file where the <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ configuration is located. In that file is a <SPAN
+CLASS="QUOTE"
+>"listen-address"</SPAN
+> 
+ option. It may be commented out with a <SPAN
+CLASS="QUOTE"
+>"#"</SPAN
+> symbol. Make sure 
+ it is uncommented, and assign it the address of the LAN gateway interface, 
+ and port number to use:</P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>  listen-address  192.168.1.1:8118
+ </PRE
+></TD
+></TR
+></TABLE
+></P
+><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
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN403"
+>3.9. Instead of ads, now I get a checkerboard pattern. I don't want to see anything.</A
+></H3
+><P
+> This is a configuration option for images that
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is stopping. You have the choice   of a checkerboard
+ pattern, a transparent 1x1 GIF image (aka <SPAN
+CLASS="QUOTE"
+>"blank"</SPAN
+>), or a custom
+ URL of your choice. Note that to fit this category, the URL must match both 
+ the <SPAN
+CLASS="QUOTE"
+>"+image"</SPAN
+> and <SPAN
+CLASS="QUOTE"
+>"+block"</SPAN
+> actions.</P
+><P
+> If you want to see nothing, then change the <SPAN
+CLASS="QUOTE"
+>"+image-blocker"</SPAN
+> 
+ action to <SPAN
+CLASS="QUOTE"
+>"+image-blocker{blank}"</SPAN
+>. This can be done from the 
+ <SPAN
+CLASS="QUOTE"
+>"Edit Actions List"</SPAN
+> selection at <A
+HREF="http://p.p/"
+TARGET="_top"
+>http://p.p/</A
+>. Or by hand editing the appropriate 
+ actions file. This will only effect what is defined as <SPAN
+CLASS="QUOTE"
+>"images"</SPAN
+>
+ though. Also, some URLs that generate the bright red <SPAN
+CLASS="QUOTE"
+>"Blocked"</SPAN
+>
+ banner, can be moved to the <SPAN
+CLASS="QUOTE"
+>"+image-blocker"</SPAN
+> section for the
+ same reason, but there are some limits and risks to this (see below).</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN418"
+>3.10. Why would anybody want to see a checkerboard pattern?</A
+></H3
+><P
+> This can be helpful for troubleshooting problems. It might also be good 
+ for anyone new to <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> so that they can 
+ see if their favorite pages are displaying correctly, and
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is not inadvertently removing something 
+ important.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN423"
+>3.11. I see large red banners on some pages that say 
+<SPAN
+CLASS="QUOTE"
+>"Blocked"</SPAN
+>. Why and how do I get rid of this?</A
+></H3
+><P
+> These are URLs that match something in one of 
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy's</SPAN
+> block actions (+block). It is meant
+ to be a warning so that you know something has been blocked and an easy way
+ for you to see why. These are handled differently than what has been defined
+ explicitly as <SPAN
+CLASS="QUOTE"
+>"images"</SPAN
+> (e.g. ad banners). Depending on the 
+ URL itself, it is sometimes hard for <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> to 
+ really know whether there is indeed an ad image there or not. And there are
+ limitations as to what <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> can do to 
+ <SPAN
+CLASS="QUOTE"
+>"fool"</SPAN
+> the browser.</P
+><P
+> For instance, if the ad is in a frame, then it is embedded in the separate
+ HTML page used for the frame. In this case, you cannot just substitute an
+ aribitray image (like we would for a <SPAN
+CLASS="QUOTE"
+>"blank"</SPAN
+> image), for an HTML
+ page. The browser is expecting an HTML page, and that is what it must have
+ for frames. So this situation can be a little trickier to deal with, and 
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> will use the <SPAN
+CLASS="QUOTE"
+>"Blocked"</SPAN
+> page.</P
+><P
+> If you want these to be treated as if they were images, so that they can be
+ made invisible, you can try moving the offending URL from the
+ <SPAN
+CLASS="QUOTE"
+>"+block"</SPAN
+> section to the <SPAN
+CLASS="QUOTE"
+>"+imageblock"</SPAN
+> section of
+ your actions file. Just be forewarned, if any URL is made
+ <SPAN
+CLASS="QUOTE"
+>"invisible"</SPAN
+>, you may not have any inkling that something has
+ been removed from that page, or why. If this approach does not work, then you are
+ probably dealing with a frame (or <SPAN
+CLASS="QUOTE"
+>"ilayer"</SPAN
+>), and the only thing
+ that can go there is an HTML page of some sort.</P
+><P
+> To deal with this situation, you could modify the
+ <SPAN
+CLASS="QUOTE"
+>"<TT
+CLASS="FILENAME"
+>block</TT
+>"</SPAN
+> HTML template that is used by
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> to display this, and make it something
+ more to your liking. Currently, there is no configuration option for this.
+ You will have to modify, or create your own page, and use this to replace
+ <TT
+CLASS="FILENAME"
+>templates/blocked</TT
+>, which is what
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> uses to display the <SPAN
+CLASS="QUOTE"
+>"Blocked"</SPAN
+>
+ page.</P
+><P
+> Another way to deal with this is find why and where
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is blocking the frame, and 
+ diable this. Then let the <SPAN
+CLASS="QUOTE"
+>"+image-blocker"</SPAN
+> action 
+ handle the ad that is embedded in the frame's HTML page. </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="ALLISEEISRED"
+>3.12. I cannot see all of the <SPAN
+CLASS="QUOTE"
+>"Blocked"</SPAN
+> page banner. All I
+see is a bright red square.</A
+></H3
+><P
+> There is not enough space to fit the entire page. Try right clicking on the
+ visible, red portion, and select <SPAN
+CLASS="QUOTE"
+>"Show Frame"</SPAN
+>, or equivalent.
+ This will usually allow you to see the entire Privoxy <SPAN
+CLASS="QUOTE"
+>"Blocked"</SPAN
+>
+ page, and from there you can see just what is being blocked, and why.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="SRVANY"
+>3.13. Can <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> run as a service 
+on Win2K/NT?</A
+></H2
+><P
+> Yes, it can run as a system service using <B
+CLASS="COMMAND"
+>srvany.exe</B
+>.
+ The only catch is that this will effectively disable the
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> icon in the taskbar. You can have 
+ one or the other, but not both at this time :( </P
+><P
+> There is a pending feature request for this functionality. See 
+ thread: <A
+HREF="http://sourceforge.net/tracker/?func=detail&atid=361118&aid=485617&group_id=11118"
+TARGET="_top"
+>http://sourceforge.net/tracker/?func=detail&#38;atid=361118&#38;aid=485617&#38;group_id=11118</A
+>, 
+ for details, and a sample configuration.&#13;</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="OTHERPROXY"
+>3.14. How can I make <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> work with other 
+proxies like <SPAN
+CLASS="APPLICATION"
+>Squid</SPAN
+>?</A
+></H3
+><P
+> This can be done. See the <A
+HREF="../user-manual/configuration.html#FORWARDING"
+TARGET="_top"
+>user manual</A
+>, 
+ which describes how to do this.&#13;</P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="installation.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="misc.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Installation</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Miscellaneous</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/faq/contact.html b/doc/webserver/faq/contact.html
new file mode 100644 (file)
index 0000000..869d46c
--- /dev/null
@@ -0,0 +1,223 @@
+<HTML
+><HEAD
+><TITLE
+>Contacting the developers, Bug Reporting and Feature Requests</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+REL="HOME"
+TITLE="Privoxy Frequently Asked Questions"
+HREF="index.html"><LINK
+REL="PREVIOUS"
+TITLE="Troubleshooting"
+HREF="trouble.html"><LINK
+REL="NEXT"
+TITLE="Copyright and History"
+HREF="copyright.html"><LINK
+REL="STYLESHEET"
+TYPE="text/css"
+HREF="../p_doc.css"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+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"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="copyright.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="CONTACT"
+>7. Contacting the developers, Bug Reporting and Feature Requests</A
+></H1
+><P
+> We value your feedback. However, to provide you with the best support, please
+ note:
+
+ <P
+></P
+><UL
+><LI
+><P
+CLASS="LITERALLAYOUT"
+>&nbsp;Use&nbsp;the&nbsp;Sourceforge&nbsp;Support&nbsp;Forum&nbsp;to&nbsp;get&nbsp;help:<br>
+&nbsp;&nbsp;&nbsp;<br>
+&nbsp;<A
+HREF="http://sourceforge.net/tracker/?group_id=11118&atid=211118"
+TARGET="_top"
+>http://sourceforge.net/tracker/?group_id=11118&#38;atid=211118</A
+><br>
+&nbsp;&nbsp;&nbsp;</P
+></LI
+><LI
+><P
+CLASS="LITERALLAYOUT"
+>&nbsp;Submit&nbsp;bugs&nbsp;only&nbsp;through&nbsp;our&nbsp;Sourceforge&nbsp;Bug&nbsp;Forum:<br>
+&nbsp;<br>
+&nbsp;<A
+HREF="http://sourceforge.net/tracker/?group_id=11118&atid=111118"
+TARGET="_top"
+>http://sourceforge.net/tracker/?group_id=11118&#38;atid=111118</A
+>.&nbsp;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;</P
+><P
+>   Make sure that the bug has not already been submitted.  Please try to
+   verify that it is a <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> bug, and not a
+   browser or site bug first. If you are using your own custom configuration,
+   please try the stock configs to see if the problem is a configuration
+   related bug.  And if not using the latest development snapshot, please try
+   the latest one. Or even better, CVS sources. Please be sure to include the
+   <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>/<SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+>
+   version, platform, browser, any pertinent log data, any other relevant
+   details (please be specific) and, if possible, some way to reproduce the
+   bug.
+  </P
+></LI
+><LI
+><P
+CLASS="LITERALLAYOUT"
+>&nbsp;Submit&nbsp;feature&nbsp;requests&nbsp;only&nbsp;through&nbsp;our&nbsp;Sourceforge&nbsp;feature&nbsp;request&nbsp;<br>
+&nbsp;forum:<br>
+&nbsp;<br>
+&nbsp;<A
+HREF="http://sourceforge.net/tracker/?atid=361118&group_id=11118&func=browse"
+TARGET="_top"
+>http://sourceforge.net/tracker/?atid=361118&#38;group_id=11118&#38;func=browse</A
+>.<br>
+&nbsp;&nbsp;&nbsp;</P
+></LI
+><LI
+><P
+CLASS="LITERALLAYOUT"
+>We&nbsp;will&nbsp;soon&nbsp;have&nbsp;an&nbsp;automated&nbsp;way&nbsp;to&nbsp;submit&nbsp;advertisements,&nbsp;incorrectly<br>
+blocked&nbsp;images,&nbsp;popups&nbsp;and&nbsp;the&nbsp;like.&nbsp;Check&nbsp;back.<br>
+&nbsp;&nbsp;&nbsp;</P
+></LI
+><LI
+><P
+CLASS="LITERALLAYOUT"
+>&nbsp;For&nbsp;any&nbsp;other&nbsp;issues,&nbsp;feel&nbsp;free&nbsp;to&nbsp;use&nbsp;the&nbsp;mailing&nbsp;lists:<br>
+&nbsp;<br>
+&nbsp;<A
+HREF="http://sourceforge.net/mail/?group_id=11118"
+TARGET="_top"
+>http://sourceforge.net/mail/?group_id=11118</A
+>.<br>
+&nbsp;</P
+><P
+>  Anyone interested in actively participating in development and related
+  discussions can also join the appropriate mailing list. Archives are
+  available too. 
+ </P
+></LI
+></UL
+></P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="trouble.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="copyright.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Troubleshooting</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Copyright and History</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/faq/copyright.html b/doc/webserver/faq/copyright.html
new file mode 100644 (file)
index 0000000..e1cce0f
--- /dev/null
@@ -0,0 +1,202 @@
+<HTML
+><HEAD
+><TITLE
+>Copyright and History</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><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"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><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"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+>&nbsp;</TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="COPYRIGHT"
+>8. Copyright and History</A
+></H1
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN700"
+>8.1. Copyright</A
+></H2
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is free software; you can
+ redistribute it and/or modify it under the terms of the GNU General Public
+ License as published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.</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 GNU General Public License for
+ more details, which is available from the Free Software Foundation, Inc, 59
+ Temple Place - Suite 330, Boston, MA  02111-1307, USA.</P
+><P
+> You should have received a copy of the <A
+HREF="http://www.gnu.org/copyleft/gpl.html"
+TARGET="_top"
+>GNU General Public License</A
+>
+ along with this program; if not, write to the Free Software Foundation, Inc.,
+ 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN707"
+>8.2. History</A
+></H2
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is evolved, and derived from, 
+ <SPAN
+CLASS="APPLICATION"
+>the Internet Junkbuster</SPAN
+>, with many 
+ improvments and enhancements over the original.</P
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+> was originally written by Anonymous
+ Coders and <A
+HREF="http://www.junkbusters.com"
+TARGET="_top"
+>Junkbuster's
+ Corporation</A
+>, and was released as free open-source software under the
+ GNU GPL. <A
+HREF="http://www.waldherr.org/junkbuster/"
+TARGET="_top"
+>Stefan
+ Waldherr</A
+> made many improvements, and started the <A
+HREF="http://sourceforge.net/projects/ijbswa/"
+TARGET="_top"
+>SourceForge project
+ Privoxy</A
+> to rekindle development. There are now several active
+ developers contributing.  The last stable release of
+ <SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+> was v2.0.2, which has now
+ grown whiskers ;-).</P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="contact.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>&nbsp;</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"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>&nbsp;</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/faq/general.html b/doc/webserver/faq/general.html
new file mode 100644 (file)
index 0000000..de198e6
--- /dev/null
@@ -0,0 +1,658 @@
+<HTML
+><HEAD
+><TITLE
+>General Information</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><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"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><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"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="installation.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="GENERAL"
+>1. General Information</A
+></H1
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="NEWJB"
+>1.1. What is this new version of <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>?</A
+></H3
+><P
+>  The original <SPAN
+CLASS="APPLICATION"
+><SPAN
+CLASS="TRADEMARK"
+>Internet
+  Junkbuster</SPAN
+>&trade;</SPAN
+> (tm) is a copyrighted product of <A
+HREF="http://www.junkbusters.com"
+TARGET="_top"
+>Junkbusters Corporation</A
+>.
+  Development of this effort stopped some time ago as of version 2.0.2. Stefan
+  Waldherr started the ijbswa project on <A
+HREF="http://sourceforge.net/projects/ijbswa/"
+TARGET="_top"
+>Sourceforge</A
+> to
+  rekindle development. Other developers subsequently joined with Stefan, and
+  have since added many new features, refinements and enhancements. The result
+  of this effort is <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>.
+ </P
+><P
+>  <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> has evolved from the 
+  <SPAN
+CLASS="APPLICATION"
+>Junkbuster 2.0.2</SPAN
+> code base, and has advanced
+  significantly at this point. 
+ </P
+><P
+> 
+  Please see the History section for more
+  information on the history of <SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+> and 
+  <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>.
+ </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN47"
+>1.2. Why <SPAN
+CLASS="QUOTE"
+>"Privoxy"</SPAN
+>? Why a name change at all?</A
+></H3
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is the 
+ <SPAN
+CLASS="QUOTE"
+>"<I
+CLASS="EMPHASIS"
+>Privacy Enhancing Proxy</I
+>"</SPAN
+>.</P
+><P
+> There are potential legal complications from the continued use of the 
+ <SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+> name, which is a 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 changes from the original 
+ code, that it was time to make a clean break from the past and make 
+ a name in their own right, especially now with the pending
+ release of version 3.0.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="DIFFERS"
+>1.3. How does <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> differ
+from the old <SPAN
+CLASS="APPLICATION"
+>Junkbuster?</SPAN
+></A
+></H3
+><P
+>  <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> picks up where
+  <SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+> left off. All the old features remain.
+  The new <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> still blocks ads and banners,
+  still manages cookies, and still helps protect your privacy. But, these are
+  all enhanced, and many new features have been added, all in the same vein.
+ </P
+><P
+>  The configuration has changed significantly as well. This is something that
+  users will notice right off the bat if you are upgrading from 
+  <SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+> 2.0.x. The <SPAN
+CLASS="QUOTE"
+>"blocklist"</SPAN
+>
+  file does not exist any more. This is replaced by <SPAN
+CLASS="QUOTE"
+>"actions"</SPAN
+>
+  files, such as <TT
+CLASS="FILENAME"
+>default.actions</TT
+>. This is where most of
+  the per site configuration is now.
+ </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="FEATURES"
+>1.4. What are some of the new features?</A
+></H3
+><P
+> <P
+></P
+><UL
+><LI
+><P
+>   Integrated browser based configuration and control utility (<A
+HREF="http://p.p"
+TARGET="_top"
+>http://p.p</A
+>). Browser-based tracing of rule
+   and filter effects.
+  </P
+></LI
+><LI
+><P
+>    Blocking of annoying pop-up browser windows.
+  </P
+></LI
+><LI
+><P
+>   HTTP/1.1 compliant (most, but not all 1.1 features are supported).
+  </P
+></LI
+><LI
+><P
+>   Support for Perl Compatible Regular Expressions in the configuration files, and 
+   generally a more sophisticated and flexible configuration syntax over
+   previous versions. 
+  </P
+></LI
+><LI
+><P
+>   GIF de-animation. 
+  </P
+></LI
+><LI
+><P
+>   Web page content filtering (removes banners based on size,
+   invisible <SPAN
+CLASS="QUOTE"
+>"web-bugs"</SPAN
+>, JavaScript, pop-ups, status bar abuse,
+   etc.)
+  </P
+></LI
+><LI
+><P
+>   Bypass many click-tracking scripts (avoids script redirection).
+  </P
+></LI
+><LI
+><P
+>   Multi-threaded (POSIX and native threads).
+  </P
+></LI
+><LI
+><P
+>   Auto-detection and re-reading of config file changes.
+  </P
+></LI
+><LI
+><P
+>   User-customizable HTML templates (e.g. 404 error page).
+  </P
+></LI
+><LI
+><P
+>   Improved cookie management features (e.g. session based cookies).
+  </P
+></LI
+><LI
+><P
+>   Improved signal handling, and a true daemon mode (Unix).
+  </P
+></LI
+><LI
+><P
+>   Builds from source on most UNIX-like systems. Packages available for: Linux
+   (RedHat, SuSE, or Debian), Windows, Sun Solaris, Mac OSX, OS/2, HP-UX 11 and AmigaOS.
+  </P
+></LI
+><LI
+><P
+>   In addition, the configuration is much more powerful and versatile over-all.
+  </P
+></LI
+></UL
+></P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="PROXYMORON"
+>1.5. What is a <SPAN
+CLASS="QUOTE"
+>"proxy"</SPAN
+>? How does
+<SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> work?</A
+></H3
+><P
+>  When you connect to a web site with <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>, 
+  you are really connecting to your locally running version of 
+  <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>. <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+  intercepts your requests for the web page, and relays that to the 
+  <SPAN
+CLASS="QUOTE"
+>"real"</SPAN
+> web site. The web site sends the HTTP data stream 
+  back to <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>, where
+  <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> can work its magic before it 
+  relays this data back to your web browser.
+ </P
+><P
+>  Since <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> sits between you and the 
+  WWW, it is in a position to intercept and completely manage all web traffic and 
+  HTTP content before it gets to your browser.
+  <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> uses various programming methods to do
+  this, all of which is under your control via the various configuration
+  files and options.
+ </P
+><P
+>  There are many kinds of proxies. <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> best 
+  fits the <SPAN
+CLASS="QUOTE"
+>"filtering proxy"</SPAN
+> category.
+ </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN123"
+>1.6. How does <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> know what is
+an ad, and what is not?</A
+></H3
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> processes all the raw content of every 
+ web page. So it reads everything on each page. It then compares this to the
+ rules as set up in the configuration files, and looks for any matches to
+ these rules. <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> makes heavy use of
+ <SPAN
+CLASS="QUOTE"
+>"regular expressions"</SPAN
+>. (If you are not familiar with regular
+ expressions, it is explained briefly in <A
+HREF="../user-manual/appendix.html"
+TARGET="_top"
+>the user manual</A
+>.) Regular
+ expressions facilitate matching of one text string against another, using
+ wildcards to build complex patterns. So <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ will typically look for URLs and other content that match certain key words
+ and expressions as defined in the configuration files. For instance a URL
+ that contains <SPAN
+CLASS="QUOTE"
+>"/banners"</SPAN
+>, has a high probability of containing
+ ad banners, and thus would be a prime candidate to have a matching rule.</P
+><P
+> So <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> will look for these kinds of obvious 
+ looking culprits. And also, will use lists of known organizations that
+ specialize in ads. Again, using complex patterns to match as many potential 
+ combinations as possible since there tend to be many, many variations used by 
+ advertisers, and new ones are being introduced all the time.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN135"
+>1.7. Can <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> 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 something by mistake. There is a good chance you may run 
+ into such a situation at some point. It is tricky writing rules to cover
+ every conceivable possibility, and not occasionally get false positives.</P
+><P
+> But this should not be a big concern since the
+ <SPAN
+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#AEN645"
+>See the Troubleshooting section below</A
+>.)</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="BROWSERS2"
+>1.8. My browser does the same things as
+<SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>. Why should I use
+<SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> at all?</A
+></H3
+><P
+>  Modern browsers do indeed have <I
+CLASS="EMPHASIS"
+>some</I
+> of the same
+  functionality as <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>. Maybe this is
+  adequate for you. But <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is much more
+  versatile and powerful, and can do a number of things that browsers just can't.
+ </P
+><P
+>  In addition, a proxy is good choice if you use multiple browsers, or 
+  have a LAN with multiple computers. This way all the configuration 
+  is in one place, and you don't have to maintain a similar configuration 
+  for possibly many browsers.
+
+ </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="LICENSE"
+>1.9. Is there is a license or fee? What about a 
+warranty? Registration?</A
+></H3
+><P
+>  <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is licensed under the GNU General Public
+  License (GPL). It is free to use, copy, modify or distribute as you wish
+  under the terms of this license.  Please see the Copyright section for more
+  information on the license and copyright.
+
+  </P
+><P
+>  There is no warranty of any kind, expressed, implied or otherwise. That is
+  something that would cost real money ;-) There is no registration either.
+  <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> really is <I
+CLASS="EMPHASIS"
+>free</I
+>
+  in every respect!
+
+ </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="JOINTEAM"
+>1.10. I would like to help you, what do I do?</A
+></H3
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="JOINTEAM-MONEY"
+>1.10.1. Money Money Money</A
+></H4
+><P
+> We, of course, welcome donations and use the money for domain registering,
+ regular world-wide get-togethers (hahaha). Anyway, we'll soon describe the
+ process how to donate money to the team.</P
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="JOINTEAM-WORK"
+>1.10.2. You want to work with us?</A
+></H4
+><P
+>   Well, helping the team is always a good idea. We welcome new developers,
+   RPM gurus or documentation makers. Simply get an account on sourceforge.net
+   and mail your id to the developer mailing list. Then read the
+   section Quickstart in the <A
+HREF="../developer-manual/quickstart.html"
+TARGET="_top"
+>   Developer's Manual</A
+>.</P
+><P
+> Once we have added you to the team, you'll have write access to the CVS
+ repository, and together we'll find a suitable task for you.</P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="index.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="installation.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Privoxy Frequently Asked Questions</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Installation</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/faq/index.html b/doc/webserver/faq/index.html
new file mode 100644 (file)
index 0000000..2f327d6
--- /dev/null
@@ -0,0 +1,688 @@
+<HTML
+><HEAD
+><TITLE
+>Privoxy Frequently Asked Questions</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+REL="NEXT"
+TITLE="General Information"
+HREF="general.html"><LINK
+REL="STYLESHEET"
+TYPE="text/css"
+HREF="../p_doc.css"></HEAD
+><BODY
+CLASS="ARTICLE"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="ARTICLE"
+><DIV
+CLASS="TITLEPAGE"
+><H1
+CLASS="TITLE"
+><A
+NAME="AEN2"
+>Privoxy Frequently Asked Questions</A
+></H1
+><DIV
+CLASS="AUTHORGROUP"
+><A
+NAME="AEN5"
+></A
+><H3
+CLASS="AUTHOR"
+><A
+NAME="AEN6"
+></A
+></H3
+><DIV
+CLASS="AFFILIATION"
+><SPAN
+CLASS="ORGNAME"
+>By: Privoxy Developers<BR></SPAN
+></DIV
+></DIV
+><P
+CLASS="PUBDATE"
+>$Id: faq.sgml,v 1.43 2002/04/04 21:59:53 hal9 Exp $<BR></P
+><DIV
+><DIV
+CLASS="ABSTRACT"
+><A
+NAME="AEN9"
+></A
+><P
+></P
+><P
+> </P
+><P
+> This FAQ gives users and developers alike answers to frequently asked
+ questions about <A
+HREF="http://www.privoxy.org"
+TARGET="_top"
+>Privoxy</A
+> 
+ .
+ </P
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is a web proxy with advanced filtering
+ capabilities for protecting privacy, filtering web page content, managing
+ cookies, controlling access, and removing ads, banners, pop-ups and other
+ obnoxious Internet junk. <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> has a very
+ flexible configuration and can be customized to suit individual needs and
+ tastes. <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> has application for both
+ stand-alone systems and multi-user networks.</P
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is based on the code of the 
+ <SPAN
+CLASS="APPLICATION"
+>Internet Junkbuster</SPAN
+> (tm).
+ <SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+> was originally written by JunkBusters
+ Corporation, and was released as free open-source software under the GNU GPL.
+ Stefan Waldherr made many improvements, and started the SourceForge project
+ to continue development.</P
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> continues the
+ <SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+> tradition, but adds many 
+ refinements, enhancements and new features.</P
+><P
+>  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 Contact section if you want to contact the developers.
+ </P
+><P
+></P
+></DIV
+></DIV
+><HR></DIV
+><DIV
+CLASS="TOC"
+><DL
+><DT
+><B
+>Table of Contents</B
+></DT
+><DT
+><A
+HREF="index.html#INTRO"
+></A
+></DT
+><DT
+>1. <A
+HREF="general.html"
+>General Information</A
+></DT
+><DD
+><DL
+><DT
+>1.1. <A
+HREF="general.html#NEWJB"
+>What is this new version of <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>?</A
+></DT
+><DT
+>1.2. <A
+HREF="general.html#AEN47"
+>Why <SPAN
+CLASS="QUOTE"
+>"Privoxy"</SPAN
+>? Why a name change at all?</A
+></DT
+><DT
+>1.3. <A
+HREF="general.html#DIFFERS"
+>How does <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> differ
+from the old <SPAN
+CLASS="APPLICATION"
+>Junkbuster?</SPAN
+></A
+></DT
+><DT
+>1.4. <A
+HREF="general.html#FEATURES"
+>What are some of the new features?</A
+></DT
+><DT
+>1.5. <A
+HREF="general.html#PROXYMORON"
+>What is a <SPAN
+CLASS="QUOTE"
+>"proxy"</SPAN
+>? How does
+<SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> work?</A
+></DT
+><DT
+>1.6. <A
+HREF="general.html#AEN123"
+>How does <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> know what is
+an ad, and what is not?</A
+></DT
+><DT
+>1.7. <A
+HREF="general.html#AEN135"
+>Can <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> make mistakes? 
+This does not sound very scientific.</A
+></DT
+><DT
+>1.8. <A
+HREF="general.html#BROWSERS2"
+>My browser does the same things as
+<SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>. Why should I use
+<SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> at all?</A
+></DT
+><DT
+>1.9. <A
+HREF="general.html#LICENSE"
+>Is there is a license or fee? What about a 
+warranty? Registration?</A
+></DT
+><DT
+>1.10. <A
+HREF="general.html#JOINTEAM"
+>I would like to help you, what do I do?</A
+></DT
+><DD
+><DL
+><DT
+>1.10.1. <A
+HREF="general.html#JOINTEAM-MONEY"
+>Money Money Money</A
+></DT
+><DT
+>1.10.2. <A
+HREF="general.html#JOINTEAM-WORK"
+>You want to work with us?</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 <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>?</A
+></DT
+><DT
+>2.2. <A
+HREF="installation.html#WHICHOS"
+>Which operating systems are supported?</A
+></DT
+><DT
+>2.3. <A
+HREF="installation.html#NEWINSTALL"
+>Can I install  
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> over <SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+>?</A
+></DT
+><DT
+>2.4. <A
+HREF="installation.html#AEN196"
+>I just installed <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>. 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 <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>?</A
+></DT
+><DT
+>2.6. <A
+HREF="installation.html#AEN221"
+>I just installed <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>, and nothing is happening.
+All the ads are there. What's wrong?</A
+></DT
+></DL
+></DD
+><DT
+>3. <A
+HREF="configuration.html"
+>Configuration</A
+></DT
+><DD
+><DL
+><DT
+>3.1. <A
+HREF="configuration.html#NEWCONFIG"
+>Can I use my old config files?</A
+></DT
+><DT
+>3.2. <A
+HREF="configuration.html#AEN239"
+>What is an <SPAN
+CLASS="QUOTE"
+>"actions"</SPAN
+> file?</A
+></DT
+><DT
+>3.3. <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.4. <A
+HREF="configuration.html#AEN257"
+>How are actions files configured? What is the easiest
+way to do this?</A
+></DT
+><DT
+>3.5. <A
+HREF="configuration.html#CONFIGFILES"
+>What are the differences between
+intermediate.action, basic.action, etc.?</A
+></DT
+><DT
+>3.6. <A
+HREF="configuration.html#BROWSECONFIG"
+>Why can I change the configuration with a
+browser? Does that not raise security issues?</A
+></DT
+><DT
+>3.7. <A
+HREF="configuration.html#AEN379"
+>What is <SPAN
+CLASS="QUOTE"
+>"default.filter"</SPAN
+>?</A
+></DT
+><DT
+>3.8. <A
+HREF="configuration.html#AEN391"
+>How can I set up <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> to act as a proxy for my 
+ LAN?</A
+></DT
+><DT
+>3.9. <A
+HREF="configuration.html#AEN403"
+>Instead of ads, now I get a checkerboard pattern. I don't want to see anything.</A
+></DT
+><DT
+>3.10. <A
+HREF="configuration.html#AEN418"
+>Why would anybody want to see a checkerboard pattern?</A
+></DT
+><DT
+>3.11. <A
+HREF="configuration.html#AEN423"
+>I see large red banners on some pages that say 
+<SPAN
+CLASS="QUOTE"
+>"Blocked"</SPAN
+>. Why and how do I get rid of this?</A
+></DT
+><DT
+>3.12. <A
+HREF="configuration.html#ALLISEEISRED"
+>I cannot see all of the <SPAN
+CLASS="QUOTE"
+>"Blocked"</SPAN
+> page banner. All I
+see is a bright red square.</A
+></DT
+><DT
+>3.13. <A
+HREF="configuration.html#SRVANY"
+>Can <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> run as a service 
+on Win2K/NT?</A
+></DT
+><DT
+>3.14. <A
+HREF="configuration.html#OTHERPROXY"
+>How can I make <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> work with other 
+proxies like <SPAN
+CLASS="APPLICATION"
+>Squid</SPAN
+>?</A
+></DT
+></DL
+></DD
+><DT
+>4. <A
+HREF="misc.html"
+>Miscellaneous</A
+></DT
+><DD
+><DL
+><DT
+>4.1. <A
+HREF="misc.html#AEN473"
+>How much does <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> slow my browsing down? This 
+has to add extra time to browsing.</A
+></DT
+><DT
+>4.2. <A
+HREF="misc.html#LOADINGTIMES"
+>I noticed considerable
+delays in page requests compared to the old Junkbuster. What's wrong?</A
+></DT
+><DT
+>4.3. <A
+HREF="misc.html#CONFIGURL"
+>What is the "http://p.p/"?</A
+></DT
+><DT
+>4.4. <A
+HREF="misc.html#BLOCKLIST"
+>Do you still maintain the blocklists?</A
+></DT
+><DT
+>4.5. <A
+HREF="misc.html#NEWADS"
+>How can I submit new ads?</A
+></DT
+><DT
+>4.6. <A
+HREF="misc.html#IP"
+>How can I hide my IP address?</A
+></DT
+><DT
+>4.7. <A
+HREF="misc.html#AEN520"
+>Can <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> guarantee I am anonymous?</A
+></DT
+><DT
+>4.8. <A
+HREF="misc.html#AEN531"
+>Might some things break because header information is
+being altered?</A
+></DT
+><DT
+>4.9. <A
+HREF="misc.html#AEN541"
+>Can <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> act as a <SPAN
+CLASS="QUOTE"
+>"caching"</SPAN
+> proxy to 
+speed up web browsing?</A
+></DT
+><DT
+>4.10. <A
+HREF="misc.html#AEN549"
+>What about as a firewall? Can <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> protect me?</A
+></DT
+><DT
+>4.11. <A
+HREF="misc.html#AEN554"
+>The <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> logo that replaces ads is very blocky 
+and ugly looking. Can't a better font be used?</A
+></DT
+><DT
+>4.12. <A
+HREF="misc.html#AEN563"
+>I have large empty spaces now where ads used to be. 
+Why?</A
+></DT
+><DT
+>4.13. <A
+HREF="misc.html#AEN566"
+>How can <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> filter Secure (HTTPS) URLs?</A
+></DT
+><DT
+>4.14. <A
+HREF="misc.html#AEN573"
+><SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> runs as a <SPAN
+CLASS="QUOTE"
+>"server"</SPAN
+>. How 
+secure is it? Do I need to take any special precautions?</A
+></DT
+><DT
+>4.15. <A
+HREF="misc.html#TURNOFF"
+>How can I temporarily disable <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>?</A
+></DT
+><DT
+>4.16. <A
+HREF="misc.html#SEEALSO"
+>Where can I find more information about <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+and related issues?</A
+></DT
+></DL
+></DD
+><DT
+>5. <A
+HREF="trouble.html"
+>Troubleshooting</A
+></DT
+><DD
+><DL
+><DT
+>5.1. <A
+HREF="trouble.html#AEN626"
+>I just upgraded and am getting <SPAN
+CLASS="QUOTE"
+>"connection refused"</SPAN
+>
+with every web page?</A
+></DT
+><DT
+>5.2. <A
+HREF="trouble.html#AEN639"
+>I just added a new rule, but the steenkin ad is 
+still getting through. How?</A
+></DT
+><DT
+>5.3. <A
+HREF="trouble.html#AEN645"
+>One of my favorite sites does not work with <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>.
+What can I do?</A
+></DT
+><DT
+>5.4. <A
+HREF="trouble.html#BUGS"
+>Where can I get help? Report bugs? Feature Requests? Etc?</A
+></DT
+><DT
+>5.5. <A
+HREF="trouble.html#AEN672"
+>What time is it?</A
+></DT
+></DL
+></DD
+><DT
+>7. <A
+HREF="contact.html"
+>Contacting the developers, Bug Reporting and Feature Requests</A
+></DT
+><DT
+>8. <A
+HREF="copyright.html"
+>Copyright and History</A
+></DT
+><DD
+><DL
+><DT
+>8.1. <A
+HREF="copyright.html#AEN700"
+>Copyright</A
+></DT
+><DT
+>8.2. <A
+HREF="copyright.html#AEN707"
+>History</A
+></DT
+></DL
+></DD
+></DL
+></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="INTRO"
+></A
+></H1
+><P
+> </P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="general.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>General Information</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/faq/installation.html b/doc/webserver/faq/installation.html
new file mode 100644 (file)
index 0000000..8b94671
--- /dev/null
@@ -0,0 +1,379 @@
+<HTML
+><HEAD
+><TITLE
+>Installation</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><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"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><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"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="configuration.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></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 <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>?</A
+></H3
+><P
+> Any browser that can be configured to use a <SPAN
+CLASS="QUOTE"
+>"proxy"</SPAN
+>, which 
+ should be virtually all browsers. Direct browser support is not necessary
+ since <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> runs as a separate application and
+ just exchanges standard HTML data with your browser, just like a web server
+ 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 Win32, Mac
+ OSX, OS/2, AmigaOS, Linux (RedHat, Suse, Debian), FreeBSD, and many flavors
+ of Unix. There are source and binary releases for these available for
+ download at <A
+HREF="http://sourceforge.net/project/showfiles.php?group_id=11118"
+TARGET="_top"
+>http://sourceforge.net/project/showfiles.php?group_id=11118</A
+>.</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="NEWINSTALL"
+>2.3. Can I install  
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> over <SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+>?</A
+></H3
+><P
+>   We recommend you uninstall <SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+>
+   first to minimize conflicts and confusion. You may want to 
+   save your old configuration files for future reference. The configuration
+   is substantially changed.
+ </P
+><P
+>  See the <A
+HREF="../user-manual/index.html"
+TARGET="_top"
+>user-manual</A
+> for
+  platform specific installation instructions.
+ </P
+><P
+>  Note: Some installers may automatically uninstall
+  <SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+>, if present!
+ </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN196"
+>2.4. I just installed <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>. Is there anything 
+special I have to do now?</A
+></H3
+><P
+> All browsers must 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. See below.
+ Also, you should flush your browser's memory and disk cache to get rid of any
+ cached items.&#13;</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="LOCALHOST"
+>2.5. What is the proxy address of <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>?</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 <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 have <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> to run on a different port with the
+  <I
+CLASS="EMPHASIS"
+>listen-address</I
+> config option). 
+ </P
+><P
+>  When configuring your browser's proxy settings you typically enter
+  the word <SPAN
+CLASS="QUOTE"
+>"localhost"</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. Port assignment would be 
+  same as above.
+ </P
+><P
+>  <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> does not currently handle
+  protocols such as FTP, SMTP, IM, IRC, ICQ, or other Internet
+  protocols. 
+ </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN221"
+>2.6. I just installed <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>, 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 give you 
+ a banner that says <SPAN
+CLASS="QUOTE"
+>"This is Privoxy"</SPAN
+> and 
+ access to <SPAN
+CLASS="APPLICATION"
+>Privoxy's</SPAN
+> internal configuration. 
+ If you see this, then you are good to go. If not, the browser or 
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> are not set up correctly.&#13;</P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="general.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="configuration.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>General Information</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Configuration</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/faq/misc.html b/doc/webserver/faq/misc.html
new file mode 100644 (file)
index 0000000..9bed737
--- /dev/null
@@ -0,0 +1,803 @@
+<HTML
+><HEAD
+><TITLE
+>Miscellaneous</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><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"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><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"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="trouble.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="MISC"
+>4. Miscellaneous</A
+></H1
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN473"
+>4.1. How much does <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> slow my browsing down? This 
+has to add extra time to browsing.</A
+></H3
+><P
+> It should not slow you down any in real terms, and may actually help 
+ speed things up since ads, banners and other junk are not being displayed.
+ 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.</P
+><P
+> <SPAN
+CLASS="QUOTE"
+>"Filtering"</SPAN
+> via the <TT
+CLASS="FILENAME"
+>filterfile</TT
+> 
+ mechanism may cause a perceived slowdown, since the entire page is buffered
+ before displaying. See below.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="LOADINGTIMES"
+>4.2. I noticed considerable
+delays in page requests compared to the old Junkbuster. What's wrong?</A
+></H3
+><P
+>Using the default filtering configuration, I noticed considerable delays in
+page requests compared to the old Junkbuster. Loading pages with large contents
+seemed to take forever, then suddenly delivering all the content at once.
+ </P
+><P
+>The whole content must be loaded in order to filter, and nothing is is
+sent to the browser during this time. The loading time does not really
+change in real numbers, but the feeling is different, because most
+browsers are able to start rendering incomplete content, giving the
+user a feeling of "it works". 
+ </P
+><P
+>To modify the content of a page (i.e. make frames resizeable again, etc.) and
+not just replace ads, <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> needs to download the
+entire page first, do its content magic and then send the page to the browser.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="CONFIGURL"
+>4.3. What is the "http://p.p/"?</A
+></H3
+><P
+>Since <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> sits between your web browser and the Internet, it can be
+programmed to handle certain pages specially.</P
+><P
+>With recent versions of <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> (version 2.9.x), you can get some
+information about <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> and change some settings by going to
+<A
+HREF="http://p.p/"
+TARGET="_top"
+>http://p.p/</A
+> or, equivalently, <A
+HREF="http://config.privoxy.org/"
+TARGET="_top"
+>http://config.privoxy.org/</A
+>
+(Note that p.p is far easier to type but may not work in some
+configurations. With the name change to <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>,
+this is changed from the previous http://i.j.b/ or earlier 2.9.x versions).</P
+><P
+>These pages are <I
+CLASS="EMPHASIS"
+>not</I
+> forwarded to a server on the Internet
+- instead they are handled by a special web server which is built in to
+<SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>.</P
+><P
+>If you are not running <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>, then <A
+HREF="http://p.p/"
+TARGET="_top"
+>http://p.p/</A
+> will fail, and <A
+HREF="http://config.privoxy.org/"
+TARGET="_top"
+>http://config.privoxy.org/</A
+> will
+return a web page telling you you're not running
+<SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>.</P
+><P
+>If you have version 2.0.2, then the equivalent is
+http://example.com/show-proxy-args (but you get far less information, and you
+should really consider upgrading to 2.9.13).</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="BLOCKLIST"
+>4.4. Do you still maintain the blocklists?</A
+></H3
+><P
+>    No. The format of the blocklists has changed significantly in versions
+    2.9.x and later. Once we have released the new stable
+    version, v3.0, there will again be blocklists that you can update
+    automatically.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="NEWADS"
+>4.5. How can I submit new ads?</A
+></H3
+><P
+>    As of now, please discontinue to submit new ad blocking infos. Once we
+    have released the new version, there will again be a form on the website,
+    which you can use to contribute new ads.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="IP"
+>4.6. How can I hide my IP address?</A
+></H3
+><P
+> You cannot hide your IP address with <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> or any other software, since
+the server needs to know your IP address to send the answer to you.</P
+><P
+>Fortunately there are many publicly usable anonymous proxies out there, which
+solve the problem by providing a further level of indirection between you and
+the web server, shared by many people and thus letting your requests "drown"
+in white noise of unrelated requests as far as user tracking is concerned.</P
+><P
+>Most of them will, however, log your IP address and make it available to the
+authorities in case you abuse that anonymity for criminal purposes. In fact
+you can't even rule out that some of them only exist to *collect* information
+on (those suspicious) people with a more than average preference for privacy.</P
+><P
+>You can find a list of anonymous public proxies at <A
+HREF="http://www.multiproxy.org/anon_list.htm"
+TARGET="_top"
+>multiproxy.org</A
+> and many
+more through Google.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN520"
+>4.7. Can <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> guarantee I am anonymous?</A
+></H3
+><P
+> No. Your chances of remaining anonymous are greatly improved, but unless you
+ are an expert on Internet security it would be safest to assume that
+ 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 <I
+CLASS="EMPHASIS"
+>you</I
+> more freedom  to decide which sites 
+ you can trust, and what details you want to reveal. But it's still possible
+ that web sites can find out who you are. Here's one way this can happen.</P
+><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="AEN531"
+>4.8. Might some things break because header information is
+being altered?</A
+></H3
+><P
+> Definitely. More and more sites use HTTP header content to decide what to
+ display and how to display it. There is many ways that this can be handled, 
+ so having hard and fast rules, is tricky.</P
+><P
+> <SPAN
+CLASS="QUOTE"
+>"USER AGENT"</SPAN
+> in particular is often used in this way to identify
+ the browser, and adjust content accordingly. Changing this now is not
+ recommended, since so many sites do look for this. You may get undesirable 
+ results by changing this.</P
+><P
+> For instance, different browsers use different encodings of Russian and Czech
+ 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. There are
+ many, many other ways things can go wrong when trying to fool a web server.</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="AEN541"
+>4.9. Can <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> 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
+> 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
+>.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN549"
+>4.10. What about as a firewall? Can <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> protect me?</A
+></H3
+><P
+> Not in the way you mean, or in the way a true firewall can, or a proxy that
+ has this specific capability. <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> can help
+ protect your privacy, but not really protect you from intrusion attempts.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN554"
+>4.11. The <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> logo that replaces ads is very blocky 
+and ugly looking. Can't a better font be used?</A
+></H3
+><P
+> This is not a font problem. The logo is an image that is created by 
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> on the fly. So as to not waste 
+ memory, the image is rather small. The blockiness comes when the 
+ image is scaled to fill a largish area. There is not much to be done 
+ about this, other than to use one of the other
+ <SPAN
+CLASS="QUOTE"
+>"imageblock"</SPAN
+> directives: <I
+CLASS="EMPHASIS"
+>pattern</I
+>, 
+ <I
+CLASS="EMPHASIS"
+>blank</I
+>, or a URL of your choosing.</P
+><P
+>Given the above problem, we have decided to remove the logo option entirely 
+[as of v2.9.13].</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN563"
+>4.12. I have large empty spaces now where ads used to be. 
+Why?</A
+></H3
+><P
+> It would be easy enough to just eliminate this space altogether, rather than
+ fill it with blank space. But, this would create problems with many pages
+ that use the overall size of the ad to help organize the page layout and
+ position the various components of the page where they were intended to be.
+ It is best left this way.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN566"
+>4.13. How can <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> filter Secure (HTTPS) URLs?</A
+></H3
+><P
+> This is a limitation since HTTPS transactions are encrypted SSL sessions
+ between your browser and the secure site, and are meant to be reliably 
+ <I
+CLASS="EMPHASIS"
+>secure</I
+> and private. This means that all cookies and HTTP
+ header information are also encrypted from the time they leave your browser,
+ to the site, and vice versa. <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> does not
+ try to unencrypt this information, so it just passes through as is.
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> can still catch images and ads that
+ are embedded in the SSL stream though.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN573"
+>4.14. <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> runs as a <SPAN
+CLASS="QUOTE"
+>"server"</SPAN
+>. How 
+secure is it? Do I need to take any special precautions?</A
+></H3
+><P
+> There are no known exploits that might effect
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>. 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
+> only listens to requests 
+ from <SPAN
+CLASS="QUOTE"
+>"localhost"</SPAN
+>. 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
+> config file. All LAN hosts can then use 
+ this as their proxy address in the browser proxy configuration. In this way, 
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> will not listen on any external ports.
+ Of course, a firewall is always good too. Better safe than sorry.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="TURNOFF"
+>4.15. How can I temporarily disable <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>?</A
+></H3
+><P
+> The easiest way is to access <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> with your 
+ browser by using the special URL: <A
+HREF="http://p.p/"
+TARGET="_top"
+>http://p.p/</A
+>
+ and select "Toggle Privoxy on or off" from that page.&#13;</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="SEEALSO"
+>4.16. Where can I find more information about <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+and related issues?</A
+></H3
+><P
+> Other references and sites of interest to <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ users:</P
+><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
+><P
+></P
+>
+ <P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>    <A
+HREF="http://sourceforge.net/projects/ijbswa"
+TARGET="_top"
+>http://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
+><P
+></P
+>
+ <P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>    <A
+HREF="http://p.p/"
+TARGET="_top"
+>http://p.p/</A
+>, access
+   <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> from your browser. Alternately, 
+   <A
+HREF="http://config.privoxy.org"
+TARGET="_top"
+>http://config.privoxy.org</A
+>
+   may work in some situations where the first does not.
+  </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+>
+ <P
+></P
+><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
+>
+  </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+>
+ <P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>    <A
+HREF="http://www.waldherr.org/junkbuster/"
+TARGET="_top"
+>http://www.waldherr.org/junkbuster/</A
+>
+  </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+>
+ <P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>    <A
+HREF="http://privacy.net/analyze/"
+TARGET="_top"
+>http://privacy.net/analyze/</A
+>
+  </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+>
+ <P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>   <A
+HREF="http://www.squid-cache.org/"
+TARGET="_top"
+>http://www.squid-cache.org/</A
+>
+  </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+>&#13;</P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="configuration.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="trouble.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Configuration</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Troubleshooting</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/faq/trouble.html b/doc/webserver/faq/trouble.html
new file mode 100644 (file)
index 0000000..732b1b7
--- /dev/null
@@ -0,0 +1,329 @@
+<HTML
+><HEAD
+><TITLE
+>Troubleshooting</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><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"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><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"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="contact.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="TROUBLE"
+>5. Troubleshooting</A
+></H1
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN626"
+>5.1. I just upgraded and am getting <SPAN
+CLASS="QUOTE"
+>"connection refused"</SPAN
+>
+with every web page?</A
+></H3
+><P
+> Either <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is not running, or your 
+ browser is configured for a different port than what
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is using.</P
+><P
+> The old <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> (and also
+ <SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+>) used port 8000 by 
+ default. This has been changed to port 8118 now, due to a conflict 
+ with NAS (Network Audio Service), which uses port 8000. If you haven't, 
+ you need to change your browser to the new port number, or alternately 
+ change <SPAN
+CLASS="APPLICATION"
+>Privoxy's</SPAN
+> <SPAN
+CLASS="QUOTE"
+>"listen-address"</SPAN
+>
+ setting in the <TT
+CLASS="FILENAME"
+>config</TT
+> file used to start 
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN639"
+>5.2. 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 in the picture. The best thing to do is try flushing 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 any actions match your new rule.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN645"
+>5.3. One of my favorite sites does not work with <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>.
+What can I do?</A
+></H3
+><P
+> First verify that it is indeed a <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> problem, 
+ by disabling <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> filtering and blocking. 
+ Go to <A
+HREF="http://p.p/"
+TARGET="_top"
+>http://p.p/</A
+> and click on 
+ <SPAN
+CLASS="QUOTE"
+>"Toggle Privoxy On or Off"</SPAN
+>, then disable it. Now try that 
+ page again. It's probably a good idea to flush the browser cache as well.</P
+><P
+> If still a problem, go to <SPAN
+CLASS="QUOTE"
+>"Show which actions apply to a URL and
+ why"</SPAN
+> from <A
+HREF="http://p.p/"
+TARGET="_top"
+>http://p.p/</A
+> and paste
+ the full URL of the page in question into the prompt. See which actions are
+ being applied to the URL. Now, armed with this information, go to <SPAN
+CLASS="QUOTE"
+>"Edit
+ the actions list"</SPAN
+>. Here you should see various sections that have
+ various <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> features disabled for specific
+ sites. Most disabled <SPAN
+CLASS="QUOTE"
+>"actions"</SPAN
+> will have a <SPAN
+CLASS="QUOTE"
+>"-"</SPAN
+> (minus
+ sign) in front of them. Some aliases are used just to disable other actions, 
+ e.g. <SPAN
+CLASS="QUOTE"
+>"shop"</SPAN
+> and <SPAN
+CLASS="QUOTE"
+>"fragile"</SPAN
+>, and won't necessarily 
+ use a <SPAN
+CLASS="QUOTE"
+>"+"</SPAN
+> or <SPAN
+CLASS="QUOTE"
+>"-"</SPAN
+> sign. Add your problem page
+ URL to one of these sections that looks like it is disabling the feature that
+ is causing the problem. Rember to flush your browser's caches when making 
+ such changes! As a last resort, try <SPAN
+CLASS="QUOTE"
+>"fragile"</SPAN
+> which
+ disables most actions. Now re-try the page. There might be some trial and
+ error involved. This is discussed in a little more detail in the <A
+HREF="../user-manual/appendix.html#ACTIONSANAT"
+TARGET="_top"
+>user-manual appendix</A
+>.&#13;</P
+><P
+> Alternately, if you are comfortable with a text editor, you can accomplish 
+ the same thing by editing the appropriate <SPAN
+CLASS="QUOTE"
+>"actions"</SPAN
+> file.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="BUGS"
+>5.4. Where can I get help? Report bugs? Feature Requests? Etc?</A
+></H3
+><P
+> Feedback is encouraged, whether good, bad or ugly. Please see the contact
+ page in the <A
+HREF="../user-manual/contact.html"
+TARGET="_top"
+>user-manual</A
+> for
+ details.&#13;</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN672"
+>5.5. What time is it?</A
+></H3
+><P
+> Time for you to go!</P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="misc.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="contact.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Miscellaneous</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Contacting the developers, Bug Reporting and Feature Requests</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/man-page/privoxy-man-page.html b/doc/webserver/man-page/privoxy-man-page.html
new file mode 100644 (file)
index 0000000..167822e
--- /dev/null
@@ -0,0 +1,343 @@
+<html><head><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 -->
+       <B>privoxy</B> - Privacy enhancing Proxy
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+       <B>privoxy</B> [--help] [--version] [--no-daemon] [--pidfile <I>pid­</I>
+       <I>file</I>] [--user <I>user</I>[.<I>group</I>]] <I>[configfile]</I> (Unix)
+
+       <B>privoxy.exe</B> <I>[configfile]</I> (Windows)
+
+
+
+</PRE>
+<H2>OPTIONS</H2><PRE>
+       <B>Privoxy</B> may be invoked  with  the  following  command-line
+       options:
+
+       <B>--version</B> (unix only)
+              Print version info and exit.
+
+       <B>--help</B> (unix only)
+              Print a short usage info and exit.
+
+       <B>--no-daemon</B> (unix only)
+              Don't  become  a daemon, i.e. don't fork and become
+              process group leader, don't detach from controlling
+              tty, and do all logging there.
+
+        <B>--pidfile</B> <I>pidfile</I> (unix only)
+              On startup, write the process ID to <I>pidfile</I>. Delete
+              the <I>pidfile</I> on exit. Failiure to create  or  delete
+              the <I>pidfile</I> is non-fatal. If no <B>--pidfile</B> option is
+              given, no PID file will be used.
+
+        <B>--user</B> <I>user</I>[.<I>group</I>] (unix only)
+              After (optionally) writing the PID file, assume the
+              user  ID  of  <I>user</I> and the GID of <I>group</I>, or, if the
+              optional <I>group</I> was not given, the default group  of
+              <I>user</I>.  Exit if the privileges are not sufficient to
+              do so.
+
+
+       If the <I>configfile</I> is not specified on  the  command  line,
+       <B>Privoxy</B>  will  look for a file named <B>config</B> in the current
+       directory (except on Win32 where it will try  <B>config.txt</B>).
+
+
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+       <B>Privoxy</B>  is  a web proxy with advanced filtering capabili­
+       ties for protecting privacy, filtering web  page  content,
+       managing  cookies,  controlling  access, and removing ads,
+       banners,  pop-ups  and  other  obnoxious  Internet   junk.
+       <B>Privoxy</B>  has a very flexible configuration and can be cus­
+       tomized to suit individual needs and tastes.  <B>Privoxy</B>  has
+       application  for  both  stand-alone systems and multi-user
+       <B>Junkbuster</B>  was originally written by JunkBusters Corpora­
+       tion, and was released as free open-source software  under
+       the  GNU  GPL. Stefan Waldherr made many improvements, and
+       started the SourceForge project to continue development.
+
+
+
+</PRE>
+<H2>INSTALLATION AND USE</H2><PRE>
+       Browsers must be individually configured to use <B>Privoxy</B> as
+       a  HTTP  proxy.   The default setting is for localhost, on
+       port 8118 (configurable in the main config file).  To  set
+       the  HTTP proxy in Netscape and Mozilla, go through: <B>Edit</B>;
+       <B>Preferences</B>; <B>Advanced</B>; <B>Proxies</B>;  <B>Manual</B>  <B>Proxy</B>  <B>Configura­</B>
+       <B>tion</B>; <B>View</B>.
+
+       For Internet Explorer, go through: <B>Tools</B>; <B>Internet</B> <B>Proper­</B>
+       <B>ties</B>; <B>Connections</B>; <B>LAN</B> <B>Settings</B>.
+
+       The Secure (SSL) Proxy should also be set to the same val­
+       ues, otherwise <B>https:</B> URLs will not be proxied.
+
+       For other browsers, check the documentation.
+
+
+
+</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.action</I>,  and  <I>default.filter</I>.  These are well com­
+       mented.  On Unix and Unix-like systems, these are  located
+       in <I>/etc/privoxy/</I> by default. On Windows, OS/2 and AmigaOS,
+       these files are in the same directory as the <B>Privoxy</B>  exe­
+       cutable.
+
+       The  name  and  number  of configuration files has changed
+       from previous versions, and is subject to change as devel­
+       opment  progresses.  In  fact, the configuration itself is
+       changed and much more sophisticated. See  the  user-manual
+       for a brief explanation of all configuration options.
+
+       The  actions  list (ad blocks, etc) can also be configured
+       with your web  browser  at  <I>http://www.privoxy.org/config</I>.
+       <B>Privoxy's</B>  configuration  parameters can also be viewed at
+       the same page. In addition, <B>Privoxy</B> can be toggled on/off.
+       This is an internal page.
+
+
+
+</PRE>
+<H2>SAMPLE CONFIGURATION</H2><PRE>
+       A  brief  example  of  what a <I>default.action</I> configuration
+       might look like:
+
+
+       # Define a few useful custom aliases for later use
+       {{alias}}
+       +no-cookies = +no-cookies-set +no-cookies-read
+
+       # Do accept cookies
+       -no-cookies = -no-cookies-set -no-cookies-read
+
+       # Treat these blocked URLs as images.
+       +imageblock = +block +image
+
+       # Define page filters we want to use.
+       myfilters = +filter{html-annoyances} +filter{js-annoyances}\
+                   +filter{no-popups} +filter{webbugs}
+
+       ## Default Policies (actions) ############################
+       { \
+        -block \
+        -downgrade \
+        +fast-redirects \
+        myfilters \
+        +no-compression \
+        +hide-forwarded \
+        +hide-from{block} \
+        +hide-referer{forge} \
+        -hide-user-agent \
+        -image \
+        +image-blocker{blank} \
+        +no-cookies-keep \
+        -no-cookies-read \
+        -no-cookies-set \
+        +no-popups \
+        -vanilla-wafer \
+        -wafer \
+       }
+       /
+
+       # Now set exceptions to the above defined policies #######
+
+       # Sites where we want persistant cookies
+       {-no-cookies -no-cookies-keep}
+        .redhat.com
+        .sun.com
+        .yahoo.com
+        .msdn.microsoft.com
+
+       # This site requires cookies AND 'fast-redirects' on
+       {-no-cookies -no-cookies-keep -fast-redirects}
+        .nytimes.com
+
+       # Add custom headers, and turn off filtering of page source
+       {+add-header{X-Privacy: Yes please} #-add-header{*} \
+        +add-header{X-User-Tracking: No thanks!} -filter}
+        privacy.net
+
+        .adforce.imgis.com
+        .ad.preferences.com/image.*
+        .ads.web.aol.com
+        .ad-adex3.flycast.com
+        .ad.doubleclick.net
+        .ln.doubleclick.net
+        .ad.de.doubleclick.net
+        /.*/count\.cgi\?.*df=
+        194.221.183.22[1-7]
+        a196.g.akamai.net/7/196/2670/000[12]/images.gmx.net/i4/images/.*/
+
+       # Block any URLs that match these patterns
+       {+block}
+        /.*/(.*[-_.])?ads?[0-9]?(/|[-_.].*|\.(gif|jpe?g))
+        /.*/(plain|live|rotate)[-_.]?ads?/
+        /.*/(sponsor)s?[0-9]?/
+        /.*/ad(server|stream|juggler)\.(cgi|pl|dll|exe)
+        /.*/adbanners/
+        /.*/adv((er)?ts?|ertis(ing|ements?))?/
+        /.*/banners?/
+        /.*/popupads/
+        /.*/advert[0-9]+\.jpg
+        /ad_images/
+        /.*/ads/
+        /images/.*/.*_anim\.gif
+        /rotations/
+        /.*(ms)?backoff(ice)?.*\.(gif|jpe?g)
+        195.63.104.*/(inbox|log|meld|folderlu|folderru|log(in|out)[lmr]u|)
+        .images.nytimes.com
+        .images.yahoo.com/adv/
+        /.*cnnstore\.gif
+
+
+
+       See the comments in the configuration files themselves, or
+       the  user-manual for explanations of the above syntax, and
+       other <B>Privoxy</B> configuration options.
+
+
+
+</PRE>
+<H2>FILES</H2><PRE>
+       <I>/usr/sbin/privoxy</I>
+       <I>/etc/privoxy/config</I>
+       <I>/etc/privoxy/default.action</I>
+       <I>/etc/privoxy/advanced.action</I>
+       <I>/etc/privoxy/basic.action</I>
+       <I>/etc/privoxy/intermediate.action</I>
+       <I>/etc/privoxy/default.filter</I>
+       <I>/etc/privoxy/trust</I>
+       <I>/etc/privoxy/templates/*</I>
+       <I>/var/log/privoxy/logfile</I>
+
+
+       mentation should be included in  the  local  documentation
+       directory, though is not complete at this time.
+
+
+
+</PRE>
+<H2>SIGNALS</H2><PRE>
+       <B>Privoxy</B> terminates on the <B>SIGINT</B>, <B>SIGTERM</B> and <B>SIGABRT</B> sig­
+       nals. Log rotation scripts may cause a re-opening  of  the
+       logfile  by  sending a <B>SIGHUP</B> to <B>Privoxy</B>. Note that unlike
+       other daemons, <B>Privoxy</B> does not need to be made  aware  of
+       config file changes by <B>SIGHUP</B> -- it will detect them auto­
+       matically.
+
+
+
+</PRE>
+<H2>NOTES</H2><PRE>
+       This is a <B>BETA</B> version of <B>Privoxy</B>. Not  all  features  are
+       well tested.
+
+       Please see the user-maual on how to contact the developers
+       for feature requests, reporting problems, and other  ques­
+       tions.
+
+
+
+</PRE>
+<H2>BUGS</H2><PRE>
+       Probably.  Please see the user-manual for how and where to
+       report bugs.
+
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+       http://www.privoxy.org/
+       http://config.privoxy.org/
+       http://www.privoxy.org/faq/
+       http://www.privoxy.org/user-manual/
+       http://www.privoxy.org/developer-manual/
+       http://sourceforge.net/projects/ijbswa  (Privoxy   Project
+       Page)
+       http://www.waldherr.org/junkbuster/
+       http://www.junkbusters.com/ht/en/cookies.html
+       http://privacy.net/analyze/
+       http://www.squid-cache.org/
+       http://linuxalpha.ch/steudten/software/
+
+
+
+</PRE>
+<H2>DEVELOPMENT TEAM</H2><PRE>
+        Stefan Waldherr
+        Andreas Oesterhelt
+        Jon Foster
+        Markus Breitenbach
+        Thomas Steudten
+        David Schmidt
+        Haroon Rafique
+        Joerg Strohmayer
+        Shamim Mohamed
+        John Venvertloh
+        Hal Burgiss
+        Rodrigo Barbosa
+        Gábor Lipták
+
+
+
+</PRE>
+<H2>COPYRIGHT AND LICENSE</H2><PRE>
+       This  program  is  free  software; you can redistribute it
+       and/or modify it under the terms of the GNU General Public
+       License  as  published  by  the  Free Software Foundation;
+       either version 2 of the License, or (at your  option)  any
+       later version.
+
+       This  program  is  distributed in the hope that it will be
+       useful, but WITHOUT ANY WARRANTY; without even the implied
+       warranty  of  MERCHANTABILITY  or FITNESS FOR A PARTICULAR
+       PURPOSE.  See the GNU  General  Public  License  for  more
+       details.
+
+       You  should have received a copy of the GNU General Public
+       License along with this program; if not, write to the Free
+       Software  Foundation,  Inc.,  59  Temple Place, Suite 330,
+       Boston, MA  02111-1307  USA
+
+       Internet Junkbuster Proxy is a  trademark  of  Junkbusters
+       Corporation.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+</body></html>
diff --git a/doc/webserver/user-manual/appendix.html b/doc/webserver/user-manual/appendix.html
new file mode 100644 (file)
index 0000000..0546aff
--- /dev/null
@@ -0,0 +1,1549 @@
+<HTML
+><HEAD
+><TITLE
+>Appendix</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+REL="HOME"
+TITLE="Privoxy User Manual"
+HREF="index.html"><LINK
+REL="PREVIOUS"
+TITLE="See Also"
+HREF="seealso.html"><LINK
+REL="STYLESHEET"
+TYPE="text/css"
+HREF="../p_doc.css"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>Privoxy User Manual</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="seealso.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+>&nbsp;</TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="APPENDIX"
+>9. Appendix</A
+></H1
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="REGEX"
+>9.1. Regular Expressions</A
+></H2
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> can use <SPAN
+CLASS="QUOTE"
+>"regular expressions"</SPAN
+> 
+ in various config files. Assuming support for <SPAN
+CLASS="QUOTE"
+>"pcre"</SPAN
+> (Perl
+ Compatible Regular Expressions) is compiled in, which is the default. Such
+ configuration directives do not require regular expressions, but they can be
+ used to increase flexibility by matching a pattern with wild-cards against
+ URLs.</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 book ;-)</P
+><P
+> <SPAN
+CLASS="QUOTE"
+>"Regular expressions"</SPAN
+> is a way of matching one character
+ expression against another to see if it matches or not. One of the
+ <SPAN
+CLASS="QUOTE"
+>"expressions"</SPAN
+> is a literal string of readable characters
+ (letter, numbers, etc), and the other is a complex string 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 the complex pattern to be matched against. Perl Compatible
+ Regular Expressions is an enhanced form of the regular expression language
+ with backward compatibility.</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
+><P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>  <I
+CLASS="EMPHASIS"
+>.</I
+> - 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
+><P
+></P
+><P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>  <I
+CLASS="EMPHASIS"
+>?</I
+> - The preceding character or expression is matched ZERO or ONE
+  times. Either/or.
+ </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+><P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>  <I
+CLASS="EMPHASIS"
+>+</I
+> - The preceding character or expression is matched ONE or MORE
+  times.
+ </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+><P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>  <I
+CLASS="EMPHASIS"
+>*</I
+> - The preceding character or expression is matched ZERO or MORE
+  times.
+ </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+><P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>  <I
+CLASS="EMPHASIS"
+>\</I
+> - 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.
+ </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+><P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>  <I
+CLASS="EMPHASIS"
+>[]</I
+> - Characters enclosed in brackets will be matched if
+  any of the enclosed characters are encountered.
+ </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+><P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>  <I
+CLASS="EMPHASIS"
+>()</I
+> - parentheses are used to group a sub-expression,
+  or multiple sub-expressions.
+ </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+><P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>  <I
+CLASS="EMPHASIS"
+>|</I
+> - 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.
+ </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+><P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>  <I
+CLASS="EMPHASIS"
+>s/string1/string2/g</I
+> - This is used to rewrite strings of text. 
+  <SPAN
+CLASS="QUOTE"
+>"string1"</SPAN
+> is replaced by <SPAN
+CLASS="QUOTE"
+>"string2"</SPAN
+> in this
+  example.
+ </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+><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
+> <I
+CLASS="EMPHASIS"
+><TT
+CLASS="LITERAL"
+>/.*/banners/.*</TT
+></I
+> - 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
+> A now something a little more complex:</P
+><P
+> <I
+CLASS="EMPHASIS"
+><TT
+CLASS="LITERAL"
+>/.*/adv((er)?ts?|ertis(ing|ements?))?/</TT
+></I
+> - 
+ 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 <I
+CLASS="EMPHASIS"
+>must
+ match</I
+> 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
+> 
+ <I
+CLASS="EMPHASIS"
+>OR</I
+> <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
+> <I
+CLASS="EMPHASIS"
+><TT
+CLASS="LITERAL"
+>/.*/advert[0-9]+\.(gif|jpe?g)</TT
+></I
+> - 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
+> <I
+CLASS="EMPHASIS"
+><TT
+CLASS="LITERAL"
+>s/microsoft(?!.com)/MicroSuck/i</TT
+></I
+> - This is 
+ a substitution. <SPAN
+CLASS="QUOTE"
+>"MicroSuck"</SPAN
+> will replace any occurrence of 
+ <SPAN
+CLASS="QUOTE"
+>"microsoft"</SPAN
+>.  The <SPAN
+CLASS="QUOTE"
+>"i"</SPAN
+> at the end of the expression
+ means ignore case. The <SPAN
+CLASS="QUOTE"
+>"(?!.com)"</SPAN
+> means 
+ the match should fail if <SPAN
+CLASS="QUOTE"
+>"microsoft"</SPAN
+> is followed by
+ <SPAN
+CLASS="QUOTE"
+>".com"</SPAN
+>. In other words, this acts like a <SPAN
+CLASS="QUOTE"
+>"NOT"</SPAN
+>
+ modifier. In case this is a hyperlink, we don't want to break it ;-).</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://www.perldoc.com/perl5.6/pod/perlre.html"
+TARGET="_top"
+>http://www.perldoc.com/perl5.6/pod/perlre.html</A
+></P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN1587"
+>9.2. <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>'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.&#13;</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
+></P
+><UL
+><LI
+><P
+>  
+   Privoxy main page: 
+  </P
+><A
+NAME="AEN1602"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+> 
+     <A
+HREF="http://config.privoxy.org/"
+TARGET="_top"
+>http://config.privoxy.org/</A
+>
+   </P
+></BLOCKQUOTE
+><P
+>   Alternately, this may be reached at <A
+HREF="http://p.p/"
+TARGET="_top"
+>http://p.p/</A
+>, but this
+   variation may not work as reliably as the above in some configurations.
+  </P
+></LI
+><LI
+><P
+>  
+    Show information about the current configuration: 
+  </P
+><A
+NAME="AEN1609"
+></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="AEN1614"
+></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 client's request headers:
+  </P
+><A
+NAME="AEN1619"
+></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="AEN1624"
+></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. In this case, <SPAN
+CLASS="QUOTE"
+>"Privoxy"</SPAN
+> continues 
+   to run, but only as a pass-through proxy, with no actions taking place:
+  </P
+><A
+NAME="AEN1630"
+></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="AEN1634"
+></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="AEN1637"
+></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
+><LI
+><P
+>  
+   Edit the actions list file:
+  </P
+><A
+NAME="AEN1642"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+> 
+    <A
+HREF="http://config.privoxy.org/edit-actions"
+TARGET="_top"
+>http://config.privoxy.org/edit-actions</A
+>
+   </P
+></BLOCKQUOTE
+></LI
+></UL
+></P
+><P
+> These may be bookmarked for quick reference.&#13;</P
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="BOOKMARKLETS"
+>9.2.1. Bookmarklets</A
+></H3
+><P
+> Here are some bookmarklets to allow you to easily access a
+ <SPAN
+CLASS="QUOTE"
+>"mini"</SPAN
+> version of this page. 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 will 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 favourites/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
+></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"
+>Enable Privoxy</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"
+>Disable Privoxy</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"
+>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"
+>View Privoxy Status</A
+>
+   </P
+></LI
+></UL
+></P
+><P
+> Credit: The site which gave me 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="ACTIONSANAT"
+>9.3. Anatomy of an Action</A
+></H2
+><P
+> The way <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> applies <SPAN
+CLASS="QUOTE"
+>"actions"</SPAN
+>
+ and <SPAN
+CLASS="QUOTE"
+>"filters"</SPAN
+> to any given URL can be complex, and not always so
+ easy to understand what is happening. And sometimes we need to be able to
+ <I
+CLASS="EMPHASIS"
+>see</I
+> just what <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is
+ doing. Especially, if something <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is doing
+ is causing us a problem inadvertantly. It can be a little daunting to look at
+ the actions and filters files themselves, since they tend to be filled with
+ <SPAN
+CLASS="QUOTE"
+>"regular expressions"</SPAN
+> whose consequences are not always 
+ so obvious. <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> 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 from the <TT
+CLASS="FILENAME"
+>default.filter</TT
+> file! 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 look at an example, <A
+HREF="http://google.com"
+TARGET="_top"
+>google.com</A
+>, 
+ one section at a time:</P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+> System default actions:
+
+ { -add-header -block -deanimate-gifs -downgrade -fast-redirects -filter 
+   -hide-forwarded -hide-from -hide-referer -hide-user-agent -image 
+   -image-blocker -limit-connect -no-compression -no-cookies-keep 
+   -no-cookies-read -no-cookies-set -no-popups -vanilla-wafer -wafer }
+ </PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> This is the top section, and only tells us of the compiled in defaults. This 
+ is basically what <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> would do if there 
+ were not any <SPAN
+CLASS="QUOTE"
+>"actions"</SPAN
+> defined, i.e. it does nothing. Every action 
+ is disabled. This is not particularly informative for our purposes here. OK,
+ next section:</P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>&#13; Matches for http://google.com:
+
+ { -add-header -block +deanimate-gifs -downgrade +fast-redirects 
+   +filter{html-annoyances} +filter{js-annoyances} +filter{no-popups} 
+   +filter{webbugs} +filter{nimda} +filter{banners-by-size} +filter{hal} 
+   +filter{fun} +hide-forwarded +hide-from{block} +hide-referer{forge} 
+   -hide-user-agent -image +image-blocker{blank} +no-compression 
+   +no-cookies-keep -no-cookies-read -no-cookies-set +no-popups 
+   -vanilla-wafer -wafer }
+   /
+
+ { -no-cookies-keep -no-cookies-read -no-cookies-set }
+  .google.com
+
+ { -fast-redirects }
+  .google.com
+
+ </PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> This is much more informative, and tells us how we have defined our 
+ <SPAN
+CLASS="QUOTE"
+>"actions"</SPAN
+>, and which ones match for our example, 
+ <SPAN
+CLASS="QUOTE"
+>"google.com"</SPAN
+>. The first grouping shows our default 
+ settings, which would apply to all URLs. 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 applies to all URLs as signified by the single forward
+ slash -- <SPAN
+CLASS="QUOTE"
+>"/"</SPAN
+>.
+ </P
+><P
+> These are the default actions we have enabled. But we can define additional
+ actions that would be exceptions to these general rules, and then list 
+ specific URLs that these exceptions would apply to. Last match wins.
+ Just below this then are two explict matches for <SPAN
+CLASS="QUOTE"
+>".google.com"</SPAN
+>.
+ The first is negating our various cookie blocking actions (i.e. we will allow
+ cookies here). The second is allowing <SPAN
+CLASS="QUOTE"
+>"fast-redirects"</SPAN
+>. 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
+>. So, apparently, we have these actions defined
+ somewhere in the lower part of our actions file, and
+ <SPAN
+CLASS="QUOTE"
+>"google.com"</SPAN
+> is referenced in these sections.&#13;</P
+><P
+> And now we pull it altogether in the bottom section and summarize how
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is appying all its <SPAN
+CLASS="QUOTE"
+>"actions"</SPAN
+> 
+ to <SPAN
+CLASS="QUOTE"
+>"google.com"</SPAN
+>:&#13;</P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>&#13; Final results:
+
+ -add-header -block -deanimate-gifs -downgrade -fast-redirects 
+ +filter{html-annoyances} +filter{js-annoyances} +filter{no-popups} 
+ +filter{webbugs} +filter{nimda} +filter{banners-by-size} +filter{hal} 
+ +filter{fun} +hide-forwarded +hide-from{block} +hide-referer{forge} 
+ -hide-user-agent -image +image-blocker{blank} -limit-connect +no-compression 
+ -no-cookies-keep -no-cookies-read -no-cookies-set +no-popups -vanilla-wafer 
+ -wafer
+
+ </PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> Now another example, <SPAN
+CLASS="QUOTE"
+>"ad.doubleclick.net"</SPAN
+>:</P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>&#13; { +block +image }
+  .ad.doubleclick.net
+
+ { +block +image }
+  ad*.
+
+ { +block +image }
+  .doubleclick.net
+
+ </PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> We'll just show the interesting part here, the explicit matches. It is 
+ matched three different times. Each as an <SPAN
+CLASS="QUOTE"
+>"+block +image"</SPAN
+>,
+ which is the expanded form of one of our aliases that had been defined as: 
+ <SPAN
+CLASS="QUOTE"
+>"+imageblock"</SPAN
+>. (<SPAN
+CLASS="QUOTE"
+>"Aliases"</SPAN
+> 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 <SPAN
+CLASS="QUOTE"
+>"+block"</SPAN
+> <I
+CLASS="EMPHASIS"
+>and</I
+> an
+ <SPAN
+CLASS="QUOTE"
+>"+image"</SPAN
+>. The custom alias <SPAN
+CLASS="QUOTE"
+>"+imageblock"</SPAN
+> does this
+ for us.</P
+><P
+> One last example. Let's try <SPAN
+CLASS="QUOTE"
+>"http://www.rhapsodyk.net/adsl/HOWTO/"</SPAN
+>.
+ This one is giving us problems. We are getting a blank page. Hmmm...</P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>&#13; Matches for http://www.rhapsodyk.net/adsl/HOWTO/:
+
+ { -add-header -block +deanimate-gifs -downgrade +fast-redirects 
+   +filter{html-annoyances} +filter{js-annoyances} +filter{no-popups} 
+   +filter{webbugs} +filter{nimda} +filter{banners-by-size} +filter{hal} 
+   +filter{fun} +hide-forwarded +hide-from{block} +hide-referer{forge} 
+   -hide-user-agent -image +image-blocker{blank} +no-compression 
+   +no-cookies-keep -no-cookies-read -no-cookies-set +no-popups 
+   -vanilla-wafer -wafer }
+   /
+
+ { +block +image }
+  /ads
+
+ </PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> Ooops, the <SPAN
+CLASS="QUOTE"
+>"/adsl/"</SPAN
+> is matching <SPAN
+CLASS="QUOTE"
+>"/ads"</SPAN
+>! But 
+ we did not want this at all! Now we see why we get the blank page. We could
+ now add a new action below this that explictly does <I
+CLASS="EMPHASIS"
+>not</I
+>
+ block (-block) pages with <SPAN
+CLASS="QUOTE"
+>"adsl"</SPAN
+>. There are various ways to
+ handle such exceptions. Example:</P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>&#13; { -block }
+  /adsl
+ </PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> Now the page displays ;-) Be sure to flush your browser's caches when 
+ making such changes. 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
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>&#13; { -block }
+  /adsl
+ </PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> That actually was very telling 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 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 <SPAN
+CLASS="QUOTE"
+>"{+filter}"</SPAN
+> actions. Try 
+ adding the URL for the site to one of aliases that turn off <SPAN
+CLASS="QUOTE"
+>"+filter"</SPAN
+>:</P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>&#13; {shop}
+ .quietpc.com
+ .worldpay.com   # for quietpc.com
+ .jungle.com
+ .scan.co.uk
+ .forbes.com
+ </PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> <SPAN
+CLASS="QUOTE"
+>"{shop}"</SPAN
+> is an <SPAN
+CLASS="QUOTE"
+>"alias"</SPAN
+> that expands to 
+ <SPAN
+CLASS="QUOTE"
+>"{ -filter -no-cookies -no-cookies-keep }"</SPAN
+>. Or you could do 
+ your own exception to negate filtering:&#13;</P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>&#13; {-filter}
+ .forbes.com
+ </PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> <SPAN
+CLASS="QUOTE"
+>"{fragile}"</SPAN
+> is an alias that disables most actions. This can be 
+ used as a last resort for problem sites. Remember to flush caches! If this 
+ still does not work, you will have to go through the remaining actions one by
+ one to find which one(s) is causing the problem.</P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="seealso.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>See Also</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>&nbsp;</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/user-manual/configuration.html b/doc/webserver/user-manual/configuration.html
new file mode 100644 (file)
index 0000000..f2d4c3b
--- /dev/null
@@ -0,0 +1,3964 @@
+<HTML
+><HEAD
+><TITLE
+>Privoxy Configuration</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+REL="HOME"
+TITLE="Privoxy User Manual"
+HREF="index.html"><LINK
+REL="PREVIOUS"
+TITLE="Quickstart to Using Privoxy"
+HREF="quickstart.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"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>Privoxy User Manual</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="quickstart.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="contact.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="CONFIGURATION"
+>5. <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> 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="AEN275"
+>5.1. Controlling <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> with Your Web Browser</A
+></H2
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> can be reached by the special 
+ URL <A
+HREF="http://p.p/"
+TARGET="_top"
+>http://p.p/</A
+> (or alternately
+ <A
+HREF="http://config.privoxy.org/"
+TARGET="_top"
+>http://config.privoxy.org/</A
+>), 
+ which is an internal page. You will see the following section:&#13;</P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>&#13;Please choose from the following options:
+
+    * Show information about the current configuration
+    * Show the source code version numbers
+    * Show the client's request headers.
+    * Show which actions apply to a URL and why
+    * Toggle Privoxy on or off
+    * Edit the actions list
+
+ </PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> This should be self-explanatory. Note the last item is an editor for the
+ <SPAN
+CLASS="QUOTE"
+>"actions list"</SPAN
+>, which is where much of 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. 
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> will automatically detect any changes 
+ to these files.</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, or just to test if 
+ a site misbehaves, 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 filtering is disabled.&#13;</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN293"
+>5.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 possibly
+ aggressive by some standards. For the time being, there are only three
+ default configuration files (this may change in time):</P
+><P
+> <P
+></P
+><UL
+><LI
+><P
+>     The main configuration file is named <TT
+CLASS="FILENAME"
+>config</TT
+>
+     on Linux, Unix, BSD, OS/2, and AmigaOS and <TT
+CLASS="FILENAME"
+>config.txt</TT
+>
+     on Windows.
+   </P
+></LI
+><LI
+><P
+>    The <TT
+CLASS="FILENAME"
+>default.action</TT
+> file is used  to define various 
+    <SPAN
+CLASS="QUOTE"
+>"actions"</SPAN
+> relating to images, banners, pop-ups, access
+    restrictions, banners and cookies. There is a CGI based editor for this
+    file that can be accessed via <A
+HREF="http://p.p"
+TARGET="_top"
+>http://p.p</A
+>. (Other actions 
+    files are included as well with differing levels of filtering 
+    and blocking, e.g. <TT
+CLASS="FILENAME"
+>basic.action</TT
+>.)
+   </P
+></LI
+><LI
+><P
+>    The <TT
+CLASS="FILENAME"
+>default.filter</TT
+> file 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.
+   </P
+></LI
+></UL
+></P
+><P
+> <TT
+CLASS="FILENAME"
+>default.action</TT
+> and <TT
+CLASS="FILENAME"
+>default.filter</TT
+> 
+ can use Perl style regular expressions for maximum flexibility. All files use
+ the <SPAN
+CLASS="QUOTE"
+>"<TT
+CLASS="LITERAL"
+>#</TT
+>"</SPAN
+> character to denote a comment. Such
+ lines are not processed by <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>. 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
+> should detect such changes 
+ automatically.</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
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN324"
+>5.3. The Main Configuration File</A
+></H2
+><P
+> Again, the main configuration file is named <TT
+CLASS="FILENAME"
+>config</TT
+> on
+ Linux/Unix/BSD and OS/2, and <TT
+CLASS="FILENAME"
+>config.txt</TT
+> on Windows.
+ 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
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>blockfile blocklist.ini</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> Indicates that the blockfile is named <SPAN
+CLASS="QUOTE"
+>"blocklist.ini"</SPAN
+>. (A 
+ default installation does not use this.)</P
+><P
+> A <SPAN
+CLASS="QUOTE"
+>"<TT
+CLASS="LITERAL"
+>#</TT
+>"</SPAN
+> indicates a comment.  Any part of a
+ line following a <SPAN
+CLASS="QUOTE"
+>"<TT
+CLASS="LITERAL"
+>#</TT
+>"</SPAN
+> is ignored, except if
+ the <SPAN
+CLASS="QUOTE"
+>"<TT
+CLASS="LITERAL"
+>#</TT
+>"</SPAN
+> is preceded by a
+ <SPAN
+CLASS="QUOTE"
+>"<TT
+CLASS="LITERAL"
+>\</TT
+>"</SPAN
+>.</P
+><P
+> Thus, by placing a <SPAN
+CLASS="QUOTE"
+>"<TT
+CLASS="LITERAL"
+>#</TT
+>"</SPAN
+> at the start of an
+ existing configuration line, you can make it a comment and it will be treated
+ as if it weren't there. This is called <SPAN
+CLASS="QUOTE"
+>"commenting out"</SPAN
+> an
+ option and can be useful to turn off features: If you comment out the
+ <SPAN
+CLASS="QUOTE"
+>"logfile"</SPAN
+> line, <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> will not
+ log to a file at all. Watch for the <SPAN
+CLASS="QUOTE"
+>"default:"</SPAN
+> section in each
+ explanation to see what happens if the option is left unset (or commented
+ out). </P
+><P
+> Long lines can be continued on the next line by using a
+ <SPAN
+CLASS="QUOTE"
+>"<TT
+CLASS="LITERAL"
+>\</TT
+>"</SPAN
+> as the very last character.</P
+><P
+> There are various aspects of <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> behavior 
+ that can be tuned.</P
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN357"
+>5.3.1. Defining Other Configuration Files</A
+></H3
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> can use a number of other files to tell it
+ what ads to block, what cookies to accept, and perform other functions.  This
+ section of the configuration file tells <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ where to find all those other files. </P
+><P
+> On <SPAN
+CLASS="APPLICATION"
+>Windows</SPAN
+> and <SPAN
+CLASS="APPLICATION"
+>AmigaOS</SPAN
+>,
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> looks for these files in the same
+ directory as the executable.  On Unix and  OS/2,
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> looks for these files in the current
+ working directory. In either case, an absolute path name can be used to
+ avoid problems.</P
+><P
+> When development goes modular and multi-user, the blocker, filter, and
+ per-user config will be stored in subdirectories of <SPAN
+CLASS="QUOTE"
+>"confdir"</SPAN
+>.
+ For now, only <TT
+CLASS="FILENAME"
+>confdir/templates</TT
+> is used for storing HTML
+ templates for CGI results. </P
+><P
+> The location of the configuration files:</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>confdir  /etc/privoxy</I
+>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;No&nbsp;trailing&nbsp;/,&nbsp;please.<br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> The directory where all logging (i.e. <TT
+CLASS="FILENAME"
+>logfile</TT
+> and 
+ <TT
+CLASS="FILENAME"
+>jarfile</TT
+>) takes place. No trailing
+ <SPAN
+CLASS="QUOTE"
+>"<TT
+CLASS="LITERAL"
+>/</TT
+>"</SPAN
+>, please: </P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>logdir  /var/log/privoxy</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> Note that all file specifications below are relative to 
+ the above two directories!</P
+><P
+> The <SPAN
+CLASS="QUOTE"
+>"default.action"</SPAN
+> file contains patterns to specify the
+ actions to apply to requests for each site. Default: Cookies to and from all
+ destinations are kept only during the current browser session (i.e. they are
+ not saved to disk). Pop-ups are disabled for all sites. All sites are
+ filtered through selected sections of <SPAN
+CLASS="QUOTE"
+>"default.filter"</SPAN
+>. No sites
+ are blocked. <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> displays a checkboard type
+ pattern for filtered ads and other images. The syntax of this file is
+ explained in detail <A
+HREF="configuration.html#ACTIONSFILE"
+>below</A
+>. Other
+ <SPAN
+CLASS="QUOTE"
+>"actions"</SPAN
+> files are included, and you are free to use any of
+ them. They have varying degrees of aggressiveness.</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>actionsfile  default.action</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> The <SPAN
+CLASS="QUOTE"
+>"default.filter"</SPAN
+> file contains content modification rules 
+ that use <SPAN
+CLASS="QUOTE"
+>"regular expressions"</SPAN
+>. These rules permit powerful
+ changes on the content of Web pages, e.g., you could disable your favorite
+ JavaScript annoyances, re-write the actual displayed text, or just have some
+ fun replacing <SPAN
+CLASS="QUOTE"
+>"Microsoft"</SPAN
+> with <SPAN
+CLASS="QUOTE"
+>"MicroSuck"</SPAN
+> wherever
+ it appears on a Web page. Default: whatever the developers are playing with
+ :-/</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. (It does not really take longer, but seems that way since 
+ the page is not incrementally displayed.) This effect will be more noticeable
+ on slower connections.&#13;</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>filterfile  default.filter</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> The logfile is where all logging and error messages are written. 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) but in most cases you probably will never look at it.</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 Redhat, a <B
+CLASS="COMMAND"
+>logrotate</B
+> 
+ script has been included.</P
+><P
+> On SuSE Linux systems, you can place a line like <SPAN
+CLASS="QUOTE"
+>"/var/log/privoxy.*
+ +1024k 644 nobody.nogroup"</SPAN
+> in <TT
+CLASS="FILENAME"
+>/etc/logfiles</TT
+>, with
+ the effect that cron.daily will automatically archive, gzip, and empty the
+ log, when it exceeds 1M size.</P
+><P
+> Default: Log to the a file named <TT
+CLASS="FILENAME"
+>logfile</TT
+>. 
+ Comment out to disable logging.</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>logfile  logfile</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> The <SPAN
+CLASS="QUOTE"
+>"jarfile"</SPAN
+> defines where
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> stores the cookies it intercepts.  Note
+ that if you use a <SPAN
+CLASS="QUOTE"
+>"jarfile"</SPAN
+>, it may grow quite large. Default:
+ Don't store intercepted cookies.</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>#jarfile  jarfile</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> If you specify a <SPAN
+CLASS="QUOTE"
+>"trustfile"</SPAN
+>,
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> will only allow access to sites that
+ are named in the trustfile. You can also mark sites as trusted referrers,
+ with the effect that access to untrusted sites will be granted, if a link
+ from a trusted referrer was used. The link target will then be added to the
+ <SPAN
+CLASS="QUOTE"
+>"trustfile"</SPAN
+>. This is a very restrictive feature that typical
+ users most probably want to leave disabled. Default: Disabled, don't use the
+ trust mechanism.</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>#trustfile  trust</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> If you use the trust mechanism, it is a good idea to write up some on-line
+ documentation about your blocking policy and to specify the URL(s) here. They
+ will appear on the page that your users receive when they try to access
+ untrusted content. Use multiple times for multiple URLs. Default: Don't
+ display links on the <SPAN
+CLASS="QUOTE"
+>"untrusted"</SPAN
+> info page.</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>trust-info-url http://www.example.com/why_we_block.html</I
+><br>
+&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>trust-info-url http://www.example.com/what_we_allow.html</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN450"
+>5.3.2. Other Configuration Options</A
+></H3
+><P
+> This part of the configuration file contains options that control how
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> operates.</P
+><P
+> <SPAN
+CLASS="QUOTE"
+>"Admin-address"</SPAN
+> should be set to the email address of the proxy
+ administrator. It is used in many of the proxy-generated pages. Default:
+ fill@me.in.please.</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>#admin-address  fill@me.in.please</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> <SPAN
+CLASS="QUOTE"
+>"Proxy-info-url"</SPAN
+> can be set to a URL that contains more info
+ about this <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> installation, it's
+ configuration and policies. It is used in many of the proxy-generated pages
+ and its use is highly recommended in multi-user installations, since your
+ users will want to know why certain content is blocked or modified. Default:
+ Don't show a link to on-line documentation.</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>proxy-info-url  http://www.example.com/proxy.html</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> <SPAN
+CLASS="QUOTE"
+>"Listen-address"</SPAN
+> specifies the address and port where
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> will listen for connections from your
+ Web browser.  The default is to listen on the localhost port 8118, and
+ this is suitable for most users.  (In your web browser, under proxy
+ configuration, list the proxy server as <SPAN
+CLASS="QUOTE"
+>"localhost"</SPAN
+> and the
+ port as <SPAN
+CLASS="QUOTE"
+>"8118"</SPAN
+>).</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. The syntax is 
+ <SPAN
+CLASS="QUOTE"
+>"listen-address [&#60;ip-address&#62;]:&#60;port&#62;"</SPAN
+>. If you leave
+ out the IP address, <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> will bind to all
+ interfaces (addresses) on your machine and may become reachable from the
+ Internet. In that case, consider using access control lists (acl's) (see
+ <SPAN
+CLASS="QUOTE"
+>"aclfile"</SPAN
+> above), or a firewall.</P
+><P
+> For example, 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
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>listen-address  192.168.0.1:8118</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> If you want it to listen on all addresses (including the outside
+ connection):</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>listen-address  :8118</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> If you do this, consider using ACLs (see <SPAN
+CLASS="QUOTE"
+>"aclfile"</SPAN
+> above). Note:
+ you will need to point your browser(s) to the address and port that you have
+ configured here. Default: localhost:8118 (127.0.0.1:8118).</P
+><P
+> The debug option sets the level of debugging information to log in the
+ logfile (and to the console in the Windows version).  A debug level of 1 is
+ informative because it will show you each request as it happens.  Higher
+ levels of debug are probably only of interest to developers.</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;#&nbsp;GPC&nbsp;&nbsp;&nbsp;=&nbsp;show&nbsp;each&nbsp;GET/POST/CONNECT&nbsp;request<br>
+&nbsp;&nbsp;debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;#&nbsp;CONN&nbsp;&nbsp;=&nbsp;show&nbsp;each&nbsp;connection&nbsp;status<br>
+&nbsp;&nbsp;debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4&nbsp;#&nbsp;IO&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;show&nbsp;I/O&nbsp;status<br>
+&nbsp;&nbsp;debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8&nbsp;#&nbsp;HDR&nbsp;&nbsp;&nbsp;=&nbsp;show&nbsp;header&nbsp;parsing<br>
+&nbsp;&nbsp;debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;16&nbsp;#&nbsp;LOG&nbsp;&nbsp;&nbsp;=&nbsp;log&nbsp;all&nbsp;data&nbsp;into&nbsp;the&nbsp;logfile<br>
+&nbsp;&nbsp;debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;32&nbsp;#&nbsp;FRC&nbsp;&nbsp;&nbsp;=&nbsp;debug&nbsp;force&nbsp;feature<br>
+&nbsp;&nbsp;debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;64&nbsp;#&nbsp;REF&nbsp;&nbsp;&nbsp;=&nbsp;debug&nbsp;regular&nbsp;expression&nbsp;filter&nbsp;<br>
+&nbsp;&nbsp;debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;128&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;debug&nbsp;fast&nbsp;redirects<br>
+&nbsp;&nbsp;debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;256&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;debug&nbsp;GIF&nbsp;de-animation<br>
+&nbsp;&nbsp;debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;512&nbsp;#&nbsp;CLF&nbsp;&nbsp;&nbsp;=&nbsp;Common&nbsp;Log&nbsp;Format<br>
+&nbsp;&nbsp;debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1024&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;debug&nbsp;kill&nbsp;pop-ups<br>
+&nbsp;&nbsp;debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4096&nbsp;#&nbsp;INFO&nbsp;&nbsp;=&nbsp;Startup&nbsp;banner&nbsp;and&nbsp;warnings.<br>
+&nbsp;&nbsp;debug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8192&nbsp;#&nbsp;ERROR&nbsp;=&nbsp;Non-fatal&nbsp;errors<br>
+&nbsp;&nbsp;&nbsp;&nbsp;</P
+>
+ </TT
+></P
+><P
+> It is <I
+CLASS="EMPHASIS"
+>highly recommended</I
+> that you enable ERROR
+ reporting (debug 8192), at least until v3.0 is released.</P
+><P
+> The reporting of FATAL errors (i.e. ones which crash 
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>) is always on and cannot be disabled.</P
+><P
+> If you want to use CLF (Common Log Format), you should set <SPAN
+CLASS="QUOTE"
+>"debug
+ 512"</SPAN
+> ONLY, do not enable anything else.</P
+><P
+> Multiple <SPAN
+CLASS="QUOTE"
+>"debug"</SPAN
+> directives, are OK - they're logical-OR'd
+ together. </P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>debug    15     # same as setting the first 4 listed above</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> Default:</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>debug   1     # URLs</I
+><br>
+&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>debug   4096  # Info</I
+><br>
+&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>debug   8192  # Errors - *we highly recommended enabling this*</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> normally uses
+ <SPAN
+CLASS="QUOTE"
+>"multi-threading"</SPAN
+>, a software technique that permits it to
+ handle many different requests simultaneously. In some cases you may wish to
+ disable this -- particularly if you're trying to debug a problem.  The
+ <SPAN
+CLASS="QUOTE"
+>"single-threaded"</SPAN
+> option forces
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> to handle requests sequentially.
+ Default: Multi-threaded mode.</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>#single-threaded</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> <SPAN
+CLASS="QUOTE"
+>"toggle"</SPAN
+> allows you to temporarily disable all
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy's</SPAN
+>  filtering. Just set <SPAN
+CLASS="QUOTE"
+>"toggle
+ 0"</SPAN
+>.</P
+><P
+> The Windows version of <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> puts an icon in
+ the system tray, which also allows you to change this option.  If you
+ right-click on that icon (or select the <SPAN
+CLASS="QUOTE"
+>"Options"</SPAN
+> menu), one
+ choice is <SPAN
+CLASS="QUOTE"
+>"Enable"</SPAN
+>. Clicking on enable toggles
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> on and off. This is useful if you want
+ to temporarily disable <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>, e.g., to access
+ a site that requires cookies which you would otherwise have blocked. This can also
+ be toggled via a web browser at the <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ internal address of <A
+HREF="http://p.p"
+TARGET="_top"
+>http://p.p</A
+> on 
+ any platform.</P
+><P
+> <SPAN
+CLASS="QUOTE"
+>"toggle 1"</SPAN
+> means <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> runs
+ normally, <SPAN
+CLASS="QUOTE"
+>"toggle 0"</SPAN
+> means that
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> becomes a non-anonymizing non-blocking
+ proxy. Default: 1 (on). </P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>toggle    1</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> For content filtering, i.e. the <SPAN
+CLASS="QUOTE"
+>"+filter"</SPAN
+> and
+ <SPAN
+CLASS="QUOTE"
+>"+deanimate-gif"</SPAN
+> 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.</P
+><P
+> The <SPAN
+CLASS="APPLICATION"
+>buffer-limit</SPAN
+> option lets you set the maximum
+ size in Kbytes that each buffer may use. When the documents buffer exceeds
+ this size, it is flushed to the client unfiltered and no further attempt to
+ filter the rest of it is made. Remember that there may multiple threads
+ running, which might require increasing the <SPAN
+CLASS="QUOTE"
+>"buffer-limit"</SPAN
+>
+ Kbytes <I
+CLASS="EMPHASIS"
+>each</I
+>, unless you have enabled 
+ <SPAN
+CLASS="QUOTE"
+>"single-threaded"</SPAN
+> above.</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>buffer-limit    4069</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> To enable the web-based <TT
+CLASS="FILENAME"
+>default.action</TT
+> file editor set
+ <SPAN
+CLASS="APPLICATION"
+>enable-edit-actions</SPAN
+> to 1, or 0 to disable.  Note
+ that you must have compiled <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> with
+ support for this feature, otherwise this option has no effect. This 
+ internal page can be reached at <A
+HREF="http://p.p"
+TARGET="_top"
+>http://p.p</A
+>.
+ </P
+><P
+> Security note: If this is enabled, anyone who can use the proxy
+ can edit the actions file, and their changes will affect all users.
+ For shared proxies, you probably want to disable this. Default: enabled.</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>enable-edit-actions    1</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> Allow <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> to be toggled on and off
+ remotely, using your web browser.  Set <SPAN
+CLASS="QUOTE"
+>"enable-remote-toggle"</SPAN
+>to
+ 1 to enable, and 0 to disable.  Note that you must have compiled 
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> with support for this feature,
+ otherwise this option has no effect.</P
+><P
+> Security note:  If this is enabled, anyone who can use the proxy can toggle
+ it on or off (see <A
+HREF="http://p.p"
+TARGET="_top"
+>http://p.p</A
+>), and
+ their changes will affect all users. For shared proxies, you probably want to
+ disable this. Default: enabled.</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>enable-remote-toggle    1</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN587"
+>5.3.3. Access Control List (ACL)</A
+></H3
+><P
+> Access controls are included at the request of some ISPs and systems
+ administrators, and are not usually needed by individual users. Please note
+ the warnings in the FAQ that this proxy is not intended to be a substitute
+ for a firewall or to encourage anyone to defer addressing basic security
+ weaknesses.</P
+><P
+> If no access settings are specified, the proxy talks to anyone that
+ connects. If any access settings file are specified, then the proxy
+ talks only to IP addresses permitted somewhere in this file and not
+ denied later in this file.</P
+><P
+> Summary -- if using an ACL:</P
+><P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>   Client must have permission to receive service.
+  </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+><P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>   LAST match in ACL wins.
+  </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+><P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>   Default behavior is to deny service.
+  </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+><P
+> The syntax for an entry in the Access Control List is:</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;ACTION&nbsp;&nbsp;&nbsp;&nbsp;SRC_ADDR[/SRC_MASKLEN]&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;DST_ADDR[/DST_MASKLEN]&nbsp;]<br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> Where the individual fields are:</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;<I
+CLASS="EMPHASIS"
+>ACTION</I
+>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<SPAN
+CLASS="QUOTE"
+>"permit-access"</SPAN
+>&nbsp;or&nbsp;<SPAN
+CLASS="QUOTE"
+>"deny-access"</SPAN
+><br>
+<br>
+&nbsp;<I
+CLASS="EMPHASIS"
+>SRC_ADDR</I
+>&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;client&nbsp;hostname&nbsp;or&nbsp;dotted&nbsp;IP&nbsp;address<br>
+&nbsp;<I
+CLASS="EMPHASIS"
+>SRC_MASKLEN</I
+>&nbsp;=&nbsp;number&nbsp;of&nbsp;bits&nbsp;in&nbsp;the&nbsp;subnet&nbsp;mask&nbsp;for&nbsp;the&nbsp;source<br>
+<br>
+&nbsp;<I
+CLASS="EMPHASIS"
+>DST_ADDR</I
+>&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;server&nbsp;or&nbsp;forwarder&nbsp;hostname&nbsp;or&nbsp;dotted&nbsp;IP&nbsp;address<br>
+&nbsp;<I
+CLASS="EMPHASIS"
+>DST_MASKLEN</I
+>&nbsp;=&nbsp;number&nbsp;of&nbsp;bits&nbsp;in&nbsp;the&nbsp;subnet&nbsp;mask&nbsp;for&nbsp;the&nbsp;target<br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> 
+ The field separator (FS) is whitespace (space or tab).</P
+><P
+> IMPORTANT NOTE: If <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is using a
+ forwarder (see below) or a gateway for a particular destination URL, the
+ <TT
+CLASS="LITERAL"
+>DST_ADDR</TT
+> that is examined is the address of the forwarder
+ or the gateway and <I
+CLASS="EMPHASIS"
+>NOT</I
+> 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 address of the
+ ultimate target (that's often what gateways are used for).</P
+><P
+> Here are a few examples to show how the ACL features work:</P
+><P
+> <SPAN
+CLASS="QUOTE"
+>"localhost"</SPAN
+> is OK -- no DST_ADDR implies that
+ <I
+CLASS="EMPHASIS"
+>ALL</I
+> destination addresses are OK:</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>permit-access  localhost</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> A silly example to illustrate permitting any host on the class-C subnet with
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> to go anywhere:</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>permit-access    www.privoxy.com/24</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> Except deny one particular IP address from using it at all:</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>deny-access      ident.privoxy.com</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> You can also specify an explicit network address and subnet mask.
+ Explicit addresses do not have to be resolved to be used.</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>permit-access    207.153.200.0/24</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> A subnet mask of 0 matches anything, so the next line permits everyone.</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>permit-access    0.0.0.0/0</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> Note, you <I
+CLASS="EMPHASIS"
+>cannot</I
+> say:</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>permit-access    .org</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> to allow all *.org domains. Every IP address listed must resolve fully.</P
+><P
+> An ISP may want to provide a <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> that is
+ accessible by <SPAN
+CLASS="QUOTE"
+>"the world"</SPAN
+> and yet restrict use of some of their
+ private content to hosts on its internal network (i.e. its own subscribers).
+ Say, for instance the ISP owns the Class-B IP address block 123.124.0.0 (a 16
+ bit netmask). This is how they could do it:</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;<I
+CLASS="EMPHASIS"
+>permit-access 0.0.0.0/0   0.0.0.0/0</I
+>&nbsp;&nbsp;&nbsp;#&nbsp;other&nbsp;clients&nbsp;can&nbsp;go&nbsp;anywhere&nbsp;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;with&nbsp;the&nbsp;following&nbsp;exceptions:<br>
+&nbsp;<br>
+&nbsp;<I
+CLASS="EMPHASIS"
+>deny-access</I
+>&nbsp;&nbsp;&nbsp;0.0.0.0/0&nbsp;&nbsp;&nbsp;123.124.0.0/16&nbsp;#&nbsp;block&nbsp;all&nbsp;external&nbsp;requests&nbsp;for<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;sites&nbsp;on&nbsp;the&nbsp;ISP's&nbsp;network<br>
+<br>
+&nbsp;<I
+CLASS="EMPHASIS"
+>permit 0.0.0.0/0   www.my_isp.com</I
+>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;except&nbsp;for&nbsp;the&nbsp;ISP's&nbsp;main&nbsp;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;web&nbsp;site<br>
+<br>
+&nbsp;<I
+CLASS="EMPHASIS"
+>permit 123.124.0.0/16 0.0.0.0/0</I
+>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;the&nbsp;ISP's&nbsp;clients&nbsp;can&nbsp;go&nbsp;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;anywhere<br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> Note that if some hostnames are listed with multiple IP addresses, 
+ the primary value returned by DNS (via gethostbyname()) is used. Default:
+ Anyone can access the proxy.</P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="FORWARDING"
+>5.3.4. Forwarding</A
+></H3
+><P
+> This feature allows chaining of HTTP requests via multiple proxies.
+ It can be used to better protect privacy and confidentiality when
+ accessing specific domains by routing requests to those domains
+ to a special purpose filtering proxy such as lpwa.com. Or to use 
+ a caching proxy to speed up browsing.</P
+><P
+> It can also be used in an environment with multiple networks to route
+ requests via multiple gateways allowing transparent access to multiple
+ networks without having to modify browser configurations.</P
+><P
+> Also specified here are SOCKS proxies. <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ SOCKS 4 and SOCKS 4A. The difference is that SOCKS 4A will resolve the target
+ hostname using DNS on the SOCKS server, not our local DNS client.</P
+><P
+> The syntax of each line is:</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;<I
+CLASS="EMPHASIS"
+>forward target_domain[:port] http_proxy_host[:port]</I
+><br>
+&nbsp;<I
+CLASS="EMPHASIS"
+>forward-socks4  target_domain[:port] socks_proxy_host[:port] http_proxy_host[:port]</I
+><br>
+&nbsp;<I
+CLASS="EMPHASIS"
+>forward-socks4a target_domain[:port] socks_proxy_host[:port] http_proxy_host[:port]</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> If http_proxy_host is <SPAN
+CLASS="QUOTE"
+>"."</SPAN
+>, then requests are not forwarded to a
+ HTTP proxy but are made directly to the web servers.</P
+><P
+> Lines are checked in sequence, and the last match wins.</P
+><P
+> There is an implicit line equivalent to the following, which specifies that
+ anything not finding a match on the list is to go out without forwarding
+ or gateway protocol, like so:</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>forward   .*   .       </I
+>#&nbsp;implicit<br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> In the following common configuration, everything goes to Lucent's LPWA,
+ except SSL on port 443 (which it doesn't handle):</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;<I
+CLASS="EMPHASIS"
+>forward   .*     lpwa.com:8000</I
+><br>
+&nbsp;<I
+CLASS="EMPHASIS"
+>forward   :443   .</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> 
+ Some users have reported difficulties related to LPWA's use of
+ <SPAN
+CLASS="QUOTE"
+>"."</SPAN
+> as the last element of the domain, and have said that this
+ can be fixed with this:</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>forward   lpwa.  lpwa.com:8000</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> (NOTE: the syntax for specifying target_domain has changed since the
+ previous paragraph was written -- it will not work now.  More information
+ is welcome.)</P
+><P
+> In this fictitious example, everything goes via an ISP's caching proxy,
+ except requests to that ISP:</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;<I
+CLASS="EMPHASIS"
+>forward    .*         caching.myisp.net:8000</I
+><br>
+&nbsp;<I
+CLASS="EMPHASIS"
+>forward    myisp.net  .</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> For the @home network, we're told the forwarding configuration is this:</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>forward    .*    proxy:8080</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> Also, we're told they insist on getting cookies and JavaScript, so you should 
+ allow cookies from home.com. We consider JavaScript a potential security risk.
+ Java need not be enabled.</P
+><P
+> In this example direct connections are made to all <SPAN
+CLASS="QUOTE"
+>"internal"</SPAN
+>
+ domains, but everything else goes through Lucent's LPWA by way of the
+ company's SOCKS gateway to the Internet.</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;<I
+CLASS="EMPHASIS"
+>forward-socks4  .*  lpwa.com:8000  firewall.my_company.com:1080</I
+><br>
+&nbsp;<I
+CLASS="EMPHASIS"
+>forward    my_company.com  .</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> This is how you could set up a site that always uses SOCKS but no forwarders:</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>forward-socks4a   .*  .  firewall.my_company.com:1080</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> An advanced example for network administrators:</P
+><P
+> If you have links to multiple ISPs that provide various special content to
+ their subscribers, you can configure forwarding to pass requests to the
+ specific host that's connected to that ISP so that everybody can see all
+ of the content on all of the ISPs.</P
+><P
+> This is a bit tricky, but here's an example:</P
+><P
+> host-a has a PPP connection to isp-a.com. And host-b has a PPP connection to
+ isp-b.com. host-a can run a <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> proxy with
+ forwarding like this: </P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;<I
+CLASS="EMPHASIS"
+>forward    .*         .</I
+><br>
+&nbsp;<I
+CLASS="EMPHASIS"
+>forward    isp-b.com  host-b:8118</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> host-b can run a <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> proxy with forwarding
+ like this: </P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;<I
+CLASS="EMPHASIS"
+>forward    .*          .</I
+><br>
+&nbsp;<I
+CLASS="EMPHASIS"
+>forward    isp-a.com   host-a:8118</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> Now, <I
+CLASS="EMPHASIS"
+>anyone</I
+> on the Internet (including users on host-a
+ and host-b) can set their browser's proxy to <I
+CLASS="EMPHASIS"
+>either</I
+>
+ host-a or host-b and be able to browse the content on isp-a or isp-b.</P
+><P
+> Here's another practical example, for University of Kent at
+ Canterbury students with a network connection in their room, who
+ need to use the University's Squid web cache.</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;<I
+CLASS="EMPHASIS"
+>forward  *. ssbcache.ukc.ac.uk:3128</I
+>&nbsp;&nbsp;#&nbsp;Use&nbsp;the&nbsp;proxy,&nbsp;except&nbsp;for:<br>
+&nbsp;<I
+CLASS="EMPHASIS"
+>forward  .ukc.ac.uk            .    </I
+>&nbsp;#&nbsp;Anything&nbsp;on&nbsp;the&nbsp;same&nbsp;domain&nbsp;as&nbsp;us<br>
+&nbsp;<I
+CLASS="EMPHASIS"
+>forward  *                     .    </I
+>&nbsp;#&nbsp;Host&nbsp;with&nbsp;no&nbsp;domain&nbsp;specified<br>
+&nbsp;<I
+CLASS="EMPHASIS"
+>forward  129.12.*.*            .    </I
+>&nbsp;#&nbsp;A&nbsp;dotted&nbsp;IP&nbsp;on&nbsp;our&nbsp;/16&nbsp;network.<br>
+&nbsp;<I
+CLASS="EMPHASIS"
+>forward  127.*.*.*             .    </I
+>&nbsp;#&nbsp;Loopback&nbsp;address<br>
+&nbsp;<I
+CLASS="EMPHASIS"
+>forward  localhost.localdomain .    </I
+>&nbsp;#&nbsp;Loopback&nbsp;address<br>
+&nbsp;<I
+CLASS="EMPHASIS"
+>forward  www.ukc.mirror.ac.uk  .    </I
+>&nbsp;#&nbsp;Specific&nbsp;host<br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> If you intend to chain <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> and 
+ <SPAN
+CLASS="APPLICATION"
+>squid</SPAN
+> locally, then chain as 
+ <TT
+CLASS="LITERAL"
+>browser -&#62; squid -&#62; privoxy</TT
+> is the recommended way. </P
+><P
+>Your squid configuration could then look like this (assuming that the IP
+address of the box is <TT
+CLASS="LITERAL"
+>192.168.0.1</TT
+> ):</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;#&nbsp;Define&nbsp;Privoxy&nbsp;as&nbsp;parent&nbsp;cache&nbsp;<br>
+&nbsp;&nbsp;<br>
+&nbsp;&nbsp;cache_peer&nbsp;192.168.0.1&nbsp;parent&nbsp;8118&nbsp;0&nbsp;no-query<br>
+<br>
+&nbsp;&nbsp;#&nbsp;don't&nbsp;listen&nbsp;to&nbsp;the&nbsp;whole&nbsp;world<br>
+&nbsp;&nbsp;http_port&nbsp;192.168.0.1:3128<br>
+<br>
+&nbsp;&nbsp;#&nbsp;define&nbsp;the&nbsp;local&nbsp;lan<br>
+&nbsp;&nbsp;acl&nbsp;mylocallan&nbsp;src&nbsp;192.168.0.1-192.168.0.5/255.255.255.255<br>
+<br>
+&nbsp;&nbsp;#&nbsp;grant&nbsp;access&nbsp;for&nbsp;http&nbsp;to&nbsp;local&nbsp;lan<br>
+&nbsp;&nbsp;http_access&nbsp;allow&nbsp;mylocallan<br>
+&nbsp;&nbsp;<br>
+&nbsp;&nbsp;#&nbsp;Define&nbsp;ACL&nbsp;for&nbsp;protocol&nbsp;FTP&nbsp;<br>
+&nbsp;&nbsp;acl&nbsp;FTP&nbsp;proto&nbsp;FTP&nbsp;<br>
+<br>
+&nbsp;&nbsp;#&nbsp;Do&nbsp;not&nbsp;forward&nbsp;ACL&nbsp;FTP&nbsp;to&nbsp;privoxy<br>
+&nbsp;&nbsp;always_direct&nbsp;allow&nbsp;FTP&nbsp;<br>
+<br>
+&nbsp;&nbsp;#&nbsp;Do&nbsp;not&nbsp;forward&nbsp;ACL&nbsp;CONNECT&nbsp;(https)&nbsp;to&nbsp;privoxy<br>
+&nbsp;&nbsp;always_direct&nbsp;allow&nbsp;CONNECT&nbsp;<br>
+<br>
+&nbsp;&nbsp;#&nbsp;Forward&nbsp;the&nbsp;rest&nbsp;to&nbsp;privoxy<br>
+&nbsp;&nbsp;never_direct&nbsp;allow&nbsp;all&nbsp;<br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN785"
+>5.3.5. Windows GUI Options</A
+></H3
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> has a number of options specific to the
+ Windows GUI interface:</P
+><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
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>activity-animation   1</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><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
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>log-messages       1</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><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
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>log-buffer-size      1</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> <SPAN
+CLASS="APPLICATION"
+>log-max-lines</SPAN
+> is the maximum number of lines held
+ in the log buffer. See above.</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>log-max-lines      200</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><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
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>log-highlight-messages   1</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> The font used in the console window:</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>log-font-name        Comic Sans MS</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> Font size used in the console window:</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>log-font-size        8</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><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
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>show-on-task-bar     0</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><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
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>close-button-minimizes  1</I
+><br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><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
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;#hide-console<br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+></DIV
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="ACTIONSFILE"
+>5.4. The Actions File</A
+></H2
+><P
+> The <SPAN
+CLASS="QUOTE"
+>"default.action"</SPAN
+> file (formerly
+ <TT
+CLASS="FILENAME"
+>actionsfile</TT
+> or <TT
+CLASS="FILENAME"
+>ijb.action</TT
+>) is used
+ to define what actions <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> takes, and thus
+ determines how ad images, cookies and various other aspects of HTTP content
+ and transactions are handled. These can be accepted or rejected for all
+ sites, or just those sites you choose. See below for a complete list of 
+ actions. </P
+><P
+> 
+ Anything you want can blocked, including ads, banners, or just some obnoxious
+ URL that you would rather not see. Cookies can be accepted or rejected, or
+ accepted only during the current browser session (i.e. not written to disk).
+ Changes to <TT
+CLASS="FILENAME"
+>default.action</TT
+> should be immediately visible
+ to <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> without the need to restart.</P
+><P
+> Note that some sites may misbehave, or possibly not work at all with some 
+ actions. This may require some tinkering with the rules to get the most 
+ mileage of <SPAN
+CLASS="APPLICATION"
+>Privoxy's</SPAN
+> features, and still be 
+ able to see and enjoy just what you want to. There is no general rule of
+ thumb on these things. There just are too many variables, and sites are 
+ always changing.&#13;</P
+><P
+> The easiest way to edit the <SPAN
+CLASS="QUOTE"
+>"actions"</SPAN
+> file is with a browser by
+ loading <A
+HREF="http://p.p/"
+TARGET="_top"
+>http://p.p/</A
+>, and then select
+ <SPAN
+CLASS="QUOTE"
+>"Edit Actions List"</SPAN
+>. A text editor can also be used.</P
+><P
+> To determine which actions apply to a request, the URL of the request is
+ compared to all patterns in this file. Every time it matches, the list of
+ applicable actions for the URL is incrementally updated. You can trace
+ this process by visiting <A
+HREF="http://p.p/show-url-info"
+TARGET="_top"
+>http://p.p/show-url-info</A
+>. </P
+><P
+> There are four types of lines in this file: comments (begin with a 
+ <SPAN
+CLASS="QUOTE"
+>"#"</SPAN
+> character), actions, aliases and patterns, all of which are
+ explained below, as well as the configuration file syntax that 
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> understands.&#13;</P
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN887"
+>5.4.1. URL Domain and Path Syntax</A
+></H3
+><P
+> Generally, a pattern has the form &#60;domain&#62;/&#60;path&#62;, where both the
+ &#60;domain&#62; and &#60;path&#62; part are optional. If you only specify a
+ domain part, the <SPAN
+CLASS="QUOTE"
+>"/"</SPAN
+> can be left out:</P
+><P
+> <I
+CLASS="EMPHASIS"
+>www.example.com</I
+> - is a domain only pattern and will match any request to
+ <SPAN
+CLASS="QUOTE"
+>"www.example.com"</SPAN
+>.</P
+><P
+> <I
+CLASS="EMPHASIS"
+>www.example.com/</I
+> - means exactly the same.</P
+><P
+> <I
+CLASS="EMPHASIS"
+>www.example.com/index.html</I
+> - matches only the single
+ document <SPAN
+CLASS="QUOTE"
+>"/index.html"</SPAN
+> on <SPAN
+CLASS="QUOTE"
+>"www.example.com"</SPAN
+>.</P
+><P
+> <I
+CLASS="EMPHASIS"
+>/index.html</I
+> - matches the document <SPAN
+CLASS="QUOTE"
+>"/index.html"</SPAN
+>, 
+ regardless of the domain. So would match any page named <SPAN
+CLASS="QUOTE"
+>"index.html"</SPAN
+>
+ on any site.</P
+><P
+> <I
+CLASS="EMPHASIS"
+>index.html</I
+> - matches nothing, since it would be
+ interpreted as a domain name and there is no top-level domain called
+ <SPAN
+CLASS="QUOTE"
+>".html"</SPAN
+>.</P
+><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
+><P
+> <I
+CLASS="EMPHASIS"
+>.example.com</I
+> - matches any domain or sub-domain that
+ <I
+CLASS="EMPHASIS"
+>ENDS</I
+> in <SPAN
+CLASS="QUOTE"
+>".example.com"</SPAN
+>.</P
+><P
+> <I
+CLASS="EMPHASIS"
+>www.</I
+> - matches any domain that <I
+CLASS="EMPHASIS"
+>STARTS</I
+> with
+ <SPAN
+CLASS="QUOTE"
+>"www"</SPAN
+>.</P
+><P
+> Additionally, there are wild-cards that you can use in the domain names
+ themselves. They work pretty similar to shell wild-cards: <SPAN
+CLASS="QUOTE"
+>"*"</SPAN
+>
+ stands for zero or more arbitrary characters, <SPAN
+CLASS="QUOTE"
+>"?"</SPAN
+> stands for
+ any single character. And you can define character classes in square
+ brackets and they can be freely mixed:</P
+><P
+> <I
+CLASS="EMPHASIS"
+>ad*.example.com</I
+> - 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
+><P
+> <I
+CLASS="EMPHASIS"
+>*ad*.example.com</I
+> - matches all of the above, and then some.</P
+><P
+> <I
+CLASS="EMPHASIS"
+>.?pix.com</I
+> - matches <SPAN
+CLASS="QUOTE"
+>"www.ipix.com"</SPAN
+>,
+ <SPAN
+CLASS="QUOTE"
+>"pictures.epix.com"</SPAN
+>, <SPAN
+CLASS="QUOTE"
+>"a.b.c.d.e.upix.com"</SPAN
+>, etc. </P
+><P
+> <I
+CLASS="EMPHASIS"
+>www[1-9a-ez].example.com</I
+> - matches <SPAN
+CLASS="QUOTE"
+>"www1.example.com"</SPAN
+>, 
+ <SPAN
+CLASS="QUOTE"
+>"www4.example.com"</SPAN
+>, <SPAN
+CLASS="QUOTE"
+>"wwwd.example.com"</SPAN
+>, 
+ <SPAN
+CLASS="QUOTE"
+>"wwwz.example.com"</SPAN
+>, etc., but <I
+CLASS="EMPHASIS"
+>not</I
+> 
+ <SPAN
+CLASS="QUOTE"
+>"wwww.example.com"</SPAN
+>.</P
+><P
+> If <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> was compiled with
+ <SPAN
+CLASS="QUOTE"
+>"pcre"</SPAN
+> support (the default), Perl compatible regular expressions
+ can be used. These are more flexible and powerful than other types 
+ of <SPAN
+CLASS="QUOTE"
+>"regular expressions"</SPAN
+>. See the <TT
+CLASS="FILENAME"
+>pcre/docs/</TT
+> directory or <SPAN
+CLASS="QUOTE"
+>"man
+ perlre"</SPAN
+> (also available on  <A
+HREF="http://www.perldoc.com/perl5.6/pod/perlre.html"
+TARGET="_top"
+>http://www.perldoc.com/perl5.6/pod/perlre.html</A
+>)
+ for details. A brief discussion of regular expressions is in the 
+ <A
+HREF="appendix.html#REGEX"
+>Appendix</A
+>. For instance:</P
+><P
+> <I
+CLASS="EMPHASIS"
+>/.*/advert[0-9]+\.jpe?g</I
+>  - would match a URL from any
+ domain, with any path that includes <SPAN
+CLASS="QUOTE"
+>"advert"</SPAN
+> followed
+ immediately by one or more digits, then a <SPAN
+CLASS="QUOTE"
+>"."</SPAN
+> and ending in
+ either <SPAN
+CLASS="QUOTE"
+>"jpeg"</SPAN
+> or <SPAN
+CLASS="QUOTE"
+>"jpg"</SPAN
+>. So we match
+ <SPAN
+CLASS="QUOTE"
+>"example.com/ads/advert2.jpg"</SPAN
+>, and
+ <SPAN
+CLASS="QUOTE"
+>"www.example.com/ads/banners/advert39.jpeg"</SPAN
+>, but not
+ <SPAN
+CLASS="QUOTE"
+>"www.example.com/ads/banners/advert39.gif"</SPAN
+> (no gifs in the
+ example pattern).</P
+><P
+> Please note that matching in the path is case
+ <I
+CLASS="EMPHASIS"
+>INSENSITIVE</I
+> by default, but you can switch to case
+ sensitive at any point in the pattern by using the 
+ <SPAN
+CLASS="QUOTE"
+>"(?-i)"</SPAN
+> switch:</P
+><P
+> <I
+CLASS="EMPHASIS"
+>www.example.com/(?-i)PaTtErN.*</I
+> - will match only
+ documents whose path starts with <SPAN
+CLASS="QUOTE"
+>"PaTtErN"</SPAN
+> in
+ <I
+CLASS="EMPHASIS"
+>exactly</I
+> this capitalization.</P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN963"
+>5.4.2. Actions</A
+></H3
+><P
+> Actions are enabled if preceded with a <SPAN
+CLASS="QUOTE"
+>"+"</SPAN
+>, and disabled if 
+ preceded with a <SPAN
+CLASS="QUOTE"
+>"-"</SPAN
+>. Actions are invoked by enclosing the 
+ action name in curly braces (e.g. {+some_action}), followed by a list of 
+ URLs to which the action applies. There are three classes of actions:</P
+><P
+> <P
+></P
+><UL
+><LI
+><P
+>  
+   Boolean (e.g. <SPAN
+CLASS="QUOTE"
+>"+/-block"</SPAN
+>):
+  </P
+><P
+>   <TT
+CLASS="LITERAL"
+>    <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>{+name}</I
+>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;enable&nbsp;this&nbsp;action<br>
+&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>{-name}</I
+>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;disable&nbsp;this&nbsp;action<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+> 
+   </TT
+>
+  </P
+></LI
+><LI
+><P
+>  
+   parameterized (e.g. <SPAN
+CLASS="QUOTE"
+>"+/-hide-user-agent"</SPAN
+>):
+  </P
+><P
+>   <TT
+CLASS="LITERAL"
+>    <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>{+name{param}}</I
+>&nbsp;&nbsp;#&nbsp;enable&nbsp;action&nbsp;and&nbsp;set&nbsp;parameter&nbsp;to&nbsp;<SPAN
+CLASS="QUOTE"
+>"param"</SPAN
+><br>
+&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>{-name}</I
+>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;disable&nbsp;action<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+> 
+   </TT
+>
+  </P
+></LI
+><LI
+><P
+>  
+   Multi-value (e.g. <SPAN
+CLASS="QUOTE"
+>"{+/-add-header{Name: value}}"</SPAN
+>, <SPAN
+CLASS="QUOTE"
+>"{+/-wafer{name=value}}"</SPAN
+>):
+  </P
+><P
+>   <TT
+CLASS="LITERAL"
+>    <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>{+name{param}}</I
+>&nbsp;&nbsp;&nbsp;#&nbsp;enable&nbsp;action&nbsp;and&nbsp;add&nbsp;parameter&nbsp;<SPAN
+CLASS="QUOTE"
+>"param"</SPAN
+><br>
+&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>{-name{param}}</I
+>&nbsp;&nbsp;&nbsp;#&nbsp;remove&nbsp;the&nbsp;parameter&nbsp;<SPAN
+CLASS="QUOTE"
+>"param"</SPAN
+><br>
+&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>{-name}</I
+>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;disable&nbsp;this&nbsp;action&nbsp;totally<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+> 
+   </TT
+>
+  </P
+></LI
+></UL
+></P
+><P
+> If nothing is specified in this 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-anonymizing proxy. You must specifically
+ enable the privacy and blocking features you need (although the 
+ provided default <TT
+CLASS="FILENAME"
+>default.action</TT
+> file will 
+ give a good starting point).</P
+><P
+> Later defined actions always over-ride earlier ones.  So exceptions 
+ to any rules you make, should come in the latter part of the file. For
+ multi-valued actions, the actions are applied in the order they are
+ specified.</P
+><P
+> The list of valid <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> <SPAN
+CLASS="QUOTE"
+>"actions"</SPAN
+> are:</P
+><P
+> <P
+></P
+><UL
+><LI
+><P
+>  
+   Add the specified HTTP header, which is not checked for validity.
+   You may specify this many times to specify many different headers:
+  </P
+><P
+>   <TT
+CLASS="LITERAL"
+>    <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+add-header{Name: value}</I
+><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+> 
+   </TT
+>
+  </P
+></LI
+><LI
+><P
+>  
+   Block this URL totally. In a default installation, a <SPAN
+CLASS="QUOTE"
+>"blocked"</SPAN
+>
+   URL will result in bright red banner that says <SPAN
+CLASS="QUOTE"
+>"BLOCKED"</SPAN
+>, 
+   with a reason why it is being blocked, and an option to see it anyway.
+   The page displayed for this is the <SPAN
+CLASS="QUOTE"
+>"blocked"</SPAN
+> template 
+   file.
+  </P
+><P
+>   <TT
+CLASS="LITERAL"
+>    <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+block</I
+><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+> 
+   </TT
+>
+  </P
+></LI
+><LI
+><P
+>  
+   De-animate all animated GIF images, i.e. reduce them to their last frame.
+   This will also shrink the images considerably (in bytes, not pixels!). If
+   the option <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
+>   <TT
+CLASS="LITERAL"
+>    <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+deanimate-gifs{last}</I
+><br>
+&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+deanimate-gifs{first}</I
+><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+> 
+   </TT
+>
+  </P
+></LI
+><LI
+><P
+>   <SPAN
+CLASS="QUOTE"
+>"+downgrade"</SPAN
+> will downgrade HTTP/1.1 client requests to
+   HTTP/1.0 and downgrade the responses as well. Use this action for servers
+   that use HTTP/1.1 protocol features that
+   <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> doesn't handle well yet. HTTP/1.1 
+   is only partially implemented. Default is not to downgrade requests.
+  </P
+><P
+>   <TT
+CLASS="LITERAL"
+>    <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+downgrade</I
+><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+> 
+   </TT
+>
+  </P
+></LI
+><LI
+><P
+>  
+   Many sites, like yahoo.com, don't just link to other sites. Instead, they
+   will link to some script on their own server, giving the destination as a
+   parameter, which will then redirect you to the final target. URLs resulting
+   from this scheme typically look like:
+   <I
+CLASS="EMPHASIS"
+>http://some.place/some_script?http://some.where-else</I
+>.
+  </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
+   ask the server for one redirect after the other. Plus, it feeds the
+   advertisers.
+  </P
+><P
+>   The <SPAN
+CLASS="QUOTE"
+>"+fast-redirects"</SPAN
+> option enables interception of these
+   types of requests by <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>, who will cut off
+   all but the last valid URL in the request and send a local redirect back to
+   your browser without contacting the intermediate site(s).
+  </P
+><P
+>   <TT
+CLASS="LITERAL"
+>    <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+fast-redirects</I
+><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+> 
+   </TT
+>
+  </P
+></LI
+><LI
+><P
+>  
+   Apply the filters in the <TT
+CLASS="LITERAL"
+>section_header</TT
+> 
+   section of the <TT
+CLASS="FILENAME"
+>default.filter</TT
+> file to the site(s).
+   <TT
+CLASS="FILENAME"
+>default.filter</TT
+> sections are grouped according to like
+   functionality. <SPAN
+CLASS="APPLICATION"
+>Filters</SPAN
+> can be used to 
+   re-write any of the raw page content. This is a potentially a 
+   very powerful feature!
+  </P
+><P
+>   <TT
+CLASS="LITERAL"
+>    <P
+CLASS="LITERALLAYOUT"
+>&nbsp;<I
+CLASS="EMPHASIS"
+>+filter{section_header}</I
+><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+> 
+   </TT
+>
+  </P
+><P
+>   
+   Filter sections that are pre-defined in the supplied
+   <TT
+CLASS="FILENAME"
+>default.filter</TT
+> include:
+  </P
+><A
+NAME="AEN1073"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>     <I
+CLASS="EMPHASIS"
+>html-annoyances</I
+>:  Get rid of particularly annoying HTML abuse.
+   </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+><P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>    <I
+CLASS="EMPHASIS"
+>js-annoyances</I
+>:    Get rid of particularly annoying JavaScript abuse
+   </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+><P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>    <I
+CLASS="EMPHASIS"
+>no-poups</I
+>:         Kill all popups in JS and HTML
+   </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+><P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>    <I
+CLASS="EMPHASIS"
+>frameset-borders</I
+>: Give frames a border
+   </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+><P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>    <I
+CLASS="EMPHASIS"
+>webbugs</I
+>:          Squish WebBugs (1x1 invisible GIFs used for user tracking)
+   </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+><P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>    <I
+CLASS="EMPHASIS"
+>no-refresh</I
+>:       Automatic refresh sucks on auto-dialup lines
+   </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+><P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>    <I
+CLASS="EMPHASIS"
+>fun</I
+>:              Text replacements  for subversive browsing fun!
+   </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+><P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>    <I
+CLASS="EMPHASIS"
+>nimda</I
+>:            Remove (virus) Nimda code.
+   </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+><P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>     <I
+CLASS="EMPHASIS"
+>banners-by-size</I
+>:  Kill banners by size
+   </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+><P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>    <I
+CLASS="EMPHASIS"
+>crude-parental</I
+>:   Kill all web pages that contain the words "sex" or "warez"
+   </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></BLOCKQUOTE
+></LI
+><LI
+><P
+>  
+   Block any existing X-Forwarded-for header, and do not add a new one:
+  </P
+><P
+>   <TT
+CLASS="LITERAL"
+>    <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+hide-forwarded</I
+><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+> 
+   </TT
+>
+  </P
+></LI
+><LI
+><P
+>  
+   If the browser sends a <SPAN
+CLASS="QUOTE"
+>"From:"</SPAN
+> header containing your e-mail
+   address, this either completely removes the header (<SPAN
+CLASS="QUOTE"
+>"block"</SPAN
+>), or
+   changes it to the specified e-mail address.
+  </P
+><P
+>   <TT
+CLASS="LITERAL"
+>    <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+hide-from{block}</I
+><br>
+&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+hide-from{spam@sittingduck.xqq}</I
+><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+> 
+   </TT
+>
+  </P
+></LI
+><LI
+><P
+>  
+   Don't send the <SPAN
+CLASS="QUOTE"
+>"Referer:"</SPAN
+> (sic) header to the web site.  You
+   can block it, forge a URL to the same server as the request (which is
+   preferred because some sites will not send images otherwise) or set it to a
+   constant, user defined string of your choice.
+  </P
+><P
+>   <TT
+CLASS="LITERAL"
+>    <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+hide-referer{block}</I
+><br>
+&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+hide-referer{forge}</I
+><br>
+&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+hide-referer{http://nowhere.com}</I
+><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+> 
+   </TT
+>
+  </P
+></LI
+><LI
+><P
+>  
+   Alternative spelling of <SPAN
+CLASS="QUOTE"
+>"+hide-referer"</SPAN
+>.  It has the same
+   parameters, and can be freely mixed with, <SPAN
+CLASS="QUOTE"
+>"+hide-referer"</SPAN
+>.
+   (<SPAN
+CLASS="QUOTE"
+>"referrer"</SPAN
+> is the correct English spelling, however the HTTP
+   specification has a bug - it requires it to be spelled <SPAN
+CLASS="QUOTE"
+>"referer"</SPAN
+>.) 
+  </P
+><P
+>   <TT
+CLASS="LITERAL"
+>    <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+hide-referrer{...}</I
+><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+> 
+   </TT
+>
+  </P
+></LI
+><LI
+><P
+>  
+   Change the <SPAN
+CLASS="QUOTE"
+>"User-Agent:"</SPAN
+> header so web servers can't tell your
+   browser type.  Warning! This breaks many web sites.  Specify the
+   user-agent value you want. Example, pretend to be using Netscape on
+   Linux:
+  </P
+><P
+>   <TT
+CLASS="LITERAL"
+>    <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+hide-user-agent{Mozilla (X11; I; Linux 2.0.32 i586)}</I
+><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+> 
+   </TT
+>
+  </P
+></LI
+><LI
+><P
+>  
+   Treat this URL as an image.  This only matters if it's also <SPAN
+CLASS="QUOTE"
+>"+block"</SPAN
+>ed,
+   in which case a <SPAN
+CLASS="QUOTE"
+>"blocked"</SPAN
+> image can be sent rather than a HTML page.
+   See <SPAN
+CLASS="QUOTE"
+>"+image-blocker{}"</SPAN
+> below for the control over what is actually sent.
+   If you want <I
+CLASS="EMPHASIS"
+>invisible</I
+> ads, they should be defined as 
+   <I
+CLASS="EMPHASIS"
+>images</I
+> and <I
+CLASS="EMPHASIS"
+>blocked</I
+>. And also, 
+   <SPAN
+CLASS="QUOTE"
+>"image-blocker"</SPAN
+>  should be set to <SPAN
+CLASS="QUOTE"
+>"blank"</SPAN
+>. Note you 
+   cannot treat HTML pages as images in most cases. For instance, frames 
+   require an HTML page to display. So a frame that is an ad, cannot be 
+   treated as an image. Forcing an <SPAN
+CLASS="QUOTE"
+>"image"</SPAN
+> in this 
+   situation just will not work.
+  </P
+><P
+>   <TT
+CLASS="LITERAL"
+>    <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+image</I
+><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+> 
+   </TT
+>
+  </P
+></LI
+><LI
+><P
+> Decides what to do with URLs that end up tagged with <SPAN
+CLASS="QUOTE"
+>"{+block
+  +image}"</SPAN
+>, e.g an advertizement. There are five options.
+  <SPAN
+CLASS="QUOTE"
+>"-image-blocker"</SPAN
+> will send a HTML <SPAN
+CLASS="QUOTE"
+>"blocked"</SPAN
+> page,
+  usually resulting in a <SPAN
+CLASS="QUOTE"
+>"broken image"</SPAN
+> icon.
+<SPAN
+CLASS="QUOTE"
+>"+image-blocker{blank}"</SPAN
+> will send a 1x1 transparent GIF
+image. And finally, <SPAN
+CLASS="QUOTE"
+>"+image-blocker{http://xyz.com}"</SPAN
+> will send a
+HTTP temporary redirect to the specified image. This has the advantage of the
+icon being being cached by the browser, which will speed up the display.
+<SPAN
+CLASS="QUOTE"
+>"+image-blocker{pattern}"</SPAN
+> will send a checkboard type pattern
+  </P
+><P
+>   <TT
+CLASS="LITERAL"
+>    <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+image-blocker{blank}</I
+><br>
+&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+image-blocker{pattern}</I
+><br>
+&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+image-blocker{http://p.p/send-banner}</I
+><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+> 
+   </TT
+>
+  </P
+></LI
+><LI
+><P
+> 
+   By default (i.e. in the absence of a <SPAN
+CLASS="QUOTE"
+>"+limit-connect"</SPAN
+>
+   action), <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> will only allow CONNECT
+   requests to port 443, which is the standard port for https as a 
+   precaution.
+  </P
+><P
+>   The CONNECT methods exists in HTTP to allow access to secure websites
+   (https:// URLs) through proxies. It works very simply: the proxy
+   connects to the server on the specified port, and then short-circuits
+   its connections to the client <I
+CLASS="EMPHASIS"
+>and</I
+> to the remote proxy.
+   This can be a big security hole, since CONNECT-enabled proxies can
+   be abused as TCP relays very easily.
+  </P
+><P
+> 
+   If you want to allow CONNECT for more ports than this, or want to forbid
+   CONNECT altogether, you can specify a comma separated list of ports and
+   port ranges (the latter using dashes, with the minimum defaulting to 0 and
+   max to 65K):
+  </P
+><P
+>   <TT
+CLASS="LITERAL"
+>    <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+limit-connect{443}                 # This is the default and need no be specified.</I
+><br>
+&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+limit-connect{80,443}              # Ports 80 and 443 are OK.</I
+><br>
+&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+limit-connect{-3, 7, 20-100, 500-} # Port less than 3, 7, 20 to 100</I
+><br>
+&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>                                    #and above 500 are OK.</I
+><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+> 
+   </TT
+>
+  </P
+></LI
+><LI
+><P
+>   <SPAN
+CLASS="QUOTE"
+>"+no-compression"</SPAN
+> prevents the website from compressing the
+   data. Some websites do this, which can be a problem for
+   <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>, since <SPAN
+CLASS="QUOTE"
+>"+filter"</SPAN
+>,
+   <SPAN
+CLASS="QUOTE"
+>"+no-popup"</SPAN
+> and <SPAN
+CLASS="QUOTE"
+>"+gif-deanimate"</SPAN
+> will not work on
+   compressed data. This will slow down connections to those websites,
+   though. Default is <SPAN
+CLASS="QUOTE"
+>"no-compression"</SPAN
+> is turned on.
+  </P
+><P
+>   <TT
+CLASS="LITERAL"
+>    <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+nocompression</I
+><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+> 
+   </TT
+>
+  </P
+></LI
+><LI
+><P
+>  
+   If the website sets cookies, <SPAN
+CLASS="QUOTE"
+>"no-cookies-keep"</SPAN
+> will make sure
+   they are erased when you exit and restart your web browser. This makes
+   profiling cookies useless, but won't break sites which require cookies so
+   that you can log in for transactions. Default: on.
+  </P
+><P
+>   <TT
+CLASS="LITERAL"
+>    <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+no-cookies-keep</I
+><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+> 
+   </TT
+>
+  </P
+></LI
+><LI
+><P
+>  
+   Prevent the website from reading cookies:
+  </P
+><P
+>   <TT
+CLASS="LITERAL"
+>    <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+no-cookies-read</I
+><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+> 
+   </TT
+>
+  </P
+></LI
+><LI
+><P
+>  
+   Prevent the website from setting cookies:
+  </P
+><P
+>   <TT
+CLASS="LITERAL"
+>    <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+no-cookies-set</I
+><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+> 
+   </TT
+>
+  </P
+></LI
+><LI
+><P
+>  
+   Filter the website through a built-in filter to disable those obnoxious 
+   JavaScript pop-up windows via window.open(), etc. The two alternative
+   spellings are equivalent.
+  </P
+><P
+>   <TT
+CLASS="LITERAL"
+>    <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+no-popup</I
+><br>
+&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+no-popups</I
+><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+> 
+   </TT
+>
+  </P
+></LI
+><LI
+><P
+>  
+   This action only applies if you are using a <TT
+CLASS="FILENAME"
+>jarfile</TT
+>
+   for saving cookies. It sends a cookie to every site stating that you do not
+   accept any copyright on cookies sent to you, and asking them not to track
+   you.  Of course, this is a (relatively) unique header they could use to
+   track you.
+  </P
+><P
+>   <TT
+CLASS="LITERAL"
+>    <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+vanilla-wafer</I
+><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+> 
+   </TT
+>
+  </P
+></LI
+><LI
+><P
+>  
+   This allows you to add an arbitrary cookie. It can be specified multiple
+   times in order to add as many cookies as you like.
+  </P
+><P
+>   <TT
+CLASS="LITERAL"
+>    <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;<I
+CLASS="EMPHASIS"
+>+wafer{name=value}</I
+><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
+> 
+   </TT
+>
+  </P
+></LI
+></UL
+></P
+><P
+> The meaning of any of the above is reversed by preceding the action with a 
+ <SPAN
+CLASS="QUOTE"
+>"-"</SPAN
+>, in place of the <SPAN
+CLASS="QUOTE"
+>"+"</SPAN
+>.</P
+><P
+> Some examples:</P
+><P
+> Turn off cookies by default, then allow a few through for specified sites:</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;#&nbsp;Turn&nbsp;off&nbsp;all&nbsp;persistent&nbsp;cookies<br>
+&nbsp;{&nbsp;+no-cookies-read&nbsp;}<br>
+&nbsp;{&nbsp;+no-cookies-set&nbsp;}<br>
+&nbsp;#&nbsp;Allow&nbsp;cookies&nbsp;for&nbsp;this&nbsp;browser&nbsp;session&nbsp;ONLY<br>
+&nbsp;{&nbsp;+no-cookies-keep&nbsp;}<br>
+<br>
+&nbsp;#&nbsp;Exceptions&nbsp;to&nbsp;the&nbsp;above,&nbsp;sites&nbsp;that&nbsp;benefit&nbsp;from&nbsp;persistent&nbsp;cookies<br>
+&nbsp;{&nbsp;-no-cookies-read&nbsp;}<br>
+&nbsp;{&nbsp;-no-cookies-set&nbsp;}<br>
+&nbsp;{&nbsp;-no-cookies-keep&nbsp;}<br>
+&nbsp;.javasoft.com<br>
+&nbsp;.sun.com<br>
+&nbsp;.yahoo.com<br>
+&nbsp;.msdn.microsoft.com<br>
+&nbsp;.redhat.com<br>
+<br>
+&nbsp;#&nbsp;Alternative&nbsp;way&nbsp;of&nbsp;saying&nbsp;the&nbsp;same&nbsp;thing<br>
+&nbsp;{-no-cookies-set&nbsp;-no-cookies-read&nbsp;-no-cookies-keep}<br>
+&nbsp;.sourceforge.net<br>
+&nbsp;.sf.net<br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> Now turn off <SPAN
+CLASS="QUOTE"
+>"fast redirects"</SPAN
+>, and then we allow two exceptions:</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;#&nbsp;Turn&nbsp;them&nbsp;off!<br>
+&nbsp;{+fast-redirects}<br>
+&nbsp;<br>
+&nbsp;#&nbsp;Reverse&nbsp;it&nbsp;for&nbsp;these&nbsp;two&nbsp;sites,&nbsp;which&nbsp;don't&nbsp;work&nbsp;right&nbsp;without&nbsp;it.<br>
+&nbsp;{-fast-redirects}<br>
+&nbsp;www.ukc.ac.uk/cgi-bin/wac\.cgi\?<br>
+&nbsp;login.yahoo.com<br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> Turn on page filtering according to rules in the defined sections 
+ of <TT
+CLASS="FILENAME"
+>refilterfile</TT
+>, and make one exception for 
+ sourceforge:
+ </P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;#&nbsp;Run&nbsp;everything&nbsp;through&nbsp;the&nbsp;filter&nbsp;file,&nbsp;using&nbsp;only&nbsp;the<br>
+&nbsp;#&nbsp;specified&nbsp;sections:<br>
+&nbsp;+filter{html-annoyances}&nbsp;+filter{js-annoyances}&nbsp;+filter{no-popups}\<br>
+&nbsp;+filter{webbugs}&nbsp;+filter{nimda}&nbsp;+filter{banners-by-size}<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+&nbsp;#&nbsp;Then&nbsp;disable&nbsp;filtering&nbsp;of&nbsp;code&nbsp;from&nbsp;sourceforge!<br>
+&nbsp;{-filter}<br>
+&nbsp;.cvs.sourceforge.net<br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> Now some URLs that we want <SPAN
+CLASS="QUOTE"
+>"blocked"</SPAN
+> (normally generates 
+ the <SPAN
+CLASS="QUOTE"
+>"blocked"</SPAN
+> banner). Many of these use regular expressions
+ that will expand to match multiple URLs:</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;&nbsp;#&nbsp;Blocklist:<br>
+&nbsp;&nbsp;{+block}<br>
+&nbsp;&nbsp;/.*/(.*[-_.])?ads?[0-9]?(/|[-_.].*|\.(gif|jpe?g))<br>
+&nbsp;&nbsp;/.*/(.*[-_.])?count(er)?(\.cgi|\.dll|\.exe|[?/])<br>
+&nbsp;&nbsp;/.*/(ng)?adclient\.cgi<br>
+&nbsp;&nbsp;/.*/(plain|live|rotate)[-_.]?ads?/<br>
+&nbsp;&nbsp;/.*/(sponsor)s?[0-9]?/<br>
+&nbsp;&nbsp;/.*/_?(plain|live)?ads?(-banners)?/<br>
+&nbsp;&nbsp;/.*/abanners/<br>
+&nbsp;&nbsp;/.*/ad(sdna_image|gifs?)/<br>
+&nbsp;&nbsp;/.*/ad(server|stream|juggler)\.(cgi|pl|dll|exe)<br>
+&nbsp;&nbsp;/.*/adbanners/<br>
+&nbsp;&nbsp;/.*/adserver<br>
+&nbsp;&nbsp;/.*/adstream\.cgi<br>
+&nbsp;&nbsp;/.*/adv((er)?ts?|ertis(ing|ements?))?/<br>
+&nbsp;&nbsp;/.*/banner_?ads/<br>
+&nbsp;&nbsp;/.*/banners?/<br>
+&nbsp;&nbsp;/.*/banners?\.cgi/<br>
+&nbsp;&nbsp;/.*/cgi-bin/centralad/getimage<br>
+&nbsp;&nbsp;/.*/images/addver\.gif<br>
+&nbsp;&nbsp;/.*/images/marketing/.*\.(gif|jpe?g)<br>
+&nbsp;&nbsp;/.*/popupads/<br>
+&nbsp;&nbsp;/.*/siteads/<br>
+&nbsp;&nbsp;/.*/sponsor.*\.gif<br>
+&nbsp;&nbsp;/.*/sponsors?[0-9]?/<br>
+&nbsp;&nbsp;/.*/advert[0-9]+\.jpg<br>
+&nbsp;&nbsp;/Media/Images/Adds/<br>
+&nbsp;&nbsp;/ad_images/<br>
+&nbsp;&nbsp;/adimages/<br>
+&nbsp;&nbsp;/.*/ads/<br>
+&nbsp;&nbsp;/bannerfarm/<br>
+&nbsp;&nbsp;/grafikk/annonse/<br>
+&nbsp;&nbsp;/graphics/defaultAd/<br>
+&nbsp;&nbsp;/image\.ng/AdType<br>
+&nbsp;&nbsp;/image\.ng/transactionID<br>
+&nbsp;&nbsp;/images/.*/.*_anim\.gif&nbsp;#&nbsp;alvin&nbsp;brattli<br>
+&nbsp;&nbsp;/ip_img/.*\.(gif|jpe?g)<br>
+&nbsp;&nbsp;/rotateads/<br>
+&nbsp;&nbsp;/rotations/&nbsp;<br>
+&nbsp;&nbsp;/worldnet/ad\.cgi<br>
+&nbsp;&nbsp;/cgi-bin/nph-adclick.exe/<br>
+&nbsp;&nbsp;/.*/Image/BannerAdvertising/<br>
+&nbsp;&nbsp;/.*/ad-bin/<br>
+&nbsp;&nbsp;/.*/adlib/server\.cgi<br>
+&nbsp;&nbsp;/autoads/<br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><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 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
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN1285"
+>5.4.3. Aliases</A
+></H3
+><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 <SPAN
+CLASS="QUOTE"
+>"actions"</SPAN
+>.
+ These can in turn be invoked just like the built-in <SPAN
+CLASS="QUOTE"
+>"actions"</SPAN
+>.
+ Currently, an alias can contain any character except space, tab, <SPAN
+CLASS="QUOTE"
+>"="</SPAN
+>,
+ <SPAN
+CLASS="QUOTE"
+>"{"</SPAN
+> or <SPAN
+CLASS="QUOTE"
+>"}"</SPAN
+>. But please use only <SPAN
+CLASS="QUOTE"
+>"a"</SPAN
+>-
+ <SPAN
+CLASS="QUOTE"
+>"z"</SPAN
+>, <SPAN
+CLASS="QUOTE"
+>"0"</SPAN
+>-<SPAN
+CLASS="QUOTE"
+>"9"</SPAN
+>, <SPAN
+CLASS="QUOTE"
+>"+"</SPAN
+>, and
+ <SPAN
+CLASS="QUOTE"
+>"-"</SPAN
+>. Alias names are not case sensitive, and 
+ <I
+CLASS="EMPHASIS"
+>must be defined  before anything</I
+> else in the
+ <TT
+CLASS="FILENAME"
+>default.action</TT
+>file! And there can only be one set of
+ <SPAN
+CLASS="QUOTE"
+>"aliases"</SPAN
+> defined.</P
+><P
+> Now let's define a few aliases:</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;#&nbsp;Useful&nbsp;custom&nbsp;aliases&nbsp;we&nbsp;can&nbsp;use&nbsp;later.&nbsp;These&nbsp;must&nbsp;come&nbsp;first!<br>
+&nbsp;{{alias}}<br>
+&nbsp;+no-cookies&nbsp;=&nbsp;+no-cookies-set&nbsp;+no-cookies-read<br>
+&nbsp;-no-cookies&nbsp;=&nbsp;-no-cookies-set&nbsp;-no-cookies-read<br>
+&nbsp;fragile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;-block&nbsp;-no-cookies&nbsp;-filter&nbsp;-fast-redirects&nbsp;-hide-referer&nbsp;-no-popups<br>
+&nbsp;shop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;-no-cookies&nbsp;-filter&nbsp;-fast-redirects<br>
+&nbsp;+imageblock&nbsp;=&nbsp;+block&nbsp;+image<br>
+<br>
+&nbsp;#For&nbsp;people&nbsp;who&nbsp;don't&nbsp;like&nbsp;to&nbsp;type&nbsp;too&nbsp;much:&nbsp;&nbsp;;-)<br>
+&nbsp;c0&nbsp;=&nbsp;+no-cookies<br>
+&nbsp;c1&nbsp;=&nbsp;-no-cookies<br>
+&nbsp;c2&nbsp;=&nbsp;-no-cookies-set&nbsp;+no-cookies-read<br>
+&nbsp;c3&nbsp;=&nbsp;+no-cookies-set&nbsp;-no-cookies-read<br>
+&nbsp;#...&nbsp;etc.&nbsp;&nbsp;Customize&nbsp;to&nbsp;your&nbsp;heart's&nbsp;content.<br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> Some examples using our <SPAN
+CLASS="QUOTE"
+>"shop"</SPAN
+> and <SPAN
+CLASS="QUOTE"
+>"fragile"</SPAN
+>
+ aliases from above:</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;#&nbsp;These&nbsp;sites&nbsp;are&nbsp;very&nbsp;complex&nbsp;and&nbsp;require<br>
+&nbsp;#&nbsp;minimal&nbsp;interference.<br>
+&nbsp;{fragile}<br>
+&nbsp;.office.microsoft.com<br>
+&nbsp;.windowsupdate.microsoft.com<br>
+&nbsp;.nytimes.com<br>
+<br>
+&nbsp;#&nbsp;Shopping&nbsp;sites&nbsp;-&nbsp;still&nbsp;want&nbsp;to&nbsp;block&nbsp;ads.<br>
+&nbsp;{shop}<br>
+&nbsp;.quietpc.com<br>
+&nbsp;.worldpay.com&nbsp;&nbsp;&nbsp;#&nbsp;for&nbsp;quietpc.com<br>
+&nbsp;.jungle.com<br>
+&nbsp;.scan.co.uk<br>
+<br>
+&nbsp;#&nbsp;These&nbsp;shops&nbsp;require&nbsp;pop-ups<br>
+&nbsp;{shop&nbsp;-no-popups}<br>
+&nbsp;.dabs.com<br>
+&nbsp;.overclockers.co.uk<br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> The <SPAN
+CLASS="QUOTE"
+>"shop"</SPAN
+> and <SPAN
+CLASS="QUOTE"
+>"fragile"</SPAN
+> aliases are often used for 
+ <SPAN
+CLASS="QUOTE"
+>"problem"</SPAN
+> sites that require most actions to be disabled 
+ in order to function properly.&#13;</P
+></DIV
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="FILTERFILE"
+>5.5. The Filter File</A
+></H2
+><P
+> Any web page can be dynamically modified with the filter file. This
+ modification can be removal, or re-writing, of any web page content,
+ including tags and non-visible content. The default filter file is
+ <TT
+CLASS="FILENAME"
+>default.filter</TT
+>, located in the config directory. </P
+><P
+> This is potentially a very powerful feature, and requires knowledge of both 
+ <SPAN
+CLASS="QUOTE"
+>"regular expression"</SPAN
+> and HTML in order create custom 
+ filters. But, there are a number of useful filters included with 
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> for many common situations.</P
+><P
+> The included example file is divided into sections. Each section begins 
+ with the <TT
+CLASS="LITERAL"
+>FILTER</TT
+> keyword, followed by the identifier 
+ for that section, e.g. <SPAN
+CLASS="QUOTE"
+>"FILTER: webbugs"</SPAN
+>. Each section performs
+ a similar type of filtering, such as <SPAN
+CLASS="QUOTE"
+>"html-annoyances"</SPAN
+>.</P
+><P
+> This file uses regular expressions to alter or remove any string in the
+ target page. The expressions can only operate on one line at a time. Some
+ examples from the included default <TT
+CLASS="FILENAME"
+>default.filter</TT
+>:</P
+><P
+> Stop web pages from displaying annoying messages in the status bar by
+ deleting such references:</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;FILTER:&nbsp;html-annoyances<br>
+<br>
+&nbsp;#&nbsp;New&nbsp;browser&nbsp;windows&nbsp;should&nbsp;be&nbsp;resizeable&nbsp;and&nbsp;have&nbsp;a&nbsp;location&nbsp;and&nbsp;status<br>
+&nbsp;#&nbsp;bar.&nbsp;Make&nbsp;it&nbsp;so.<br>
+&nbsp;#<br>
+&nbsp;s/resizable="?(no|0)"?/resizable=1/ig&nbsp;s/noresize/yesresize/ig<br>
+&nbsp;s/location="?(no|0)"?/location=1/ig&nbsp;s/status="?(no|0)"?/status=1/ig<br>
+&nbsp;s/scrolling="?(no|0|Auto)"?/scrolling=1/ig<br>
+&nbsp;s/menubar="?(no|0)"?/menubar=1/ig&nbsp;<br>
+<br>
+&nbsp;#&nbsp;The&nbsp;&#60;BLINK&#62;&nbsp;tag&nbsp;was&nbsp;a&nbsp;crime!<br>
+&nbsp;#<br>
+&nbsp;s*&#60;blink&#62;|&#60;/blink&#62;**ig<br>
+<br>
+&nbsp;#&nbsp;Is&nbsp;this&nbsp;evil?&nbsp;<br>
+&nbsp;#<br>
+&nbsp;#s/framespacing="?(no|0)"?//ig<br>
+&nbsp;#s/margin(height|width)=[0-9]*//gi<br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> Just for kicks, replace any occurrence of <SPAN
+CLASS="QUOTE"
+>"Microsoft"</SPAN
+> with
+ <SPAN
+CLASS="QUOTE"
+>"MicroSuck"</SPAN
+>, and have a little fun with topical buzzwords: </P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;FILTER:&nbsp;fun<br>
+<br>
+&nbsp;s/microsoft(?!.com)/MicroSuck/ig<br>
+<br>
+&nbsp;#&nbsp;Buzzword&nbsp;Bingo:<br>
+&nbsp;#<br>
+&nbsp;s/industry-leading|cutting-edge|award-winning/&#60;font&nbsp;color=red&#62;&#60;b&#62;BINGO!&#60;/b&#62;&#60;/font&#62;/ig<br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+><P
+> Kill those pesky little web-bugs:</P
+><P
+> <TT
+CLASS="LITERAL"
+>  <P
+CLASS="LITERALLAYOUT"
+>&nbsp;#&nbsp;webbugs:&nbsp;Squish&nbsp;WebBugs&nbsp;(1x1&nbsp;invisible&nbsp;GIFs&nbsp;used&nbsp;for&nbsp;user&nbsp;tracking)<br>
+&nbsp;FILTER:&nbsp;webbugs<br>
+<br>
+&nbsp;s/&#60;img\s+[^&#62;]*?(width|height)\s*=\s*['"]?1\D[^&#62;]*?(width|height)\s*=\s*['"]?1(\D[^&#62;]*?)?&#62;/&#60;!--&nbsp;Squished&nbsp;WebBug&nbsp;--&#62;/sig<br>
+&nbsp;&nbsp;&nbsp;</P
+> 
+ </TT
+></P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN1351"
+>5.6. Templates</A
+></H2
+><P
+> When <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> displays one of its internal 
+ pages, such as a 404 Not Found error page, it uses the appropriate template.
+ On Linux, BSD, and Unix, these are located in
+ <TT
+CLASS="FILENAME"
+>/etc/privoxy/templates</TT
+> by default. These may be
+ customized, if desired.</P
+><P
+> The default <SPAN
+CLASS="QUOTE"
+>"Blocked"</SPAN
+> banner page with the bright red top 
+ banner, is called just <SPAN
+CLASS="QUOTE"
+>"<TT
+CLASS="FILENAME"
+>blocked</TT
+>"</SPAN
+>. This 
+ may be customized or replaced with something else if desired.&#13;</P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="quickstart.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="contact.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Quickstart to Using <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Contacting the Developers, Bug Reporting and Feature
+Requests</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/user-manual/contact.html b/doc/webserver/user-manual/contact.html
new file mode 100644 (file)
index 0000000..655340f
--- /dev/null
@@ -0,0 +1,228 @@
+<HTML
+><HEAD
+><TITLE
+>Contacting the Developers, Bug Reporting and Feature
+Requests</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+REL="HOME"
+TITLE="Privoxy User Manual"
+HREF="index.html"><LINK
+REL="PREVIOUS"
+TITLE="Privoxy Configuration"
+HREF="configuration.html"><LINK
+REL="NEXT"
+TITLE="Copyright and History"
+HREF="copyright.html"><LINK
+REL="STYLESHEET"
+TYPE="text/css"
+HREF="../p_doc.css"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>Privoxy User Manual</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="configuration.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="copyright.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></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. However, to provide you with the best support, please
+ note:
+
+ <P
+></P
+><UL
+><LI
+><P
+CLASS="LITERALLAYOUT"
+>&nbsp;Use&nbsp;the&nbsp;Sourceforge&nbsp;Support&nbsp;Forum&nbsp;to&nbsp;get&nbsp;help:<br>
+&nbsp;&nbsp;&nbsp;<br>
+&nbsp;<A
+HREF="http://sourceforge.net/tracker/?group_id=11118&atid=211118"
+TARGET="_top"
+>http://sourceforge.net/tracker/?group_id=11118&#38;atid=211118</A
+><br>
+&nbsp;&nbsp;&nbsp;</P
+></LI
+><LI
+><P
+CLASS="LITERALLAYOUT"
+>&nbsp;Submit&nbsp;bugs&nbsp;only&nbsp;through&nbsp;our&nbsp;Sourceforge&nbsp;Bug&nbsp;Forum:<br>
+&nbsp;<br>
+&nbsp;<A
+HREF="http://sourceforge.net/tracker/?group_id=11118&atid=111118"
+TARGET="_top"
+>http://sourceforge.net/tracker/?group_id=11118&#38;atid=111118</A
+>.&nbsp;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;</P
+><P
+>   Make sure that the bug has not already been submitted.  Please try to
+   verify that it is a <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> bug, and not a
+   browser or site bug first. If you are using your own custom configuration,
+   please try the stock configs to see if the problem is a configuration
+   related bug.  And if not using the latest development snapshot, please try
+   the latest one. Or even better, CVS sources. Please be sure to include the
+   <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>/<SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+>
+   version, platform, browser, any pertinent log data, any other relevant
+   details (please be specific) and, if possible, some way to reproduce the
+   bug.
+  </P
+></LI
+><LI
+><P
+CLASS="LITERALLAYOUT"
+>&nbsp;Submit&nbsp;feature&nbsp;requests&nbsp;only&nbsp;through&nbsp;our&nbsp;Sourceforge&nbsp;feature&nbsp;request&nbsp;<br>
+&nbsp;forum:<br>
+&nbsp;<br>
+&nbsp;<A
+HREF="http://sourceforge.net/tracker/?atid=361118&group_id=11118&func=browse"
+TARGET="_top"
+>http://sourceforge.net/tracker/?atid=361118&#38;group_id=11118&#38;func=browse</A
+>.<br>
+&nbsp;&nbsp;&nbsp;</P
+></LI
+><LI
+><P
+CLASS="LITERALLAYOUT"
+>We&nbsp;will&nbsp;soon&nbsp;have&nbsp;an&nbsp;automated&nbsp;way&nbsp;to&nbsp;submit&nbsp;advertisements,&nbsp;incorrectly<br>
+blocked&nbsp;images,&nbsp;popups&nbsp;and&nbsp;the&nbsp;like.&nbsp;Check&nbsp;back.<br>
+&nbsp;&nbsp;&nbsp;</P
+></LI
+><LI
+><P
+CLASS="LITERALLAYOUT"
+>&nbsp;For&nbsp;any&nbsp;other&nbsp;issues,&nbsp;feel&nbsp;free&nbsp;to&nbsp;use&nbsp;the&nbsp;mailing&nbsp;lists:<br>
+&nbsp;<br>
+&nbsp;<A
+HREF="http://sourceforge.net/mail/?group_id=11118"
+TARGET="_top"
+>http://sourceforge.net/mail/?group_id=11118</A
+>.<br>
+&nbsp;</P
+><P
+>  Anyone interested in actively participating in development and related
+  discussions can also join the appropriate mailing list. Archives are
+  available too. 
+ </P
+></LI
+></UL
+></P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="configuration.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="copyright.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> Configuration</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Copyright and History</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/user-manual/copyright.html b/doc/webserver/user-manual/copyright.html
new file mode 100644 (file)
index 0000000..9aea5ad
--- /dev/null
@@ -0,0 +1,213 @@
+<HTML
+><HEAD
+><TITLE
+>Copyright and History</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+REL="HOME"
+TITLE="Privoxy 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"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>Privoxy User Manual</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="contact.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="seealso.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="COPYRIGHT"
+>7. Copyright and History</A
+></H1
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN1385"
+>7.1. Copyright</A
+></H2
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is free software; you can
+ redistribute it and/or modify it under the terms of the GNU General Public
+ License as published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.</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 GNU General Public License for
+ more details, which is available from the Free Software Foundation, Inc, 59
+ Temple Place - Suite 330, Boston, MA  02111-1307, USA.</P
+><P
+> You should have received a copy of the <A
+HREF="http://www.gnu.org/copyleft/gpl.html"
+TARGET="_top"
+>GNU General Public License</A
+>
+ along with this program; if not, write to the Free Software Foundation, Inc.,
+ 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="HISTORY"
+>7.2. History</A
+></H2
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is evolved, and derived from, 
+ <SPAN
+CLASS="APPLICATION"
+>the Internet Junkbuster</SPAN
+>, with many 
+ improvments and enhancements over the original.</P
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+> was originally written by Anonymous
+ Coders and <A
+HREF="http://www.junkbusters.com"
+TARGET="_top"
+>Junkbuster's
+ Corporation</A
+>, and was released as free open-source software under the
+ GNU GPL. <A
+HREF="http://www.waldherr.org/junkbuster/"
+TARGET="_top"
+>Stefan
+ Waldherr</A
+> made many improvements, and started the <A
+HREF="http://sourceforge.net/projects/ijbswa/"
+TARGET="_top"
+>SourceForge project
+ Privoxy</A
+> to rekindle development. There are now several active
+ developers contributing.  The last stable release of
+ <SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+> was v2.0.2, which has now
+ grown whiskers ;-).</P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="contact.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="seealso.html"
+>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"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>See Also</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/user-manual/index.html b/doc/webserver/user-manual/index.html
new file mode 100644 (file)
index 0000000..8b87588
--- /dev/null
@@ -0,0 +1,483 @@
+<HTML
+><HEAD
+><TITLE
+>Privoxy User Manual</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+REL="NEXT"
+TITLE="Introduction"
+HREF="introduction.html"><LINK
+REL="STYLESHEET"
+TYPE="text/css"
+HREF="../p_doc.css"></HEAD
+><BODY
+CLASS="ARTICLE"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="ARTICLE"
+><DIV
+CLASS="TITLEPAGE"
+><H1
+CLASS="TITLE"
+><A
+NAME="AEN2"
+>Privoxy User Manual</A
+></H1
+><DIV
+CLASS="AUTHORGROUP"
+><A
+NAME="AEN5"
+></A
+><H3
+CLASS="AUTHOR"
+><A
+NAME="AEN6"
+></A
+></H3
+><DIV
+CLASS="AFFILIATION"
+><SPAN
+CLASS="ORGNAME"
+>By: Privoxy Developers<BR></SPAN
+></DIV
+></DIV
+><P
+CLASS="PUBDATE"
+>$Id: user-manual.sgml,v 1.69 2002/04/06 05:07:29 hal9 Exp $<BR></P
+><DIV
+><DIV
+CLASS="ABSTRACT"
+><A
+NAME="AEN9"
+></A
+><P
+></P
+><P
+> 
+ </P
+><P
+>  The user manual gives users information on how to install, configure and use
+  <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>.
+  </P
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is a web proxy with advanced filtering
+ capabilities for protecting privacy, filtering web page content, managing
+ cookies, controlling access, and removing ads, banners, pop-ups and other
+ obnoxious Internet junk. <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> has a very
+ flexible configuration and can be customized to suit individual needs and
+ tastes. <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> has application for both
+ stand-alone systems and multi-user networks.</P
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is based on the code of the 
+ <SPAN
+CLASS="APPLICATION"
+>Internet Junkbuster</SPAN
+> (tm).
+ <SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+> was originally written by JunkBusters
+ Corporation, and was released as free open-source software under the GNU GPL.
+ Stefan Waldherr made many improvements, and started the SourceForge project
+ to continue development.</P
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> continues the
+ <SPAN
+CLASS="APPLICATION"
+>Junkbuster</SPAN
+> tradition, but adds many 
+ refinements, enhancements and new features.</P
+><P
+>  You can find the latest version of the user manual at  <A
+HREF="http://www.privoxy.org/user-manual/"
+TARGET="_top"
+>http://www.privoxy.org/user-manual/</A
+>. Please see the Contact section on how to contact the developers.
+  </P
+><P
+></P
+></DIV
+></DIV
+><HR></DIV
+><DIV
+CLASS="TOC"
+><DL
+><DT
+><B
+>Table of Contents</B
+></DT
+><DT
+><A
+HREF="index.html#INTRO"
+></A
+></DT
+><DT
+>1. <A
+HREF="introduction.html"
+>Introduction</A
+></DT
+><DD
+><DL
+><DT
+>1.1. <A
+HREF="introduction.html#AEN37"
+>New Features</A
+></DT
+></DL
+></DD
+><DT
+>3. <A
+HREF="installation.html"
+>Installation</A
+></DT
+><DD
+><DL
+><DT
+>3.1. <A
+HREF="installation.html#INSTALLATION-SOURCE"
+>Source</A
+></DT
+><DD
+><DL
+><DT
+>3.1.1. <A
+HREF="installation.html#INSTALLATION-RH"
+>Red Hat</A
+></DT
+><DT
+>3.1.2. <A
+HREF="installation.html#INSTALLATION-SUSE"
+>SuSE</A
+></DT
+><DT
+>3.1.3. <A
+HREF="installation.html#INSTALLATION-OS2"
+>OS/2</A
+></DT
+><DT
+>3.1.4. <A
+HREF="installation.html#INSTALLATION-WIN"
+>Windows</A
+></DT
+><DT
+>3.1.5. <A
+HREF="installation.html#INSTALLATION-OTHER"
+>Other</A
+></DT
+></DL
+></DD
+></DL
+></DD
+><DT
+>4. <A
+HREF="quickstart.html"
+>Quickstart to Using <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+></A
+></DT
+><DD
+><DL
+><DT
+>4.1. <A
+HREF="quickstart.html#AEN230"
+>Command Line Options</A
+></DT
+></DL
+></DD
+><DT
+>5. <A
+HREF="configuration.html"
+><SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> Configuration</A
+></DT
+><DD
+><DL
+><DT
+>5.1. <A
+HREF="configuration.html#AEN275"
+>Controlling <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> with Your Web Browser</A
+></DT
+><DT
+>5.2. <A
+HREF="configuration.html#AEN293"
+>Configuration Files Overview</A
+></DT
+><DT
+>5.3. <A
+HREF="configuration.html#AEN324"
+>The Main Configuration File</A
+></DT
+><DD
+><DL
+><DT
+>5.3.1. <A
+HREF="configuration.html#AEN357"
+>Defining Other Configuration Files</A
+></DT
+><DT
+>5.3.2. <A
+HREF="configuration.html#AEN450"
+>Other Configuration Options</A
+></DT
+><DT
+>5.3.3. <A
+HREF="configuration.html#AEN587"
+>Access Control List (ACL)</A
+></DT
+><DT
+>5.3.4. <A
+HREF="configuration.html#FORWARDING"
+>Forwarding</A
+></DT
+><DT
+>5.3.5. <A
+HREF="configuration.html#AEN785"
+>Windows GUI Options</A
+></DT
+></DL
+></DD
+><DT
+>5.4. <A
+HREF="configuration.html#ACTIONSFILE"
+>The Actions File</A
+></DT
+><DD
+><DL
+><DT
+>5.4.1. <A
+HREF="configuration.html#AEN887"
+>URL Domain and Path Syntax</A
+></DT
+><DT
+>5.4.2. <A
+HREF="configuration.html#AEN963"
+>Actions</A
+></DT
+><DT
+>5.4.3. <A
+HREF="configuration.html#AEN1285"
+>Aliases</A
+></DT
+></DL
+></DD
+><DT
+>5.5. <A
+HREF="configuration.html#FILTERFILE"
+>The Filter File</A
+></DT
+><DT
+>5.6. <A
+HREF="configuration.html#AEN1351"
+>Templates</A
+></DT
+></DL
+></DD
+><DT
+>6. <A
+HREF="contact.html"
+>Contacting the Developers, Bug Reporting and Feature
+Requests</A
+></DT
+><DT
+>7. <A
+HREF="copyright.html"
+>Copyright and History</A
+></DT
+><DD
+><DL
+><DT
+>7.1. <A
+HREF="copyright.html#AEN1385"
+>Copyright</A
+></DT
+><DT
+>7.2. <A
+HREF="copyright.html#HISTORY"
+>History</A
+></DT
+></DL
+></DD
+><DT
+>8. <A
+HREF="seealso.html"
+>See Also</A
+></DT
+><DT
+>9. <A
+HREF="appendix.html"
+>Appendix</A
+></DT
+><DD
+><DL
+><DT
+>9.1. <A
+HREF="appendix.html#REGEX"
+>Regular Expressions</A
+></DT
+><DD
+><DL
+><DT
+>21<A
+HREF="appendix.html#AEN1459"
+></A
+></DT
+><DT
+>22<A
+HREF="appendix.html#AEN1467"
+></A
+></DT
+><DT
+>23<A
+HREF="appendix.html#AEN1470"
+></A
+></DT
+><DT
+>24<A
+HREF="appendix.html#AEN1473"
+></A
+></DT
+><DT
+>25<A
+HREF="appendix.html#AEN1476"
+></A
+></DT
+><DT
+>26<A
+HREF="appendix.html#AEN1481"
+></A
+></DT
+><DT
+>27<A
+HREF="appendix.html#AEN1484"
+></A
+></DT
+><DT
+>28<A
+HREF="appendix.html#AEN1487"
+></A
+></DT
+><DT
+>29<A
+HREF="appendix.html#AEN1493"
+></A
+></DT
+></DL
+></DD
+><DT
+>9.2. <A
+HREF="appendix.html#AEN1587"
+><SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>'s Internal Pages</A
+></DT
+><DD
+><DL
+><DT
+>9.2.1. <A
+HREF="appendix.html#BOOKMARKLETS"
+>Bookmarklets</A
+></DT
+></DL
+></DD
+><DT
+>9.3. <A
+HREF="appendix.html#ACTIONSANAT"
+>Anatomy of an Action</A
+></DT
+></DL
+></DD
+></DL
+></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="INTRO"
+></A
+></H1
+><P
+> </P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="introduction.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Introduction</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/user-manual/installation.html b/doc/webserver/user-manual/installation.html
new file mode 100644 (file)
index 0000000..56700d0
--- /dev/null
@@ -0,0 +1,567 @@
+<HTML
+><HEAD
+><TITLE
+>Installation</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+REL="HOME"
+TITLE="Privoxy User Manual"
+HREF="index.html"><LINK
+REL="PREVIOUS"
+TITLE="Introduction"
+HREF="introduction.html"><LINK
+REL="NEXT"
+TITLE="Quickstart to Using Privoxy"
+HREF="quickstart.html"><LINK
+REL="STYLESHEET"
+TYPE="text/css"
+HREF="../p_doc.css"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>Privoxy User Manual</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="introduction.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="quickstart.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="INSTALLATION"
+>3. Installation</A
+></H1
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is available as raw source code (tarball 
+ or via CVS), or pre-compiled binaries for various platforms. See the <A
+HREF="http://sourceforge.net/projects/ijbswa/"
+TARGET="_top"
+>Privoxy Project Page</A
+> for
+ the most up to date release information.
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is also available via <A
+HREF="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/ijbswa/current/"
+TARGET="_top"
+>CVS</A
+>.
+ This is the recommended approach at this time. But
+ please be aware that CVS is constantly changing, and it may break in
+ mysterious ways.</P
+><P
+> At present, <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is known to run on Win32, Mac
+ OSX, OS/2, AmigaOS, Linux (RedHat, Suse, Debian), FreeBSD, and many flavors
+ of Unix. There are source and binary releases for these available for
+ download at <A
+HREF="http://sourceforge.net/project/showfiles.php?group_id=11118"
+TARGET="_top"
+>http://sourceforge.net/project/showfiles.php?group_id=11118</A
+>.</P
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="INSTALLATION-SOURCE"
+>3.1. Source</A
+></H2
+><P
+> There are several ways to install <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>.</P
+><P
+> To build <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> from source, 
+ autoconf and GNU make (gmake) are required. Source is available as gzipped
+ tar archives. For this, first unpack the source: </P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+> tar xzvf privoxy-2.9.13-beta-src* [.tgz or .tar.gz]
+ cd privoxy-2.9.13-beta
+ </PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> For retrieving the current CVS sources, you'll need the CVS 
+ package installed first. Note CVS source is development quality, 
+ and may not be stable, or well tested. To download CVS source:</P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co current
+  cd current
+ </PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> This will create a directory named <TT
+CLASS="FILENAME"
+>current/</TT
+>, which will 
+ contain the source tree.</P
+><P
+> Then, in either case, to build from unpacked tarball or CVS source:</P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+> autoheader
+ autoconf
+ ./configure      (--help to see options)
+ make             (the make from gnu, gmake for *BSD) 
+ su 
+ make -n install  (to see where all the files will go)
+ make install     (to really install)
+ </PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> Redhat and SuSE src and binary RPMs can be built with 
+ <SPAN
+CLASS="QUOTE"
+>"<B
+CLASS="COMMAND"
+>make redhat-dist</B
+>"</SPAN
+> or
+ <SPAN
+CLASS="QUOTE"
+>"<B
+CLASS="COMMAND"
+>make suse-dist</B
+>"</SPAN
+> from unpacked sources. You
+ will need to run <SPAN
+CLASS="QUOTE"
+>"<B
+CLASS="COMMAND"
+>autoconf; autoheader;
+ ./configure</B
+>"</SPAN
+> beforehand. *BSD will require gmake (from
+ <A
+HREF="http://www.gnu.org"
+TARGET="_top"
+>http://www.gnu.org</A
+>). 
+ </P
+><P
+> For Redhat and SuSE Linux RPM packages, see below.</P
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="INSTALLATION-RH"
+>3.1.1. Red Hat</A
+></H3
+><P
+> To build Redhat RPM packages from source, install source as above. Then:</P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+> autoheader
+ autoconf
+ ./configure
+ make redhat-dist
+ </PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> This will create both binary and src RPMs in the usual places. Example:</P
+><P
+> Â Â Â /usr/src/redhat/RPMS/i686/privoxy-2.9.13-1.i686.rpm</P
+><P
+> Â Â Â /usr/src/redhat/SRPMS/privoxy-2.9.13-1.src.rpm</P
+><P
+> To install, of course:</P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+> rpm -Uvv /usr/src/redhat/RPMS/i686/privoxy-2.9.13-1.i686.rpm
+ </PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> This will place the <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> configuration 
+ files in <TT
+CLASS="FILENAME"
+>/etc/privoxy/</TT
+>, and log files in 
+ <TT
+CLASS="FILENAME"
+>/var/log/privoxy/</TT
+>. Run 
+ <B
+CLASS="COMMAND"
+>ckconfig privoxy on</B
+> to have
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> start automatically during init.&#13;</P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="INSTALLATION-SUSE"
+>3.1.2. SuSE</A
+></H3
+><P
+> To build SuSE RPM packages, install source as above. Then:</P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+> autoheader
+ autoconf
+ ./configure
+ make suse-dist
+ </PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> This will create both binary and src RPMs in the usual places. Example:</P
+><P
+> Â Â Â /usr/src/packages/RPMS/i686/privoxy-2.9.13-1.i686.rpm</P
+><P
+> Â Â Â /usr/src/packages/SRPMS/privoxy-2.9.13-1.src.rpm</P
+><P
+> To install, of course:</P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+> rpm -Uvv /usr/src/packages/RPMS/i686/privoxy-2.9.13-1.i686.rpm
+ </PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> This will place the <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> configuration 
+ files in <TT
+CLASS="FILENAME"
+>/etc/privoxy/</TT
+>, and log files in 
+ <TT
+CLASS="FILENAME"
+>/var/log/privoxy/</TT
+>. </P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="INSTALLATION-OS2"
+>3.1.3. OS/2</A
+></H3
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is packaged in a WarpIN self-
+ installing archive.  The self-installing program will be named depending
+ on the release version, something like:
+ <TT
+CLASS="FILENAME"
+>privoxyos2_setup_2.9.13.exe</TT
+>.  In order to install it, simply
+ run this executable or double-click on its icon and follow the WarpIN
+ installation panels.  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
+><P
+> If you would like to build binary images on OS/2 yourself, you will need
+ a few Unix-like tools: autoconf, autoheader and sh.  These tools will be
+ used to create the required config.h file, which is not part of the 
+ source distribution because it differs based on platform.  You will also
+ need a compiler.
+ The distribution has been created using IBM VisualAge compilers, but you
+ can use any compiler you like. GCC/EMX has the disadvantage of needing 
+ to be single-threaded due to a limitation of EMX's implementation of the
+ <TT
+CLASS="FUNCTION"
+>select()</TT
+> socket call.</P
+><P
+> In addition to needing the source code distribution as outlined earlier,
+ you will want to extract the <TT
+CLASS="FILENAME"
+>os2seutp</TT
+> directory from CVS:
+ <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+> cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login          
+ cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co os2setup
+ </PRE
+></TD
+></TR
+></TABLE
+>
+ This will create a directory named os2setup/, which will contain the
+ <TT
+CLASS="FILENAME"
+>Makefile.vac</TT
+> makefile and <TT
+CLASS="FILENAME"
+>os2build.cmd</TT
+>
+ which is used to completely create the binary distribution.  The sequence
+ of events for building the executable for yourself goes something like this:
+ <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+> cd current
+ autoheader
+ autoconf
+ sh configure
+ cd ..\os2setup
+ nmake -f Makefile.vac
+ </PRE
+></TD
+></TR
+></TABLE
+>
+ You will see this sequence laid out in <TT
+CLASS="FILENAME"
+>os2build.cmd</TT
+>.</P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="INSTALLATION-WIN"
+>3.1.4. Windows</A
+></H3
+><P
+>Click-click. (I need help on this. Not a clue here. Also for 
+configuration section below. HB.)</P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="INSTALLATION-OTHER"
+>3.1.5. Other</A
+></H3
+><P
+> Some quick notes on other Operating Systems.</P
+><P
+> For FreeBSD (and other *BSDs?), the build will require <B
+CLASS="COMMAND"
+>gmake</B
+> 
+ instead of the included <B
+CLASS="COMMAND"
+>make</B
+>. <B
+CLASS="COMMAND"
+>gmake</B
+> is
+ available from <A
+HREF="http://www.gnu.org"
+TARGET="_top"
+>http://www.gnu.org</A
+>.
+ The rest should be the same as above for Linux/Unix.</P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="introduction.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="quickstart.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Introduction</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Quickstart to Using <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/user-manual/introduction.html b/doc/webserver/user-manual/introduction.html
new file mode 100644 (file)
index 0000000..ed132b9
--- /dev/null
@@ -0,0 +1,266 @@
+<HTML
+><HEAD
+><TITLE
+>Introduction</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+REL="HOME"
+TITLE="Privoxy User Manual"
+HREF="index.html"><LINK
+REL="PREVIOUS"
+TITLE="Privoxy User Manual"
+HREF="index.html"><LINK
+REL="NEXT"
+TITLE="Installation"
+HREF="installation.html"><LINK
+REL="STYLESHEET"
+TYPE="text/css"
+HREF="../p_doc.css"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>Privoxy User Manual</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="index.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="installation.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="INTRODUCTION"
+>1. Introduction</A
+></H1
+><P
+> This documentation is included with the current BETA version of
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>, v.2.9.13, 
+ and is mostly complete at this point. The most up to date reference for the
+ time being is still the comments in the source files and in the individual
+ configuration files. Development of version 3.0 is currently nearing
+ completion, and includes many significant changes and enhancements over
+ earlier versions. The target release date for
+ stable v3.0 is <SPAN
+CLASS="QUOTE"
+>"soon"</SPAN
+> ;-).</P
+><P
+> Since this is a BETA version, not all new features are well tested. This
+ documentation may be slightly out of sync as a result (especially with 
+ CVS sources). And there <I
+CLASS="EMPHASIS"
+>may be</I
+> bugs, though hopefully
+ not many! </P
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN37"
+>1.1. New Features</A
+></H2
+><P
+> In addition to <SPAN
+CLASS="APPLICATION"
+>Internet Junkbuster's</SPAN
+> traditional
+ feature of ad and banner blocking and cookie management,
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> provides new features,
+ some of them currently under development:</P
+><P
+> <P
+></P
+><UL
+><LI
+><P
+>   Integrated browser based configuration and control utility (<A
+HREF="http://p.p"
+TARGET="_top"
+>http://p.p</A
+>). Browser-based tracing of rule
+   and filter effects.
+  </P
+></LI
+><LI
+><P
+>    Blocking of annoying pop-up browser windows.
+  </P
+></LI
+><LI
+><P
+>   HTTP/1.1 compliant (most, but not all 1.1 features are supported).
+  </P
+></LI
+><LI
+><P
+>   Support for Perl Compatible Regular Expressions in the configuration files, and 
+   generally a more sophisticated and flexible configuration syntax over
+   previous versions. 
+  </P
+></LI
+><LI
+><P
+>   GIF de-animation. 
+  </P
+></LI
+><LI
+><P
+>   Web page content filtering (removes banners based on size,
+   invisible <SPAN
+CLASS="QUOTE"
+>"web-bugs"</SPAN
+>, JavaScript, pop-ups, status bar abuse,
+   etc.)
+  </P
+></LI
+><LI
+><P
+>   Bypass many click-tracking scripts (avoids script redirection).
+  </P
+></LI
+><LI
+><P
+>   Multi-threaded (POSIX and native threads).
+  </P
+></LI
+><LI
+><P
+>   Auto-detection and re-reading of config file changes.
+  </P
+></LI
+><LI
+><P
+>   User-customizable HTML templates (e.g. 404 error page).
+  </P
+></LI
+><LI
+><P
+>   Improved cookie management features (e.g. session based cookies).
+  </P
+></LI
+><LI
+><P
+>   Improved signal handling, and a true daemon mode (Unix).
+  </P
+></LI
+><LI
+><P
+>   Builds from source on most UNIX-like systems. Packages available for: Linux
+   (RedHat, SuSE, or Debian), Windows, Sun Solaris, Mac OSX, OS/2, HP-UX 11 and AmigaOS.
+  </P
+></LI
+><LI
+><P
+>   In addition, the configuration is much more powerful and versatile over-all.
+  </P
+></LI
+></UL
+></P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="index.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="installation.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Privoxy User Manual</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Installation</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/user-manual/quickstart.html b/doc/webserver/user-manual/quickstart.html
new file mode 100644 (file)
index 0000000..956525f
--- /dev/null
@@ -0,0 +1,500 @@
+<HTML
+><HEAD
+><TITLE
+>Quickstart to Using Privoxy</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+REL="HOME"
+TITLE="Privoxy User Manual"
+HREF="index.html"><LINK
+REL="PREVIOUS"
+TITLE="Installation"
+HREF="installation.html"><LINK
+REL="NEXT"
+TITLE="Privoxy Configuration"
+HREF="configuration.html"><LINK
+REL="STYLESHEET"
+TYPE="text/css"
+HREF="../p_doc.css"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>Privoxy User Manual</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="installation.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="configuration.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="QUICKSTART"
+>4. Quickstart to Using <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+></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 proxy. The default is localhost for the proxy address,
+ and port 8118 (earlier versions used port 800). This is the one required 
+ configuration that must be done! </P
+><P
+> 
+ With <SPAN
+CLASS="APPLICATION"
+>Netscape</SPAN
+> (and
+ <SPAN
+CLASS="APPLICATION"
+>Mozilla</SPAN
+>), this can be set under <TT
+CLASS="LITERAL"
+>Edit
+ -&#62; Preferences -&#62; Advanced -&#62; Proxies -&#62; HTTP Proxy</TT
+>.
+ For <SPAN
+CLASS="APPLICATION"
+>Internet Explorer</SPAN
+>: <TT
+CLASS="LITERAL"
+>Tools -&#62;
+ Internet Properties -&#62; Connections -&#62; LAN Setting</TT
+>. Then,
+ check <SPAN
+CLASS="QUOTE"
+>"Use Proxy"</SPAN
+> and fill in the appropriate info (Address:
+ localhost, Port: 8118). Include if HTTPS proxy support too.</P
+><P
+> After doing this, flush your browser's disk and memory caches to force a
+ re-reading of all pages and get rid of any ads that may be cached. You 
+ are now ready to start enjoying the benefits of using
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>.</P
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is typically started by specifying the
+ main configuration file to be used on the command line. Example Unix startup
+ command:</P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+> 
+ # /usr/sbin/privoxy /etc/privoxy/config
+ </PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> An init script is provided for SuSE and Redhat.</P
+><P
+> For for SuSE: <B
+CLASS="COMMAND"
+>/etc/rc.d/privoxy start</B
+></P
+><P
+> For RedHat: <B
+CLASS="COMMAND"
+>/etc/rc.d/init.d/privoxy start</B
+></P
+><P
+> 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
+>. If no file is specified on the
+ command line and no default configuration file can be found, 
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> will fail to start.</P
+><P
+> The included default configuration files should give a reasonable starting
+ point, though may be somewhat aggressive in blocking junk. Most of the 
+ per site configuration is done in the <SPAN
+CLASS="QUOTE"
+>"actions"</SPAN
+> files. These 
+ are where various cookie actions are defined, ad and banner blocking, 
+ and other aspects of <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> configuration. There 
+ are several such files included, with varying levels of aggressiveness. </P
+><P
+> You will probably want to keep an eye out for sites that require persistent
+ cookies, and add these to <TT
+CLASS="FILENAME"
+>default.action</TT
+> as needed. By
+ default, most of these will be accepted only during the current browser
+ session, until you add them to the configuration. If you want the browser to
+ handle this instead, you will need to edit
+ <TT
+CLASS="FILENAME"
+>default.action</TT
+> and disable this feature. If you use more
+ than one browser, it would make more sense to let
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> handle this. In which case, the browser(s)
+ should be set to accept all cookies.</P
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is HTTP/1.1 compliant,  but not all 1.1
+ features are as yet implemented. If browsers that support HTTP/1.1 (like
+ <SPAN
+CLASS="APPLICATION"
+>Mozilla</SPAN
+> or recent versions of I.E.) experience
+ problems, you might try to force HTTP/1.0 compatibility. For Mozilla, look
+ under <TT
+CLASS="LITERAL"
+>Edit -&#62; Preferences -&#62; Debug -&#62; Networking</TT
+>.
+ Or set the <SPAN
+CLASS="QUOTE"
+>"+downgrade"</SPAN
+> config option in
+ <TT
+CLASS="FILENAME"
+>default.action</TT
+>.</P
+><P
+> After running <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> for a while, you can 
+ start to fine tune the configuration to suit your personal, or site, 
+ preferences and requirements. There are many, many aspects that can 
+ be customized. <SPAN
+CLASS="QUOTE"
+>"Actions"</SPAN
+> (as specified in <TT
+CLASS="FILENAME"
+>default.action</TT
+>) 
+ can be adjusted by pointing your browser to 
+ <A
+HREF="http://p.p/"
+TARGET="_top"
+>http://p.p/</A
+>, 
+ and then follow the link to <SPAN
+CLASS="QUOTE"
+>"edit the actions list"</SPAN
+>. 
+ (This is an internal page and does not require Internet access.)</P
+><P
+> In fact, various aspects of <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ configuration can be viewed from this page, including 
+ current configuration parameters, source code version numbers, 
+ the browser's request headers, and <SPAN
+CLASS="QUOTE"
+>"actions"</SPAN
+> that apply 
+ to a given URL. In addition to the <TT
+CLASS="FILENAME"
+>default.action</TT
+> file 
+ editor mentioned above, <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> can also 
+ be turned <SPAN
+CLASS="QUOTE"
+>"on"</SPAN
+> and <SPAN
+CLASS="QUOTE"
+>"off"</SPAN
+> from this page.</P
+><P
+> If you encounter problems, please verify it is a
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> bug, by disabling
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>, and then trying the same page. 
+ Also, try another browser if possible to eliminate browser or site 
+ problems. Before reporting it as a bug, see if there is not a configuration
+ option that is enabled that is causing the page not to load. You can then add
+ an exception for that page or site. For instance, try adding it to the
+ <TT
+CLASS="LITERAL"
+>{fragile}</TT
+> section of <TT
+CLASS="FILENAME"
+>default.action</TT
+>.
+ This will turn off most actions for this site. For more on troubleshooting
+ problem sites, see the <A
+HREF="appendix.html#ACTIONSANAT"
+TARGET="_top"
+>Appendix</A
+>. If a bug, please report it
+ to the developers (see below). </P
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN230"
+>4.1. Command Line Options</A
+></H2
+><P
+> <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> may be invoked with the following
+ command-line options:</P
+><P
+> <P
+></P
+><UL
+><LI
+><P
+>    <I
+CLASS="EMPHASIS"
+>--version</I
+>
+  </P
+><P
+>     Print version info and exit, Unix only.
+  </P
+></LI
+><LI
+><P
+>    <I
+CLASS="EMPHASIS"
+>--help</I
+>
+  </P
+><P
+>   Print a short usage info and exit, Unix only.
+  </P
+></LI
+><LI
+><P
+>   <I
+CLASS="EMPHASIS"
+>--no-daemon</I
+>
+  </P
+><P
+>   Don't become a daemon, i.e. don't fork and become process group
+   leader, don't detach from controlling tty. Unix only.
+  </P
+></LI
+><LI
+><P
+>   <I
+CLASS="EMPHASIS"
+>--pidfile FILE</I
+>
+  
+  </P
+><P
+>   On startup, write the process ID to <I
+CLASS="EMPHASIS"
+>FILE</I
+>. Delete the
+   <I
+CLASS="EMPHASIS"
+>FILE</I
+> on exit. Failiure to create or delete the
+   <I
+CLASS="EMPHASIS"
+>FILE</I
+> is non-fatal. If no <I
+CLASS="EMPHASIS"
+>FILE</I
+>
+   option is given, no PID file will be used. Unix only.
+  </P
+></LI
+><LI
+><P
+>   <I
+CLASS="EMPHASIS"
+>--user USER[.GROUP]</I
+>
+  
+  </P
+><P
+>   After (optionally) writing the PID file, assume the user  ID  of
+   <I
+CLASS="EMPHASIS"
+>USER</I
+>, and if included the GID of GROUP.  Exit if the
+   privileges are not sufficient to do so. Unix only.
+  </P
+></LI
+><LI
+><P
+>    <I
+CLASS="EMPHASIS"
+>configfile</I
+>
+  </P
+><P
+>    If no <I
+CLASS="EMPHASIS"
+>configfile</I
+> 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.
+  </P
+></LI
+></UL
+></P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="installation.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="configuration.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Installation</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> Configuration</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
diff --git a/doc/webserver/user-manual/seealso.html b/doc/webserver/user-manual/seealso.html
new file mode 100644 (file)
index 0000000..68b11df
--- /dev/null
@@ -0,0 +1,295 @@
+<HTML
+><HEAD
+><TITLE
+>See Also</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+REL="HOME"
+TITLE="Privoxy User Manual"
+HREF="index.html"><LINK
+REL="PREVIOUS"
+TITLE="Copyright and History"
+HREF="copyright.html"><LINK
+REL="NEXT"
+TITLE="Appendix"
+HREF="appendix.html"><LINK
+REL="STYLESHEET"
+TYPE="text/css"
+HREF="../p_doc.css"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>Privoxy User Manual</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="copyright.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="appendix.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="SEEALSO"
+>8. See Also</A
+></H1
+><P
+> Other references and sites of interest to <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ users:</P
+><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
+><P
+></P
+>
+ <P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>    <A
+HREF="http://sourceforge.net/projects/ijbswa"
+TARGET="_top"
+>http://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
+><P
+></P
+>
+ <P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>    <A
+HREF="http://p.p/"
+TARGET="_top"
+>http://p.p/</A
+>, access
+   <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> from your browser. Alternately, 
+   <A
+HREF="http://config.privoxy.org"
+TARGET="_top"
+>http://config.privoxy.org</A
+>
+   may work in some situations where the first does not.
+  </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+>
+ <P
+></P
+><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
+>
+  </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+>
+ <P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>    <A
+HREF="http://www.waldherr.org/junkbuster/"
+TARGET="_top"
+>http://www.waldherr.org/junkbuster/</A
+>
+  </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+>
+ <P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>    <A
+HREF="http://privacy.net/analyze/"
+TARGET="_top"
+>http://privacy.net/analyze/</A
+>
+  </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+>
+ <P
+></P
+><TABLE
+BORDER="0"
+><TBODY
+><TR
+><TD
+>   <A
+HREF="http://www.squid-cache.org/"
+TARGET="_top"
+>http://www.squid-cache.org/</A
+>
+  </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+>&#13;</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="copyright.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="appendix.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Copyright and History</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Appendix</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file