Various small updates for new actions, filterfiles, etc.
authorhal9 <hal9@users.sourceforge.net>
Sat, 2 Sep 2006 12:49:37 +0000 (12:49 +0000)
committerhal9 <hal9@users.sourceforge.net>
Sat, 2 Sep 2006 12:49:37 +0000 (12:49 +0000)
13 files changed:
doc/source/p-config.sgml
doc/source/user-manual.sgml
doc/webserver/user-manual/actions-file.html
doc/webserver/user-manual/appendix.html
doc/webserver/user-manual/config.html
doc/webserver/user-manual/configuration.html
doc/webserver/user-manual/copyright.html
doc/webserver/user-manual/filter-file.html
doc/webserver/user-manual/index.html
doc/webserver/user-manual/installation.html
doc/webserver/user-manual/introduction.html
doc/webserver/user-manual/quickstart.html
doc/webserver/user-manual/startup.html

index ceefe6c..02669a0 100644 (file)
@@ -3,9 +3,9 @@
 
  Purpose     :  Used with other docs and files only.
 
- $Id: p-config.sgml,v 1.1.2.10 2003/02/20 13:50:37 hal9 Exp $
+ $Id: p-config.sgml,v 2.5 2006/07/18 14:48:51 david__schmidt Exp $
 
- Copyright (C) 2001, 2002 Privoxy Developers <developers@privoxy.org>
+ Copyright (C) 2001-2006 Privoxy Developers <developers@privoxy.org>
  See LICENSE.
 
  ========================================================================
  Sample Configuration File for Privoxy v&p-version;
 </title>
 <para>
- $Id: p-config.sgml,v 1.1.2.10 2003/02/20 13:50:37 hal9 Exp $
+ $Id: p-config.sgml,v 2.5 2006/07/18 14:48:51 david__schmidt Exp $
 </para>
 <para>
-Copyright (C) 2001, 2002 Privoxy Developers http://privoxy.org
+Copyright (C) 2001-2006 Privoxy Developers http://privoxy.org
 </para>
 
 <para>
@@ -126,7 +126,7 @@ Copyright (C) 2001, 2002 Privoxy Developers http://privoxy.org
 
 <para>
  This file holds the Privoxy configuration.  If you modify this
- file, you will need to send a couple of requests to the proxy
+ file, you will need to send a couple of requests (of any kind) to the proxy
  before any changes take effect.
 </para>
 <para>
@@ -376,7 +376,7 @@ actionsfile
   <term>Specifies:</term>
   <listitem>
    <para>
-    The <link linkend="filter-file">filter file</link> to use
+    The <link linkend="filter-file">filter file(s)</link> to use
    </para>
   </listitem>
  </varlistentry>
@@ -406,25 +406,33 @@ actionsfile
   <term>Notes:</term>
   <listitem>
    <para>
-    The <link linkend="filter-file">filter file</link> contains content modification
+    Multiple <literal>filterfiles</literal> lines are permitted.
+   </para>
+   <para>
+    The <link linkend="filter-file">filter files</link> contain content modification
     rules that use <link linkend="regex">regular expressions</link>. 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 <quote>Microsoft</quote> with <quote>MicroSuck</quote> wherever
-    it appears on a Web page.
+    powerful changes on the content of Web pages, and optionally the headers
+    as well, e.g., you could disable your favorite JavaScript annoyances,
+    re-write the actual displayed text, or just have some fun replacing
+    <quote>Microsoft</quote> with <quote>MicroSuck</quote> wherever it appears
+    on a Web page.
    </para>
    <para>
     The
     <literal>+<link linkend="filter">filter</link>{<replaceable class="parameter">name</replaceable>}</literal>
     actions rely on the relevant filter (<replaceable class="parameter">name</replaceable>)
-    to be defined in the filter file!
+    to be defined in a filter file!
    </para>
    <para>
     A pre-defined filter file called <filename>default.filter</filename> that contains
-    a bunch of handy filters for common problems is included in the distribution.
+    a number of useful filters for common problems is included in the distribution.
     See the section on the <literal><link linkend="filter">filter</link></literal>
     action for a list.
    </para>
+   <para>
+    It is recommended to place any locally adapted filters into a separate
+    file, such as <filename>user.filter</filename>.
+   </para>
   </listitem>
  </varlistentry>
 </variablelist>
index 2b5198e..4b28669 100644 (file)
@@ -12,7 +12,7 @@
 <!entity p-authors SYSTEM "p-authors.sgml">
 <!entity config SYSTEM "p-config.sgml">
 <!entity p-version "3.0.4">
-<!entity p-status "BETA">
+<!entity p-status "beta">
 <!entity % p-authors-formal "INCLUDE"> <!-- include additional text, etc  -->
 <!entity % p-not-stable "INCLUDE">
 <!entity % p-stable "IGNORE">
@@ -32,7 +32,7 @@
                 This file belongs into
                 ijbswa.sourceforge.net:/home/groups/i/ij/ijbswa/htdocs/
 
- $Id: user-manual.sgml,v 2.14 2006/08/29 10:59:36 hal9 Exp $
+ $Id: user-manual.sgml,v 2.15 2006/08/30 11:15:22 hal9 Exp $
 
  Copyright (C) 2001- 2006 Privoxy Developers <developers@privoxy.org>
  See LICENSE.
@@ -58,7 +58,7 @@
  </subscript>
 </pubdate>
 
-<pubdate>$Id: user-manual.sgml,v 2.14 2006/08/29 10:59:36 hal9 Exp $</pubdate>
+<pubdate>$Id: user-manual.sgml,v 2.15 2006/08/30 11:15:22 hal9 Exp $</pubdate>
 
 <!--
 
@@ -116,10 +116,9 @@ Hal.
  <application>Privoxy</application>, v.&p-version;<![%p-not-stable;[, 
  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 <quote>soon</quote> ;-)]]>.
+ configuration files. Development of a new version is currently nearing
+ completion, and includes significant changes and enhancements over
+ earlier versions. ]]>.
 </para>
 
 <!-- include only in non-stable versions -->
@@ -135,10 +134,11 @@ Hal.
 <!--   ~~~~~       New section      ~~~~~     -->
 <sect2 id="features"><title>Features</title>
 <para>
- In addition to <application>Internet Junkbuster's</application> traditional
- features of ad and banner blocking and cookie management,
- <application>Privoxy</application> provides new features<![%p-not-stable;[,
- some of them currently under development]]>:
+ In addition to the core 
+ features of ad blocking and cookie management,
+ <application>Privoxy</application> provides many supplemental
+ features<![%p-not-stable;[, some of them currently under development]]>, 
+ that give the end-user more control, more privacy and more freedom:
 </para>
 <!-- Include newfeatures.sgml boilerplate here: -->
  &newfeatures;
@@ -373,8 +373,9 @@ automatically start Privoxy in the boot process.
 <para>
  In order not to lose your personal changes and adjustments when updating
  to the latest <literal>default.action</literal> file we <emphasis>strongly
- recommend</emphasis> that you use <literal>user.action</literal> for your
- customization of <application>Privoxy</application>. See the <link
+ recommend</emphasis> that you use <literal>user.action</literal> and 
+ <literal>user.filter</literal> for your local
+ customizations of <application>Privoxy</application>. See the <link
  linkend="actions-file">Chapter on actions files</link> for details.
 </para>
 
@@ -1580,12 +1581,19 @@ must find a better place for this paragraph
 <sect1 id="actions-file"><title>Actions Files</title>
 
 <para>
- The actions files are used to define what actions
- <application>Privoxy</application> takes for which URLs, and thus determine
+ The actions files are used to define what <emphasis>actions</emphasis>
+ <application>Privoxy</application> takes for which URLs, and thus determines
  how ad images, cookies and various other aspects of HTTP content and
