-const char cgi_rcs[] = "$Id: cgi.c,v 1.28 2001/09/19 18:00:37 oes Exp $";
+const char cgi_rcs[] = "$Id: cgi.c,v 1.29 2001/09/20 15:47:44 steudten Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/cgi.c,v $
*
* Revisions :
* $Log: cgi.c,v $
+ * Revision 1.29 2001/09/20 15:47:44 steudten
+ *
+ * Fix BUG: Modify int size to size_t size in fill_template()
+ * - removes big trouble on machines where sizeof(int) != sizeof(size_t).
+ *
* Revision 1.28 2001/09/19 18:00:37 oes
* - Deletef time() FIXME (Can't fail under Linux either, if
* the argument is guaranteed to be in out address space,
12, cgi_edit_actions,
"HIDE Edit the actions for (a) specified URL(s)" },
#endif /* def FEATURE_CGI_EDIT_ACTIONS */
+ { "show-request",
+ 12, cgi_show_request,
+ "Show the client's request headers." },
{ "",
0, cgi_default,
"Junkbuster main page" },
-const char cgisimple_rcs[] = "$Id: cgisimple.c,v 1.2 2001/09/19 18:01:11 oes Exp $";
+const char cgisimple_rcs[] = "$Id: cgisimple.c,v 1.3 2001/09/22 16:34:44 jongfoster Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/cgisimple.c,v $
*
* Revisions :
* $Log: cgisimple.c,v $
+ * Revision 1.3 2001/09/22 16:34:44 jongfoster
+ * Removing unneeded #includes
+ *
* Revision 1.2 2001/09/19 18:01:11 oes
* Fixed comments; cosmetics
*
#include "actions.h"
#include "miscutil.h"
#include "loadcfg.h"
+#include "parsers.h"
const char cgisimple_h_rcs[] = CGISIMPLE_H_VERSION;
{
char *p;
char *tmp = NULL;
- struct map * exports = default_exports(csp, "");
+ struct map *exports = default_exports(csp, "");
/* If there were other parameters, export a dump as "cgi-parameters" */
if(parameters)
}
+/*********************************************************************
+ *
+ * Function : cgi_show_request
+ *
+ * Description : Show the client's request and what sed() would have
+ * made of it.
+ *
+ * Parameters :
+ * 1 : csp = Current client state (buffers, headers, etc...)
+ * 2 : rsp = http_response data structure for output
+ * 3 : parameters = map of cgi parameters
+ *
+ * Returns : 0
+ *
+ *********************************************************************/
+int cgi_show_request(struct client_state *csp, struct http_response *rsp,
+ struct map *parameters)
+{
+ char *p;
+ struct map *exports = default_exports(csp, "show-request");
+
+ /*
+ * Repair the damage done to the IOB by get_header()
+ */
+ for (p = csp->iob->buf; p < csp->iob->eod; p++)
+ {
+ if (*p == '\0') *p = '\n';
+ }
+
+ /*
+ * Export the original client's request and the one we would
+ * be sending to the server if this wasn't a CGI call
+ */
+ map(exports, "client-request", 1, csp->iob->buf, 1);
+ map(exports, "processed-request", 1, sed(client_patterns, add_client_headers, csp), 0);
+
+ rsp->body = template_load(csp, "show-request");
+ template_fill(&rsp->body, exports);
+ free_map(exports);
+ return(0);
+
+}
+
+
/*********************************************************************
*
* Function : cgi_send_banner
#ifndef CGISIMPLE_H_INCLUDED
#define CGISIMPLE_H_INCLUDED
-#define CGISIMPLE_H_VERSION "$Id: cgi.h,v 1.15 2001/09/16 15:02:35 jongfoster Exp $"
+#define CGISIMPLE_H_VERSION "$Id: cgisimple.h,v 1.1 2001/09/16 17:08:54 jongfoster Exp $"
/*********************************************************************
*
- * File : $Source: /cvsroot/ijbswa/current/cgi.h,v $
+ * File : $Source: /cvsroot/ijbswa/current/cgisimple.h,v $
*
* Purpose : Declares functions to intercept request, generate
* html or gif answers, and to compose HTTP resonses.
* Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* Revisions :
- * $Log: cgi.h,v $
+ * $Log: cgisimple.h,v $
+ * Revision 1.1 2001/09/16 17:08:54 jongfoster
+ * Moving simple CGI functions from cgi.c to new file cgisimple.c
+ *
*
**********************************************************************/
\f
extern int cgi_show_version (struct client_state *csp,
struct http_response *rsp,
struct map *parameters);
+extern int cgi_show_request (struct client_state *csp,
+ struct http_response *rsp,
+ struct map *parameters);
/* Revision control strings from this header and associated .c file */
extern const char cgisimple_rcs[];
--- /dev/null
+##########################################################
+#
+# Show-Request-CGI Output template for junkbuster 2.9.x.
+#
+#
+# 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 Junkbuster.
+#
+# - 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 this proxy
+# my-hostname:
+# The hostname associated with my-ip-addr
+# admin-address:
+# The email address of the pxoxy's administrator, as configured
+# in the config file
+# default-cgi:
+# The URL for the "main menu" builtin CGI of this proxy
+# menu:
+# List of <li> elements linking to the other available CGIs
+# version:
+# The version number of the proxy software
+# code-status:
+# The development status of the proxy software: "alpha", "beta",
+# or "stable".
+# homepage:
+# The URL of the SourceForge ijbswa project, who maintains this
+# software.
+# client-request:
+# The request and headers that the client sent.
+# processed-request:
+# What we would have rewritten this request to, if this had not
+# been intercepted.
+#
+# CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
+# ------------------------------------------------------------------
+#
+# unstable:
+# this is an alpha or beta release of the proxy software
+# have-proxy-info:
+# A URL for online documentation about this proxy has been
+# specified and is available through the "proxy-info-url"
+# symbol
+#
+<html>
+
+<head>
+ <title>Junkbuster@@my-hostname@</title>
+ <style type="text/css">
+ BODY, P, H1, H2, UL, OL, LI { font-family: Helvetica, Helv, Arial, Sans-Serif, sans-serif }
+ </style>
+</head>
+
+<body bgcolor="#ffffff">
+
+ <table cellpadding=20 cellspacing=10 border=0 width=100%>
+ <tr>
+ <td bgcolor=#dddddd>
+ <p><font size=+2><b>This is the Internet J</b></font><font size=+1><b>UNK<i></font><font color="red">BUSTER</font></i></b>
+ <font size=+2><b>@version@ on @my-hostname@ (@my-ip-address@), port @my-port@</b></font></p>
+ </td>
+ </tr>
+
+<!-- @if-unstable-start -->
+# This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in
+ <tr>
+ <td bgcolor=#ffdddd>
+ <p><b>Please note that this <font color=red>@code-status@</font> release
+ of the proxy software is not intended for production systems!
+ <br>Use at your own risk. See the <a href="http://www.gnu.org/copyleft/gpl.html">license</a> for details.</b>
+ </p>
+
+ <p>Feel free to <a href=mailto:ijbswa-developers@lists.sourceforge.net>mail the developers</a>
+ with any problems you encounter.
+ </p>
+ </td>
+ </tr>
+<!-- if-unstable-end@ -->
+
+ <tr>
+ <td bgcolor=#eeeeee>
+ <h2>Show-Request</h2>
+ <blockquote>
+ Here you see the original headers that your client sent when requesting this page, along with
+ the headers that JunkBuster would have sent to the remote server if this request hadn't been
+ intercepted.
+ </blockquote>
+
+ <h3>Original Client Request:</h3>
+ <blockquote>
+ <pre>@client-request@</pre>
+ </blockquote>
+
+ <h3>Processed Request:</h3>
+ <blockquote>
+ <pre>@processed-request@</pre>
+ </blockquote>
+ </td>
+ </tr>
+
+ <tr>
+ <td bgcolor=#dddddd>
+ <h2>More Junkbuster:</h2>
+ <ul>@menu@</ul>
+ </td>
+ </tr>
+
+ <tr>
+ <td bgcolor=#dddddd>
+ <p>If you have any questions about this service,
+
+<!-- @if-have-proxy-info-start -->
+ consult the <a href="@proxy-info-url@">online documentation</a> or
+<!-- if-have-proxy-info-end@ -->
+
+ <a href=mailto:@admin-address@>send mail to <code>@admin-address@</code></a>
+ who will be glad to help you.
+ </p>
+ </td>
+ </tr>
+ </table>
+
+</body>
+</html>