Go to the source code of this file.
Defines | |
#define | CGI_H_VERSION "$Id: cgi.h,v 2.0 2002/06/04 14:34:21 jongfoster Exp $" |
Functions | |
http_response * | dispatch_cgi (struct client_state *csp) |
http_response * | error_response (struct client_state *csp, const char *templatename, int err) |
http_response * | alloc_http_response (void) |
void | free_http_response (struct http_response *rsp) |
http_response * | finish_http_response (struct http_response *rsp) |
map * | default_exports (const struct client_state *csp, const char *caller) |
jb_err | map_block_killer (struct map *exports, const char *name) |
jb_err | map_block_keep (struct map *exports, const char *name) |
jb_err | map_conditional (struct map *exports, const char *name, int choose_first) |
jb_err | template_load (struct client_state *csp, char **template_ptr, const char *templatename, int recursive) |
jb_err | template_fill (char **template_ptr, const struct map *exports) |
jb_err | template_fill_for_cgi (struct client_state *csp, const char *templatename, struct map *exports, struct http_response *rsp) |
void | cgi_init_error_messages (void) |
http_response * | cgi_error_memory (void) |
jb_err | cgi_error_no_template (struct client_state *csp, struct http_response *rsp, const char *template_name) |
jb_err | cgi_error_bad_param (struct client_state *csp, struct http_response *rsp) |
jb_err | cgi_error_unknown (struct client_state *csp, struct http_response *rsp, jb_err error_to_report) |
jb_err | get_number_param (struct client_state *csp, const struct map *parameters, char *name, unsigned *pvalue) |
jb_err | get_string_param (const struct map *parameters, const char *param_name, const char **pparam) |
char | get_char_param (const struct map *parameters, const char *param_name) |
void | get_http_time (int time_offset, char *buf) |
char * | add_help_link (const char *item, struct configuration_spec *config) |
char * | make_menu (const char *self) |
char * | dump_map (const struct map *the_map) |
Variables | |
const char | image_pattern_data [] |
const size_t | image_pattern_length |
const char | image_blank_data [] |
const size_t | image_blank_length |
const char | cgi_rcs [] |
const char | cgi_h_rcs [] |
Functions declared include:
Revision 1.29 2002/05/19 11:33:21 jongfoster If a CGI error was not handled, and propogated back to dispatch_known_cgi(), then it was assumed to be "out of memory". This gave a very misleading error message.
Now other errors will cause a simple message giving the error number and asking the user to report a bug.
Bug report: http://sourceforge.net/tracker/index.php?func=detail &aid=557905&group_id=11118&atid=111118
Revision 1.28 2002/04/26 12:54:03 oes New function add_help_link
Revision 1.27 2002/04/24 02:16:51 oes Moved get_char_param, get_string_param and get_number_param here from cgiedit.c
Revision 1.26 2002/04/10 13:38:35 oes load_template signature changed
Revision 1.25 2002/04/08 20:50:25 swa fixed JB spelling
Revision 1.24 2002/03/26 22:29:54 swa we have a new homepage!
Revision 1.23 2002/03/24 16:18:15 jongfoster Removing old logo
Revision 1.22 2002/03/24 13:25:43 swa name change related issues
Revision 1.21 2002/03/07 03:48:38 oes
Revision 1.19 2002/01/21 00:33:52 jongfoster Adding map_block_keep() to save a few bytes in the edit-actions-list HTML.
Revision 1.18 2001/11/16 00:46:31 jongfoster Fixing compiler warnings
Revision 1.17 2001/10/23 21:48:19 jongfoster Cleaning up error handling in CGI functions - they now send back a HTML error page and should never cause a FATAL error. (Fixes one potential source of "denial of service" attacks).
CGI actions file editor that works and is actually useful.
Ability to toggle Junkbuster remotely using a CGI call.
You can turn off both the above features in the main configuration file, e.g. if you are running a multi-user proxy.
Revision 1.16 2001/09/16 17:08:54 jongfoster Moving simple CGI functions from cgi.c to new file cgisimple.c
Revision 1.15 2001/09/16 15:02:35 jongfoster Adding i.j.b/robots.txt. Inlining add_stats() since it's only ever called from one place.
Revision 1.14 2001/09/16 11:38:02 jongfoster Splitting fill_template() into 2 functions: template_load() loads the file template_fill() performs the PCRS regexps. This is because the CGI edit interface has a "table row" template which is used many times in the page - this change means it's only loaded from disk once.
Revision 1.13 2001/09/16 11:00:10 jongfoster New function alloc_http_response, for symmetry with free_http_response
Revision 1.12 2001/09/13 23:31:25 jongfoster Moving image data to cgi.c rather than cgi.h.
Revision 1.11 2001/08/05 16:06:20 jongfoster Modifiying "struct map" so that there are now separate header and "map_entry" structures. This means that functions which modify a map no longer need to return a pointer to the modified map. Also, it no longer reverses the order of the entries (which may be important with some advanced template substitutions).
Revision 1.10 2001/08/01 21:19:22 jongfoster Moving file version information to a separate CGI page.
Revision 1.9 2001/08/01 00:17:54 jongfoster Adding prototype for map_conditional
Revision 1.8 2001/07/30 22:08:36 jongfoster Tidying up defines:
Revision 1.6 2001/06/29 21:45:41 oes Indentation, CRLF->LF, Tab-> Space
Revision 1.5 2001/06/29 13:22:44 oes
Revision 1.3 2001/06/03 19:12:16 oes introduced new cgi handling
No revisions before 1.3
|
Produce a copy of the string given as item, embedded in an HTML link to its corresponding section (item name in uppercase) in the actions chapter of the user manual, (whose URL is given in the config and defaults to our web site).
FIXME I currently only work for actions, and would like to be generalized for other topics.
|
|
Allocates a new http_response structure. Parameters : N/A
|
|
CGI function that is called if the parameters (query string) for a CGI were wrong.
|
|
Called if a CGI function runs out of memory. Returns a statically-allocated error response. Parameters : N/A
|
|
Almost-CGI function that is called if a template cannot be loaded. Note this is not a true CGI, it takes a template name rather than a map of parameters.
|
|
Almost-CGI function that is called if an unexpected error occurs in the top-level CGI dispatcher. In this context, "unexpected" means "anything other than JB_ERR_MEMORY or JB_ERR_CGI_PARAMS" - CGIs are expected to handle all other errors internally, since they can give more relavent error messages that way. Note this is not a true CGI, it takes an error code rather than a map of parameters.
|
|
Call at the start of the program to initialize the error message used by cgi_error_memory(). Parameters : N/A
|
|
returns a struct map list that contains exports which are common to all CGI functions.
|
|
Checks if a request URL has either the magical hostname CGI_SITE_1_HOST (usually http://p.p/) or matches CGI_SITE_2_HOST CGI_SITE_2_PATH (usually.
http //config.privoxy.org/). If so, it passes the (rest of the) path onto dispatch_known_cgi, which calls the relevant CGI handler function.
|
|
HTML-dump a map for debugging (as table).
|
|
returns an http_response that explains the reason why a request failed.
|
|
Fill in the missing headers in an http response, and flatten the headers to an http head.
|
|
Free the memory occupied by an http_response and its depandant structures.
|
|
Get a single-character parameter passed to a CGI function.
|
|
Get the time in a format suitable for use in a HTTP header - e.g.: "Sun, 06 Nov 1994 08:49:37 GMT".
|
|
Get a non-negative integer from the parameters passed to a CGI function.
|
|
Get a string paramater, to be used as an ACTION_STRING or ACTION_MULTI paramater. Validates the input to prevent stupid/malicious users from corrupting their action file.
|
|
Returns an HTML-formatted menu of the available unhidden CGIs, excluding the one given in <self> Parameters : self = name of CGI to leave out, can be NULL for complete listing.
|
|
Convenience function. Removes the markers used by map-block-killer, to save a few bytes. i.e. removes "@if-<name>-start@" and "@if-<name>-end@"
|
|
Convenience function. Adds a "killer" for the conditional HTML-template block <name>, i.e. a substitution of the regex "if-<name>-start.*if-<name>-end" to the given export list.
|
|
Convenience function. Adds an "if-then-else" for the conditional HTML-template block <name>, i.e. a substitution of the form: @if-<name>-then@ True text @else-not-<name>@ False text @endif-<name>@ The control structure and one of the alternatives will be hidden.
|
|
CGI support function that fills in a pre-loaded HTML template by replacing @name@ with value using pcrs, for each item in the output map. Note that a leading '$' charachter in the export map's values will be stripped and toggle on backreference interpretation.
|
|
CGI support function that loads a HTML template and fills it in. Handles file-not-found errors by sending a HTML error message. For convenience, this function also frees the passed "exports" map.
|
|
CGI support function that loads a given HTML template from the confdir, ignoring comment lines and following include statements up to a depth of 1.
|
|
Version information about cgi.h.
|
|
Version information about cgi.c.
|
|
1x1 transparant GIF.
|
|
The size of the image_blank, in bytes.
|
|
Checkerboard pattern, as a GIF.
|
|
The size of the image_pattern, in bytes.
|