- transactions are handled, and on which sites (or even parts thereof). There 
- are three such files included with <application>Privoxy</application>
- with differing purposes:
+ transactions are handled, and on which sites (or even parts thereof). 
+ There are a number of such actions, with a wide range of functionality.
+ Each action does something a little different.
+ These actions give us a veritable arsenal of tools with which to exert 
+ our control, preferences and independence.
+</para> 
+<para>
+ There 
+ are three action files included with <application>Privoxy</application> with
+ differing purposes:
  </para>
  
  <para>
@@ -2487,7 +2495,7 @@ new action
   <term>Effect:</term>
   <listitem>
    <para>
-    Deletes every header send by the client that contains the string the user supplied as parameter.
+    Deletes every header sent by the client that contains the string the user supplied as parameter.
    </para>
   </listitem>
  </varlistentry>
@@ -3336,8 +3344,10 @@ problem-host.example.com</screen>
  <varlistentry>
   <term>Effect:</term>
   <listitem>
-   <para>Extend filtering capabilities to the client's headers, which 
-   by default applies only to the document itself.
+   <para>
+    By default, <application>Privoxy's</application> filters only apply 
+    to the document content itself. This will extend those filters to 
+    include the client's headers as well.
    </para>
   </listitem>
  </varlistentry>
@@ -3434,8 +3444,10 @@ problem-host.example.com
  <varlistentry>
   <term>Effect:</term>
   <listitem>
-   <para>Extend filtering capabilities to the server's headers, which 
-   by default applies only to the document itself.
+   <para>
+    By default, <application>Privoxy's</application> filters only apply 
+    to the document content itself. This will extend those filters to 
+    include the server's headers as well.
    </para>
   </listitem>
  </varlistentry>
@@ -4349,7 +4361,7 @@ new action
   <term>Effect:</term>
   <listitem>
    <para>
-    To protect against a known exploit
+    Protect against a known exploit
    </para>
   </listitem>
  </varlistentry>
@@ -4813,7 +4825,8 @@ new action
   <listitem>
    <para>
     This action is useful to replace whole documents with your own
-    ones. For that to work, they have to be available on another server.
+    ones. For that to work, they have to be available on another server, 
+    and both should resolve.
    </para>
    <para>
     You can do the same by combining the actions
@@ -5250,7 +5263,7 @@ new action
    <para>
     If you previously configured <application>Privoxy</application> to do the
     request through a SSL tunnel, everything will work. Most likely you haven't
-    and the server will responds with an error message because it is expecting
+    and the server will respond with an error message because it is expecting
     HTTPS.
    </para>
   </listitem>
@@ -5500,11 +5513,15 @@ that also explains why and how aliases are used:
  { \
  -<link linkend="ADD-HEADER">add-header</link> \
  -<link linkend="BLOCK">block</link> \
+ -<link linkend="CONTENT-TYPE-OVERWRITE">content-type-overwrite</link> \
+ -<link linkend="CRUNCH-CLIENT-HEADER">crunch-client-header</link> \
+ -<link linkend="CRUNCH-IF-NONE-MATCH">crunch-if-none-match</link> \
  -<link linkend="CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</link> \
+ -<link linkend="CRUNCH-SERVER-HEADER">crunch-server-header</link> \
  -<link linkend="CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</link> \
  +<link linkend="DEANIMATE-GIFS">deanimate-gifs</link> \
  -<link linkend="DOWNGRADE-HTTP-VERSION">downgrade-http-version</link> \
- +<link linkend="FAST-REDIRECTS">fast-redirects</link> \
+ +<link linkend="FAST-REDIRECTS">fast-redirects{check-decoded-url}</link> \
  +<link linkend="FILTER-JS-ANNOYANCES">filter{js-annoyances}</link> \
  -<link linkend="FILTER-JS-EVENTS">filter{js-events}</link> \
  +<link linkend="FILTER-HTML-ANNOYANCES">filter{html-annoyances}</link> \
@@ -5525,18 +5542,29 @@ that also explains why and how aliases are used:
  -<link linkend="FILTER-FUN">filter{fun}</link> \
  -<link linkend="FILTER-CRUDE-PARENTAL">filter{crude-parental}</link> \
  +<link linkend="FILTER-IE-EXPLOITS">filter{ie-exploits}</link> \     
+ -<link linkend="FILTER-CLIENT-HEADERS">filter-client-headers</link> \
+ -<link linkend="FILTER-SERVER-HEADERS">filter-server-headers</link> \
+ -<link linkend="FORCE-TEXT-MODE">force-text-mode</link> \
+ -<link linkend="HANDLE-AS-EMPTY-DOCUMENT">handle-as-empty-document</link> \
  -<link linkend="HANDLE-AS-IMAGE">handle-as-image</link> \
+ -<link linkend="HIDE-ACCEPT-LANGUAGE">hide-accept-language</link> \
+ -<link linkend="HIDE-CONTENT-DISPOSITION">hide-content-disposition</link> \
+ -<link linkend="HIDE-IF-MODIFIED-SINCE">hide-if-modified-since</link> \
  +<link linkend="HIDE-FORWARDED-FOR-HEADERS">hide-forwarded-for-headers</link> \
  +<link linkend="HIDE-FROM-HEADER">hide-from-header{block}</link> \
  +<link linkend="HIDE-REFERER">hide-referrer{forge}</link> \
  -<link linkend="HIDE-USER-AGENT">hide-user-agent</link> \
+ -<link linkend="INSPECT-JPEGS">inspect-jpegs</link> \
  -<link linkend="KILL-POPUPS">kill-popups</link> \
  -<link linkend="LIMIT-CONNECT">limit-connect</link> \
  +<link linkend="PREVENT-COMPRESSION">prevent-compression</link> \
+ -<link linkend="OVERWRITE-LAST-MODIFIED">overwrite-last-modified</link> \
+ -<link linkend="REDIRECT">redirect</link> \
  -<link linkend="SEND-VANILLA-WAFER">send-vanilla-wafer</link> \
  -<link linkend="SEND-WAFER">send-wafer</link> \
  +<link linkend="SESSION-COOKIES-ONLY">session-cookies-only</link> \
  +<link linkend="SET-IMAGE-BLOCKER">set-image-blocker{pattern}</link> \
+ -<link linkend="TREAT-FORBIDDEN-CONNECTS-LIKE-BLOCKS">treat-forbidden-connects-like-blocks</link> \
  }
  / # forward slash will match *all* potential URL patterns.</screen>
 </para>
@@ -5691,7 +5719,7 @@ bs*.einets.com
 
 <para>
  One of the most important jobs of <application>Privoxy</application>
- is to block banners. A huge bunch of them are already <quote>blocked</quote>
+ is to block banners. A huge bunch of them can be <quote>blocked</quote>
  by the <literal><link linkend="filter">filter</link>{banners-by-size}</literal>
  action, which we enabled above, and which deletes the references to banner
  images from the pages while they are loaded, so the browser doesn't request
@@ -5799,7 +5827,7 @@ www.ugu.com/sui/ugu/adv</screen>
 </para>
 
 <para>
- The actual <filename>default.action</filename> is of course more
+ The actual <filename>default.action</filename> is of course much more
  comprehensive, but we hope this example made clear how it works.
 </para>
 
@@ -5866,9 +5894,12 @@ shop        = -crunch-all-cookies allow-popups
 
 # Allow ads for selected useful free sites:
 #
-allow-ads   = -block -filter{banners-by-size} -filter{banners-by-link}</screen>
+allow-ads   = -block -filter{banners-by-size} -filter{banners-by-link}
+
+# Alias for specific file types that are text, but might have conflicting
+# MIME types. We want the browser to force these to be text documents.
+handle-as-text = -<link linkend="FILTER">filter</link> +-<link linkend="content-type-overwrite">content-type-overwrite{text/plain}</link> +-<link linkend="FORCE-TEXT-MODE">force-text-mode</link> -<link linkend="HIDE-CONTENT-DISPOSITION">hide-content-disposition</link></screen>
 
 </para>
 
 <para>
