#ifndef _CGI_H #define _CGI_H #define CGI_H_VERSION "$Id: cgi.h,v 1.3 2001/06/03 19:12:16 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.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 * * * **********************************************************************/ #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); extern char *dump_map(struct map *map); extern int cgi_default(struct client_state *csp, struct http_response *rsp, struct map *parameters); extern int cgi_show_status(struct client_state *csp, struct http_response *rsp, struct map *parameters); extern int cgi_show_url_info(struct client_state *csp, struct http_response *rsp, struct map *parameters); 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" "Internet Junkbuster: Request for blocked URL\n" "\n" WHITEBG "

" BANNER "

\n" "

Your request for %s%s\n" "was blocked.
See why" #ifdef FORCE_LOAD " or " "go there anyway." #endif /* def FORCE_LOAD */ "

\n" "\n" "\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" "\n" "\n" "Internet Junkbuster: Request for untrusted URL\n" "\n" WHITEBG "
" "" BANNER "" "
" "\n" "\n"; #endif /* def TRUST_FILES */ static const char C_HOME_PAGE[] = "\n" "\n" "Internet Junkbuster: Information\n" "\n" BODY "

" BANNER "

\n" "

JunkBuster web site

\n" "

Proxy configuration

\n" "

Look up a URL

\n" "\n" "\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" "\n" "\n" "Internet Junkbuster: URL Info\n" "\n" BODY "

" BANNER "

\n" "

Information for: http://%s

\n"; static const char C_URL_INFO_FOOTER[] = "\n

\n" "\n" "\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" "\n" "\n" "Internet Junkbuster: URL Info\n" "\n" BODY "

" BANNER "

\n" "
\n" "

Please enter a URL, without the leading "http://":

" "

" "

\n" "
\n" "\n" "\n"; static const char CFAIL[] = "HTTP/1.0 503 Connect failed\n" "Content-Type: text/html\n\n" "\n" "\n" "Internet Junkbuster: Connect failed\n" "\n" BODY "

" BANNER "

" "TCP connection to '%s' failed: %s.\n
" "\n" "\n"; static const char CNXDOM[] = "HTTP/1.0 404 Non-existent domain\n" "Content-Type: text/html\n\n" "\n" "\n" "Internet Junkbuster: Non-existent domain\n" "\n" BODY "

" BANNER "

" "No such domain: %s\n" "\n" "\n"; static const char CNOBANNER[] = "HTTP/1.0 200 No Banner\n" "Content-Type: text/html\n\n" "\n" "\n" "Internet Junkbuster: No Banner\n" "\n" BODY "

" BANNER "

" "You asked for a banner that this proxy can't produce because either configuration does not permit.\n
" "or the URL didn't end with .gif\n" "\n" "\n"; /* Revision control strings from this header and associated .c file */ extern const char cgi_rcs[]; extern const char cgi_h_rcs[]; #ifdef __cplusplus } /* extern "C" */ #endif #endif /* ndef _CGI_H */ /* Local Variables: tab-width: 3 end: */