##########################################################
#
# Show-Status-CGI Output template for Privoxy.
#
# USING HTML TEMPLATES:
# ---------------------
#
# Template files are written win plain HTML, with a few
# additions:
#
# - Lines that start with a '#' character like this one
#   are ignored
#
# - Each item in the below list of exported symbols will
#   be replaced by dynamically generated text, if they
#   are enclosed in '@'-characters. E.g. The string @version@
#   will be replaced by the version number of Privoxy.
#
# - One special application of this is to make whole blocks
#   of the HTML template disappear if the condition <name>
#   is not given. Simply enclose the block between the two
#   strings @if-<name>start and if-<name>-end@. The strings
#   should be placed in HTML comments (<!-- -->), so the
#   html structure won't be messed when the magic happens.
#
# USABLE SYMBOLS IN THIS TEMPLATE:
# --------------------------------
#
#  my-ip-addr:
#    The IP-address that the client used to reach Privoxy
#  my-hostname:
#    The hostname associated with my-ip-addr
#  admin-address:
#    The email address of the Privoxy administrator, as configured
#    in the config file
#  default-cgi:
#    The URL for the "main menu" builtin CGI of Privoxy
#  menu:
#    List of <li> elements linking to the other available CGIs
#  version:
#    The Privoxy version number
#  code-status:
#    The Privoxy development status: "alpha", "beta", or "stable".
#  homepage:
#    The URL of the Privoxy project, which maintains this software.
#
#  invocation:
#    The command line with which Privoxy was invoked
#  options:
#    The options read from the configfile, linked to their
#    explanations, plus warnings if parsing acl or forward
#    statements produced errors.
#  defines:
#    A HTML-formatted list of all conditional #defines used when
#    Privoxy was compiled
#
#
# CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
# ------------------------------------------------------------------
#
#  unstable:
#    This is an alpha or beta Privoxy release
#  have-adminaddr-info:
#    An e-mail address for the local Privoxy administrator has
#    been specified and is available through the "admin-address"
#    symbol
#  have-proxy-info:
#    A URL for Privoxy's online documentation has been
#    specified and is available through the "proxy-info-url"
#    symbol
#  have-help-info:
#    If either have-proxy-info is true or have-adminaddr-info is
#    true, have-help-info is true.  Used to conditionally include
#    a grey box for any and all help info.
#  statistics:
#    Privoxy was compiled with statistics support
#  have-stats:
#    There have been previous requests and statistics have
#    been collected. In this case, the following symbols
#    are available:
#    requests-received:
#      The number of requests received so far
#    requests-blocked:
#      The number of request blocked so far
#    percent-blocked:
#      The percentage of blocked requests
#  have-no-stats:
#    There haven't any statistics been collected yet
#  extended-statistics:
#    Privoxy was compiled with extended statistiscs support.
#    In this case the following symbols are available:
#    block-reason-statistics:
#      Table content of block reasons and how often they were used.
#    filter-statistics:
#      Table content of content filter statistics.
#  trust-support:
#    Privoxy was compiled with trust support
#  actions-filenames:
#    The path to the actions files.
#  re-filter-filenames:
#    The path to the re_filter files.
#  trust-filename:
#    The path to the trust file. Only available if
#    trust-support is set
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>

<head>
  <title>Privoxy@@my-hostname@: Proxy Status</title>
  <meta http-equiv="Content-Style-Type" content="text/css">
  <meta http-equiv="Content-Script-Type" content="text/javascript">
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <meta name="robots" content="noindex,nofollow">
  <link rel="stylesheet" type="text/css" href="@default-cgi@send-stylesheet">
  <link rel="shortcut icon" href="@default-cgi@favicon.ico" type="image/x-icon">
</head>

<body>

  <table summary="" cellpadding="20" cellspacing="10" border="0" width="100%">
    <tr>
      <td class="title">

#include mod-title

      </td>
    </tr>

<!-- @if-unstable-start -->
# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
    <tr>
      <td class="warning">

#include mod-unstable-warning

      </td>
    </tr>
<!-- if-unstable-end@ -->

    <tr>
      <td class="box">
        <h2>The following files are in use:</h2>
        <table summary="Action, filter and trust files in use." class="transparent">
          <tr>
            <th colspan="2"><a href="@user-manual@@actions-help-prefix@ACTIONS-FILE">Actions Files:</a></th>
          </tr>
            @actions-filenames@
          <tr>
            <th colspan="2"><a href="@user-manual@filter-file.html">Filter Files:</a></th>
          </tr>
            @re-filter-filenames@
<!-- @if-trust-support-start -->
          <tr>
            <th colspan="2"><a href="@user-manual@config.html#TRUSTFILE">Trust File:</a></th>
          </tr>
          <tr>
            <td>
              @trust-filename@
            </td>
            <td class="buttons">
              <!-- @if-have-trustfile-start -->
              <a href="show-status?file=trust">View</a>
              <!-- if-have-trustfile-end@ -->
            </td>
          </tr>
