From ab1954feed634fdbcf43ac5087615f9874fe06f2 Mon Sep 17 00:00:00 2001 From: Lee Date: Sat, 10 Apr 2021 15:09:12 -0400 Subject: [PATCH] rebuild docs --- AUTHORS | 2 + INSTALL | 22 +- config | 167 ++- doc/webserver/developer-manual/coding.html | 580 +++++----- doc/webserver/developer-manual/git.html | 90 +- .../developer-manual/newrelease.html | 48 +- doc/webserver/developer-manual/testing.html | 127 ++- .../developer-manual/webserver-update.html | 2 +- doc/webserver/faq/configuration.html | 60 +- doc/webserver/faq/misc.html | 18 +- doc/webserver/faq/trouble.html | 106 +- doc/webserver/user-manual/actions-file.html | 993 +++++++++--------- doc/webserver/user-manual/appendix.html | 316 +++--- doc/webserver/user-manual/config.html | 140 ++- doc/webserver/user-manual/configuration.html | 4 +- doc/webserver/user-manual/copyright.html | 6 +- doc/webserver/user-manual/filter-file.html | 107 +- doc/webserver/user-manual/installation.html | 113 +- doc/webserver/user-manual/quickstart.html | 2 +- doc/webserver/user-manual/startup.html | 10 +- doc/webserver/user-manual/templates.html | 8 +- 21 files changed, 1489 insertions(+), 1432 deletions(-) diff --git a/AUTHORS b/AUTHORS index 9c3c6170..3f64466c 100644 --- a/AUTHORS +++ b/AUTHORS @@ -66,6 +66,7 @@ include (in alphabetical order): Wan-Teh Chang Sam Chen Ramkumar Chinchani + Gwyn Ciesla Billy Crook Frédéric Crozat Matthew Daley @@ -208,6 +209,7 @@ include (in alphabetical order): Yang Xia Jarry Xu Oliver Yeoh + Wen Yue Yossi Zahn Jamie Zawinski Zepard diff --git a/INSTALL b/INSTALL index c54d0e1d..cb2fa026 100644 --- a/INSTALL +++ b/INSTALL @@ -39,8 +39,8 @@ compiler like gcc are required. When building from a source tarball, first unpack the source: - tar xzvf privoxy-3.0.33-beta-src.tar.gz - cd privoxy-3.0.33-beta + tar xzvf privoxy-3.0.33-beta-src.tar.gz + cd privoxy-3.0.33-beta To build the development version, you can get the source code by doing: @@ -71,13 +71,13 @@ Some binary packages may do this for you. Then, to build from either unpacked tarball or Git checkout: - 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) + 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) Using GNU make, you can have the first four steps automatically done for you by just typing: @@ -90,7 +90,7 @@ To build an executable with security enhanced features so that users cannot easily bypass the proxy (e.g. "Go There Anyway"), or alter their own configurations, configure like this: - ./configure --disable-toggle --disable-editor --disable-force + ./configure --disable-toggle --disable-editor --disable-force Note that all of these options can also be disabled through the configuration file. @@ -110,7 +110,7 @@ be run as this same user to insure write access to configuration and log files! Alternately, you can specify user and group on the make command line, but be sure both already exist: - make -s install USER=privoxy GROUP=privoxy + make -s install USER=privoxy GROUP=privoxy The default installation path for make install is /usr/local. This may of course be customized with the various ./configure path options. If you are diff --git a/config b/config index da6d6b75..b65e6f37 100644 --- a/config +++ b/config @@ -1,4 +1,4 @@ -# Sample Configuration File for Privoxy 3.0.32 +# Sample Configuration File for Privoxy 3.0.33 # # Copyright (C) 2001-2021 Privoxy Developers https://www.privoxy.org/ # @@ -592,7 +592,7 @@ logfile logfile # each request as it happens. 1, 1024, 4096 and 8192 are # recommended so that you will notice when things go wrong. The # other levels are probably only of interest if you are hunting -# down a specific problem. They can produce a hell of an output +# down a specific problem. They can produce a lot of output # (especially 16). # # If you are used to the more verbose settings, simply enable @@ -764,8 +764,8 @@ logfile logfile # consider using access control lists (ACL's, see below), and/or # a firewall. # -# If you open Privoxy to untrusted users, you will also want to -# make sure that the following actions are disabled: +# If you open Privoxy to untrusted users, you should also make +# sure that the following actions are disabled: # enable-edit-actions and enable-remote-toggle # # Example: @@ -1457,8 +1457,8 @@ enable-proxy-authentication-forwarding 0 # might want to make some exceptions: # # forward 192.168.*.*/ . -# forward 10.*.*.*/ . -# forward 127.*.*.*/ . +# forward 10.*.*.*/ . +# forward 127.*.*.*/ . # # Unencrypted connections to systems in these address ranges # will be as (un)secure as the local network is, but the @@ -1471,7 +1471,7 @@ enable-proxy-authentication-forwarding 0 # network by using their names, you will need additional # exceptions that look like this: # -# forward localhost/ . +# forward localhost/ . # # # 5.3. forwarded-connect-retries @@ -1831,11 +1831,11 @@ tolerate-pipelining 1 # speedups. There are also a few privacy implications you should # be aware of. # -# If this option is effective, outgoing connections are shared +# If this option is enabled, outgoing connections are shared # between clients (if there are more than one) and closing the -# browser that initiated the outgoing connection does no longer -# affect the connection between Privoxy and the server unless -# the client's request hasn't been completed yet. +# browser that initiated the outgoing connection does not affect +# the connection between Privoxy and the server unless the +# client's request hasn't been completed yet. # # If the outgoing connection is idle, it will not be closed # until either Privoxy's or the server's timeout is reached. @@ -1917,12 +1917,10 @@ socket-timeout 300 # # 128 # -# Effect if unset: +# Notes: # # Connections are served until a resource limit is reached. # -# Notes: -# # Privoxy creates one thread (or process) for every incoming # client connection that isn't rejected based on the access # control settings. @@ -2169,19 +2167,18 @@ socket-timeout 300 # # Examples: # -# # Best speed (compared to the other levels) -# compression-level 1 +# # 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 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 # #compression-level 1 # @@ -2332,7 +2329,6 @@ socket-timeout 300 # client-tag-lifetime 180 # # -# # 6.18. trust-x-forwarded-for # ============================ # @@ -2380,7 +2376,6 @@ socket-timeout 300 # trust-x-forwarded-for 1 # # -# # 6.19. receive-buffer-size # ========================== # @@ -2668,63 +2663,60 @@ socket-timeout 300 # Examples: # # # 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:\ -# TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384:\ -# TLS-ECDHE-ECDSA-WITH-AES-256-CCM:\ -# TLS-ECDHE-ECDSA-WITH-AES-256-CCM-8:\ -# TLS-ECDHE-ECDSA-WITH-AES-128-CCM:\ -# TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8:\ -# TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-GCM-SHA256:\ -# TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-GCM-SHA384:\ -# TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256:\ -# TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:\ -# TLS-ECDHE-RSA-WITH-CAMELLIA-128-GCM-SHA256:\ -# TLS-ECDHE-RSA-WITH-CAMELLIA-256-GCM-SHA384:\ -# TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:\ -# TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:\ -# TLS-DHE-RSA-WITH-AES-256-CCM:\ -# TLS-DHE-RSA-WITH-AES-256-CCM-8:\ -# TLS-DHE-RSA-WITH-AES-128-CCM:\ -# TLS-DHE-RSA-WITH-AES-128-CCM-8:\ -# TLS-DHE-RSA-WITH-CAMELLIA-128-GCM-SHA256:\ -# TLS-DHE-RSA-WITH-CAMELLIA-256-GCM-SHA384:\ -# TLS-ECDH-RSA-WITH-AES-128-GCM-SHA256:\ -# TLS-ECDH-RSA-WITH-AES-256-GCM-SHA384:\ -# TLS-ECDH-RSA-WITH-CAMELLIA-128-GCM-SHA256:\ -# TLS-ECDH-RSA-WITH-CAMELLIA-256-GCM-SHA384:\ -# 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 -# +# 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:\ +# TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384:\ +# TLS-ECDHE-ECDSA-WITH-AES-256-CCM:\ +# TLS-ECDHE-ECDSA-WITH-AES-256-CCM-8:\ +# TLS-ECDHE-ECDSA-WITH-AES-128-CCM:\ +# TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8:\ +# TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-GCM-SHA256:\ +# TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-GCM-SHA384:\ +# TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256:\ +# TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:\ +# TLS-ECDHE-RSA-WITH-CAMELLIA-128-GCM-SHA256:\ +# TLS-ECDHE-RSA-WITH-CAMELLIA-256-GCM-SHA384:\ +# TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:\ +# TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:\ +# TLS-DHE-RSA-WITH-AES-256-CCM:\ +# TLS-DHE-RSA-WITH-AES-256-CCM-8:\ +# TLS-DHE-RSA-WITH-AES-128-CCM:\ +# TLS-DHE-RSA-WITH-AES-128-CCM-8:\ +# TLS-DHE-RSA-WITH-CAMELLIA-128-GCM-SHA256:\ +# TLS-DHE-RSA-WITH-CAMELLIA-256-GCM-SHA384:\ +# TLS-ECDH-RSA-WITH-AES-128-GCM-SHA256:\ +# TLS-ECDH-RSA-WITH-AES-256-GCM-SHA384:\ +# TLS-ECDH-RSA-WITH-CAMELLIA-128-GCM-SHA256:\ +# TLS-ECDH-RSA-WITH-CAMELLIA-256-GCM-SHA384:\ +# 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 # # # 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:\ -# DHE-DSS-AES256-GCM-SHA384:\ -# DH-RSA-AES256-GCM-SHA384:\ -# DHE-RSA-AES256-GCM-SHA384:\ -# ECDH-RSA-AES256-GCM-SHA384:\ -# ECDH-ECDSA-AES256-GCM-SHA384:\ -# ECDHE-RSA-AES128-GCM-SHA256:\ -# ECDHE-ECDSA-AES128-GCM-SHA256:\ -# DH-DSS-AES128-GCM-SHA256:\ -# DHE-DSS-AES128-GCM-SHA256:\ -# DH-RSA-AES128-GCM-SHA256:\ -# DHE-RSA-AES128-GCM-SHA256:\ -# ECDH-RSA-AES128-GCM-SHA256:\ -# ECDH-ECDSA-AES128-GCM-SHA256:\ -# ECDHE-RSA-AES256-GCM-SHA384:\ -# AES128-SHA -# +# cipher-list ECDHE-RSA-AES256-GCM-SHA384:\ +# ECDHE-ECDSA-AES256-GCM-SHA384:\ +# DH-DSS-AES256-GCM-SHA384:\ +# DHE-DSS-AES256-GCM-SHA384:\ +# DH-RSA-AES256-GCM-SHA384:\ +# DHE-RSA-AES256-GCM-SHA384:\ +# ECDH-RSA-AES256-GCM-SHA384:\ +# ECDH-ECDSA-AES256-GCM-SHA384:\ +# ECDHE-RSA-AES128-GCM-SHA256:\ +# ECDHE-ECDSA-AES128-GCM-SHA256:\ +# DH-DSS-AES128-GCM-SHA256:\ +# DHE-DSS-AES128-GCM-SHA256:\ +# DH-RSA-AES128-GCM-SHA256:\ +# DHE-RSA-AES128-GCM-SHA256:\ +# ECDH-RSA-AES128-GCM-SHA256:\ +# ECDH-ECDSA-AES128-GCM-SHA256:\ +# ECDHE-RSA-AES256-GCM-SHA384:\ +# AES128-SHA # # # Use keywords instead of explicitly naming the ciphers (Does not work with MbedTLS) -# cipher-list ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH -# +# cipher-list ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH # # # 7.7. trusted-cas-file @@ -2787,49 +2779,35 @@ socket-timeout 300 # #log-buffer-size 1 # -# -# # log-max-lines is the maximum number of lines held in the log # buffer. See above. # #log-max-lines 200 # -# -# # If "log-highlight-messages" is set to 1, Privoxy will highlight # portions of the log messages with a bold-faced font: # #log-highlight-messages 1 # -# -# # The font used in the console window: # #log-font-name Comic Sans MS # -# -# # Font size used in the console window: # #log-font-size 8 # -# -# # "show-on-task-bar" controls whether or not Privoxy will appear as # a button on the Task bar when minimized: # #show-on-task-bar 0 # -# -# # If "close-button-minimizes" is set to 1, the Windows close button # will minimize Privoxy instead of closing the program (close with # the exit option on the File menu). # #close-button-minimizes 1 # -# -# # The "hide-console" option is specific to the MS-Win console # version of Privoxy. If this option is used, Privoxy will # disconnect from and hide the command console. @@ -2837,4 +2815,3 @@ socket-timeout 300 #hide-console # # -# diff --git a/doc/webserver/developer-manual/coding.html b/doc/webserver/developer-manual/coding.html index 42fa1ca3..d3a94f4f 100644 --- a/doc/webserver/developer-manual/coding.html +++ b/doc/webserver/developer-manual/coding.html @@ -51,21 +51,21 @@
-
/* if page size greater than 1k ... */
-if (page_length() > 1024)
-{
-    ... "block" the page up ...
-}
+              
  /* if page size greater than 1k ... */
+  if (page_length() > 1024)
+  {
+      ... "block" the page up ...
+  }
 
-/* if page size is small, send it in blocks */
-if (page_length() > 1024)
-{
-    ... "block" the page up ...
-}
+  /* if page size is small, send it in blocks */
+  if (page_length() > 1024)
+  {
+      ... "block" the page up ...
+  }
 
-This demonstrates 2 cases of "what not to do".  The first is a
-"syntax comment".  The second is a comment that does not fit what
-is actually being done.
+ This demonstrates 2 cases of "what not to do". The first is a + "syntax comment". The second is a comment that does not fit what + is actually being done.
@@ -80,26 +80,26 @@ is actually being done.
-
/*********************************************************************
- * This will stand out clearly in your code!
- *********************************************************************/
-if (this_variable == that_variable)
-{
-   do_something_very_important();
-}
+              
  /*********************************************************************
+   * This will stand out clearly in your code!
+   *********************************************************************/
+  if (this_variable == that_variable)
+  {
+     do_something_very_important();
+  }
 
 
-/* unfortunately, this may not */
-if (this_variable == that_variable)
-{
-   do_something_very_important();
-}
+  /* unfortunately, this may not */
+  if (this_variable == that_variable)
+  {
+     do_something_very_important();
+  }
 
 
-if (this_variable == that_variable) /* this may not either */
-{
-   do_something_very_important();
-}
+ if (this_variable == that_variable) /* this may not either */ + { + do_something_very_important(); + }
@@ -118,40 +118,40 @@ if (this_variable == that_variable) /* this may not either */
-
/*********************************************************************
- * This will stand out clearly in your code,
- * But the second example won't.
- *********************************************************************/
-if (this_variable == this_variable)
-{
-   do_something_very_important();
-}
+              
  /*********************************************************************
+   * This will stand out clearly in your code,
+   * But the second example won't.
+   *********************************************************************/
+  if (this_variable == this_variable)
+  {
+     do_something_very_important();
+  }
 
-if (this_variable == this_variable) /*can you see me?*/
-{
-   do_something_very_important(); /*not easily*/
-}
+  if (this_variable == this_variable) /*can you see me?*/
+  {
+     do_something_very_important(); /*not easily*/
+  }
 
 
-/*********************************************************************
- * But, the encouraged exceptions:
- *********************************************************************/
-int urls_read     = 0;     /* # of urls read + rejected */
-int urls_rejected = 0;     /* # of urls rejected */
+  /*********************************************************************
+   * But, the encouraged exceptions:
+   *********************************************************************/
+  int urls_read     = 0;     /* # of urls read + rejected */
+  int urls_rejected = 0;     /* # of urls rejected */
 
