##########################################################
#
# 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 DEPENDENT 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>
         For additional statistics you may want to look into Privoxy-Log-Parser's --statistics option.
<!-- 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 <a href="https://github.com/google/brotli">brotli library</a>.</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(2) library (recommended).</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.</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 <a href="https://zlib.net/">zlib library</a>.</td>
            </tr>
            <tr>
              <td><code>FEATURE_ZSTD</code></td>
              <td>@if-FEATURE_ZSTD-then@ Yes @else-not-FEATURE_ZSTD@ No @endif-FEATURE_ZSTD@</td>
              <td>Allows to decompress Zstandard-compressed content for filtering.
                Requires external <a href="https://facebook.github.io/zstd/">zstd library</a>.</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>