@@ -6017,6 +6048,19 @@ ar.atwola.com/</screen>
  <literal>-<link linkend="filter-banners-by-link">filter{banners-by-link}</link></literal> above.
 </para>
 
+<para>
+ Invoke another alias here to force an over-ride of the MIME type <literal>
+ application/x-sh</literal> which typically would open a download type 
+ dialog. In my case, I want to look at the shell script, and then I can save
+ it should I choose to.
+</para>
+
+<para>
+<screen>
+{ handle-as-text }
+/.*\.sh$</screen>   
+</para>
+
 <para>
  <filename>user.action</filename> is generally the best place to define
  exceptions and additions to the default policies of
@@ -7386,10 +7430,10 @@ Requests</title>
    linkend="DEANIMATE-GIFS"><quote>+deanimate-gifs</quote></link>
    action applies (and the document type fits the action), the rest of the page is
    read into memory (up to a configurable limit). Then the filter rules (from
-   <filename>default.filter</filename>) are processed against the buffered
-   content. Filters are applied in the order they are specified in one of the
-   filter files. Animated GIFs, if present, are
-   reduced to either the first or last frame, depending on the action
+   <filename>default.filter</filename> and any other filter files) are
+   processed against the buffered content. Filters are applied in the order
+   they are specified in one of the filter files. Animated GIFs, if present,
+   are reduced to either the first or last frame, depending on the action
    setting.The entire page, which is now filtered, is then sent by
    <application>Privoxy</application> back to your browser. 
   </para>
@@ -7469,7 +7513,8 @@ Requests</title>
 
 <para>
  Let's try an example, <ulink url="http://google.com">google.com</ulink>, 
- and look at it one section at a time:
+ and look at it one section at a time in a sample configuration (your real 
+ configuration may vary):
 </para>
 
 <para>
@@ -7478,38 +7523,63 @@ Requests</title>
 
  In file: default.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibutton>
 
-{-add-header 
- -block 
- -crunch-outgoing-cookies 
- -crunch-incoming-cookies 
- +deanimate-gifs{last} 
- -downgrade-http-version 
- +fast-redirects 
- -filter{popups} 
- -filter{fun} 
- -filter{shockwave-flash} 
- -filter{crude-parental} 
- +filter{html-annoyances} 
- +filter{js-annoyances} 
- +filter{content-cookies} 
- +filter{webbugs} 
- +filter{refresh-tags} 
- +filter{nimda} 
- +filter{banners-by-size} 
- +hide-forwarded-for-headers 
- +hide-from-header{block} 
- +hide-referer{forge} 
- -hide-user-agent 
- -handle-as-image 
- -kill-popups 
- -limit-connect 
- +prevent-compression 
- -send-vanilla-wafer 
- -send-wafer 
- +session-cookies-only 
- +set-image-blocker{pattern} }
+ {-add-header
+ -block
+ -content-type-overwrite
+ -crunch-client-header
+ -crunch-if-none-match
+ -crunch-incoming-cookies
+ -crunch-outgoing-cookies
+ -crunch-server-header
+ +deanimate-gifs {last}
+ -downgrade-http-version
+ +fast-redirects {check-decoded-url}
+ -filter {js-events}
+ -filter {content-cookies}
+ -filter {all-popups}
+ -filter {banners-by-link}
+ -filter {tiny-textforms}
+ -filter {frameset-borders}
+ -filter {demoronizer}
+ -filter {shockwave-flash}
+ -filter {quicktime-kioskmode}
+ -filter {fun}
+ -filter {crude-parental}
+ -filter {site-specifics}
+ +filter {js-annoyances}
+ +filter {html-annoyances}
+ +filter {refresh-tags}
+ +filter {unsolicited-popups}
+ +filter {img-reorder}
+ +filter {banners-by-size}
+ +filter {webbugs}
+ +filter {jumping-windows}
+ +filter {ie-exploits}
+ -filter-client-headers
+ -filter-server-headers
+ -force-text-mode
+ -handle-as-empty-document
+ -handle-as-image
+ -hide-accept-language
+ -hide-content-disposition
+ +hide-forwarded-for-headers
+ +hide-from-header {block}
+ -hide-if-modified-since
+ +hide-referrer {forge}
+ -hide-user-agent
+ -inspect-jpegs
+ -kill-popups
+ -limit-connect
+ -overwrite-last-modified
+ +prevent-compression
+ -redirect
+ -send-vanilla-wafer
+ -send-wafer
+ +session-cookies-only
+ +set-image-blocker {pattern}
+ -treat-forbidden-connects-like-blocks }
 /
-
  { -session-cookies-only }
  .google.com
 
@@ -7522,9 +7592,17 @@ In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut
 </para>
 
 <para>
- This tells us how we have defined our 
+ This is telling us how we have defined our 
  <link linkend="ACTIONS"><quote>actions</quote></link>, and
- which ones match for our example, <quote>google.com</quote>. The first listing
+ which ones match for our test case, <quote>google.com</quote>. 
+ Displayed is all the actions that are available to us. Remember,
+ the <literal>+</literal> sign denotes <quote>on</quote>. <literal>-</literal>
+ denotes <quote>off</quote>. So some are <quote>on</quote> here, but many 
+ are <quote>off</quote>. Each example we try may provide a slightly different
+ end result, depending on our configuration directives.
+</para>
+<para>
+ The first listing
  is any matches for the <filename>standard.action</filename> file. No hits at
  all here on <quote>standard</quote>. Then next is <quote>default</quote>, or
  our <filename>default.action</filename> file. The large, multi-line listing,
@@ -7542,8 +7620,9 @@ In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut
  <quote>.google.com</quote>. The first is negating our previous cookie setting, 
  which was for <link
  linkend="SESSION-COOKIES-ONLY"><quote>+session-cookies-only</quote></link>
- (i.e. not persistent). So we will allow persistent cookies for google. The
- second turns <emphasis>off</emphasis> any 
+ (i.e. not persistent). So we will allow persistent cookies for google, at
+ least that is how it is in this example. The second turns
+ <emphasis>off</emphasis> any 
  <link
  linkend="FAST-REDIRECTS"><quote>+fast-redirects</quote></link>
  action, allowing this to take place unmolested. Note that there is a leading
@@ -7557,6 +7636,8 @@ In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut
 
 <para>
  Then, for our <filename>user.action</filename> file, we again have no hits.
+ So there is nothing google-specific that we might have added to our own, local
+ configuration.
 </para>
 
 <para>
@@ -7571,43 +7652,56 @@ In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut
 
  Final results:
  