<!-- if-trust-support-end@ -->
        </table>
<!-- @if-cgi-editor-is-disabled-start -->
        <p>
          The CGI editor is currently disabled, thus no edit buttons are shown.<br>
          Please have a look at the
           <a href="@user-manual@config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions documentation</a>
          to learn how to enable it and what the risks are.
        </p>
<!--  if-cgi-editor-is-disabled-end@ -->
      </td>
    </tr>

    <tr>
      <td class="box">
        <h2>Privoxy was <a href="@user-manual@startup.html#CMDOPTIONS">invoked</a> as follows:</h2>
        <p>@invocation@</p>
      </td>
    </tr>

    <tr>
      <td class="box">
        <h2>The following options were given in the <a href="@user-manual@config.html">config file</a>:</h2>
        <p>@options@</p>
      </td>
    </tr>

<!-- @if-statistics-start -->
    <tr>
      <td class="box">
        <h2>Blocking Statistics:</h2>
        <p>
  <!-- @if-have-stats-start -->
          @requests-blocked@ out of @requests-received@ requests have been blocked,
          which equals a block rate of @percent-blocked@%.
        </p>
        <p>
          <strong>Note that the statistics currently don't work properly for
          reused connections where only the last request gets counted.
          You may want to look into Privoxy-Log-Parser's --statistics option,
          which doesn't have this limitation.</strong>
<!-- if-have-stats-end@ -->
<!-- @if-have-no-stats-start -->
          There haven't been any requests so far.
<!-- if-have-no-stats-end@ -->
        </p>
      </td>
    </tr>
<!-- if-statistics-end@ -->

<!-- @if-extended-statistics-start -->
    <tr>
      <td class="box">
        <h2>Block Reason Statistics:</h2>
        <table summary="Statistics for block reasons" border="1">
         <tr><th>Block reason</th><th>Count</th></tr>
@block-reason-statistics@        </table>
      </td>
    </tr>
    <tr>
      <td class="box">
        <h2>Content Filter Statistics:</h2>
        <table summary="Statistics for content filters" border="1">
         <tr><th>Filter name</th><th>Executions</th><th>Response bodies modified</th><th>Hits</th></tr>
@filter-statistics@        </table>
      </td>
    </tr>
