[Privoxy-commits] [privoxy] 07/10: Add HTML versions of the Privoxy tool man pages
User Git
git at git.privoxy.org
Sat Apr 11 15:04:16 CEST 2026
This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch master
in repository privoxy.
commit 9e6fd23ca0d36e87b89857751e1d23d85a09331a
Author: Fabian Keil <fk at fabiankeil.de>
AuthorDate: Fri Jan 9 17:24:11 2026 +0100
Add HTML versions of the Privoxy tool man pages
---
doc/webserver/man-page/privoxy-log-parser.1.html | 141 ++++++++++++
.../man-page/privoxy-regression-test.1.html | 237 +++++++++++++++++++++
doc/webserver/man-page/uagen.1.html | 147 +++++++++++++
3 files changed, 525 insertions(+)
diff --git a/doc/webserver/man-page/privoxy-log-parser.1.html b/doc/webserver/man-page/privoxy-log-parser.1.html
new file mode 100644
index 00000000..9bb3572a
--- /dev/null
+++ b/doc/webserver/man-page/privoxy-log-parser.1.html
@@ -0,0 +1,141 @@
+<!-- Creator : groff version 1.19.2 -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+ <meta name="generator" content="groff -Thtml, see www.gnu.org">
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="Content-Style" content="text/css">
+ <style type="text/css">
+ p { margin-top: 0; margin-bottom: 0; }
+ pre { margin-top: 0; margin-bottom: 0; }
+ table { margin-top: 0; margin-bottom: 0; }
+ </style>
+ <title>PRIVOXY-LOG-PARSER</title>
+</head>
+<body>
+ <h1 align="center">PRIVOXY-LOG-PARSER</h1><a href="#NAME">NAME</a><br>
+ <a href="#SYNOPSIS">SYNOPSIS</a><br>
+ <a href="#DESCRIPTION">DESCRIPTION</a><br>
+ <a href="#OPTIONS">OPTIONS</a><br>
+ <a href="#EXAMPLES">EXAMPLES</a><br>
+ <a href="#CAVEATS">CAVEATS</a><br>
+ <a href="#BUGS">BUGS</a><br>
+ <a href="#SEE%20ALSO">SEE ALSO</a><br>
+ <a href="#AUTHOR">AUTHOR</a><br>
+ <hr>
+ <a name="NAME" id="NAME"></a>
+ <h2>NAME</h2>
+ <p style="margin-left:11%; margin-top: 1em">privoxy−log−parser − A parser and
+ syntax−highlighter for Privoxy log messages</p><a name="SYNOPSIS" id="SYNOPSIS"></a>
+ <h2>SYNOPSIS</h2>
+ <p style="margin-left:11%; margin-top: 1em"><b>privoxy−log−parser</b>
+ [<b>−−detect−inactivity</b>] [<b>−−inactivity−threshold msecs</b>]
+ [<b>−−html−output</b>] [<b>−−no−msecs</b>]
+ [<b>−−no−syntax−higlighting</b>] [<b>−−statistics</b>]
+ [<b>−−shorten−thread−ids</b>] [<b>−−show−ineffective−filters</b>]
+ [<b>−−url−statistics−threshold</b>] [<b>−−version</b>]</p><a name="DESCRIPTION"
+ id="DESCRIPTION"></a>
+ <h2>DESCRIPTION</h2>
+ <p style="margin-left:11%; margin-top: 1em"><b>privoxy−log−parser</b> reads Privoxy log messages and</p>
+ <p style="margin-left:11%; margin-top: 1em">− syntax−highlights recognized lines,</p>
+ <p style="margin-left:11%; margin-top: 1em">− reformats some of them for easier comprehension,</p>
+ <p style="margin-left:11%; margin-top: 1em">− filters out less useful messages, and</p>
+ <p style="margin-left:11%; margin-top: 1em">− (in some cases) calculates additional information,<br>
+ like the compression ratio or how a filter affected<br>
+ the content size.</p>
+ <p style="margin-left:11%; margin-top: 1em">With <b>privoxy−log−parser</b> you should be able to increase
+ Privoxy's log level without getting confused by the resulting amount of output. For example for "debug 64"
+ <b>privoxy−log−parser</b> will (by default) only show messages that affect the content. If a filter
+ doesn't cause any hits, <b>privoxy−log−parser</b> will hide the "filter foo caused 0 hits"
+ message.</p><a name="OPTIONS" id="OPTIONS"></a>
+ <h2>OPTIONS</h2>
+ <p style="margin-left:11%; margin-top: 1em">[<b>−−detect−inactivity</b>] Instead of syntax
+ highlighting, detect periods of log inactivity of more than the amount of milliseconds specified with the
+ <b>−−inactivity−threshold</b> option. Mainly useful for debugging.</p>
+ <p style="margin-left:11%; margin-top: 1em">[<b>−−host−statistics−threshold</b>] Only show
+ the request count for a host if it's above or equal to the given threshold. If the threshold is 0, host statistics
+ are disabled.</p>
+ <p style="margin-left:11%; margin-top: 1em">[<b>−−html−output</b>] Use HTML and CSS when syntax
+ highlighting. If this option is omitted, ANSI escape sequences are used unless
+ <b>−−no−syntax−highlighting</b> is active. This option is only intended to make embedding log
+ excerpts in web pages easier. It does not escape any input!</p>
+ <p style="margin-left:11%; margin-top: 1em">[<b>−−inactivity−threshold msecs</b>] Specifies the
+ number of milliseconds between log messages to consider inactivity when running in
+ [<b>−−detect−inactivity</b>] mode.</p>
+ <p style="margin-left:11%; margin-top: 1em">[<b>−−keep−date</b>] Don't remove the date when
+ printing highlighted log messages. Useful when parsing multiple log files at once.</p>
+ <p style="margin-left:11%; margin-top: 1em">[<b>−−no−msecs</b>] Don't expect millisecond
+ resolution</p>
+ <p style="margin-left:11%; margin-top: 1em">[<b>−−no−syntax−highlighting</b>] Disable
+ syntax−highlighting. Useful when the filtered output is piped into less in which case the ANSI control codes
+ don't work, or if the terminal itself doesn't support the control codes.</p>
+ <p style="margin-left:11%; margin-top: 1em">
+ [<b>−−passed−request−statistics−threshold</b>] Only show the request count for a passed
+ requests if it's above or equal to the given threshold. If the threshold is 0, passed request statistics are
+ disabled.</p>
+ <p style="margin-left:11%; margin-top: 1em">[<b>−−shorten−thread−ids</b>] Shorten the thread
+ ids to a three−digit decimal number. Note that the mapping from thread ids to shortened ids is created at
+ run−time and thus varies with the input.</p>
+ <p style="margin-left:11%; margin-top: 1em">[<b>−−show−ineffective−filters</b>] Don't
+ suppress log lines for filters that didn't modify the content.</p>
+ <p style="margin-left:11%; margin-top: 1em">
+ [<b>−−show−complete−request−distribution</b>] Show the complete client request
+ distribution in the <b>−−statistics</b> output. Without this option only the ten most common numbers are
+ shown.</p>
+ <p style="margin-left:11%; margin-top: 1em">[<b>−−statistics</b>] Gather various statistics instead of
+ syntax highlighting log messages. This is an experimental feature, if the results look wrong they very well might be.
+ Also note that the results are pretty much guaranteed to be incorrect if Privoxy and Privoxy−Log−Parser
+ aren't in sync.</p>
+ <p style="margin-left:11%; margin-top: 1em">[<b>−−strict−checks</b>] When generating statistics,
+ look more careful at the input data and abort if it is unexpected, even if it doesn't affect the results.
+ Significantly slows the parsing down and is not expected to catch any problems that matter. When highlighting, print
+ warnings in case of unknown messages which can't be properly highlighted.</p>
+ <p style="margin-left:11%; margin-top: 1em">[<b>−−unbreak−lines−only</b>] Tries to fix lines
+ that got messed up by a broken or interestingly configured mail client and thus are no longer recognized properly.
+ Only fixes some breakage, but may be good enough or at least better than nothing. Doesn't do anything else, so you
+ probably want to pipe the output into <b>privoxy−log−parser</b> again.</p>
+ <p style="margin-left:11%; margin-top: 1em">[<b>−−url−statistics−threshold</b>] Only show the
+ request count for a resource if it's above or equal to the given threshold. If the threshold is 0, URL statistics are
+ disabled.</p>
+ <p style="margin-left:11%; margin-top: 1em">[<b>−−version</b>] Print version and exit.</p><a name=
+ "EXAMPLES" id="EXAMPLES"></a>
+ <h2>EXAMPLES</h2>
+ <p style="margin-left:11%; margin-top: 1em">To monitor a log file:</p>
+ <p style="margin-left:11%; margin-top: 1em">tail −F /usr/jails/privoxy−jail/var/log/privoxy/privoxy.log |
+ <b>privoxy−log−parser</b></p>
+ <p style="margin-left:11%; margin-top: 1em">Replace '−F' with '−f' if your tail implementation lacks
+ '−F' support or if the log won't get rotated anyway. The log file location depends on your system (Doh!).</p>
+ <p style="margin-left:11%; margin-top: 1em">To monitor Privoxy without having it write to a log file:</p>
+ <p style="margin-left:11%; margin-top: 1em">privoxy −−no−daemon
+ /usr/jails/privoxy−jail/usr/local/etc/privoxy/config 2>&1 | <b>privoxy−log−parser</b></p>
+ <p style="margin-left:11%; margin-top: 1em">Again, the config file location depends on your system. Output
+ redirection depends on your shell, the above works with bourne shells.</p>
+ <p style="margin-left:11%; margin-top: 1em">To read a processed Privoxy log file from top to bottom, letting the
+ content scroll by slightly faster than you can read:</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>privoxy−log−parser</b> <
+ /usr/jails/privoxy−jail/var/log/privoxy/privoxy.log</p>
+ <p style="margin-left:11%; margin-top: 1em">This is probably only useful to fill screens in the background of haxor
+ movies.</p><a name="CAVEATS" id="CAVEATS"></a>
+ <h2>CAVEATS</h2>
+ <p style="margin-left:11%; margin-top: 1em">Syntax highlighting with ANSI escape sequences will look strange if your
+ background color isn't black.</p>
+ <p style="margin-left:11%; margin-top: 1em">Some messages aren't recognized yet and will not be fully
+ highlighted.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>privoxy−log−parser</b> is developed with Privoxy 3.0.7 or
+ later in mind, using earlier Privoxy versions will probably result in an increased amount of unrecognized log
+ lines.</p>
+ <p style="margin-left:11%; margin-top: 1em">Privoxy's log files tend to be rather large. If you use HTML highlighting
+ some browsers can't handle them, get confused and will eventually crash because of segmentation faults or unexpected
+ exceptions. This is a problem in the browser and not <b>privoxy−log−parser</b>'s fault.</p><a name="BUGS"
+ id="BUGS"></a>
+ <h2>BUGS</h2>
+ <p style="margin-left:11%; margin-top: 1em">Many settings can't be controlled through command line options
+ yet.</p><a name="SEE ALSO"></a>
+ <h2>SEE ALSO</h2>
+ <p style="margin-left:11%; margin-top: 1em"><b>privoxy</b>(8)</p><a name="AUTHOR" id="AUTHOR"></a>
+ <h2>AUTHOR</h2>
+ <p style="margin-left:11%; margin-top: 1em">Fabian Keil <fk at fabiankeil.de></p>
+ <hr>
+</body>
+</html>
diff --git a/doc/webserver/man-page/privoxy-regression-test.1.html b/doc/webserver/man-page/privoxy-regression-test.1.html
new file mode 100644
index 00000000..4d1309f8
--- /dev/null
+++ b/doc/webserver/man-page/privoxy-regression-test.1.html
@@ -0,0 +1,237 @@
+<!-- Creator : groff version 1.19.2 -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+ <meta name="generator" content="groff -Thtml, see www.gnu.org">
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="Content-Style" content="text/css">
+ <style type="text/css">
+ p { margin-top: 0; margin-bottom: 0; }
+ pre { margin-top: 0; margin-bottom: 0; }
+ table { margin-top: 0; margin-bottom: 0; }
+ </style>
+ <title>PRIVOXY-REGRESSION-TEST</title>
+</head>
+<body>
+ <h1 align="center">PRIVOXY-REGRESSION-TEST</h1><a href="#NAME">NAME</a><br>
+ <a href="#SYNOPSIS">SYNOPSIS</a><br>
+ <a href="#DESCRIPTION">DESCRIPTION</a><br>
+ <a href="#CONFIGURATION%20FILE%20SYNTAX">CONFIGURATION FILE SYNTAX</a><br>
+ <a href="#TEST%20LEVELS">TEST LEVELS</a><br>
+ <a href="#OPTIONS">OPTIONS</a><br>
+ <a href="#PRIVOXY%20CONFIGURATION">PRIVOXY CONFIGURATION</a><br>
+ <a href="#CAVEATS">CAVEATS</a><br>
+ <a href="#LIMITATIONS">LIMITATIONS</a><br>
+ <a href="#SEE%20ALSO">SEE ALSO</a><br>
+ <a href="#AUTHOR">AUTHOR</a><br>
+ <hr>
+ <a name="NAME" id="NAME"></a>
+ <h2>NAME</h2>
+ <p style="margin-left:11%; margin-top: 1em">privoxy−regression−test − A regression test
+ "framework" for Privoxy.</p><a name="SYNOPSIS" id="SYNOPSIS"></a>
+ <h2>SYNOPSIS</h2>
+ <p style="margin-left:11%; margin-top: 1em"><b>privoxy−regression−test</b>
+ [<b>−−check−bad−ssl</b>] [<b>−−curl curl</b>] [<b>−−debug
+ bitmask</b>] [<b>−−forks</b> forks] [<b>−−fuzzer−feeding</b>]
+ [<b>−−fuzzer−feeding</b>] [<b>−−help</b>] [<b>−−level level</b>]
+ [<b>−−local−test−file testfile</b>] [<b>−−loops count</b>]
+ [<b>−−max−level max−level</b>] [<b>−−max−time max−time</b>]
+ [<b>−−min−level min−level</b>] <b>−−privoxy−address proxy−address
+ −−privoxy−cgi−prefix cgi−prefix</b> [<b>−−retries retries</b>]
+ [<b>−−test−number test−number</b>] [<b>−−show−skipped−tests</b>]
+ [<b>−−sleep−time</b> seconds] [<b>−−verbose</b>]
+ [<b>−−version</b>]</p><a name="DESCRIPTION" id="DESCRIPTION"></a>
+ <h2>DESCRIPTION</h2>
+ <p style="margin-left:11%; margin-top: 1em">Privoxy−Regression−Test is supposed to one day become a
+ regression test suite for Privoxy. It's not quite there yet, however, and can currently only test header actions,
+ check the returned status code for requests to arbitrary URLs and verify which actions are applied to them.</p>
+ <p style="margin-left:11%; margin-top: 1em">Client header actions are tested by requesting
+ <b>http://p.p/show−request</b> and checking whether or not Privoxy modified the original request as
+ expected.</p>
+ <p style="margin-left:11%; margin-top: 1em">The original request contains both the header the
+ action−to−be−tested acts upon and an additional tagger−triggering header that enables the
+ action to test.</p>
+ <p style="margin-left:11%; margin-top: 1em">Applied actions are checked through
+ <b>http://p.p/show−url−info</b>.</p><a name="CONFIGURATION FILE SYNTAX"></a>
+ <h2>CONFIGURATION FILE SYNTAX</h2>
+ <p style="margin-left:11%; margin-top: 1em">Privoxy−Regression−Test's configuration is embedded in
+ Privoxy action files and loaded through Privoxy's web interface.</p>
+ <p style="margin-left:11%; margin-top: 1em">It makes testing a Privoxy version running on a remote system easier and
+ should prevent you from updating your tests without updating Privoxy's configuration accordingly.</p>
+ <p style="margin-left:11%; margin-top: 1em">A client−header−action test section looks like this:</p>
+ <pre style=
+ "margin-left:11%; margin-top: 1em"> # Set Header = Referer: http://www.example.org.zwiebelsuppe.exit/
+ # Expect Header = Referer: http://www.example.org/
+ {+client−header−filter{hide−tor−exit−notation} −hide−referer}
+ TAG:^client−header−filter\{hide−tor−exit−notation\}$</pre>
+ <p style="margin-left:11%; margin-top: 1em">The example above causes Privoxy−Regression−Test to set the
+ header <b>Referer: http://www.example.org.zwiebelsuppe.exit/</b> and to expect it to be modified to <b>Referer:
+ http://www.example.org/</b>.</p>
+ <p style="margin-left:11%; margin-top: 1em">When testing this section, Privoxy−Regression−Test will set
+ the header <b>X−Privoxy−Control:
+ client−header−filter{hide−tor−exit−notation}</b> causing the
+ <b>privoxy−control</b> tagger to create the tag
+ <b>client−header−filter{hide−tor−exit−notation}</b> which will finally cause Privoxy to
+ enable the action section.</p>
+ <p style="margin-left:11%; margin-top: 1em">Note that the actions itself are only used by Privoxy,
+ Privoxy−Regression−Test ignores them and will be happy as long as the expectations are satisfied.</p>
+ <p style="margin-left:11%; margin-top: 1em">A fetch test looks like this:</p>
+ <pre style="margin-left:11%; margin-top: 1em"> # Fetch Test = http://p.p/user−manual
+ # Expect Status Code = 302</pre>
+ <p style="margin-left:11%; margin-top: 1em">It tells Privoxy−Regression−Test to request
+ <b>http://p.p/user−manual</b> and to expect a response with the HTTP status code <b>302</b>. Obviously that's
+ not a very thorough test and mainly useful to get some code coverage for Valgrind or to verify that the templates are
+ installed correctly.</p>
+ <p style="margin-left:11%; margin-top: 1em">If you want to test CGI pages that require a trusted referer, you can
+ use:</p>
+ <pre style="margin-left:11%; margin-top: 1em"> # Trusted CGI Request = http://p.p/edit−actions</pre>
+ <p style="margin-left:11%; margin-top: 1em">It works like ordinary fetch tests, but sets the referer header to a
+ trusted value.</p>
+ <p style="margin-left:11%; margin-top: 1em">If no explicit status code expectation is set, <b>200</b> is used.</p>
+ <p style="margin-left:11%; margin-top: 1em">To verify that a URL is blocked, use:</p>
+ <pre style="margin-left:11%; margin-top: 1em"> # Blocked URL = http://www.example.com/blocked</pre>
+ <p style="margin-left:11%; margin-top: 1em">To verify that a specific set of actions is applied to an URL, use:</p>
+ <pre style=
+ "margin-left:11%; margin-top: 1em"> # Sticky Actions = +block{foo} +handle−as−empty−document −handle−as−image
+ # URL = http://www.example.org/my−first−url</pre>
+ <p style="margin-left:11%; margin-top: 1em">The sticky actions will be checked for all URLs below it until the next
+ sticky actions directive.</p>
+ <p style="margin-left:11%; margin-top: 1em">To verify that requests for a URL get redirected, use:</p>
+ <pre style="margin-left:11%; margin-top: 1em"> # Redirected URL = http://www.example.com/redirect−me
+ # Redirect Destination = http://www.example.org/redirected</pre>
+ <p style="margin-left:11%; margin-top: 1em">To skip a test, add the following line:</p>
+ <pre style="margin-left:11%; margin-top: 1em"> # Ignore = Yes</pre>
+ <p style="margin-left:11%; margin-top: 1em">The difference between a skipped test and a removed one is that removing
+ a test affects the numbers of the following tests, while a skipped test is still loaded and thus keeps the test
+ numbers unchanged.</p>
+ <p style="margin-left:11%; margin-top: 1em">Sometimes user modifications intentionally conflict with tests in the
+ default configuration and thus cause test failures. Adding the Ignore directive to the failing tests works but is
+ inconvenient as the directive is likely to get lost with the next update.</p>
+ <p style="margin-left:11%; margin-top: 1em">Overwrite conditions are an alternative and can be added in any action
+ file as long as the come after the test that is expected to fail. They cause all previous tests that match the
+ condition to be skipped.</p>
+ <p style="margin-left:11%; margin-top: 1em">It is recommended to put the overwrite condition below the custom Privoxy
+ section that causes the expected test failure and before the custom test that verifies that tests the now expected
+ behaviour. Example:</p>
+ <pre style="margin-left:11%; margin-top: 1em"> # The following section is expected to overwrite a section in
+ # default.action, whose effect is being tested. Thus also disable
+ # the test that is now expected to fail and add a new one.
+ #
+ {+block{Facebook makes Firefox even more unstable. Do not want.}}
+ # Overwrite condition = http://apps.facebook.com/onthefarm/track.php?creative=&cat=friendvisit&subcat=weeds&key=a789a971dc687bee4c20c044834fabdd&next=index.php%3Fref%3Dnotif%26visitId%3D898835505
+ # Blocked URL = http://apps.facebook.com/
+ .facebook./</pre><a name="TEST LEVELS"></a>
+ <h2>TEST LEVELS</h2>
+ <p style="margin-left:11%; margin-top: 1em">All tests have test levels to let the user control which ones to execute
+ (see <i>OPTIONS</i> below). Test levels are either set with the <b>Level</b> directive, or implicitly through the
+ test type.</p>
+ <p style="margin-left:11%; margin-top: 1em">Redirect tests default to level 108, block tests to level 7, fetch tests
+ to level 6, "Sticky Actions" tests default to level 5, tests for trusted CGI requests to level 3 and
+ client−header−action tests to level 1.</p>
+ <p style="margin-left:11%; margin-top: 1em">The current redirect test level is above the default max−level
+ value as failed tests will result in outgoing connections. Use the <b>−−max−level</b> option to run
+ them as well.</p>
+ <p style="margin-left:11%; margin-top: 1em">The "Default level offset" directive can be used to change the
+ default level by a given value. This directive affects all tests located after it until the end of the file or a
+ another "Default level offset" directive is reached. The purpose of this directive is to make it more
+ convenient to skip similar tests in a given file without having to remove or disable the tests
+ completely.</p><a name="OPTIONS" id="OPTIONS"></a>
+ <h2>OPTIONS</h2>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−check−bad−ssl</b> Instead of running the
+ regression tests as described above, request pages from badssl.com with bad certificates to verify that Privoxy is
+ detecting the certificate issues. Only works if Privoxy has been compiled with FEATURE_HTTPS_INSPECTION, has been
+ configured properly and can reach the Internet.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−curl curl</b> Use a non−default curl binary.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−debug bitmask</b> Add the bitmask provided as integer to
+ the debug settings.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−forks forks</b> Number of forks to start before
+ executing the regression tests. This is mainly useful for stress−testing.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−fuzzer−address</b> Listening address used when
+ executing the regression tests. Useful to make sure that the requests to load the regression tests don't fail due to
+ fuzzing.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−fuzzer−feeding</b> Ignore some errors that would
+ otherwise cause Privoxy−Regression−Test to abort the test because they shouldn't happen in normal
+ operation. This option is intended to be used if Privoxy−Regression−Test is only used to feed a fuzzer in
+ which case there's a high chance that Privoxy gets an invalid request and returns an error message.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−help</b> Shows available command line options.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−header−fuzzing</b> Modifies linear white space in
+ headers in a way that should not affect the test result.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−level level</b> Only execute tests with the specified
+ <b>level</b>.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−local−test−file test−file</b> Do not
+ get the tests through Privoxy's web interface, but use a single local file. Not recommended for testing Privoxy, but
+ can be useful to "misappropriate" Privoxy−Regression−Test to test other stuff, like webserver
+ configurations.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−loop count</b> Loop through the regression tests
+ <b>count</b> times. Useful to feed a fuzzer, or when doing stress tests with several
+ Privoxy−Regression−Test instances running at the same time.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−max−level max−level</b> Only execute tests
+ with a <b>level</b> below or equal to the numerical <b>max−level</b>.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−max−time max−time</b> Give Privoxy
+ <b>max−time</b> seconds to return data. Increasing the default may make sense when Privoxy is run through
+ Valgrind, decreasing the default may make sense when Privoxy−Regression−Test is used to feed a
+ fuzzer.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−min−level min−level</b> Only execute tests
+ with a <b>level</b> above or equal to the numerical <b>min−level</b>. If the <b>min−level</b> is larger
+ than the <b>max−level</b>, the <b>max−level</b> is set to the <b>min−level</b>.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−privoxy−address proxy−address</b> Privoxy's
+ listening address. If it's not set, the value of the environment variable http_proxy will be used unless the variable
+ isn't set in which case http://127.0.0.1:8118/ will be used. <b>proxy−address</b> has to be specified in
+ http_proxy syntax.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−privoxy−cgi−prefix
+ privoxy−cgi−prefix</b> The prefix to use when building URLs that are supposed to reach Privoxy's CGI
+ interface. If it's not set, <b>http://p.p/</b> is used, which is supposed to work with the default Privoxy
+ configuration. If Privoxy has been built with <b>FEATURE_HTTPS_INSPECTION</b> enabled, and if https inspection is
+ activated with the <b>+https−inspection</b> action, this option can be used with <b>https://p.p/</b> provided
+ the system running Privoxy−Regression−Test has been configured to trust the certificate used by Privoxy.
+ Note that there are currently two tests in the official <b>regression−tests.action</b> file that are expected
+ to fail when using a <b>privoxy−cgi−prefix</b> with <b>https://</b> and aren't automatically skipped.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−retries retries</b> Retry <b>retries</b> times.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−test−number test−number</b> Only run the
+ test with the specified number.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−show−skipped−tests</b> Log skipped tests
+ even if verbose mode is off.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−shuffle−tests</b> Shuffle test sections and their
+ tests before executing them. When combined with <b>−−forks</b>, this can increase the chances of
+ detecting race conditions. Of course some problems are easier to detect without this option.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−sleep−time seconds</b> Wait <b>seconds</b> between
+ tests. Useful when debugging issues with systems that don't log with millisecond precision.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−verbose</b> Log successful tests as well. By default
+ only the failures are logged.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−version</b> Print version and exit.</p>
+ <p style="margin-left:11%; margin-top: 1em">The second dash is optional, options can be shortened, as long as there
+ are no ambiguities.</p><a name="PRIVOXY CONFIGURATION"></a>
+ <h2>PRIVOXY CONFIGURATION</h2>
+ <p style="margin-left:11%; margin-top: 1em">Privoxy−Regression−Test is shipped with
+ <b>regression−tests.action</b> which aims to test all official client−header modifying actions and can be
+ used to verify that the templates and the user manual files are installed correctly.</p>
+ <p style="margin-left:11%; margin-top: 1em">To use it, it has to be copied in Privoxy's configuration directory, and
+ afterwards referenced in Privoxy's configuration file with the line:</p>
+ <pre style="margin-left:11%; margin-top: 1em"> actionsfile regression−tests.action</pre>
+ <p style="margin-left:11%; margin-top: 1em">In general, its tests are supposed to work without changing any other
+ action files, unless you already added lots of taggers yourself. If you are using taggers that cause problems, you
+ might have to temporary disable them for Privoxy's CGI pages.</p>
+ <p style="margin-left:11%; margin-top: 1em">Some of the regression tests rely on Privoxy features that may be
+ disabled in your configuration. Tests with a level below 7 are supposed to work with all Privoxy configurations
+ (provided you didn't build with FEATURE_GRACEFUL_TERMINATION).</p>
+ <p style="margin-left:11%; margin-top: 1em">Tests with level 9 require Privoxy to deliver the User Manual, tests with
+ level 12 require the CGI editor to be enabled.</p><a name="CAVEATS" id="CAVEATS"></a>
+ <h2>CAVEATS</h2>
+ <p style="margin-left:11%; margin-top: 1em">Expect the configuration file syntax to change with future
+ releases.</p><a name="LIMITATIONS" id="LIMITATIONS"></a>
+ <h2>LIMITATIONS</h2>
+ <p style="margin-left:11%; margin-top: 1em">As Privoxy's <b>show−request</b> page only shows client headers,
+ Privoxy−Regression−Test can't use it to test Privoxy actions that modify server headers.</p>
+ <p style="margin-left:11%; margin-top: 1em">As Privoxy−Regression−Test relies on Privoxy's tag feature to
+ control the actions to test, it currently only works with Privoxy 3.0.7 or later.</p>
+ <p style="margin-left:11%; margin-top: 1em">At the moment Privoxy−Regression−Test fetches Privoxy's
+ configuration page through <i>curl</i>(1), therefore you have to have <i>curl</i> installed, otherwise you won't be
+ able to run Privoxy−Regression−Test in a meaningful way.</p><a name="SEE ALSO"></a>
+ <h2>SEE ALSO</h2>
+ <p style="margin-left:11%; margin-top: 1em"><b>privoxy</b>(8) <b>curl</b>(1)</p><a name="AUTHOR" id="AUTHOR"></a>
+ <h2>AUTHOR</h2>
+ <p style="margin-left:11%; margin-top: 1em">Fabian Keil <fk at fabiankeil.de></p>
+ <hr>
+</body>
+</html>
diff --git a/doc/webserver/man-page/uagen.1.html b/doc/webserver/man-page/uagen.1.html
new file mode 100644
index 00000000..54d4d636
--- /dev/null
+++ b/doc/webserver/man-page/uagen.1.html
@@ -0,0 +1,147 @@
+<!-- Creator : groff version 1.19.2 -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+ <meta name="generator" content="groff -Thtml, see www.gnu.org">
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="Content-Style" content="text/css">
+ <style type="text/css">
+ p { margin-top: 0; margin-bottom: 0; }
+ pre { margin-top: 0; margin-bottom: 0; }
+ table { margin-top: 0; margin-bottom: 0; }
+ </style>
+ <title>UAGEN</title>
+</head>
+<body>
+ <h1 align="center">UAGEN</h1><a href="#NAME">NAME</a><br>
+ <a href="#SYNOPSIS">SYNOPSIS</a><br>
+ <a href="#DESCRIPTION">DESCRIPTION</a><br>
+ <a href="#OPTIONS">OPTIONS</a><br>
+ <a href="#PRIVOXY%20CONFIGURATION">PRIVOXY CONFIGURATION</a><br>
+ <a href="#EXAMPLES">EXAMPLES</a><br>
+ <a href="#CAVEATS">CAVEATS</a><br>
+ <a href="#BUGS">BUGS</a><br>
+ <a href="#SEE%20ALSO">SEE ALSO</a><br>
+ <a href="#AUTHOR">AUTHOR</a><br>
+ <hr>
+ <a name="NAME" id="NAME"></a>
+ <h2>NAME</h2>
+ <p style="margin-left:11%; margin-top: 1em">uagen − A Firefox User−Agent generator for Privoxy and
+ Mozilla browsers</p><a name="SYNOPSIS" id="SYNOPSIS"></a>
+ <h2>SYNOPSIS</h2>
+ <p style="margin-left:11%; margin-top: 1em"><b>uagen</b> [<b>−−action−file</b> <i>action_file</i>]
+ [<b>−−action−injection</b>] [<b>−−browser−release−date</b>
+ <i>browser_release_date</i>] [<b>−−browser−revision</b> <i>browser_revision</i>]
+ [<b>−−browser−version</b> <i>browser_version</i>]
+ [<b>−−clean−prefs−file</b>] [<b>−−help</b>]
+ [<b>−−language−overwrite</b> <i>language(s)</i>] [<b>−−logfile</b> <i>logfile</i>]
+ [<b>−−loop</b>] [<b>−−no−action−file</b>] [<b>−−no−logfile</b>]
+ [<b>−−prefs−file</b> <i>prefs_file</i>] [<b>−−randomize−release−date</b>]
+ [<b>−−quiet</b>] [<b>−−sleeping−time</b> <i>minutes</i>] [<b>−−silent</b>]
+ [<b>−−version</b>]</p><a name="DESCRIPTION" id="DESCRIPTION"></a>
+ <h2>DESCRIPTION</h2>
+ <p style="margin-left:11%; margin-top: 1em"><b>uagen</b> generates a fake Firefox User−Agent and writes it into
+ a Privoxy action file as parameter for Privoxy's <b>hide−user−agent</b> action. Operating system,
+ architecture, platform, language and, optionally, the build date are randomized.</p>
+ <p style="margin-left:11%; margin-top: 1em">The generated language is also used as parameter for the
+ <b>hide−accept−language</b> action which is understood by Privoxy since version 3.0.5 beta.</p>
+ <p style="margin-left:11%; margin-top: 1em">Additionally the User−Agent can be written into prefs.js files
+ which are used by many Mozilla browsers.</p><a name="OPTIONS" id="OPTIONS"></a>
+ <h2>OPTIONS</h2>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−action−file</b> <i>action_file</i> Privoxy action
+ file to write the generated actions into. Default is /etc/privoxy/user−agent.action.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−action−injection</b> Don't generate a new action
+ file from scratch, but read an old one and just replace the action values. Useful to keep custom URL patterns. For
+ this to work, the action file has to be already present. <b>uagen</b> neither checks the syntax nor cares if all
+ actions are present. Garbage in, garbage out.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−browser−release−date</b>
+ <i>browser_release_date</i> Date to use. The format is YYYYMMDD. Some sanity checks are done, but you shouldn't rely
+ on them. Note that the Mozilla project has frozen the "Gecko token" starting with Firefox 4 so using a
+ different one than the default is somewhat suspicious.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−browser−revision</b> <i>browser_revision</i> Use a
+ custom revision. <b>uagen</b> will use it without any sanity checks.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−browser−version</b> <i>browser_version</i> Use a
+ custom browser version. <b>uagen</b> will use it without any sanity checks.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−clean−prefs−file</b> The <i>prefs_file</i>
+ is read and the variables <b>general.useragent.override</b> and <b>intl.accept_languages</b> are removed. Only
+ effective if <i>prefs_file</i> is set, and only useful if you want to use the browser's defaults again.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−help</b> List command line options and exit.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−language−overwrite</b> <i>language(s)</i> Comma
+ separated list of language codes to overwrite the default values. <b>uagen</b> chooses one of them for the generated
+ User−Agent, by default the chosen language in lower cases is also used as
+ <b>hide−accept−language</b> parameter.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−logfile</b> <i>logfile</i> Logfile to save error
+ messages and the generated User−Agents. Default is /var/log/uagen.log.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−loop</b> Don't exit after the generation of the action
+ file. Sleep for a while and generate a new one instead. Useful if you don't have <b>cron</b>(8).</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−no−logfile</b> Don't log anything.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−no−action−file</b> Don't write the action
+ file.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−no−hide−accept−language</b> Stay
+ compatible with Privoxy 3.0.3 and don't generate the <b>hide−accept−language</b> action line. You should
+ really update your Privoxy version instead.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−prefs−file</b> <i>prefs_file</i> Use the generated
+ User−Agent to set the <b>general.useragent.override</b> variable in the Mozilla preference file
+ <i>prefs_file</i>, The <b>intl.accept_languages</b> variable will be set as well.</p>
+ <p style="margin-left:11%; margin-top: 1em">Firefox's preference file is usually located in
+ ~/.mozilla/firefox/*.default/prefs.js. Note that Firefox doesn't reread the file once it is running.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−randomize−release−date</b> Randomly pick a
+ date between the configured release date and the actual date. Note that Firefox versions after 4.0 no longer provide
+ the build date in the User−Agent header, so if you randomize the date anyway, it will be obvious that the
+ generated User−Agent is fake.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−quiet</b> Don't print the generated User−Agent to
+ the console.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−sleeping−time</b> <i>minutes</i> Time to sleep.
+ Only effective if used with <b>−−loop</b>.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−silent</b> Don't print the generated User−Agent to
+ the console.</p>
+ <p style="margin-left:11%; margin-top: 1em"><b>−−version</b> Print version and exit.</p>
+ <p style="margin-left:11%; margin-top: 1em">The second dash is optional, options can be shortened, as long as there
+ are no ambiguities.</p><a name="PRIVOXY CONFIGURATION"></a>
+ <h2>PRIVOXY CONFIGURATION</h2>
+ <p style="margin-left:11%; margin-top: 1em">In Privoxy's configuration file the line:</p>
+ <pre style="margin-left:11%; margin-top: 1em"> actionsfile user−agent.action</pre>
+ <p style="margin-left:11%; margin-top: 1em">should be added after:</p>
+ <pre style="margin-left:11%; margin-top: 1em"> actionfile default.action</pre>
+ <p style="margin-left:11%; margin-top: 1em">and before:</p>
+ <pre style="margin-left:11%; margin-top: 1em"> actionfile user.action</pre>
+ <p style="margin-left:11%; margin-top: 1em">This way the user can still use custom User−Agents in
+ <i>user.action</i>. <i>user−agent</i> has to be the name of the generated action file.</p>
+ <p style="margin-left:11%; margin-top: 1em">If you are using Privoxy 3.0.6 or earlier, don't add the
+ ".action" extension.</p><a name="EXAMPLES" id="EXAMPLES"></a>
+ <h2>EXAMPLES</h2>
+ <p style="margin-left:11%; margin-top: 1em">Without any options, <b>uagen</b> creates an action file like:</p>
+ <pre style="margin-left:11%; margin-top: 1em"> {+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} \
+ }
+ /</pre>
+ <p style="margin-left:11%; margin-top: 1em">with the −−no−accept−language option the
+ generated file could look like this one:</p>
+ <pre style=
+ "margin-left:11%; margin-top: 1em"> {+hide−user−agent{Mozilla/5.0 (X11; U; FreeBSD i386; de−DE; rv:1.8.0.4) Gecko/20060720 Firefox/1.5.0.4} \
+ }
+ /</pre><a name="CAVEATS" id="CAVEATS"></a>
+ <h2>CAVEATS</h2>
+ <p style="margin-left:11%; margin-top: 1em">Use the https−inspection action to make sure Privoxy can modify the
+ browser's headers for encrypted traffic as well.</p>
+ <p style="margin-left:11%; margin-top: 1em">Mozilla users can alter the browser's User−Agent with the
+ <b>−−prefs−file</b> option. But note that the preference file is only read on startup. If the
+ browser is already running, <b>uagen's</b> changes will be ignored.</p>
+ <p style="margin-left:11%; margin-top: 1em">Hiding the User−Agent is pointless if the browser accepts all
+ cookies or even is configured for remote maintenance through Flash, JavaScript, Java or similar security
+ problems.</p><a name="BUGS" id="BUGS"></a>
+ <h2>BUGS</h2>
+ <p style="margin-left:11%; margin-top: 1em">Some parameters can't be specified at the command line.</p><a name=
+ "SEE ALSO"></a>
+ <h2>SEE ALSO</h2>
+ <p style="margin-left:11%; margin-top: 1em"><b>privoxy</b>(8)</p><a name="AUTHOR" id="AUTHOR"></a>
+ <h2>AUTHOR</h2>
+ <p style="margin-left:11%; margin-top: 1em">Fabian Keil <fk at fabiankeil.de></p>
+ <p style="margin-left:11%; margin-top: 1em">https://www.fabiankeil.de/sourcecode/uagen/</p>
+ <p style="margin-left:11%; margin-top: 1em">
+ https://www.fabiankeil.de/blog−surrogat/2006/01/26/firefox−user−agent−generator.html
+ (German)</p>
+ <hr>
+</body>
+</html>
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Privoxy-commits
mailing list