- -add-header 
- -block 
- -crunch-outgoing-cookies 
- -crunch-incoming-cookies 
- +deanimate-gifs{last} 
- -downgrade-http-version 
- -fast-redirects 
- -filter{popups} 
- -filter{fun} 
- -filter{shockwave-flash} 
- -filter{crude-parental} 
- +filter{html-annoyances} 
- +filter{js-annoyances} 
- +filter{content-cookies} 
- +filter{webbugs} 
- +filter{refresh-tags} 
- +filter{nimda} 
- +filter{banners-by-size} 
- +hide-forwarded-for-headers 
- +hide-from-header{block} 
- +hide-referer{forge} 
- -hide-user-agent 
- -handle-as-image 
- -kill-popups 
- -limit-connect 
- +prevent-compression 
- -send-vanilla-wafer 
+ -add-header
+ -block
+ -content-type-overwrite
+ -crunch-client-header
+ -crunch-if-none-match
+ -crunch-incoming-cookies
+ -crunch-outgoing-cookies
+ -crunch-server-header
+ +deanimate-gifs {last}
+ -downgrade-http-version
+ -fast-redirects
+ +filter {js-annoyances}
+ +filter {html-annoyances}
+ +filter {refresh-tags}
+ +filter {unsolicited-popups}
+ +filter {img-reorder}
+ +filter {banners-by-size}
+ +filter {webbugs}
+ +filter {jumping-windows}
+ +filter {ie-exploits}
+ -filter-client-headers
+ -filter-server-headers
+ -force-text-mode
+ -handle-as-empty-document
+ -handle-as-image
+ -hide-accept-language
+ -hide-content-disposition
+ +hide-forwarded-for-headers
+ +hide-from-header {block}
+ -hide-if-modified-since
+ +hide-referrer {forge}
+ -hide-user-agent
+ -inspect-jpegs
+ -kill-popups
+ -limit-connect
+ -overwrite-last-modified
+ +prevent-compression
+ -redirect
+ -send-vanilla-wafer
  -send-wafer
- -session-cookies-only 
- +set-image-blocker{pattern} 
-</screen>
+ -session-cookies-only
+ +set-image-blocker {pattern}
+ -treat-forbidden-connects-like-blocks </screen>
 </para>
 
 <para>
  Notice the only difference here to the previous listing, is to 
  <quote>fast-redirects</quote> and <quote>session-cookies-only</quote>,
- which are actived specifically for this site in our configuration.
+ which are actived specifically for this site in our configuration, 
+ and thus show in the <quote>Final Results</quote>.
 </para>
 
 <para>
@@ -7666,12 +7760,16 @@ In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut
  In file: default.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibutton>
 
  {-add-header 
-  -block 
-  -crunch-incoming-cookies 
-  -crunch-outgoing-cookies 
+  -block
+  -content-type-overwrite
+  -crunch-client-header
+  -crunch-if-none-match
+  -crunch-incoming-cookies
+  -crunch-outgoing-cookies
+  -crunch-server-header
   +deanimate-gifs 
   -downgrade-http-version 
-  +fast-redirects 
+  +fast-redirects{check-decoded-url}
   +filter{html-annoyances} 
   +filter{js-annoyances} 
   +filter{kill-popups} 
@@ -7680,17 +7778,27 @@ In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut
   +filter{banners-by-size} 
   +filter{hal} 
   +filter{fun} 
+  -filter-client-headers
+  -filter-server-headers
+  -force-text-mode
+  -handle-as-empty-document
+  -handle-as-image 
+  -hide-accept-language
+  -hide-content-disposition  
   +hide-forwarded-for-headers 
   +hide-from-header{block} 
   +hide-referer{forge} 
   -hide-user-agent 
-  -handle-as-image 
+  -inspect-jpegs
   +kill-popups 
+  -overwrite-last-modified
   +prevent-compression 
+  -redirect
   -send-vanilla-wafer 
   -send-wafer 
   +session-cookies-only 
-  +set-image-blocker{blank} }
+  +set-image-blocker{blank} 
+  -treat-forbidden-connects-like-blocks }
    /
 
  { +block +handle-as-image }
@@ -7699,11 +7807,12 @@ In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut
 </para>
 
 <para>
- Ooops, the <quote>/adsl/</quote> is matching <quote>/ads</quote>! But 
- we did not want this at all! Now we see why we get the blank page. We could
- now add a new action below this that explicitly does <emphasis>not</emphasis>
- block (<quote>{-block}</quote>) paths with <quote>adsl</quote>. There are
- various ways to handle such exceptions. Example:
+ Ooops, the <quote>/adsl/</quote> is matching <quote>/ads</quote> in our 
+ configuration! But we did not want this at all! Now we see why we get the
+ blank page. We could now add a new action below this that explicitly 
+ <emphasis>un</emphasis> blocks (<quote>{-block}</quote>) paths with
+ <quote>adsl</quote> in them (remember, last match in the configuration wins).
+ There are various ways to handle such exceptions. Example:
 </para>
 
 <para>
@@ -7814,6 +7923,11 @@ In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut
  Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
  $Log: user-manual.sgml,v $
+ Revision 2.15  2006/08/30 11:15:22  hal9
+ More work on the new actions, especially filter-*-headers, and What's New
+ section. User Manual is close to final form for 3.0.4 release. Some tinkering
+ and proof reading left to do.
+
  Revision 2.14  2006/08/29 10:59:36  hal9
  Add a "Whats New in this release" Section. Further work on multiple filter
  files, and assorted other minor changes.
index 844df3a..132cdea 100644 (file)
@@ -77,18 +77,30 @@ NAME="ACTIONS-FILE"
 ></A
 >8. Actions Files</H1
 ><P
-> The actions files are used to define what actions
+> The actions files are used to define what <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>actions</I
+></SPAN
+>
  <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
-> takes for which URLs, and thus determine
+> takes for which URLs, and thus determines
  how ad images, cookies and various other aspects of HTTP content and
- transactions are handled, and on which sites (or even parts thereof). There 
- are three such files included with <SPAN
+ transactions are handled, and on which sites (or even parts thereof). 
+ There are a number of such actions, with a wide range of functionality.
+ Each action does something a little different.
+ These actions give us a veritable arsenal of tools with which to exert 
+ our control, preferences and independence.</P
+><P
+> There 
+ are three action files included with <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
->
with differing purposes:
+> with
+ differing purposes:
  </P
 ><P
 >  <P
@@ -156,7 +168,7 @@ CLASS="FILENAME"
 >    <DIV
 CLASS="TABLE"
 ><A
-NAME="AEN1798"
+NAME="AEN1803"
 ></A
 ><P
 ><B
@@ -579,7 +591,7 @@ CLASS="SECT2"
 ><H2
 CLASS="SECT2"
 ><A
-NAME="AEN1897"
+NAME="AEN1902"
 ></A
 >8.1. Finding the Right Mix</H2
 ><P
@@ -613,7 +625,7 @@ CLASS="SECT2"
 ><H2
 CLASS="SECT2"
 ><A
-NAME="AEN1904"
+NAME="AEN1909"
 ></A
 >8.2. How to Edit</H2
 ><P
@@ -869,7 +881,7 @@ CLASS="SECT3"
 ><H3
 CLASS="SECT3"
 ><A
-NAME="AEN1978"
+NAME="AEN1983"
 ></A
 >8.4.1. The Domain Pattern</H3
 ><P
@@ -1055,7 +1067,7 @@ CLASS="SECT3"
 ><H3
 CLASS="SECT3"
 ><A
-NAME="AEN2040"
+NAME="AEN2045"
 ></A
 >8.4.2. The Path Pattern</H3
 ><P
@@ -1854,7 +1866,7 @@ CLASS="APPLICATION"
 >Effect:</DT
 ><DD
 ><P
->    Deletes every header send by the client that contains the string the user supplied as parameter.
+>    Deletes every header sent by the client that contains the string the user supplied as parameter.
    </P
 ></DD
 ><DT
@@ -3407,8 +3419,12 @@ CLASS="VARIABLELIST"
 >Effect:</DT
 ><DD
 ><P
->Extend filtering capabilities to the client's headers, which 
-   by default applies only to the document itself.
+>    By default, <SPAN
+CLASS="APPLICATION"
+>Privoxy's</SPAN
+> filters only apply 
+    to the document content itself. This will extend those filters to 
+    include the client's headers as well.
    </P
 ></DD
 ><DT
@@ -3542,8 +3558,12 @@ CLASS="VARIABLELIST"
 >Effect:</DT
 ><DD
 ><P
