From bae19e58effcafe0193c7ed8862373e1209690fd Mon Sep 17 00:00:00 2001 From: hal9 Date: Thu, 15 Nov 2007 03:39:49 +0000 Subject: [PATCH] Fresh build of ALL html docs. --- doc/webserver/developer-manual/coding.html | 307 ++++++------ doc/webserver/developer-manual/contact.html | 108 ++-- doc/webserver/developer-manual/copyright.html | 24 +- doc/webserver/developer-manual/cvs.html | 20 +- .../developer-manual/documentation.html | 66 +-- doc/webserver/developer-manual/index.html | 29 +- .../developer-manual/introduction.html | 27 +- .../developer-manual/newrelease.html | 82 +-- doc/webserver/developer-manual/seealso.html | 38 +- doc/webserver/developer-manual/testing.html | 16 +- .../developer-manual/webserver-update.html | 8 +- doc/webserver/faq/index.html | 2 +- doc/webserver/faq/trouble.html | 2 +- doc/webserver/man-page/privoxy-man-page.html | 469 ------------------ doc/webserver/user-manual/actions-file.html | 44 +- doc/webserver/user-manual/appendix.html | 42 +- doc/webserver/user-manual/config.html | 4 +- doc/webserver/user-manual/configuration.html | 4 +- doc/webserver/user-manual/copyright.html | 44 +- doc/webserver/user-manual/filter-file.html | 4 +- doc/webserver/user-manual/index.html | 24 +- doc/webserver/user-manual/installation.html | 3 +- doc/webserver/user-manual/introduction.html | 4 +- doc/webserver/user-manual/quickstart.html | 2 +- doc/webserver/user-manual/startup.html | 4 +- doc/webserver/user-manual/whatsnew.html | 70 +-- 26 files changed, 531 insertions(+), 916 deletions(-) diff --git a/doc/webserver/developer-manual/coding.html b/doc/webserver/developer-manual/coding.html index cf912067..656a97dc 100644 --- a/doc/webserver/developer-manual/coding.html +++ b/doc/webserver/developer-manual/coding.html @@ -1,11 +1,11 @@ + Coding Guidelines4. Coding Guidelines4. Coding Guidelines

4.1. Introduction

4.1. Introduction

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 @@ -105,16 +105,16 @@ CLASS="SECT2" CLASS="SECT2" >4.2. Using Comments4.2. Using Comments

4.2.1. Comment, Comment, Comment

4.2.1. Comment, Comment, Comment

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. + For example do not comment "variable_a is equal to variable_b". + Instead explain why variable_a should be equal to the variable_b. Just because a person can read code does not mean they will understand why or what is being done. A reader may spend a lot more time figuring out what is going on when a simple comment @@ -153,13 +153,13 @@ WIDTH="100%" >

/* if page size greater than 1k ... */
-if ( PageLength() > 1024 )
+if ( page_length() > 1024 )
 {
     ... "block" the page up ...
 }
 
 /* if page size is small, send it in blocks */
-if ( PageLength() > 1024 )
+if ( page_length() > 1024 )
 {
     ... "block" the page up ...
 }
@@ -177,8 +177,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 >4.2.2. Use blocks for comments4.2.2. Use blocks for comments

/********************************************************************* * This will stand out clearly in your code! *********************************************************************/ -if ( thisVariable == thatVariable ) +if ( this_variable == that_variable ) { - DoSomethingVeryImportant(); + do_something_very_important(); } /* unfortunately, this may not */ -if ( thisVariable == thatVariable ) +if ( this_variable == that_variable ) { - DoSomethingVeryImportant(); + do_something_very_important(); } -if ( thisVariable == thatVariable ) /* this may not either */ +if ( this_variable == that_variable ) /* this may not either */ { - DoSomethingVeryImportant(); + do_something_very_important(); }

4.2.3. Keep Comments on their own line4.2.3. Keep Comments on their own line

4.2.4. Comment each logical step4.2.4. Comment each logical step

4.2.5. Comment All Functions Thoroughly4.2.5. Comment All Functions Thoroughly

4.2.6. Comment at the end of braces if the - content is more than one screen length

if ( 1 == X ) { - DoSomethingVeryImportant(); + do_something_very_important(); ...some long list of commands... } /* -END- if x is 1 */ @@ -438,7 +438,7 @@ or: if ( 1 == X ) { - DoSomethingVeryImportant(); + do_something_very_important(); ...some long list of commands... } /* -END- if ( 1 == X ) */4.3. Naming Conventions4.3. Naming Conventions

4.3.1. Variable Names

4.3.1. Variable Names

4.3.2. Function Names4.3.2. Function Names

4.3.3. Header file prototypes4.3.3. Header file prototypes

4.3.4. Enumerations, and #defines4.3.4. Enumerations, and #defines

4.3.5. Constants4.3.5. Constants

4.4. Using Space4.4. Using Space

4.4.1. Put braces on a line by themselves.

4.4.1. Put braces on a line by themselves.

4.4.2. ALL control statements should have a - block

if ( this == that ) { - DoSomething(); - DoSomethingElse(); + do_something(); + do_something_else(); }

if ( this == that ) DoSomething(); DoSomethingElse();

if ( this == that ) do_something(); do_something_else();

or

if ( this == that ) DoSomething();

if ( this == that ) do_something();

4.4.3. Do not belabor/blow-up boolean - expressions

4.4.4. Use white space freely because it is - free

int firstValue   = 0;
-int someValue    = 0;
-int anotherValue = 0;
-int thisVariable = 0;
+>int first_value   = 0;
+int some_value    = 0;
+int another_value = 0;
+int this_variable = 0;
 
-if ( thisVariable == thatVariable )
+if ( this_variable == this_variable )
 
-firstValue = oldValue + ( ( someValue - anotherValue ) - whatever )
4.4.5. Don't use white space around structure - operators

