- Cleaned up
authoroes <oes@users.sourceforge.net>
Fri, 29 Jun 2001 13:22:44 +0000 (13:22 +0000)
committeroes <oes@users.sourceforge.net>
Fri, 29 Jun 2001 13:22:44 +0000 (13:22 +0000)
- Added new functions: default_exports(), make_menu(),
  error_response() etc, ranamed others and changed
  param and return types.
- Removed HTTP/HTML snipplets
- Removed logentry from cancelled commit

cgi.h

diff --git a/cgi.h b/cgi.h
index 8d7484a..c76696a 100644 (file)
--- a/cgi.h
+++ b/cgi.h
@@ -1,6 +1,6 @@
 #ifndef _CGI_H
 #define _CGI_H
 #ifndef _CGI_H
 #define _CGI_H
-#define CGI_H_VERSION "$Id: cgi.h,v 1.3 2001/06/03 19:12:16 oes Exp $"
+#define CGI_H_VERSION "$Id: cgi.h,v 1.4 2001/06/09 10:50:58 jongfoster Exp $"
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/cgi.h,v $
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/cgi.h,v $
  *
  * Revisions   :
  *    $Log: cgi.h,v $
  *
  * Revisions   :
  *    $Log: cgi.h,v $
+ *    Revision 1.4  2001/06/09 10:50:58  jongfoster
+ *    Changing "show URL info" handler to new style.
+ *    Adding "extern" to some function prototypes.
+ *
  *    Revision 1.3  2001/06/03 19:12:16  oes
  *    introduced new cgi handling
  *
  *    Revision 1.3  2001/06/03 19:12:16  oes
  *    introduced new cgi handling
  *