->Extend filtering capabilities to the server's headers, which 
-   by default applies only to the document itself.
+>    By default, <SPAN
+CLASS="APPLICATION"
+>Privoxy's</SPAN
+> filters only apply 
+    to the document content itself. This will extend those filters to 
+    include the server's headers as well.
    </P
 ></DD
 ><DT
@@ -4890,7 +4910,7 @@ CLASS="VARIABLELIST"
 >Effect:</DT
 ><DD
 ><P
->    To protect against a known exploit
+>    Protect against a known exploit
    </P
 ></DD
 ><DT
@@ -5565,7 +5585,8 @@ CLASS="VARIABLELIST"
 ><DD
 ><P
 >    This action is useful to replace whole documents with your own
-    ones. For that to work, they have to be available on another server.
+    ones. For that to work, they have to be available on another server, 
+    and both should resolve.
    </P
 ><P
 >    You can do the same by combining the actions
@@ -6310,7 +6331,7 @@ CLASS="APPLICATION"
 >Privoxy</SPAN
 > to do the
     request through a SSL tunnel, everything will work. Most likely you haven't
-    and the server will responds with an error message because it is expecting
+    and the server will respond with an error message because it is expecting
     HTTPS.
    </P
 ></DD
@@ -6341,7 +6362,7 @@ CLASS="SECT3"
 ><H3
 CLASS="SECT3"
 ><A
-NAME="AEN3633"
+NAME="AEN3640"
 ></A
 >8.5.36. Summary</H3
 ><P
@@ -6645,7 +6666,7 @@ CLASS="SECT3"
 ><H3
 CLASS="SECT3"
 ><A
-NAME="AEN3698"
+NAME="AEN3705"
 ></A
 >8.7.1. default.action</H3
 ><P
@@ -6838,10 +6859,26 @@ HREF="actions-file.html#ADD-HEADER"
  -<A
 HREF="actions-file.html#BLOCK"
 >block</A
+> \
+ -<A
+HREF="actions-file.html#CONTENT-TYPE-OVERWRITE"
+>content-type-overwrite</A
+> \
+ -<A
+HREF="actions-file.html#CRUNCH-CLIENT-HEADER"
+>crunch-client-header</A
+> \
+ -<A
+HREF="actions-file.html#CRUNCH-IF-NONE-MATCH"
+>crunch-if-none-match</A
 > \
  -<A
 HREF="actions-file.html#CRUNCH-INCOMING-COOKIES"
 >crunch-incoming-cookies</A
+> \
+ -<A
+HREF="actions-file.html#CRUNCH-SERVER-HEADER"
+>crunch-server-header</A
 > \
  -<A
 HREF="actions-file.html#CRUNCH-OUTGOING-COOKIES"
@@ -6857,7 +6894,7 @@ HREF="actions-file.html#DOWNGRADE-HTTP-VERSION"
 > \
  +<A
 HREF="actions-file.html#FAST-REDIRECTS"
->fast-redirects</A
+>fast-redirects{check-decoded-url}</A
 > \
  +<A
 HREF="actions-file.html#FILTER-JS-ANNOYANCES"
@@ -6940,8 +6977,36 @@ HREF="actions-file.html#FILTER-IE-EXPLOITS"
 >filter{ie-exploits}</A
 > \     
  -<A
+HREF="actions-file.html#FILTER-CLIENT-HEADERS"
+>filter-client-headers</A
+> \
+ -<A
+HREF="actions-file.html#FILTER-SERVER-HEADERS"
+>filter-server-headers</A
+> \
+ -<A
+HREF="actions-file.html#FORCE-TEXT-MODE"
+>force-text-mode</A
+> \
+ -<A
+HREF="actions-file.html#HANDLE-AS-EMPTY-DOCUMENT"
+>handle-as-empty-document</A
+> \
+ -<A
 HREF="actions-file.html#HANDLE-AS-IMAGE"
 >handle-as-image</A
+> \
+ -<A
+HREF="actions-file.html#HIDE-ACCEPT-LANGUAGE"
+>hide-accept-language</A
+> \
+ -<A
+HREF="actions-file.html#HIDE-CONTENT-DISPOSITION"
+>hide-content-disposition</A
+> \
+ -<A
+HREF="actions-file.html#HIDE-IF-MODIFIED-SINCE"
+>hide-if-modified-since</A
 > \
  +<A
 HREF="actions-file.html#HIDE-FORWARDED-FOR-HEADERS"
@@ -6958,6 +7023,10 @@ HREF="actions-file.html#HIDE-REFERER"
  -<A
 HREF="actions-file.html#HIDE-USER-AGENT"
 >hide-user-agent</A
+> \
+ -<A
+HREF="actions-file.html#INSPECT-JPEGS"
+>inspect-jpegs</A
 > \
  -<A
 HREF="actions-file.html#KILL-POPUPS"
@@ -6970,6 +7039,14 @@ HREF="actions-file.html#LIMIT-CONNECT"
  +<A
 HREF="actions-file.html#PREVENT-COMPRESSION"
 >prevent-compression</A
+> \
+ -<A
+HREF="actions-file.html#OVERWRITE-LAST-MODIFIED"
+>overwrite-last-modified</A
+> \
+ -<A
+HREF="actions-file.html#REDIRECT"
+>redirect</A
 > \
  -<A
 HREF="actions-file.html#SEND-VANILLA-WAFER"
@@ -6986,6 +7063,10 @@ HREF="actions-file.html#SESSION-COOKIES-ONLY"
  +<A
 HREF="actions-file.html#SET-IMAGE-BLOCKER"
 >set-image-blocker{pattern}</A
+> \
+ -<A
+HREF="actions-file.html#TREAT-FORBIDDEN-CONNECTS-LIKE-BLOCKS"
+>treat-forbidden-connects-like-blocks</A
 > \
  }
  / # forward slash will match *all* potential URL patterns.</PRE
@@ -7229,7 +7310,7 @@ bs*.einets.com
 CLASS="APPLICATION"
 >Privoxy</SPAN
 >
- is to block banners. A huge bunch of them are already <SPAN
+ is to block banners. A huge bunch of them can be <SPAN
 CLASS="QUOTE"
 >"blocked"</SPAN
 >
@@ -7480,7 +7561,7 @@ HREF="actions-file.html#FILTER"
 > The actual <TT
 CLASS="FILENAME"
 >default.action</TT
-> is of course more
+> is of course much more
  comprehensive, but we hope this example made clear how it works.</P
 ></DIV
 ><DIV
@@ -7488,7 +7569,7 @@ CLASS="SECT3"
 ><H3
 CLASS="SECT3"
 ><A
-NAME="AEN3864"
+NAME="AEN3886"
 ></A
 >8.7.2. user.action</H3
 ><P
@@ -7584,13 +7665,27 @@ shop        = -crunch-all-cookies allow-popups
 
 # Allow ads for selected useful free sites:
 #
-allow-ads   = -block -filter{banners-by-size} -filter{banners-by-link}</PRE
+allow-ads   = -block -filter{banners-by-size} -filter{banners-by-link}
+
+# Alias for specific file types that are text, but might have conflicting
+# MIME types. We want the browser to force these to be text documents.
+handle-as-text = -<A
+HREF="actions-file.html#FILTER"
+>filter</A
+> +-<A
+HREF="actions-file.html#CONTENT-TYPE-OVERWRITE"
+>content-type-overwrite{text/plain}</A
+> +-<A
+HREF="actions-file.html#FORCE-TEXT-MODE"
+>force-text-mode</A
+> -<A
+HREF="actions-file.html#HIDE-CONTENT-DISPOSITION"
+>hide-content-disposition</A
+></PRE
 ></TD
 ></TR
 ></TABLE
->
-
- </P
+>&#13;</P
 ><P
 > Say you have accounts on some sites that you visit regularly, and
  you don't want to have to log in manually each time. So you'd like