aStruct->aMember;
-aStruct.aMember;
-FunctionName();
a_struct->a_member; +a_struct.a_member; +function_name();Instead of: aStruct -> aMember; aStruct . aMember; - FunctionName ();

a_struct -> a_member; a_struct . a_member; + function_name ();

4.4.6. Make the last brace of a function stand - out

int function1( ... ) { ...code... - return( retCode ); + return( ret_code ); } /* -END- function1 */ @@ -1191,7 +1191,7 @@ CLASS="EMPHASIS" >

int function1( ... ) { ...code... return( retCode ); } int +>int function1( ... ) { ...code... return( ret_code ); } int function2( ... ) { }

4.4.7. Use 3 character indentions4.4.7. Use 3 character indentions

4.5. Initializing4.5. Initializing

4.5.1. Initialize all variables

4.5.1. Initialize all variables

short anShort = 0;
-float aFloat  = 0;
+>short a_short = 0;
+float a_float  = 0;
 struct *ptr = NULL;
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].

4.6. Functions4.6. Functions

4.6.1. Name functions that return a boolean as a - question.

ShouldWeBlockThis();
-ContainsAnImage();
-IsWebPageBlank();
should_we_block_this(); +contains_an_image(); +is_web_page_blank();4.6.2. Always specify a return type for a - function.

4.6.3. Minimize function calls when iterating by - using variables

for ( size_t cnt = 0; cnt < blockListLength(); cnt ++ )
+>for ( size_t cnt = 0; cnt < block_list_length(); cnt++ )
 {
    ....
 }

Instead of using a function call during the iterations, @@ -1505,9 +1505,9 @@ WIDTH="100%" >

size_t len = blockListLength();
+>size_t len = block_list_length();
 
-for ( size_t cnt = 0; cnt < len; cnt ++ )
+for ( size_t cnt = 0; cnt < len; cnt++ )
 {
    ....
 }
Exceptions: if the value of blockListLength() *may* - change or could *potentially* change, then you must code the +> if the value of block_list_length() + *may* change or could *potentially* change, then you must code the function call in the for/while loop.

4.6.4. Pass and Return by Const Reference4.6.4. Pass and Return by Const Reference

4.6.5. Pass and Return by Value4.6.5. Pass and Return by Value

4.6.6. Names of include files4.6.6. Names of include files

4.6.7. Provide multiple inclusion - protection

4.6.8. Use `extern "C"` when appropriate4.6.8. Use `extern "C"` when appropriate

4.6.9. Where Possible, Use Forward Struct - Declaration Instead of Includes

4.7. General Coding Practices4.7. General Coding Practices

4.7.1. Turn on warnings

4.7.1. Turn on warnings

4.7.2. Provide a default case for all switch - statements

This is not so much a readability issue as a robust programming issue. The "anomaly code goes here" may be no more than a print to the STDERR stream (as in - load_config). Or it may really be an ABEND condition.

4.7.3. Try to avoid falling through cases in a - switch statement.

4.7.4. Use 'long' or 'short' Instead of - 'int'

4.7.5. Don't mix size_t and other types4.7.5. Don't mix size_t and other types

4.7.6. Declare each variable and struct on its - own line.

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 + on one line. You should, although, provide a good comment on their functions.

4.7.7. Use malloc/zalloc sparingly4.7.7. Use malloc/zalloc sparingly

4.7.8. The Programmer Who Uses 'malloc' is - Responsible for Ensuring 'free'

