From: Lee <ler762@users.sourceforge.net> Date: Sat, 10 Apr 2021 17:18:15 +0000 (-0400) Subject: remove leading spaces from <screen> and <programlisting> blocks X-Git-Tag: v_3_0_33~92 X-Git-Url: http://www.privoxy.org/gitweb/%22https:/static/user-manual/@default-cgi@send-stylesheet?a=commitdiff_plain;h=cadb70739eb73f8921488f8214cd83e5b3f2ec76;p=privoxy.git remove leading spaces from <screen> and <programlisting> blocks we automatically add two leading spaces to every line in <screen> and <programlisting> blocks now, so remove the explicit indentation that was there. --- diff --git a/doc/source/buildsource.sgml b/doc/source/buildsource.sgml index 81013cd2..77892487 100644 --- a/doc/source/buildsource.sgml +++ b/doc/source/buildsource.sgml @@ -33,8 +33,8 @@ </para> <screen> - tar xzvf privoxy-&p-version;<![%p-not-stable;[-beta]]><![%p-stable;[-stable]]>-src.tar.gz - cd privoxy-&p-version;<![%p-not-stable;[-beta]]><![%p-stable;[-stable]]> +tar xzvf privoxy-&p-version;<![%p-not-stable;[-beta]]><![%p-stable;[-stable]]>-src.tar.gz +cd privoxy-&p-version;<![%p-not-stable;[-beta]]><![%p-stable;[-stable]]> </screen> <para> @@ -42,8 +42,8 @@ </para> <screen> - cd <root-dir> - git clone https://www.privoxy.org/git/privoxy.git +cd <root-dir> +git clone https://www.privoxy.org/git/privoxy.git </screen> <para> @@ -77,13 +77,13 @@ <filename>/etc/passwd</filename> might then look like: </para> - <screen> privoxy:*:7777:7777:privoxy proxy:/no/home:/no/shell</screen> +<screen>privoxy:*:7777:7777:privoxy proxy:/no/home:/no/shell</screen> <para> And then <filename>/etc/group</filename>, like: </para> - <screen> privoxy:*:7777:</screen> +<screen>privoxy:*:7777:</screen> <para> Some binary packages may do this for you. @@ -93,22 +93,23 @@ Then, to build from either unpacked tarball or Git checkout: </para> - <screen> - autoheader - autoconf - ./configure # (--help to see options) - make # (the make from GNU, sometimes called gmake) - su # Possibly required - make -n install # (to see where all the files will go) - make -s install # (to really install, -s to silence output)</screen> +<screen> +autoheader +autoconf +./configure # (--help to see options) +make # (the make from GNU, sometimes called gmake) +su # Possibly required +make -n install # (to see where all the files will go) +make -s install # (to really install, -s to silence output) +</screen> <para> Using GNU <command>make</command>, you can have the first four steps automatically done for you by just typing: </para> - <screen> - make +<screen> +make </screen> <para> @@ -120,8 +121,9 @@ users cannot easily bypass the proxy (e.g. <quote>Go There Anyway</quote>), or alter their own configurations, <command>configure</command> like this: </para> - <screen> - ./configure --disable-toggle --disable-editor --disable-force</screen> +<screen> +./configure --disable-toggle --disable-editor --disable-force +</screen> <para> Note that all of these options can also be disabled through the configuration file. </para> @@ -149,8 +151,8 @@ on the <command>make</command> command line, but be sure both already exist: </para> - <screen> - make -s install USER=privoxy GROUP=privoxy</screen> +<screen> +make -s install USER=privoxy GROUP=privoxy</screen> <para> The default installation path for <command>make install</command> is diff --git a/doc/source/developer-manual.sgml b/doc/source/developer-manual.sgml index 2936a551..966ec0b7 100644 --- a/doc/source/developer-manual.sgml +++ b/doc/source/developer-manual.sgml @@ -2057,7 +2057,7 @@ fk@t520 ~ $privoxy-regression-test.pl --test-number 785 --verbose --debug 4 2020-12-14 12:17:56: Ooops. Expected removal but: 'Referer: https://p.p/' is still there. 2020-12-14 12:17:56: Failure for test 785 (0/13/5). Header 'Referer: https://p.p/' and tag 'hide-referrer{conditional-block}' 2020-12-14 12:17:56: Executed 1 regression tests. Skipped 1201. 0 successes, 1 failures. - </programlisting> +</programlisting> <para> Use the if the <command>--privoxy-address</command> option if the http_proxy environment variable isn't configured and you don't want @@ -2294,12 +2294,12 @@ for-privoxy-version=3.0.11 Create the change log: </para> <programlisting> - $ git tag - # to see the tags - $ git log [last release tag]..master > /tmp/log - # get the commit log since the last release - $ utils/makeChangeLog /tmp/log > /tmp/change.log - # reformat the commit log +$ git tag +# to see the tags +$ git log [last release tag]..master > /tmp/log +# get the commit log since the last release +$ utils/makeChangeLog /tmp/log > /tmp/change.log +# reformat the commit log </programlisting> <para> Edit <filename>/tmp/change.log</filename> to remove trivial @@ -2322,7 +2322,7 @@ for-privoxy-version=3.0.11 <filename>doc/source/changelog.sgml</filename>: </para> <programlisting> - $ utils/changelog2doc.pl /tmp/change.log >| doc/source/changelog.sgml +$ utils/changelog2doc.pl /tmp/change.log >| doc/source/changelog.sgml </programlisting> </listitem> <listitem> @@ -2340,11 +2340,11 @@ for-privoxy-version=3.0.11 <para> All documentation should be rebuilt: <programlisting> - $ make man - $ make dok - $ make dok-man - $ make dok-tidy - $ make config-file +$ make man +$ make dok +$ make dok-man +$ make dok-tidy +$ make config-file </programlisting> Finished docs should be then be committed to Git (for those without the ability to build these). Some docs may require @@ -2417,11 +2417,11 @@ for-privoxy-version=3.0.11 </para> <programlisting> - mkdir dist # delete or choose different name if it already exists - cd dist - git clone https://www.privoxy.org/git/privoxy.git - cd privoxy - git checkout v_X_Y_Z +mkdir dist # delete or choose different name if it already exists +cd dist +git clone https://www.privoxy.org/git/privoxy.git +cd privoxy +git checkout v_X_Y_Z </programlisting> <para> @@ -2571,13 +2571,13 @@ for-privoxy-version=3.0.11 packages" above). Then run from that directory: </para> <programlisting> - autoheader && autoconf && ./configure +autoheader && autoconf && ./configure </programlisting> <para> Then do: </para> <programlisting> - make tarball-dist +make tarball-dist </programlisting> </sect3> @@ -2605,8 +2605,8 @@ for-privoxy-version=3.0.11 All you need to do is: </para> <programlisting> - cd windows - make +cd windows +make </programlisting> <para> Now you can manually rename <filename>privoxy_setup.exe</filename> to @@ -2616,8 +2616,8 @@ for-privoxy-version=3.0.11 GPG sign the installer and zip file, </para> <programlisting> - $ gpg --armor --detach --sign <filename>privoxy_setup_X.Y.Z.exe</filename> - $ gpg --armor --detach --sign <filename>privoxy_X.Y.Z.zip</filename> +gpg --armor --detach --sign <filename>privoxy_setup_X.Y.Z.exe</filename> +gpg --armor --detach --sign <filename>privoxy_X.Y.Z.zip</filename> </programlisting> <para> and upload the files to SourceForge. @@ -2634,62 +2634,62 @@ for-privoxy-version=3.0.11 Using git-buildpackage we start with a clone of the last Debian version: </para> <programlisting> - gbp clone https://salsa.debian.org/debian/privoxy.git - cd privoxy +gbp clone https://salsa.debian.org/debian/privoxy.git +cd privoxy </programlisting> <para> or if the repository is already there </para> <programlisting> - cd privoxy - gbp pull +cd privoxy +gbp pull </programlisting> <para> Now import the newly released upstream tarball via debian/watch file: </para> <programlisting> - gbp import-orig --uscan +gbp import-orig --uscan </programlisting> <para> Next update all Debian quilt patches to the new version: </para> <programlisting> - while quilt push; do quilt refresh; done +while quilt push; do quilt refresh; done </programlisting> <para> If some patch is no longer required (because it is already merged upstream), it can be removed using </para> <programlisting> - quilt delete XX_patchname.patch - git rm debian/patches/XX_patchname.patch +quilt delete XX_patchname.patch +git rm debian/patches/XX_patchname.patch </programlisting> <para> If the patch needs modification, you can apply, edit and update it with </para> <programlisting> - quilt push -f - quilt edit some_file - quilt refresh +quilt push -f +quilt edit some_file +quilt refresh </programlisting> <para> until </para> <programlisting> - while quilt push; do quilt refresh; done +while quilt push; do quilt refresh; done </programlisting> <para> succeeds. Then you can </para> <programlisting> - quilt pop -a +quilt pop -a </programlisting> <para> Now add a new entry to the debian/changelog representing the new version: </para> <programlisting> - dch -v &p-version;-1 +dch -v &p-version;-1 </programlisting> <para> and describe what you did before and don't forget to git commit all @@ -2699,26 +2699,26 @@ for-privoxy-version=3.0.11 Now you can build the package on the local machine using </para> <programlisting> - gbp buildpackage -us -uc +gbp buildpackage -us -uc </programlisting> <para> You should check for warnings using </para> <programlisting> - lintian -iI ../build-area/privoxy_&p-version;-1_amd64.changes +lintian -iI ../build-area/privoxy_&p-version;-1_amd64.changes </programlisting> <para> Maybe rebuild the package in different defined cowbuilder environments like </para> <programlisting> - sudo cowbuilder --build --basepath /var/cache/pbuilder/base.cow ../build-area/privoxy_&p-version;-1.dsc +sudo cowbuilder --build --basepath /var/cache/pbuilder/base.cow ../build-area/privoxy_&p-version;-1.dsc </programlisting> <para> And try to run autopackage testing suite on the result: </para> <programlisting> - autopkgtest /var/cache/pbuilder/result/privoxy_&p-version;-1_amd64.changes -s -- schroot sid +autopkgtest /var/cache/pbuilder/result/privoxy_&p-version;-1_amd64.changes -s -- schroot sid </programlisting> <para> Or just push the changes to salsa.debian.org, where a CI pipeline is @@ -2731,8 +2731,8 @@ for-privoxy-version=3.0.11 Then sign both files: </para> <programlisting> - gpg --detach-sign --armor privoxy_&p-version;-1_i386.deb - gpg --detach-sign --armor privoxy_&p-version;-1_amd64.deb +gpg --detach-sign --armor privoxy_&p-version;-1_i386.deb +gpg --detach-sign --armor privoxy_&p-version;-1_amd64.deb </programlisting> <para> Create a README file containing the recent block from debian/changelog @@ -2748,34 +2748,34 @@ for-privoxy-version=3.0.11 run the following commands: </para> <programlisting> - sudo apt install build-essential devscripts - sudo apt-get build-dep privoxy +sudo apt install build-essential devscripts +sudo apt-get build-dep privoxy </programlisting> <para> After this enter the checked out privoxy git tree and check that all (new) build dependencies are met: </para> <programlisting> - dpkg-checkbuilddeps +dpkg-checkbuilddeps </programlisting> <para> If something is missing, just add it using </para> <programlisting> - sudo apt install foobar +sudo apt install foobar </programlisting> <para> Now you may update debian/changelog, especially the version number using </para> <programlisting> - dch +dch </programlisting> <para> and finally build the package: </para> <programlisting> - debuild -us -uc -b +debuild -us -uc -b </programlisting> <para> If everything went okay, you may find the resulting Debian package in @@ -2785,15 +2785,15 @@ for-privoxy-version=3.0.11 You may want to clean up the build tree using </para> <programlisting> - debian/rules clean +debian/rules clean </programlisting> <para> And maybe repair some artefacts using one or both of the following commands: </para> <programlisting> - git reset --hard - git clean -fd +git reset --hard +git clean -fd </programlisting> </sect4> </sect3> @@ -2817,7 +2817,7 @@ for-privoxy-version=3.0.11 follows into a folder parallel to the exported privoxy source: </para> <programlisting> - cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co OSXPackageBuilder +cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co OSXPackageBuilder </programlisting> <para> The module contains complete instructions on its usage in the file @@ -2844,14 +2844,14 @@ for-privoxy-version=3.0.11 exported privoxy source: </para> <programlisting> - cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co osxsetup +cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co osxsetup </programlisting> <para> Then run: </para> <programlisting> - cd osxsetup - build +cd osxsetup +build </programlisting> <para> This will run <filename>autoheader</filename>, <filename>autoconf</filename> @@ -2866,7 +2866,7 @@ for-privoxy-version=3.0.11 name, you can then create the distributable zip file with the command: </para> <programlisting> - zip -r privoxyosx_setup_x.y.z.zip Privoxy.pkg +zip -r privoxyosx_setup_x.y.z.zip Privoxy.pkg </programlisting> <para> You can then upload this file directly to the Files section of the @@ -2888,7 +2888,7 @@ for-privoxy-version=3.0.11 exported privoxy source: </para> <programlisting> - cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co macsetup +cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co macsetup </programlisting> <para> The module contains complete instructions on its usage in its @@ -2993,7 +2993,7 @@ for-privoxy-version=3.0.11 SGML files, do: </para> <programlisting> - make dok +make dok && make dok-tidy </programlisting> <para> That will generate <filename>doc/webserver/user-manual</filename>, @@ -3018,7 +3018,7 @@ for-privoxy-version=3.0.11 If these are docs in the stable branch, then do: </para> <programlisting> - make webserver +make webserver </programlisting> <para> This will do the upload to the SourceForge webserver (which is manually diff --git a/doc/source/faq.sgml b/doc/source/faq.sgml index b4ebb87f..69afd013 100644 --- a/doc/source/faq.sgml +++ b/doc/source/faq.sgml @@ -922,11 +922,13 @@ the differences?</title> url="../user-manual/actions-file.html#ALIASES">alias</ulink> just for such sticky situations: </para> - <screen># Gmail is a _fragile_ site: + <screen> +# Gmail is a _fragile_ site: # { <literal>fragile</literal> } - # Gmail is ... - mail.google.com</screen> +# Gmail is ... +mail.google.com +</screen> <para> Be sure to flush your browser's caches whenever making these kinds of changes, just to make sure the changes <quote>take</quote>. @@ -1078,7 +1080,7 @@ with a browser? Does that not raise security issues?</title> </para> <screen> - listen-address 192.168.1.1:8118</screen> +listen-address 192.168.1.1:8118</screen> <para> Save the file, and restart <application>Privoxy</application>. Configure @@ -1091,7 +1093,7 @@ with a browser? Does that not raise security issues?</title> </para> <screen> - listen-address :8118</screen> +listen-address :8118</screen> <para> And then use <application>Privoxy's</application> @@ -1361,8 +1363,9 @@ and thus avoid individual browser configuration?</title> both in and out, for <literal>example.com</literal>: </para> <screen> - { -crunch-incoming-cookies -crunch-outgoing-cookies -session-cookies-only -filter{content-cookies} } - .example.com</screen> +{ -crunch-incoming-cookies -crunch-outgoing-cookies -session-cookies-only -filter{content-cookies} } +.example.com +</screen> <para> Place the above in <filename>user.action</filename>. Note that some of these may be off by default anyway, so this might be redundant, but there is no harm @@ -1398,19 +1401,20 @@ and thus avoid individual browser configuration?</title> Here's one real easy one: </para> <screen> - ############################################################ - # Blacklist - ############################################################ - { <ulink url="../user-manual/actions-file.html#BLOCK">+block</ulink> } - / # Block *all* URLs - - ############################################################ - # Whitelist - ############################################################ - { <ulink url="../user-manual/actions-file.html#BLOCK">-block</ulink> } - kids.example.com - toys.example.com - games.example.com</screen> +############################################################ +# Blacklist +############################################################ +{ <ulink url="../user-manual/actions-file.html#BLOCK">+block</ulink> } +/ # Block *all* URLs + +############################################################ +# Whitelist +############################################################ +{ <ulink url="../user-manual/actions-file.html#BLOCK">-block</ulink> } +kids.example.com +toys.example.com +games.example.com +</screen> <para> This allows access to only those three sites by first blocking all URLs, and then subsequently allowing three specific exceptions. @@ -1454,20 +1458,22 @@ and thus avoid individual browser configuration?</title> following very simple rule in your <filename>user.action</filename>: </para> <screen> - # Unblock everybody, everywhere - { <ulink url="../user-manual/actions-file.html#BLOCK">-block</ulink> } - / # UN-Block *all* URLs</screen> +# Unblock everybody, everywhere +{ <ulink url="../user-manual/actions-file.html#BLOCK">-block</ulink> } +/ # UN-Block *all* URLs +</screen> <para> Or even a more comprehensive reversing of various ad related actions: </para> <screen> - # Unblock everybody, everywhere, and turn off appropriate filtering, etc - { <ulink url="../user-manual/actions-file.html#BLOCK">-block</ulink> \ +# Unblock everybody, everywhere, and turn off appropriate filtering, etc +{ <ulink url="../user-manual/actions-file.html#BLOCK">-block</ulink> \ <ulink url="../user-manual/actions-file.html#FILTER-BANNERS-BY-SIZE">-filter{banners-by-size}</ulink> \ <ulink url="../user-manual/actions-file.html#FILTER-BANNERS-BY-LINK">-filter{banners-by-link}</ulink> \ <literal>allow-popups</literal> \ - } - / # UN-Block *all* URLs and allow ads</screen> +} +/ # UN-Block *all* URLs and allow ads +</screen> <para> This last <quote>action</quote> in this compound statement, <literal>allow-popups</literal>, is an <ulink @@ -1508,8 +1514,9 @@ the <emphasis>BLOCKED</emphasis> page?</title> available as compile-time options. You should <command>configure</command> the sources as follows: </para> - <screen> - ./configure --disable-toggle --disable-editor --disable-force</screen> +<screen> +./configure --disable-toggle --disable-editor --disable-force +</screen> <para> This will create an executable with hard-coded security features so that &my-app; does not allow easy bypassing of blocked sites, or changing the @@ -2200,11 +2207,12 @@ altered it! Yikes, what is wrong!</title> configuration, consider adding your list to your <filename>user.action</filename> file: </para> <screen> - { +block } - www.ad.example1.com - ad.example2.com - ads.galore.example.com - etc.example.com</screen> +{ +block } +www.ad.example1.com +ad.example2.com +ads.galore.example.com +etc.example.com +</screen> </sect2> <sect2 renderas="sect3" id="seealso"> diff --git a/doc/source/p-config.sgml b/doc/source/p-config.sgml index 53985876..679aa036 100644 --- a/doc/source/p-config.sgml +++ b/doc/source/p-config.sgml @@ -241,22 +241,22 @@ II. FORMAT OF THE CONFIGURATION FILE <para> Unix, in local filesystem (may not work with all browsers): </para> - <screen> user-manual file:///usr/share/doc/privoxy-&p-version;/user-manual/</screen> + <screen>user-manual file:///usr/share/doc/privoxy-&p-version;/user-manual/</screen> <para> Windows, in local filesystem, <emphasis>must</emphasis> use forward slash notation: </para> - <screen> user-manual file:/c:/some-dir/privoxy-&p-version;/user-manual/</screen> + <screen>user-manual file:/c:/some-dir/privoxy-&p-version;/user-manual/</screen> <para> Windows, UNC notation (with forward slashes): </para> - <screen> user-manual file://///some-server/some-path/privoxy-&p-version;/user-manual/</screen> + <screen>user-manual file://///some-server/some-path/privoxy-&p-version;/user-manual/</screen> --> <para> The best all purpose solution is simply to put the full local <literal>PATH</literal> to where the <citetitle>User Manual</citetitle> is located: </para> - <screen> user-manual /usr/share/doc/privoxy/user-manual</screen> + <screen>user-manual /usr/share/doc/privoxy/user-manual</screen> <para> The User Manual is then available to anyone with access to <application>Privoxy</application>, by following the built-in URL: @@ -267,7 +267,7 @@ II. FORMAT OF THE CONFIGURATION FILE If the documentation is not on the local system, it can be accessed from a remote server, as: </para> - <screen> user-manual http://example.com/privoxy/user-manual/</screen> + <screen>user-manual http://example.com/privoxy/user-manual/</screen> <![%user-man;[ <!-- this gets hammered in conversion to config. Text repeated below. --> <warning> @@ -1017,22 +1017,22 @@ actionsfile The available debug levels are: </para> <programlisting> - debug 1 # Log the destination for each request. See also debug 1024. - debug 2 # show each connection status - debug 4 # show tagging-related messages - debug 8 # show header parsing - debug 16 # log all data written to the network - debug 32 # debug force feature - debug 64 # debug regular expression filters - debug 128 # debug redirects - debug 256 # debug GIF de-animation - debug 512 # Common Log Format - debug 1024 # Log the destination for requests &my-app; didn't let through, and the reason why. - debug 2048 # CGI user interface - debug 4096 # Startup banner and warnings. - debug 8192 # Non-fatal errors - debug 32768 # log all data read from the network - debug 65536 # Log the applying actions +debug 1 # Log the destination for each request. See also debug 1024. +debug 2 # show each connection status +debug 4 # show tagging-related messages +debug 8 # show header parsing +debug 16 # log all data written to the network +debug 32 # debug force feature +debug 64 # debug regular expression filters +debug 128 # debug redirects +debug 256 # debug GIF de-animation +debug 512 # Common Log Format +debug 1024 # Log the destination for requests &my-app; didn't let through, and the reason why. +debug 2048 # CGI user interface +debug 4096 # Startup banner and warnings. +debug 8192 # Non-fatal errors +debug 32768 # log all data read from the network +debug 65536 # Log the applying actions </programlisting> <para> To select multiple debug levels, you can either add them or use @@ -1312,7 +1312,7 @@ actionsfile You want it to serve requests from inside only: </para> <programlisting> - listen-address 192.168.0.1:8118 +listen-address 192.168.0.1:8118 </programlisting> <para> Suppose you are running <application>Privoxy</application> on an @@ -1320,7 +1320,7 @@ actionsfile of the loopback device: </para> <programlisting> - listen-address [::1]:8118 +listen-address [::1]:8118 </programlisting> </listitem> </varlistentry> @@ -1769,14 +1769,14 @@ ACLs: permit-access and deny-access</title> <emphasis>all</emphasis> destination addresses are OK: </para> <screen> - permit-access localhost +permit-access localhost </screen> <para> Allow any host on the same class C subnet as www.privoxy.org access to nothing but www.example.com (or other domains hosted on the same system): </para> <screen> - permit-access www.privoxy.org/24 www.example.com/32 +permit-access www.privoxy.org/24 www.example.com/32 </screen> <para> Allow access from any host on the 26-bit subnet 192.168.45.64 to anywhere, @@ -1784,22 +1784,22 @@ ACLs: permit-access and deny-access</title> www.dirty-stuff.example.com: </para> <screen> - permit-access 192.168.45.64/26 - deny-access 192.168.45.73 www.dirty-stuff.example.com +permit-access 192.168.45.64/26 +deny-access 192.168.45.73 www.dirty-stuff.example.com </screen> <para> Allow access from the IPv4 network 192.0.2.0/24 even if listening on an IPv6 wild card address (not supported on all platforms): </para> <programlisting> - permit-access 192.0.2.0/24 +permit-access 192.0.2.0/24 </programlisting> <para> This is equivalent to the following line even if listening on an IPv4 address (not supported on all platforms): </para> <programlisting> - permit-access [::ffff:192.0.2.0]/120 +permit-access [::ffff:192.0.2.0]/120 </programlisting> </listitem> </varlistentry> @@ -2180,30 +2180,30 @@ ACLs: permit-access and deny-access</title> Everything goes to an example parent proxy, except SSL on port 443 (which it doesn't handle): </para> <screen> - forward / parent-proxy.example.org:8080 - forward :443 . +forward / parent-proxy.example.org:8080 +forward :443 . </screen> <para> Everything goes to our example ISP's caching proxy, except for requests to that ISP's sites: </para> <screen> - forward / caching-proxy.isp.example.net:8000 - forward .isp.example.net . +forward / caching-proxy.isp.example.net:8000 +forward .isp.example.net . </screen> <para> Parent proxy specified by an IPv6 address: </para> <programlisting> - forward / [2001:DB8::1]:8000 +forward / [2001:DB8::1]:8000 </programlisting> <para> Suppose your parent proxy doesn't support IPv6: </para> <programlisting> - forward / parent-proxy.example.org:8000 - forward ipv6-server.example.org . - forward <[2-3][0-9a-f][0-9a-f][0-9a-f]:*> . +forward / parent-proxy.example.org:8000 +forward ipv6-server.example.org . +forward <[2-3][0-9a-f][0-9a-f][0-9a-f]:*> . </programlisting> </listitem> </varlistentry> @@ -2311,21 +2311,21 @@ forward-socks4, forward-socks4a, forward-socks5 and forward-socks5t</title> the Internet. </para> <screen> - forward-socks4a / socks-gw.example.com:1080 www-cache.isp.example.net:8080 - forward .example.com . +forward-socks4a / socks-gw.example.com:1080 www-cache.isp.example.net:8080 +forward .example.com . </screen> <para> A rule that uses a SOCKS 4 gateway for all destinations but no HTTP parent looks like this: </para> <screen> - forward-socks4 / socks-gw.example.com:1080 . +forward-socks4 / socks-gw.example.com:1080 . </screen> <para> To connect SOCKS5 proxy which requires username/password authentication: </para> <screen> - forward-socks5 / user:pass@socks-gw.example.com:1080 . +forward-socks5 / user:pass@socks-gw.example.com:1080 . </screen> <para> @@ -2333,7 +2333,7 @@ forward-socks4, forward-socks4a, forward-socks5 and forward-socks5t</title> something like: </para> <screen> - forward-socks5t / 127.0.0.1:9050 . +forward-socks5t / 127.0.0.1:9050 . </screen> <para> Note that if you got Tor through one of the bundles, you may @@ -2347,9 +2347,9 @@ forward-socks4, forward-socks4a, forward-socks5 and forward-socks5t</title> therefore might want to make some exceptions: </para> <screen> - forward 192.168.*.*/ . - forward 10.*.*.*/ . - forward 127.*.*.*/ . +forward 192.168.*.*/ . +forward 10.*.*.*/ . +forward 127.*.*.*/ . </screen> <para> Unencrypted connections to systems in these address ranges will @@ -2364,7 +2364,7 @@ forward-socks4, forward-socks4a, forward-socks5 and forward-socks5t</title> this: </para> <screen> - forward localhost/ . +forward localhost/ . </screen> </listitem> @@ -2393,18 +2393,18 @@ forward-socks4, forward-socks4a, forward-socks5 and forward-socks5t</title> host-a: </para> - <screen> - forward / . - forward .isp-b.example.net host-b:8118 +<screen> +forward / . +forward .isp-b.example.net host-b:8118 </screen> <para> host-b: </para> - <screen> - forward / . - forward .isp-a.example.org host-a:8118 +<screen> +forward / . +forward .isp-a.example.org host-a:8118 </screen> <para> @@ -2424,18 +2424,19 @@ forward-socks4, forward-socks4a, forward-socks5 and forward-socks5t</title> run on the same box, your <application>squid</application> configuration could then look like this: </para> - <screen> - # Define Privoxy as parent proxy (without ICP) - cache_peer 127.0.0.1 parent 8118 7 no-query +<screen> +# Define Privoxy as parent proxy (without ICP) +cache_peer 127.0.0.1 parent 8118 7 no-query - # Define ACL for protocol FTP - acl ftp proto FTP +# Define ACL for protocol FTP +acl ftp proto FTP - # Do not forward FTP requests to Privoxy - always_direct allow ftp +# Do not forward FTP requests to Privoxy +always_direct allow ftp - # Forward all the rest to Privoxy - never_direct allow all</screen> +# Forward all the rest to Privoxy +never_direct allow all +</screen> <para> You would then need to change your browser's proxy settings to <application>squid</application>'s address and port. @@ -2448,9 +2449,10 @@ forward-socks4, forward-socks4a, forward-socks5 and forward-socks5t</title> say, on <literal>antivir.example.com</literal>, port 8010: </para> - <screen> - forward / . - forward /.*\.(exe|com|dll|zip)$ antivir.example.com:8010</screen> +<screen> +forward / . +forward /.*\.(exe|com|dll|zip)$ antivir.example.com:8010 +</screen> </sect3> ]]> @@ -3514,18 +3516,18 @@ forward-socks4, forward-socks4a, forward-socks5 and forward-socks5t</title> <term>Examples:</term> <listitem> <screen> - # Best speed (compared to the other levels) - compression-level 1 - - # Best compression - compression-level 9 - - # No compression. Only useful for testing as the added header - # slightly increases the amount of data that has to be sent. - # If your benchmark shows that using this compression level - # is superior to using no compression at all, the benchmark - # is likely to be flawed. - compression-level 0 +# Best speed (compared to the other levels) +compression-level 1 + +# Best compression +compression-level 9 + +# No compression. Only useful for testing as the added header +# slightly increases the amount of data that has to be sent. +# If your benchmark shows that using this compression level +# is superior to using no compression at all, the benchmark +# is likely to be flawed. +compression-level 0 </screen> </listitem> </varlistentry> @@ -3676,15 +3678,15 @@ forward-socks4, forward-socks4a, forward-socks5 and forward-socks5t</title> <term>Examples:</term> <listitem> <screen> - # Define a couple of tags, the described effect requires action sections - # that are enabled based on CLIENT-TAG patterns. - client-specific-tag circumvent-blocks Overrule blocks but do not affect other actions - client-specific-tag disable-content-filters Disable content-filters but do not affect other actions - client-specific-tag overrule-redirects Overrule redirect sections - client-specific-tag allow-cookies Do not crunch cookies in either direction - client-specific-tag change-tor-socks-port Change forward-socks5 settings to use a different Tor socks port (and circuits) - client-specific-tag no-https-inspection Disable HTTPS inspection - client-specific-tag no-tls-verification Don't verify certificates when http-inspection is enabled + # Define a couple of tags, the described effect requires action sections + # that are enabled based on CLIENT-TAG patterns. + client-specific-tag circumvent-blocks Overrule blocks but do not affect other actions + client-specific-tag disable-content-filters Disable content-filters but do not affect other actions + client-specific-tag overrule-redirects Overrule redirect sections + client-specific-tag allow-cookies Do not crunch cookies in either direction + client-specific-tag change-tor-socks-port Change forward-socks5 settings to use a different Tor socks port (and circuits) + client-specific-tag no-https-inspection Disable HTTPS inspection + client-specific-tag no-tls-verification Don't verify certificates when http-inspection is enabled </screen> </listitem> </varlistentry> @@ -3738,8 +3740,8 @@ forward-socks4, forward-socks4a, forward-socks5 and forward-socks5t</title> <term>Example:</term> <listitem> <screen> - # Increase the time to life for temporarily enabled tags to 3 minutes - client-tag-lifetime 180 + # Increase the time to life for temporarily enabled tags to 3 minutes + client-tag-lifetime 180 </screen> </listitem> </varlistentry> @@ -3804,9 +3806,9 @@ forward-socks4, forward-socks4a, forward-socks5 and forward-socks5t</title> <term>Example:</term> <listitem> <screen> - # Allow systems that can reach Privoxy to provide the client - # IP address with a X-Forwarded-For header. - trust-x-forwarded-for 1 + # Allow systems that can reach Privoxy to provide the client + # IP address with a X-Forwarded-For header. + trust-x-forwarded-for 1 </screen> </listitem> </varlistentry> @@ -3877,8 +3879,8 @@ forward-socks4, forward-socks4a, forward-socks5 and forward-socks5t</title> <term>Example:</term> <listitem> <screen> - # Increase the receive buffer size - receive-buffer-size 32768 + # Increase the receive buffer size + receive-buffer-size 32768 </screen> </listitem> </varlistentry> @@ -4302,8 +4304,8 @@ forward-socks4, forward-socks4a, forward-socks5 and forward-socks5t</title> <term>Examples:</term> <listitem> <screen> - # Explicitly set a couple of ciphers with names used by MbedTLS - cipher-list cipher-list TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256:\ + # Explicitly set a couple of ciphers with names used by MbedTLS +cipher-list cipher-list TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256:\ TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256:\ TLS-DHE-RSA-WITH-CHACHA20-POLY1305-SHA256:\ TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256:\ @@ -4334,9 +4336,9 @@ TLS-ECDH-ECDSA-WITH-AES-128-GCM-SHA256:\ TLS-ECDH-ECDSA-WITH-AES-256-GCM-SHA384:\ TLS-ECDH-ECDSA-WITH-CAMELLIA-128-GCM-SHA256:\ TLS-ECDH-ECDSA-WITH-CAMELLIA-256-GCM-SHA384 - </screen> +</screen> <screen> - # Explicitly set a couple of ciphers with names used by OpenSSL + # Explicitly set a couple of ciphers with names used by OpenSSL cipher-list ECDHE-RSA-AES256-GCM-SHA384:\ ECDHE-ECDSA-AES256-GCM-SHA384:\ DH-DSS-AES256-GCM-SHA384:\ @@ -4355,11 +4357,11 @@ ECDH-RSA-AES128-GCM-SHA256:\ ECDH-ECDSA-AES128-GCM-SHA256:\ ECDHE-RSA-AES256-GCM-SHA384:\ AES128-SHA - </screen> +</screen> <screen> - # Use keywords instead of explicitly naming the ciphers (Does not work with MbedTLS) - cipher-list ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH - </screen> + # Use keywords instead of explicitly naming the ciphers (Does not work with MbedTLS) +cipher-list ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH +</screen> </listitem> </varlistentry> </variablelist> diff --git a/doc/source/user-manual.sgml b/doc/source/user-manual.sgml index 2d16b835..e6bbafb1 100644 --- a/doc/source/user-manual.sgml +++ b/doc/source/user-manual.sgml @@ -342,42 +342,42 @@ How to install the binary packages depends on your operating system: Run the setup program and from View / Category select: </para> <screen> - Devel - autoconf 2.5 - automake 1.15 - binutils - cmake - gcc-core - gcc-g++ - git - make - mingw64-i686-gcc-core - mingw64-i686-zlib - Editors - vim - Libs - libxslt: GNOME XSLT library (runtime) - Net - curl - openssh - Text - docbook-dssl - docbook-sgml31 - docbook-utils - openjade - Utils - gnupg - Web - w3m +Devel + autoconf 2.5 + automake 1.15 + binutils + cmake + gcc-core + gcc-g++ + git + make + mingw64-i686-gcc-core + mingw64-i686-zlib +Editors + vim +Libs + libxslt: GNOME XSLT library (runtime) +Net + curl + openssh +Text + docbook-dssl + docbook-sgml31 + docbook-utils + openjade +Utils + gnupg +Web + w3m </screen> <para> If you haven't already downloaded the Privoxy source code, get it now: </para> <screen> - mkdir <root-dir> - cd <root-dir> - git clone https://www.privoxy.org/git/privoxy.git +mkdir <root-dir> +cd <root-dir> +git clone https://www.privoxy.org/git/privoxy.git </screen> <para> @@ -387,10 +387,10 @@ How to install the binary packages depends on your operating system: unzip into <root-dir> and build the software: </para> <screen> - cd <root-dir> - cd tidy-html5-x.y.z/build/cmake - cmake ../.. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIB:BOOL=OFF -DCMAKE_INSTALL_PREFIX=/usr/local - make && make install +cd <root-dir> +cd tidy-html5-x.y.z/build/cmake +cmake ../.. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIB:BOOL=OFF -DCMAKE_INSTALL_PREFIX=/usr/local +make && make install </screen> <para> @@ -493,8 +493,8 @@ export LDFLAGS="${LDFLAGS} -fstack-protector-strong" To build just the Privoxy executable and not the whole installation package, do: </para> <programlisting> - cd <root-dir>/privoxy - ./windows/MYconfigure && make +cd <root-dir>/privoxy +./windows/MYconfigure && make </programlisting> <para> @@ -502,10 +502,10 @@ export LDFLAGS="${LDFLAGS} -fstack-protector-strong" for building software, so the process is: </para> <programlisting> - $ autoheader # creates config.h.in - $ autoconf # uses config.h.in to create the configure shell script - $ ./configure [options] # creates GNUmakefile - $ make [options] # builds the program +autoheader # creates config.h.in +autoconf # uses config.h.in to create the configure shell script +./configure [options] # creates GNUmakefile +make [options] # builds the program </programlisting> <para> @@ -528,11 +528,11 @@ export LDFLAGS="${LDFLAGS} -fstack-protector-strong" </para> <programlisting> - $ export CFLAGS="-O2" # set gcc optimization level - $ export LDFLAGS="-Wl,--nxcompat" # Enable DEP - $ ./configure --host=i686-w64-mingw32 --enable-mingw32 --enable-zlib \ - > --enable-static-linking --disable-pthread --disable-dynamic-pcre - $ make # build Privoxy +$ export CFLAGS="-O2" # set gcc optimization level +$ export LDFLAGS="-Wl,--nxcompat" # Enable DEP +$ ./configure --host=i686-w64-mingw32 --enable-mingw32 --enable-zlib \ +> --enable-static-linking --disable-pthread +$ make # build Privoxy </programlisting> <para> @@ -672,8 +672,9 @@ export LDFLAGS="${LDFLAGS} -fstack-protector-strong" use, filtering, you will need to force compression off. Example: </para> <screen> - { +<link linkend="filter">filter</link>{google} +<link linkend="prevent-compression">prevent-compression</link> } - .google.</screen> +{ +<link linkend="filter">filter</link>{google} +<link linkend="prevent-compression">prevent-compression</link> } +.google. +</screen> <para> Or if you use a number of filters, or filter many sites, you may just want to turn off compression for all sites in @@ -1214,7 +1215,7 @@ export LDFLAGS="${LDFLAGS} -fstack-protector-strong" file. </para> <screen> - # /etc/init.d/privoxy start +# /etc/init.d/privoxy start </screen> </sect2> @@ -1235,7 +1236,7 @@ export LDFLAGS="${LDFLAGS} -fstack-protector-strong" To start <application>Privoxy</application> manually, run: </para> <screen> - # service privoxy onestart +# service privoxy onestart </screen> </sect2> @@ -1263,7 +1264,7 @@ Click on the &my-app; Icon to start <application>Privoxy</application>. If no co Example Unix startup command: </para> <screen> - # /usr/sbin/privoxy --user privoxy /etc/privoxy/config +# /usr/sbin/privoxy --user privoxy /etc/privoxy/config </screen> <para> Note that if you installed <application>Privoxy</application> through @@ -2082,12 +2083,13 @@ for details. might look like: </para> - <screen> - { +<literal>handle-as-image</literal> +<literal>block{Banner ads.}</literal> } - # Block these as if they were images. Send no block page. - banners.example.com - media.example.com/.*banners - .example.com/images/ads/</screen> +<screen> +{ +<literal>handle-as-image</literal> +<literal>block{Banner ads.}</literal> } +# Block these as if they were images. Send no block page. +banners.example.com +media.example.com/.*banners +.example.com/images/ads/ +</screen> <para> You can trace this process for URL patterns and any given URL by visiting <ulink @@ -2625,8 +2627,9 @@ example.org/blocked-example-page</screen> <quote>disabled</quote>. Syntax: </para> <screen> - +<replaceable class="function">name</replaceable> # enable action <replaceable class="parameter">name</replaceable> - -<replaceable class="function">name</replaceable> # disable action <replaceable class="parameter">name</replaceable></screen> ++<replaceable class="function">name</replaceable> # enable action <replaceable class="parameter">name</replaceable> +-<replaceable class="function">name</replaceable> # disable action <replaceable class="parameter">name</replaceable> +</screen> <para> Example: <literal>+handle-as-image</literal> </para> @@ -2638,10 +2641,11 @@ example.org/blocked-example-page</screen> Parameterized, where some value is required in order to enable this type of action. Syntax: </para> - <screen> - +<replaceable class="function">name</replaceable>{<replaceable class="parameter">param</replaceable>} # enable action and set parameter to <replaceable class="parameter">param</replaceable>, - # overwriting parameter from previous match if necessary - -<replaceable class="function">name</replaceable> # disable action. The parameter can be omitted</screen> + <screen> ++<replaceable class="function">name</replaceable>{<replaceable class="parameter">param</replaceable>} # enable action and set parameter to <replaceable class="parameter">param</replaceable>, + # overwriting parameter from previous match if necessary +-<replaceable class="function">name</replaceable> # disable action. The parameter can be omitted +</screen> <para> Note that if the URL matches multiple positive forms of a parameterized action, the last match wins, i.e. the params from earlier matches are simply ignored. @@ -2660,11 +2664,12 @@ example.org/blocked-example-page</screen> that can be executed for the same request repeatedly, like adding multiple headers, or filtering through multiple filters. Syntax: </para> - <screen> - +<replaceable class="function">name</replaceable>{<replaceable class="parameter">param</replaceable>} # enable action and add <replaceable class="parameter">param</replaceable> to the list of parameters - -<replaceable class="function">name</replaceable>{<replaceable class="parameter">param</replaceable>} # remove the parameter <replaceable class="parameter">param</replaceable> from the list of parameters - # If it was the last one left, disable the action. - <replaceable class="parameter">-name</replaceable> # disable this action completely and remove all parameters from the list</screen> + <screen> ++<replaceable class="function">name</replaceable>{<replaceable class="parameter">param</replaceable>} # enable action and add <replaceable class="parameter">param</replaceable> to the list of parameters +-<replaceable class="function">name</replaceable>{<replaceable class="parameter">param</replaceable>} # remove the parameter <replaceable class="parameter">param</replaceable> from the list of parameters + # If it was the last one left, disable the action. +<replaceable class="parameter">-name</replaceable> # disable this action completely and remove all parameters from the list +</screen> <para> Examples: <literal>+add-header{X-Fun-Header: Some text}</literal> and <literal>+filter{html-annoyances}</literal> @@ -2864,18 +2869,20 @@ example.org/blocked-example-page</screen> <varlistentry> <term>Example usage (section):</term> <listitem> - <screen>{+block{No nasty stuff for you.}} + <screen> +{+block{No nasty stuff for you.}} # Block and replace with "blocked" page - .nasty-stuff.example.com +.nasty-stuff.example.com {+block{Doubleclick banners.} +handle-as-image} # Block and replace with image - .ad.doubleclick.net - .ads.r.us/banners/ +.ad.doubleclick.net +.ads.r.us/banners/ {+block{Layered ads.} +handle-as-empty-document} # Block and then ignore - adserver.example.net/.*\.js$</screen> +adserver.example.net/.*\.js$ +</screen> </listitem> </varlistentry> @@ -4142,11 +4149,12 @@ problem-host.example.com</screen> <term>Example usage:</term> <listitem> <screen> - { +fast-redirects{simple-check} } - one.example.com +{ +fast-redirects{simple-check} } +one.example.com - { +fast-redirects{check-decoded-url} } - another.example.com/testing</screen> +{ +fast-redirects{check-decoded-url} } +another.example.com/testing +</screen> </listitem> </varlistentry> @@ -4952,11 +4960,14 @@ new action <varlistentry> <term>Example usage:</term> <listitem> - <screen># Disarm the download link in Sourceforge's patch tracker + <screen> +# Disarm the download link in Sourceforge's patch tracker { -filter \ - +content-type-overwrite{text/plain}\ - +hide-content-disposition{block} } - .sourceforge.net/tracker/download\.php</screen> + +content-type-overwrite{text/plain} \ + +hide-content-disposition{block} \ +} +.sourceforge.net/tracker/download\.php +</screen> </listitem> </varlistentry> </variablelist> @@ -5444,7 +5455,7 @@ www.example.com</screen> <screen> {+ignore-certificate-errors} www.example.org - </screen> +</screen> </listitem> </varlistentry> </variablelist> @@ -5701,19 +5712,20 @@ www.example.com</screen> # { +filter{tiny-textforms} +prevent-compression } # Match only these sites - .google. - sourceforge.net - sf.net +.google. +sourceforge.net +sf.net # Or instead, we could set a universal default: # { +prevent-compression } - / # Match all sites +/ # Match all sites # Then maybe make exceptions for broken sites: # { -prevent-compression } -.compusa.com/</screen> +.compusa.com/ +</screen> </listitem> </varlistentry> @@ -5805,11 +5817,14 @@ new action <varlistentry> <term>Example usage:</term> <listitem> - <screen># Let the browser revalidate without being tracked across sessions + <screen> +# Let the browser revalidate without being tracked across sessions { +hide-if-modified-since{-60} \ - +overwrite-last-modified{randomize} \ - +crunch-if-none-match} -/</screen> + +overwrite-last-modified{randomize} \ + +crunch-if-none-match \ +} +/ +</screen> </listitem> </varlistentry> </variablelist> @@ -5900,14 +5915,15 @@ new action <varlistentry> <term>Example usages:</term> <listitem> - <screen># Replace example.com's style sheet with another one + <screen> +# Replace example.com's style sheet with another one { +redirect{http://localhost/css-replacements/example.com.css} } - example.com/stylesheet\.css +example.com/stylesheet\.css # Create a short, easy to remember nickname for a favorite site # (relies on the browser to accept and forward invalid URLs to &my-app;) { +redirect{https://www.privoxy.org/user-manual/actions-file.html} } - a +a # Always use the expanded view for Undeadly.org articles # (Note the $ at the end of the URL pattern to make sure @@ -6438,32 +6454,33 @@ TAG:^IP-ADDRESS: 10\.0\.0\.1$ </para> <screen> - # Useful custom aliases we can use later. - # - # Note the (required!) section header line and that this section - # must be at the top of the actions file! - # - {{alias}} +# Useful custom aliases we can use later. +# +# Note the (required!) section header line and that this section +# must be at the top of the actions file! +# +{{alias}} - # These aliases just save typing later: - # (Note that some already use other aliases!) - # - +crunch-all-cookies = +<link linkend="CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</link> +<link linkend="CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</link> - -crunch-all-cookies = -<link linkend="CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</link> -<link linkend="CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</link> - +block-as-image = +block{Blocked image.} +handle-as-image - allow-all-cookies = -crunch-all-cookies -<link linkend="SESSION-COOKIES-ONLY">session-cookies-only</link> -<link linkend="FILTER-CONTENT-COOKIES">filter{content-cookies}</link> +# These aliases just save typing later: +# (Note that some already use other aliases!) +# ++crunch-all-cookies = +<link linkend="CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</link> +<link linkend="CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</link> +-crunch-all-cookies = -<link linkend="CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</link> -<link linkend="CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</link> ++block-as-image = +block{Blocked image.} +handle-as-image +allow-all-cookies = -crunch-all-cookies -<link linkend="SESSION-COOKIES-ONLY">session-cookies-only</link> -<link linkend="FILTER-CONTENT-COOKIES">filter{content-cookies}</link> - # These aliases define combinations of actions - # that are useful for certain types of sites: - # - fragile = -<link linkend="BLOCK">block</link> -<link linkend="FILTER">filter</link> -crunch-all-cookies -<link linkend="FAST-REDIRECTS">fast-redirects</link> -<link linkend="HIDE-REFERER">hide-referrer</link> -<link linkend="PREVENT-COMPRESSION">prevent-compression</link> +# These aliases define combinations of actions +# that are useful for certain types of sites: +# +fragile = -<link linkend="BLOCK">block</link> -<link linkend="FILTER">filter</link> -crunch-all-cookies -<link linkend="FAST-REDIRECTS">fast-redirects</link> -<link linkend="HIDE-REFERER">hide-referrer</link> -<link linkend="PREVENT-COMPRESSION">prevent-compression</link> - shop = -crunch-all-cookies -<link linkend="FILTER-ALL-POPUPS">filter{all-popups}</link> +shop = -crunch-all-cookies -<link linkend="FILTER-ALL-POPUPS">filter{all-popups}</link> - # Short names for other aliases, for really lazy people ;-) - # - c0 = +crunch-all-cookies - c1 = -crunch-all-cookies</screen> +# Short names for other aliases, for really lazy people ;-) +# +c0 = +crunch-all-cookies +c1 = -crunch-all-cookies +</screen> <para> ...and put them to use. These sections would appear in the lower part of an @@ -6472,28 +6489,29 @@ TAG:^IP-ADDRESS: 10\.0\.0\.1$ </para> <screen> - # These sites are either very complex or very keen on - # user data and require minimal interference to work: - # - {fragile} - .office.microsoft.com - .windowsupdate.microsoft.com - # Gmail is really mail.google.com, not gmail.com - mail.google.com - - # Shopping sites: - # Allow cookies (for setting and retrieving your customer data) - # - {shop} - .quietpc.com - .worldpay.com # for quietpc.com - mybank.example.com +# These sites are either very complex or very keen on +# user data and require minimal interference to work: +# +{fragile} +.office.microsoft.com +.windowsupdate.microsoft.com +# Gmail is really mail.google.com, not gmail.com +mail.google.com - # These shops require pop-ups: - # - {-filter{all-popups} -filter{unsolicited-popups}} - .dabs.com - .overclockers.co.uk</screen> +# Shopping sites: +# Allow cookies (for setting and retrieving your customer data) +# +{shop} +.quietpc.com +.worldpay.com # for quietpc.com +mybank.example.com + +# These shops require pop-ups: +# +{-filter{all-popups} -filter{unsolicited-popups}} +.dabs.com +.overclockers.co.uk +</screen> <para> Aliases like <quote>shop</quote> and <quote>fragile</quote> are typically used for @@ -6602,7 +6620,7 @@ for-privoxy-version=3.0.11</screen> # +crunch-all-cookies = +<link linkend="CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</link> +<link linkend="CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</link> -crunch-all-cookies = -<link linkend="CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</link> -<link linkend="CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</link> - +block-as-image = +block{Blocked image.} +handle-as-image + +block-as-image = +block{Blocked image.} +handle-as-image mercy-for-cookies = -crunch-all-cookies -<link linkend="SESSION-COOKIES-ONLY">session-cookies-only</link> -<link linkend="FILTER-CONTENT-COOKIES">filter{content-cookies}</link> # These aliases define combinations of actions @@ -6902,10 +6920,11 @@ handle-as-text = -<link linkend="FILTER">filter</link> +-<link linkend="content- <screen> { allow-all-cookies } - sourceforge.net - .yahoo.com - .msdn.microsoft.com - .redhat.com</screen> +sourceforge.net +.yahoo.com +.msdn.microsoft.com +.redhat.com +</screen> <para> Your bank is allergic to some filter, but you don't know which, so you disable them all: @@ -6913,7 +6932,8 @@ handle-as-text = -<link linkend="FILTER">filter</link> +-<link linkend="content- <screen> { -<link linkend="FILTER">filter</link> } - .your-home-banking-site.com</screen> +.your-home-banking-site.com +</screen> <para> Some file types you may not want to filter for various reasons: @@ -6944,8 +6964,9 @@ stupid-server.example.com/</screen> <screen> { +<link linkend="BLOCK">block</link>{Nasty ads.} } - www.example.com/nasty-ads/sponsor\.gif - another.example.net/more/junk/here/</screen> +www.example.com/nasty-ads/sponsor\.gif +another.example.net/more/junk/here/ +</screen> <para> The URLs of dynamically generated banners, especially from large banner @@ -6961,10 +6982,11 @@ stupid-server.example.com/</screen> <screen> { +block-as-image } - .doubleclick.net - .fastclick.net - /Realmedia/ads/ - ar.atwola.com/</screen> +.doubleclick.net +.fastclick.net +/Realmedia/ads/ +ar.atwola.com/ +</screen> <para> Now you noticed that the default configuration breaks Forbes Magazine, @@ -6980,9 +7002,10 @@ stupid-server.example.com/</screen> <screen> { fragile } - .forbes.com - webmail.example.com - .mybank.com</screen> +.forbes.com +webmail.example.com +.mybank.com +</screen> <para> You like the <quote>fun</quote> text replacements in <filename>default.filter</filename>, @@ -6993,7 +7016,8 @@ stupid-server.example.com/</screen> <screen> { +<link linkend="filter-fun">filter{fun}</link> } - / # For ALL sites!</screen> +/ # For ALL sites! +</screen> <para> Note that the above is not really a good idea: There are exceptions @@ -7012,9 +7036,10 @@ stupid-server.example.com/</screen> <screen> { allow-ads } - .sourceforge.net - .slashdot.org - .osdn.net</screen> +.sourceforge.net +.slashdot.org +.osdn.net +</screen> <para> Note that <literal>allow-ads</literal> has been aliased to @@ -7032,7 +7057,8 @@ stupid-server.example.com/</screen> <screen> { handle-as-text } - /.*\.sh$</screen> +/.*\.sh$ +</screen> <para> <filename>user.action</filename> is generally the best place to define @@ -8724,11 +8750,11 @@ Requests</title> </para> <screen> - Matches for http://www.google.com: +Matches for http://www.google.com: - In file: default.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibutton> +In file: default.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibutton> - {+change-x-forwarded-for{block} +{+change-x-forwarded-for{block} +deanimate-gifs {last} +fast-redirects {check-decoded-url} +filter {refresh-tags} @@ -8740,14 +8766,14 @@ Requests</title> +hide-from-header {block} +hide-referrer {forge} +session-cookies-only - +set-image-blocker {pattern} + +set-image-blocker {pattern} } / - { -session-cookies-only } - .google.com +{ -session-cookies-only } +.google.com - { -fast-redirects } - .google.com +{ -fast-redirects } +.google.com In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibutton> (no matches in this file) @@ -8810,64 +8836,64 @@ In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut </para> <screen> - Final results: - - -add-header - -block - +change-x-forwarded-for{block} - -client-header-filter{hide-tor-exit-notation} - -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-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 {google} - -filter {yahoo} - -filter {msn} - -filter {blogspot} - -filter {no-ping} - -force-text-mode - -handle-as-empty-document - -handle-as-image - -hide-accept-language - -hide-content-disposition - +hide-from-header {block} - -hide-if-modified-since - +hide-referrer {forge} - -hide-user-agent - -limit-connect - -overwrite-last-modified - -prevent-compression - -redirect - -server-header-filter{xml-to-html} - -server-header-filter{html-to-xml} - -session-cookies-only - +set-image-blocker {pattern} +Final results: + +-add-header +-block ++change-x-forwarded-for{block} +-client-header-filter{hide-tor-exit-notation} +-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-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 {google} +-filter {yahoo} +-filter {msn} +-filter {blogspot} +-filter {no-ping} +-force-text-mode +-handle-as-empty-document +-handle-as-image +-hide-accept-language +-hide-content-disposition ++hide-from-header {block} +-hide-if-modified-since ++hide-referrer {forge} +-hide-user-agent +-limit-connect +-overwrite-last-modified +-prevent-compression +-redirect +-server-header-filter{xml-to-html} +-server-header-filter{html-to-xml} +-session-cookies-only ++set-image-blocker {pattern} </screen> <para> @@ -8882,14 +8908,14 @@ In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut </para> <screen> - { +block{Domains starts with "ad"} } - ad*. +{ +block{Domains starts with "ad"} } +ad*. - { +block{Domain contains "ad"} } - .ad. +{ +block{Domain contains "ad"} } +.ad. - { +block{Doubleclick banner server} +handle-as-image } - .[a-vx-z]*.doubleclick.net +{ +block{Doubleclick banner server} +handle-as-image } +.[a-vx-z]*.doubleclick.net </screen> <para> @@ -8923,68 +8949,68 @@ In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut </para> <screen> - Matches for http://www.example.net/adsl/HOWTO/: - - In file: default.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibutton> - - {-add-header - -block - +change-x-forwarded-for{block} - -client-header-filter{hide-tor-exit-notation} - -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 {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 {google} - -filter {yahoo} - -filter {msn} - -filter {blogspot} - -filter {no-ping} - -force-text-mode - -handle-as-empty-document - -handle-as-image - -hide-accept-language - -hide-content-disposition - +hide-from-header{block} - +hide-referer{forge} - -hide-user-agent - -overwrite-last-modified - +prevent-compression - -redirect - -server-header-filter{xml-to-html} - -server-header-filter{html-to-xml} - +session-cookies-only - +set-image-blocker{blank} } - / - - { +block{Path contains "ads".} +handle-as-image } - /ads +Matches for http://www.example.net/adsl/HOWTO/: + +In file: default.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibutton> + +{-add-header + -block + +change-x-forwarded-for{block} + -client-header-filter{hide-tor-exit-notation} + -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 {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 {google} + -filter {yahoo} + -filter {msn} + -filter {blogspot} + -filter {no-ping} + -force-text-mode + -handle-as-empty-document + -handle-as-image + -hide-accept-language + -hide-content-disposition + +hide-from-header{block} + +hide-referer{forge} + -hide-user-agent + -overwrite-last-modified + +prevent-compression + -redirect + -server-header-filter{xml-to-html} + -server-header-filter{html-to-xml} + +session-cookies-only + +set-image-blocker{blank} } +/ + +{ +block{Path contains "ads".} +handle-as-image } +/ads </screen> <para> @@ -9002,8 +9028,8 @@ In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut </para> <screen> - { -block } - /adsl +{ -block } +/adsl </screen> <para> @@ -9019,8 +9045,8 @@ In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut </para> <screen> - { +block{Path starts with "ads".} +handle-as-image } - /ads +{ +block{Path starts with "ads".} +handle-as-image } +/ads </screen> <para> @@ -9036,12 +9062,12 @@ In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut </para> <screen> - { shop } - .quietpc.com - .worldpay.com # for quietpc.com - .jungle.com - .scan.co.uk - .forbes.com +{ shop } +.quietpc.com +.worldpay.com # for quietpc.com +.jungle.com +.scan.co.uk +.forbes.com </screen> <para> @@ -9051,11 +9077,11 @@ In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut </para> <screen> - { -filter } - # Disable ALL filter actions for sites in this section - .forbes.com - developer.ibm.com - localhost +{ -filter } +# Disable ALL filter actions for sites in this section +.forbes.com +developer.ibm.com +localhost </screen> <para> @@ -9081,10 +9107,11 @@ In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut </para> <screen> - { fragile } - # Handle with care: easy to break - mail.google. - mybank.example.com</screen> +{ fragile } +# Handle with care: easy to break +mail.google. +mybank.example.com +</screen> <para>