@@ -7880,6 +7975,28 @@ HREF="actions-file.html#FILTER-BANNERS-BY-LINK"
 ></TT
 > above.</P
 ><P
+> Invoke another alias here to force an over-ride of the MIME type <TT
+CLASS="LITERAL"
+> application/x-sh</TT
+> which typically would open a download type 
+ dialog. In my case, I want to look at the shell script, and then I can save
+ it should I choose to.</P
+><P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>{ handle-as-text }
+/.*\.sh$</PRE
+></TD
+></TR
+></TABLE
+>   </P
+><P
 > <TT
 CLASS="FILENAME"
 >user.action</TT
index c4ed673..d9aceac 100644 (file)
@@ -743,7 +743,7 @@ CLASS="SECT2"
 ><H2
 CLASS="SECT2"
 ><A
-NAME="AEN4640"
+NAME="AEN4670"
 ></A
 >14.2. <SPAN
 CLASS="APPLICATION"
@@ -792,7 +792,7 @@ CLASS="APPLICATION"
    Privoxy main page: 
   </P
 ><A
-NAME="AEN4655"
+NAME="AEN4685"
 ></A
 ><BLOCKQUOTE
 CLASS="BLOCKQUOTE"
@@ -825,7 +825,7 @@ CLASS="APPLICATION"
     editing of actions files:
   </P
 ><A
-NAME="AEN4663"
+NAME="AEN4693"
 ></A
 ><BLOCKQUOTE
 CLASS="BLOCKQUOTE"
@@ -845,7 +845,7 @@ TARGET="_top"
     Show the source code version numbers:
   </P
 ><A
-NAME="AEN4668"
+NAME="AEN4698"
 ></A
 ><BLOCKQUOTE
 CLASS="BLOCKQUOTE"
@@ -865,7 +865,7 @@ TARGET="_top"
    Show the browser's request headers:
   </P
 ><A
-NAME="AEN4673"
+NAME="AEN4703"
 ></A
 ><BLOCKQUOTE
 CLASS="BLOCKQUOTE"
@@ -885,7 +885,7 @@ TARGET="_top"
    Show which actions apply to a URL and why:
   </P
 ><A
-NAME="AEN4678"
+NAME="AEN4708"
 ></A
 ><BLOCKQUOTE
 CLASS="BLOCKQUOTE"
@@ -909,7 +909,7 @@ CLASS="QUOTE"
    to run, but only as a pass-through proxy, with no actions taking place:
   </P
 ><A
-NAME="AEN4684"
+NAME="AEN4714"
 ></A
 ><BLOCKQUOTE
 CLASS="BLOCKQUOTE"
@@ -926,7 +926,7 @@ TARGET="_top"
 >   Short cuts. Turn off, then on: 
   </P
 ><A
-NAME="AEN4688"
+NAME="AEN4718"
 ></A
 ><BLOCKQUOTE
 CLASS="BLOCKQUOTE"
@@ -940,7 +940,7 @@ TARGET="_top"
    </P
 ></BLOCKQUOTE
 ><A
-NAME="AEN4691"
+NAME="AEN4721"
 ></A
 ><BLOCKQUOTE
 CLASS="BLOCKQUOTE"
@@ -1243,10 +1243,10 @@ CLASS="QUOTE"
    <TT
 CLASS="FILENAME"
 >default.filter</TT
->) are processed against the buffered
-   content. Filters are applied in the order they are specified in one of the
-   filter files. Animated GIFs, if present, are
-   reduced to either the first or last frame, depending on the action
+> and any other filter files) are
+   processed against the buffered content. Filters are applied in the order
+   they are specified in one of the filter files. Animated GIFs, if present,
+   are reduced to either the first or last frame, depending on the action
    setting.The entire page, which is now filtered, is then sent by
    <SPAN
 CLASS="APPLICATION"
@@ -1390,7 +1390,8 @@ HREF="http://google.com"
 TARGET="_top"
 >google.com</A
 >, 
- and look at it one section at a time:</P
+ and look at it one section at a time in a sample configuration (your real 
+ configuration may vary):</P
 ><P
 > <TABLE
 BORDER="0"
@@ -1410,38 +1411,63 @@ CLASS="GUIBUTTON"
 >[ Edit ]</SPAN
 >
 
-{-add-header 
- -block 
- -crunch-outgoing-cookies 
- -crunch-incoming-cookies 
- +deanimate-gifs{last} 
- -downgrade-http-version 
- +fast-redirects 
- -filter{popups} 
- -filter{fun} 
- -filter{shockwave-flash} 
- -filter{crude-parental} 
- +filter{html-annoyances} 
- +filter{js-annoyances} 
- +filter{content-cookies} 
- +filter{webbugs} 
- +filter{refresh-tags} 
- +filter{nimda} 
- +filter{banners-by-size} 
- +hide-forwarded-for-headers 
- +hide-from-header{block} 
- +hide-referer{forge} 
- -hide-user-agent 
- -handle-as-image 
- -kill-popups 
- -limit-connect 
- +prevent-compression 
- -send-vanilla-wafer 
- -send-wafer 
- +session-cookies-only 
- +set-image-blocker{pattern} }
+ {-add-header
+ -block
+ -content-type-overwrite
+ -crunch-client-header
+ -crunch-if-none-match
+ -crunch-incoming-cookies
+ -crunch-outgoing-cookies
+ -crunch-server-header
+ +deanimate-gifs {last}
+ -downgrade-http-version
+ +fast-redirects {check-decoded-url}
+ -filter {js-events}
+ -filter {content-cookies}
+ -filter {all-popups}
+ -filter {banners-by-link}
+ -filter {tiny-textforms}
+ -filter {frameset-borders}
+ -filter {demoronizer}
+ -filter {shockwave-flash}
+ -filter {quicktime-kioskmode}
+ -filter {fun}
+ -filter {crude-parental}
+ -filter {site-specifics}
+ +filter {js-annoyances}
+ +filter {html-annoyances}
+ +filter {refresh-tags}
+ +filter {unsolicited-popups}
+ +filter {img-reorder}
+ +filter {banners-by-size}
+ +filter {webbugs}
+ +filter {jumping-windows}
+ +filter {ie-exploits}
+ -filter-client-headers
+ -filter-server-headers
+ -force-text-mode
+ -handle-as-empty-document
+ -handle-as-image
+ -hide-accept-language
+ -hide-content-disposition
+ +hide-forwarded-for-headers
+ +hide-from-header {block}
+ -hide-if-modified-since
+ +hide-referrer {forge}
+ -hide-user-agent
+ -inspect-jpegs
+ -kill-popups
+ -limit-connect
+ -overwrite-last-modified
+ +prevent-compression
+ -redirect
+ -send-vanilla-wafer
+ -send-wafer
+ +session-cookies-only
+ +set-image-blocker {pattern}
+ -treat-forbidden-connects-like-blocks }
 /
-
  { -session-cookies-only }
  .google.com
 
@@ -1461,7 +1487,7 @@ CLASS="GUIBUTTON"
 ></TABLE
 ></P
 ><P
-> This tells us how we have defined our 
+> This is telling us how we have defined our 
  <A
 HREF="actions-file.html#ACTIONS"
 ><SPAN
@@ -1469,10 +1495,35 @@ CLASS="QUOTE"
 >"actions"</SPAN
 ></A
 >, and
- which ones match for our example, <SPAN
+ which ones match for our test case, <SPAN
 CLASS="QUOTE"
 >"google.com"</SPAN