-if (1 == X)
-{
-   do_something_very_important();
-}
+  if (1 == X)
+  {
+     do_something_very_important();
+  }
 
 
-short do_something_very_important(
-   short firstparam,   /* represents something */
-   short nextparam     /* represents something else */ )
-{
-   ...code here...
+  short do_something_very_important(
+     short firstparam,   /* represents something */
+     short nextparam     /* represents something else */ )
+  {
+     ...code here...
 
-}   /* -END- do_something_very_important */
+ } /* -END- do_something_very_important */
@@ -190,19 +190,19 @@ short do_something_very_important(
-
if (1 == X)
-{
-   do_something_very_important();
-   ...some long list of commands...
-} /* -END- if x is 1 */
+              
  if (1 == X)
+  {
+     do_something_very_important();
+     ...some long list of commands...
+  } /* -END- if x is 1 */
 
-or:
+  or:
 
-if (1 == X)
-{
-   do_something_very_important();
-   ...some long list of commands...
-} /* -END- if (1 == X) */
+ if (1 == X) + { + do_something_very_important(); + ...some long list of commands... + } /* -END- if (1 == X) */
@@ -221,7 +221,7 @@ if (1 == X)
-
int ms_iis5_hack = 0;
+
  int ms_iis5_hack = 0;
@@ -229,7 +229,7 @@ if (1 == X)
-
int msiis5hack = 0; int msIis5Hack = 0;
+
  int msiis5hack = 0; int msIis5Hack = 0;
@@ -245,7 +245,7 @@ if (1 == X)
-
int load_some_file(struct client_state *csp)
+
  int load_some_file(struct client_state *csp)
@@ -253,8 +253,8 @@ if (1 == X)
-
int loadsomefile(struct client_state *csp)
-int loadSomeFile(struct client_state *csp)
+
  int loadsomefile(struct client_state *csp)
+  int loadSomeFile(struct client_state *csp)
@@ -268,8 +268,8 @@ int loadSomeFile(struct client_state *csp)
-
(.h) extern int load_aclfile(struct client_state *csp);
-(.c) int load_aclfile(struct client_state *csp)
+
  (.h) extern int load_aclfile(struct client_state *csp);
+  (.c) int load_aclfile(struct client_state *csp)
@@ -277,9 +277,9 @@ int loadSomeFile(struct client_state *csp)
-
(.h) extern int load_aclfile(struct client_state *); or
-(.h) extern int load_aclfile();
-(.c) int load_aclfile(struct client_state *csp)
+
  (.h) extern int load_aclfile(struct client_state *); or
+  (.h) extern int load_aclfile();
+  (.c) int load_aclfile(struct client_state *csp)
@@ -293,8 +293,8 @@ int loadSomeFile(struct client_state *csp)
-
(enumeration) : enum Boolean {FALSE, TRUE};
-(#define) : #define DEFAULT_SIZE 100;
+
  (enumeration) : enum Boolean {FALSE, TRUE};
+  (#define) : #define DEFAULT_SIZE 100;
@@ -305,11 +305,11 @@ int loadSomeFile(struct client_state *csp)
-
#define FEATURE_FORCE 1
+              
  #define FEATURE_FORCE 1
 
-#ifdef FEATURE_FORCE
-#define FORCE_PREFIX blah
-#endif /* def FEATURE_FORCE */
+ #ifdef FEATURE_FORCE + #define FORCE_PREFIX blah + #endif /* def FEATURE_FORCE */
@@ -325,7 +325,7 @@ int loadSomeFile(struct client_state *csp)
-
#define USE_IMAGE_LIST 1
+
  #define USE_IMAGE_LIST 1
@@ -333,11 +333,11 @@ int loadSomeFile(struct client_state *csp)
-
#define USE_IMG_LST 1 or
-#define _USE_IMAGE_LIST 1 or
-#define USE_IMAGE_LIST_ 1 or
-#define use_image_list 1 or
-#define UseImageList 1
+
  #define USE_IMG_LST 1 or
+  #define _USE_IMAGE_LIST 1 or
+  #define USE_IMAGE_LIST_ 1 or
+  #define use_image_list 1 or
+  #define UseImageList 1
@@ -355,10 +355,10 @@ int loadSomeFile(struct client_state *csp)
-
if (this == that)
-{
-   ...
-}
+
  if (this == that)
+  {
+     ...
+  }
@@ -374,13 +374,13 @@ int loadSomeFile(struct client_state *csp)
-
while (more lines are read)
-{
-   /* Please document what is/is not a comment line here */
-   if (it's a comment) continue;
+              
  while (more lines are read)
+  {
+     /* Please document what is/is not a comment line here */
+     if (it's a comment) continue;
 
-   do_something(line);
-}
+ do_something(line); + }
@@ -394,11 +394,11 @@ int loadSomeFile(struct client_state *csp)
-
if (this == that)
-{
-   do_something();
-   do_something_else();
-}
+
  if (this == that)
+  {
+     do_something();
+     do_something_else();
+  }
@@ -416,7 +416,7 @@ int loadSomeFile(struct client_state *csp)
-
structure->flag = (condition);
+
  structure->flag = (condition);
@@ -434,10 +434,10 @@ int loadSomeFile(struct client_state *csp)
-
int first_value   = 0;
-int some_value    = 0;
-int another_value = 0;
-int this_variable = 0;
+
  int first_value   = 0;
+  int some_value    = 0;
+  int another_value = 0;
+  int this_variable = 0;
@@ -452,9 +452,9 @@ int this_variable = 0;
-
a_struct->a_member;
-a_struct.a_member;
-function_name();
+
  a_struct->a_member;
+  a_struct.a_member;
+  function_name();
@@ -467,17 +467,17 @@ function_name();
-
int function1( ... )
-{
-   ...code...
-   return(ret_code);
+              
  int function1( ... )
+  {
+     ...code...
+     return(ret_code);
 
-} /* -END- function1 */
+  } /* -END- function1 */
 
 
-int function2( ... )
-{
-} /* -END- function2 */
+ int function2( ... ) + { + } /* -END- function2 */
@@ -500,26 +500,26 @@ int function2( ... )
-
static const char * const url_code_map[256] =
-{
-   NULL, ...
-};
+              
  static const char * const url_code_map[256] =
+  {
+     NULL, ...
+  };
 
 
-int function1( ... )
-{
-   if (1)
-   {
-      return ALWAYS_TRUE;
-   }
-   else
-   {
-      return HOW_DID_YOU_GET_HERE;
-   }
+  int function1( ... )
+  {
+     if (1)
+     {
+        return ALWAYS_TRUE;
+     }
+     else
+     {
+        return HOW_DID_YOU_GET_HERE;
+     }
 
-   return NEVER_GETS_HERE;
+     return NEVER_GETS_HERE;
 
-}
+ }
@@ -536,9 +536,9 @@ int function1( ... )
-
short a_short = 0;
-float a_float  = 0;
-struct *ptr = NULL;
+
  short a_short = 0;
+  float a_float  = 0;
+  struct *ptr = NULL;
@@ -559,9 +559,9 @@ struct *ptr = NULL;
-
should_we_block_this();
-contains_an_image();
-is_web_page_blank();
+
  should_we_block_this();
+  contains_an_image();
+  is_web_page_blank();
@@ -582,10 +582,10 @@ is_web_page_blank();
-
for (size_t cnt = 0; cnt < block_list_length(); cnt++)
-{
-   ....
-}
+
  for (size_t cnt = 0; cnt < block_list_length(); cnt++)
+  {
+     ....
+  }
@@ -601,12 +601,12 @@ is_web_page_blank();
-
size_t len = block_list_length();
+              
  size_t len = block_list_length();
 
-for (size_t cnt = 0; cnt < len; cnt++)
-{
-   ....
-}
+ for (size_t cnt = 0; cnt < len; cnt++) + { + .... + }
@@ -642,8 +642,8 @@ for (size_t cnt = 0; cnt < len; cnt++)
-
#include <iostream.h>     /* This is not a local include */
-#include "config.h"       /* This IS a local include */
+
  #include <iostream.h>     /* This is not a local include */
+  #include "config.h"       /* This IS a local include */
@@ -651,8 +651,8 @@ for (size_t cnt = 0; cnt < len; cnt++)
-
/* This is not a local include, but requires a path element. */
-#include <sys/fileName.h>
+
  /* This is not a local include, but requires a path element. */
+  #include <sys/fileName.h>
@@ -669,10 +669,10 @@ for (size_t cnt = 0; cnt < len; cnt++)
-
#ifndef PROJECT_H_INCLUDED
-#define PROJECT_H_INCLUDED
- ...
-#endif /* ndef PROJECT_H_INCLUDED */
+
  #ifndef PROJECT_H_INCLUDED
+  #define PROJECT_H_INCLUDED
+   ...
+  #endif /* ndef PROJECT_H_INCLUDED */
@@ -686,16 +686,16 @@ for (size_t cnt = 0; cnt < len; cnt++)
-
#ifdef __cplusplus
-extern "C"
-{
-#endif /* def __cplusplus */
+              
  #ifdef __cplusplus
+  extern "C"
+  {
+  #endif /* def __cplusplus */
 
-... function definitions here ...
+  ... function definitions here ...
 
-#ifdef __cplusplus
-}
-#endif /* def __cplusplus */
+ #ifdef __cplusplus + } + #endif /* def __cplusplus */
@@ -710,11 +710,11 @@ extern "C"
-
/*********************************************************************
- * We're avoiding an include statement here!
- *********************************************************************/
-struct file_list;
-extern file_list *xyz;
+
  /*********************************************************************
+   * We're avoiding an include statement here!
+   *********************************************************************/
+  struct file_list;
+  extern file_list *xyz;
@@ -742,22 +742,22 @@ extern file_list *xyz;
-
switch (hash_string(cmd))
-{
-   case hash_actions_file:
-      ... code ...
-      break;
+              
  switch (hash_string(cmd))
+  {
+     case hash_actions_file:
+        ... code ...
+        break;
 
-   case hash_confdir:
-      ... code ...
-      break;
+     case hash_confdir:
+        ... code ...
+        break;
 
-   default:
-      log_error( ... );
-      ... anomaly code goes here ...
-      continue; / break; / exit( 1 ); / etc ...
+     default:
+        log_error( ... );
+        ... anomaly code goes here ...
+        continue; / break; / exit( 1 ); / etc ...
 
-} /* end switch (hash_string(cmd)) */
+ } /* end switch (hash_string(cmd)) */
@@ -797,9 +797,9 @@ extern file_list *xyz;
-
long a = 0;
-long b = 0;
-long c = 0;
+
  long a = 0;
+  long b = 0;
+  long c = 0;
@@ -824,8 +824,8 @@ long c = 0;
-
If a function creates a struct and stores a pointer to it in a
-list, then it should definitely be allocated via `malloc'.
+
  If a function creates a struct and stores a pointer to it in a
+  list, then it should definitely be allocated via `malloc'.
@@ -842,8 +842,8 @@ list, then it should definitely be allocated via `malloc'.
-
int load_re_filterfile(struct client_state *csp) { ... }
-static void unload_re_filterfile(void *f) { ... }
+
  int load_re_filterfile(struct client_state *csp) { ... }
+  static void unload_re_filterfile(void *f) { ... }
@@ -885,42 +885,42 @@ static void unload_re_filterfile(void *f) { ... }
-
/*********************************************************************
- *
- * File        :  $Source
- *
- * Purpose     :  (Fill me in with a good description!)
- *
- * Copyright   :  Written by and Copyright (C) 2001-2009
- *                the Privoxy team. https://www.privoxy.org/
- *
- *                This program is free software; you can redistribute it
- *                and/or modify it under the terms of the GNU General
- *                Public License as published by the Free Software
- *                Foundation; either version 2 of the License, or (at
- *                your option) any later version.
- *
- *                This program is distributed in the hope that it will
- *                be useful, but WITHOUT ANY WARRANTY; without even the
- *                implied warranty of MERCHANTABILITY or FITNESS FOR A
- *                PARTICULAR PURPOSE.  See the GNU General Public
- *                License for more details.
- *
- *                The GNU General Public License should be included with
- *                this file.  If not, you can view it at
- *                http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
- *                or write to the Free Software Foundation, Inc.,
- *                51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 ,
- *                USA
- *
- *********************************************************************/
+            
  /*********************************************************************
+   *
+   * File        :  $Source
+   *
+   * Purpose     :  (Fill me in with a good description!)
+   *
+   * Copyright   :  Written by and Copyright (C) 2001-2009
+   *                the Privoxy team. https://www.privoxy.org/
+   *
+   *                This program is free software; you can redistribute it
+   *                and/or modify it under the terms of the GNU General
+   *                Public License as published by the Free Software
+   *                Foundation; either version 2 of the License, or (at
+   *                your option) any later version.
+   *
+   *                This program is distributed in the hope that it will
+   *                be useful, but WITHOUT ANY WARRANTY; without even the
+   *                implied warranty of MERCHANTABILITY or FITNESS FOR A
+   *                PARTICULAR PURPOSE.  See the GNU General Public
+   *                License for more details.
+   *
+   *                The GNU General Public License should be included with
+   *                this file.  If not, you can view it at
+   *                http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+   *                or write to the Free Software Foundation, Inc.,
+   *                51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 ,
+   *                USA
+   *
+   *********************************************************************/
 
 
-#include "config.h"
+  #include "config.h"
 
-   ...necessary include files for us to do our work...
+     ...necessary include files for us to do our work...
 
-const char FILENAME_h_rcs[] = FILENAME_H_VERSION;
+ const char FILENAME_h_rcs[] = FILENAME_H_VERSION;
@@ -934,64 +934,64 @@ const char FILENAME_h_rcs[] = FILENAME_H_VERSION;
-
#ifndef _FILENAME_H
-#define _FILENAME_H
-/*********************************************************************
- *
- * File        :  $Source
- *
- * Purpose     :  (Fill me in with a good description!)
- *
- * Copyright   :  Written by and Copyright (C) 2001-2009
- *                the Privoxy team. https://www.privoxy.org/
- *
- *                This program is free software; you can redistribute it
- *                and/or modify it under the terms of the GNU General
- *                Public License as published by the Free Software
- *                Foundation; either version 2 of the License, or (at
- *                your option) any later version.
- *
- *                This program is distributed in the hope that it will
- *                be useful, but WITHOUT ANY WARRANTY; without even the
- *                implied warranty of MERCHANTABILITY or FITNESS FOR A
- *                PARTICULAR PURPOSE.  See the GNU General Public
- *                License for more details.
- *
- *                The GNU General Public License should be included with
- *                this file.  If not, you can view it at
- *                http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
- *                or write to the Free Software Foundation, Inc.,
- *                51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 ,
- *                USA
- *
- *********************************************************************/
+            
  #ifndef _FILENAME_H
+  #define _FILENAME_H
+  /*********************************************************************
+   *
+   * File        :  $Source
+   *
+   * Purpose     :  (Fill me in with a good description!)
+   *
+   * Copyright   :  Written by and Copyright (C) 2001-2009
+   *                the Privoxy team. https://www.privoxy.org/
+   *
+   *                This program is free software; you can redistribute it
+   *                and/or modify it under the terms of the GNU General
+   *                Public License as published by the Free Software
+   *                Foundation; either version 2 of the License, or (at
+   *                your option) any later version.
+   *
+   *                This program is distributed in the hope that it will
+   *                be useful, but WITHOUT ANY WARRANTY; without even the
+   *                implied warranty of MERCHANTABILITY or FITNESS FOR A
+   *                PARTICULAR PURPOSE.  See the GNU General Public
+   *                License for more details.
+   *
+   *                The GNU General Public License should be included with
+   *                this file.  If not, you can view it at
+   *                http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+   *                or write to the Free Software Foundation, Inc.,
+   *                51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 ,
+   *                USA
+   *
+   *********************************************************************/
 
 
-#include "project.h"
+  #include "project.h"
 
-#ifdef __cplusplus
-extern "C" {
-#endif
+  #ifdef __cplusplus
+  extern "C" {
+  #endif
 
-   ... function headers here ...
+     ... function headers here ...
 
 
-/* Revision control strings from this header and associated .c file */
-extern const char FILENAME_rcs[];
-extern const char FILENAME_h_rcs[];
+  /* Revision control strings from this header and associated .c file */
+  extern const char FILENAME_rcs[];
+  extern const char FILENAME_h_rcs[];
 
 
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
+  #ifdef __cplusplus
+  } /* extern "C" */
+  #endif
 
-#endif /* ndef _FILENAME_H */
+  #endif /* ndef _FILENAME_H */
 
-/*
-  Local Variables:
-  tab-width: 3
-  end:
-*/
+ /* + Local Variables: + tab-width: 3 + end: + */
@@ -999,25 +999,25 @@ extern const char FILENAME_h_rcs[];
-
/*********************************************************************
- *
- * Function    :  FUNCTION_NAME
- *
- * Description :  (Fill me in with a good description!)
- *
- * parameters  :
- *          1  :  param1 = pointer to an important thing
- *          2  :  x      = pointer to something else
- *
- * Returns     :  0 => Ok, everything else is an error.
- *
- *********************************************************************/
-int FUNCTION_NAME(void *param1, const char *x)
-{
-   ...
-   return 0;
+            
  /*********************************************************************
+   *
+   * Function    :  FUNCTION_NAME
+   *
+   * Description :  (Fill me in with a good description!)
+   *
+   * parameters  :
+   *          1  :  param1 = pointer to an important thing
+   *          2  :  x      = pointer to something else
+   *
+   * Returns     :  0 => Ok, everything else is an error.
+   *
+   *********************************************************************/
+  int FUNCTION_NAME(void *param1, const char *x)
+  {
+     ...
+     return 0;
 
-}
+ }
diff --git a/doc/webserver/developer-manual/git.html b/doc/webserver/developer-manual/git.html index cd3c4a9f..e9c8d755 100644 --- a/doc/webserver/developer-manual/git.html +++ b/doc/webserver/developer-manual/git.html @@ -54,51 +54,51 @@
-
fk@t520 ~/git/privoxy $git checkout master
-Switched to branch 'master'
-Your branch is up to date with 'origin/master'.
-# Make sure you have the latest changes
-fk@t520 ~/git/privoxy $git pull
-Already up to date.
-# Create a local banch for changes
-fk@t520 ~/git/privoxy $git checkout -b local-branch
-Switched to a new branch 'local-branch'
-# Create some change
-fk@t520 ~/git/privoxy $gmake dok dok-tidy
-[...]
-# Review your change
-fk@t520 ~/git/privoxy $git diff
-[...]
-# Commit your changes if they look goood
-fk@t520 ~/git/privoxy $git commit -m "developer-manual: Regenerate" doc/webserver/
-[local-branch 1abb7316] developer-manual: Regenerate
- 1 file changed, 2 insertions(+), 2 deletions(-)
-# Review your commit
-fk@t520 ~/git/privoxy $git show
-[...]
-# Go to the master branch
-fk@t520 ~/git/privoxy $git checkout master
-Switched to branch 'master'
-Your branch is up to date with 'origin/master'.
-# Make sure you are still in sync
-fk@t520 ~/git/privoxy $git pull
-[...]
-Already up to date.
-# Apply the commit you made to the local-branch
-fk@t520 ~/git/privoxy $git cherry-pick local-branch
-[master 046e85e2] developer-manual: Regenerate
- Date: Tue Dec 15 05:10:07 2020 +0100
- 1 file changed, 2 insertions(+), 2 deletions(-)
-# Make sure the history looks as expected
-fk@t520 ~/git/privoxy $git log -p
-# Finally push your change to the Privoxy repository
-fk@t520 ~/git/privoxy $git push
-[...]
-# Go back to the local branch
-fk@t520 ~/git/privoxy $git checkout local-branch
-# Rebase on top of master and continue hacking
-fk@t520 ~/git/privoxy $git rebase master
-Successfully rebased and updated refs/heads/local-branch.
+
  fk@t520 ~/git/privoxy $git checkout master
+  Switched to branch 'master'
+  Your branch is up to date with 'origin/master'.
+  # Make sure you have the latest changes
+  fk@t520 ~/git/privoxy $git pull
+  Already up to date.
+  # Create a local banch for changes
+  fk@t520 ~/git/privoxy $git checkout -b local-branch
+  Switched to a new branch 'local-branch'
+  # Create some change
+  fk@t520 ~/git/privoxy $gmake dok dok-tidy
+  [...]
+  # Review your change
+  fk@t520 ~/git/privoxy $git diff
+  [...]
+  # Commit your changes if they look goood
+  fk@t520 ~/git/privoxy $git commit -m "developer-manual: Regenerate" doc/webserver/
+  [local-branch 1abb7316] developer-manual: Regenerate
+   1 file changed, 2 insertions(+), 2 deletions(-)
+  # Review your commit
+  fk@t520 ~/git/privoxy $git show
+  [...]
+  # Go to the master branch
+  fk@t520 ~/git/privoxy $git checkout master
+  Switched to branch 'master'
+  Your branch is up to date with 'origin/master'.
+  # Make sure you are still in sync
+  fk@t520 ~/git/privoxy $git pull
+  [...]
+  Already up to date.
+  # Apply the commit you made to the local-branch
+  fk@t520 ~/git/privoxy $git cherry-pick local-branch
+  [master 046e85e2] developer-manual: Regenerate
+   Date: Tue Dec 15 05:10:07 2020 +0100
+   1 file changed, 2 insertions(+), 2 deletions(-)
+  # Make sure the history looks as expected
+  fk@t520 ~/git/privoxy $git log -p
+  # Finally push your change to the Privoxy repository
+  fk@t520 ~/git/privoxy $git push
+  [...]
+  # Go back to the local branch
+  fk@t520 ~/git/privoxy $git checkout local-branch
+  # Rebase on top of master and continue hacking
+  fk@t520 ~/git/privoxy $git rebase master
+  Successfully rebased and updated refs/heads/local-branch.
diff --git a/doc/webserver/developer-manual/newrelease.html b/doc/webserver/developer-manual/newrelease.html index 3c35063f..0b33e7b4 100644 --- a/doc/webserver/developer-manual/newrelease.html +++ b/doc/webserver/developer-manual/newrelease.html @@ -93,15 +93,16 @@ freeze so that nobody will interfere with last minute changes.

  • -

    Update the code status (CODE_STATUS="xxx") in configure.in to one of "alpha", "beta" or "stable".

    +

    Update the code status (CODE_STATUS="xxx") in configure.in to one of "alpha", + "beta" or "stable".

  • Rebuild configure and GNUMakefile to make sure the updated values are being used.

    -
    $ autoheader && autoconf     # rebuild configure
    -$ ./configure                # rebuild GNUmakefile
    +
      $ autoheader && autoconf     # rebuild configure
    +  $ ./configure                # rebuild GNUmakefile
    @@ -111,14 +112,15 @@ $ ./configure # rebuild GNUmakefile
  • If action file processing has changed and is not backward-compatible, make sure the - "for-privoxy-version=x.y.z" minimum version number in default.action.master has been updated:

    + "for-privoxy-version=x.y.z" minimum version number in default.action.master has + been updated:

    -
    {{settings}}
    -#############################################################################
    -#MASTER# COMMENT: The minimum Privoxy version:
    -for-privoxy-version=3.0.11
    +
      {{settings}}
    +  #############################################################################
    +  #MASTER# COMMENT: The minimum Privoxy version:
    +  for-privoxy-version=3.0.11
    @@ -142,15 +144,15 @@ for-privoxy-version=3.0.11
    -
    - Bug fixes:
    -- Action file improvements:
    -- Filter file improvements:
    -- General improvements:
    -- Documentation improvements:
    -- Build system improvements:
    -- Code cleanups:
    -- Privoxy-Log-Parser:
    -- Privoxy-Regression-Test:
    +
      - Bug fixes:
    +  - Action file improvements:
    +  - Filter file improvements:
    +  - General improvements:
    +  - Documentation improvements:
    +  - Build system improvements:
    +  - Code cleanups:
    +  - Privoxy-Log-Parser:
    +  - Privoxy-Regression-Test:
    @@ -379,6 +381,14 @@ for-privoxy-version=3.0.11 rebuild the docs.

    First, make sure that you have freshly exported the right version into an empty directory. (See "Building and releasing packages" above).

    +

    Check that you have the current versions of the NSIS installer, PCRE library, MBED TLS library, Brotli + library, and that the MAKENSIS evar in windows/GNUMakefile points to the NSIS installer program. (See the Building from Source / Windows section of the User Manual for details.)

    Then you can build the package. This is fully automated, and is controlled by windows/GNUmakefile. All you need to do is:

    @@ -396,9 +406,9 @@ for-privoxy-version=3.0.11
    -
      $ gpg --armor --detach --sign   gpg --armor --detach --sign privoxy_setup_X.Y.Z.exe
    -  $ gpg --armor --detach --sign privoxy_X.Y.Z.zip
    + gpg --armor --detach --sign privoxy_X.Y.Z.zip
    diff --git a/doc/webserver/developer-manual/testing.html b/doc/webserver/developer-manual/testing.html index 3d86b5fd..8d5ce3dc 100644 --- a/doc/webserver/developer-manual/testing.html +++ b/doc/webserver/developer-manual/testing.html @@ -81,27 +81,26 @@
    -
    # Run all the tests
    -fk@t520 ~ $privoxy-regression-test.pl
    -2020-12-14 12:16:32: Asking Privoxy for the number of action files available ...
    -2020-12-14 12:16:32: Gathering regression tests from 9 action file(s) delivered by Privoxy 3.0.30.
    -2020-12-14 12:16:32: Executing regression tests ...
    -2020-12-14 12:16:41: Ooops. Expected removal but: 'Referer: https://p.p/' is still there.
    -2020-12-14 12:16:41: Failure for test 785. Header 'Referer: https://p.p/' and tag 'hide-referrer{conditional-block}'
    -2020-12-14 12:16:41: Ooops. Got: 'Referer: https://p.p/' while expecting: 'Referer: http://p.p/'
    -2020-12-14 12:16:41: Failure for test 791. Header 'Referer: https://p.p/' and tag 'hide-referrer{conditional-forge}'
    -2020-12-14 12:16:44: Executed 1087 regression tests. Skipped 115. 1085 successes, 2 failures.
    -# Repeat one of the failing tests and get a curl command to quickly reproduce the problem
    -# without causing too much log noise.
    -fk@t520 ~ $privoxy-regression-test.pl --test-number 785 --verbose --debug 4
    -2020-12-14 12:17:55: Asking Privoxy for the number of action files available ...
    -[...]
    -2020-12-14 12:17:56: Executing regression tests ...
    -2020-12-14 12:17:56: Executing: curl --include  -H 'Proxy-Connection:'  -H 'Connection: close'  -s  -S  --user-agent 'Privoxy-Regression-Test 0.7.2'  --max-time '5'  --globoff  -H 'X-Privoxy-Control: hide-referrer{conditional-block}' -H 'Referer: https://p.p/'  http://p.p/show-request 2>&1
    -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.
    -     
    +
      # Run all the tests
    +  fk@t520 ~ $privoxy-regression-test.pl
    +  2020-12-14 12:16:32: Asking Privoxy for the number of action files available ...
    +  2020-12-14 12:16:32: Gathering regression tests from 9 action file(s) delivered by Privoxy 3.0.30.
    +  2020-12-14 12:16:32: Executing regression tests ...
    +  2020-12-14 12:16:41: Ooops. Expected removal but: 'Referer: https://p.p/' is still there.
    +  2020-12-14 12:16:41: Failure for test 785. Header 'Referer: https://p.p/' and tag 'hide-referrer{conditional-block}'
    +  2020-12-14 12:16:41: Ooops. Got: 'Referer: https://p.p/' while expecting: 'Referer: http://p.p/'
    +  2020-12-14 12:16:41: Failure for test 791. Header 'Referer: https://p.p/' and tag 'hide-referrer{conditional-forge}'
    +  2020-12-14 12:16:44: Executed 1087 regression tests. Skipped 115. 1085 successes, 2 failures.
    +  # Repeat one of the failing tests and get a curl command to quickly reproduce the problem
    +  # without causing too much log noise.
    +  fk@t520 ~ $privoxy-regression-test.pl --test-number 785 --verbose --debug 4
    +  2020-12-14 12:17:55: Asking Privoxy for the number of action files available ...
    +  [...]
    +  2020-12-14 12:17:56: Executing regression tests ...
    +  2020-12-14 12:17:56: Executing: curl --include  -H 'Proxy-Connection:'  -H 'Connection: close'  -s  -S  --user-agent 'Privoxy-Regression-Test 0.7.2'  --max-time '5'  --globoff  -H 'X-Privoxy-Control: hide-referrer{conditional-block}' -H 'Referer: https://p.p/'  http://p.p/show-request 2>&1
    +  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.
    @@ -116,56 +115,56 @@ fk@t520 ~ $privoxy-regression-test.pl --test-number 785 --verbose --debug 4
    -
    # Compile Privoxy with instrumentation for afl
    -$ export CC=afl-clang
    -$ export CFLAGS="-fsanitize=address -ggdb"
    -$ export CPPFLAGS=-I/usr/local/include/
    -$ export LDFLAGS="-fsanitize=address -L/usr/local/lib"
    -$ export AFL_USE_ASAN=1
    -$ export AFL_HARDEN=1
    -$ ./configure --with-debug --enable-extended-host-patterns --enable-accept-filter --enable-no-gifs --enable-compression --enable-strptime-sanity-checks --enable-external-filters --enable-fuzz
    +            
      # Compile Privoxy with instrumentation for afl
    +  $ export CC=afl-clang
    +  $ export CFLAGS="-fsanitize=address -ggdb"
    +  $ export CPPFLAGS=-I/usr/local/include/
    +  $ export LDFLAGS="-fsanitize=address -L/usr/local/lib"
    +  $ export AFL_USE_ASAN=1
    +  $ export AFL_HARDEN=1
    +  $ ./configure --with-debug --enable-extended-host-patterns --enable-accept-filter --enable-no-gifs --enable-compression --enable-strptime-sanity-checks --enable-external-filters --enable-fuzz
     
    -$ ./privoxy --fuzz
    -Privoxy version 3.0.24 (http://www.privoxy.org/)
    -Usage: ./privoxy [--config-test] [--chroot] [--help] [--no-daemon] [--pidfile pidfile] [--pre-chroot-nslookup hostname] [--user user[.group]] [--version] [configfile]
    -       ./privoxy --fuzz fuzz-mode ./path/to/fuzzed/input [--stfu]
    +  $ ./privoxy --fuzz
    +  Privoxy version 3.0.24 (http://www.privoxy.org/)
    +  Usage: ./privoxy [--config-test] [--chroot] [--help] [--no-daemon] [--pidfile pidfile] [--pre-chroot-nslookup hostname] [--user user[.group]] [--version] [configfile]
    +         ./privoxy --fuzz fuzz-mode ./path/to/fuzzed/input [--stfu]
     
    -Supported fuzz modes and the expected input:
    - action: Text to parse as action file.
    - client-request: Client request to parse. Currently incomplete
    - client-header: Client header to parse.
    - chunked-transfer-encoding: Chunk-encoded data to dechunk.
    - deflate: deflate-compressed data to decompress.
    - filter: Text to parse as filter file.
    - gif: gif to deanimate.
    - gzip: gzip-compressed data to decompress.
    - pcrs-substitute: A pcrs-substitute to compile. Not a whole pcrs job! Example: Bla $1 bla C $3 blah.
    - server-header: Server header to parse.
    - server-response: Server response to parse.
    +  Supported fuzz modes and the expected input:
    +   action: Text to parse as action file.
    +   client-request: Client request to parse. Currently incomplete
    +   client-header: Client header to parse.
    +   chunked-transfer-encoding: Chunk-encoded data to dechunk.
    +   deflate: deflate-compressed data to decompress.
    +   filter: Text to parse as filter file.
    +   gif: gif to deanimate.
    +   gzip: gzip-compressed data to decompress.
    +   pcrs-substitute: A pcrs-substitute to compile. Not a whole pcrs job! Example: Bla $1 bla C $3 blah.
    +   server-header: Server header to parse.
    +   server-response: Server response to parse.
     
    -The following fuzz modes read data from stdin if the 'file' is '-'
    - client-request
    - client-header
    - chunked-transfer-encoding
    - deflate
    - gif
    - gzip
    - pcrs-substitute
    - server-header
    - server-response
    +  The following fuzz modes read data from stdin if the 'file' is '-'
    +   client-request
    +   client-header
    +   chunked-transfer-encoding
    +   deflate
    +   gif
    +   gzip
    +   pcrs-substitute
    +   server-header
    +   server-response
     
    -Aborting
    +  Aborting
     
    -$ export ASAN_OPTIONS='abort_on_error=1'
    -$ mkdir input output
    -$ echo '$1 bla fasel $2' > input/pcrs
    -$ afl-fuzz -i input -o output -m none ~/git/privoxy/privoxy --fuzz pcrs-substitute - --stfu
    +  $ export ASAN_OPTIONS='abort_on_error=1'
    +  $ mkdir input output
    +  $ echo '$1 bla fasel $2' > input/pcrs
    +  $ afl-fuzz -i input -o output -m none ~/git/privoxy/privoxy --fuzz pcrs-substitute - --stfu
     
    -$ cat >input/pcrs.txt
    -FILTER: bla fasel
    -s@(.{1})[432](\d+)@$1$2$hostname@UgisT
    +  $ cat >input/pcrs.txt
    +  FILTER: bla fasel
    +  s@(.{1})[432](\d+)@$1$2$hostname@UgisT
     
    -$ afl-fuzz -i input/ -o output/ -f bla.filter -m none privoxy --fuzz filter bla.filter --stfu
    + $ afl-fuzz -i input/ -o output/ -f bla.filter -m none privoxy --fuzz filter bla.filter --stfu
    diff --git a/doc/webserver/developer-manual/webserver-update.html b/doc/webserver/developer-manual/webserver-update.html index 1abeaef5..6e1f21c4 100644 --- a/doc/webserver/developer-manual/webserver-update.html +++ b/doc/webserver/developer-manual/webserver-update.html @@ -32,7 +32,7 @@
    -
      make dok
    +
      make dok && make dok-tidy
    diff --git a/doc/webserver/faq/configuration.html b/doc/webserver/faq/configuration.html index d508843b..68d33f08 100644 --- a/doc/webserver/faq/configuration.html +++ b/doc/webserver/faq/configuration.html @@ -111,13 +111,13 @@
    -
    # Allow all cookies for Yahoo login:
    -#
    -{ -  # Allow all cookies for Yahoo login:
    +  #
    +  { -crunch-incoming-cookies -crunch-outgoing-cookies -session-cookies-only }
    -.login.yahoo.com
    + .login.yahoo.com
    @@ -128,11 +128,11 @@
    -
    # Gmail is a _fragile_ site:
    -#
    -{ fragile }
    - # Gmail is ...
    - mail.google.com
    +
      # Gmail is a _fragile_ site:
    +  #
    +  { fragile }
    +  # Gmail is ...
    +  mail.google.com
    @@ -393,7 +393,7 @@
     { -crunch-incoming-cookies -crunch-outgoing-cookies -session-cookies-only -filter{content-cookies} }
    +            "SCREEN">  { -crunch-incoming-cookies -crunch-outgoing-cookies -session-cookies-only -filter{content-cookies} }
       .example.com
    @@ -421,16 +421,16 @@
    -
     ############################################################
    - # Blacklist
    - ############################################################
    - { +block }
    - / # Block *all* URLs
    +            
      ############################################################
    +  # Blacklist
    +  ############################################################
    +  { +block }
    +  / # Block *all* URLs
     
    - ############################################################
    - # Whitelist
    - ############################################################
    - { -block }
    +  ############################################################
    +  # Whitelist
    +  ############################################################
    +  { -block }
       kids.example.com
       toys.example.com
       games.example.com
    @@ -463,9 +463,9 @@
    -
     # Unblock everybody, everywhere
    - { -block }
    - / # UN-Block *all* URLs
    +
      # Unblock everybody, everywhere
    +  { -block }
    +  / # UN-Block *all* URLs
    @@ -473,13 +473,13 @@
    -
     # Unblock everybody, everywhere, and turn off appropriate filtering, etc
    - { -block \
    -  -filter{banners-by-size} \
    -  -filter{banners-by-link} \
    -  allow-popups \
    - }
    - / # UN-Block *all* URLs and allow ads
    +
      # Unblock everybody, everywhere, and turn off appropriate filtering, etc
    +  { -block \
    +    -filter{banners-by-size} \
    +    -filter{banners-by-link} \
    +    allow-popups \
    +  }
    +  / # UN-Block *all* URLs and allow ads
    @@ -510,7 +510,7 @@
    -
     ./configure  --disable-toggle  --disable-editor  --disable-force
    +
      ./configure  --disable-toggle  --disable-editor  --disable-force
    diff --git a/doc/webserver/faq/misc.html b/doc/webserver/faq/misc.html index d9064f30..8ceccaf7 100644 --- a/doc/webserver/faq/misc.html +++ b/doc/webserver/faq/misc.html @@ -186,7 +186,7 @@
    -
    #        forward-socks5t             /     127.0.0.1:9050 .
    +
      #        forward-socks5t             /     127.0.0.1:9050 .
    @@ -198,9 +198,9 @@
    -
    #        forward         192.168.*.*/     .
    -#        forward            10.*.*.*/     .
    -#        forward           127.*.*.*/     .
    +
      #        forward         192.168.*.*/     .
    +  #        forward            10.*.*.*/     .
    +  #        forward           127.*.*.*/     .
    @@ -213,7 +213,7 @@
    -
    #        forward           localhost/     .
    +
      #        forward           localhost/     .
    @@ -428,10 +428,10 @@
      { +block }
    -   www.ad.example1.com
    -   ad.example2.com
    -   ads.galore.example.com
    -   etc.example.com
    + www.ad.example1.com + ad.example2.com + ads.galore.example.com + etc.example.com
    diff --git a/doc/webserver/faq/trouble.html b/doc/webserver/faq/trouble.html index 310ae020..7b0f0547 100644 --- a/doc/webserver/faq/trouble.html +++ b/doc/webserver/faq/trouble.html @@ -86,39 +86,39 @@
    -
    Request: www.example.com/
    -Request: www.example.com/favicon.ico
    -Request: img.example.com/main.css
    -Request: img.example.com/sr.js
    -Request: example.betamarker.com/example.html
    -Request: www.lik-sang.com/Banners/bestsellers/skyscraper.php?likref=BSellers
    -Request: img.example.com/pb.png
    -Request: www.google-analytics.com/urchin.js crunch! (Blocked)
    -Request: www.advertising-department.com/ats/switch.ps.php?26856 crunch! (Blocked)
    -Request: img.example.com/p.gif
    -Request: www.popuptraffic.com/assign.php?l=example&mode=behind crunch! (Blocked)
    -Request: www.popuptraffic.com/scripts/popup.php?hid=5c3cf&tmpl=PBa.tmpl crunch! (Blocked)
    -Request: www.popuptraffic.com/assign.php?l=example crunch! (Blocked)
    -Request: www.lik-sang.com/Banners/best_sellers/best_sellers.css
    -Request: www.adtrak.net/adx.js crunch! (Blocked)
    -Request: img.example.com/hbg.gif
    -Request: img.example.com/example.jpg
    -Request: img.example.com/mt.png
    -Request: img.example.com/mm.png
    -Request: img.example.com/mb.png
    -Request: www.popuptraffic.com/scripts/popup.php?hid=a71b91fa5&tmpl=Ua.tmp crunch! (Blocked)
    -Request: www.example.com/tracker.js
    -Request: www.lik-sang.com/Banners/best_sellers/lsi_head.gif
    -Request: www.adtrak.net/adjs.php?n=020548130&what=zone:61 crunch! (Blocked)
    -Request: www.adtrak.net/adjs.php?n=463594413&what=zone:58&source=Ua crunch! (Blocked)
    -Request: www.lik-sang.com/Banners/best_sellers/bottomani.swf
    -Request: mmm.elitemediagroup.net/install.php?allowpop=no&popupmincook=0&allowsp2=1 crunch! (Blocked)
    -Request: www.example.com/tracker.js?screen=1400x1050&win=962x693
    -Request: www.adtrak.net/adlog.php?bannerid=1309&clientid=439&zoneid=61 crunch! (Blocked)
    -Request: 66.70.21.80/scripts/click.php?hid=5c3cf599a9efd0320d26&si
    -Request: 66.70.21.80/img/pixel.gif
    -Request: www.adtrak.net/adlog.php?bannerid=1309&clientid=439&zoneid=58&source=Ua&block=86400 crunch! (Blocked)
    -Request: 66.70.21.80/scripts/click.php?hid=a71b9f6504b0c5681fa5&si=Ua
    +
      Request: www.example.com/
    +  Request: www.example.com/favicon.ico
    +  Request: img.example.com/main.css
    +  Request: img.example.com/sr.js
    +  Request: example.betamarker.com/example.html
    +  Request: www.lik-sang.com/Banners/bestsellers/skyscraper.php?likref=BSellers
    +  Request: img.example.com/pb.png
    +  Request: www.google-analytics.com/urchin.js crunch! (Blocked)
    +  Request: www.advertising-department.com/ats/switch.ps.php?26856 crunch! (Blocked)
    +  Request: img.example.com/p.gif
    +  Request: www.popuptraffic.com/assign.php?l=example&mode=behind crunch! (Blocked)
    +  Request: www.popuptraffic.com/scripts/popup.php?hid=5c3cf&tmpl=PBa.tmpl crunch! (Blocked)
    +  Request: www.popuptraffic.com/assign.php?l=example crunch! (Blocked)
    +  Request: www.lik-sang.com/Banners/best_sellers/best_sellers.css
    +  Request: www.adtrak.net/adx.js crunch! (Blocked)
    +  Request: img.example.com/hbg.gif
    +  Request: img.example.com/example.jpg
    +  Request: img.example.com/mt.png
    +  Request: img.example.com/mm.png
    +  Request: img.example.com/mb.png
    +  Request: www.popuptraffic.com/scripts/popup.php?hid=a71b91fa5&tmpl=Ua.tmp crunch! (Blocked)
    +  Request: www.example.com/tracker.js
    +  Request: www.lik-sang.com/Banners/best_sellers/lsi_head.gif
    +  Request: www.adtrak.net/adjs.php?n=020548130&what=zone:61 crunch! (Blocked)
    +  Request: www.adtrak.net/adjs.php?n=463594413&what=zone:58&source=Ua crunch! (Blocked)
    +  Request: www.lik-sang.com/Banners/best_sellers/bottomani.swf
    +  Request: mmm.elitemediagroup.net/install.php?allowpop=no&popupmincook=0&allowsp2=1 crunch! (Blocked)
    +  Request: www.example.com/tracker.js?screen=1400x1050&win=962x693
    +  Request: www.adtrak.net/adlog.php?bannerid=1309&clientid=439&zoneid=61 crunch! (Blocked)
    +  Request: 66.70.21.80/scripts/click.php?hid=5c3cf599a9efd0320d26&si
    +  Request: 66.70.21.80/img/pixel.gif
    +  Request: www.adtrak.net/adlog.php?bannerid=1309&clientid=439&zoneid=58&source=Ua&block=86400 crunch! (Blocked)
    +  Request: 66.70.21.80/scripts/click.php?hid=a71b9f6504b0c5681fa5&si=Ua
    @@ -381,8 +381,8 @@ Request: 66.70.21.80/scripts/click.php?hid=a71b9f6504b0c5681fa5&si=Ua
    -
    {+redirect{http://127.0.0.1:0/} -block -limit-connect}
    -.ivwbox.de:443/
    +
      {+redirect{http://127.0.0.1:0/} -block -limit-connect}
    +  .ivwbox.de:443/
    @@ -461,7 +461,7 @@ Request: 66.70.21.80/scripts/click.php?hid=a71b9f6504b0c5681fa5&si=Ua
    -
    runas /user:administrator "notepad \privoxy\config.txt"
    +
      runas /user:administrator "notepad \privoxy\config.txt"
    @@ -469,28 +469,28 @@ Request: 66.70.21.80/scripts/click.php?hid=a71b9f6504b0c5681fa5&si=Ua
    -
    C:\Privoxy>icacls config.txt
    -config.txt BUILTIN\Administrators:(I)(F)
    -           NT AUTHORITY\SYSTEM:(I)(F)
    -           BUILTIN\Users:(I)(RX)
    -           NT AUTHORITY\Authenticated Users:(I)(M)
    +            
      C:\Privoxy>icacls config.txt
    +  config.txt BUILTIN\Administrators:(I)(F)
    +             NT AUTHORITY\SYSTEM:(I)(F)
    +             BUILTIN\Users:(I)(RX)
    +             NT AUTHORITY\Authenticated Users:(I)(M)
     
    -Successfully processed 1 files; Failed processing 0 files
    +  Successfully processed 1 files; Failed processing 0 files
     
    -C:\Privoxy>icacls config.txt /grant Lee:F
    -processed file: config.txt
    -Successfully processed 1 files; Failed processing 0 files
    +  C:\Privoxy>icacls config.txt /grant Lee:F
    +  processed file: config.txt
    +  Successfully processed 1 files; Failed processing 0 files
     
    -C:\Privoxy>icacls config.txt
    -config.txt I3668\Lee:(F)
    -           BUILTIN\Administrators:(I)(F)
    -           NT AUTHORITY\SYSTEM:(I)(F)
    -           BUILTIN\Users:(I)(RX)
    -           NT AUTHORITY\Authenticated Users:(I)(M)
    +  C:\Privoxy>icacls config.txt
    +  config.txt I3668\Lee:(F)
    +             BUILTIN\Administrators:(I)(F)
    +             NT AUTHORITY\SYSTEM:(I)(F)
    +             BUILTIN\Users:(I)(RX)
    +             NT AUTHORITY\Authenticated Users:(I)(M)
     
    -Successfully processed 1 files; Failed processing 0 files
    +  Successfully processed 1 files; Failed processing 0 files
     
    -C:\Privoxy>
    + C:\Privoxy>
    diff --git a/doc/webserver/user-manual/actions-file.html b/doc/webserver/user-manual/actions-file.html index e6e9c7dd..ed626d76 100644 --- a/doc/webserver/user-manual/actions-file.html +++ b/doc/webserver/user-manual/actions-file.html @@ -245,9 +245,9 @@
      { +handle-as-image  +block{Banner ads.} }
       # Block these as if they were images. Send no block page.
    -   banners.example.com
    -   media.example.com/.*banners
    -   .example.com/images/ads/
    + banners.example.com + media.example.com/.*banners + .example.com/images/ads/ @@ -526,17 +526,17 @@
    -
    # If the admin defined the client-specific-tag circumvent-blocks,
    -# and the request comes from a client that previously requested
    -# the tag to be set, overrule all previous +block actions that
    -# are enabled based on URL to CLIENT-TAG patterns.
    -{-block}
    -CLIENT-TAG:^circumvent-blocks$
    +              
      # If the admin defined the client-specific-tag circumvent-blocks,
    +  # and the request comes from a client that previously requested
    +  # the tag to be set, overrule all previous +block actions that
    +  # are enabled based on URL to CLIENT-TAG patterns.
    +  {-block}
    +  CLIENT-TAG:^circumvent-blocks$
     
    -# This section is not overruled because it's located after
    -# the previous one.
    -{+block{Nobody is supposed to request this.}}
    -example.org/blocked-example-page
    + # This section is not overruled because it's located after + # the previous one. + {+block{Nobody is supposed to request this.}} + example.org/blocked-example-page
    @@ -603,7 +603,7 @@ example.org/blocked-example-page -name{param} # remove the parameter param from the list of parameters - # If it was the last one left, disable the action. + # If it was the last one left, disable the action. -name # disable this action completely and remove all parameters from the list @@ -658,16 +658,16 @@ example.org/blocked-example-page
    -
    # Add a DNT ("Do not track") header to all requests,
    -# event to those that already have one.
    -#
    -# This is just an example, not a recommendation.
    -#
    -# There is no reason to believe that user-tracking websites care
    -# about the DNT header and depending on the User-Agent, adding the
    -# header may make user-tracking easier.
    -{+add-header{DNT: 1}}
    -/
    +
      # Add a DNT ("Do not track") header to all requests,
    +  # event to those that already have one.
    +  #
    +  # This is just an example, not a recommendation.
    +  #
    +  # There is no reason to believe that user-tracking websites care
    +  # about the DNT header and depending on the User-Agent, adding the
    +  # header may make user-tracking easier.
    +  {+add-header{DNT: 1}}
    +  /
    @@ -725,18 +725,18 @@ example.org/blocked-example-page
    -
    {+block{No nasty stuff for you.}}
    -# Block and replace with "blocked" page
    - .nasty-stuff.example.com
    +                    
      {+block{No nasty stuff for you.}}
    +  # Block and replace with "blocked" page
    +  .nasty-stuff.example.com
     
    -{+block{Doubleclick banners.} +handle-as-image}
    -# Block and replace with image
    - .ad.doubleclick.net
    - .ads.r.us/banners/
    +  {+block{Doubleclick banners.} +handle-as-image}
    +  # Block and replace with image
    +  .ad.doubleclick.net
    +  .ads.r.us/banners/
     
    -{+block{Layered ads.} +handle-as-empty-document}
    -# Block and then ignore
    - adserver.example.net/.*\.js$
    + {+block{Layered ads.} +handle-as-empty-document} + # Block and then ignore + adserver.example.net/.*\.js$
    @@ -785,7 +785,7 @@ example.org/blocked-example-page
    -
    +change-x-forwarded-for{block}
    +
      +change-x-forwarded-for{block}
    @@ -840,9 +840,9 @@ example.org/blocked-example-page
    -
    # Hide Tor exit notation in Host and Referer Headers
    -{+client-header-filter{hide-tor-exit-notation}}
    -/
    +
      # Hide Tor exit notation in Host and Referer Headers
    +  {+client-header-filter{hide-tor-exit-notation}}
    +  /
    @@ -888,9 +888,9 @@ example.org/blocked-example-page
    -
    # Remove "test" everywhere in the request body
    -{+client-body-filter{remove-test}}
    -/
    +
      # Remove "test" everywhere in the request body
    +  {+client-body-filter{remove-test}}
    +  /
    @@ -932,63 +932,63 @@ example.org/blocked-example-page
    -
    # Tag every request with the User-Agent header
    -{+client-header-tagger{user-agent}}
    -/
    +                    
      # Tag every request with the User-Agent header
    +  {+client-header-tagger{user-agent}}
    +  /
     
    -# Tagging itself doesn't change the action
    -# settings, sections with TAG patterns do:
    -#
    -# If it's a download agent, use a different forwarding proxy,
    -# show the real User-Agent and make sure resume works.
    -{+forward-override{forward-socks5 10.0.0.2:2222 .} \
    - -hide-if-modified-since      \
    - -overwrite-last-modified     \
    - -hide-user-agent             \
    - -filter                      \
    - -deanimate-gifs              \
    -}
    -TAG:^User-Agent: NetBSD-ftp/
    -TAG:^User-Agent: Novell ZYPP Installer
    -TAG:^User-Agent: RPM APT-HTTP/
    -TAG:^User-Agent: fetch libfetch/
    -TAG:^User-Agent: Ubuntu APT-HTTP/
    -TAG:^User-Agent: MPlayer/
    + # Tagging itself doesn't change the action + # settings, sections with TAG patterns do: + # + # If it's a download agent, use a different forwarding proxy, + # show the real User-Agent and make sure resume works. + {+forward-override{forward-socks5 10.0.0.2:2222 .} \ + -hide-if-modified-since \ + -overwrite-last-modified \ + -hide-user-agent \ + -filter \ + -deanimate-gifs \ + } + TAG:^User-Agent: NetBSD-ftp/ + TAG:^User-Agent: Novell ZYPP Installer + TAG:^User-Agent: RPM APT-HTTP/ + TAG:^User-Agent: fetch libfetch/ + TAG:^User-Agent: Ubuntu APT-HTTP/ + TAG:^User-Agent: MPlayer/
    -
    # Tag all requests with the Range header set
    -{+client-header-tagger{range-requests}}
    -/
    +                    
      # Tag all requests with the Range header set
    +  {+client-header-tagger{range-requests}}
    +  /
     
    -# Disable filtering for the tagged requests.
    -#
    -# With filtering enabled Privoxy would remove the Range headers
    -# to be able to filter the whole response. The downside is that
    -# it prevents clients from resuming downloads or skipping over
    -# parts of multimedia files.
    -{-filter -deanimate-gifs}
    -TAG:^RANGE-REQUEST$
    + # Disable filtering for the tagged requests. + # + # With filtering enabled Privoxy would remove the Range headers + # to be able to filter the whole response. The downside is that + # it prevents clients from resuming downloads or skipping over + # parts of multimedia files. + {-filter -deanimate-gifs} + TAG:^RANGE-REQUEST$
    -
    # Tag all requests with the client IP address
    -#
    -# (Technically the client IP address isn't included in the
    -# client headers but client-header taggers can set it anyway.
    -# For details see the tagger in default.filter)
    -{+client-header-tagger{client-ip-address}}
    -/
    +                    
      # Tag all requests with the client IP address
    +  #
    +  # (Technically the client IP address isn't included in the
    +  # client headers but client-header taggers can set it anyway.
    +  # For details see the tagger in default.filter)
    +  {+client-header-tagger{client-ip-address}}
    +  /
     
    -# Change forwarding settings for requests coming from address 10.0.0.1
    -{+forward-override{forward-socks5 127.0.1.2:2222 .}}
    -TAG:^IP-ADDRESS: 10\.0\.0\.1$
    + # Change forwarding settings for requests coming from address 10.0.0.1 + {+forward-override{forward-socks5 127.0.1.2:2222 .}} + TAG:^IP-ADDRESS: 10\.0\.0\.1$
    @@ -1050,14 +1050,14 @@ TAG:^IP-ADDRESS: 10\.0\.0\.1$
    -
    # Check if www.example.net/ really uses valid XHTML
    -{ +content-type-overwrite{application/xml} }
    -www.example.net/
    +                    
      # Check if www.example.net/ really uses valid XHTML
    +  { +content-type-overwrite{application/xml} }
    +  www.example.net/
     
    -# but leave the content type unmodified if the URL looks like a style sheet
    -{-content-type-overwrite}
    -www.example.net/.*\.css$
    -www.example.net/.*style
    + # but leave the content type unmodified if the URL looks like a style sheet + {-content-type-overwrite} + www.example.net/.*\.css$ + www.example.net/.*style
    @@ -1114,9 +1114,9 @@ www.example.net/.*style
    -
    # Block the non-existent "Privacy-Violation:" client header
    -{ +crunch-client-header{Privacy-Violation:} }
    -/
    +
      # Block the non-existent "Privacy-Violation:" client header
    +  { +crunch-client-header{Privacy-Violation:} }
    +  /
    @@ -1163,12 +1163,12 @@ www.example.net/.*style
    -
    # Let the browser revalidate cached documents but don't
    -# allow the server to use the revalidation headers for user tracking.
    -{+hide-if-modified-since{-60} \
    - +overwrite-last-modified{randomize} \
    - +crunch-if-none-match}
    -/
    +
      # Let the browser revalidate cached documents but don't
    +  # allow the server to use the revalidation headers for user tracking.
    +  {+hide-if-modified-since{-60} \
    +   +overwrite-last-modified{randomize} \
    +   +crunch-if-none-match}
    +  /
    @@ -1214,7 +1214,7 @@ www.example.net/.*style
    -
    +crunch-incoming-cookies
    +
      +crunch-incoming-cookies
    @@ -1272,9 +1272,9 @@ www.example.net/.*style
    -
    # Crunch server headers that try to prevent caching
    -{ +crunch-server-header{no-cache} }
    -/
    +
      # Crunch server headers that try to prevent caching
    +  { +crunch-server-header{no-cache} }
    +  /
    @@ -1319,7 +1319,7 @@ www.example.net/.*style
    -
    +crunch-outgoing-cookies
    +
      +crunch-outgoing-cookies
    @@ -1362,7 +1362,7 @@ www.example.net/.*style
    -
    +deanimate-gifs{last}
    +
      +deanimate-gifs{last}
    @@ -1405,7 +1405,7 @@ www.example.net/.*style
    -
    +delay-response{100}
    +
      +delay-response{100}
    @@ -1451,8 +1451,8 @@ www.example.net/.*style
    -
    {+downgrade-http-version}
    -problem-host.example.com
    +
      {+downgrade-http-version}
    +  problem-host.example.com
    @@ -1514,7 +1514,7 @@ problem-host.example.com
    -
    +external-filter{fancy-filter}
    +
      +external-filter{fancy-filter}
    @@ -1591,11 +1591,11 @@ problem-host.example.com
    -
     { +fast-redirects{simple-check} }
    -   one.example.com
    +                    
      { +fast-redirects{simple-check} }
    +  one.example.com
     
    - { +fast-redirects{check-decoded-url} }
    -   another.example.com/testing
    + { +fast-redirects{check-decoded-url} } + another.example.com/testing
    @@ -1681,7 +1681,7 @@ problem-host.example.com
    +filter{js-annoyances}       # Get rid of particularly annoying JavaScript abuse.
    + "SCREEN"> +filter{js-annoyances} # Get rid of particularly annoying JavaScript abuse. @@ -1690,7 +1690,7 @@ problem-host.example.com
    +filter{js-events}           # Kill JavaScript event bindings and timers (Radically destructive! Only for extra nasty sites).
    + "SCREEN"> +filter{js-events} # Kill JavaScript event bindings and timers (Radically destructive! Only for extra nasty sites). @@ -1699,7 +1699,7 @@ problem-host.example.com
    +filter{html-annoyances}     # Get rid of particularly annoying HTML abuse.
    + "SCREEN"> +filter{html-annoyances} # Get rid of particularly annoying HTML abuse. @@ -1708,7 +1708,7 @@ problem-host.example.com
    +filter{content-cookies}     # Kill cookies that come in the HTML or JS content.
    + "SCREEN"> +filter{content-cookies} # Kill cookies that come in the HTML or JS content. @@ -1717,7 +1717,7 @@ problem-host.example.com
    +filter{refresh-tags}        # Kill automatic refresh tags if refresh time is larger than 9 seconds.
    + "SCREEN"> +filter{refresh-tags} # Kill automatic refresh tags if refresh time is larger than 9 seconds. @@ -1725,7 +1725,7 @@ problem-host.example.com
    -
    +filter{unsolicited-popups}  # Disable only unsolicited pop-up windows.
    +
      +filter{unsolicited-popups}  # Disable only unsolicited pop-up windows.
    @@ -1733,7 +1733,7 @@ problem-host.example.com
    -
    +filter{all-popups}          # Kill all popups in JavaScript and HTML.
    +
      +filter{all-popups}          # Kill all popups in JavaScript and HTML.
    @@ -1742,7 +1742,7 @@ problem-host.example.com
    +filter{img-reorder}         # Reorder attributes in <img> tags to make the banners-by-* filters more effective.
    + "SCREEN"> +filter{img-reorder} # Reorder attributes in <img> tags to make the banners-by-* filters more effective. @@ -1750,7 +1750,7 @@ problem-host.example.com
    -
    +filter{banners-by-size}     # Kill banners by size.
    +
      +filter{banners-by-size}     # Kill banners by size.
    @@ -1759,7 +1759,7 @@ problem-host.example.com
    +filter{banners-by-link}     # Kill banners by their links to known clicktrackers.
    + "SCREEN"> +filter{banners-by-link} # Kill banners by their links to known clicktrackers. @@ -1768,7 +1768,7 @@ problem-host.example.com
    +filter{webbugs}             # Squish WebBugs (1x1 invisible GIFs used for user tracking).
    + "SCREEN"> +filter{webbugs} # Squish WebBugs (1x1 invisible GIFs used for user tracking). @@ -1777,7 +1777,7 @@ problem-host.example.com
    +filter{tiny-textforms}      # Extend those tiny textareas up to 40x80 and kill the hard wrap.
    + "SCREEN"> +filter{tiny-textforms} # Extend those tiny textareas up to 40x80 and kill the hard wrap. @@ -1786,7 +1786,7 @@ problem-host.example.com
    +filter{jumping-windows}     # Prevent windows from resizing and moving themselves.
    + "SCREEN"> +filter{jumping-windows} # Prevent windows from resizing and moving themselves. @@ -1795,7 +1795,7 @@ problem-host.example.com
    +filter{frameset-borders}    # Give frames a border and make them resizable.
    + "SCREEN"> +filter{frameset-borders} # Give frames a border and make them resizable. @@ -1804,7 +1804,7 @@ problem-host.example.com
    +filter{iframes}             # Removes all detected iframes. Should only be enabled for individual sites.
    + "SCREEN"> +filter{iframes} # Removes all detected iframes. Should only be enabled for individual sites. @@ -1813,7 +1813,7 @@ problem-host.example.com
    +filter{demoronizer}         # Fix MS's non-standard use of standard charsets.
    + "SCREEN"> +filter{demoronizer} # Fix MS's non-standard use of standard charsets. @@ -1821,7 +1821,7 @@ problem-host.example.com
    -
    +filter{shockwave-flash}     # Kill embedded Shockwave Flash objects.
    +
      +filter{shockwave-flash}     # Kill embedded Shockwave Flash objects.
    @@ -1829,7 +1829,7 @@ problem-host.example.com
    -
    +filter{quicktime-kioskmode} # Make Quicktime movies saveable.
    +
      +filter{quicktime-kioskmode} # Make Quicktime movies saveable.
    @@ -1838,7 +1838,7 @@ problem-host.example.com
    +filter{fun}                 # Text replacements for subversive browsing fun!
    + "SCREEN"> +filter{fun} # Text replacements for subversive browsing fun! @@ -1847,7 +1847,7 @@ problem-host.example.com
    +filter{crude-parental}      # Crude parental filtering. Note that this filter doesn't work reliably.
    + "SCREEN"> +filter{crude-parental} # Crude parental filtering. Note that this filter doesn't work reliably. @@ -1856,7 +1856,7 @@ problem-host.example.com
    +filter{ie-exploits}         # Disable some known Internet Explorer bug exploits.
    + "SCREEN"> +filter{ie-exploits} # Disable some known Internet Explorer bug exploits. @@ -1865,7 +1865,7 @@ problem-host.example.com
    +filter{site-specifics}      # Cure for site-specific problems. Don't apply generally!
    + "SCREEN"> +filter{site-specifics} # Cure for site-specific problems. Don't apply generally! @@ -1874,7 +1874,7 @@ problem-host.example.com
    +filter{no-ping}             # Removes non-standard ping attributes in <a> and <area> tags.
    + "SCREEN"> +filter{no-ping} # Removes non-standard ping attributes in <a> and <area> tags. @@ -1883,7 +1883,7 @@ problem-host.example.com
    +filter{github}              # Removes the annoying "Sign-Up" banner and the Cookie disclaimer.
    + "SCREEN"> +filter{github} # Removes the annoying "Sign-Up" banner and the Cookie disclaimer. @@ -1892,7 +1892,7 @@ problem-host.example.com
    +filter{google}              # CSS-based block for Google text ads. Also removes a width limitation and the toolbar advertisement.
    + "SCREEN"> +filter{google} # CSS-based block for Google text ads. Also removes a width limitation and the toolbar advertisement. @@ -1900,7 +1900,7 @@ problem-host.example.com
    -
    +filter{imdb}                # Removes some ads on IMDb.
    +
      +filter{imdb}                # Removes some ads on IMDb.
    @@ -1909,7 +1909,7 @@ problem-host.example.com
    +filter{yahoo}               # CSS-based block for Yahoo text ads. Also removes a width limitation.
    + "SCREEN"> +filter{yahoo} # CSS-based block for Yahoo text ads. Also removes a width limitation. @@ -1918,7 +1918,7 @@ problem-host.example.com
    +filter{msn}                 # CSS-based block for MSN text ads. Also removes tracking URLs and a width limitation.
    + "SCREEN"> +filter{msn} # CSS-based block for MSN text ads. Also removes tracking URLs and a width limitation. @@ -1927,7 +1927,7 @@ problem-host.example.com
    +filter{blogspot}            # Cleans up some Blogspot blogs. Read the fine print before using this.
    + "SCREEN"> +filter{blogspot} # Cleans up some Blogspot blogs. Read the fine print before using this. @@ -1936,7 +1936,7 @@ problem-host.example.com
    +filter{sourceforge}         # Reduces the amount of ads for proprietary software on SourceForge.
    + "SCREEN"> +filter{sourceforge} # Reduces the amount of ads for proprietary software on SourceForge. @@ -1993,7 +1993,7 @@ problem-host.example.com
    -
    +force-text-mode
    +
      +force-text-mode
    @@ -2086,21 +2086,21 @@ problem-host.example.com
    -
    # Use an ssh tunnel for requests previously tagged as
    -# "User-Agent: fetch libfetch/2.0" and make sure
    -# resuming downloads continues to work.
    -#
    -# This way you can continue to use Tor for your normal browsing,
    -# without overloading the Tor network with your FreeBSD ports updates
    -# or downloads of bigger files like ISOs.
    -#
    -# Note that HTTP headers are easy to fake and therefore their
    -# values are as (un)trustworthy as your clients and users.
    -{+forward-override{forward-socks5 10.0.0.2:2222 .} \
    - -hide-if-modified-since      \
    - -overwrite-last-modified     \
    -}
    -TAG:^User-Agent: fetch libfetch/2\.0$
    +
      # Use an ssh tunnel for requests previously tagged as
    +  # "User-Agent: fetch libfetch/2.0" and make sure
    +  # resuming downloads continues to work.
    +  #
    +  # This way you can continue to use Tor for your normal browsing,
    +  # without overloading the Tor network with your FreeBSD ports updates
    +  # or downloads of bigger files like ISOs.
    +  #
    +  # Note that HTTP headers are easy to fake and therefore their
    +  # values are as (un)trustworthy as your clients and users.
    +  {+forward-override{forward-socks5 10.0.0.2:2222 .} \
    +   -hide-if-modified-since      \
    +   -overwrite-last-modified     \
    +  }
    +  TAG:^User-Agent: fetch libfetch/2\.0$
    @@ -2150,10 +2150,10 @@ TAG:^User-Agent: fetch libfetch/2\.0$
    -
    # Block all documents on example.org that end with ".js",
    -# but send an empty document instead of the usual HTML message.
    -{+block{Blocked JavaScript} +handle-as-empty-document}
    -example.org/.*\.js$
    +
      # Block all documents on example.org that end with ".js",
    +  # but send an empty document instead of the usual HTML message.
    +  {+block{Blocked JavaScript} +handle-as-empty-document}
    +  example.org/.*\.js$
    @@ -2204,16 +2204,16 @@ example.org/.*\.js$
    -
    # Generic image extensions:
    -#
    -{+handle-as-image}
    -/.*\.(gif|jpg|jpeg|png|bmp|ico)$
    +                    
      # Generic image extensions:
    +  #
    +  {+handle-as-image}
    +  /.*\.(gif|jpg|jpeg|png|bmp|ico)$
     
    -# These don't look like images, but they're banners and should be
    -# blocked as images:
    -#
    -{+block{Nasty banners.} +handle-as-image}
    -nasty-banner-server.example.com/junk.cgi\?output=trash
    + # These don't look like images, but they're banners and should be + # blocked as images: + # + {+block{Nasty banners.} +handle-as-image} + nasty-banner-server.example.com/junk.cgi\?output=trash
    @@ -2262,11 +2262,11 @@ nasty-banner-server.example.com/junk.cgi\?output=trash
    -
    # Pretend to use Canadian language settings.
    -{+hide-accept-language{en-ca} \
    -+hide-user-agent{Mozilla/5.0 (X11; U; OpenBSD i386; en-CA; rv:1.8.0.4) Gecko/20060628 Firefox/1.5.0.4} \
    -}
    -/
    +
      # Pretend to use Canadian language settings.
    +  {+hide-accept-language{en-ca} \
    +  +hide-user-agent{Mozilla/5.0 (X11; U; OpenBSD i386; en-CA; rv:1.8.0.4) Gecko/20060628 Firefox/1.5.0.4} \
    +  }
    +  /
    @@ -2318,11 +2318,12 @@ nasty-banner-server.example.com/junk.cgi\?output=trash
    -
    # Disarm the download link in Sourceforge's patch tracker
    -{ -filter \
    - +content-type-overwrite{text/plain}\
    - +hide-content-disposition{block} }
    - .sourceforge.net/tracker/download\.php
    +
      # Disarm the download link in Sourceforge's patch tracker
    +  { -filter \
    +    +content-type-overwrite{text/plain} \
    +    +hide-content-disposition{block} \
    +  }
    +  .sourceforge.net/tracker/download\.php
    @@ -2377,11 +2378,11 @@ nasty-banner-server.example.com/junk.cgi\?output=trash
    -
    # Let the browser revalidate but make tracking based on the time less likely.
    -{+hide-if-modified-since{-60} \
    - +overwrite-last-modified{randomize} \
    - +crunch-if-none-match}
    -/
    +
      # Let the browser revalidate but make tracking based on the time less likely.
    +  {+hide-if-modified-since{-60} \
    +   +overwrite-last-modified{randomize} \
    +   +crunch-if-none-match}
    +  /
    @@ -2424,7 +2425,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash
    -
    +hide-from-header{block}
    +
      +hide-from-header{block}
    @@ -2432,7 +2433,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash
    -
    +hide-from-header{spam-me-senseless@sittingduck.example.com}
    +
      +hide-from-header{spam-me-senseless@sittingduck.example.com}
    @@ -2505,7 +2506,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash
    -
    +hide-referrer{forge}
    +
      +hide-referrer{forge}
    @@ -2513,7 +2514,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash
    -
    +hide-referrer{http://www.yahoo.com/}
    +
      +hide-referrer{http://www.yahoo.com/}
    @@ -2575,7 +2576,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash
    +hide-user-agent{Mozilla/5.0 (X11; ElectroBSD i386; rv:78.0) Gecko/20100101 Firefox/78.0}
    + "SCREEN"> +hide-user-agent{Mozilla/5.0 (X11; ElectroBSD i386; rv:78.0) Gecko/20100101 Firefox/78.0} @@ -2606,8 +2607,8 @@ nasty-banner-server.example.com/junk.cgi\?output=trash
    Notes:

    This action allows Privoxy to filter encrypted requests and - responses. For this to work Privoxy has to generate a certificate and - send it to the client which has to accept it.

    + responses. For this to work Privoxy has to generate a certificate for + the web site and send it to the client which has to accept it.

    Before this works the directives in the HTTPS inspection section of the config file have to be configured.

    @@ -2621,8 +2622,8 @@ nasty-banner-server.example.com/junk.cgi\?output=trash
    -
    {+https-inspection}
    -www.example.com
    +
      {+https-inspection}
    +  www.example.com
    @@ -2667,9 +2668,8 @@ www.example.com
    -
        {+ignore-certificate-errors}
    -    www.example.org
    -   
    +
          {+ignore-certificate-errors}
    +      www.example.org
    @@ -2717,11 +2717,11 @@ www.example.com
    -
    +limit-connect{443}                   # Port 443 is OK.
    -+limit-connect{80,443}                # Ports 80 and 443 are OK.
    -+limit-connect{-3, 7, 20-100, 500-}   # Ports less than 3, 7, 20 to 100 and above 500 are OK.
    -+limit-connect{-}                     # All ports are OK
    -+limit-connect{,}                     # No HTTPS/SSL traffic is allowed
    +
      +limit-connect{443}                   # Port 443 is OK.
    +  +limit-connect{80,443}                # Ports 80 and 443 are OK.
    +  +limit-connect{-3, 7, 20-100, 500-}   # Ports less than 3, 7, 20 to 100 and above 500 are OK.
    +  +limit-connect{-}                     # All ports are OK
    +  +limit-connect{,}                     # No HTTPS/SSL traffic is allowed
    @@ -2773,7 +2773,7 @@ www.example.com
    -
    +limit-cookie-lifetime{60}
    +
      +limit-cookie-lifetime{60}
    @@ -2829,23 +2829,23 @@ www.example.com
    -
    # Selectively turn off compression, and enable a filter
    -#
    -{ +filter{tiny-textforms} +prevent-compression }
    -# Match only these sites
    - .google.
    - sourceforge.net
    - sf.net
    +                    
      # Selectively turn off compression, and enable a filter
    +  #
    +  { +filter{tiny-textforms} +prevent-compression }
    +  # Match only these sites
    +  .google.
    +  sourceforge.net
    +  sf.net
     
    -# Or instead, we could set a universal default:
    -#
    -{ +prevent-compression }
    - / # Match all sites
    +  # Or instead, we could set a universal default:
    +  #
    +  { +prevent-compression }
    +  / # Match all sites
     
    -# Then maybe make exceptions for broken sites:
    -#
    -{ -prevent-compression }
    -.compusa.com/
    + # Then maybe make exceptions for broken sites: + # + { -prevent-compression } + .compusa.com/
    @@ -2903,11 +2903,12 @@ www.example.com
    -
    # Let the browser revalidate without being tracked across sessions
    -{ +hide-if-modified-since{-60} \
    - +overwrite-last-modified{randomize} \
    - +crunch-if-none-match}
    -/
    +
      # Let the browser revalidate without being tracked across sessions
    +  { +hide-if-modified-since{-60} \
    +    +overwrite-last-modified{randomize} \
    +    +crunch-if-none-match \
    +  }
    +  /
    @@ -2960,50 +2961,50 @@ www.example.com
    -
    # Replace example.com's style sheet with another one
    -{ +redirect{http://localhost/css-replacements/example.com.css} }
    - example.com/stylesheet\.css
    +                    
      # Replace example.com's style sheet with another one
    +  { +redirect{http://localhost/css-replacements/example.com.css} }
    +  example.com/stylesheet\.css
     
    -# Create a short, easy to remember nickname for a favorite site
    -# (relies on the browser to accept and forward invalid URLs to Privoxy)
    -{ +redirect{https://www.privoxy.org/user-manual/actions-file.html} }
    - a
    +  # Create a short, easy to remember nickname for a favorite site
    +  # (relies on the browser to accept and forward invalid URLs to Privoxy)
    +  { +redirect{https://www.privoxy.org/user-manual/actions-file.html} }
    +  a
     
    -# Always use the expanded view for Undeadly.org articles
    -# (Note the $ at the end of the URL pattern to make sure
    -# the request for the rewritten URL isn't redirected as well)
    -{+redirect{s@$@&mode=expanded@}}
    -undeadly.org/cgi\?action=article&sid=\d*$
    +  # Always use the expanded view for Undeadly.org articles
    +  # (Note the $ at the end of the URL pattern to make sure
    +  # the request for the rewritten URL isn't redirected as well)
    +  {+redirect{s@$@&mode=expanded@}}
    +  undeadly.org/cgi\?action=article&sid=\d*$
     
    -# Redirect Google search requests to MSN
    -{+redirect{s@^http://[^/]*/search\?q=([^&]*).*@http://search.msn.com/results.aspx?q=$1@}}
    -.google.com/search
    +  # Redirect Google search requests to MSN
    +  {+redirect{s@^http://[^/]*/search\?q=([^&]*).*@http://search.msn.com/results.aspx?q=$1@}}
    +  .google.com/search
     
    -# Redirect MSN search requests to Yahoo
    -{+redirect{s@^http://[^/]*/results\.aspx\?q=([^&]*).*@http://search.yahoo.com/search?p=$1@}}
    -search.msn.com//results\.aspx\?q=
    +  # Redirect MSN search requests to Yahoo
    +  {+redirect{s@^http://[^/]*/results\.aspx\?q=([^&]*).*@http://search.yahoo.com/search?p=$1@}}
    +  search.msn.com//results\.aspx\?q=
     
    -# Redirect http://example.com/&bla=fasel&toChange=foo (and any other value but "bar")
    -# to       http://example.com/&bla=fasel&toChange=bar
    -#
    -# The URL pattern makes sure that the following request isn't redirected again.
    -{+redirect{s@toChange=[^&]+@toChange=bar@}}
    -example.com/.*toChange=(?!bar)
    +  # Redirect http://example.com/&bla=fasel&toChange=foo (and any other value but "bar")
    +  # to       http://example.com/&bla=fasel&toChange=bar
    +  #
    +  # The URL pattern makes sure that the following request isn't redirected again.
    +  {+redirect{s@toChange=[^&]+@toChange=bar@}}
    +  example.com/.*toChange=(?!bar)
     
    -# Add a shortcut to look up illumos bugs
    -{+redirect{s@^http://i([0-9]+)/.*@https://www.illumos.org/issues/$1@}}
    -# Redirected URL = http://i4974/
    -# Redirect Destination = https://www.illumos.org/issues/4974
    -i[0-9][0-9][0-9][0-9]*/
    +  # Add a shortcut to look up illumos bugs
    +  {+redirect{s@^http://i([0-9]+)/.*@https://www.illumos.org/issues/$1@}}
    +  # Redirected URL = http://i4974/
    +  # Redirect Destination = https://www.illumos.org/issues/4974
    +  i[0-9][0-9][0-9][0-9]*/
     
    -# Redirect requests for the old Tor Hidden Service of the Privoxy website to the new one
    -{+redirect{s@^http://jvauzb4sb3bwlsnc.onion/@http://l3tczdiiwoo63iwxty4lhs6p7eaxop5micbn7vbliydgv63x5zrrrfyd.onion/@}}
    -jvauzb4sb3bwlsnc.onion/
    +  # Redirect requests for the old Tor Hidden Service of the Privoxy website to the new one
    +  {+redirect{s@^http://jvauzb4sb3bwlsnc.onion/@http://l3tczdiiwoo63iwxty4lhs6p7eaxop5micbn7vbliydgv63x5zrrrfyd.onion/@}}
    +  jvauzb4sb3bwlsnc.onion/
     
    -# Redirect remote requests for this manual
    -# to the local version delivered by Privoxy
    -{+redirect{s@^http://www@http://config@}}
    -www.privoxy.org/user-manual/
    + # Redirect remote requests for this manual + # to the local version delivered by Privoxy + {+redirect{s@^http://www@http://config@}} + www.privoxy.org/user-manual/
    @@ -3049,11 +3050,11 @@ www.privoxy.org/user-manual/
    -
    {+server-header-filter{html-to-xml}}
    -example.org/xml-instance-that-is-delivered-as-html
    +                    
      {+server-header-filter{html-to-xml}}
    +  example.org/xml-instance-that-is-delivered-as-html
     
    -{+server-header-filter{xml-to-html}}
    -example.org/instance-that-is-delivered-as-xml-but-is-not
    + {+server-header-filter{xml-to-html}} + example.org/instance-that-is-delivered-as-xml-but-is-not
    @@ -3100,17 +3101,17 @@ example.org/instance-that-is-delivered-as-xml-but-is-not
    -
    # Tag every request with the content type declared by the server
    -{+server-header-tagger{content-type}}
    -/
    +                    
      # Tag every request with the content type declared by the server
    +  {+server-header-tagger{content-type}}
    +  /
     
    -# If the response has a tag starting with 'image/' enable an external
    -# filter that only applies to images.
    -#
    -# Note that the filter is not available by default, it's just a
    -# silly example.
    -{+external-filter{rotate-image} +force-text-mode}
    -TAG:^image/
    + # If the response has a tag starting with 'image/' enable an external + # filter that only applies to images. + # + # Note that the filter is not available by default, it's just a + # silly example. + {+external-filter{rotate-image} +force-text-mode} + TAG:^image/
    @@ -3146,9 +3147,9 @@ TAG:^image/
    # Suppress tag produced by range-requests client-header tagger for requests coming from address 10.0.0.1
    -{+suppress-tag{RANGE-REQUEST}}
    -TAG:^IP-ADDRESS: 10\.0\.0\.1$
    + "SCREEN"> # Suppress tag produced by range-requests client-header tagger for requests coming from address 10.0.0.1 + {+suppress-tag{RANGE-REQUEST}} + TAG:^IP-ADDRESS: 10\.0\.0\.1$ @@ -3210,7 +3211,7 @@ TAG:^IP-ADDRESS: 10\.0\.0\.1$
    -
    +session-cookies-only
    +
      +session-cookies-only
    @@ -3283,7 +3284,7 @@ TAG:^IP-ADDRESS: 10\.0\.0\.1$
    -
    +set-image-blocker{pattern}
    +
      +set-image-blocker{pattern}
    @@ -3291,7 +3292,7 @@ TAG:^IP-ADDRESS: 10\.0\.0\.1$
    -
    +set-image-blocker{http://www.freebsd.org/gifs/dae_up3.gif}
    +
      +set-image-blocker{http://www.freebsd.org/gifs/dae_up3.gif}
    @@ -3299,7 +3300,7 @@ TAG:^IP-ADDRESS: 10\.0\.0\.1$
    -
    +set-image-blocker{http://config.privoxy.org/send-banner?type=pattern}
    +
      +set-image-blocker{http://config.privoxy.org/send-banner?type=pattern}
    @@ -3344,40 +3345,40 @@ TAG:^IP-ADDRESS: 10\.0\.0\.1$
    -
     # 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 = +crunch-incoming-cookies +crunch-incoming-cookies +crunch-outgoing-cookies
    - -crunch-all-cookies = -crunch-incoming-cookies -crunch-incoming-cookies -crunch-outgoing-cookies
    - +block-as-image      = +block{Blocked image.} +handle-as-image
    - allow-all-cookies   = -crunch-all-cookies -session-cookies-only -filter{content-cookies}
     
    - # These aliases define combinations of actions
    - # that are useful for certain types of sites:
    - #
    - fragile     = -block -block -filter -crunch-all-cookies -fast-redirects -hide-referrer -prevent-compression
     
    - shop        = -crunch-all-cookies -filter{all-popups}
    +  shop        = -crunch-all-cookies -filter{all-popups}
     
    - # Short names for other aliases, for really lazy people ;-)
    - #
    - c0 = +crunch-all-cookies
    - c1 = -crunch-all-cookies
    + # Short names for other aliases, for really lazy people ;-) + # + c0 = +crunch-all-cookies + c1 = -crunch-all-cookies
    @@ -3386,26 +3387,26 @@ TAG:^IP-ADDRESS: 10\.0\.0\.1$ @@ -3441,12 +3442,12 @@ TAG:^IP-ADDRESS: 10\.0\.0\.1$
    -
     # 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 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
    +  # 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}}
    +  # These shops require pop-ups:
    +  #
    +  {-filter{all-popups} -filter{unsolicited-popups}}
       .dabs.com
       .overclockers.co.uk
    -
    { \
    - +change-x-forwarded-for{block} \
    - +hide-from-header{block} \
    - +set-image-blocker{pattern} \
    -}
    -/ # Match all URLs
    +
      { \
    +   +change-x-forwarded-for{block} \
    +   +hide-from-header{block} \
    +   +set-image-blocker{pattern} \
    +  }
    +  / # Match all URLs
    @@ -3464,11 +3465,11 @@ TAG:^IP-ADDRESS: 10\.0\.0\.1$
    -
    ##########################################################################
    -# Settings -- Don't change! For internal Privoxy use ONLY.
    -##########################################################################
    -{{settings}}
    -for-privoxy-version=3.0.11
    +
      ##########################################################################
    +  # Settings -- Don't change! For internal Privoxy use ONLY.
    +  ##########################################################################
    +  {{settings}}
    +  for-privoxy-version=3.0.11
    @@ -3477,30 +3478,30 @@ for-privoxy-version=3.0.11
    -
    ##########################################################################
    -# Aliases
    -##########################################################################
    -{{alias}}
    +              
      ##########################################################################
    +  # Aliases
    +  ##########################################################################
    +  {{alias}}
     
    - # These aliases just save typing later:
    - # (Note that some already use other aliases!)
    - #
    - +crunch-all-cookies = +crunch-incoming-cookies +crunch-incoming-cookies +crunch-outgoing-cookies
    - -crunch-all-cookies = -crunch-incoming-cookies -crunch-incoming-cookies -crunch-outgoing-cookies
    - +block-as-image      = +block{Blocked image.} +handle-as-image
    - mercy-for-cookies   = -crunch-all-cookies -session-cookies-only -filter{content-cookies}
     
    - # These aliases define combinations of actions
    - # that are useful for certain types of sites:
    - #
    - fragile     = -block -block -filter -crunch-all-cookies -fast-redirects -hide-referrer
    - shop        = -crunch-all-cookies -filter{all-popups}
    + shop = -crunch-all-cookies -filter{all-popups}
    @@ -3511,16 +3512,16 @@ for-privoxy-version=3.0.11
    -
    ##########################################################################
    -# Exceptions for sites that'll break under the default action set:
    -##########################################################################
    +              
      ##########################################################################
    +  # Exceptions for sites that'll break under the default action set:
    +  ##########################################################################
     
    -# "Fragile" Use a minimum set of actions for these sites (see alias above):
    -#
    -{ fragile }
    -.office.microsoft.com           # surprise, surprise!
    -.windowsupdate.microsoft.com
    -mail.google.com
    + # "Fragile" Use a minimum set of actions for these sites (see alias above): + # + { fragile } + .office.microsoft.com # surprise, surprise! + .windowsupdate.microsoft.com + mail.google.com
    @@ -3529,13 +3530,13 @@ mail.google.com
    -
    # Shopping sites:
    -#
    -{ shop }
    -.quietpc.com
    -.worldpay.com   # for quietpc.com
    -.jungle.com
    -.scan.co.uk
    +
      # Shopping sites:
    +  #
    +  { shop }
    +  .quietpc.com
    +  .worldpay.com   # for quietpc.com
    +  .jungle.com
    +  .scan.co.uk
    @@ -3545,13 +3546,13 @@ mail.google.com
    -
    { -fast-redirects }
    -login.yahoo.com
    -edit.*.yahoo.com
    -.google.com
    -.altavista.com/.*(like|url|link):http
    -.altavista.com/trans.*urltext=http
    -.nytimes.com
    +
      { -fast-redirects }
    +  login.yahoo.com
    +  edit.*.yahoo.com
    +  .google.com
    +  .altavista.com/.*(like|url|link):http
    +  .altavista.com/trans.*urltext=http
    +  .nytimes.com
    @@ -3565,15 +3566,15 @@ edit.*.yahoo.com
    -
    ##########################################################################
    -# Images:
    -##########################################################################
    +              
      ##########################################################################
    +  # Images:
    +  ##########################################################################
     
    -# Define which file types will be treated as images, in case they get
    -# blocked further down this file:
    -#
    -{ +handle-as-image }
    -/.*\.(gif|jpe?g|png|bmp|ico)$
    + # Define which file types will be treated as images, in case they get + # blocked further down this file: + # + { +handle-as-image } + /.*\.(gif|jpe?g|png|bmp|ico)$
    @@ -3591,16 +3592,16 @@ edit.*.yahoo.com
    -
    # Known ad generators:
    -#
    -{ +block-as-image }
    -ar.atwola.com
    -.ad.doubleclick.net
    -.ad.*.doubleclick.net
    -.a.yimg.com/(?:(?!/i/).)*$
    -.a[0-9].yimg.com/(?:(?!/i/).)*$
    -bs*.gsanet.com
    -.qkimg.net
    +
      # Known ad generators:
    +  #
    +  { +block-as-image }
    +  ar.atwola.com
    +  .ad.doubleclick.net
    +  .ad.*.doubleclick.net
    +  .a.yimg.com/(?:(?!/i/).)*$
    +  .a[0-9].yimg.com/(?:(?!/i/).)*$
    +  bs*.gsanet.com
    +  .qkimg.net
    @@ -3617,23 +3618,23 @@ bs*.gsanet.com
    -
    ##########################################################################
    -# Block these fine banners:
    -##########################################################################
    -{ +block{Banner ads.} }
    +              
      ##########################################################################
    +  # Block these fine banners:
    +  ##########################################################################
    +  { +block{Banner ads.} }
     
    -# Generic patterns:
    -#
    -ad*.
    -.*ads.
    -banner?.
    -count*.
    -/.*count(er)?\.(pl|cgi|exe|dll|asp|php[34]?)
    -/(?:.*/)?(publicite|werbung|rekla(ma|me|am)|annonse|maino(kset|nta|s)?)/
    +  # Generic patterns:
    +  #
    +  ad*.
    +  .*ads.
    +  banner?.
    +  count*.
    +  /.*count(er)?\.(pl|cgi|exe|dll|asp|php[34]?)
    +  /(?:.*/)?(publicite|werbung|rekla(ma|me|am)|annonse|maino(kset|nta|s)?)/
     
    -# Site-specific patterns (abbreviated):
    -#
    -.hitbox.com
    + # Site-specific patterns (abbreviated): + # + .hitbox.com
    @@ -3658,28 +3659,28 @@ count*.
    -
    ##########################################################################
    -# Save some innocent victims of the above generic block patterns:
    -##########################################################################
    +              
      ##########################################################################
    +  # Save some innocent victims of the above generic block patterns:
    +  ##########################################################################
     
    -# By domain:
    -#
    -{ -block }
    -adv[io]*.  # (for advogato.org and advice.*)
    -adsl.      # (has nothing to do with ads)
    -adobe.     # (has nothing to do with ads either)
    -ad[ud]*.   # (adult.* and add.*)
    -.edu       # (universities don't host banners (yet!))
    -.*loads.   # (downloads, uploads etc)
    +  # By domain:
    +  #
    +  { -block }
    +  adv[io]*.  # (for advogato.org and advice.*)
    +  adsl.      # (has nothing to do with ads)
    +  adobe.     # (has nothing to do with ads either)
    +  ad[ud]*.   # (adult.* and add.*)
    +  .edu       # (universities don't host banners (yet!))
    +  .*loads.   # (downloads, uploads etc)
     
    -# By path:
    -#
    -/.*loads/
    +  # By path:
    +  #
    +  /.*loads/
     
    -# Site-specific:
    -#
    -www.globalintersec.com/adv # (adv = advanced)
    -www.ugu.com/sui/ugu/adv
    + # Site-specific: + # + www.globalintersec.com/adv # (adv = advanced) + www.ugu.com/sui/ugu/adv
    @@ -3690,14 +3691,14 @@ www.ugu.com/sui/ugu/adv
    -
    # Don't filter code!
    -#
    -{ -filter }
    -/(.*/)?cvs
    -bugzilla.
    -developer.
    -wiki.
    -.sourceforge.net
    +
      # Don't filter code!
    +  #
    +  { -filter }
    +  /(.*/)?cvs
    +  bugzilla.
    +  developer.
    +  wiki.
    +  .sourceforge.net
    @@ -3720,7 +3721,7 @@ wiki.
    -
    # My user.action file. <fred@example.com>
    +
      # My user.action file. <fred@example.com>
    @@ -3729,34 +3730,34 @@ wiki.
    -
    # Aliases are local to the file they are defined in.
    -# (Re-)define aliases for this file:
    -#
    -{{alias}}
    -#
    -# These aliases just save typing later, and the alias names should
    -# be self explanatory.
    -#
    -+crunch-all-cookies = +crunch-incoming-cookies +crunch-outgoing-cookies
    --crunch-all-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies
    - allow-all-cookies  = -crunch-all-cookies -session-cookies-only
    - allow-popups       = -filter{all-popups}
    -+block-as-image     = +block{Blocked as image.} +handle-as-image
    --block-as-image     = -block
    +              
      # Aliases are local to the file they are defined in.
    +  # (Re-)define aliases for this file:
    +  #
    +  {{alias}}
    +  #
    +  # These aliases just save typing later, and the alias names should
    +  # be self explanatory.
    +  #
    +  +crunch-all-cookies = +crunch-incoming-cookies +crunch-outgoing-cookies
    +  -crunch-all-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies
    +   allow-all-cookies  = -crunch-all-cookies -session-cookies-only
    +   allow-popups       = -filter{all-popups}
    +  +block-as-image     = +block{Blocked as image.} +handle-as-image
    +  -block-as-image     = -block
     
    -# These aliases define combinations of actions that are useful for
    -# certain types of sites:
    -#
    -fragile     = -block -crunch-all-cookies -filter -fast-redirects -hide-referrer
    -shop        = -crunch-all-cookies allow-popups
    +  # These aliases define combinations of actions that are useful for
    +  # certain types of sites:
    +  #
    +  fragile     = -block -crunch-all-cookies -filter -fast-redirects -hide-referrer
    +  shop        = -crunch-all-cookies allow-popups
     
    -# Allow ads for selected useful free sites:
    -#
    -allow-ads   = -block -filter{banners-by-size} -filter{banners-by-link}
    +  # Allow ads for selected useful free sites:
    +  #
    +  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 = -filter +-filter +-content-type-overwrite{text/plain} +-force-text-mode -hide-content-disposition
    @@ -3770,11 +3771,11 @@ handle-as-text = -filter +-
    -
    { allow-all-cookies }
    - sourceforge.net
    - .yahoo.com
    - .msdn.microsoft.com
    - .redhat.com
    +
      { allow-all-cookies }
    +  sourceforge.net
    +  .yahoo.com
    +  .msdn.microsoft.com
    +  .redhat.com
    @@ -3782,8 +3783,8 @@ handle-as-text = -filter +- -
    { -filter }
    - .your-home-banking-site.com
    +
      { -filter }
    +  .your-home-banking-site.com
    @@ -3791,16 +3792,16 @@ handle-as-text = -filter +- -
    # Technical documentation is likely to contain strings that might
    -# erroneously get altered by the JavaScript-oriented filters:
    -#
    -.tldp.org
    -/(.*/)?selfhtml/
    +              
      # Technical documentation is likely to contain strings that might
    +  # erroneously get altered by the JavaScript-oriented filters:
    +  #
    +  .tldp.org
    +  /(.*/)?selfhtml/
     
    -# And this stupid host sends streaming video with a wrong MIME type,
    -# so that Privoxy thinks it is getting HTML and starts filtering:
    -#
    -stupid-server.example.com/
    + # And this stupid host sends streaming video with a wrong MIME type, + # so that Privoxy thinks it is getting HTML and starts filtering: + # + stupid-server.example.com/
    @@ -3813,9 +3814,9 @@ stupid-server.example.com/
    -
    { +block{Nasty ads.} }
    - www.example.com/nasty-ads/sponsor\.gif
    - another.example.net/more/junk/here/
    +
      { +block{Nasty ads.} }
    +  www.example.com/nasty-ads/sponsor\.gif
    +  another.example.net/more/junk/here/
    @@ -3828,11 +3829,11 @@ stupid-server.example.com/
    -
    { +block-as-image }
    - .doubleclick.net
    - .fastclick.net
    - /Realmedia/ads/
    - ar.atwola.com/
    +
      { +block-as-image }
    +  .doubleclick.net
    +  .fastclick.net
    +  /Realmedia/ads/
    +  ar.atwola.com/
    @@ -3846,10 +3847,10 @@ stupid-server.example.com/
    -
    { fragile }
    - .forbes.com
    - webmail.example.com
    - .mybank.com
    +
      { fragile }
    +  .forbes.com
    +  webmail.example.com
    +  .mybank.com
    @@ -3859,8 +3860,8 @@ stupid-server.example.com/
    -
    { +filter{fun} }
    - / # For ALL sites!
    +
      { +filter{fun} }
    +  / # For ALL sites!
    @@ -3874,10 +3875,10 @@ stupid-server.example.com/
    -
    { allow-ads }
    - .sourceforge.net
    - .slashdot.org
    - .osdn.net
    +
      { allow-ads }
    +  .sourceforge.net
    +  .slashdot.org
    +  .osdn.net
    @@ -3891,8 +3892,8 @@ stupid-server.example.com/
    -
    { handle-as-text }
    - /.*\.sh$
    +
      { handle-as-text }
    +  /.*\.sh$
    @@ -3904,8 +3905,8 @@ stupid-server.example.com/
    -
    { +set-image-blocker{blank} }
    -/ # ALL sites
    +
      { +set-image-blocker{blank} }
    +  / # ALL sites
    diff --git a/doc/webserver/user-manual/appendix.html b/doc/webserver/user-manual/appendix.html index b50a6d7d..1830c03d 100644 --- a/doc/webserver/user-manual/appendix.html +++ b/doc/webserver/user-manual/appendix.html @@ -202,7 +202,7 @@ these. If not, you will get a friendly error message. Internet access is not necessary either.

    • -

      Privoxy main page:

      +

      Privoxy main page:

      http://config.privoxy.org/

      @@ -211,7 +211,7 @@ "APPLICATION">Privoxy)

    • -

      View and toggle client tags:

      +

      View and toggle client tags:

      http://config.privoxy.org/client-tags

      @@ -219,21 +219,21 @@
    • Show information about the current configuration, including viewing and editing of actions - files:

      + files:

      http://config.privoxy.org/show-status

    • -

      Show the browser's request headers:

      +

      Show the browser's request headers:

      http://config.privoxy.org/show-request

    • -

      Show which actions apply to a URL and why:

      +

      Show which actions apply to a URL and why:

      http://config.privoxy.org/show-url-info

      @@ -242,15 +242,15 @@
    • Toggle Privoxy on or off. This feature can be turned off/on in the main config file. When toggled "off", "Privoxy" continues to run, - but only as a pass-through proxy, with no actions taking place:

      + but only as a pass-through proxy, with no actions taking place:

      http://config.privoxy.org/toggle

      -

      Short cuts. Turn off, then on:

      +

      Short cuts. Turn off, then on:

      http://config.privoxy.org/toggle?set=disable

      -
      +
    • http://config.privoxy.org/toggle?set=enable

      @@ -369,33 +369,33 @@
      -
       Matches for http://www.google.com:
      +            
        Matches for http://www.google.com:
       
      - In file: default.action [ View ] [ Edit ]
      +  In file: default.action [ View ] [ Edit ]
       
      - {+change-x-forwarded-for{block}
      - +deanimate-gifs {last}
      - +fast-redirects {check-decoded-url}
      - +filter {refresh-tags}
      - +filter {img-reorder}
      - +filter {banners-by-size}
      - +filter {webbugs}
      - +filter {jumping-windows}
      - +filter {ie-exploits}
      - +hide-from-header {block}
      - +hide-referrer {forge}
      - +session-cookies-only
      - +set-image-blocker {pattern}
      -/
      +  {+change-x-forwarded-for{block}
      +   +deanimate-gifs {last}
      +   +fast-redirects {check-decoded-url}
      +   +filter {refresh-tags}
      +   +filter {img-reorder}
      +   +filter {banners-by-size}
      +   +filter {webbugs}
      +   +filter {jumping-windows}
      +   +filter {ie-exploits}
      +   +hide-from-header {block}
      +   +hide-referrer {forge}
      +   +session-cookies-only
      +   +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 [ View ] [ Edit ]
      -(no matches in this file)
      + In file: user.action [ View ] [ Edit ] + (no matches in this file)
      @@ -435,108 +435,9 @@ In file: user.action [ View ] -
       Final results:
      +            
        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}
      - - - -

      Notice the only difference here to the previous listing, is to "fast-redirects" and - "session-cookies-only", which are activated specifically for this site in our - configuration, and thus show in the "Final Results".

      -

      Now another example, "ad.doubleclick.net":

      - - - - -
      -
       { +block{Domains starts with "ad"} }
      -  ad*.
      -
      - { +block{Domain contains "ad"} }
      -  .ad.
      -
      - { +block{Doubleclick banner server} +handle-as-image }
      -  .[a-vx-z]*.doubleclick.net
      -
      -

      We'll just show the interesting part here - the explicit matches. It is matched three different times. Two - "+block{}" sections, and a "+block{} +handle-as-image", - which is the expanded form of one of our aliases that had been defined as: "+block-as-image". ("Aliases" - are defined in the first section of the actions file and typically used to combine more than one action.)

      -

      Any one of these would have done the trick and blocked this as an unwanted image. This is unnecessarily - redundant since the last case effectively would also cover the first. No point in taking chances with these guys - though ;-) Note that if you want an ad or obnoxious URL to be invisible, it should be defined as "ad.doubleclick.net" is done here -- as both a "+block{}" and an "+handle-as-image". The custom alias - "+block-as-image" just simplifies the process and make it - more readable.

      -

      One last example. Let's try "http://www.example.net/adsl/HOWTO/". This one is - giving us problems. We are getting a blank page. Hmmm ...

      - - -
      -
       Matches for http://www.example.net/adsl/HOWTO/:
      -
      - In file: default.action [ View ] [ Edit ]
      -
      - {-add-header
      +  -add-header
         -block
         +change-x-forwarded-for{block}
         -client-header-filter{hide-tor-exit-notation}
      @@ -546,9 +447,9 @@ In file: user.action [ View ] [ View ] "fast-redirects" and
      +      "session-cookies-only", which are activated specifically for this site in our
      +      configuration, and thus show in the "Final Results".

      +

      Now another example, "ad.doubleclick.net":

      + + + + +
      +
        { +block{Domains starts with "ad"} }
      +  ad*.
      +
      +  { +block{Domain contains "ad"} }
      +  .ad.
      +
      +  { +block{Doubleclick banner server} +handle-as-image }
      +  .[a-vx-z]*.doubleclick.net
      +
      +

      We'll just show the interesting part here - the explicit matches. It is matched three different times. Two + "+block{}" sections, and a "+block{} +handle-as-image", + which is the expanded form of one of our aliases that had been defined as: "+block-as-image". ("Aliases" + are defined in the first section of the actions file and typically used to combine more than one action.)

      +

      Any one of these would have done the trick and blocked this as an unwanted image. This is unnecessarily + redundant since the last case effectively would also cover the first. No point in taking chances with these guys + though ;-) Note that if you want an ad or obnoxious URL to be invisible, it should be defined as "ad.doubleclick.net" is done here -- as both a "+block{}" and an "+handle-as-image". The custom alias + "+block-as-image" just simplifies the process and make it + more readable.

      +

      One last example. Let's try "http://www.example.net/adsl/HOWTO/". This one is + giving us problems. We are getting a blank page. Hmmm ...

      + + + @@ -609,7 +609,7 @@ In file: user.action [ View ] @@ -621,8 +621,8 @@ In file: user.action [ View ]
      +
        Matches for http://www.example.net/adsl/HOWTO/:
      +
      +  In file: default.action [ View ] [ Edit ]
       
      - { +block{Path contains "ads".} +handle-as-image }
      +  {-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
      -
       { -block }
      +            
        { -block }
         /adsl
      -
       { +block{Path starts with "ads".} +handle-as-image }
      - /ads
      +
        { +block{Path starts with "ads".} +handle-as-image }
      +  /ads
      @@ -635,12 +635,12 @@ In file: user.action [ View ]
      -
       { 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
      @@ -650,11 +650,11 @@ In file: user.action [ View ] -
       { -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
      @@ -670,10 +670,10 @@ In file: user.action [ View ] -
       { fragile }
      - # Handle with care: easy to break
      - mail.google.
      - mybank.example.com
      +
        { fragile }
      +  # Handle with care: easy to break
      +  mail.google.
      +  mybank.example.com
      diff --git a/doc/webserver/user-manual/config.html b/doc/webserver/user-manual/config.html index 7ec3e46b..14eb9914 100644 --- a/doc/webserver/user-manual/config.html +++ b/doc/webserver/user-manual/config.html @@ -573,7 +573,7 @@

      A debug level of 1 is informative because it will show you each request as it happens. 1, 1024, 4096 and 8192 are recommended so that you will notice when things go wrong. The other levels are probably only of interest if you are hunting down a specific - problem. They can produce a hell of an output (especially 16).

      + problem. They can produce a lot of output (especially 16).

      If you are used to the more verbose settings, simply enable the debug lines below again.

      If you want to use pure CLF (Common Log Format), you should set "debug 512" ONLY and not enable anything else.

      @@ -708,8 +708,8 @@ behaves differently.

      If you configure Privoxy to be reachable from the network, consider using access control lists (ACL's, see below), and/or a firewall.

      -

      If you open Privoxy to untrusted users, you will also want to make - sure that the following actions are disabled: If you open Privoxy to untrusted users, you should also make sure + that the following actions are disabled: enable-edit-actions and enable-remote-toggle

    @@ -1438,7 +1438,7 @@
    -
     forward           localhost/     .
    +
      forward           localhost/     .
    @@ -1837,8 +1837,8 @@

    Note that reusing connections doesn't necessary cause speedups. There are also a few privacy implications you should be aware of.

    -

    If this option is effective, outgoing connections are shared between clients (if there are more than - one) and closing the browser that initiated the outgoing connection does no longer affect the connection +

    If this option is enabled, outgoing connections are shared between clients (if there are more than + one) and closing the browser that initiated the outgoing connection does not affect the connection between Privoxy and the server unless the client's request hasn't been completed yet.

    If the outgoing connection is idle, it will not be closed until either

    128

    -
    Effect if unset:
    -
    -

    Connections are served until a resource limit is reached.

    -
    Notes:
    +

    Connections are served until a resource limit is reached.

    Privoxy creates one thread (or process) for every incoming client connection that isn't rejected based on the access control settings.

    If the system is powerful enough, Privoxy can theoretically deal with @@ -2134,18 +2131,18 @@
    -
        # Best speed (compared to the other levels)
    -    compression-level 1
    +                    
      # Best speed (compared to the other levels)
    +  compression-level 1
     
    -    # Best compression
    -    compression-level 9
    +  # 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
    + # 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
    @@ -2624,38 +2621,37 @@

        # 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:\
    -TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384:\
    -TLS-ECDHE-ECDSA-WITH-AES-256-CCM:\
    -TLS-ECDHE-ECDSA-WITH-AES-256-CCM-8:\
    -TLS-ECDHE-ECDSA-WITH-AES-128-CCM:\
    -TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8:\
    -TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-GCM-SHA256:\
    -TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-GCM-SHA384:\
    -TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256:\
    -TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:\
    -TLS-ECDHE-RSA-WITH-CAMELLIA-128-GCM-SHA256:\
    -TLS-ECDHE-RSA-WITH-CAMELLIA-256-GCM-SHA384:\
    -TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:\
    -TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:\
    -TLS-DHE-RSA-WITH-AES-256-CCM:\
    -TLS-DHE-RSA-WITH-AES-256-CCM-8:\
    -TLS-DHE-RSA-WITH-AES-128-CCM:\
    -TLS-DHE-RSA-WITH-AES-128-CCM-8:\
    -TLS-DHE-RSA-WITH-CAMELLIA-128-GCM-SHA256:\
    -TLS-DHE-RSA-WITH-CAMELLIA-256-GCM-SHA384:\
    -TLS-ECDH-RSA-WITH-AES-128-GCM-SHA256:\
    -TLS-ECDH-RSA-WITH-AES-256-GCM-SHA384:\
    -TLS-ECDH-RSA-WITH-CAMELLIA-128-GCM-SHA256:\
    -TLS-ECDH-RSA-WITH-CAMELLIA-256-GCM-SHA384:\
    -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
    -   
    + 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:\ + TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384:\ + TLS-ECDHE-ECDSA-WITH-AES-256-CCM:\ + TLS-ECDHE-ECDSA-WITH-AES-256-CCM-8:\ + TLS-ECDHE-ECDSA-WITH-AES-128-CCM:\ + TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8:\ + TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-GCM-SHA256:\ + TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-GCM-SHA384:\ + TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256:\ + TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:\ + TLS-ECDHE-RSA-WITH-CAMELLIA-128-GCM-SHA256:\ + TLS-ECDHE-RSA-WITH-CAMELLIA-256-GCM-SHA384:\ + TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:\ + TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:\ + TLS-DHE-RSA-WITH-AES-256-CCM:\ + TLS-DHE-RSA-WITH-AES-256-CCM-8:\ + TLS-DHE-RSA-WITH-AES-128-CCM:\ + TLS-DHE-RSA-WITH-AES-128-CCM-8:\ + TLS-DHE-RSA-WITH-CAMELLIA-128-GCM-SHA256:\ + TLS-DHE-RSA-WITH-CAMELLIA-256-GCM-SHA384:\ + TLS-ECDH-RSA-WITH-AES-128-GCM-SHA256:\ + TLS-ECDH-RSA-WITH-AES-256-GCM-SHA384:\ + TLS-ECDH-RSA-WITH-CAMELLIA-128-GCM-SHA256:\ + TLS-ECDH-RSA-WITH-CAMELLIA-256-GCM-SHA384:\ + 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 @@ -2663,25 +2659,24 @@ TLS-ECDH-ECDSA-WITH-CAMELLIA-256-GCM-SHA384
        # 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:\
    -DHE-DSS-AES256-GCM-SHA384:\
    -DH-RSA-AES256-GCM-SHA384:\
    -DHE-RSA-AES256-GCM-SHA384:\
    -ECDH-RSA-AES256-GCM-SHA384:\
    -ECDH-ECDSA-AES256-GCM-SHA384:\
    -ECDHE-RSA-AES128-GCM-SHA256:\
    -ECDHE-ECDSA-AES128-GCM-SHA256:\
    -DH-DSS-AES128-GCM-SHA256:\
    -DHE-DSS-AES128-GCM-SHA256:\
    -DH-RSA-AES128-GCM-SHA256:\
    -DHE-RSA-AES128-GCM-SHA256:\
    -ECDH-RSA-AES128-GCM-SHA256:\
    -ECDH-ECDSA-AES128-GCM-SHA256:\
    -ECDHE-RSA-AES256-GCM-SHA384:\
    -AES128-SHA
    -   
    + cipher-list ECDHE-RSA-AES256-GCM-SHA384:\ + ECDHE-ECDSA-AES256-GCM-SHA384:\ + DH-DSS-AES256-GCM-SHA384:\ + DHE-DSS-AES256-GCM-SHA384:\ + DH-RSA-AES256-GCM-SHA384:\ + DHE-RSA-AES256-GCM-SHA384:\ + ECDH-RSA-AES256-GCM-SHA384:\ + ECDH-ECDSA-AES256-GCM-SHA384:\ + ECDHE-RSA-AES128-GCM-SHA256:\ + ECDHE-ECDSA-AES128-GCM-SHA256:\ + DH-DSS-AES128-GCM-SHA256:\ + DHE-DSS-AES128-GCM-SHA256:\ + DH-RSA-AES128-GCM-SHA256:\ + DHE-RSA-AES128-GCM-SHA256:\ + ECDH-RSA-AES128-GCM-SHA256:\ + ECDH-ECDSA-AES128-GCM-SHA256:\ + ECDHE-RSA-AES256-GCM-SHA384:\ + AES128-SHA @@ -2690,8 +2685,7 @@ AES128-SHA
        # Use keywords instead of explicitly naming the ciphers (Does not work with MbedTLS)
    -    cipher-list ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
    -   
    + cipher-list ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH diff --git a/doc/webserver/user-manual/configuration.html b/doc/webserver/user-manual/configuration.html index 6bfa0706..cd3f2cca 100644 --- a/doc/webserver/user-manual/configuration.html +++ b/doc/webserver/user-manual/configuration.html @@ -39,8 +39,8 @@
    -
     
    -

        Privoxy Menu

    +
       
    +

        Privoxy Menu


    diff --git a/doc/webserver/user-manual/copyright.html b/doc/webserver/user-manual/copyright.html index 8f5bafc2..c546a574 100644 --- a/doc/webserver/user-manual/copyright.html +++ b/doc/webserver/user-manual/copyright.html @@ -46,7 +46,7 @@
    diff --git a/doc/webserver/user-manual/quickstart.html b/doc/webserver/user-manual/quickstart.html index d584af9c..8c14cdeb 100644 --- a/doc/webserver/user-manual/quickstart.html +++ b/doc/webserver/user-manual/quickstart.html @@ -219,7 +219,7 @@

    Find user.action in the top section, and click on "Edit":

    - +

    Figure 1. Actions Files in Use

    diff --git a/doc/webserver/user-manual/startup.html b/doc/webserver/user-manual/startup.html index 9e8c6d38..df27ea08 100644 --- a/doc/webserver/user-manual/startup.html +++ b/doc/webserver/user-manual/startup.html @@ -35,7 +35,7 @@

    Please note that Privoxy can only proxy HTTP and HTTPS traffic. It will not work with FTP or other protocols.

    - +

    Figure 2. Proxy Configuration Showing Mozilla Firefox HTTP and HTTPS (SSL) Settings

    @@ -66,7 +66,7 @@ protocols" is UNCHECKED. You want only HTTP and HTTPS (SSL)!

    - +

    Figure 3. Proxy Configuration Showing Internet Explorer HTTP and HTTPS (Secure) Settings

    @@ -87,7 +87,7 @@
    -
                         GNU GENERAL PUBLIC LICENSE
    +              
                         GNU GENERAL PUBLIC LICENSE
                            Version 2, June 1991
     
      Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
    @@ -395,7 +395,7 @@ Public License instead of this License.
             
    -
                         GNU GENERAL PUBLIC LICENSE
    +              
                         GNU GENERAL PUBLIC LICENSE
                            Version 3, 29 June 2007
     
      Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
    @@ -1174,6 +1174,7 @@ Public License instead of this License.  But first, please read
            Wan-Teh Chang
     Sam Chen
     Ramkumar Chinchani
    +  Gwyn Ciesla
     Billy Crook
     Frédéric Crozat
     Matthew Daley
    @@ -1316,6 +1317,7 @@ Public License instead of this License. But first, please read  Yang Xia
     Jarry Xu
     Oliver Yeoh
    +  Wen Yue
     Yossi Zahn
     Jamie Zawinski
     Zepard
    diff --git a/doc/webserver/user-manual/filter-file.html b/doc/webserver/user-manual/filter-file.html index 36bc2696..d89138d7 100644 --- a/doc/webserver/user-manual/filter-file.html +++ b/doc/webserver/user-manual/filter-file.html @@ -77,7 +77,7 @@
    -
    FILTER: foo Replace all "foo" with "bar"
    +
      FILTER: foo Replace all "foo" with "bar"
    @@ -112,7 +112,7 @@
    -
    s/foo/bar/
    +
      s/foo/bar/
    @@ -123,7 +123,7 @@
    -
    s/foo/bar/g
    +
      s/foo/bar/g
    @@ -131,8 +131,8 @@
    -
    FILTER: foo Replace all "foo" with "bar"
    -s/foo/bar/g
    +
      FILTER: foo Replace all "foo" with "bar"
    +  s/foo/bar/g
    @@ -141,11 +141,11 @@ s/foo/bar/g
    -
    FILTER: js-annoyances Get rid of particularly annoying JavaScript abuse
    +            
      FILTER: js-annoyances Get rid of particularly annoying JavaScript abuse
     
    -# Get rid of JavaScript referrer tracking. Test page: http://www.randomoddness.com/untitled.htm
    -#
    -s|(<script.*)document\.referrer(.*</script>)|$1"Not Your Business!"$2|Usg
    + # Get rid of JavaScript referrer tracking. Test page: http://www.randomoddness.com/untitled.htm + # + s|(<script.*)document\.referrer(.*</script>)|$1"Not Your Business!"$2|Usg
    @@ -198,9 +198,9 @@ s|(<script.*)document\.referrer(.*</script>)|$1"Not Your Business!"$2|U
    -
    # The status bar is for displaying link targets, not pointless blahblah
    -#
    -s/window\.status\s*=\s*(['"]).*?\1/dUmMy=1/ig
    +
      # The status bar is for displaying link targets, not pointless blahblah
    +  #
    +  s/window\.status\s*=\s*(['"]).*?\1/dUmMy=1/ig
    @@ -220,9 +220,9 @@ s/window\.status\s*=\s*(['"]).*?\1/dUmMy=1/ig
    -
    # Kill OnUnload popups. Yummy. Test: http://www.zdnet.com/zdsubs/yahoo/tree/yfs.html
    -#
    -s/(<body [^>]*)onunload(.*>)/$1never$2/iU
    +
      # Kill OnUnload popups. Yummy. Test: http://www.zdnet.com/zdsubs/yahoo/tree/yfs.html
    +  #
    +  s/(<body [^>]*)onunload(.*>)/$1never$2/iU
    @@ -240,11 +240,11 @@ s/(<body [^>]*)onunload(.*>)/$1never$2/iU
    -
    FILTER: fun Fun text replacements
    +            
      FILTER: fun Fun text replacements
     
    -# Spice the daily news:
    -#
    -s/microsoft(?!\.com)/MicroSuck/ig
    + # Spice the daily news: + # + s/microsoft(?!\.com)/MicroSuck/ig
    @@ -255,20 +255,20 @@ s/microsoft(?!\.com)/MicroSuck/ig
    -
    # Buzzword Bingo (example for extended regex syntax)
    -#
    -s* industry[ -]leading \
    -|  cutting[ -]edge \
    -|  customer[ -]focused \
    -|  market[ -]driven \
    -|  award[ -]winning # Comments are OK, too! \
    -|  high[ -]performance \
    -|  solutions[ -]based \
    -|  unmatched \
    -|  unparalleled \
    -|  unrivalled \
    -*<font color="red"><b>BINGO!</b></font> \
    -*igx
    +
      # Buzzword Bingo (example for extended regex syntax)
    +  #
    +  s* industry[ -]leading \
    +  |  cutting[ -]edge \
    +  |  customer[ -]focused \
    +  |  market[ -]driven \
    +  |  award[ -]winning # Comments are OK, too! \
    +  |  high[ -]performance \
    +  |  solutions[ -]based \
    +  |  unmatched \
    +  |  unparalleled \
    +  |  unrivalled \
    +  *<font color="red"><b>BINGO!</b></font> \
    +  *igx
    @@ -528,29 +528,30 @@ s* industry[ -]leading \
    -
    EXTERNAL-FILTER: cat Pointless example filter that doesn't actually modify the content
    -/bin/cat
    +            
      EXTERNAL-FILTER: cat Pointless example filter that doesn't actually modify the content
    +  /bin/cat
     
    -# Incorrect reimplementation of the filter above in POSIX shell.
    -#
    -# Note that it's a single job that spans multiple lines, the line
    -# breaks are not passed to the shell, thus the semicolons are required.
    -#
    -# If the script isn't trivial, it is recommended to put it into an external file.
    -#
    -# In general, writing external filters entirely in POSIX shell is not
    -# considered a good idea.
    -EXTERNAL-FILTER: cat2 Pointless example filter that despite its name may actually modify the content
    -while read line; \
    -do \
    -  echo "$line"; \
    -done
    +  # Incorrect reimplementation of the filter above in POSIX shell.
    +  #
    +  # Note that it's a single job that spans multiple lines, the line
    +  # breaks are not passed to the shell, thus the semicolons are required.
    +  #
    +  # If the script isn't trivial, it is recommended to put it into an external file.
    +  #
    +  # In general, writing external filters entirely in POSIX shell is not
    +  # considered a good idea.
    +  EXTERNAL-FILTER: cat2 Pointless example filter that despite its name may actually modify the content
    +  while read line; \
    +  do \
    +    echo "$line"; \
    +  done
     
    -EXTERNAL-FILTER: rotate-image Rotate an image by 180 degree. Test filter with limited value.
    -/usr/local/bin/convert - -rotate 180 -
    +  EXTERNAL-FILTER: rotate-image Rotate an image by 180 degree. Test filter with limited value.
    +  /usr/local/bin/convert - -rotate 180 -
     
    -EXTERNAL-FILTER: citation-needed Adds a "[citation needed]" tag to an image. The coordinates may need adjustment.
    -/usr/local/bin/convert - -pointsize 16 -fill white  -annotate +17+418 "[citation needed]" -
    + EXTERNAL-FILTER: citation-needed Adds a "[citation needed]" tag to an image. The coordinates may need adjustment. + /usr/local/bin/convert - -pointsize 16 -fill white -annotate +17+418 "[citation needed]" -
    diff --git a/doc/webserver/user-manual/installation.html b/doc/webserver/user-manual/installation.html index 08b74c5b..a384626f 100644 --- a/doc/webserver/user-manual/installation.html +++ b/doc/webserver/user-manual/installation.html @@ -128,8 +128,8 @@
    -
     tar xzvf privoxy-3.0.33-beta-src.tar.gz
    - cd privoxy-3.0.33-beta
    +
      tar xzvf privoxy-3.0.33-beta-src.tar.gz
    +  cd privoxy-3.0.33-beta
    @@ -171,13 +171,13 @@
    -
     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)
    +
      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)
    @@ -197,7 +197,7 @@
    -
     ./configure  --disable-toggle  --disable-editor  --disable-force
    +
      ./configure  --disable-toggle  --disable-editor  --disable-force
    @@ -217,7 +217,7 @@
    -
     make -s install  USER=privoxy GROUP=privoxy
    +
      make -s install  USER=privoxy GROUP=privoxy
    @@ -326,13 +326,83 @@

    If you want to be able to make a Windows release package, get the NSIS .zip file from https://sourceforge.net/projects/nsis/files/NSIS%203/ and extract the NSIS directory to privoxy/windows. Then edit the windows/GNUmakefile to set the location of the NSIS executable - - eg:

    + "LITERAL">/<root-dir>/nsis/. Then edit the windows/GNUmakefile to set + the location of the NSIS executable - eg:

    + +
    -
    # Path to NSIS
    -MAKENSIS = ./nsis/makensis.exe
    +
      # Path to NSIS
    +  MAKENSIS = /<root-dir>/nsis/makensis.exe
    +
    +

    Get the latest 8.x PCRE code from PCRE + https://ftp.pcre.org/pub/pcre/ and build the static PCRE libraries with

    + + + + +
    +
      export CFLAGS="-O2 -fstack-protector-strong -D_FORTIFY_SOURCE=2"
    +  export LDFLAGS="-fstack-protector-strong"
    +  export CPPFLAGS="-DPCRE_STATIC"
    +
    +  ./configure  --host=i686-w64-mingw32 \
    +               --prefix=/usr/local/i686-w64-mingw32 \
    +               --enable-utf  --enable-unicode-properties \
    +               --enable-jit \
    +               --enable-newline-is-anycrlf \
    +               --enable-pcre16 \
    +               --enable-pcre32 \
    +               --disable-pcregrep-libbz2 \
    +               --disable-pcregrep-libz \
    +               --disable-pcretest-libreadline \
    +               --disable-stack-for-recursion  \
    +               --enable-static --disable-shared \
    +    &&  make
    +
    +

    If you want to be able to have Privoxy do TLS Inspection, get the latest 2.16.x MBED-TLS library source + code from https://github.com/ARMmbed/mbedtls/tags, extract the tar file into <root-dir> and build the static libraries with

    + + + + +
    +
      export WINDOWS_BUILD=1
    +  #  build for a Windows platform
    +
    +  unset DEBUG
    +
    +  export CC=i686-w64-mingw32-gcc
    +  export LD=i686-w64-mingw32-gcc
    +  export CFLAGS="-O2 -fstack-protector-strong -D_FORTIFY_SOURCE=2"
    +  export LDFLAGS="${LDFLAGS} -fstack-protector-strong"
    +
    +  make lib
    +  #  build the libraries
    +
    +

    Get the brotli library from https://github.com/google/brotli/releases and build the static libraries with

    + + +
    +
      ./bootstrap
    +  #  to create the GNU autotools files
    +
    +  autoconf
    +
    +  export CFLAGS="-O2 -fstack-protector-strong -D_FORTIFY_SOURCE=2"
    +  export LDFLAGS="${LDFLAGS} -fstack-protector-strong"
    +
    +  ./configure  --host=i686-w64-mingw32 \
    +               --prefix=/usr/local/i686-w64-mingw32 \
    +               --enable-static   \
    +               --disable-shared  \
    +               --with-gnu-ld     \
    +               --disable-silent-rules \
    +    && make
    @@ -353,10 +423,10 @@ MAKENSIS = ./nsis/makensis.exe
    -
      $ 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
    @@ -370,7 +440,8 @@ MAKENSIS = ./nsis/makensis.exe --enable-zlib --enable-static-linking --disable-pthread - --disable-dynamic-pcre + --with-brotli + --with-mbedtls
    @@ -382,7 +453,7 @@ MAKENSIS = ./nsis/makensis.exe
      $ 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
    +  >             --enable-static-linking --disable-pthread
       $ make                             # build Privoxy
    -
     # /etc/init.d/privoxy start
    +
      # /etc/init.d/privoxy start
    @@ -103,7 +103,7 @@
    -
     # service privoxy onestart
    +
      # service privoxy onestart
    @@ -126,7 +126,7 @@
    -
     # /usr/sbin/privoxy --user privoxy /etc/privoxy/config
    +
      # /usr/sbin/privoxy --user privoxy /etc/privoxy/config
    diff --git a/doc/webserver/user-manual/templates.html b/doc/webserver/user-manual/templates.html index 4303283b..51eb1438 100644 --- a/doc/webserver/user-manual/templates.html +++ b/doc/webserver/user-manual/templates.html @@ -55,11 +55,11 @@
    -
    <!-- @if-unstable-start -->
    +          
      <!-- @if-unstable-start -->
     
    -  ... beta warning HTML code goes here ...
    +    ... beta warning HTML code goes here ...
     
    -<!-- if-unstable-end@ -->
    + <!-- if-unstable-end@ -->
    @@ -68,7 +68,7 @@
    -
    <!--  -->
    +
      <!--  -->
    -- 2.39.2