- *    Revision 1.1  2001/06/03 11:04:49  oes
- *    Makefile/in
- *
- *    introduced cgi.c
- *
- *    actions.c:
- *
- *    adapted to new enlist_unique arg format
- *
- *    conf loadcfg.c
- *
- *    introduced confdir option
- *
- *    filters.c filtrers.h
- *
- *     extracted-CGI relevant stuff
- *
- *    jbsockets.c
- *
- *     filled comment
- *
- *    jcc.c
- *
- *     support for new cgi mechansim
- *
- *    list.c list.h
- *
- *    functions for new list type: "map"
- *    extended enlist_unique
- *
- *    miscutil.c .h
- *    introduced bindup()
- *
- *    parsers.c parsers.h
- *
- *    deleted const struct interceptors
- *
- *    pcrs.c
- *    added FIXME
- *
- *    project.h
- *
- *    added struct map
- *    added struct http_response
- *    changes struct interceptors to struct cgi_dispatcher
- *    moved HTML stuff to cgi.h
- *
- *    re_filterfile:
- *
- *    changed
- *
- *    showargs.c
- *    NO TIME LEFT
- *
- *
+ *    No revisions before 1.3
  *
  **********************************************************************/
 \f
  *
  **********************************************************************/
 \f
 extern "C" {
 #endif
 
 extern "C" {
 #endif
 
-extern struct http_response *cgi_dispatch(struct client_state *csp);
-extern int make_http_response(struct http_response *rsp);
-extern void free_http_response(struct http_response *rsp);
-
-extern struct map *parse_cgi(char *argstring);
-extern char *dump_map(struct map *map);
+/*
+ * Dispatch & parameter parsing functions
+ */
+extern struct http_response *dispatch_cgi(struct client_state *csp);
+extern struct map *parse_cgi_parameters(char *argstring);
 
 
+/*
+ * CGI functions
+ */
 extern int cgi_default(struct client_state *csp, struct http_response *rsp,
 extern int cgi_default(struct client_state *csp, struct http_response *rsp,
-                      struct map *parameters);
+                       struct map *parameters);
 extern int cgi_show_status(struct client_state *csp, struct http_response *rsp,
 extern int cgi_show_status(struct client_state *csp, struct http_response *rsp,
-                    struct map *parameters);
-
+                           struct map *parameters);
 extern int cgi_show_url_info(struct client_state *csp, struct http_response *rsp,\r
 extern int cgi_show_url_info(struct client_state *csp, struct http_response *rsp,\r
-                    struct map *parameters);
-
-extern char *redirect_url(struct http_request *http, struct client_state *csp);
+                             struct map *parameters);
 extern int cgi_send_banner(struct client_state *csp, struct http_response *rsp,
 extern int cgi_send_banner(struct client_state *csp, struct http_response *rsp,
-                          struct map *parameters);
+                                         struct map *parameters);
 
 
+/* Not exactly a CGI */
+extern struct http_response *error_response(struct client_state *csp, const char *template, int err);
 
 
+/*
+ * CGI support functions
+ */
+extern struct http_response *finish_http_response(struct http_response *rsp);
+extern void free_http_response(struct http_response *rsp);
 
 
-#ifdef TRUST_FILES
-extern char *ij_untrusted_url(struct http_request *http, struct client_state *csp);
-#endif /* def TRUST_FILES */
+extern struct map *default_exports(struct client_state *csp, char *caller);
+extern struct map *map_block_killer(struct map *map, char *name);
+extern char *fill_template(struct client_state *csp, const char *template, struct map *exports);
 
 
 
 
+/*
+ * Text generators
+ */
+extern char *make_menu(const char *self);
+extern char *dump_map(struct map *map);
 
 #ifdef STATISTICS
 
 #ifdef STATISTICS
-extern char *add_stats(char *s);
+extern struct map *add_stats(struct map *exports);
 #endif /* def STATISTICS */
 
 #endif /* def STATISTICS */
 
-static const char CJBGIF[] =
+
+/*
+ * Hint: You can encode your own GIFs like that:
+ * perl -e 'while (read STDIN, $c, 1) { printf("\\%.3o,", unpack("C", $c)); }'
+ */
+
+static const char JBGIF[] =
    "GIF89aD\000\013\000\360\000\000\000\000\000\377\377\377!"
    "\371\004\001\000\000\001\000,\000\000\000\000D\000\013\000"
    "\000\002a\214\217\251\313\355\277\000\200G&K\025\316hC\037"
    "GIF89aD\000\013\000\360\000\000\000\000\000\377\377\377!"
    "\371\004\001\000\000\001\000,\000\000\000\000D\000\013\000"
    "\000\002a\214\217\251\313\355\277\000\200G&K\025\316hC\037"
@@ -147,166 +114,11 @@ static const char CJBGIF[] =
    "\372\003S\275\274k2\354\254z\347?\335\274x\306^9\374\276"
    "\037Q\000\000;";
 
    "\372\003S\275\274k2\354\254z\347?\335\274x\306^9\374\276"
    "\037Q\000\000;";
 
-static const char CBLANKGIF[] =
+static const char BLANKGIF[] =
    "GIF89a\001\000\001\000\200\000\000\377\377\377\000\000"
    "\000!\371\004\001\000\000\000\000,\000\000\000\000\001"
    "\000\001\000\000\002\002D\001\000;";
 
    "GIF89a\001\000\001\000\200\000\000\377\377\377\000\000"
    "\000!\371\004\001\000\000\000\000,\000\000\000\000\001"
    "\000\001\000\000\002\002D\001\000;";
 
-static const char CBLOCK[] = 
-#ifdef AMIGA 
-       "HTTP/1.0 403 Request for blocked URL\n" 
-#else /* ifndef AMIGA */
-       "HTTP/1.0 202 Request for blocked URL\n"
-#endif /* ndef AMIGA */
-       "Pragma: no-cache\n"
-       "Last-Modified: Thu Jul 31, 1997 07:42:22 pm GMT\n"
-       "Expires:       Thu Jul 31, 1997 07:42:22 pm GMT\n"
-       "Content-Type: text/html\n\n"
-       "<html>\n"
-       "<head>\n"
-       "<title>Internet Junkbuster: Request for blocked URL</title>\n"
-       "</head>\n"
-       WHITEBG
-       "<center><h1>"
-       BANNER
-       "</h1></center>\n"
-      "<p align=center>Your request for <b>%s%s</b>\n"
-      "was blocked.<br><a href=\"http://i.j.b/show-url-info?url=%s%s\">See why</a>"
-#ifdef FORCE_LOAD
-       " or <a href=\"http://%s" FORCE_PREFIX "%s\">"
-       "go there anyway.</a>"
-#endif /* def FORCE_LOAD */
-      "</p>\n"
-      "</body>\n"
-      "</html>\n";
-
-#ifdef TRUST_FILES
-static const char CTRUST[] =
-#ifdef AMIGA 
-       "HTTP/1.0 403 Request for untrusted URL\n"
-#else /* ifndef AMIGA */
-       "HTTP/1.0 202 Request for untrusted URL\n"
-#endif /* ndef AMIGA */
-       "Pragma: no-cache\n"
-       "Last-Modified: Thu Jul 31, 1997 07:42:22 pm GMT\n"
-       "Expires:       Thu Jul 31, 1997 07:42:22 pm GMT\n"
-       "Content-Type: text/html\n\n"
-       "<html>\n"
-       "<head>\n"
-       "<title>Internet Junkbuster: Request for untrusted URL</title>\n"
-       "</head>\n"
-       WHITEBG
-       "<center>"
-       "<a href=http://i.j.b/ij-untrusted-url?%s+%s+%s>"
-       BANNER
-       "</a>"
-       "</center>"
-       "</body>\n"
-       "</html>\n";
-#endif /* def TRUST_FILES */
-
-
-static const char C_HOME_PAGE[] =
-   "<html>\n"
-   "<head>\n"
-   "<title>Internet Junkbuster: Information</title>\n"
-   "</head>\n"
-   BODY
-   "<h1><center>"
-   BANNER
-   "</h1></center>\n"
-   "<p><a href=\"" HOME_PAGE_URL "\">JunkBuster web site</a></p>\n"
-   "<p><a href=\"http://i.j.b/show-proxy-arg\">Proxy configuration</a></p>\n"
-   "<p><a href=\"http://i.j.b/show-url-info\">Look up a URL</a></p>\n"
-   "</body>\n"
-   "</html>\n";
-
-static const char C_URL_INFO_HEADER[] =
-   "HTTP/1.0 200 OK\n"
-   "Pragma: no-cache\n"
-   "Expires:       Thu Jul 31, 1997 07:42:22 pm GMT\n"
-   "Content-Type: text/html\n\n"
-   "<html>\n"
-   "<head>\n"
-   "<title>Internet Junkbuster: URL Info</title>\n"
-   "</head>\n"
-   BODY
-   "<h1><center>"
-   BANNER
-   "</h1></center>\n"
-   "<p>Information for: <a href=\"http://%s\">http://%s</a></p>\n";
-static const char C_URL_INFO_FOOTER[] =
-   "\n</p>\n"
-   "</body>\n"
-   "</html>\n";
-
-static const char C_URL_INFO_FORM[] =
-   "HTTP/1.0 200 OK\n"
-   "Pragma: no-cache\n"
-   "Expires:       Thu Jul 31, 1997 07:42:22 pm GMT\n"
-   "Content-Type: text/html\n\n"
-   "<html>\n"
-   "<head>\n"
-   "<title>Internet Junkbuster: URL Info</title>\n"
-   "</head>\n"
-   BODY
-   "<h1><center>"
-   BANNER
-   "</h1></center>\n"
-   "<form method=\"GET\" action=\"http://i.j.b/show-url-info\">\n"
-   "<p>Please enter a URL, without the leading &quot;http://&quot;:</p>"
-   "<p><input type=\"text\" name=\"url\" size=\"80\">"
-   "<input type=\"submit\" value=\"Info\"></p>\n"
-   "</form>\n"
-   "</body>\n"
-   "</html>\n";
-
-static const char CFAIL[] =
-   "HTTP/1.0 503 Connect failed\n"
-   "Content-Type: text/html\n\n"
-   "<html>\n"
-   "<head>\n"
-   "<title>Internet Junkbuster: Connect failed</title>\n"
-   "</head>\n"
-   BODY
-   "<h1><center>"
-   BANNER
-   "</center></h1>"
-   "TCP connection to '%s' failed: %s.\n<br>"
-   "</body>\n"
-   "</html>\n";
-
-static const char CNXDOM[] =
-   "HTTP/1.0 404 Non-existent domain\n"
-   "Content-Type: text/html\n\n"
-   "<html>\n"
-   "<head>\n"
-   "<title>Internet Junkbuster: Non-existent domain</title>\n"
-   "</head>\n"
-   BODY
-   "<h1><center>"
-   BANNER
-   "</center></h1>"
-   "No such domain: %s\n"
-   "</body>\n"
-   "</html>\n";
-
-static const char CNOBANNER[] =
-   "HTTP/1.0 200 No Banner\n"
-   "Content-Type: text/html\n\n"
-   "<html>\n"
-   "<head>\n"
-   "<title>Internet Junkbuster: No Banner</title>\n"
-   "</head>\n"
-   BODY
-   "<h1><center>"
-   BANNER
-   "</h1>"
-   "You asked for a banner that this proxy can't produce because either configuration does not permit.\n<br>"
-   "or the URL didn't end with .gif\n"
-   "</center></body>\n"
-   "</html>\n";
-
 
 /* Revision control strings from this header and associated .c file */
 extern const char cgi_rcs[];
 
 /* Revision control strings from this header and associated .c file */
 extern const char cgi_rcs[];