->. The first listing
+>. 
+ Displayed is all the actions that are available to us. Remember,
+ the <TT
+CLASS="LITERAL"
+>+</TT
+> sign denotes <SPAN
+CLASS="QUOTE"
+>"on"</SPAN
+>. <TT
+CLASS="LITERAL"
+>-</TT
+>
+ denotes <SPAN
+CLASS="QUOTE"
+>"off"</SPAN
+>. So some are <SPAN
+CLASS="QUOTE"
+>"on"</SPAN
+> here, but many 
+ are <SPAN
+CLASS="QUOTE"
+>"off"</SPAN
+>. Each example we try may provide a slightly different
+ end result, depending on our configuration directives.</P
+><P
+> The first listing
  is any matches for the <TT
 CLASS="FILENAME"
 >standard.action</TT
@@ -1517,8 +1568,9 @@ CLASS="QUOTE"
 >"+session-cookies-only"</SPAN
 ></A
 >
- (i.e. not persistent). So we will allow persistent cookies for google. The
- second turns <SPAN
+ (i.e. not persistent). So we will allow persistent cookies for google, at
+ least that is how it is in this example. The second turns
+ <SPAN
 CLASS="emphasis"
 ><I
 CLASS="EMPHASIS"
@@ -1555,7 +1607,9 @@ CLASS="QUOTE"
 > Then, for our <TT
 CLASS="FILENAME"
 >user.action</TT
-> file, we again have no hits.</P
+> file, we again have no hits.
+ So there is nothing google-specific that we might have added to our own, local
+ configuration.</P
 ><P
 > And finally we pull it all together in the bottom section and summarize how
  <SPAN
@@ -1580,36 +1634,49 @@ WIDTH="100%"
 CLASS="SCREEN"
 >&#13; Final results:
  
- -add-header 
- -block 
- -crunch-outgoing-cookies 
- -crunch-incoming-cookies 
- +deanimate-gifs{last} 
- -downgrade-http-version 
- -fast-redirects 
- -filter{popups} 
- -filter{fun} 
- -filter{shockwave-flash} 
- -filter{crude-parental} 
- +filter{html-annoyances} 
- +filter{js-annoyances} 
- +filter{content-cookies} 
- +filter{webbugs} 
- +filter{refresh-tags} 
- +filter{nimda} 
- +filter{banners-by-size} 
- +hide-forwarded-for-headers 
- +hide-from-header{block} 
- +hide-referer{forge} 
- -hide-user-agent 
- -handle-as-image 
- -kill-popups 
- -limit-connect 
- +prevent-compression 
- -send-vanilla-wafer 
+ -add-header
+ -block
+ -content-type-overwrite
+ -crunch-client-header
+ -crunch-if-none-match
+ -crunch-incoming-cookies
+ -crunch-outgoing-cookies
+ -crunch-server-header
+ +deanimate-gifs {last}
+ -downgrade-http-version
+ -fast-redirects
+ +filter {js-annoyances}
+ +filter {html-annoyances}
+ +filter {refresh-tags}
+ +filter {unsolicited-popups}
+ +filter {img-reorder}
+ +filter {banners-by-size}
+ +filter {webbugs}
+ +filter {jumping-windows}
+ +filter {ie-exploits}
+ -filter-client-headers
+ -filter-server-headers
+ -force-text-mode
+ -handle-as-empty-document
+ -handle-as-image
+ -hide-accept-language
+ -hide-content-disposition
+ +hide-forwarded-for-headers
+ +hide-from-header {block}
+ -hide-if-modified-since
+ +hide-referrer {forge}
+ -hide-user-agent
+ -inspect-jpegs
+ -kill-popups
+ -limit-connect
+ -overwrite-last-modified
+ +prevent-compression
+ -redirect
+ -send-vanilla-wafer
  -send-wafer
- -session-cookies-only 
- +set-image-blocker{pattern} </PRE
+ -session-cookies-only
+ +set-image-blocker {pattern}
+ -treat-forbidden-connects-like-blocks </PRE
 ></TD
 ></TR
 ></TABLE
@@ -1623,7 +1690,11 @@ CLASS="QUOTE"
 CLASS="QUOTE"
 >"session-cookies-only"</SPAN
 >,
- which are actived specifically for this site in our configuration.</P
+ which are actived specifically for this site in our configuration, 
+ and thus show in the <SPAN
+CLASS="QUOTE"
+>"Final Results"</SPAN
+>.</P
 ><P
 > Now another example, <SPAN
 CLASS="QUOTE"
@@ -1730,12 +1801,16 @@ CLASS="GUIBUTTON"
 >
 
  {-add-header 
-  -block 
-  -crunch-incoming-cookies 
-  -crunch-outgoing-cookies 
+  -block
+  -content-type-overwrite
+  -crunch-client-header
+  -crunch-if-none-match
+  -crunch-incoming-cookies
+  -crunch-outgoing-cookies
+  -crunch-server-header
   +deanimate-gifs 
   -downgrade-http-version 
-  +fast-redirects 
+  +fast-redirects{check-decoded-url}
   +filter{html-annoyances} 
   +filter{js-annoyances} 
   +filter{kill-popups} 
@@ -1744,17 +1819,27 @@ CLASS="GUIBUTTON"
   +filter{banners-by-size} 
   +filter{hal} 
   +filter{fun} 
+  -filter-client-headers
+  -filter-server-headers
+  -force-text-mode
+  -handle-as-empty-document
+  -handle-as-image 
+  -hide-accept-language
+  -hide-content-disposition  
   +hide-forwarded-for-headers 
   +hide-from-header{block} 
   +hide-referer{forge} 
   -hide-user-agent 
-  -handle-as-image 
+  -inspect-jpegs
   +kill-popups 
+  -overwrite-last-modified
   +prevent-compression 
+  -redirect
   -send-vanilla-wafer 
   -send-wafer 
   +session-cookies-only 
-  +set-image-blocker{blank} }
+  +set-image-blocker{blank} 
+  -treat-forbidden-connects-like-blocks }
    /
 
  { +block +handle-as-image }
@@ -1770,23 +1855,24 @@ CLASS="QUOTE"
 > 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 explicitly does <SPAN
+> in our 
+ configuration! But we did not want this at all! Now we see why we get the
+ blank page. We could now add a new action below this that explicitly 
+ <SPAN
 CLASS="emphasis"
 ><I
 CLASS="EMPHASIS"
->not</I
+>un</I
 ></SPAN
->
- block (<SPAN
+> blocks (<SPAN
 CLASS="QUOTE"
 >"{-block}"</SPAN
->) paths with <SPAN
+>) paths with
+ <SPAN
 CLASS="QUOTE"
 >"adsl"</SPAN
->. There are
- various ways to handle such exceptions. Example:</P
+> in them (remember, last match in the configuration wins).
There are various ways to handle such exceptions. Example:</P
 ><P
 > <TABLE
 BORDER="0"
index c48743b..a25a894 100644 (file)
@@ -465,7 +465,7 @@ CLASS="VARIABLELIST"
 ><P
 >    The <A
 HREF="filter-file.html"
->filter file</A
+>filter file(s)</A
 > to use
    </P
 ></DD
@@ -514,24 +514,31 @@ CLASS="REPLACEABLE"
 >Notes:</DT
 ><DD
 ><P
+>    Multiple <TT
+CLASS="LITERAL"
+>filterfiles</TT
+> lines are permitted.
+   </P
+><P
 >    The <A
 HREF="filter-file.html"
->filter file</A
-> contains content modification
+>filter files</A
+> contain content modification
     rules that use <A
 HREF="appendix.html#REGEX"
 >regular expressions</A
 >. These rules permit
-    powerful changes on the content of Web pages, e.g., you could disable your favorite
-    JavaScript annoyances, re-write the actual displayed text, or just have some
-    fun replacing <SPAN
+    powerful changes on the content of Web pages, and optionally the headers
+    as well, 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.
+> wherever it appears
+    on a Web page.
    </P
 ><P
 >    The