<!-- if-extended-statistics-end@ -->

    <tr>
      <td class="box">
        <h2>Conditional #defines:</h2>
          <table summary="The state of some ./configure options and what they do." border="1" style="margin-left: 10px">
            <tr>
              <th>#define</th> <th>Enabled?</th> <th>Effects when enabled</th>
            </tr>

            <tr>
              <td><code>FEATURE_64_BIT_TIME_T</code></td>
              <td>@if-FEATURE_64_BIT_TIME_T-then@ Yes @else-not-FEATURE_64_BIT_TIME_T@ No @endif-FEATURE_64_BIT_TIME_T@</td>
              <td>Dates before 1970 and after 2038 are (hopefully) supported.</td>
            </tr>
            <tr>
              <td><code>FEATURE_ACCEPT_FILTER</code></td>
              <td>@if-FEATURE_ACCEPT_FILTER-then@ Yes @else-not-FEATURE_ACCEPT_FILTER@ No @endif-FEATURE_ACCEPT_FILTER@</td>
              <td>Support for FreeBSD's accf_http(9) which is also available on some other BSDs.</td>
            </tr>
            <tr>
              <td><code>FEATURE_ACL</code></td>
              <td>@if-FEATURE_ACL-then@ Yes @else-not-FEATURE_ACL@ No @endif-FEATURE_ACL@</td>
              <td>Allows the use of an ACL to control access to Privoxy by IP address.</td>
            </tr>
            <tr>
              <td><code>FEATURE_BROTLI</code></td>
              <td>@if-FEATURE_BROTLI-then@ Yes @else-not-FEATURE_BROTLI@ No @endif-FEATURE_BROTLI@</td>
              <td>Allows to decompress content with Brotli before filtering it. Requires external brotli library.</td>
            </tr>
            <tr>
              <td><code>FEATURE_CGI_EDIT_ACTIONS</code></td>
              <td>@if-FEATURE_CGI_EDIT_ACTIONS-then@ Yes @else-not-FEATURE_CGI_EDIT_ACTIONS@ No @endif-FEATURE_CGI_EDIT_ACTIONS@</td>
              <td>Allows the use of the @if-FEATURE_CGI_EDIT_ACTIONS-then@<a
                 href="@default-cgi@edit-actions">@else-not-FEATURE_CGI_EDIT_ACTIONS@
                 @endif-FEATURE_CGI_EDIT_ACTIONS@web-based actions file
                 editor@if-FEATURE_CGI_EDIT_ACTIONS-then@</a>@else-not-FEATURE_CGI_EDIT_ACTIONS@@endif-FEATURE_CGI_EDIT_ACTIONS@.</td>
            </tr>
            <tr>
              <td><code>FEATURE_CLIENT_TAGS</code></td>
              <td>@if-FEATURE_CLIENT_TAGS-then@ Yes @else-not-FEATURE_CLIENT_TAGS@ No @endif-FEATURE_CLIENT_TAGS@</td>
              <td>
               Allows clients to request to be tagged.
              </td>
            </tr>
            <tr>
              <td><code>FEATURE_COMPRESSION</code></td>
              <td>@if-FEATURE_COMPRESSION-then@ Yes @else-not-FEATURE_COMPRESSION@ No @endif-FEATURE_COMPRESSION@</td>
              <td>
               Allows to compress buffered content before sending it to the client, assuming the client supports it.
              </td>
            </tr>
            <tr>
              <td><code>FEATURE_CONNECTION_KEEP_ALIVE</code></td>
              <td>@if-FEATURE_CONNECTION_KEEP_ALIVE-then@ Yes @else-not-FEATURE_CONNECTION_KEEP_ALIVE@ No @endif-FEATURE_CONNECTION_KEEP_ALIVE@</td>
              <td>
               Allows to send multiple request through the same connections if the server supports it.
               Requires the keep-alive-timeout config directive to be set.
              </td>
            </tr>
            <tr>
              <td><code>FEATURE_CONNECTION_SHARING</code></td>
              <td>@if-FEATURE_CONNECTION_SHARING-then@ Yes @else-not-FEATURE_CONNECTION_SHARING@ No @endif-FEATURE_CONNECTION_SHARING@</td>
              <td>
               Allows to share outgoing connections between incoming connections.
               Requires the connection-sharing config directive to be set.
              </td>
            </tr>
            <tr>
              <td><code>FEATURE_DYNAMIC_PCRE</code></td>
              <td>@if-FEATURE_DYNAMIC_PCRE-then@ Yes @else-not-FEATURE_DYNAMIC_PCRE@ No @endif-FEATURE_DYNAMIC_PCRE@</td>
              <td>Dynamically link to the PCRE library. This is set automatically
               by <code>./configure</code> if you do not have libpcre installed.
               Dynamically linking to an external libpcre is recommended as the one that is distributed
               with Privoxy itself is outdated and lacks various features and bug-fixes you may be interested in.</td>
            </tr>
            <tr>
              <td><code>FEATURE_EXTENDED_STATISTICS</code></td>
              <td>@if-FEATURE_EXTENDED_STATISTICS-then@ Yes @else-not-FEATURE_EXTENDED_STATISTICS@ No @endif-FEATURE_EXTENDED_STATISTICS@</td>
              <td>Gather statistics for block reasons and filter executions.</td>
            </tr>
            <tr>
              <td><code>FEATURE_EXTERNAL_FILTERS</code></td>
              <td>@if-FEATURE_EXTERNAL_FILTERS-then@ Yes @else-not-FEATURE_EXTERNAL_FILTERS@ No @endif-FEATURE_EXTERNAL_FILTERS@</td>
              <td>
               Allows to <a href="@user-manual@actions-file.html#EXTERNAL-FILTER">filter content
               with external scripts and programs</a> written in any language the system Privoxy
               runs on supports.
              </td>
            </tr>
            <tr>
              <td><code>FEATURE_FAST_REDIRECTS</code></td>
              <td>@if-FEATURE_FAST_REDIRECTS-then@ Yes @else-not-FEATURE_FAST_REDIRECTS@ No @endif-FEATURE_FAST_REDIRECTS@</td>
              <td>Allows the +fast-redirects action, to bypass redirect and logging scripts.</td>
            </tr>
            <tr>
              <td><code>FEATURE_FORCE_LOAD</code></td>
              <td>@if-FEATURE_FORCE_LOAD-then@ Yes @else-not-FEATURE_FORCE_LOAD@ No @endif-FEATURE_FORCE_LOAD@</td>
              <td>
               Allows bypassing all blocking for a single page using the prefix
               <q><code>@force-prefix@</code></q> provided blocks aren't enforced with the
               <a href="@user-manual@config.html#ENFORCE-BLOCKS">enforce-blocks</a> directive.
              </td>
            </tr>
            <tr>
              <td><code>FEATURE_GRACEFUL_TERMINATION</code></td>
              <td>@if-FEATURE_GRACEFUL_TERMINATION-then@ Yes @else-not-FEATURE_GRACEFUL_TERMINATION@ No @endif-FEATURE_GRACEFUL_TERMINATION@</td>
              <td>Allows to shutdown Privoxy through the web interface.</td>
            </tr>
            <tr>
              <td><code>FEATURE_HTTPS_INSPECTION</code></td>
              <td>@if-FEATURE_HTTPS_INSPECTION-then@ Yes @else-not-FEATURE_HTTPS_INSPECTION@ No @endif-FEATURE_HTTPS_INSPECTION@</td>
              <td>Allows to intercept and filter HTTPS traffic. Experimental.</td>
            </tr>
            <tr>
              <td><code>FEATURE_IMAGE_BLOCKING</code></td>
              <td>@if-FEATURE_IMAGE_BLOCKING-then@ Yes @else-not-FEATURE_IMAGE_BLOCKING@ No @endif-FEATURE_IMAGE_BLOCKING@</td>
              <td>Allows the +handle-as-image action, to send <q>blocked</q> images instead of HTML.</td>
            </tr>
            <tr>
              <td><code>FEATURE_IPV6_SUPPORT</code></td>
              <td>@if-FEATURE_IPV6_SUPPORT-then@ Yes @else-not-FEATURE_IPV6_SUPPORT@ No @endif-FEATURE_IPV6_SUPPORT@</td>
              <td>
               Allows IPv6 addresses in incoming requests, when resolving domains to
               IP addresses and in the configuration files.
              </td>
            </tr>
            <tr>
              <td><code>FEATURE_NO_GIFS</code></td>
              <td>@if-FEATURE_NO_GIFS-then@ Yes @else-not-FEATURE_NO_GIFS@ No @endif-FEATURE_NO_GIFS@</td>
              <td>Use PNG instead of GIF for the built-in images.</td>
            </tr>
            <tr>
              <td><code>FEATURE_PCRE_HOST_PATTERNS</code></td>
              <td>@if-FEATURE_PCRE_HOST_PATTERNS-then@ Yes @else-not-FEATURE_PCRE_HOST_PATTERNS@ No @endif-FEATURE_PCRE_HOST_PATTERNS@</td>
              <td>Allow to use extended host patterns and vanilla host patterns
               at the same time by prefixing extended host patterns with
               "PCRE-HOST-PATTERN:".
              </td>
            </tr>
            <tr>
              <td><code>FEATURE_PTHREAD</code></td>
              <td>@if-FEATURE_PTHREAD-then@ Yes @else-not-FEATURE_PTHREAD@ No @endif-FEATURE_PTHREAD@</td>
              <td>Use POSIX threads rather than native threads</td>
            </tr>
            <tr>
              <td><code>FEATURE_STATISTICS</code></td>
              <td>@if-FEATURE_STATISTICS-then@ Yes @else-not-FEATURE_STATISTICS@ No @endif-FEATURE_STATISTICS@</td>
              <td>Enables the statistics function.</td>
            </tr>
            <tr>
              <td><code>FEATURE_STRPTIME_SANITY_CHECKS</code></td>
              <td>@if-FEATURE_STRPTIME_SANITY_CHECKS-then@ Yes @else-not-FEATURE_STRPTIME_SANITY_CHECKS@ No @endif-FEATURE_STRPTIME_SANITY_CHECKS@</td>
              <td>Try to work around broken strptime() implementations.</td>
            </tr>
            <tr>
              <td><code>FEATURE_TOGGLE</code></td>
              <td>@if-FEATURE_TOGGLE-then@ Yes @else-not-FEATURE_TOGGLE@ No @endif-FEATURE_TOGGLE@</td>
              <td>Allow Privoxy to be <q>disabled</q> so it is just a normal non-blocking non-filtering proxy.</td>
            </tr>
            <tr>
              <td><code>FEATURE_TRUST</code></td>
              <td>@if-FEATURE_TRUST-then@ Yes @else-not-FEATURE_TRUST@ No @endif-FEATURE_TRUST@</td>
              <td>Allows the use of trust files.</td>
            </tr>
            <tr>
              <td><code>FEATURE_ZLIB</code></td>
              <td>@if-FEATURE_ZLIB-then@ Yes @else-not-FEATURE_ZLIB@ No @endif-FEATURE_ZLIB@</td>
              <td>Allows to decompress gzip and zlib compressed documents for filtering.
                Requires external zlib library.</td>
            </tr>
          </table>
      </td>
    </tr>

    <tr>
      <td class="box">
        <h2>More Privoxy:</h2>
        <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul>
      </td>
    </tr>

<!-- @if-have-help-info-start -->
    <tr>
      <td class="info">

#include mod-local-help

      </td>
    </tr>
<!-- if-have-help-info-end@ -->

    <tr>
      <td class="info">

#include mod-support-and-service

      </td>
    </tr>

  </table>

</body>
</html>