4.7.9. Add loaders to the `file_list' structure - and in order

4.7.10. "Uncertain" new code and/or changes to - existing code, use FIXME

4.8. Addendum: Template for files and function - comment blocks:

const char FILENAME_rcs[] = "$Id: developer-manual.sgml,v 2.11 2006/09/26 02:36:29 hal9 Exp $";
+>const char FILENAME_rcs[] = "$Id: developer-manual.sgml,v 2.13 2007/10/30 17:59:31 fabiankeil Exp $";
 /*********************************************************************
  *
  * File        :  $Source$
  *
  * Purpose     :  (Fill me in with a good description!)
  *
- * Copyright   :  Written by and Copyright (C) 2001-2006 the SourceForge
+ * Copyright   :  Written by and Copyright (C) 2001-2007 the SourceForge
  *                Privoxy team. http://www.privoxy.org/
  *
  *                Based on the Internet Junkbuster originally written
@@ -2422,14 +2421,14 @@ WIDTH="100%"
 CLASS="PROGRAMLISTING"
 >#ifndef _FILENAME_H
 #define _FILENAME_H
-#define FILENAME_H_VERSION "$Id: developer-manual.sgml,v 2.11 2006/09/26 02:36:29 hal9 Exp $"
+#define FILENAME_H_VERSION "$Id: developer-manual.sgml,v 2.13 2007/10/30 17:59:31 fabiankeil Exp $"
 /*********************************************************************
  *
  * File        :  $Source$
  *
  * Purpose     :  (Fill me in with a good description!)
  *
- * Copyright   :  Written by and Copyright (C) 2001-2006 the SourceForge
+ * Copyright   :  Written by and Copyright (C) 2001-2007 the SourceForge
  *                Privoxy team. http://www.privoxy.org/
  *
  *                Based on the Internet Junkbuster originally written
diff --git a/doc/webserver/developer-manual/contact.html b/doc/webserver/developer-manual/contact.html
index 4270b281..bca0e3c2 100644
--- a/doc/webserver/developer-manual/contact.html
+++ b/doc/webserver/developer-manual/contact.html
@@ -1,11 +1,11 @@
+
 Contacting the developers, Bug Reporting and Feature Requests8. Contacting the developers, Bug Reporting and Feature Requests8. Contacting the developers, Bug Reporting and Feature Requests

We value your feedback. In fact, we rely on it to improve 8.1. Get Support8.1. Get Support

For casual users, our users mailing list, where the developers also hang around.

Note that the Privoxy mailing lists are moderated. Posts from unsubscribed + addresses have to be accepted manually by a moderator. This may cause a + delay of several days and if you use a subject that doesn't clearly + mention Privoxy or one of its features, your message may be accidentally + discarded as spam.

If you aren't subscribed, you should therefore spend a few seconds + to come up with a proper subject. Additionally you should make it clear + that you want to get CC'd. Otherwise some responses will be directed to + the mailing list only, and you won't see them.

8.2. Reporting Problems8.2. Reporting Problems

8.2.1. Reporting Ads or Other Configuration Problems8.2.1. Reporting Ads or Other Configuration Problems

Please send feedback on ads that slipped through, innocent images that were blocked, sites that don't work properly, and other configuration related problem of @@ -206,17 +217,10 @@ CLASS="SECT3" CLASS="SECT3" >8.2.2. Reporting Bugs8.2.2. Reporting Bugs

Please report all bugs only through our - bug tracker: +> Please report all bugs through our bug tracker: . If already submitted, please feel free to add any info to the original report that might help to solve the issue.

- Please try to verify that it is a Please try to verify that it is a Privoxy bug, - and not a browser or site bug first. If unsure, + and not a browser or site bug or documented behaviour that just happens + to be different than what you expected. If unsure, try Privoxy, and see if the problem persists. - If you are using your own custom configuration, please try - the stock configs to see if the problem is configuration related.

, and see if the problem persists.

If you are using your own custom configuration, please try + the stock configs to see if the problem is configuration related. + If you're having problems with a feature that is disabled by default, + please ask around on the mailing list if others can reproduce the problem.

If not using the latest version, the bug may have been found +> If you aren't using the latest Privoxy version, the bug may have been found and fixed in the meantime. We would appreciate if you could take the time to upgrade to the latest version (or even the latest CVS snapshot) and verify - your bug.

Please be sure to provide the following information:

The exact Privoxy version of the proxy software +> version you are using (if you got the source from CVS, please also provide the source code revisions as shown in "uname -a" should do. +> should do, + in case of GNU/Linux, please also name the distribution.

  • Privoxy is one supplied - by the developers of Privoxy via SourceForge, - or somewhere else. +> developers via SourceForge, + or if you got your copy somewhere else.

  • Tor. If so, please try - disabling the other proxy. +>. If so, please + temporary disable the other proxy to see if the symptoms change.

  • Please provide your SF login, or email address, in case we - need to contact you. -

  • You don't have to tell us your actual name when filing a problem + report, but please use a nickname so we can differentiate between + your messages and the ones entered by other "anonymous" users that + may respond to your request if they have the same problem or already + found a solution.

    Please also check the status of your request a few days after submitting + it, as we may request additional information. If you use a SF id, + you should automatically get a mail when someone responds to your request.

    The 8.3. Request New Features8.3. Request New Features

    You are welcome to submit ideas on new features or other proposals for improvement through our feature request tracker at @@ -418,8 +424,8 @@ CLASS="SECT2" CLASS="SECT2" >8.4. Other8.4. Other

    For any other issues, feel free to use the mailing lists. Technically interested users and people who wish to contribute to the project are also welcome on the developers list! diff --git a/doc/webserver/developer-manual/copyright.html b/doc/webserver/developer-manual/copyright.html index 56a72c19..1c680239 100644 --- a/doc/webserver/developer-manual/copyright.html +++ b/doc/webserver/developer-manual/copyright.html @@ -1,11 +1,11 @@ + Privoxy Copyright, License and History9. Privoxy Copyright, License and History9. Privoxy Copyright, License and History

    Copyright © 2001 - 2006 by Privoxy Developers Copyright © 2001 - 2007 by Privoxy Developers

    Some source code is based on code Copyright © 1997 by Anonymous Coders @@ -96,9 +96,9 @@ CLASS="SECT2" >

    9.1. License

    9.1. License

    9.2. History

    9.2. History

    A long time ago, there was the The CVS Repository2. The CVS Repository2. The CVS Repository

    If you become part of the active development team, you will eventually need write access to our holy grail, the CVS repository. One of the @@ -88,8 +88,8 @@ CLASS="SECT2" CLASS="SECT2" >2.1. Access to CVS2.1. Access to CVS

    The project's CVS repository is hosted on 2.2. Branches2.2. Branches

    Within the CVS repository, there are modules and branches. As mentioned, the sources are in the 2.3. CVS Commit Guidelines2.3. CVS Commit Guidelines

    The source tree is the heart of every software project. Every effort must be made to ensure that it is readable, compilable and consistent at all diff --git a/doc/webserver/developer-manual/documentation.html b/doc/webserver/developer-manual/documentation.html index eee065d6..d34ca841 100644 --- a/doc/webserver/developer-manual/documentation.html +++ b/doc/webserver/developer-manual/documentation.html @@ -1,11 +1,11 @@ + Documentation Guidelines3. Documentation Guidelines3. Documentation Guidelines

    All formal documents are maintained in Docbook SGML and located in the - doc/source/*doc/source/* directory. You will need

    Formal documents are built with the Makefile targets of - make dokmake dok, or alternately - make redhat-dokmake redhat-dok. If you have problems, try both. The build process uses the document SGML sources in - doc/source/*/*doc/source/*/* to update all text files in - doc/text/doc/text/ and to update all HTML - documents in doc/webserver/doc/webserver/.

  • First, build the docs by running First, build the docs by running make - dok (or alternately (or alternately make - redhat-dok). For PDF docs, do ). For PDF docs, do make - dok-pdf.

  • Run Run make webservermake webserver which copies all - files from doc/webserverdoc/webserver to the sourceforge webserver via scp.

    3.1. Quickstart to Docbook and SGML3.1. Quickstart to Docbook and SGML

    If you are not familiar with SGML, it is a markup language similar to HTML. Actually, not a mark up language per se, but a language used to define @@ -545,11 +545,11 @@ CLASS="SECT2" CLASS="SECT2" >3.2. Privoxy Documentation Style Documentation Style

    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 @@ -689,8 +689,8 @@ CLASS="SECT2" CLASS="SECT2" >3.3. Privoxy Custom Entities3.3. Privoxy Custom Entities

    version string, e.g. "3.0.6""3.0.7". Privoxy Developer ManualPrivoxy Developer ManualPrivoxy Developer Manual

    Copyright © 2001-2006 by +> © 2001-2007 by Privoxy Developers @@ -48,26 +48,27 @@ TARGET="_top"

    $Id: developer-manual.sgml,v 2.11 2006/09/26 02:36:29 hal9 Exp $

    $Id: developer-manual.sgml,v 2.13 2007/10/30 17:59:31 fabiankeil Exp $

    The developer manual provides guidance on coding, testing, packaging, documentation and other issues of importance to those involved with Privoxy development. It is mandatory (and helpful!) reading - for anyone who wants to join the team.

    Please note that this document is constantly evolving. This copy represents - the state at the release of version 3.0.6. + the state at the release of version 3.0.7. You can find the latest version of the this manual at 4.7.10. "Uncertain" new code and/or changes to - existing code, use FIXME

    9.1. License
    9.2. History
    Introduction1. Introduction1. Introduction

    Junkbuster, is an Open Source project - and licensed under the GPL. As such, , is a Free Software project + and the code is licensed under the GPL. As such, + Privoxy - 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 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 Privoxy, and @@ -99,7 +100,7 @@ CLASS="APPLICATION"

    One does not have to be a programmer to contribute. Packaging, testing, - and porting, are all important jobs as well. + documenting and porting, are all important jobs as well.

    1.1. Quickstart to Privoxy Development1.1. Quickstart to Privoxy Development

    The first step is to join the Releasing a New Version6. Releasing a New Version6. Releasing a New Version

    When we release versions of 6.1. Version numbers6.1. Version numbers

    First you need to determine which version number the release will have. 6.2. Before the Release: Freeze6.2. Before the Release: Freeze

    The following 6.3. Building and Releasing the Packages6.3. Building and Releasing the Packages

    Now the individual packages can be built and released. Note that for GPL reasons the first package to be released is always the source tarball. @@ -524,8 +524,8 @@ CLASS="SECT3" CLASS="SECT3" >6.3.1. Note on Privoxy Packaging6.3.1. Note on Privoxy Packaging

    Please keep these general guidelines in mind when putting together your package. These apply to 6.3.2. Source Tarball6.3.2. Source Tarball

    First, 6.3.3. SuSE, Conectiva or Red Hat RPM6.3.3. SuSE, Conectiva or Red Hat RPM

    In following text, replace 6.3.4. OS/26.3.4. OS/2

    First, 6.3.5. Solaris6.3.5. Solaris

    Login to Sourceforge's compilefarm via ssh:

    6.3.6. Windows6.3.6. Windows

    You should ensure you have the latest version of Cygwin (from 6.3.7. Debian6.3.7. Debian

    First,

      debchange -v 3.0.6-stable-1 "New upstream version"
    debchange -v 3.0.7-beta-1 "New upstream version" This will create ../privoxy_3.0.6-stable-1_i386.deb../privoxy_3.0.7-beta-1_i386.deb
    which can be uploaded. To upload the package to Sourceforge, simply issue @@ -1407,8 +1407,8 @@ CLASS="SECT3" CLASS="SECT3" >6.3.8. Mac OSX6.3.8. Mac OSX

    First, 6.3.9. FreeBSD6.3.9. FreeBSD

    Login to Sourceforge's compile-farm via ssh:

    6.3.10. HP-UX 116.3.10. HP-UX 11

    First, 6.3.11. Amiga OS6.3.11. Amiga OS

    First, 6.3.12. AIX6.3.12. AIX

    Login to Sourceforge's compilefarm via ssh:

    6.4. Uploading and Releasing Your Package6.4. Uploading and Releasing Your Package

    After the package is ready, it is time to upload it to SourceForge, and go through the release steps. The upload @@ -1824,7 +1824,7 @@ CLASS="LITERAL" CLASS="emphasis" >3.0.6 +>3.0.7 (beta). @@ -1871,8 +1871,8 @@ CLASS="SECT2" CLASS="SECT2" >6.5. After the Release6.5. After the Release

    When all (or: most of the) packages have been uploaded and made available, send an email to the See also10. See also10. See also

    Other references and sites of interest to http://www.squid-cache.org/, a very popular +>, a popular caching proxy, which is often used together with Privoxy http://www.pps.jussieu.fr/~jch/software/polipo/, + Polipo is a caching proxy with advanced features + like pipelining, multiplexing and caching of partial instances. In many setups + it can be used as Squid replacement. +

    +

    http://tor.eff.org/ Testing Guidelines5. Testing Guidelines5. Testing Guidelines

    To be filled.

    5.1. Testplan for releases5.1. Testplan for releases

    Explain release numbers. major, minor. developer releases. etc. @@ -159,8 +159,8 @@ CLASS="SECT2" CLASS="SECT2" >5.2. Test reports5.2. Test reports

    Please submit test reports only with the Update the Webserver7. Update the Webserver7. Update the Webserver

    The webserver should be updated at least with each stable release. When updating, please follow these steps to make sure that no broken links, diff --git a/doc/webserver/faq/index.html b/doc/webserver/faq/index.html index 303f028f..3a15aeac 100644 --- a/doc/webserver/faq/index.html +++ b/doc/webserver/faq/index.html @@ -45,7 +45,7 @@ TARGET="_top" >

    $Id: faq.sgml,v 2.31 2007/11/05 02:34:53 hal9 Exp $

    $Id: faq.sgml,v 2.33 2007/11/15 03:30:20 hal9 Exp $

    .

    On the other hand, if you use non-Microsoft products, and you occasionally - notice wierd characters on pages, you might want to try it.

    Manpage of PRIVOXY - -

    PRIVOXY

    -Section: (1)
    Updated: 13 November 2006
    Index -
    - -  -

    NAME

    - -privoxy - Privacy Enhancing Proxy -  -

    SYNOPSIS

    - -

    -privoxy [--help ] [--version ] [--no-daemon ] [--pidfile pidfile ] [--user user[.group] ] [--chroot ] [configfile ] -

    -  -

    OPTIONS

    - -

    - -Privoxy may be invoked with the following command line -options: -

    -
    --help
    -Print brief usage info and exit. -
    --version
    -Print version info and exit. -
    --no-daemon
    -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. -
    --pidfile pidfile
    -On startup, write the process ID to pidfile. -Delete the pidfile on exit. -Failure to create or delete the pidfile -is non-fatal. If no --pidfile option is given, no PID file will be used. -
    --user user[.group]
    -After (optionally) writing the PID file, assume the user ID of -user and the GID of -group, or, if the optional -group was not given, the default group of -user. Exit if the privileges are not -sufficient to do so. -
    --chroot
    -Before changing to the user ID given in the --user option, chroot to -that user's home directory, i.e. make the kernel pretend to the -Privoxy process that the directory tree starts -there. If set up carefully, this can limit the impact of possible -vulnerabilities in Privoxy to the files contained in -that hierarchy. -
    -

    - -If the configfile is not specified on the command line, -Privoxy will look for a file named -config in the current directory . If no -configfile is found, Privoxy will -fail to start. -  -

    DESCRIPTION

    - -

    - -Privoxy is a -web proxy -with advanced filtering capabilities for protecting -privacy, modifying web page data, managing -cookies, -controlling access, and removing ads, banners, pop-ups and other obnoxious -Internet junk. Privoxy has a very flexible configuration and can be -customized to suit individual needs and tastes. Privoxy has application for -both stand-alone systems and multi-user networks. -

    - -Privoxy is based on Internet Junkbuster (tm). -  -

    INSTALLATION AND USAGE

    - -

    - -Browsers must be individually configured to use Privoxy 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: Edit; -Preferences; Advanced; -Proxies; Manual Proxy Configuration; -View. -

    - -For Firefox, go through: Tools; -Options; General; -Connection Settings; -Manual Proxy Configuration. -

    - -For Internet Explorer, go through: Tools; -Internet Properties; Connections; -LAN Settings. -

    - -The Secure (SSL) Proxy should also be set to the same values, otherwise -https: URLs will not be proxied. Note: Privoxy can only -proxy HTTP and HTTPS traffic. Do not try it with FTP or other protocols. -HTTPS presents some limitations, and not all features will work with HTTPS -connections. -

    - -For other browsers, check the documentation. -  -

    CONFIGURATION

    - -

    - -Privoxy can be configured with the various configuration -files. The default configuration files are: config, -default.filter, and -default.action. user.action should -be used for locally defined exceptions to the default rules of -default.action, and user.filter for -locally defined filters. These are well commented. On Unix -and Unix-like systems, these are located in -/etc/privoxy/ by default. -

    - -Privoxy uses the concept of actions -in order to manipulate the data stream between the browser and remote sites. -There are various actions available with specific functions for such things -as blocking web sites, managing cookies, etc. These actions can be invoked -individually or combined, and used against individual URLs, or groups of URLs -that can be defined using wildcards and regular expressions. The result is -that the user has greatly enhanced control and freedom. -

    - -The actions list (ad blocks, etc) can also be configured with your -web browser at http://config.privoxy.org/. -Privoxy's configuration parameters can also be viewed at -the same page. In addition, Privoxy can be toggled on/off. -This is an internal page, and does not require Internet access. -

    - -See the User Manual for a detailed -explanation of installation, general usage, all configuration options, new -features and notes on upgrading. -  -

    SAMPLE CONFIGURATION

    - -

    - -A brief example of what a simple default.action -configuration might look like: -

    -

    - # Define a few useful custom aliases for later use
    - {{alias}}
    -
    - # Useful aliases that combine more than one action
    - +crunch-cookies = +crunch-incoming-cookies +crunch-outgoing-cookies
    - -crunch-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies
    - +block-as-image = +block +handle-as-image
    -
    - # Fragile sites should have the minimum changes
    - fragile     = -block -deanimate-gifs -fast-redirects -filter \
    -               -hide-referer -prevent-cookies -kill-popups
    -
    - ## Turn some actions on ################################
    - ## NOTE: Actions are off by default, unless explictily turned on 
    - ## otherwise with the '+' operator.
    -
    -{ \
    --add-header \
    --block \
    --content-type-overwrite \
    --crunch-client-header \
    --crunch-if-none-match \
    --crunch-outgoing-cookies \
    --crunch-incoming-cookies \
    --crunch-server-header \
    -+deanimate-gifs{last} \
    --downgrade-http-version \
    --fast-redirects \
    --filter{js-annoyances} \
    --filter{js-events} \
    --filter{html-annoyances} \
    --filter{content-cookies} \
    -+filter{refresh-tags} \
    --filter{unsolicited-popups} \
    --filter{all-popups} \
    --filter{img-reorder} \
    --filter{banners-by-size} \
    --filter{banners-by-link} \
    -+filter{webbugs} \
    --filter{tiny-textforms} \
    -+filter{jumping-windows} \
    --filter{frameset-borders} \
    --filter{demoronizer} \
    --filter{shockwave-flash} \
    --filter{quicktime-kioskmode} \
    --filter{fun} \
    --filter{crude-parental} \
    -+filter{ie-exploits} \
    --filter{site-specifics} \
    --filter{google} \
    --filter{yahoo} \
    --filter{msn} \
    --filter{blogspot} \
    --filter{xml-to-html} \
    --filter{html-to-xml} \
    --filter{no-ping} \
    --filter{hide-tor-exit-notation} \
    --filter-client-headers \
    --filter-server-headers \
    --force-text-mode \
    --handle-as-empty-document
    --handle-as-image \
    --hide-accept-language \
    --hide-content-disposition \
    --hide-if-modified-since \
    -+hide-forwarded-for-headers \
    -+hide-from-header{block} \
    -+hide-referrer{forge} \
    --hide-user-agent \
    --inspect-jpegs \
    --kill-popups \
    --limit-connect \
    --overwrite-last-modified \
    --redirect \
    -+prevent-compression \
    --send-vanilla-wafer \
    --send-wafer \
    -+session-cookies-only \
    -+set-image-blocker{pattern} \
    --treat-forbidden-connects-like-blocks \
    -}
    -/ # '/' Match *all* URL patterns
    -
    - 
    - # Block all URLs that match these patterns
    - { +block }
    -  ad.
    -  ad[sv].
    -  .*ads.
    -  banner?.
    -  /.*count(er)?\.(pl|cgi|exe|dll|asp|php[34]?)
    -  .hitbox.com 
    -  media./.*(ads|banner)
    -
    - # Block, and treat these URL patterns as if they were 'images'.
    - # We would expect these to be ads.
    - { +block-as-image }
    -  .ad.doubleclick.net
    -  .a[0-9].yimg.com/(?:(?!/i/).)*$
    -  ad.*.doubleclick.net
    -
    - # Make exceptions for these harmless ones that would be 
    - # caught by our +block patterns just above.
    - { -block }
    -  adsl.
    -  adobe.
    -  advice.
    -  .*downloads.
    -  # uploads or downloads
    -  /.*loads
    -
    - -

    - -Then for a user.action, we would put local, -narrowly defined exceptions: -

    -

    - # Re-define aliases as needed here
    - {{alias}}
    -
    - # Useful aliases
    - -crunch-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies
    - 
    - # Set personal exceptions to the policies in default.action #######
    -
    - # Sites where we want persistent cookies, so allow *all* cookies
    - { -crunch-cookies -session-cookies-only }
    -  .redhat.com
    -  .sun.com
    -  .msdn.microsoft.com
    - 
    - # These sites breaks easily. Use our "fragile" alias here.
    - { fragile }
    -  .forbes.com
    -  mybank.example.com
    -
    - # Replace example.com's style sheet with one of my choosing
    - { +redirect{http://localhost/css-replacements/example.com.css} }
    -  example.com/stylesheet.css
    -
    - -

    - -See the comments in the configuration files themselves, or the -User Manual -for full explanations of the above syntax, and other Privoxy -configuration options. -  -

    FILES

    - -

    -

    - 
    - /usr/sbin/privoxy
    - /etc/privoxy/config
    - /etc/privoxy/default.action
    - /etc/privoxy/standard.action
    - /etc/privoxy/user.action
    - /etc/privoxy/default.filter
    - /etc/privoxy/user.filter
    - /etc/privoxy/trust
    - /etc/privoxy/templates/*
    - /var/log/privoxy/logfile
    -
    - -

    - -Various other files should be included, but may vary depending on platform -and build configuration. Additional documentation should be included in the local -documentation directory. -  -

    SIGNALS

    - -

    - -Privoxy terminates on the SIGINT, -SIGTERM and SIGABRT signals. Log -rotation scripts may cause a re-opening of the logfile by sending a -SIGHUP to Privoxy. Note that unlike -other daemons, Privoxy does not need to be made aware of -config file changes by SIGHUP -- it will detect them -automatically. -  -

    NOTES

    - -

    - -Please see the User Manual on how to contact the -developers, for feature requests, reporting problems, and other questions. -  -

    SEE ALSO

    - -

    - -Other references and sites of interest to Privoxy -users: -

    - -

    -http://www.privoxy.org/, -the Privoxy Home page. -

    -http://www.privoxy.org/faq/, -the Privoxy FAQ. -

    -http://sourceforge.net/projects/ijbswa/, -the Project Page for Privoxy on -SourceForge. -

    -http://config.privoxy.org/, -the web-based user interface. Privoxy must be -running for this to work. Shortcut: http://p.p/ -

    -http://sourceforge.net/tracker/?group_id=11118&atid=460288, to submit ``misses'' and other -configuration related suggestions to the developers. -

    -http://www.junkbusters.com/ht/en/cookies.html, -an explanation how cookies are used to track web users. -

    -http://www.junkbusters.com/ijb.html, -the original Internet Junkbuster. -

    -http://privacy.net/, a useful site -to check what information about you is leaked while you browse the web. -

    -http://www.squid-cache.org/, a very popular -caching proxy, which is often used together with Privoxy. -

    -http://tor.eff.org/, -Tor can help anonymize web browsing, -web publishing, instant messaging, IRC, SSH, and other applications. -

    -http://www.privoxy.org/developer-manual/, -the Privoxy developer manual. -  -

    DEVELOPMENT TEAM

    - -

    -

    - Fabian Keil, developer
    - David Schmidt, developer
    - 
    - Hal Burgiss
    - Ian Cummings
    - Roland Rosenfeld
    -
    - -  -

    COPYRIGHT AND LICENSE

    - -  -

    COPYRIGHT

    - -

    - -Copyright (C) 2001 - 2006 by Privoxy Developers <ijbswa-developers@lists.sourceforge.net> -

    - -Some source code is based on code Copyright (C) 1997 by Anonymous Coders -and Junkbusters, Inc. and licensed under the GNU General Public -License. -  -

    LICENSE

    - -

    - -Privoxy is free software; you can -redistribute it and/or modify it under the terms of the -GNU General Public -License, version 2, as published by the Free Software Foundation. -

    - -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, -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA -

    - -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. 51 Franklin Street, Fifth Floor -Boston, MA 02110-1301 -USA -

    - -


    - 

    Index

    -
    -
    NAME
    -
    SYNOPSIS
    -
    OPTIONS
    -
    DESCRIPTION
    -
    INSTALLATION AND USAGE
    -
    CONFIGURATION
    -
    SAMPLE CONFIGURATION
    -
    FILES
    -
    SIGNALS
    -
    NOTES
    -
    SEE ALSO
    -
    DEVELOPMENT TEAM
    -
    COPYRIGHT AND LICENSE
    -
    -
    COPYRIGHT
    -
    LICENSE
    -
    -
    -
    -This document was created by -man2html, -using the manual pages.
    -Time: 01:57:58 GMT, November 14, 2006 - - diff --git a/doc/webserver/user-manual/actions-file.html b/doc/webserver/user-manual/actions-file.html index f7a2172e..1b4406b2 100644 --- a/doc/webserver/user-manual/actions-file.html +++ b/doc/webserver/user-manual/actions-file.html @@ -259,7 +259,7 @@ CLASS="FILENAME" >

    8.1. Finding the Right Mix

    8.2. How to Edit

    . Note: the config file option enale-edit-actionsenable-edit-actions must be enabled for this to work. The editor allows both fine-grained control over every single feature on a per-URL basis, and easy choosing from wholesale sets of defaults @@ -893,7 +893,7 @@ CLASS="SECT3" >

    8.4.1. The Domain Pattern

    8.4.2. The Path Pattern

    Privoxy doesn't silently add a "^", @@ -1413,13 +1416,18 @@ CLASS="QUOTE" tags can be used to activate other tagger actions, as long as these other taggers look for headers that haven't already be parsed.

    For example you could tag client requests which use the POST method, - use this tag to activate another tagger that adds a tag if cookies - are send, and then block based on the cookie tag. However if you'd - reverse the position of the described taggers, and activated the method - tagger based on the cookie tagger, no method tags would be created. +> For example you could tag client requests which use the + POST method, + then use this tag to activate another tagger that adds a tag if cookies + are sent, and then use a block action based on the cookie tag. This allows + the outcome of one action, to be input into a subsequent action. However if + you'd reverse the position of the described taggers, and activated the + method tagger based on the cookie tagger, no method tags would be created. The method tagger would look for the request line, but at the time - the cookie tag is created the request line has already been parsed.

    While this is a limitation you should be aware of, this kind of indirection is seldom needed anyway and even the example doesn't @@ -6531,7 +6539,7 @@ CLASS="VARIABLELIST" >Typical use:

    Disable or disable filters based on the Content-Type header. +> Enable or disable filters based on the Content-Type header.

    # Tag every request with the declared content type
    +># Tag every request with the content type declared by the server
     {+server-header-tagger{content-type}}
     /
         

    8.5.39. Summary

    8.7.1. default.action

    8.7.2. user.action

    14.2. Privoxy's Internal Pages

  • - Toggle Privoxy on or off. In this case, config file. When toggled "off", "Privoxy" continues - to run, but only as a pass-through proxy, with no actions taking place: +> + continues to run, but only as a pass-through proxy, with no actions taking + place:

    Short cuts. Turn off, then on:

    the Bookmarklets section on a quick and easy way to do this (be sure to flush caches afterward!). Looking at the - logs is a good idea too.

    config file settings, and may need to be + turned "on".)

    Another easy troubleshooting step to try is if you have done any customization of your installation, revert back to the installed diff --git a/doc/webserver/user-manual/config.html b/doc/webserver/user-manual/config.html index 0a59a420..b34f636c 100644 --- a/doc/webserver/user-manual/config.html +++ b/doc/webserver/user-manual/config.html @@ -3560,14 +3560,14 @@ CLASS="APPLICATION" > CGI forms can lead to rather long URLs. This isn't a problem as far as the HTTP standard is concerned, but it can confuse clients with arbitrary - URL lenght limitations. + URL length limitations.

    Enabling split-large-forms causes Privoxy - to devide big forms into smaller ones to keep the URL length down. + to divide big forms into smaller ones to keep the URL length down. It makes editing a lot less convenient and you can no longer submit all changes at once, but at least it works around this browser bug. diff --git a/doc/webserver/user-manual/configuration.html b/doc/webserver/user-manual/configuration.html index d75573b4..9f35bda4 100644 --- a/doc/webserver/user-manual/configuration.html +++ b/doc/webserver/user-manual/configuration.html @@ -95,7 +95,7 @@ CLASS="SECT2" >

    6.1. Controlling Privoxy with Your Web Browser

        Privoxy Menu

    12.1. License

    Current Privoxy Team:

     Fabian Keil, developer
    +> Fabian Keil, lead developer
     David Schmidt, developer
     
     Hal Burgiss
    - Ian Cummings
    - Justin McMurtry
    - Roland Rosenfeld

    + Jörg Strohmayer

    Former Privoxy Team Members:

     Johny Agotnes 
     Rodrigo Barbosa
     Moritz Barsnick
    + Ian Cummings
     Brian Dessent
     Jon Foster
     Karsten Hopp
    @@ -278,11 +278,11 @@ CLASS="LITERALLAYOUT"  Adam Lock
     Guy Laroche
     Mark Martinec 
    + Justin McMurtry
     Andreas Oesterhelt
     Haroon Rafique
     Georg Sauthoff
     Thomas Steudten
    - Joerg Strohmayer
     Rodney Stromlund
     Sviatoslav Sviridov
     Sarantis Paskalis
    @@ -295,14 +295,14 @@ CLASS="LITERALLAYOUT" CLASS="LITERALLAYOUT" > Ken Arromdee
     Devin Bayer
    - Reiner Buehl
     Gergely Bor
    + Reiner Buehl
     Andrew J. Caines
     Clifford Caoile
     Frédéric Crozat
     Michael T. Davis
     Mattes Dolak 
    - Peter E
    + Peter E.
     Florian Effenberger
     Markus Elfring
     Dean Gaudet
    @@ -312,10 +312,13 @@ CLASS="LITERALLAYOUT"  Aaron Hamid
     Darel Henman
     Magnus Holmgren
    + Ralf Horstmann
    + Stefan Huehner 
     Peter Hyman
     Derek Jennings
     Petr Kadlec
     David Laight
    + Bert van Leeuwen
     Don Libes  
     Paul Lieverse
     Toby Lyward
    @@ -323,30 +326,39 @@ CLASS="LITERALLAYOUT"  Jindrich Makovicka 
     David Mediavilla 
     Raphael Moll
    + Amuro Namie
     Adam Piggott
    + Dan Price
    + Lee R.
     Roberto Ragusa
     Félix Rauch
     Maynard Riley
     Chung-chieh Shan
    - Spinor S
    + Spinor S.
     Bart Schelstraete
     Oliver Stoeneberg
     Peter Thoenen
     Martin Thomas
    - Bobby G. Vinyard
    + Song Weijia
     Jörg Weinmann 
     Darren Wiebe
    + Bobby G. Vinyard
     Anduin Withers
     Oliver Yeoh
     Jamie Zawinski

    Privoxy is based in part on code originally developed by:

    Privoxy is based in part on code originally developed by + Junkbusters Corp. and Anonymous Coders.

     Junkbusters Corp.
    - Anonymous Coders
    - Ulrich Drepper (strptime fallback)
    - Philip Hazel (PCRE)

    Privoxy heavily relies on Philip Hazel's PCRE.

    The code to filter compressed content makes use of zlib + which is written by Jean-loup Gailly and Mark Adler.

    On systems that lack snprintf(), Privoxy is using a version + written by Mark Martinec. On systems that lack strptime(), + Privoxy is using the one from the GNU C Library written + by Ulrich Drepper.

    server-header-tagger. - Taggers and filters use the same syntax in the filter files, the differnce + Taggers and filters use the same syntax in the filter files, the difference is that taggers don't modify the text they are filtering, but use a rewritten version of the filtered text as tag. The tags can then be used to change the applying actions through sections with

    9.1. Filter File Tutorial


    $Id: user-manual.sgml,v 2.41 2007/11/11 16:32:11 hal9 Exp $

    $Id: user-manual.sgml,v 2.44 2007/11/15 03:30:20 hal9 Exp $

  • Then build as above.

    Then build as above. In Privoxy 3.0.7 and later, all of these options +can also be disabled through the configuration file.

    1. Introduction

    This documentation is included with the current UNRELEASED version of +> This documentation is included with the current beta version of Privoxy

    Since this is a UNRELEASED version, not all new features are well tested. This +> 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

    client-header-tagger - that can be used to apply arbitrary "tags" to - each request's headers. These + based on client and server headers. + These "tags" can then - subsequently be used by other actions, greatly increasing - can then subsequently be used + to control the other actions used for the current request, + greatly increasing Privoxy's flexibity and selectivity. See 's flexibility and selectivity. See tag patterns for more on tags. - +> for more information on tags.

  • Header filtering can be done with dedicated header filters now. As a result +> Header filtering is done with dedicated header filters now. As a result the actions "filter-client-headers"Privoxy 3.0.5 to apply - the content filters to the headers as, well have been removed again. + content filters to the headers have been removed. See the new actions server-header-filterclient-header-filter. +> for details.

  • accept-intercepted-requests - which will combine Privoxy with any packet filter to create an intercepting - proxy for HTTP/1.1 requests (and for HTTP/1.0 requests with Host - header set) so that explicitly setting the browser's proxy settings - is not necessary. + which allows to combine Privoxy with any packet filter to create an + intercepting proxy for HTTP/1.1 requests (and for HTTP/1.0 requests + with Host header set). This means clients can be forced to use + Privoxy even if their proxy settings are configured differently.

  • templdir - to designate an alternate location for Privoxy's own CGI templates - to make sure any locally customized templates aren't overwritten - during upgrades. + to designate an alternate location for Privoxy's + locally customized CGI templates so that + these are not overwritten during upgrades.

  • --pre-chroot-nslookup hostname to - intialize the resolver library before chroot'ing. On some systems this + initialize the resolver library before chroot'ing. On some systems this reduces the number of files that must be copied into the chroot tree. (Patch provided by Stephen Gildea)

  • The The forward-override action - allows changing of the forwarding settings based on client headers like the - User-Agent, or the request origin. + allows changing of the forwarding settings through the actions files. + Combined with tags, this allows to choose the forwarder based on + client headers like the User-Agent, or the request origin.

  • zlib support is now available as a compile - time option for compressed documents. + time option to filter compressed content. Patch provided by Wil Mahan.

  • Privoxy. +>. Patch provided by Petr Kadlec.

  • Logging can be turned on or off. +> Logging can be completely turned off by not specifying a logfile directive.

  • Many bugfixes, memory leaks addressed, code improvements, and logging - improvments. + improvements.

  • For a more detailed list of changes please have a look at the ChangeLog.

    Privoxy 3.0.5 to apply the content filters to - the headers as, well have been removed and replaced with new actions. +> to apply content filters to + the headers have been removed and replaced with new actions. See the What's New section