@@ -553,14 +560,14 @@ CLASS="REPLACEABLE"
 >name</I
 ></TT
 >)
-    to be defined in the filter file!
+    to be defined in a filter file!
    </P
 ><P
 >    A pre-defined filter file called <TT
 CLASS="FILENAME"
 >default.filter</TT
 > that contains
-    a bunch of handy filters for common problems is included in the distribution.
+    a number of useful filters for common problems is included in the distribution.
     See the section on the <TT
 CLASS="LITERAL"
 ><A
@@ -570,6 +577,13 @@ HREF="actions-file.html#FILTER"
 >
     action for a list.
    </P
+><P
+>    It is recommended to place any locally adapted filters into a separate
+    file, such as <TT
+CLASS="FILENAME"
+>user.filter</TT
+>.
+   </P
 ></DD
 ></DL
 ></DIV
index b6d00e3..192d197 100644 (file)
@@ -96,7 +96,7 @@ CLASS="SECT2"
 ><H2
 CLASS="SECT2"
 ><A
-NAME="AEN725"
+NAME="AEN724"
 ></A
 >6.1. Controlling <SPAN
 CLASS="APPLICATION"
@@ -130,7 +130,7 @@ CLASS="SCREEN"
 > <H2
 CLASS="BRIDGEHEAD"
 ><A
-NAME="AEN734"
+NAME="AEN733"
 ></A
 >    Privoxy Menu</H2
 ><P
index 12cc36a..294d62c 100644 (file)
@@ -100,7 +100,7 @@ CLASS="SECT2"
 ><H2
 CLASS="SECT2"
 ><A
-NAME="AEN4394"
+NAME="AEN4424"
 ></A
 >12.1. License</H2
 ><P
index 6a1b520..4cdd83a 100644 (file)
@@ -303,7 +303,7 @@ CLASS="SECT2"
 ><H2
 CLASS="SECT2"
 ><A
-NAME="AEN3994"
+NAME="AEN4024"
 ></A
 >9.1. Filter File Tutorial</H2
 ><P
index d60408c..7f6c942 100644 (file)
@@ -45,7 +45,7 @@ TARGET="_top"
 ><BR></P
 ><P
 CLASS="PUBDATE"
->$Id: user-manual.sgml,v 2.14 2006/08/29 10:59:36 hal9 Exp $<BR></P
+>$Id: user-manual.sgml,v 2.15 2006/08/30 11:15:22 hal9 Exp $<BR></P
 ><DIV
 ><DIV
 CLASS="ABSTRACT"
@@ -73,7 +73,7 @@ CLASS="APPLICATION"
 CLASS="APPLICATION"
 >Privoxy</SPAN
 > is a web proxy with advanced filtering
- capabilities for protecting privacy, modifying web page content, managing
+ capabilities for protecting privacy, modifying web page data, managing
  cookies, controlling access, and removing ads, banners, pop-ups and other
  obnoxious Internet junk. <SPAN
 CLASS="APPLICATION"
@@ -308,7 +308,7 @@ CLASS="APPLICATION"
 ><DL
 ><DT
 >6.1. <A
-HREF="configuration.html#AEN725"
+HREF="configuration.html#AEN724"
 >Controlling <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
@@ -499,12 +499,12 @@ HREF="actions-file.html"
 ><DL
 ><DT
 >8.1. <A
-HREF="actions-file.html#AEN1897"
+HREF="actions-file.html#AEN1902"
 >Finding the Right Mix</A
 ></DT
 ><DT
 >8.2. <A
-HREF="actions-file.html#AEN1904"
+HREF="actions-file.html#AEN1909"
 >How to Edit</A
 ></DT
 ><DT
@@ -521,12 +521,12 @@ HREF="actions-file.html#AF-PATTERNS"
 ><DL
 ><DT
 >8.4.1. <A
-HREF="actions-file.html#AEN1978"
+HREF="actions-file.html#AEN1983"
 >The Domain Pattern</A
 ></DT
 ><DT
 >8.4.2. <A
-HREF="actions-file.html#AEN2040"
+HREF="actions-file.html#AEN2045"
 >The Path Pattern</A
 ></DT
 ></DL
@@ -718,7 +718,7 @@ HREF="actions-file.html#TREAT-FORBIDDEN-CONNECTS-LIKE-BLOCKS"
 ></DT
 ><DT
 >8.5.36. <A
-HREF="actions-file.html#AEN3633"
+HREF="actions-file.html#AEN3640"
 >Summary</A
 ></DT
 ></DL
@@ -737,12 +737,12 @@ HREF="actions-file.html#ACT-EXAMPLES"
 ><DL
 ><DT
 >8.7.1. <A
-HREF="actions-file.html#AEN3698"
+HREF="actions-file.html#AEN3705"
 >default.action</A
 ></DT
 ><DT
 >8.7.2. <A
-HREF="actions-file.html#AEN3864"
+HREF="actions-file.html#AEN3886"
 >user.action</A
 ></DT
 ></DL
@@ -758,7 +758,7 @@ HREF="filter-file.html"
 ><DL
 ><DT
 >9.1. <A
-HREF="filter-file.html#AEN3994"
+HREF="filter-file.html#AEN4024"
 >Filter File Tutorial</A
 ></DT
 ><DT
@@ -829,7 +829,7 @@ CLASS="APPLICATION"
 ><DL
 ><DT
 >12.1. <A
-HREF="copyright.html#AEN4394"
+HREF="copyright.html#AEN4424"
 >License</A
 ></DT
 ><DT
@@ -863,7 +863,7 @@ HREF="appendix.html#REGEX"
 ></DT
 ><DT
 >14.2. <A
-HREF="appendix.html#AEN4640"
+HREF="appendix.html#AEN4670"
 ><SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
index 9982796..34b4d0a 100644 (file)
@@ -856,8 +856,12 @@ CLASS="EMPHASIS"
 > that you use <TT
 CLASS="LITERAL"
 >user.action</TT
-> for your
- customization of <SPAN
+> and 
+ <TT
+CLASS="LITERAL"
+>user.filter</TT
+> for your local
+ customizations of <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
 >. See the <A
index 842014a..43f0ea3 100644 (file)
@@ -77,22 +77,18 @@ NAME="INTRODUCTION"
 ></A
 >1. Introduction</H1
 ><P
-> This documentation is included with the current BETA version of
+> This documentation is included with the current beta version of
  <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
 >, v.3.0.4, 
  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
+ configuration files. Development of a new version is currently nearing
+ completion, and includes significant changes and enhancements over
+ earlier versions. .</P
 ><P
-> Since this is a BETA 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 <SPAN
 CLASS="emphasis"
@@ -111,16 +107,14 @@ NAME="FEATURES"
 ></A
 >1.1. Features</H2
 ><P
-> In addition to <SPAN
-CLASS="APPLICATION"
->Internet Junkbuster's</SPAN
-> traditional
- features of ad and banner blocking and cookie management,
+> In addition to the core 
+ features of ad blocking and cookie management,
  <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
-> provides new features,
- some of them currently under development:</P
+> provides many supplemental
+ features, some of them currently under development, 
+ that give the end-user more control, more privacy and more freedom:</P
 ><P
 > <P
 ></P
index 2799713..afd2f6e 100644 (file)
@@ -632,7 +632,7 @@ CLASS="GUIBUTTON"
 >  <DIV
 CLASS="FIGURE"
 ><A
-NAME="AEN521"
+NAME="AEN520"
 ></A
 ><P
 ><B
index ee85acd..99db75c 100644 (file)
@@ -101,7 +101,7 @@ CLASS="APPLICATION"
 >  <DIV
 CLASS="FIGURE"
 ><A
-NAME="AEN572"
+NAME="AEN571"
 ></A
 ><P
 ><B