#ifndef _CGI_H #define _CGI_H #define CGI_H_VERSION "$Id: cgi.h,v 1.1 2001/06/03 11:04:49 oes Exp $" /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/cgi.h,v $ * * Purpose : Declares functions to intercept request, generate * html or gif answers, and to compose HTTP resonses. * * Functions declared include: * * * Copyright : Written by and Copyright (C) 2001 the SourceForge * IJBSWA team. http://ijbswa.sourceforge.net * * Based on the Internet Junkbuster originally written * by and Copyright (C) 1997 Anonymous Coders and * Junkbusters Corporation. http://www.junkbusters.com * * 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: cgi.h,v $ * 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 * * * **********************************************************************/ #include "project.h" #ifdef __cplusplus 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); char *dump_map(struct map *map); extern int cgi_default(struct client_state *csp, struct http_response *rsp, struct map *parameters); int cgi_show_status(struct client_state *csp, struct http_response *rsp, struct map *parameters); extern char *ijb_show_url_info(struct http_request *http, struct client_state *csp); extern char *redirect_url(struct http_request *http, struct client_state *csp); extern int cgi_send_banner(struct client_state *csp, struct http_response *rsp, struct map *parameters); #ifdef TRUST_FILES extern char *ij_untrusted_url(struct http_request *http, struct client_state *csp); #endif /* def TRUST_FILES */ #ifdef STATISTICS extern char *add_stats(char *s); #endif /* def STATISTICS */ static const char CJBGIF[] = "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" "\200\234\230Y\2309\235S\230\266\206\372J\253<\3131\253\271" "\270\215\342\254\013\203\371\202\264\334P\207\332\020o\266" "N\215I\332=\211\312\3513\266:\026AK)\364\370\365aobr\305" "\372\003S\275\274k2\354\254z\347?\335\274x\306^9\374\276" "\037Q\000\000;"; static const char CBLANKGIF[] = "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" "\n" "
\n" "Your request for %s%s\n"
"was blocked.
See why"
#ifdef FORCE_LOAD
" or "
"go there anyway."
#endif /* def FORCE_LOAD */
"