-const char cgisimple_rcs[] = "$Id: cgisimple.c,v 1.49 2007/01/20 16:29:38 fabiankeil Exp $";
+const char cgisimple_rcs[] = "$Id: cgisimple.c,v 1.50 2007/01/23 15:51:17 fabiankeil Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/cgisimple.c,v $
*
* Revisions :
* $Log: cgisimple.c,v $
+ * Revision 1.50 2007/01/23 15:51:17 fabiankeil
+ * Add favicon delivery functions.
+ *
* Revision 1.49 2007/01/20 16:29:38 fabiankeil
* Suppress edit buttons for action files if Privoxy has
* no write access. Suggested by Roland in PR 1564026.
}
}
- matches = strdup("<table class=\"transparent\">");
+ matches = strdup("<table summary=\"\" class=\"transparent\">");
for (i = 0; i < MAX_AF_FILES; i++)
{
{
string_append(&matches, "<tr><td>{");
string_join (&matches, actions_to_html(csp, b->action));
- string_append(&matches, " }</b><br>\n<code>");
+ string_append(&matches, " }<br>\n<code>");
string_join (&matches, html_encode(b->url->spec));
string_append(&matches, "</code></td></tr>\n");
}
string_append(&matches, "</table>\n");
+ /*
+ * Fill in forwarding settings.
+ *
+ * The possibilities are:
+ * - no forwarding
+ * - http forwarding only
+ * - socks4(a) forwarding only
+ * - socks4(a) and http forwarding.
+ *
+ * XXX: Parts of this code could be reused for the
+ * "forwarding-failed" template which currently doesn't
+ * display the proxy port and an eventuell second forwarder.
+ */
+ {
+ const struct forward_spec * fwd = forward_url(url_to_query, csp);
+
+ if ((fwd->gateway_host == NULL) && (fwd->forward_host == NULL))
+ {
+ if (!err) err = map_block_killer(exports, "socks-forwarder");
+ if (!err) err = map_block_killer(exports, "http-forwarder");
+ }
+ else
+ {
+ char port[10]; /* We save proxy ports as int but need a string here */
+
+ if (!err) err = map_block_killer(exports, "no-forwarder");
+
+ if (fwd->gateway_host != NULL)
+ {
+ if (!err) err = map(exports, "socks-type", 1, (fwd->type == SOCKS_4) ?
+ "socks4" : "socks4a", 1);
+ if (!err) err = map(exports, "gateway-host", 1, fwd->gateway_host, 1);
+ snprintf(port, sizeof(port), "%d", fwd->gateway_port);
+ if (!err) err = map(exports, "gateway-port", 1, port, 1);
+ }
+ else
+ {
+ if (!err) err = map_block_killer(exports, "socks-forwarder");
+ }
+
+ if (fwd->forward_host != NULL)
+ {
+ if (!err) err = map(exports, "forward-host", 1, fwd->forward_host, 1);
+ snprintf(port, sizeof(port), "%d", fwd->forward_port);
+ if (!err) err = map(exports, "forward-port", 1, port, 1);
+ }
+ else
+ {
+ if (!err) err = map_block_killer(exports, "http-forwarder");
+ }
+ }
+ }
+
free_http_request(url_to_query);
- if (matches == NULL)
+ if (err || matches == NULL)
{
free_current_action(action);
free_map(exports);
-##########################################################
+########################################################################
#
-# Show-Url-Info-CGI Output template for Privoxy.
+# File : $Source:$
#
+# Purpose : Template for Privoxy's show-url-info CGI page.
#
+# Copyright : Written by and Copyright (C) 2001-2007 the SourceForge
+# Privoxy team. http://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/copyleft/gpl.html
+# or write to the Free Software Foundation, Inc., 59
+# Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# Revisions :
+# $Log: show-url-info,v $
+#
+#########################################################################
# USING HTML TEMPLATES:
# ---------------------
#
# --------------------------------
#
# my-ip-addr:
-# The IP-address that the client used to reach this proxy
+# 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 pxoxy's administrator, as configured
+# The email address of the Privoxy administrator, as configured
# in the config file
# default-cgi:
-# The URL for the "main menu" builtin CGI of this proxy
+# The URL for Privoxy's "main menu" builtin CGI page
# menu:
# List of <li> elements linking to the other available CGIs
# version:
-# The version number of the proxy software
+# Privoxy's version number
# code-status:
-# The development status of the proxy software: "alpha", "beta",
-# or "stable".
+# Privoxy's development status: "alpha", "beta", or "stable".
# homepage:
-# The URL of the SourceForge ijbswa project, who maintains this
-# software.
+# The Privoxy web site.
#
# CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
# ------------------------------------------------------------------
# final:
# The actions that are associated with the URL at the end of
# the matching process
+# no-forwarder: Requests to url will be made directly.
+# http-forwarder:
+# Requests to url will be made through a HTTP proxy
+# forward-host:
+# The IP address or its hostname
+# forward-port.
+# The proxy port
+# socks-forwarder:
+# Requests to url will be made through a socks proxy
+# socks-type:
+# The socks type: socks4 or socks4a
+# gateway-host:
+# The IP address or its hostname
+# gateway-port:
+# The proxy port.
#
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<!-- if-unstable-end@ -->
<!-- @if-url-given-start -->
+ <tr>
+ <td class="box">
+ <h2>Forwarding settings:</h2>
+ <p>
+ Requests for <a href="@url@">@url@</a> will be <!--
+
+# "Interesting" formatting to prevent white space at the end of the sentence..
+
+ @if-no-forwarder-start -->
+
+ made <b>directly</b>, no forwarding settings apply<!--
+
+ if-no-forwarder-end@--><!--
+ @if-http-forwarder-start --><!-- @if-socks-forwarder-start -->
+
+ first <!--
+
+ if-socks-forwarder-end@ --><!-- if-http-forwarder-end@ --><!--
+ @if-socks-forwarder-start -->
+
+ forwarded through <b>@socks-type@-proxy @gateway-host@:@gateway-port@</b><!--
+
+ if-socks-forwarder-end@ --><!--
+ @if-http-forwarder-start --><!-- @if-socks-forwarder-start -->
+
+ and then <!--
+
+ if-socks-forwarder-end@ --><!-- if-http-forwarder-end@ --><!--
+ @if-http-forwarder-start -->
+
+ forwarded through <b>HTTP-proxy @forward-host@:@forward-port@</b><!--
+
+ if-http-forwarder-end@ -->.
+ </td>
+ </tr>
<tr>
<td class="box">
<!-- @if-https-start -->
<p> </p>
<!-- if-https-end@ -->
<h2>Matches for <a href="@url@">@url@</a>:</h2>
- <p>@matches@</p>
+ @matches@
</td>
</tr>